INTERRUP.LST 5.9 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855458564585745858458594586045861458624586345864458654586645867458684586945870458714587245873458744587545876458774587845879458804588145882458834588445885458864588745888458894589045891458924589345894458954589645897458984589945900459014590245903459044590545906459074590845909459104591145912459134591445915459164591745918459194592045921459224592345924459254592645927459284592945930459314593245933459344593545936459374593845939459404594145942459434594445945459464594745948459494595045951459524595345954459554595645957459584595945960459614596245963459644596545966459674596845969459704597145972459734597445975459764597745978459794598045981459824598345984459854598645987459884598945990459914599245993459944599545996459974599845999460004600146002460034600446005460064600746008460094601046011460124601346014460154601646017460184601946020460214602246023460244602546026460274602846029460304603146032460334603446035460364603746038460394604046041460424604346044460454604646047460484604946050460514605246053460544605546056460574605846059460604606146062460634606446065460664606746068460694607046071460724607346074460754607646077460784607946080460814608246083460844608546086460874608846089460904609146092460934609446095460964609746098460994610046101461024610346104461054610646107461084610946110461114611246113461144611546116461174611846119461204612146122461234612446125461264612746128461294613046131461324613346134461354613646137461384613946140461414614246143461444614546146461474614846149461504615146152461534615446155461564615746158461594616046161461624616346164461654616646167461684616946170461714617246173461744617546176461774617846179461804618146182461834618446185461864618746188461894619046191461924619346194461954619646197461984619946200462014620246203462044620546206462074620846209462104621146212462134621446215462164621746218462194622046221462224622346224462254622646227462284622946230462314623246233462344623546236462374623846239462404624146242462434624446245462464624746248462494625046251462524625346254462554625646257462584625946260462614626246263462644626546266462674626846269462704627146272462734627446275462764627746278462794628046281462824628346284462854628646287462884628946290462914629246293462944629546296462974629846299463004630146302463034630446305463064630746308463094631046311463124631346314463154631646317463184631946320463214632246323463244632546326463274632846329463304633146332463334633446335463364633746338463394634046341463424634346344463454634646347463484634946350463514635246353463544635546356463574635846359463604636146362463634636446365463664636746368463694637046371463724637346374463754637646377463784637946380463814638246383463844638546386463874638846389463904639146392463934639446395463964639746398463994640046401464024640346404464054640646407464084640946410464114641246413464144641546416464174641846419464204642146422464234642446425464264642746428464294643046431464324643346434464354643646437464384643946440464414644246443464444644546446464474644846449464504645146452464534645446455464564645746458464594646046461464624646346464464654646646467464684646946470464714647246473464744647546476464774647846479464804648146482464834648446485464864648746488464894649046491464924649346494464954649646497464984649946500465014650246503465044650546506465074650846509465104651146512465134651446515465164651746518465194652046521465224652346524465254652646527465284652946530465314653246533465344653546536465374653846539465404654146542465434654446545465464654746548465494655046551465524655346554465554655646557465584655946560465614656246563465644656546566465674656846569465704657146572465734657446575465764657746578465794658046581465824658346584465854658646587465884658946590465914659246593465944659546596465974659846599466004660146602466034660446605466064660746608466094661046611466124661346614466154661646617466184661946620466214662246623466244662546626466274662846629466304663146632466334663446635466364663746638466394664046641466424664346644466454664646647466484664946650466514665246653466544665546656466574665846659466604666146662466634666446665466664666746668466694667046671466724667346674466754667646677466784667946680466814668246683466844668546686466874668846689466904669146692466934669446695466964669746698466994670046701467024670346704467054670646707467084670946710467114671246713467144671546716467174671846719467204672146722467234672446725467264672746728467294673046731467324673346734467354673646737467384673946740467414674246743467444674546746467474674846749467504675146752467534675446755467564675746758467594676046761467624676346764467654676646767467684676946770467714677246773467744677546776467774677846779467804678146782467834678446785467864678746788467894679046791467924679346794467954679646797467984679946800468014680246803468044680546806468074680846809468104681146812468134681446815468164681746818468194682046821468224682346824468254682646827468284682946830468314683246833468344683546836468374683846839468404684146842468434684446845468464684746848468494685046851468524685346854468554685646857468584685946860468614686246863468644686546866468674686846869468704687146872468734687446875468764687746878468794688046881468824688346884468854688646887468884688946890468914689246893468944689546896468974689846899469004690146902469034690446905469064690746908469094691046911469124691346914469154691646917469184691946920469214692246923469244692546926469274692846929469304693146932469334693446935469364693746938469394694046941469424694346944469454694646947469484694946950469514695246953469544695546956469574695846959469604696146962469634696446965469664696746968469694697046971469724697346974469754697646977469784697946980469814698246983469844698546986469874698846989469904699146992469934699446995469964699746998469994700047001470024700347004470054700647007470084700947010470114701247013470144701547016470174701847019470204702147022470234702447025470264702747028470294703047031470324703347034470354703647037470384703947040470414704247043470444704547046470474704847049470504705147052470534705447055470564705747058470594706047061470624706347064470654706647067470684706947070470714707247073470744707547076470774707847079470804708147082470834708447085470864708747088470894709047091470924709347094470954709647097470984709947100471014710247103471044710547106471074710847109471104711147112471134711447115471164711747118471194712047121471224712347124471254712647127471284712947130471314713247133471344713547136471374713847139471404714147142471434714447145471464714747148471494715047151471524715347154471554715647157471584715947160471614716247163471644716547166471674716847169471704717147172471734717447175471764717747178471794718047181471824718347184471854718647187471884718947190471914719247193471944719547196471974719847199472004720147202472034720447205472064720747208472094721047211472124721347214472154721647217472184721947220472214722247223472244722547226472274722847229472304723147232472334723447235472364723747238472394724047241472424724347244472454724647247472484724947250472514725247253472544725547256472574725847259472604726147262472634726447265472664726747268472694727047271472724727347274472754727647277472784727947280472814728247283472844728547286472874728847289472904729147292472934729447295472964729747298472994730047301473024730347304473054730647307473084730947310473114731247313473144731547316473174731847319473204732147322473234732447325473264732747328473294733047331473324733347334473354733647337473384733947340473414734247343473444734547346473474734847349473504735147352473534735447355473564735747358473594736047361473624736347364473654736647367473684736947370473714737247373473744737547376473774737847379473804738147382473834738447385473864738747388473894739047391473924739347394473954739647397473984739947400474014740247403474044740547406474074740847409474104741147412474134741447415474164741747418474194742047421474224742347424474254742647427474284742947430474314743247433474344743547436474374743847439474404744147442474434744447445474464744747448474494745047451474524745347454474554745647457474584745947460474614746247463474644746547466474674746847469474704747147472474734747447475474764747747478474794748047481474824748347484474854748647487474884748947490474914749247493474944749547496474974749847499475004750147502475034750447505475064750747508475094751047511475124751347514475154751647517475184751947520475214752247523475244752547526475274752847529475304753147532475334753447535475364753747538475394754047541475424754347544475454754647547475484754947550475514755247553475544755547556475574755847559475604756147562475634756447565475664756747568475694757047571475724757347574475754757647577475784757947580475814758247583475844758547586475874758847589475904759147592475934759447595475964759747598475994760047601476024760347604476054760647607476084760947610476114761247613476144761547616476174761847619476204762147622476234762447625476264762747628476294763047631476324763347634476354763647637476384763947640476414764247643476444764547646476474764847649476504765147652476534765447655476564765747658476594766047661476624766347664476654766647667476684766947670476714767247673476744767547676476774767847679476804768147682476834768447685476864768747688476894769047691476924769347694476954769647697476984769947700477014770247703477044770547706477074770847709477104771147712477134771447715477164771747718477194772047721477224772347724477254772647727477284772947730477314773247733477344773547736477374773847739477404774147742477434774447745477464774747748477494775047751477524775347754477554775647757477584775947760477614776247763477644776547766477674776847769477704777147772477734777447775477764777747778477794778047781477824778347784477854778647787477884778947790477914779247793477944779547796477974779847799478004780147802478034780447805478064780747808478094781047811478124781347814478154781647817478184781947820478214782247823478244782547826478274782847829478304783147832478334783447835478364783747838478394784047841478424784347844478454784647847478484784947850478514785247853478544785547856478574785847859478604786147862478634786447865478664786747868478694787047871478724787347874478754787647877478784787947880478814788247883478844788547886478874788847889478904789147892478934789447895478964789747898478994790047901479024790347904479054790647907479084790947910479114791247913479144791547916479174791847919479204792147922479234792447925479264792747928479294793047931479324793347934479354793647937479384793947940479414794247943479444794547946479474794847949479504795147952479534795447955479564795747958479594796047961479624796347964479654796647967479684796947970479714797247973479744797547976479774797847979479804798147982479834798447985479864798747988479894799047991479924799347994479954799647997479984799948000480014800248003480044800548006480074800848009480104801148012480134801448015480164801748018480194802048021480224802348024480254802648027480284802948030480314803248033480344803548036480374803848039480404804148042480434804448045480464804748048480494805048051480524805348054480554805648057480584805948060480614806248063480644806548066480674806848069480704807148072480734807448075480764807748078480794808048081480824808348084480854808648087480884808948090480914809248093480944809548096480974809848099481004810148102481034810448105481064810748108481094811048111481124811348114481154811648117481184811948120481214812248123481244812548126481274812848129481304813148132481334813448135481364813748138481394814048141481424814348144481454814648147481484814948150481514815248153481544815548156481574815848159481604816148162481634816448165481664816748168481694817048171481724817348174481754817648177481784817948180481814818248183481844818548186481874818848189481904819148192481934819448195481964819748198481994820048201482024820348204482054820648207482084820948210482114821248213482144821548216482174821848219482204822148222482234822448225482264822748228482294823048231482324823348234482354823648237482384823948240482414824248243482444824548246482474824848249482504825148252482534825448255482564825748258482594826048261482624826348264482654826648267482684826948270482714827248273482744827548276482774827848279482804828148282482834828448285482864828748288482894829048291482924829348294482954829648297482984829948300483014830248303483044830548306483074830848309483104831148312483134831448315483164831748318483194832048321483224832348324483254832648327483284832948330483314833248333483344833548336483374833848339483404834148342483434834448345483464834748348483494835048351483524835348354483554835648357483584835948360483614836248363483644836548366483674836848369483704837148372483734837448375483764837748378483794838048381483824838348384483854838648387483884838948390483914839248393483944839548396483974839848399484004840148402484034840448405484064840748408484094841048411484124841348414484154841648417484184841948420484214842248423484244842548426484274842848429484304843148432484334843448435484364843748438484394844048441484424844348444484454844648447484484844948450484514845248453484544845548456484574845848459484604846148462484634846448465484664846748468484694847048471484724847348474484754847648477484784847948480484814848248483484844848548486484874848848489484904849148492484934849448495484964849748498484994850048501485024850348504485054850648507485084850948510485114851248513485144851548516485174851848519485204852148522485234852448525485264852748528485294853048531485324853348534485354853648537485384853948540485414854248543485444854548546485474854848549485504855148552485534855448555485564855748558485594856048561485624856348564485654856648567485684856948570485714857248573485744857548576485774857848579485804858148582485834858448585485864858748588485894859048591485924859348594485954859648597485984859948600486014860248603486044860548606486074860848609486104861148612486134861448615486164861748618486194862048621486224862348624486254862648627486284862948630486314863248633486344863548636486374863848639486404864148642486434864448645486464864748648486494865048651486524865348654486554865648657486584865948660486614866248663486644866548666486674866848669486704867148672486734867448675486764867748678486794868048681486824868348684486854868648687486884868948690486914869248693486944869548696486974869848699487004870148702487034870448705487064870748708487094871048711487124871348714487154871648717487184871948720487214872248723487244872548726487274872848729487304873148732487334873448735487364873748738487394874048741487424874348744487454874648747487484874948750487514875248753487544875548756487574875848759487604876148762487634876448765487664876748768487694877048771487724877348774487754877648777487784877948780487814878248783487844878548786487874878848789487904879148792487934879448795487964879748798487994880048801488024880348804488054880648807488084880948810488114881248813488144881548816488174881848819488204882148822488234882448825488264882748828488294883048831488324883348834488354883648837488384883948840488414884248843488444884548846488474884848849488504885148852488534885448855488564885748858488594886048861488624886348864488654886648867488684886948870488714887248873488744887548876488774887848879488804888148882488834888448885488864888748888488894889048891488924889348894488954889648897488984889948900489014890248903489044890548906489074890848909489104891148912489134891448915489164891748918489194892048921489224892348924489254892648927489284892948930489314893248933489344893548936489374893848939489404894148942489434894448945489464894748948489494895048951489524895348954489554895648957489584895948960489614896248963489644896548966489674896848969489704897148972489734897448975489764897748978489794898048981489824898348984489854898648987489884898948990489914899248993489944899548996489974899848999490004900149002490034900449005490064900749008490094901049011490124901349014490154901649017490184901949020490214902249023490244902549026490274902849029490304903149032490334903449035490364903749038490394904049041490424904349044490454904649047490484904949050490514905249053490544905549056490574905849059490604906149062490634906449065490664906749068490694907049071490724907349074490754907649077490784907949080490814908249083490844908549086490874908849089490904909149092490934909449095490964909749098490994910049101491024910349104491054910649107491084910949110491114911249113491144911549116491174911849119491204912149122491234912449125491264912749128491294913049131491324913349134491354913649137491384913949140491414914249143491444914549146491474914849149491504915149152491534915449155491564915749158491594916049161491624916349164491654916649167491684916949170491714917249173491744917549176491774917849179491804918149182491834918449185491864918749188491894919049191491924919349194491954919649197491984919949200492014920249203492044920549206492074920849209492104921149212492134921449215492164921749218492194922049221492224922349224492254922649227492284922949230492314923249233492344923549236492374923849239492404924149242492434924449245492464924749248492494925049251492524925349254492554925649257492584925949260492614926249263492644926549266492674926849269492704927149272492734927449275492764927749278492794928049281492824928349284492854928649287492884928949290492914929249293492944929549296492974929849299493004930149302493034930449305493064930749308493094931049311493124931349314493154931649317493184931949320493214932249323493244932549326493274932849329493304933149332493334933449335493364933749338493394934049341493424934349344493454934649347493484934949350493514935249353493544935549356493574935849359493604936149362493634936449365493664936749368493694937049371493724937349374493754937649377493784937949380493814938249383493844938549386493874938849389493904939149392493934939449395493964939749398493994940049401494024940349404494054940649407494084940949410494114941249413494144941549416494174941849419494204942149422494234942449425494264942749428494294943049431494324943349434494354943649437494384943949440494414944249443494444944549446494474944849449494504945149452494534945449455494564945749458494594946049461494624946349464494654946649467494684946949470494714947249473494744947549476494774947849479494804948149482494834948449485494864948749488494894949049491494924949349494494954949649497494984949949500495014950249503495044950549506495074950849509495104951149512495134951449515495164951749518495194952049521495224952349524495254952649527495284952949530495314953249533495344953549536495374953849539495404954149542495434954449545495464954749548495494955049551495524955349554495554955649557495584955949560495614956249563495644956549566495674956849569495704957149572495734957449575495764957749578495794958049581495824958349584495854958649587495884958949590495914959249593495944959549596495974959849599496004960149602496034960449605496064960749608496094961049611496124961349614496154961649617496184961949620496214962249623496244962549626496274962849629496304963149632496334963449635496364963749638496394964049641496424964349644496454964649647496484964949650496514965249653496544965549656496574965849659496604966149662496634966449665496664966749668496694967049671496724967349674496754967649677496784967949680496814968249683496844968549686496874968849689496904969149692496934969449695496964969749698496994970049701497024970349704497054970649707497084970949710497114971249713497144971549716497174971849719497204972149722497234972449725497264972749728497294973049731497324973349734497354973649737497384973949740497414974249743497444974549746497474974849749497504975149752497534975449755497564975749758497594976049761497624976349764497654976649767497684976949770497714977249773497744977549776497774977849779497804978149782497834978449785497864978749788497894979049791497924979349794497954979649797497984979949800498014980249803498044980549806498074980849809498104981149812498134981449815498164981749818498194982049821498224982349824498254982649827498284982949830498314983249833498344983549836498374983849839498404984149842498434984449845498464984749848498494985049851498524985349854498554985649857498584985949860498614986249863498644986549866498674986849869498704987149872498734987449875498764987749878498794988049881498824988349884498854988649887498884988949890498914989249893498944989549896498974989849899499004990149902499034990449905499064990749908499094991049911499124991349914499154991649917499184991949920499214992249923499244992549926499274992849929499304993149932499334993449935499364993749938499394994049941499424994349944499454994649947499484994949950499514995249953499544995549956499574995849959499604996149962499634996449965499664996749968499694997049971499724997349974499754997649977499784997949980499814998249983499844998549986499874998849989499904999149992499934999449995499964999749998499995000050001500025000350004500055000650007500085000950010500115001250013500145001550016500175001850019500205002150022500235002450025500265002750028500295003050031500325003350034500355003650037500385003950040500415004250043500445004550046500475004850049500505005150052500535005450055500565005750058500595006050061500625006350064500655006650067500685006950070500715007250073500745007550076500775007850079500805008150082500835008450085500865008750088500895009050091500925009350094500955009650097500985009950100501015010250103501045010550106501075010850109501105011150112501135011450115501165011750118501195012050121501225012350124501255012650127501285012950130501315013250133501345013550136501375013850139501405014150142501435014450145501465014750148501495015050151501525015350154501555015650157501585015950160501615016250163501645016550166501675016850169501705017150172501735017450175501765017750178501795018050181501825018350184501855018650187501885018950190501915019250193501945019550196501975019850199502005020150202502035020450205502065020750208502095021050211502125021350214502155021650217502185021950220502215022250223502245022550226502275022850229502305023150232502335023450235502365023750238502395024050241502425024350244502455024650247502485024950250502515025250253502545025550256502575025850259502605026150262502635026450265502665026750268502695027050271502725027350274502755027650277502785027950280502815028250283502845028550286502875028850289502905029150292502935029450295502965029750298502995030050301503025030350304503055030650307503085030950310503115031250313503145031550316503175031850319503205032150322503235032450325503265032750328503295033050331503325033350334503355033650337503385033950340503415034250343503445034550346503475034850349503505035150352503535035450355503565035750358503595036050361503625036350364503655036650367503685036950370503715037250373503745037550376503775037850379503805038150382503835038450385503865038750388503895039050391503925039350394503955039650397503985039950400504015040250403504045040550406504075040850409504105041150412504135041450415504165041750418504195042050421504225042350424504255042650427504285042950430504315043250433504345043550436504375043850439504405044150442504435044450445504465044750448504495045050451504525045350454504555045650457504585045950460504615046250463504645046550466504675046850469504705047150472504735047450475504765047750478504795048050481504825048350484504855048650487504885048950490504915049250493504945049550496504975049850499505005050150502505035050450505505065050750508505095051050511505125051350514505155051650517505185051950520505215052250523505245052550526505275052850529505305053150532505335053450535505365053750538505395054050541505425054350544505455054650547505485054950550505515055250553505545055550556505575055850559505605056150562505635056450565505665056750568505695057050571505725057350574505755057650577505785057950580505815058250583505845058550586505875058850589505905059150592505935059450595505965059750598505995060050601506025060350604506055060650607506085060950610506115061250613506145061550616506175061850619506205062150622506235062450625506265062750628506295063050631506325063350634506355063650637506385063950640506415064250643506445064550646506475064850649506505065150652506535065450655506565065750658506595066050661506625066350664506655066650667506685066950670506715067250673506745067550676506775067850679506805068150682506835068450685506865068750688506895069050691506925069350694506955069650697506985069950700507015070250703507045070550706507075070850709507105071150712507135071450715507165071750718507195072050721507225072350724507255072650727507285072950730507315073250733507345073550736507375073850739507405074150742507435074450745507465074750748507495075050751507525075350754507555075650757507585075950760507615076250763507645076550766507675076850769507705077150772507735077450775507765077750778507795078050781507825078350784507855078650787507885078950790507915079250793507945079550796507975079850799508005080150802508035080450805508065080750808508095081050811508125081350814508155081650817508185081950820508215082250823508245082550826508275082850829508305083150832508335083450835508365083750838508395084050841508425084350844508455084650847508485084950850508515085250853508545085550856508575085850859508605086150862508635086450865508665086750868508695087050871508725087350874508755087650877508785087950880508815088250883508845088550886508875088850889508905089150892508935089450895508965089750898508995090050901509025090350904509055090650907509085090950910509115091250913509145091550916509175091850919509205092150922509235092450925509265092750928509295093050931509325093350934509355093650937509385093950940509415094250943509445094550946509475094850949509505095150952509535095450955509565095750958509595096050961509625096350964509655096650967509685096950970509715097250973509745097550976509775097850979509805098150982509835098450985509865098750988509895099050991509925099350994509955099650997509985099951000510015100251003510045100551006510075100851009510105101151012510135101451015510165101751018510195102051021510225102351024510255102651027510285102951030510315103251033510345103551036510375103851039510405104151042510435104451045510465104751048510495105051051510525105351054510555105651057510585105951060510615106251063510645106551066510675106851069510705107151072510735107451075510765107751078510795108051081510825108351084510855108651087510885108951090510915109251093510945109551096510975109851099511005110151102511035110451105511065110751108511095111051111511125111351114511155111651117511185111951120511215112251123511245112551126511275112851129511305113151132511335113451135511365113751138511395114051141511425114351144511455114651147511485114951150511515115251153511545115551156511575115851159511605116151162511635116451165511665116751168511695117051171511725117351174511755117651177511785117951180511815118251183511845118551186511875118851189511905119151192511935119451195511965119751198511995120051201512025120351204512055120651207512085120951210512115121251213512145121551216512175121851219512205122151222512235122451225512265122751228512295123051231512325123351234512355123651237512385123951240512415124251243512445124551246512475124851249512505125151252512535125451255512565125751258512595126051261512625126351264512655126651267512685126951270512715127251273512745127551276512775127851279512805128151282512835128451285512865128751288512895129051291512925129351294512955129651297512985129951300513015130251303513045130551306513075130851309513105131151312513135131451315513165131751318513195132051321513225132351324513255132651327513285132951330513315133251333513345133551336513375133851339513405134151342513435134451345513465134751348513495135051351513525135351354513555135651357513585135951360513615136251363513645136551366513675136851369513705137151372513735137451375513765137751378513795138051381513825138351384513855138651387513885138951390513915139251393513945139551396513975139851399514005140151402514035140451405514065140751408514095141051411514125141351414514155141651417514185141951420514215142251423514245142551426514275142851429514305143151432514335143451435514365143751438514395144051441514425144351444514455144651447514485144951450514515145251453514545145551456514575145851459514605146151462514635146451465514665146751468514695147051471514725147351474514755147651477514785147951480514815148251483514845148551486514875148851489514905149151492514935149451495514965149751498514995150051501515025150351504515055150651507515085150951510515115151251513515145151551516515175151851519515205152151522515235152451525515265152751528515295153051531515325153351534515355153651537515385153951540515415154251543515445154551546515475154851549515505155151552515535155451555515565155751558515595156051561515625156351564515655156651567515685156951570515715157251573515745157551576515775157851579515805158151582515835158451585515865158751588515895159051591515925159351594515955159651597515985159951600516015160251603516045160551606516075160851609516105161151612516135161451615516165161751618516195162051621516225162351624516255162651627516285162951630516315163251633516345163551636516375163851639516405164151642516435164451645516465164751648516495165051651516525165351654516555165651657516585165951660516615166251663516645166551666516675166851669516705167151672516735167451675516765167751678516795168051681516825168351684516855168651687516885168951690516915169251693516945169551696516975169851699517005170151702517035170451705517065170751708517095171051711517125171351714517155171651717517185171951720517215172251723517245172551726517275172851729517305173151732517335173451735517365173751738517395174051741517425174351744517455174651747517485174951750517515175251753517545175551756517575175851759517605176151762517635176451765517665176751768517695177051771517725177351774517755177651777517785177951780517815178251783517845178551786517875178851789517905179151792517935179451795517965179751798517995180051801518025180351804518055180651807518085180951810518115181251813518145181551816518175181851819518205182151822518235182451825518265182751828518295183051831518325183351834518355183651837518385183951840518415184251843518445184551846518475184851849518505185151852518535185451855518565185751858518595186051861518625186351864518655186651867518685186951870518715187251873518745187551876518775187851879518805188151882518835188451885518865188751888518895189051891518925189351894518955189651897518985189951900519015190251903519045190551906519075190851909519105191151912519135191451915519165191751918519195192051921519225192351924519255192651927519285192951930519315193251933519345193551936519375193851939519405194151942519435194451945519465194751948519495195051951519525195351954519555195651957519585195951960519615196251963519645196551966519675196851969519705197151972519735197451975519765197751978519795198051981519825198351984519855198651987519885198951990519915199251993519945199551996519975199851999520005200152002520035200452005520065200752008520095201052011520125201352014520155201652017520185201952020520215202252023520245202552026520275202852029520305203152032520335203452035520365203752038520395204052041520425204352044520455204652047520485204952050520515205252053520545205552056520575205852059520605206152062520635206452065520665206752068520695207052071520725207352074520755207652077520785207952080520815208252083520845208552086520875208852089520905209152092520935209452095520965209752098520995210052101521025210352104521055210652107521085210952110521115211252113521145211552116521175211852119521205212152122521235212452125521265212752128521295213052131521325213352134521355213652137521385213952140521415214252143521445214552146521475214852149521505215152152521535215452155521565215752158521595216052161521625216352164521655216652167521685216952170521715217252173521745217552176521775217852179521805218152182521835218452185521865218752188521895219052191521925219352194521955219652197521985219952200522015220252203522045220552206522075220852209522105221152212522135221452215522165221752218522195222052221522225222352224522255222652227522285222952230522315223252233522345223552236522375223852239522405224152242522435224452245522465224752248522495225052251522525225352254522555225652257522585225952260522615226252263522645226552266522675226852269522705227152272522735227452275522765227752278522795228052281522825228352284522855228652287522885228952290522915229252293522945229552296522975229852299523005230152302523035230452305523065230752308523095231052311523125231352314523155231652317523185231952320523215232252323523245232552326523275232852329523305233152332523335233452335523365233752338523395234052341523425234352344523455234652347523485234952350523515235252353523545235552356523575235852359523605236152362523635236452365523665236752368523695237052371523725237352374523755237652377523785237952380523815238252383523845238552386523875238852389523905239152392523935239452395523965239752398523995240052401524025240352404524055240652407524085240952410524115241252413524145241552416524175241852419524205242152422524235242452425524265242752428524295243052431524325243352434524355243652437524385243952440524415244252443524445244552446524475244852449524505245152452524535245452455524565245752458524595246052461524625246352464524655246652467524685246952470524715247252473524745247552476524775247852479524805248152482524835248452485524865248752488524895249052491524925249352494524955249652497524985249952500525015250252503525045250552506525075250852509525105251152512525135251452515525165251752518525195252052521525225252352524525255252652527525285252952530525315253252533525345253552536525375253852539525405254152542525435254452545525465254752548525495255052551525525255352554525555255652557525585255952560525615256252563525645256552566525675256852569525705257152572525735257452575525765257752578525795258052581525825258352584525855258652587525885258952590525915259252593525945259552596525975259852599526005260152602526035260452605526065260752608526095261052611526125261352614526155261652617526185261952620526215262252623526245262552626526275262852629526305263152632526335263452635526365263752638526395264052641526425264352644526455264652647526485264952650526515265252653526545265552656526575265852659526605266152662526635266452665526665266752668526695267052671526725267352674526755267652677526785267952680526815268252683526845268552686526875268852689526905269152692526935269452695526965269752698526995270052701527025270352704527055270652707527085270952710527115271252713527145271552716527175271852719527205272152722527235272452725527265272752728527295273052731527325273352734527355273652737527385273952740527415274252743527445274552746527475274852749527505275152752527535275452755527565275752758527595276052761527625276352764527655276652767527685276952770527715277252773527745277552776527775277852779527805278152782527835278452785527865278752788527895279052791527925279352794527955279652797527985279952800528015280252803528045280552806528075280852809528105281152812528135281452815528165281752818528195282052821528225282352824528255282652827528285282952830528315283252833528345283552836528375283852839528405284152842528435284452845528465284752848528495285052851528525285352854528555285652857528585285952860528615286252863528645286552866528675286852869528705287152872528735287452875528765287752878528795288052881528825288352884528855288652887528885288952890528915289252893528945289552896528975289852899529005290152902529035290452905529065290752908529095291052911529125291352914529155291652917529185291952920529215292252923529245292552926529275292852929529305293152932529335293452935529365293752938529395294052941529425294352944529455294652947529485294952950529515295252953529545295552956529575295852959529605296152962529635296452965529665296752968529695297052971529725297352974529755297652977529785297952980529815298252983529845298552986529875298852989529905299152992529935299452995529965299752998529995300053001530025300353004530055300653007530085300953010530115301253013530145301553016530175301853019530205302153022530235302453025530265302753028530295303053031530325303353034530355303653037530385303953040530415304253043530445304553046530475304853049530505305153052530535305453055530565305753058530595306053061530625306353064530655306653067530685306953070530715307253073530745307553076530775307853079530805308153082530835308453085530865308753088530895309053091530925309353094530955309653097530985309953100531015310253103531045310553106531075310853109531105311153112531135311453115531165311753118531195312053121531225312353124531255312653127531285312953130531315313253133531345313553136531375313853139531405314153142531435314453145531465314753148531495315053151531525315353154531555315653157531585315953160531615316253163531645316553166531675316853169531705317153172531735317453175531765317753178531795318053181531825318353184531855318653187531885318953190531915319253193531945319553196531975319853199532005320153202532035320453205532065320753208532095321053211532125321353214532155321653217532185321953220532215322253223532245322553226532275322853229532305323153232532335323453235532365323753238532395324053241532425324353244532455324653247532485324953250532515325253253532545325553256532575325853259532605326153262532635326453265532665326753268532695327053271532725327353274532755327653277532785327953280532815328253283532845328553286532875328853289532905329153292532935329453295532965329753298532995330053301533025330353304533055330653307533085330953310533115331253313533145331553316533175331853319533205332153322533235332453325533265332753328533295333053331533325333353334533355333653337533385333953340533415334253343533445334553346533475334853349533505335153352533535335453355533565335753358533595336053361533625336353364533655336653367533685336953370533715337253373533745337553376533775337853379533805338153382533835338453385533865338753388533895339053391533925339353394533955339653397533985339953400534015340253403534045340553406534075340853409534105341153412534135341453415534165341753418534195342053421534225342353424534255342653427534285342953430534315343253433534345343553436534375343853439534405344153442534435344453445534465344753448534495345053451534525345353454534555345653457534585345953460534615346253463534645346553466534675346853469534705347153472534735347453475534765347753478534795348053481534825348353484534855348653487534885348953490534915349253493534945349553496534975349853499535005350153502535035350453505535065350753508535095351053511535125351353514535155351653517535185351953520535215352253523535245352553526535275352853529535305353153532535335353453535535365353753538535395354053541535425354353544535455354653547535485354953550535515355253553535545355553556535575355853559535605356153562535635356453565535665356753568535695357053571535725357353574535755357653577535785357953580535815358253583535845358553586535875358853589535905359153592535935359453595535965359753598535995360053601536025360353604536055360653607536085360953610536115361253613536145361553616536175361853619536205362153622536235362453625536265362753628536295363053631536325363353634536355363653637536385363953640536415364253643536445364553646536475364853649536505365153652536535365453655536565365753658536595366053661536625366353664536655366653667536685366953670536715367253673536745367553676536775367853679536805368153682536835368453685536865368753688536895369053691536925369353694536955369653697536985369953700537015370253703537045370553706537075370853709537105371153712537135371453715537165371753718537195372053721537225372353724537255372653727537285372953730537315373253733537345373553736537375373853739537405374153742537435374453745537465374753748537495375053751537525375353754537555375653757537585375953760537615376253763537645376553766537675376853769537705377153772537735377453775537765377753778537795378053781537825378353784537855378653787537885378953790537915379253793537945379553796537975379853799538005380153802538035380453805538065380753808538095381053811538125381353814538155381653817538185381953820538215382253823538245382553826538275382853829538305383153832538335383453835538365383753838538395384053841538425384353844538455384653847538485384953850538515385253853538545385553856538575385853859538605386153862538635386453865538665386753868538695387053871538725387353874538755387653877538785387953880538815388253883538845388553886538875388853889538905389153892538935389453895538965389753898538995390053901539025390353904539055390653907539085390953910539115391253913539145391553916539175391853919539205392153922539235392453925539265392753928539295393053931539325393353934539355393653937539385393953940539415394253943539445394553946539475394853949539505395153952539535395453955539565395753958539595396053961539625396353964539655396653967539685396953970539715397253973539745397553976539775397853979539805398153982539835398453985539865398753988539895399053991539925399353994539955399653997539985399954000540015400254003540045400554006540075400854009540105401154012540135401454015540165401754018540195402054021540225402354024540255402654027540285402954030540315403254033540345403554036540375403854039540405404154042540435404454045540465404754048540495405054051540525405354054540555405654057540585405954060540615406254063540645406554066540675406854069540705407154072540735407454075540765407754078540795408054081540825408354084540855408654087540885408954090540915409254093540945409554096540975409854099541005410154102541035410454105541065410754108541095411054111541125411354114541155411654117541185411954120541215412254123541245412554126541275412854129541305413154132541335413454135541365413754138541395414054141541425414354144541455414654147541485414954150541515415254153541545415554156541575415854159541605416154162541635416454165541665416754168541695417054171541725417354174541755417654177541785417954180541815418254183541845418554186541875418854189541905419154192541935419454195541965419754198541995420054201542025420354204542055420654207542085420954210542115421254213542145421554216542175421854219542205422154222542235422454225542265422754228542295423054231542325423354234542355423654237542385423954240542415424254243542445424554246542475424854249542505425154252542535425454255542565425754258542595426054261542625426354264542655426654267542685426954270542715427254273542745427554276542775427854279542805428154282542835428454285542865428754288542895429054291542925429354294542955429654297542985429954300543015430254303543045430554306543075430854309543105431154312543135431454315543165431754318543195432054321543225432354324543255432654327543285432954330543315433254333543345433554336543375433854339543405434154342543435434454345543465434754348543495435054351543525435354354543555435654357543585435954360543615436254363543645436554366543675436854369543705437154372543735437454375543765437754378543795438054381543825438354384543855438654387543885438954390543915439254393543945439554396543975439854399544005440154402544035440454405544065440754408544095441054411544125441354414544155441654417544185441954420544215442254423544245442554426544275442854429544305443154432544335443454435544365443754438544395444054441544425444354444544455444654447544485444954450544515445254453544545445554456544575445854459544605446154462544635446454465544665446754468544695447054471544725447354474544755447654477544785447954480544815448254483544845448554486544875448854489544905449154492544935449454495544965449754498544995450054501545025450354504545055450654507545085450954510545115451254513545145451554516545175451854519545205452154522545235452454525545265452754528545295453054531545325453354534545355453654537545385453954540545415454254543545445454554546545475454854549545505455154552545535455454555545565455754558545595456054561545625456354564545655456654567545685456954570545715457254573545745457554576545775457854579545805458154582545835458454585545865458754588545895459054591545925459354594545955459654597545985459954600546015460254603546045460554606546075460854609546105461154612546135461454615546165461754618546195462054621546225462354624546255462654627546285462954630546315463254633546345463554636546375463854639546405464154642546435464454645546465464754648546495465054651546525465354654546555465654657546585465954660546615466254663546645466554666546675466854669546705467154672546735467454675546765467754678546795468054681546825468354684546855468654687546885468954690546915469254693546945469554696546975469854699547005470154702547035470454705547065470754708547095471054711547125471354714547155471654717547185471954720547215472254723547245472554726547275472854729547305473154732547335473454735547365473754738547395474054741547425474354744547455474654747547485474954750547515475254753547545475554756547575475854759547605476154762547635476454765547665476754768547695477054771547725477354774547755477654777547785477954780547815478254783547845478554786547875478854789547905479154792547935479454795547965479754798547995480054801548025480354804548055480654807548085480954810548115481254813548145481554816548175481854819548205482154822548235482454825548265482754828548295483054831548325483354834548355483654837548385483954840548415484254843548445484554846548475484854849548505485154852548535485454855548565485754858548595486054861548625486354864548655486654867548685486954870548715487254873548745487554876548775487854879548805488154882548835488454885548865488754888548895489054891548925489354894548955489654897548985489954900549015490254903549045490554906549075490854909549105491154912549135491454915549165491754918549195492054921549225492354924549255492654927549285492954930549315493254933549345493554936549375493854939549405494154942549435494454945549465494754948549495495054951549525495354954549555495654957549585495954960549615496254963549645496554966549675496854969549705497154972549735497454975549765497754978549795498054981549825498354984549855498654987549885498954990549915499254993549945499554996549975499854999550005500155002550035500455005550065500755008550095501055011550125501355014550155501655017550185501955020550215502255023550245502555026550275502855029550305503155032550335503455035550365503755038550395504055041550425504355044550455504655047550485504955050550515505255053550545505555056550575505855059550605506155062550635506455065550665506755068550695507055071550725507355074550755507655077550785507955080550815508255083550845508555086550875508855089550905509155092550935509455095550965509755098550995510055101551025510355104551055510655107551085510955110551115511255113551145511555116551175511855119551205512155122551235512455125551265512755128551295513055131551325513355134551355513655137551385513955140551415514255143551445514555146551475514855149551505515155152551535515455155551565515755158551595516055161551625516355164551655516655167551685516955170551715517255173551745517555176551775517855179551805518155182551835518455185551865518755188551895519055191551925519355194551955519655197551985519955200552015520255203552045520555206552075520855209552105521155212552135521455215552165521755218552195522055221552225522355224552255522655227552285522955230552315523255233552345523555236552375523855239552405524155242552435524455245552465524755248552495525055251552525525355254552555525655257552585525955260552615526255263552645526555266552675526855269552705527155272552735527455275552765527755278552795528055281552825528355284552855528655287552885528955290552915529255293552945529555296552975529855299553005530155302553035530455305553065530755308553095531055311553125531355314553155531655317553185531955320553215532255323553245532555326553275532855329553305533155332553335533455335553365533755338553395534055341553425534355344553455534655347553485534955350553515535255353553545535555356553575535855359553605536155362553635536455365553665536755368553695537055371553725537355374553755537655377553785537955380553815538255383553845538555386553875538855389553905539155392553935539455395553965539755398553995540055401554025540355404554055540655407554085540955410554115541255413554145541555416554175541855419554205542155422554235542455425554265542755428554295543055431554325543355434554355543655437554385543955440554415544255443554445544555446554475544855449554505545155452554535545455455554565545755458554595546055461554625546355464554655546655467554685546955470554715547255473554745547555476554775547855479554805548155482554835548455485554865548755488554895549055491554925549355494554955549655497554985549955500555015550255503555045550555506555075550855509555105551155512555135551455515555165551755518555195552055521555225552355524555255552655527555285552955530555315553255533555345553555536555375553855539555405554155542555435554455545555465554755548555495555055551555525555355554555555555655557555585555955560555615556255563555645556555566555675556855569555705557155572555735557455575555765557755578555795558055581555825558355584555855558655587555885558955590555915559255593555945559555596555975559855599556005560155602556035560455605556065560755608556095561055611556125561355614556155561655617556185561955620556215562255623556245562555626556275562855629556305563155632556335563455635556365563755638556395564055641556425564355644556455564655647556485564955650556515565255653556545565555656556575565855659556605566155662556635566455665556665566755668556695567055671556725567355674556755567655677556785567955680556815568255683556845568555686556875568855689556905569155692556935569455695556965569755698556995570055701557025570355704557055570655707557085570955710557115571255713557145571555716557175571855719557205572155722557235572455725557265572755728557295573055731557325573355734557355573655737557385573955740557415574255743557445574555746557475574855749557505575155752557535575455755557565575755758557595576055761557625576355764557655576655767557685576955770557715577255773557745577555776557775577855779557805578155782557835578455785557865578755788557895579055791557925579355794557955579655797557985579955800558015580255803558045580555806558075580855809558105581155812558135581455815558165581755818558195582055821558225582355824558255582655827558285582955830558315583255833558345583555836558375583855839558405584155842558435584455845558465584755848558495585055851558525585355854558555585655857558585585955860558615586255863558645586555866558675586855869558705587155872558735587455875558765587755878558795588055881558825588355884558855588655887558885588955890558915589255893558945589555896558975589855899559005590155902559035590455905559065590755908559095591055911559125591355914559155591655917559185591955920559215592255923559245592555926559275592855929559305593155932559335593455935559365593755938559395594055941559425594355944559455594655947559485594955950559515595255953559545595555956559575595855959559605596155962559635596455965559665596755968559695597055971559725597355974559755597655977559785597955980559815598255983559845598555986559875598855989559905599155992559935599455995559965599755998559995600056001560025600356004560055600656007560085600956010560115601256013560145601556016560175601856019560205602156022560235602456025560265602756028560295603056031560325603356034560355603656037560385603956040560415604256043560445604556046560475604856049560505605156052560535605456055560565605756058560595606056061560625606356064560655606656067560685606956070560715607256073560745607556076560775607856079560805608156082560835608456085560865608756088560895609056091560925609356094560955609656097560985609956100561015610256103561045610556106561075610856109561105611156112561135611456115561165611756118561195612056121561225612356124561255612656127561285612956130561315613256133561345613556136561375613856139561405614156142561435614456145561465614756148561495615056151561525615356154561555615656157561585615956160561615616256163561645616556166561675616856169561705617156172561735617456175561765617756178561795618056181561825618356184561855618656187561885618956190561915619256193561945619556196561975619856199562005620156202562035620456205562065620756208562095621056211562125621356214562155621656217562185621956220562215622256223562245622556226562275622856229562305623156232562335623456235562365623756238562395624056241562425624356244562455624656247562485624956250562515625256253562545625556256562575625856259562605626156262562635626456265562665626756268562695627056271562725627356274562755627656277562785627956280562815628256283562845628556286562875628856289562905629156292562935629456295562965629756298562995630056301563025630356304563055630656307563085630956310563115631256313563145631556316563175631856319563205632156322563235632456325563265632756328563295633056331563325633356334563355633656337563385633956340563415634256343563445634556346563475634856349563505635156352563535635456355563565635756358563595636056361563625636356364563655636656367563685636956370563715637256373563745637556376563775637856379563805638156382563835638456385563865638756388563895639056391563925639356394563955639656397563985639956400564015640256403564045640556406564075640856409564105641156412564135641456415564165641756418564195642056421564225642356424564255642656427564285642956430564315643256433564345643556436564375643856439564405644156442564435644456445564465644756448564495645056451564525645356454564555645656457564585645956460564615646256463564645646556466564675646856469564705647156472564735647456475564765647756478564795648056481564825648356484564855648656487564885648956490564915649256493564945649556496564975649856499565005650156502565035650456505565065650756508565095651056511565125651356514565155651656517565185651956520565215652256523565245652556526565275652856529565305653156532565335653456535565365653756538565395654056541565425654356544565455654656547565485654956550565515655256553565545655556556565575655856559565605656156562565635656456565565665656756568565695657056571565725657356574565755657656577565785657956580565815658256583565845658556586565875658856589565905659156592565935659456595565965659756598565995660056601566025660356604566055660656607566085660956610566115661256613566145661556616566175661856619566205662156622566235662456625566265662756628566295663056631566325663356634566355663656637566385663956640566415664256643566445664556646566475664856649566505665156652566535665456655566565665756658566595666056661566625666356664566655666656667566685666956670566715667256673566745667556676566775667856679566805668156682566835668456685566865668756688566895669056691566925669356694566955669656697566985669956700567015670256703567045670556706567075670856709567105671156712567135671456715567165671756718567195672056721567225672356724567255672656727567285672956730567315673256733567345673556736567375673856739567405674156742567435674456745567465674756748567495675056751567525675356754567555675656757567585675956760567615676256763567645676556766567675676856769567705677156772567735677456775567765677756778567795678056781567825678356784567855678656787567885678956790567915679256793567945679556796567975679856799568005680156802568035680456805568065680756808568095681056811568125681356814568155681656817568185681956820568215682256823568245682556826568275682856829568305683156832568335683456835568365683756838568395684056841568425684356844568455684656847568485684956850568515685256853568545685556856568575685856859568605686156862568635686456865568665686756868568695687056871568725687356874568755687656877568785687956880568815688256883568845688556886568875688856889568905689156892568935689456895568965689756898568995690056901569025690356904569055690656907569085690956910569115691256913569145691556916569175691856919569205692156922569235692456925569265692756928569295693056931569325693356934569355693656937569385693956940569415694256943569445694556946569475694856949569505695156952569535695456955569565695756958569595696056961569625696356964569655696656967569685696956970569715697256973569745697556976569775697856979569805698156982569835698456985569865698756988569895699056991569925699356994569955699656997569985699957000570015700257003570045700557006570075700857009570105701157012570135701457015570165701757018570195702057021570225702357024570255702657027570285702957030570315703257033570345703557036570375703857039570405704157042570435704457045570465704757048570495705057051570525705357054570555705657057570585705957060570615706257063570645706557066570675706857069570705707157072570735707457075570765707757078570795708057081570825708357084570855708657087570885708957090570915709257093570945709557096570975709857099571005710157102571035710457105571065710757108571095711057111571125711357114571155711657117571185711957120571215712257123571245712557126571275712857129571305713157132571335713457135571365713757138571395714057141571425714357144571455714657147571485714957150571515715257153571545715557156571575715857159571605716157162571635716457165571665716757168571695717057171571725717357174571755717657177571785717957180571815718257183571845718557186571875718857189571905719157192571935719457195571965719757198571995720057201572025720357204572055720657207572085720957210572115721257213572145721557216572175721857219572205722157222572235722457225572265722757228572295723057231572325723357234572355723657237572385723957240572415724257243572445724557246572475724857249572505725157252572535725457255572565725757258572595726057261572625726357264572655726657267572685726957270572715727257273572745727557276572775727857279572805728157282572835728457285572865728757288572895729057291572925729357294572955729657297572985729957300573015730257303573045730557306573075730857309573105731157312573135731457315573165731757318573195732057321573225732357324573255732657327573285732957330573315733257333573345733557336573375733857339573405734157342573435734457345573465734757348573495735057351573525735357354573555735657357573585735957360573615736257363573645736557366573675736857369573705737157372573735737457375573765737757378573795738057381573825738357384573855738657387573885738957390573915739257393573945739557396573975739857399574005740157402574035740457405574065740757408574095741057411574125741357414574155741657417574185741957420574215742257423574245742557426574275742857429574305743157432574335743457435574365743757438574395744057441574425744357444574455744657447574485744957450574515745257453574545745557456574575745857459574605746157462574635746457465574665746757468574695747057471574725747357474574755747657477574785747957480574815748257483574845748557486574875748857489574905749157492574935749457495574965749757498574995750057501575025750357504575055750657507575085750957510575115751257513575145751557516575175751857519575205752157522575235752457525575265752757528575295753057531575325753357534575355753657537575385753957540575415754257543575445754557546575475754857549575505755157552575535755457555575565755757558575595756057561575625756357564575655756657567575685756957570575715757257573575745757557576575775757857579575805758157582575835758457585575865758757588575895759057591575925759357594575955759657597575985759957600576015760257603576045760557606576075760857609576105761157612576135761457615576165761757618576195762057621576225762357624576255762657627576285762957630576315763257633576345763557636576375763857639576405764157642576435764457645576465764757648576495765057651576525765357654576555765657657576585765957660576615766257663576645766557666576675766857669576705767157672576735767457675576765767757678576795768057681576825768357684576855768657687576885768957690576915769257693576945769557696576975769857699577005770157702577035770457705577065770757708577095771057711577125771357714577155771657717577185771957720577215772257723577245772557726577275772857729577305773157732577335773457735577365773757738577395774057741577425774357744577455774657747577485774957750577515775257753577545775557756577575775857759577605776157762577635776457765577665776757768577695777057771577725777357774577755777657777577785777957780577815778257783577845778557786577875778857789577905779157792577935779457795577965779757798577995780057801578025780357804578055780657807578085780957810578115781257813578145781557816578175781857819578205782157822578235782457825578265782757828578295783057831578325783357834578355783657837578385783957840578415784257843578445784557846578475784857849578505785157852578535785457855578565785757858578595786057861578625786357864578655786657867578685786957870578715787257873578745787557876578775787857879578805788157882578835788457885578865788757888578895789057891578925789357894578955789657897578985789957900579015790257903579045790557906579075790857909579105791157912579135791457915579165791757918579195792057921579225792357924579255792657927579285792957930579315793257933579345793557936579375793857939579405794157942579435794457945579465794757948579495795057951579525795357954579555795657957579585795957960579615796257963579645796557966579675796857969579705797157972579735797457975579765797757978579795798057981579825798357984579855798657987579885798957990579915799257993579945799557996579975799857999580005800158002580035800458005580065800758008580095801058011580125801358014580155801658017580185801958020580215802258023580245802558026580275802858029580305803158032580335803458035580365803758038580395804058041580425804358044580455804658047580485804958050580515805258053580545805558056580575805858059580605806158062580635806458065580665806758068580695807058071580725807358074580755807658077580785807958080580815808258083580845808558086580875808858089580905809158092580935809458095580965809758098580995810058101581025810358104581055810658107581085810958110581115811258113581145811558116581175811858119581205812158122581235812458125581265812758128581295813058131581325813358134581355813658137581385813958140581415814258143581445814558146581475814858149581505815158152581535815458155581565815758158581595816058161581625816358164581655816658167581685816958170581715817258173581745817558176581775817858179581805818158182581835818458185581865818758188581895819058191581925819358194581955819658197581985819958200582015820258203582045820558206582075820858209582105821158212582135821458215582165821758218582195822058221582225822358224582255822658227582285822958230582315823258233582345823558236582375823858239582405824158242582435824458245582465824758248582495825058251582525825358254582555825658257582585825958260582615826258263582645826558266582675826858269582705827158272582735827458275582765827758278582795828058281582825828358284582855828658287582885828958290582915829258293582945829558296582975829858299583005830158302583035830458305583065830758308583095831058311583125831358314583155831658317583185831958320583215832258323583245832558326583275832858329583305833158332583335833458335583365833758338583395834058341583425834358344583455834658347583485834958350583515835258353583545835558356583575835858359583605836158362583635836458365583665836758368583695837058371583725837358374583755837658377583785837958380583815838258383583845838558386583875838858389583905839158392583935839458395583965839758398583995840058401584025840358404584055840658407584085840958410584115841258413584145841558416584175841858419584205842158422584235842458425584265842758428584295843058431584325843358434584355843658437584385843958440584415844258443584445844558446584475844858449584505845158452584535845458455584565845758458584595846058461584625846358464584655846658467584685846958470584715847258473584745847558476584775847858479584805848158482584835848458485584865848758488584895849058491584925849358494584955849658497584985849958500585015850258503585045850558506585075850858509585105851158512585135851458515585165851758518585195852058521585225852358524585255852658527585285852958530585315853258533585345853558536585375853858539585405854158542585435854458545585465854758548585495855058551585525855358554585555855658557585585855958560585615856258563585645856558566585675856858569585705857158572585735857458575585765857758578585795858058581585825858358584585855858658587585885858958590585915859258593585945859558596585975859858599586005860158602586035860458605586065860758608586095861058611586125861358614586155861658617586185861958620586215862258623586245862558626586275862858629586305863158632586335863458635586365863758638586395864058641586425864358644586455864658647586485864958650586515865258653586545865558656586575865858659586605866158662586635866458665586665866758668586695867058671586725867358674586755867658677586785867958680586815868258683586845868558686586875868858689586905869158692586935869458695586965869758698586995870058701587025870358704587055870658707587085870958710587115871258713587145871558716587175871858719587205872158722587235872458725587265872758728587295873058731587325873358734587355873658737587385873958740587415874258743587445874558746587475874858749587505875158752587535875458755587565875758758587595876058761587625876358764587655876658767587685876958770587715877258773587745877558776587775877858779587805878158782587835878458785587865878758788587895879058791587925879358794587955879658797587985879958800588015880258803588045880558806588075880858809588105881158812588135881458815588165881758818588195882058821588225882358824588255882658827588285882958830588315883258833588345883558836588375883858839588405884158842588435884458845588465884758848588495885058851588525885358854588555885658857588585885958860588615886258863588645886558866588675886858869588705887158872588735887458875588765887758878588795888058881588825888358884588855888658887588885888958890588915889258893588945889558896588975889858899589005890158902589035890458905589065890758908589095891058911589125891358914589155891658917589185891958920589215892258923589245892558926589275892858929589305893158932589335893458935589365893758938589395894058941589425894358944589455894658947589485894958950589515895258953589545895558956589575895858959589605896158962589635896458965589665896758968589695897058971589725897358974589755897658977589785897958980589815898258983589845898558986589875898858989589905899158992589935899458995589965899758998589995900059001590025900359004590055900659007590085900959010590115901259013590145901559016590175901859019590205902159022590235902459025590265902759028590295903059031590325903359034590355903659037590385903959040590415904259043590445904559046590475904859049590505905159052590535905459055590565905759058590595906059061590625906359064590655906659067590685906959070590715907259073590745907559076590775907859079590805908159082590835908459085590865908759088590895909059091590925909359094590955909659097590985909959100591015910259103591045910559106591075910859109591105911159112591135911459115591165911759118591195912059121591225912359124591255912659127591285912959130591315913259133591345913559136591375913859139591405914159142591435914459145591465914759148591495915059151591525915359154591555915659157591585915959160591615916259163591645916559166591675916859169591705917159172591735917459175591765917759178591795918059181591825918359184591855918659187591885918959190591915919259193591945919559196591975919859199592005920159202592035920459205592065920759208592095921059211592125921359214592155921659217592185921959220592215922259223592245922559226592275922859229592305923159232592335923459235592365923759238592395924059241592425924359244592455924659247592485924959250592515925259253592545925559256592575925859259592605926159262592635926459265592665926759268592695927059271592725927359274592755927659277592785927959280592815928259283592845928559286592875928859289592905929159292592935929459295592965929759298592995930059301593025930359304593055930659307593085930959310593115931259313593145931559316593175931859319593205932159322593235932459325593265932759328593295933059331593325933359334593355933659337593385933959340593415934259343593445934559346593475934859349593505935159352593535935459355593565935759358593595936059361593625936359364593655936659367593685936959370593715937259373593745937559376593775937859379593805938159382593835938459385593865938759388593895939059391593925939359394593955939659397593985939959400594015940259403594045940559406594075940859409594105941159412594135941459415594165941759418594195942059421594225942359424594255942659427594285942959430594315943259433594345943559436594375943859439594405944159442594435944459445594465944759448594495945059451594525945359454594555945659457594585945959460594615946259463594645946559466594675946859469594705947159472594735947459475594765947759478594795948059481594825948359484594855948659487594885948959490594915949259493594945949559496594975949859499595005950159502595035950459505595065950759508595095951059511595125951359514595155951659517595185951959520595215952259523595245952559526595275952859529595305953159532595335953459535595365953759538595395954059541595425954359544595455954659547595485954959550595515955259553595545955559556595575955859559595605956159562595635956459565595665956759568595695957059571595725957359574595755957659577595785957959580595815958259583595845958559586595875958859589595905959159592595935959459595595965959759598595995960059601596025960359604596055960659607596085960959610596115961259613596145961559616596175961859619596205962159622596235962459625596265962759628596295963059631596325963359634596355963659637596385963959640596415964259643596445964559646596475964859649596505965159652596535965459655596565965759658596595966059661596625966359664596655966659667596685966959670596715967259673596745967559676596775967859679596805968159682596835968459685596865968759688596895969059691596925969359694596955969659697596985969959700597015970259703597045970559706597075970859709597105971159712597135971459715597165971759718597195972059721597225972359724597255972659727597285972959730597315973259733597345973559736597375973859739597405974159742597435974459745597465974759748597495975059751597525975359754597555975659757597585975959760597615976259763597645976559766597675976859769597705977159772597735977459775597765977759778597795978059781597825978359784597855978659787597885978959790597915979259793597945979559796597975979859799598005980159802598035980459805598065980759808598095981059811598125981359814598155981659817598185981959820598215982259823598245982559826598275982859829598305983159832598335983459835598365983759838598395984059841598425984359844598455984659847598485984959850598515985259853598545985559856598575985859859598605986159862598635986459865598665986759868598695987059871598725987359874598755987659877598785987959880598815988259883598845988559886598875988859889598905989159892598935989459895598965989759898598995990059901599025990359904599055990659907599085990959910599115991259913599145991559916599175991859919599205992159922599235992459925599265992759928599295993059931599325993359934599355993659937599385993959940599415994259943599445994559946599475994859949599505995159952599535995459955599565995759958599595996059961599625996359964599655996659967599685996959970599715997259973599745997559976599775997859979599805998159982599835998459985599865998759988599895999059991599925999359994599955999659997599985999960000600016000260003600046000560006600076000860009600106001160012600136001460015600166001760018600196002060021600226002360024600256002660027600286002960030600316003260033600346003560036600376003860039600406004160042600436004460045600466004760048600496005060051600526005360054600556005660057600586005960060600616006260063600646006560066600676006860069600706007160072600736007460075600766007760078600796008060081600826008360084600856008660087600886008960090600916009260093600946009560096600976009860099601006010160102601036010460105601066010760108601096011060111601126011360114601156011660117601186011960120601216012260123601246012560126601276012860129601306013160132601336013460135601366013760138601396014060141601426014360144601456014660147601486014960150601516015260153601546015560156601576015860159601606016160162601636016460165601666016760168601696017060171601726017360174601756017660177601786017960180601816018260183601846018560186601876018860189601906019160192601936019460195601966019760198601996020060201602026020360204602056020660207602086020960210602116021260213602146021560216602176021860219602206022160222602236022460225602266022760228602296023060231602326023360234602356023660237602386023960240602416024260243602446024560246602476024860249602506025160252602536025460255602566025760258602596026060261602626026360264602656026660267602686026960270602716027260273602746027560276602776027860279602806028160282602836028460285602866028760288602896029060291602926029360294602956029660297602986029960300603016030260303603046030560306603076030860309603106031160312603136031460315603166031760318603196032060321603226032360324603256032660327603286032960330603316033260333603346033560336603376033860339603406034160342603436034460345603466034760348603496035060351603526035360354603556035660357603586035960360603616036260363603646036560366603676036860369603706037160372603736037460375603766037760378603796038060381603826038360384603856038660387603886038960390603916039260393603946039560396603976039860399604006040160402604036040460405604066040760408604096041060411604126041360414604156041660417604186041960420604216042260423604246042560426604276042860429604306043160432604336043460435604366043760438604396044060441604426044360444604456044660447604486044960450604516045260453604546045560456604576045860459604606046160462604636046460465604666046760468604696047060471604726047360474604756047660477604786047960480604816048260483604846048560486604876048860489604906049160492604936049460495604966049760498604996050060501605026050360504605056050660507605086050960510605116051260513605146051560516605176051860519605206052160522605236052460525605266052760528605296053060531605326053360534605356053660537605386053960540605416054260543605446054560546605476054860549605506055160552605536055460555605566055760558605596056060561605626056360564605656056660567605686056960570605716057260573605746057560576605776057860579605806058160582605836058460585605866058760588605896059060591605926059360594605956059660597605986059960600606016060260603606046060560606606076060860609606106061160612606136061460615606166061760618606196062060621606226062360624606256062660627606286062960630606316063260633606346063560636606376063860639606406064160642606436064460645606466064760648606496065060651606526065360654606556065660657606586065960660606616066260663606646066560666606676066860669606706067160672606736067460675606766067760678606796068060681606826068360684606856068660687606886068960690606916069260693606946069560696606976069860699607006070160702607036070460705607066070760708607096071060711607126071360714607156071660717607186071960720607216072260723607246072560726607276072860729607306073160732607336073460735607366073760738607396074060741607426074360744607456074660747607486074960750607516075260753607546075560756607576075860759607606076160762607636076460765607666076760768607696077060771607726077360774607756077660777607786077960780607816078260783607846078560786607876078860789607906079160792607936079460795607966079760798607996080060801608026080360804608056080660807608086080960810608116081260813608146081560816608176081860819608206082160822608236082460825608266082760828608296083060831608326083360834608356083660837608386083960840608416084260843608446084560846608476084860849608506085160852608536085460855608566085760858608596086060861608626086360864608656086660867608686086960870608716087260873608746087560876608776087860879608806088160882608836088460885608866088760888608896089060891608926089360894608956089660897608986089960900609016090260903609046090560906609076090860909609106091160912609136091460915609166091760918609196092060921609226092360924609256092660927609286092960930609316093260933609346093560936609376093860939609406094160942609436094460945609466094760948609496095060951609526095360954609556095660957609586095960960609616096260963609646096560966609676096860969609706097160972609736097460975609766097760978609796098060981609826098360984609856098660987609886098960990609916099260993609946099560996609976099860999610006100161002610036100461005610066100761008610096101061011610126101361014610156101661017610186101961020610216102261023610246102561026610276102861029610306103161032610336103461035610366103761038610396104061041610426104361044610456104661047610486104961050610516105261053610546105561056610576105861059610606106161062610636106461065610666106761068610696107061071610726107361074610756107661077610786107961080610816108261083610846108561086610876108861089610906109161092610936109461095610966109761098610996110061101611026110361104611056110661107611086110961110611116111261113611146111561116611176111861119611206112161122611236112461125611266112761128611296113061131611326113361134611356113661137611386113961140611416114261143611446114561146611476114861149611506115161152611536115461155611566115761158611596116061161611626116361164611656116661167611686116961170611716117261173611746117561176611776117861179611806118161182611836118461185611866118761188611896119061191611926119361194611956119661197611986119961200612016120261203612046120561206612076120861209612106121161212612136121461215612166121761218612196122061221612226122361224612256122661227612286122961230612316123261233612346123561236612376123861239612406124161242612436124461245612466124761248612496125061251612526125361254612556125661257612586125961260612616126261263612646126561266612676126861269612706127161272612736127461275612766127761278612796128061281612826128361284612856128661287612886128961290612916129261293612946129561296612976129861299613006130161302613036130461305613066130761308613096131061311613126131361314613156131661317613186131961320613216132261323613246132561326613276132861329613306133161332613336133461335613366133761338613396134061341613426134361344613456134661347613486134961350613516135261353613546135561356613576135861359613606136161362613636136461365613666136761368613696137061371613726137361374613756137661377613786137961380613816138261383613846138561386613876138861389613906139161392613936139461395613966139761398613996140061401614026140361404614056140661407614086140961410614116141261413614146141561416614176141861419614206142161422614236142461425614266142761428614296143061431614326143361434614356143661437614386143961440614416144261443614446144561446614476144861449614506145161452614536145461455614566145761458614596146061461614626146361464614656146661467614686146961470614716147261473614746147561476614776147861479614806148161482614836148461485614866148761488614896149061491614926149361494614956149661497614986149961500615016150261503615046150561506615076150861509615106151161512615136151461515615166151761518615196152061521615226152361524615256152661527615286152961530615316153261533615346153561536615376153861539615406154161542615436154461545615466154761548615496155061551615526155361554615556155661557615586155961560615616156261563615646156561566615676156861569615706157161572615736157461575615766157761578615796158061581615826158361584615856158661587615886158961590615916159261593615946159561596615976159861599616006160161602616036160461605616066160761608616096161061611616126161361614616156161661617616186161961620616216162261623616246162561626616276162861629616306163161632616336163461635616366163761638616396164061641616426164361644616456164661647616486164961650616516165261653616546165561656616576165861659616606166161662616636166461665616666166761668616696167061671616726167361674616756167661677616786167961680616816168261683616846168561686616876168861689616906169161692616936169461695616966169761698616996170061701617026170361704617056170661707617086170961710617116171261713617146171561716617176171861719617206172161722617236172461725617266172761728617296173061731617326173361734617356173661737617386173961740617416174261743617446174561746617476174861749617506175161752617536175461755617566175761758617596176061761617626176361764617656176661767617686176961770617716177261773617746177561776617776177861779617806178161782617836178461785617866178761788617896179061791617926179361794617956179661797617986179961800618016180261803618046180561806618076180861809618106181161812618136181461815618166181761818618196182061821618226182361824618256182661827618286182961830618316183261833618346183561836618376183861839618406184161842618436184461845618466184761848618496185061851618526185361854618556185661857618586185961860618616186261863618646186561866618676186861869618706187161872618736187461875618766187761878618796188061881618826188361884618856188661887618886188961890618916189261893618946189561896618976189861899619006190161902619036190461905619066190761908619096191061911619126191361914619156191661917619186191961920619216192261923619246192561926619276192861929619306193161932619336193461935619366193761938619396194061941619426194361944619456194661947619486194961950619516195261953619546195561956619576195861959619606196161962619636196461965619666196761968619696197061971619726197361974619756197661977619786197961980619816198261983619846198561986619876198861989619906199161992619936199461995619966199761998619996200062001620026200362004620056200662007620086200962010620116201262013620146201562016620176201862019620206202162022620236202462025620266202762028620296203062031620326203362034620356203662037620386203962040620416204262043620446204562046620476204862049620506205162052620536205462055620566205762058620596206062061620626206362064620656206662067620686206962070620716207262073620746207562076620776207862079620806208162082620836208462085620866208762088620896209062091620926209362094620956209662097620986209962100621016210262103621046210562106621076210862109621106211162112621136211462115621166211762118621196212062121621226212362124621256212662127621286212962130621316213262133621346213562136621376213862139621406214162142621436214462145621466214762148621496215062151621526215362154621556215662157621586215962160621616216262163621646216562166621676216862169621706217162172621736217462175621766217762178621796218062181621826218362184621856218662187621886218962190621916219262193621946219562196621976219862199622006220162202622036220462205622066220762208622096221062211622126221362214622156221662217622186221962220622216222262223622246222562226622276222862229622306223162232622336223462235622366223762238622396224062241622426224362244622456224662247622486224962250622516225262253622546225562256622576225862259622606226162262622636226462265622666226762268622696227062271622726227362274622756227662277622786227962280622816228262283622846228562286622876228862289622906229162292622936229462295622966229762298622996230062301623026230362304623056230662307623086230962310623116231262313623146231562316623176231862319623206232162322623236232462325623266232762328623296233062331623326233362334623356233662337623386233962340623416234262343623446234562346623476234862349623506235162352623536235462355623566235762358623596236062361623626236362364623656236662367623686236962370623716237262373623746237562376623776237862379623806238162382623836238462385623866238762388623896239062391623926239362394623956239662397623986239962400624016240262403624046240562406624076240862409624106241162412624136241462415624166241762418624196242062421624226242362424624256242662427624286242962430624316243262433624346243562436624376243862439624406244162442624436244462445624466244762448624496245062451624526245362454624556245662457624586245962460624616246262463624646246562466624676246862469624706247162472624736247462475624766247762478624796248062481624826248362484624856248662487624886248962490624916249262493624946249562496624976249862499625006250162502625036250462505625066250762508625096251062511625126251362514625156251662517625186251962520625216252262523625246252562526625276252862529625306253162532625336253462535625366253762538625396254062541625426254362544625456254662547625486254962550625516255262553625546255562556625576255862559625606256162562625636256462565625666256762568625696257062571625726257362574625756257662577625786257962580625816258262583625846258562586625876258862589625906259162592625936259462595625966259762598625996260062601626026260362604626056260662607626086260962610626116261262613626146261562616626176261862619626206262162622626236262462625626266262762628626296263062631626326263362634626356263662637626386263962640626416264262643626446264562646626476264862649626506265162652626536265462655626566265762658626596266062661626626266362664626656266662667626686266962670626716267262673626746267562676626776267862679626806268162682626836268462685626866268762688626896269062691626926269362694626956269662697626986269962700627016270262703627046270562706627076270862709627106271162712627136271462715627166271762718627196272062721627226272362724627256272662727627286272962730627316273262733627346273562736627376273862739627406274162742627436274462745627466274762748627496275062751627526275362754627556275662757627586275962760627616276262763627646276562766627676276862769627706277162772627736277462775627766277762778627796278062781627826278362784627856278662787627886278962790627916279262793627946279562796627976279862799628006280162802628036280462805628066280762808628096281062811628126281362814628156281662817628186281962820628216282262823628246282562826628276282862829628306283162832628336283462835628366283762838628396284062841628426284362844628456284662847628486284962850628516285262853628546285562856628576285862859628606286162862628636286462865628666286762868628696287062871628726287362874628756287662877628786287962880628816288262883628846288562886628876288862889628906289162892628936289462895628966289762898628996290062901629026290362904629056290662907629086290962910629116291262913629146291562916629176291862919629206292162922629236292462925629266292762928629296293062931629326293362934629356293662937629386293962940629416294262943629446294562946629476294862949629506295162952629536295462955629566295762958629596296062961629626296362964629656296662967629686296962970629716297262973629746297562976629776297862979629806298162982629836298462985629866298762988629896299062991629926299362994629956299662997629986299963000630016300263003630046300563006630076300863009630106301163012630136301463015630166301763018630196302063021630226302363024630256302663027630286302963030630316303263033630346303563036630376303863039630406304163042630436304463045630466304763048630496305063051630526305363054630556305663057630586305963060630616306263063630646306563066630676306863069630706307163072630736307463075630766307763078630796308063081630826308363084630856308663087630886308963090630916309263093630946309563096630976309863099631006310163102631036310463105631066310763108631096311063111631126311363114631156311663117631186311963120631216312263123631246312563126631276312863129631306313163132631336313463135631366313763138631396314063141631426314363144631456314663147631486314963150631516315263153631546315563156631576315863159631606316163162631636316463165631666316763168631696317063171631726317363174631756317663177631786317963180631816318263183631846318563186631876318863189631906319163192631936319463195631966319763198631996320063201632026320363204632056320663207632086320963210632116321263213632146321563216632176321863219632206322163222632236322463225632266322763228632296323063231632326323363234632356323663237632386323963240632416324263243632446324563246632476324863249632506325163252632536325463255632566325763258632596326063261632626326363264632656326663267632686326963270632716327263273632746327563276632776327863279632806328163282632836328463285632866328763288632896329063291632926329363294632956329663297632986329963300633016330263303633046330563306633076330863309633106331163312633136331463315633166331763318633196332063321633226332363324633256332663327633286332963330633316333263333633346333563336633376333863339633406334163342633436334463345633466334763348633496335063351633526335363354633556335663357633586335963360633616336263363633646336563366633676336863369633706337163372633736337463375633766337763378633796338063381633826338363384633856338663387633886338963390633916339263393633946339563396633976339863399634006340163402634036340463405634066340763408634096341063411634126341363414634156341663417634186341963420634216342263423634246342563426634276342863429634306343163432634336343463435634366343763438634396344063441634426344363444634456344663447634486344963450634516345263453634546345563456634576345863459634606346163462634636346463465634666346763468634696347063471634726347363474634756347663477634786347963480634816348263483634846348563486634876348863489634906349163492634936349463495634966349763498634996350063501635026350363504635056350663507635086350963510635116351263513635146351563516635176351863519635206352163522635236352463525635266352763528635296353063531635326353363534635356353663537635386353963540635416354263543635446354563546635476354863549635506355163552635536355463555635566355763558635596356063561635626356363564635656356663567635686356963570635716357263573635746357563576635776357863579635806358163582635836358463585635866358763588635896359063591635926359363594635956359663597635986359963600636016360263603636046360563606636076360863609636106361163612636136361463615636166361763618636196362063621636226362363624636256362663627636286362963630636316363263633636346363563636636376363863639636406364163642636436364463645636466364763648636496365063651636526365363654636556365663657636586365963660636616366263663636646366563666636676366863669636706367163672636736367463675636766367763678636796368063681636826368363684636856368663687636886368963690636916369263693636946369563696636976369863699637006370163702637036370463705637066370763708637096371063711637126371363714637156371663717637186371963720637216372263723637246372563726637276372863729637306373163732637336373463735637366373763738637396374063741637426374363744637456374663747637486374963750637516375263753637546375563756637576375863759637606376163762637636376463765637666376763768637696377063771637726377363774637756377663777637786377963780637816378263783637846378563786637876378863789637906379163792637936379463795637966379763798637996380063801638026380363804638056380663807638086380963810638116381263813638146381563816638176381863819638206382163822638236382463825638266382763828638296383063831638326383363834638356383663837638386383963840638416384263843638446384563846638476384863849638506385163852638536385463855638566385763858638596386063861638626386363864638656386663867638686386963870638716387263873638746387563876638776387863879638806388163882638836388463885638866388763888638896389063891638926389363894638956389663897638986389963900639016390263903639046390563906639076390863909639106391163912639136391463915639166391763918639196392063921639226392363924639256392663927639286392963930639316393263933639346393563936639376393863939639406394163942639436394463945639466394763948639496395063951639526395363954639556395663957639586395963960639616396263963639646396563966639676396863969639706397163972639736397463975639766397763978639796398063981639826398363984639856398663987639886398963990639916399263993639946399563996639976399863999640006400164002640036400464005640066400764008640096401064011640126401364014640156401664017640186401964020640216402264023640246402564026640276402864029640306403164032640336403464035640366403764038640396404064041640426404364044640456404664047640486404964050640516405264053640546405564056640576405864059640606406164062640636406464065640666406764068640696407064071640726407364074640756407664077640786407964080640816408264083640846408564086640876408864089640906409164092640936409464095640966409764098640996410064101641026410364104641056410664107641086410964110641116411264113641146411564116641176411864119641206412164122641236412464125641266412764128641296413064131641326413364134641356413664137641386413964140641416414264143641446414564146641476414864149641506415164152641536415464155641566415764158641596416064161641626416364164641656416664167641686416964170641716417264173641746417564176641776417864179641806418164182641836418464185641866418764188641896419064191641926419364194641956419664197641986419964200642016420264203642046420564206642076420864209642106421164212642136421464215642166421764218642196422064221642226422364224642256422664227642286422964230642316423264233642346423564236642376423864239642406424164242642436424464245642466424764248642496425064251642526425364254642556425664257642586425964260642616426264263642646426564266642676426864269642706427164272642736427464275642766427764278642796428064281642826428364284642856428664287642886428964290642916429264293642946429564296642976429864299643006430164302643036430464305643066430764308643096431064311643126431364314643156431664317643186431964320643216432264323643246432564326643276432864329643306433164332643336433464335643366433764338643396434064341643426434364344643456434664347643486434964350643516435264353643546435564356643576435864359643606436164362643636436464365643666436764368643696437064371643726437364374643756437664377643786437964380643816438264383643846438564386643876438864389643906439164392643936439464395643966439764398643996440064401644026440364404644056440664407644086440964410644116441264413644146441564416644176441864419644206442164422644236442464425644266442764428644296443064431644326443364434644356443664437644386443964440644416444264443644446444564446644476444864449644506445164452644536445464455644566445764458644596446064461644626446364464644656446664467644686446964470644716447264473644746447564476644776447864479644806448164482644836448464485644866448764488644896449064491644926449364494644956449664497644986449964500645016450264503645046450564506645076450864509645106451164512645136451464515645166451764518645196452064521645226452364524645256452664527645286452964530645316453264533645346453564536645376453864539645406454164542645436454464545645466454764548645496455064551645526455364554645556455664557645586455964560645616456264563645646456564566645676456864569645706457164572645736457464575645766457764578645796458064581645826458364584645856458664587645886458964590645916459264593645946459564596645976459864599646006460164602646036460464605646066460764608646096461064611646126461364614646156461664617646186461964620646216462264623646246462564626646276462864629646306463164632646336463464635646366463764638646396464064641646426464364644646456464664647646486464964650646516465264653646546465564656646576465864659646606466164662646636466464665646666466764668646696467064671646726467364674646756467664677646786467964680646816468264683646846468564686646876468864689646906469164692646936469464695646966469764698646996470064701647026470364704647056470664707647086470964710647116471264713647146471564716647176471864719647206472164722647236472464725647266472764728647296473064731647326473364734647356473664737647386473964740647416474264743647446474564746647476474864749647506475164752647536475464755647566475764758647596476064761647626476364764647656476664767647686476964770647716477264773647746477564776647776477864779647806478164782647836478464785647866478764788647896479064791647926479364794647956479664797647986479964800648016480264803648046480564806648076480864809648106481164812648136481464815648166481764818648196482064821648226482364824648256482664827648286482964830648316483264833648346483564836648376483864839648406484164842648436484464845648466484764848648496485064851648526485364854648556485664857648586485964860648616486264863648646486564866648676486864869648706487164872648736487464875648766487764878648796488064881648826488364884648856488664887648886488964890648916489264893648946489564896648976489864899649006490164902649036490464905649066490764908649096491064911649126491364914649156491664917649186491964920649216492264923649246492564926649276492864929649306493164932649336493464935649366493764938649396494064941649426494364944649456494664947649486494964950649516495264953649546495564956649576495864959649606496164962649636496464965649666496764968649696497064971649726497364974649756497664977649786497964980649816498264983649846498564986649876498864989649906499164992649936499464995649966499764998649996500065001650026500365004650056500665007650086500965010650116501265013650146501565016650176501865019650206502165022650236502465025650266502765028650296503065031650326503365034650356503665037650386503965040650416504265043650446504565046650476504865049650506505165052650536505465055650566505765058650596506065061650626506365064650656506665067650686506965070650716507265073650746507565076650776507865079650806508165082650836508465085650866508765088650896509065091650926509365094650956509665097650986509965100651016510265103651046510565106651076510865109651106511165112651136511465115651166511765118651196512065121651226512365124651256512665127651286512965130651316513265133651346513565136651376513865139651406514165142651436514465145651466514765148651496515065151651526515365154651556515665157651586515965160651616516265163651646516565166651676516865169651706517165172651736517465175651766517765178651796518065181651826518365184651856518665187651886518965190651916519265193651946519565196651976519865199652006520165202652036520465205652066520765208652096521065211652126521365214652156521665217652186521965220652216522265223652246522565226652276522865229652306523165232652336523465235652366523765238652396524065241652426524365244652456524665247652486524965250652516525265253652546525565256652576525865259652606526165262652636526465265652666526765268652696527065271652726527365274652756527665277652786527965280652816528265283652846528565286652876528865289652906529165292652936529465295652966529765298652996530065301653026530365304653056530665307653086530965310653116531265313653146531565316653176531865319653206532165322653236532465325653266532765328653296533065331653326533365334653356533665337653386533965340653416534265343653446534565346653476534865349653506535165352653536535465355653566535765358653596536065361653626536365364653656536665367653686536965370653716537265373653746537565376653776537865379653806538165382653836538465385653866538765388653896539065391653926539365394653956539665397653986539965400654016540265403654046540565406654076540865409654106541165412654136541465415654166541765418654196542065421654226542365424654256542665427654286542965430654316543265433654346543565436654376543865439654406544165442654436544465445654466544765448654496545065451654526545365454654556545665457654586545965460654616546265463654646546565466654676546865469654706547165472654736547465475654766547765478654796548065481654826548365484654856548665487654886548965490654916549265493654946549565496654976549865499655006550165502655036550465505655066550765508655096551065511655126551365514655156551665517655186551965520655216552265523655246552565526655276552865529655306553165532655336553465535655366553765538655396554065541655426554365544655456554665547655486554965550655516555265553655546555565556655576555865559655606556165562655636556465565655666556765568655696557065571655726557365574655756557665577655786557965580655816558265583655846558565586655876558865589655906559165592655936559465595655966559765598655996560065601656026560365604656056560665607656086560965610656116561265613656146561565616656176561865619656206562165622656236562465625656266562765628656296563065631656326563365634656356563665637656386563965640656416564265643656446564565646656476564865649656506565165652656536565465655656566565765658656596566065661656626566365664656656566665667656686566965670656716567265673656746567565676656776567865679656806568165682656836568465685656866568765688656896569065691656926569365694656956569665697656986569965700657016570265703657046570565706657076570865709657106571165712657136571465715657166571765718657196572065721657226572365724657256572665727657286572965730657316573265733657346573565736657376573865739657406574165742657436574465745657466574765748657496575065751657526575365754657556575665757657586575965760657616576265763657646576565766657676576865769657706577165772657736577465775657766577765778657796578065781657826578365784657856578665787657886578965790657916579265793657946579565796657976579865799658006580165802658036580465805658066580765808658096581065811658126581365814658156581665817658186581965820658216582265823658246582565826658276582865829658306583165832658336583465835658366583765838658396584065841658426584365844658456584665847658486584965850658516585265853658546585565856658576585865859658606586165862658636586465865658666586765868658696587065871658726587365874658756587665877658786587965880658816588265883658846588565886658876588865889658906589165892658936589465895658966589765898658996590065901659026590365904659056590665907659086590965910659116591265913659146591565916659176591865919659206592165922659236592465925659266592765928659296593065931659326593365934659356593665937659386593965940659416594265943659446594565946659476594865949659506595165952659536595465955659566595765958659596596065961659626596365964659656596665967659686596965970659716597265973659746597565976659776597865979659806598165982659836598465985659866598765988659896599065991659926599365994659956599665997659986599966000660016600266003660046600566006660076600866009660106601166012660136601466015660166601766018660196602066021660226602366024660256602666027660286602966030660316603266033660346603566036660376603866039660406604166042660436604466045660466604766048660496605066051660526605366054660556605666057660586605966060660616606266063660646606566066660676606866069660706607166072660736607466075660766607766078660796608066081660826608366084660856608666087660886608966090660916609266093660946609566096660976609866099661006610166102661036610466105661066610766108661096611066111661126611366114661156611666117661186611966120661216612266123661246612566126661276612866129661306613166132661336613466135661366613766138661396614066141661426614366144661456614666147661486614966150661516615266153661546615566156661576615866159661606616166162661636616466165661666616766168661696617066171661726617366174661756617666177661786617966180661816618266183661846618566186661876618866189661906619166192661936619466195661966619766198661996620066201662026620366204662056620666207662086620966210662116621266213662146621566216662176621866219662206622166222662236622466225662266622766228662296623066231662326623366234662356623666237662386623966240662416624266243662446624566246662476624866249662506625166252662536625466255662566625766258662596626066261662626626366264662656626666267662686626966270662716627266273662746627566276662776627866279662806628166282662836628466285662866628766288662896629066291662926629366294662956629666297662986629966300663016630266303663046630566306663076630866309663106631166312663136631466315663166631766318663196632066321663226632366324663256632666327663286632966330663316633266333663346633566336663376633866339663406634166342663436634466345663466634766348663496635066351663526635366354663556635666357663586635966360663616636266363663646636566366663676636866369663706637166372663736637466375663766637766378663796638066381663826638366384663856638666387663886638966390663916639266393663946639566396663976639866399664006640166402664036640466405664066640766408664096641066411664126641366414664156641666417664186641966420664216642266423664246642566426664276642866429664306643166432664336643466435664366643766438664396644066441664426644366444664456644666447664486644966450664516645266453664546645566456664576645866459664606646166462664636646466465664666646766468664696647066471664726647366474664756647666477664786647966480664816648266483664846648566486664876648866489664906649166492664936649466495664966649766498664996650066501665026650366504665056650666507665086650966510665116651266513665146651566516665176651866519665206652166522665236652466525665266652766528665296653066531665326653366534665356653666537665386653966540665416654266543665446654566546665476654866549665506655166552665536655466555665566655766558665596656066561665626656366564665656656666567665686656966570665716657266573665746657566576665776657866579665806658166582665836658466585665866658766588665896659066591665926659366594665956659666597665986659966600666016660266603666046660566606666076660866609666106661166612666136661466615666166661766618666196662066621666226662366624666256662666627666286662966630666316663266633666346663566636666376663866639666406664166642666436664466645666466664766648666496665066651666526665366654666556665666657666586665966660666616666266663666646666566666666676666866669666706667166672666736667466675666766667766678666796668066681666826668366684666856668666687666886668966690666916669266693666946669566696666976669866699667006670166702667036670466705667066670766708667096671066711667126671366714667156671666717667186671966720667216672266723667246672566726667276672866729667306673166732667336673466735667366673766738667396674066741667426674366744667456674666747667486674966750667516675266753667546675566756667576675866759667606676166762667636676466765667666676766768667696677066771667726677366774667756677666777667786677966780667816678266783667846678566786667876678866789667906679166792667936679466795667966679766798667996680066801668026680366804668056680666807668086680966810668116681266813668146681566816668176681866819668206682166822668236682466825668266682766828668296683066831668326683366834668356683666837668386683966840668416684266843668446684566846668476684866849668506685166852668536685466855668566685766858668596686066861668626686366864668656686666867668686686966870668716687266873668746687566876668776687866879668806688166882668836688466885668866688766888668896689066891668926689366894668956689666897668986689966900669016690266903669046690566906669076690866909669106691166912669136691466915669166691766918669196692066921669226692366924669256692666927669286692966930669316693266933669346693566936669376693866939669406694166942669436694466945669466694766948669496695066951669526695366954669556695666957669586695966960669616696266963669646696566966669676696866969669706697166972669736697466975669766697766978669796698066981669826698366984669856698666987669886698966990669916699266993669946699566996669976699866999670006700167002670036700467005670066700767008670096701067011670126701367014670156701667017670186701967020670216702267023670246702567026670276702867029670306703167032670336703467035670366703767038670396704067041670426704367044670456704667047670486704967050670516705267053670546705567056670576705867059670606706167062670636706467065670666706767068670696707067071670726707367074670756707667077670786707967080670816708267083670846708567086670876708867089670906709167092670936709467095670966709767098670996710067101671026710367104671056710667107671086710967110671116711267113671146711567116671176711867119671206712167122671236712467125671266712767128671296713067131671326713367134671356713667137671386713967140671416714267143671446714567146671476714867149671506715167152671536715467155671566715767158671596716067161671626716367164671656716667167671686716967170671716717267173671746717567176671776717867179671806718167182671836718467185671866718767188671896719067191671926719367194671956719667197671986719967200672016720267203672046720567206672076720867209672106721167212672136721467215672166721767218672196722067221672226722367224672256722667227672286722967230672316723267233672346723567236672376723867239672406724167242672436724467245672466724767248672496725067251672526725367254672556725667257672586725967260672616726267263672646726567266672676726867269672706727167272672736727467275672766727767278672796728067281672826728367284672856728667287672886728967290672916729267293672946729567296672976729867299673006730167302673036730467305673066730767308673096731067311673126731367314673156731667317673186731967320673216732267323673246732567326673276732867329673306733167332673336733467335673366733767338673396734067341673426734367344673456734667347673486734967350673516735267353673546735567356673576735867359673606736167362673636736467365673666736767368673696737067371673726737367374673756737667377673786737967380673816738267383673846738567386673876738867389673906739167392673936739467395673966739767398673996740067401674026740367404674056740667407674086740967410674116741267413674146741567416674176741867419674206742167422674236742467425674266742767428674296743067431674326743367434674356743667437674386743967440674416744267443674446744567446674476744867449674506745167452674536745467455674566745767458674596746067461674626746367464674656746667467674686746967470674716747267473674746747567476674776747867479674806748167482674836748467485674866748767488674896749067491674926749367494674956749667497674986749967500675016750267503675046750567506675076750867509675106751167512675136751467515675166751767518675196752067521675226752367524675256752667527675286752967530675316753267533675346753567536675376753867539675406754167542675436754467545675466754767548675496755067551675526755367554675556755667557675586755967560675616756267563675646756567566675676756867569675706757167572675736757467575675766757767578675796758067581675826758367584675856758667587675886758967590675916759267593675946759567596675976759867599676006760167602676036760467605676066760767608676096761067611676126761367614676156761667617676186761967620676216762267623676246762567626676276762867629676306763167632676336763467635676366763767638676396764067641676426764367644676456764667647676486764967650676516765267653676546765567656676576765867659676606766167662676636766467665676666766767668676696767067671676726767367674676756767667677676786767967680676816768267683676846768567686676876768867689676906769167692676936769467695676966769767698676996770067701677026770367704677056770667707677086770967710677116771267713677146771567716677176771867719677206772167722677236772467725677266772767728677296773067731677326773367734677356773667737677386773967740677416774267743677446774567746677476774867749677506775167752677536775467755677566775767758677596776067761677626776367764677656776667767677686776967770677716777267773677746777567776677776777867779677806778167782677836778467785677866778767788677896779067791677926779367794677956779667797677986779967800678016780267803678046780567806678076780867809678106781167812678136781467815678166781767818678196782067821678226782367824678256782667827678286782967830678316783267833678346783567836678376783867839678406784167842678436784467845678466784767848678496785067851678526785367854678556785667857678586785967860678616786267863678646786567866678676786867869678706787167872678736787467875678766787767878678796788067881678826788367884678856788667887678886788967890678916789267893678946789567896678976789867899679006790167902679036790467905679066790767908679096791067911679126791367914679156791667917679186791967920679216792267923679246792567926679276792867929679306793167932679336793467935679366793767938679396794067941679426794367944679456794667947679486794967950679516795267953679546795567956679576795867959679606796167962679636796467965679666796767968679696797067971679726797367974679756797667977679786797967980679816798267983679846798567986679876798867989679906799167992679936799467995679966799767998679996800068001680026800368004680056800668007680086800968010680116801268013680146801568016680176801868019680206802168022680236802468025680266802768028680296803068031680326803368034680356803668037680386803968040680416804268043680446804568046680476804868049680506805168052680536805468055680566805768058680596806068061680626806368064680656806668067680686806968070680716807268073680746807568076680776807868079680806808168082680836808468085680866808768088680896809068091680926809368094680956809668097680986809968100681016810268103681046810568106681076810868109681106811168112681136811468115681166811768118681196812068121681226812368124681256812668127681286812968130681316813268133681346813568136681376813868139681406814168142681436814468145681466814768148681496815068151681526815368154681556815668157681586815968160681616816268163681646816568166681676816868169681706817168172681736817468175681766817768178681796818068181681826818368184681856818668187681886818968190681916819268193681946819568196681976819868199682006820168202682036820468205682066820768208682096821068211682126821368214682156821668217682186821968220682216822268223682246822568226682276822868229682306823168232682336823468235682366823768238682396824068241682426824368244682456824668247682486824968250682516825268253682546825568256682576825868259682606826168262682636826468265682666826768268682696827068271682726827368274682756827668277682786827968280682816828268283682846828568286682876828868289682906829168292682936829468295682966829768298682996830068301683026830368304683056830668307683086830968310683116831268313683146831568316683176831868319683206832168322683236832468325683266832768328683296833068331683326833368334683356833668337683386833968340683416834268343683446834568346683476834868349683506835168352683536835468355683566835768358683596836068361683626836368364683656836668367683686836968370683716837268373683746837568376683776837868379683806838168382683836838468385683866838768388683896839068391683926839368394683956839668397683986839968400684016840268403684046840568406684076840868409684106841168412684136841468415684166841768418684196842068421684226842368424684256842668427684286842968430684316843268433684346843568436684376843868439684406844168442684436844468445684466844768448684496845068451684526845368454684556845668457684586845968460684616846268463684646846568466684676846868469684706847168472684736847468475684766847768478684796848068481684826848368484684856848668487684886848968490684916849268493684946849568496684976849868499685006850168502685036850468505685066850768508685096851068511685126851368514685156851668517685186851968520685216852268523685246852568526685276852868529685306853168532685336853468535685366853768538685396854068541685426854368544685456854668547685486854968550685516855268553685546855568556685576855868559685606856168562685636856468565685666856768568685696857068571685726857368574685756857668577685786857968580685816858268583685846858568586685876858868589685906859168592685936859468595685966859768598685996860068601686026860368604686056860668607686086860968610686116861268613686146861568616686176861868619686206862168622686236862468625686266862768628686296863068631686326863368634686356863668637686386863968640686416864268643686446864568646686476864868649686506865168652686536865468655686566865768658686596866068661686626866368664686656866668667686686866968670686716867268673686746867568676686776867868679686806868168682686836868468685686866868768688686896869068691686926869368694686956869668697686986869968700687016870268703687046870568706687076870868709687106871168712687136871468715687166871768718687196872068721687226872368724687256872668727687286872968730687316873268733687346873568736687376873868739687406874168742687436874468745687466874768748687496875068751687526875368754687556875668757687586875968760687616876268763687646876568766687676876868769687706877168772687736877468775687766877768778687796878068781687826878368784687856878668787687886878968790687916879268793687946879568796687976879868799688006880168802688036880468805688066880768808688096881068811688126881368814688156881668817688186881968820688216882268823688246882568826688276882868829688306883168832688336883468835688366883768838688396884068841688426884368844688456884668847688486884968850688516885268853688546885568856688576885868859688606886168862688636886468865688666886768868688696887068871688726887368874688756887668877688786887968880688816888268883688846888568886688876888868889688906889168892688936889468895688966889768898688996890068901689026890368904689056890668907689086890968910689116891268913689146891568916689176891868919689206892168922689236892468925689266892768928689296893068931689326893368934689356893668937689386893968940689416894268943689446894568946689476894868949689506895168952689536895468955689566895768958689596896068961689626896368964689656896668967689686896968970689716897268973689746897568976689776897868979689806898168982689836898468985689866898768988689896899068991689926899368994689956899668997689986899969000690016900269003690046900569006690076900869009690106901169012690136901469015690166901769018690196902069021690226902369024690256902669027690286902969030690316903269033690346903569036690376903869039690406904169042690436904469045690466904769048690496905069051690526905369054690556905669057690586905969060690616906269063690646906569066690676906869069690706907169072690736907469075690766907769078690796908069081690826908369084690856908669087690886908969090690916909269093690946909569096690976909869099691006910169102691036910469105691066910769108691096911069111691126911369114691156911669117691186911969120691216912269123691246912569126691276912869129691306913169132691336913469135691366913769138691396914069141691426914369144691456914669147691486914969150691516915269153691546915569156691576915869159691606916169162691636916469165691666916769168691696917069171691726917369174691756917669177691786917969180691816918269183691846918569186691876918869189691906919169192691936919469195691966919769198691996920069201692026920369204692056920669207692086920969210692116921269213692146921569216692176921869219692206922169222692236922469225692266922769228692296923069231692326923369234692356923669237692386923969240692416924269243692446924569246692476924869249692506925169252692536925469255692566925769258692596926069261692626926369264692656926669267692686926969270692716927269273692746927569276692776927869279692806928169282692836928469285692866928769288692896929069291692926929369294692956929669297692986929969300693016930269303693046930569306693076930869309693106931169312693136931469315693166931769318693196932069321693226932369324693256932669327693286932969330693316933269333693346933569336693376933869339693406934169342693436934469345693466934769348693496935069351693526935369354693556935669357693586935969360693616936269363693646936569366693676936869369693706937169372693736937469375693766937769378693796938069381693826938369384693856938669387693886938969390693916939269393693946939569396693976939869399694006940169402694036940469405694066940769408694096941069411694126941369414694156941669417694186941969420694216942269423694246942569426694276942869429694306943169432694336943469435694366943769438694396944069441694426944369444694456944669447694486944969450694516945269453694546945569456694576945869459694606946169462694636946469465694666946769468694696947069471694726947369474694756947669477694786947969480694816948269483694846948569486694876948869489694906949169492694936949469495694966949769498694996950069501695026950369504695056950669507695086950969510695116951269513695146951569516695176951869519695206952169522695236952469525695266952769528695296953069531695326953369534695356953669537695386953969540695416954269543695446954569546695476954869549695506955169552695536955469555695566955769558695596956069561695626956369564695656956669567695686956969570695716957269573695746957569576695776957869579695806958169582695836958469585695866958769588695896959069591695926959369594695956959669597695986959969600696016960269603696046960569606696076960869609696106961169612696136961469615696166961769618696196962069621696226962369624696256962669627696286962969630696316963269633696346963569636696376963869639696406964169642696436964469645696466964769648696496965069651696526965369654696556965669657696586965969660696616966269663696646966569666696676966869669696706967169672696736967469675696766967769678696796968069681696826968369684696856968669687696886968969690696916969269693696946969569696696976969869699697006970169702697036970469705697066970769708697096971069711697126971369714697156971669717697186971969720697216972269723697246972569726697276972869729697306973169732697336973469735697366973769738697396974069741697426974369744697456974669747697486974969750697516975269753697546975569756697576975869759697606976169762697636976469765697666976769768697696977069771697726977369774697756977669777697786977969780697816978269783697846978569786697876978869789697906979169792697936979469795697966979769798697996980069801698026980369804698056980669807698086980969810698116981269813698146981569816698176981869819698206982169822698236982469825698266982769828698296983069831698326983369834698356983669837698386983969840698416984269843698446984569846698476984869849698506985169852698536985469855698566985769858698596986069861698626986369864698656986669867698686986969870698716987269873698746987569876698776987869879698806988169882698836988469885698866988769888698896989069891698926989369894698956989669897698986989969900699016990269903699046990569906699076990869909699106991169912699136991469915699166991769918699196992069921699226992369924699256992669927699286992969930699316993269933699346993569936699376993869939699406994169942699436994469945699466994769948699496995069951699526995369954699556995669957699586995969960699616996269963699646996569966699676996869969699706997169972699736997469975699766997769978699796998069981699826998369984699856998669987699886998969990699916999269993699946999569996699976999869999700007000170002700037000470005700067000770008700097001070011700127001370014700157001670017700187001970020700217002270023700247002570026700277002870029700307003170032700337003470035700367003770038700397004070041700427004370044700457004670047700487004970050700517005270053700547005570056700577005870059700607006170062700637006470065700667006770068700697007070071700727007370074700757007670077700787007970080700817008270083700847008570086700877008870089700907009170092700937009470095700967009770098700997010070101701027010370104701057010670107701087010970110701117011270113701147011570116701177011870119701207012170122701237012470125701267012770128701297013070131701327013370134701357013670137701387013970140701417014270143701447014570146701477014870149701507015170152701537015470155701567015770158701597016070161701627016370164701657016670167701687016970170701717017270173701747017570176701777017870179701807018170182701837018470185701867018770188701897019070191701927019370194701957019670197701987019970200702017020270203702047020570206702077020870209702107021170212702137021470215702167021770218702197022070221702227022370224702257022670227702287022970230702317023270233702347023570236702377023870239702407024170242702437024470245702467024770248702497025070251702527025370254702557025670257702587025970260702617026270263702647026570266702677026870269702707027170272702737027470275702767027770278702797028070281702827028370284702857028670287702887028970290702917029270293702947029570296702977029870299703007030170302703037030470305703067030770308703097031070311703127031370314703157031670317703187031970320703217032270323703247032570326703277032870329703307033170332703337033470335703367033770338703397034070341703427034370344703457034670347703487034970350703517035270353703547035570356703577035870359703607036170362703637036470365703667036770368703697037070371703727037370374703757037670377703787037970380703817038270383703847038570386703877038870389703907039170392703937039470395703967039770398703997040070401704027040370404704057040670407704087040970410704117041270413704147041570416704177041870419704207042170422704237042470425704267042770428704297043070431704327043370434704357043670437704387043970440704417044270443704447044570446704477044870449704507045170452704537045470455704567045770458704597046070461704627046370464704657046670467704687046970470704717047270473704747047570476704777047870479704807048170482704837048470485704867048770488704897049070491704927049370494704957049670497704987049970500705017050270503705047050570506705077050870509705107051170512705137051470515705167051770518705197052070521705227052370524705257052670527705287052970530705317053270533705347053570536705377053870539705407054170542705437054470545705467054770548705497055070551705527055370554705557055670557705587055970560705617056270563705647056570566705677056870569705707057170572705737057470575705767057770578705797058070581705827058370584705857058670587705887058970590705917059270593705947059570596705977059870599706007060170602706037060470605706067060770608706097061070611706127061370614706157061670617706187061970620706217062270623706247062570626706277062870629706307063170632706337063470635706367063770638706397064070641706427064370644706457064670647706487064970650706517065270653706547065570656706577065870659706607066170662706637066470665706667066770668706697067070671706727067370674706757067670677706787067970680706817068270683706847068570686706877068870689706907069170692706937069470695706967069770698706997070070701707027070370704707057070670707707087070970710707117071270713707147071570716707177071870719707207072170722707237072470725707267072770728707297073070731707327073370734707357073670737707387073970740707417074270743707447074570746707477074870749707507075170752707537075470755707567075770758707597076070761707627076370764707657076670767707687076970770707717077270773707747077570776707777077870779707807078170782707837078470785707867078770788707897079070791707927079370794707957079670797707987079970800708017080270803708047080570806708077080870809708107081170812708137081470815708167081770818708197082070821708227082370824708257082670827708287082970830708317083270833708347083570836708377083870839708407084170842708437084470845708467084770848708497085070851708527085370854708557085670857708587085970860708617086270863708647086570866708677086870869708707087170872708737087470875708767087770878708797088070881708827088370884708857088670887708887088970890708917089270893708947089570896708977089870899709007090170902709037090470905709067090770908709097091070911709127091370914709157091670917709187091970920709217092270923709247092570926709277092870929709307093170932709337093470935709367093770938709397094070941709427094370944709457094670947709487094970950709517095270953709547095570956709577095870959709607096170962709637096470965709667096770968709697097070971709727097370974709757097670977709787097970980709817098270983709847098570986709877098870989709907099170992709937099470995709967099770998709997100071001710027100371004710057100671007710087100971010710117101271013710147101571016710177101871019710207102171022710237102471025710267102771028710297103071031710327103371034710357103671037710387103971040710417104271043710447104571046710477104871049710507105171052710537105471055710567105771058710597106071061710627106371064710657106671067710687106971070710717107271073710747107571076710777107871079710807108171082710837108471085710867108771088710897109071091710927109371094710957109671097710987109971100711017110271103711047110571106711077110871109711107111171112711137111471115711167111771118711197112071121711227112371124711257112671127711287112971130711317113271133711347113571136711377113871139711407114171142711437114471145711467114771148711497115071151711527115371154711557115671157711587115971160711617116271163711647116571166711677116871169711707117171172711737117471175711767117771178711797118071181711827118371184711857118671187711887118971190711917119271193711947119571196711977119871199712007120171202712037120471205712067120771208712097121071211712127121371214712157121671217712187121971220712217122271223712247122571226712277122871229712307123171232712337123471235712367123771238712397124071241712427124371244712457124671247712487124971250712517125271253712547125571256712577125871259712607126171262712637126471265712667126771268712697127071271712727127371274712757127671277712787127971280712817128271283712847128571286712877128871289712907129171292712937129471295712967129771298712997130071301713027130371304713057130671307713087130971310713117131271313713147131571316713177131871319713207132171322713237132471325713267132771328713297133071331713327133371334713357133671337713387133971340713417134271343713447134571346713477134871349713507135171352713537135471355713567135771358713597136071361713627136371364713657136671367713687136971370713717137271373713747137571376713777137871379713807138171382713837138471385713867138771388713897139071391713927139371394713957139671397713987139971400714017140271403714047140571406714077140871409714107141171412714137141471415714167141771418714197142071421714227142371424714257142671427714287142971430714317143271433714347143571436714377143871439714407144171442714437144471445714467144771448714497145071451714527145371454714557145671457714587145971460714617146271463714647146571466714677146871469714707147171472714737147471475714767147771478714797148071481714827148371484714857148671487714887148971490714917149271493714947149571496714977149871499715007150171502715037150471505715067150771508715097151071511715127151371514715157151671517715187151971520715217152271523715247152571526715277152871529715307153171532715337153471535715367153771538715397154071541715427154371544715457154671547715487154971550715517155271553715547155571556715577155871559715607156171562715637156471565715667156771568715697157071571715727157371574715757157671577715787157971580715817158271583715847158571586715877158871589715907159171592715937159471595715967159771598715997160071601716027160371604716057160671607716087160971610716117161271613716147161571616716177161871619716207162171622716237162471625716267162771628716297163071631716327163371634716357163671637716387163971640716417164271643716447164571646716477164871649716507165171652716537165471655716567165771658716597166071661716627166371664716657166671667716687166971670716717167271673716747167571676716777167871679716807168171682716837168471685716867168771688716897169071691716927169371694716957169671697716987169971700717017170271703717047170571706717077170871709717107171171712717137171471715717167171771718717197172071721717227172371724717257172671727717287172971730717317173271733717347173571736717377173871739717407174171742717437174471745717467174771748717497175071751717527175371754717557175671757717587175971760717617176271763717647176571766717677176871769717707177171772717737177471775717767177771778717797178071781717827178371784717857178671787717887178971790717917179271793717947179571796717977179871799718007180171802718037180471805718067180771808718097181071811718127181371814718157181671817718187181971820718217182271823718247182571826718277182871829718307183171832718337183471835718367183771838718397184071841718427184371844718457184671847718487184971850718517185271853718547185571856718577185871859718607186171862718637186471865718667186771868718697187071871718727187371874718757187671877718787187971880718817188271883718847188571886718877188871889718907189171892718937189471895718967189771898718997190071901719027190371904719057190671907719087190971910719117191271913719147191571916719177191871919719207192171922719237192471925719267192771928719297193071931719327193371934719357193671937719387193971940719417194271943719447194571946719477194871949719507195171952719537195471955719567195771958719597196071961719627196371964719657196671967719687196971970719717197271973719747197571976719777197871979719807198171982719837198471985719867198771988719897199071991719927199371994719957199671997719987199972000720017200272003720047200572006720077200872009720107201172012720137201472015720167201772018720197202072021720227202372024720257202672027720287202972030720317203272033720347203572036720377203872039720407204172042720437204472045720467204772048720497205072051720527205372054720557205672057720587205972060720617206272063720647206572066720677206872069720707207172072720737207472075720767207772078720797208072081720827208372084720857208672087720887208972090720917209272093720947209572096720977209872099721007210172102721037210472105721067210772108721097211072111721127211372114721157211672117721187211972120721217212272123721247212572126721277212872129721307213172132721337213472135721367213772138721397214072141721427214372144721457214672147721487214972150721517215272153721547215572156721577215872159721607216172162721637216472165721667216772168721697217072171721727217372174721757217672177721787217972180721817218272183721847218572186721877218872189721907219172192721937219472195721967219772198721997220072201722027220372204722057220672207722087220972210722117221272213722147221572216722177221872219722207222172222722237222472225722267222772228722297223072231722327223372234722357223672237722387223972240722417224272243722447224572246722477224872249722507225172252722537225472255722567225772258722597226072261722627226372264722657226672267722687226972270722717227272273722747227572276722777227872279722807228172282722837228472285722867228772288722897229072291722927229372294722957229672297722987229972300723017230272303723047230572306723077230872309723107231172312723137231472315723167231772318723197232072321723227232372324723257232672327723287232972330723317233272333723347233572336723377233872339723407234172342723437234472345723467234772348723497235072351723527235372354723557235672357723587235972360723617236272363723647236572366723677236872369723707237172372723737237472375723767237772378723797238072381723827238372384723857238672387723887238972390723917239272393723947239572396723977239872399724007240172402724037240472405724067240772408724097241072411724127241372414724157241672417724187241972420724217242272423724247242572426724277242872429724307243172432724337243472435724367243772438724397244072441724427244372444724457244672447724487244972450724517245272453724547245572456724577245872459724607246172462724637246472465724667246772468724697247072471724727247372474724757247672477724787247972480724817248272483724847248572486724877248872489724907249172492724937249472495724967249772498724997250072501725027250372504725057250672507725087250972510725117251272513725147251572516725177251872519725207252172522725237252472525725267252772528725297253072531725327253372534725357253672537725387253972540725417254272543725447254572546725477254872549725507255172552725537255472555725567255772558725597256072561725627256372564725657256672567725687256972570725717257272573725747257572576725777257872579725807258172582725837258472585725867258772588725897259072591725927259372594725957259672597725987259972600726017260272603726047260572606726077260872609726107261172612726137261472615726167261772618726197262072621726227262372624726257262672627726287262972630726317263272633726347263572636726377263872639726407264172642726437264472645726467264772648726497265072651726527265372654726557265672657726587265972660726617266272663726647266572666726677266872669726707267172672726737267472675726767267772678726797268072681726827268372684726857268672687726887268972690726917269272693726947269572696726977269872699727007270172702727037270472705727067270772708727097271072711727127271372714727157271672717727187271972720727217272272723727247272572726727277272872729727307273172732727337273472735727367273772738727397274072741727427274372744727457274672747727487274972750727517275272753727547275572756727577275872759727607276172762727637276472765727667276772768727697277072771727727277372774727757277672777727787277972780727817278272783727847278572786727877278872789727907279172792727937279472795727967279772798727997280072801728027280372804728057280672807728087280972810728117281272813728147281572816728177281872819728207282172822728237282472825728267282772828728297283072831728327283372834728357283672837728387283972840728417284272843728447284572846728477284872849728507285172852728537285472855728567285772858728597286072861728627286372864728657286672867728687286972870728717287272873728747287572876728777287872879728807288172882728837288472885728867288772888728897289072891728927289372894728957289672897728987289972900729017290272903729047290572906729077290872909729107291172912729137291472915729167291772918729197292072921729227292372924729257292672927729287292972930729317293272933729347293572936729377293872939729407294172942729437294472945729467294772948729497295072951729527295372954729557295672957729587295972960729617296272963729647296572966729677296872969729707297172972729737297472975729767297772978729797298072981729827298372984729857298672987729887298972990729917299272993729947299572996729977299872999730007300173002730037300473005730067300773008730097301073011730127301373014730157301673017730187301973020730217302273023730247302573026730277302873029730307303173032730337303473035730367303773038730397304073041730427304373044730457304673047730487304973050730517305273053730547305573056730577305873059730607306173062730637306473065730667306773068730697307073071730727307373074730757307673077730787307973080730817308273083730847308573086730877308873089730907309173092730937309473095730967309773098730997310073101731027310373104731057310673107731087310973110731117311273113731147311573116731177311873119731207312173122731237312473125731267312773128731297313073131731327313373134731357313673137731387313973140731417314273143731447314573146731477314873149731507315173152731537315473155731567315773158731597316073161731627316373164731657316673167731687316973170731717317273173731747317573176731777317873179731807318173182731837318473185731867318773188731897319073191731927319373194731957319673197731987319973200732017320273203732047320573206732077320873209732107321173212732137321473215732167321773218732197322073221732227322373224732257322673227732287322973230732317323273233732347323573236732377323873239732407324173242732437324473245732467324773248732497325073251732527325373254732557325673257732587325973260732617326273263732647326573266732677326873269732707327173272732737327473275732767327773278732797328073281732827328373284732857328673287732887328973290732917329273293732947329573296732977329873299733007330173302733037330473305733067330773308733097331073311733127331373314733157331673317733187331973320733217332273323733247332573326733277332873329733307333173332733337333473335733367333773338733397334073341733427334373344733457334673347733487334973350733517335273353733547335573356733577335873359733607336173362733637336473365733667336773368733697337073371733727337373374733757337673377733787337973380733817338273383733847338573386733877338873389733907339173392733937339473395733967339773398733997340073401734027340373404734057340673407734087340973410734117341273413734147341573416734177341873419734207342173422734237342473425734267342773428734297343073431734327343373434734357343673437734387343973440734417344273443734447344573446734477344873449734507345173452734537345473455734567345773458734597346073461734627346373464734657346673467734687346973470734717347273473734747347573476734777347873479734807348173482734837348473485734867348773488734897349073491734927349373494734957349673497734987349973500735017350273503735047350573506735077350873509735107351173512735137351473515735167351773518735197352073521735227352373524735257352673527735287352973530735317353273533735347353573536735377353873539735407354173542735437354473545735467354773548735497355073551735527355373554735557355673557735587355973560735617356273563735647356573566735677356873569735707357173572735737357473575735767357773578735797358073581735827358373584735857358673587735887358973590735917359273593735947359573596735977359873599736007360173602736037360473605736067360773608736097361073611736127361373614736157361673617736187361973620736217362273623736247362573626736277362873629736307363173632736337363473635736367363773638736397364073641736427364373644736457364673647736487364973650736517365273653736547365573656736577365873659736607366173662736637366473665736667366773668736697367073671736727367373674736757367673677736787367973680736817368273683736847368573686736877368873689736907369173692736937369473695736967369773698736997370073701737027370373704737057370673707737087370973710737117371273713737147371573716737177371873719737207372173722737237372473725737267372773728737297373073731737327373373734737357373673737737387373973740737417374273743737447374573746737477374873749737507375173752737537375473755737567375773758737597376073761737627376373764737657376673767737687376973770737717377273773737747377573776737777377873779737807378173782737837378473785737867378773788737897379073791737927379373794737957379673797737987379973800738017380273803738047380573806738077380873809738107381173812738137381473815738167381773818738197382073821738227382373824738257382673827738287382973830738317383273833738347383573836738377383873839738407384173842738437384473845738467384773848738497385073851738527385373854738557385673857738587385973860738617386273863738647386573866738677386873869738707387173872738737387473875738767387773878738797388073881738827388373884738857388673887738887388973890738917389273893738947389573896738977389873899739007390173902739037390473905739067390773908739097391073911739127391373914739157391673917739187391973920739217392273923739247392573926739277392873929739307393173932739337393473935739367393773938739397394073941739427394373944739457394673947739487394973950739517395273953739547395573956739577395873959739607396173962739637396473965739667396773968739697397073971739727397373974739757397673977739787397973980739817398273983739847398573986739877398873989739907399173992739937399473995739967399773998739997400074001740027400374004740057400674007740087400974010740117401274013740147401574016740177401874019740207402174022740237402474025740267402774028740297403074031740327403374034740357403674037740387403974040740417404274043740447404574046740477404874049740507405174052740537405474055740567405774058740597406074061740627406374064740657406674067740687406974070740717407274073740747407574076740777407874079740807408174082740837408474085740867408774088740897409074091740927409374094740957409674097740987409974100741017410274103741047410574106741077410874109741107411174112741137411474115741167411774118741197412074121741227412374124741257412674127741287412974130741317413274133741347413574136741377413874139741407414174142741437414474145741467414774148741497415074151741527415374154741557415674157741587415974160741617416274163741647416574166741677416874169741707417174172741737417474175741767417774178741797418074181741827418374184741857418674187741887418974190741917419274193741947419574196741977419874199742007420174202742037420474205742067420774208742097421074211742127421374214742157421674217742187421974220742217422274223742247422574226742277422874229742307423174232742337423474235742367423774238742397424074241742427424374244742457424674247742487424974250742517425274253742547425574256742577425874259742607426174262742637426474265742667426774268742697427074271742727427374274742757427674277742787427974280742817428274283742847428574286742877428874289742907429174292742937429474295742967429774298742997430074301743027430374304743057430674307743087430974310743117431274313743147431574316743177431874319743207432174322743237432474325743267432774328743297433074331743327433374334743357433674337743387433974340743417434274343743447434574346743477434874349743507435174352743537435474355743567435774358743597436074361743627436374364743657436674367743687436974370743717437274373743747437574376743777437874379743807438174382743837438474385743867438774388743897439074391743927439374394743957439674397743987439974400744017440274403744047440574406744077440874409744107441174412744137441474415744167441774418744197442074421744227442374424744257442674427744287442974430744317443274433744347443574436744377443874439744407444174442744437444474445744467444774448744497445074451744527445374454744557445674457744587445974460744617446274463744647446574466744677446874469744707447174472744737447474475744767447774478744797448074481744827448374484744857448674487744887448974490744917449274493744947449574496744977449874499745007450174502745037450474505745067450774508745097451074511745127451374514745157451674517745187451974520745217452274523745247452574526745277452874529745307453174532745337453474535745367453774538745397454074541745427454374544745457454674547745487454974550745517455274553745547455574556745577455874559745607456174562745637456474565745667456774568745697457074571745727457374574745757457674577745787457974580745817458274583745847458574586745877458874589745907459174592745937459474595745967459774598745997460074601746027460374604746057460674607746087460974610746117461274613746147461574616746177461874619746207462174622746237462474625746267462774628746297463074631746327463374634746357463674637746387463974640746417464274643746447464574646746477464874649746507465174652746537465474655746567465774658746597466074661746627466374664746657466674667746687466974670746717467274673746747467574676746777467874679746807468174682746837468474685746867468774688746897469074691746927469374694746957469674697746987469974700747017470274703747047470574706747077470874709747107471174712747137471474715747167471774718747197472074721747227472374724747257472674727747287472974730747317473274733747347473574736747377473874739747407474174742747437474474745747467474774748747497475074751747527475374754747557475674757747587475974760747617476274763747647476574766747677476874769747707477174772747737477474775747767477774778747797478074781747827478374784747857478674787747887478974790747917479274793747947479574796747977479874799748007480174802748037480474805748067480774808748097481074811748127481374814748157481674817748187481974820748217482274823748247482574826748277482874829748307483174832748337483474835748367483774838748397484074841748427484374844748457484674847748487484974850748517485274853748547485574856748577485874859748607486174862748637486474865748667486774868748697487074871748727487374874748757487674877748787487974880748817488274883748847488574886748877488874889748907489174892748937489474895748967489774898748997490074901749027490374904749057490674907749087490974910749117491274913749147491574916749177491874919749207492174922749237492474925749267492774928749297493074931749327493374934749357493674937749387493974940749417494274943749447494574946749477494874949749507495174952749537495474955749567495774958749597496074961749627496374964749657496674967749687496974970749717497274973749747497574976749777497874979749807498174982749837498474985749867498774988749897499074991749927499374994749957499674997749987499975000750017500275003750047500575006750077500875009750107501175012750137501475015750167501775018750197502075021750227502375024750257502675027750287502975030750317503275033750347503575036750377503875039750407504175042750437504475045750467504775048750497505075051750527505375054750557505675057750587505975060750617506275063750647506575066750677506875069750707507175072750737507475075750767507775078750797508075081750827508375084750857508675087750887508975090750917509275093750947509575096750977509875099751007510175102751037510475105751067510775108751097511075111751127511375114751157511675117751187511975120751217512275123751247512575126751277512875129751307513175132751337513475135751367513775138751397514075141751427514375144751457514675147751487514975150751517515275153751547515575156751577515875159751607516175162751637516475165751667516775168751697517075171751727517375174751757517675177751787517975180751817518275183751847518575186751877518875189751907519175192751937519475195751967519775198751997520075201752027520375204752057520675207752087520975210752117521275213752147521575216752177521875219752207522175222752237522475225752267522775228752297523075231752327523375234752357523675237752387523975240752417524275243752447524575246752477524875249752507525175252752537525475255752567525775258752597526075261752627526375264752657526675267752687526975270752717527275273752747527575276752777527875279752807528175282752837528475285752867528775288752897529075291752927529375294752957529675297752987529975300753017530275303753047530575306753077530875309753107531175312753137531475315753167531775318753197532075321753227532375324753257532675327753287532975330753317533275333753347533575336753377533875339753407534175342753437534475345753467534775348753497535075351753527535375354753557535675357753587535975360753617536275363753647536575366753677536875369753707537175372753737537475375753767537775378753797538075381753827538375384753857538675387753887538975390753917539275393753947539575396753977539875399754007540175402754037540475405754067540775408754097541075411754127541375414754157541675417754187541975420754217542275423754247542575426754277542875429754307543175432754337543475435754367543775438754397544075441754427544375444754457544675447754487544975450754517545275453754547545575456754577545875459754607546175462754637546475465754667546775468754697547075471754727547375474754757547675477754787547975480754817548275483754847548575486754877548875489754907549175492754937549475495754967549775498754997550075501755027550375504755057550675507755087550975510755117551275513755147551575516755177551875519755207552175522755237552475525755267552775528755297553075531755327553375534755357553675537755387553975540755417554275543755447554575546755477554875549755507555175552755537555475555755567555775558755597556075561755627556375564755657556675567755687556975570755717557275573755747557575576755777557875579755807558175582755837558475585755867558775588755897559075591755927559375594755957559675597755987559975600756017560275603756047560575606756077560875609756107561175612756137561475615756167561775618756197562075621756227562375624756257562675627756287562975630756317563275633756347563575636756377563875639756407564175642756437564475645756467564775648756497565075651756527565375654756557565675657756587565975660756617566275663756647566575666756677566875669756707567175672756737567475675756767567775678756797568075681756827568375684756857568675687756887568975690756917569275693756947569575696756977569875699757007570175702757037570475705757067570775708757097571075711757127571375714757157571675717757187571975720757217572275723757247572575726757277572875729757307573175732757337573475735757367573775738757397574075741757427574375744757457574675747757487574975750757517575275753757547575575756757577575875759757607576175762757637576475765757667576775768757697577075771757727577375774757757577675777757787577975780757817578275783757847578575786757877578875789757907579175792757937579475795757967579775798757997580075801758027580375804758057580675807758087580975810758117581275813758147581575816758177581875819758207582175822758237582475825758267582775828758297583075831758327583375834758357583675837758387583975840758417584275843758447584575846758477584875849758507585175852758537585475855758567585775858758597586075861758627586375864758657586675867758687586975870758717587275873758747587575876758777587875879758807588175882758837588475885758867588775888758897589075891758927589375894758957589675897758987589975900759017590275903759047590575906759077590875909759107591175912759137591475915759167591775918759197592075921759227592375924759257592675927759287592975930759317593275933759347593575936759377593875939759407594175942759437594475945759467594775948759497595075951759527595375954759557595675957759587595975960759617596275963759647596575966759677596875969759707597175972759737597475975759767597775978759797598075981759827598375984759857598675987759887598975990759917599275993759947599575996759977599875999760007600176002760037600476005760067600776008760097601076011760127601376014760157601676017760187601976020760217602276023760247602576026760277602876029760307603176032760337603476035760367603776038760397604076041760427604376044760457604676047760487604976050760517605276053760547605576056760577605876059760607606176062760637606476065760667606776068760697607076071760727607376074760757607676077760787607976080760817608276083760847608576086760877608876089760907609176092760937609476095760967609776098760997610076101761027610376104761057610676107761087610976110761117611276113761147611576116761177611876119761207612176122761237612476125761267612776128761297613076131761327613376134761357613676137761387613976140761417614276143761447614576146761477614876149761507615176152761537615476155761567615776158761597616076161761627616376164761657616676167761687616976170761717617276173761747617576176761777617876179761807618176182761837618476185761867618776188761897619076191761927619376194761957619676197761987619976200762017620276203762047620576206762077620876209762107621176212762137621476215762167621776218762197622076221762227622376224762257622676227762287622976230762317623276233762347623576236762377623876239762407624176242762437624476245762467624776248762497625076251762527625376254762557625676257762587625976260762617626276263762647626576266762677626876269762707627176272762737627476275762767627776278762797628076281762827628376284762857628676287762887628976290762917629276293762947629576296762977629876299763007630176302763037630476305763067630776308763097631076311763127631376314763157631676317763187631976320763217632276323763247632576326763277632876329763307633176332763337633476335763367633776338763397634076341763427634376344763457634676347763487634976350763517635276353763547635576356763577635876359763607636176362763637636476365763667636776368763697637076371763727637376374763757637676377763787637976380763817638276383763847638576386763877638876389763907639176392763937639476395763967639776398763997640076401764027640376404764057640676407764087640976410764117641276413764147641576416764177641876419764207642176422764237642476425764267642776428764297643076431764327643376434764357643676437764387643976440764417644276443764447644576446764477644876449764507645176452764537645476455764567645776458764597646076461764627646376464764657646676467764687646976470764717647276473764747647576476764777647876479764807648176482764837648476485764867648776488764897649076491764927649376494764957649676497764987649976500765017650276503765047650576506765077650876509765107651176512765137651476515765167651776518765197652076521765227652376524765257652676527765287652976530765317653276533765347653576536765377653876539765407654176542765437654476545765467654776548765497655076551765527655376554765557655676557765587655976560765617656276563765647656576566765677656876569765707657176572765737657476575765767657776578765797658076581765827658376584765857658676587765887658976590765917659276593765947659576596765977659876599766007660176602766037660476605766067660776608766097661076611766127661376614766157661676617766187661976620766217662276623766247662576626766277662876629766307663176632766337663476635766367663776638766397664076641766427664376644766457664676647766487664976650766517665276653766547665576656766577665876659766607666176662766637666476665766667666776668766697667076671766727667376674766757667676677766787667976680766817668276683766847668576686766877668876689766907669176692766937669476695766967669776698766997670076701767027670376704767057670676707767087670976710767117671276713767147671576716767177671876719767207672176722767237672476725767267672776728767297673076731767327673376734767357673676737767387673976740767417674276743767447674576746767477674876749767507675176752767537675476755767567675776758767597676076761767627676376764767657676676767767687676976770767717677276773767747677576776767777677876779767807678176782767837678476785767867678776788767897679076791767927679376794767957679676797767987679976800768017680276803768047680576806768077680876809768107681176812768137681476815768167681776818768197682076821768227682376824768257682676827768287682976830768317683276833768347683576836768377683876839768407684176842768437684476845768467684776848768497685076851768527685376854768557685676857768587685976860768617686276863768647686576866768677686876869768707687176872768737687476875768767687776878768797688076881768827688376884768857688676887768887688976890768917689276893768947689576896768977689876899769007690176902769037690476905769067690776908769097691076911769127691376914769157691676917769187691976920769217692276923769247692576926769277692876929769307693176932769337693476935769367693776938769397694076941769427694376944769457694676947769487694976950769517695276953769547695576956769577695876959769607696176962769637696476965769667696776968769697697076971769727697376974769757697676977769787697976980769817698276983769847698576986769877698876989769907699176992769937699476995769967699776998769997700077001770027700377004770057700677007770087700977010770117701277013770147701577016770177701877019770207702177022770237702477025770267702777028770297703077031770327703377034770357703677037770387703977040770417704277043770447704577046770477704877049770507705177052770537705477055770567705777058770597706077061770627706377064770657706677067770687706977070770717707277073770747707577076770777707877079770807708177082770837708477085770867708777088770897709077091770927709377094770957709677097770987709977100771017710277103771047710577106771077710877109771107711177112771137711477115771167711777118771197712077121771227712377124771257712677127771287712977130771317713277133771347713577136771377713877139771407714177142771437714477145771467714777148771497715077151771527715377154771557715677157771587715977160771617716277163771647716577166771677716877169771707717177172771737717477175771767717777178771797718077181771827718377184771857718677187771887718977190771917719277193771947719577196771977719877199772007720177202772037720477205772067720777208772097721077211772127721377214772157721677217772187721977220772217722277223772247722577226772277722877229772307723177232772337723477235772367723777238772397724077241772427724377244772457724677247772487724977250772517725277253772547725577256772577725877259772607726177262772637726477265772667726777268772697727077271772727727377274772757727677277772787727977280772817728277283772847728577286772877728877289772907729177292772937729477295772967729777298772997730077301773027730377304773057730677307773087730977310773117731277313773147731577316773177731877319773207732177322773237732477325773267732777328773297733077331773327733377334773357733677337773387733977340773417734277343773447734577346773477734877349773507735177352773537735477355773567735777358773597736077361773627736377364773657736677367773687736977370773717737277373773747737577376773777737877379773807738177382773837738477385773867738777388773897739077391773927739377394773957739677397773987739977400774017740277403774047740577406774077740877409774107741177412774137741477415774167741777418774197742077421774227742377424774257742677427774287742977430774317743277433774347743577436774377743877439774407744177442774437744477445774467744777448774497745077451774527745377454774557745677457774587745977460774617746277463774647746577466774677746877469774707747177472774737747477475774767747777478774797748077481774827748377484774857748677487774887748977490774917749277493774947749577496774977749877499775007750177502775037750477505775067750777508775097751077511775127751377514775157751677517775187751977520775217752277523775247752577526775277752877529775307753177532775337753477535775367753777538775397754077541775427754377544775457754677547775487754977550775517755277553775547755577556775577755877559775607756177562775637756477565775667756777568775697757077571775727757377574775757757677577775787757977580775817758277583775847758577586775877758877589775907759177592775937759477595775967759777598775997760077601776027760377604776057760677607776087760977610776117761277613776147761577616776177761877619776207762177622776237762477625776267762777628776297763077631776327763377634776357763677637776387763977640776417764277643776447764577646776477764877649776507765177652776537765477655776567765777658776597766077661776627766377664776657766677667776687766977670776717767277673776747767577676776777767877679776807768177682776837768477685776867768777688776897769077691776927769377694776957769677697776987769977700777017770277703777047770577706777077770877709777107771177712777137771477715777167771777718777197772077721777227772377724777257772677727777287772977730777317773277733777347773577736777377773877739777407774177742777437774477745777467774777748777497775077751777527775377754777557775677757777587775977760777617776277763777647776577766777677776877769777707777177772777737777477775777767777777778777797778077781777827778377784777857778677787777887778977790777917779277793777947779577796777977779877799778007780177802778037780477805778067780777808778097781077811778127781377814778157781677817778187781977820778217782277823778247782577826778277782877829778307783177832778337783477835778367783777838778397784077841778427784377844778457784677847778487784977850778517785277853778547785577856778577785877859778607786177862778637786477865778667786777868778697787077871778727787377874778757787677877778787787977880778817788277883778847788577886778877788877889778907789177892778937789477895778967789777898778997790077901779027790377904779057790677907779087790977910779117791277913779147791577916779177791877919779207792177922779237792477925779267792777928779297793077931779327793377934779357793677937779387793977940779417794277943779447794577946779477794877949779507795177952779537795477955779567795777958779597796077961779627796377964779657796677967779687796977970779717797277973779747797577976779777797877979779807798177982779837798477985779867798777988779897799077991779927799377994779957799677997779987799978000780017800278003780047800578006780077800878009780107801178012780137801478015780167801778018780197802078021780227802378024780257802678027780287802978030780317803278033780347803578036780377803878039780407804178042780437804478045780467804778048780497805078051780527805378054780557805678057780587805978060780617806278063780647806578066780677806878069780707807178072780737807478075780767807778078780797808078081780827808378084780857808678087780887808978090780917809278093780947809578096780977809878099781007810178102781037810478105781067810778108781097811078111781127811378114781157811678117781187811978120781217812278123781247812578126781277812878129781307813178132781337813478135781367813778138781397814078141781427814378144781457814678147781487814978150781517815278153781547815578156781577815878159781607816178162781637816478165781667816778168781697817078171781727817378174781757817678177781787817978180781817818278183781847818578186781877818878189781907819178192781937819478195781967819778198781997820078201782027820378204782057820678207782087820978210782117821278213782147821578216782177821878219782207822178222782237822478225782267822778228782297823078231782327823378234782357823678237782387823978240782417824278243782447824578246782477824878249782507825178252782537825478255782567825778258782597826078261782627826378264782657826678267782687826978270782717827278273782747827578276782777827878279782807828178282782837828478285782867828778288782897829078291782927829378294782957829678297782987829978300783017830278303783047830578306783077830878309783107831178312783137831478315783167831778318783197832078321783227832378324783257832678327783287832978330783317833278333783347833578336783377833878339783407834178342783437834478345783467834778348783497835078351783527835378354783557835678357783587835978360783617836278363783647836578366783677836878369783707837178372783737837478375783767837778378783797838078381783827838378384783857838678387783887838978390783917839278393783947839578396783977839878399784007840178402784037840478405784067840778408784097841078411784127841378414784157841678417784187841978420784217842278423784247842578426784277842878429784307843178432784337843478435784367843778438784397844078441784427844378444784457844678447784487844978450784517845278453784547845578456784577845878459784607846178462784637846478465784667846778468784697847078471784727847378474784757847678477784787847978480784817848278483784847848578486784877848878489784907849178492784937849478495784967849778498784997850078501785027850378504785057850678507785087850978510785117851278513785147851578516785177851878519785207852178522785237852478525785267852778528785297853078531785327853378534785357853678537785387853978540785417854278543785447854578546785477854878549785507855178552785537855478555785567855778558785597856078561785627856378564785657856678567785687856978570785717857278573785747857578576785777857878579785807858178582785837858478585785867858778588785897859078591785927859378594785957859678597785987859978600786017860278603786047860578606786077860878609786107861178612786137861478615786167861778618786197862078621786227862378624786257862678627786287862978630786317863278633786347863578636786377863878639786407864178642786437864478645786467864778648786497865078651786527865378654786557865678657786587865978660786617866278663786647866578666786677866878669786707867178672786737867478675786767867778678786797868078681786827868378684786857868678687786887868978690786917869278693786947869578696786977869878699787007870178702787037870478705787067870778708787097871078711787127871378714787157871678717787187871978720787217872278723787247872578726787277872878729787307873178732787337873478735787367873778738787397874078741787427874378744787457874678747787487874978750787517875278753787547875578756787577875878759787607876178762787637876478765787667876778768787697877078771787727877378774787757877678777787787877978780787817878278783787847878578786787877878878789787907879178792787937879478795787967879778798787997880078801788027880378804788057880678807788087880978810788117881278813788147881578816788177881878819788207882178822788237882478825788267882778828788297883078831788327883378834788357883678837788387883978840788417884278843788447884578846788477884878849788507885178852788537885478855788567885778858788597886078861788627886378864788657886678867788687886978870788717887278873788747887578876788777887878879788807888178882788837888478885788867888778888788897889078891788927889378894788957889678897788987889978900789017890278903789047890578906789077890878909789107891178912789137891478915789167891778918789197892078921789227892378924789257892678927789287892978930789317893278933789347893578936789377893878939789407894178942789437894478945789467894778948789497895078951789527895378954789557895678957789587895978960789617896278963789647896578966789677896878969789707897178972789737897478975789767897778978789797898078981789827898378984789857898678987789887898978990789917899278993789947899578996789977899878999790007900179002790037900479005790067900779008790097901079011790127901379014790157901679017790187901979020790217902279023790247902579026790277902879029790307903179032790337903479035790367903779038790397904079041790427904379044790457904679047790487904979050790517905279053790547905579056790577905879059790607906179062790637906479065790667906779068790697907079071790727907379074790757907679077790787907979080790817908279083790847908579086790877908879089790907909179092790937909479095790967909779098790997910079101791027910379104791057910679107791087910979110791117911279113791147911579116791177911879119791207912179122791237912479125791267912779128791297913079131791327913379134791357913679137791387913979140791417914279143791447914579146791477914879149791507915179152791537915479155791567915779158791597916079161791627916379164791657916679167791687916979170791717917279173791747917579176791777917879179791807918179182791837918479185791867918779188791897919079191791927919379194791957919679197791987919979200792017920279203792047920579206792077920879209792107921179212792137921479215792167921779218792197922079221792227922379224792257922679227792287922979230792317923279233792347923579236792377923879239792407924179242792437924479245792467924779248792497925079251792527925379254792557925679257792587925979260792617926279263792647926579266792677926879269792707927179272792737927479275792767927779278792797928079281792827928379284792857928679287792887928979290792917929279293792947929579296792977929879299793007930179302793037930479305793067930779308793097931079311793127931379314793157931679317793187931979320793217932279323793247932579326793277932879329793307933179332793337933479335793367933779338793397934079341793427934379344793457934679347793487934979350793517935279353793547935579356793577935879359793607936179362793637936479365793667936779368793697937079371793727937379374793757937679377793787937979380793817938279383793847938579386793877938879389793907939179392793937939479395793967939779398793997940079401794027940379404794057940679407794087940979410794117941279413794147941579416794177941879419794207942179422794237942479425794267942779428794297943079431794327943379434794357943679437794387943979440794417944279443794447944579446794477944879449794507945179452794537945479455794567945779458794597946079461794627946379464794657946679467794687946979470794717947279473794747947579476794777947879479794807948179482794837948479485794867948779488794897949079491794927949379494794957949679497794987949979500795017950279503795047950579506795077950879509795107951179512795137951479515795167951779518795197952079521795227952379524795257952679527795287952979530795317953279533795347953579536795377953879539795407954179542795437954479545795467954779548795497955079551795527955379554795557955679557795587955979560795617956279563795647956579566795677956879569795707957179572795737957479575795767957779578795797958079581795827958379584795857958679587795887958979590795917959279593795947959579596795977959879599796007960179602796037960479605796067960779608796097961079611796127961379614796157961679617796187961979620796217962279623796247962579626796277962879629796307963179632796337963479635796367963779638796397964079641796427964379644796457964679647796487964979650796517965279653796547965579656796577965879659796607966179662796637966479665796667966779668796697967079671796727967379674796757967679677796787967979680796817968279683796847968579686796877968879689796907969179692796937969479695796967969779698796997970079701797027970379704797057970679707797087970979710797117971279713797147971579716797177971879719797207972179722797237972479725797267972779728797297973079731797327973379734797357973679737797387973979740797417974279743797447974579746797477974879749797507975179752797537975479755797567975779758797597976079761797627976379764797657976679767797687976979770797717977279773797747977579776797777977879779797807978179782797837978479785797867978779788797897979079791797927979379794797957979679797797987979979800798017980279803798047980579806798077980879809798107981179812798137981479815798167981779818798197982079821798227982379824798257982679827798287982979830798317983279833798347983579836798377983879839798407984179842798437984479845798467984779848798497985079851798527985379854798557985679857798587985979860798617986279863798647986579866798677986879869798707987179872798737987479875798767987779878798797988079881798827988379884798857988679887798887988979890798917989279893798947989579896798977989879899799007990179902799037990479905799067990779908799097991079911799127991379914799157991679917799187991979920799217992279923799247992579926799277992879929799307993179932799337993479935799367993779938799397994079941799427994379944799457994679947799487994979950799517995279953799547995579956799577995879959799607996179962799637996479965799667996779968799697997079971799727997379974799757997679977799787997979980799817998279983799847998579986799877998879989799907999179992799937999479995799967999779998799998000080001800028000380004800058000680007800088000980010800118001280013800148001580016800178001880019800208002180022800238002480025800268002780028800298003080031800328003380034800358003680037800388003980040800418004280043800448004580046800478004880049800508005180052800538005480055800568005780058800598006080061800628006380064800658006680067800688006980070800718007280073800748007580076800778007880079800808008180082800838008480085800868008780088800898009080091800928009380094800958009680097800988009980100801018010280103801048010580106801078010880109801108011180112801138011480115801168011780118801198012080121801228012380124801258012680127801288012980130801318013280133801348013580136801378013880139801408014180142801438014480145801468014780148801498015080151801528015380154801558015680157801588015980160801618016280163801648016580166801678016880169801708017180172801738017480175801768017780178801798018080181801828018380184801858018680187801888018980190801918019280193801948019580196801978019880199802008020180202802038020480205802068020780208802098021080211802128021380214802158021680217802188021980220802218022280223802248022580226802278022880229802308023180232802338023480235802368023780238802398024080241802428024380244802458024680247802488024980250802518025280253802548025580256802578025880259802608026180262802638026480265802668026780268802698027080271802728027380274802758027680277802788027980280802818028280283802848028580286802878028880289802908029180292802938029480295802968029780298802998030080301803028030380304803058030680307803088030980310803118031280313803148031580316803178031880319803208032180322803238032480325803268032780328803298033080331803328033380334803358033680337803388033980340803418034280343803448034580346803478034880349803508035180352803538035480355803568035780358803598036080361803628036380364803658036680367803688036980370803718037280373803748037580376803778037880379803808038180382803838038480385803868038780388803898039080391803928039380394803958039680397803988039980400804018040280403804048040580406804078040880409804108041180412804138041480415804168041780418804198042080421804228042380424804258042680427804288042980430804318043280433804348043580436804378043880439804408044180442804438044480445804468044780448804498045080451804528045380454804558045680457804588045980460804618046280463804648046580466804678046880469804708047180472804738047480475804768047780478804798048080481804828048380484804858048680487804888048980490804918049280493804948049580496804978049880499805008050180502805038050480505805068050780508805098051080511805128051380514805158051680517805188051980520805218052280523805248052580526805278052880529805308053180532805338053480535805368053780538805398054080541805428054380544805458054680547805488054980550805518055280553805548055580556805578055880559805608056180562805638056480565805668056780568805698057080571805728057380574805758057680577805788057980580805818058280583805848058580586805878058880589805908059180592805938059480595805968059780598805998060080601806028060380604806058060680607806088060980610806118061280613806148061580616806178061880619806208062180622806238062480625806268062780628806298063080631806328063380634806358063680637806388063980640806418064280643806448064580646806478064880649806508065180652806538065480655806568065780658806598066080661806628066380664806658066680667806688066980670806718067280673806748067580676806778067880679806808068180682806838068480685806868068780688806898069080691806928069380694806958069680697806988069980700807018070280703807048070580706807078070880709807108071180712807138071480715807168071780718807198072080721807228072380724807258072680727807288072980730807318073280733807348073580736807378073880739807408074180742807438074480745807468074780748807498075080751807528075380754807558075680757807588075980760807618076280763807648076580766807678076880769807708077180772807738077480775807768077780778807798078080781807828078380784807858078680787807888078980790807918079280793807948079580796807978079880799808008080180802808038080480805808068080780808808098081080811808128081380814808158081680817808188081980820808218082280823808248082580826808278082880829808308083180832808338083480835808368083780838808398084080841808428084380844808458084680847808488084980850808518085280853808548085580856808578085880859808608086180862808638086480865808668086780868808698087080871808728087380874808758087680877808788087980880808818088280883808848088580886808878088880889808908089180892808938089480895808968089780898808998090080901809028090380904809058090680907809088090980910809118091280913809148091580916809178091880919809208092180922809238092480925809268092780928809298093080931809328093380934809358093680937809388093980940809418094280943809448094580946809478094880949809508095180952809538095480955809568095780958809598096080961809628096380964809658096680967809688096980970809718097280973809748097580976809778097880979809808098180982809838098480985809868098780988809898099080991809928099380994809958099680997809988099981000810018100281003810048100581006810078100881009810108101181012810138101481015810168101781018810198102081021810228102381024810258102681027810288102981030810318103281033810348103581036810378103881039810408104181042810438104481045810468104781048810498105081051810528105381054810558105681057810588105981060810618106281063810648106581066810678106881069810708107181072810738107481075810768107781078810798108081081810828108381084810858108681087810888108981090810918109281093810948109581096810978109881099811008110181102811038110481105811068110781108811098111081111811128111381114811158111681117811188111981120811218112281123811248112581126811278112881129811308113181132811338113481135811368113781138811398114081141811428114381144811458114681147811488114981150811518115281153811548115581156811578115881159811608116181162811638116481165811668116781168811698117081171811728117381174811758117681177811788117981180811818118281183811848118581186811878118881189811908119181192811938119481195811968119781198811998120081201812028120381204812058120681207812088120981210812118121281213812148121581216812178121881219812208122181222812238122481225812268122781228812298123081231812328123381234812358123681237812388123981240812418124281243812448124581246812478124881249812508125181252812538125481255812568125781258812598126081261812628126381264812658126681267812688126981270812718127281273812748127581276812778127881279812808128181282812838128481285812868128781288812898129081291812928129381294812958129681297812988129981300813018130281303813048130581306813078130881309813108131181312813138131481315813168131781318813198132081321813228132381324813258132681327813288132981330813318133281333813348133581336813378133881339813408134181342813438134481345813468134781348813498135081351813528135381354813558135681357813588135981360813618136281363813648136581366813678136881369813708137181372813738137481375813768137781378813798138081381813828138381384813858138681387813888138981390813918139281393813948139581396813978139881399814008140181402814038140481405814068140781408814098141081411814128141381414814158141681417814188141981420814218142281423814248142581426814278142881429814308143181432814338143481435814368143781438814398144081441814428144381444814458144681447814488144981450814518145281453814548145581456814578145881459814608146181462814638146481465814668146781468814698147081471814728147381474814758147681477814788147981480814818148281483814848148581486814878148881489814908149181492814938149481495814968149781498814998150081501815028150381504815058150681507815088150981510815118151281513815148151581516815178151881519815208152181522815238152481525815268152781528815298153081531815328153381534815358153681537815388153981540815418154281543815448154581546815478154881549815508155181552815538155481555815568155781558815598156081561815628156381564815658156681567815688156981570815718157281573815748157581576815778157881579815808158181582815838158481585815868158781588815898159081591815928159381594815958159681597815988159981600816018160281603816048160581606816078160881609816108161181612816138161481615816168161781618816198162081621816228162381624816258162681627816288162981630816318163281633816348163581636816378163881639816408164181642816438164481645816468164781648816498165081651816528165381654816558165681657816588165981660816618166281663816648166581666816678166881669816708167181672816738167481675816768167781678816798168081681816828168381684816858168681687816888168981690816918169281693816948169581696816978169881699817008170181702817038170481705817068170781708817098171081711817128171381714817158171681717817188171981720817218172281723817248172581726817278172881729817308173181732817338173481735817368173781738817398174081741817428174381744817458174681747817488174981750817518175281753817548175581756817578175881759817608176181762817638176481765817668176781768817698177081771817728177381774817758177681777817788177981780817818178281783817848178581786817878178881789817908179181792817938179481795817968179781798817998180081801818028180381804818058180681807818088180981810818118181281813818148181581816818178181881819818208182181822818238182481825818268182781828818298183081831818328183381834818358183681837818388183981840818418184281843818448184581846818478184881849818508185181852818538185481855818568185781858818598186081861818628186381864818658186681867818688186981870818718187281873818748187581876818778187881879818808188181882818838188481885818868188781888818898189081891818928189381894818958189681897818988189981900819018190281903819048190581906819078190881909819108191181912819138191481915819168191781918819198192081921819228192381924819258192681927819288192981930819318193281933819348193581936819378193881939819408194181942819438194481945819468194781948819498195081951819528195381954819558195681957819588195981960819618196281963819648196581966819678196881969819708197181972819738197481975819768197781978819798198081981819828198381984819858198681987819888198981990819918199281993819948199581996819978199881999820008200182002820038200482005820068200782008820098201082011820128201382014820158201682017820188201982020820218202282023820248202582026820278202882029820308203182032820338203482035820368203782038820398204082041820428204382044820458204682047820488204982050820518205282053820548205582056820578205882059820608206182062820638206482065820668206782068820698207082071820728207382074820758207682077820788207982080820818208282083820848208582086820878208882089820908209182092820938209482095820968209782098820998210082101821028210382104821058210682107821088210982110821118211282113821148211582116821178211882119821208212182122821238212482125821268212782128821298213082131821328213382134821358213682137821388213982140821418214282143821448214582146821478214882149821508215182152821538215482155821568215782158821598216082161821628216382164821658216682167821688216982170821718217282173821748217582176821778217882179821808218182182821838218482185821868218782188821898219082191821928219382194821958219682197821988219982200822018220282203822048220582206822078220882209822108221182212822138221482215822168221782218822198222082221822228222382224822258222682227822288222982230822318223282233822348223582236822378223882239822408224182242822438224482245822468224782248822498225082251822528225382254822558225682257822588225982260822618226282263822648226582266822678226882269822708227182272822738227482275822768227782278822798228082281822828228382284822858228682287822888228982290822918229282293822948229582296822978229882299823008230182302823038230482305823068230782308823098231082311823128231382314823158231682317823188231982320823218232282323823248232582326823278232882329823308233182332823338233482335823368233782338823398234082341823428234382344823458234682347823488234982350823518235282353823548235582356823578235882359823608236182362823638236482365823668236782368823698237082371823728237382374823758237682377823788237982380823818238282383823848238582386823878238882389823908239182392823938239482395823968239782398823998240082401824028240382404824058240682407824088240982410824118241282413824148241582416824178241882419824208242182422824238242482425824268242782428824298243082431824328243382434824358243682437824388243982440824418244282443824448244582446824478244882449824508245182452824538245482455824568245782458824598246082461824628246382464824658246682467824688246982470824718247282473824748247582476824778247882479824808248182482824838248482485824868248782488824898249082491824928249382494824958249682497824988249982500825018250282503825048250582506825078250882509825108251182512825138251482515825168251782518825198252082521825228252382524825258252682527825288252982530825318253282533825348253582536825378253882539825408254182542825438254482545825468254782548825498255082551825528255382554825558255682557825588255982560825618256282563825648256582566825678256882569825708257182572825738257482575825768257782578825798258082581825828258382584825858258682587825888258982590825918259282593825948259582596825978259882599826008260182602826038260482605826068260782608826098261082611826128261382614826158261682617826188261982620826218262282623826248262582626826278262882629826308263182632826338263482635826368263782638826398264082641826428264382644826458264682647826488264982650826518265282653826548265582656826578265882659826608266182662826638266482665826668266782668826698267082671826728267382674826758267682677826788267982680826818268282683826848268582686826878268882689826908269182692826938269482695826968269782698826998270082701827028270382704827058270682707827088270982710827118271282713827148271582716827178271882719827208272182722827238272482725827268272782728827298273082731827328273382734827358273682737827388273982740827418274282743827448274582746827478274882749827508275182752827538275482755827568275782758827598276082761827628276382764827658276682767827688276982770827718277282773827748277582776827778277882779827808278182782827838278482785827868278782788827898279082791827928279382794827958279682797827988279982800828018280282803828048280582806828078280882809828108281182812828138281482815828168281782818828198282082821828228282382824828258282682827828288282982830828318283282833828348283582836828378283882839828408284182842828438284482845828468284782848828498285082851828528285382854828558285682857828588285982860828618286282863828648286582866828678286882869828708287182872828738287482875828768287782878828798288082881828828288382884828858288682887828888288982890828918289282893828948289582896828978289882899829008290182902829038290482905829068290782908829098291082911829128291382914829158291682917829188291982920829218292282923829248292582926829278292882929829308293182932829338293482935829368293782938829398294082941829428294382944829458294682947829488294982950829518295282953829548295582956829578295882959829608296182962829638296482965829668296782968829698297082971829728297382974829758297682977829788297982980829818298282983829848298582986829878298882989829908299182992829938299482995829968299782998829998300083001830028300383004830058300683007830088300983010830118301283013830148301583016830178301883019830208302183022830238302483025830268302783028830298303083031830328303383034830358303683037830388303983040830418304283043830448304583046830478304883049830508305183052830538305483055830568305783058830598306083061830628306383064830658306683067830688306983070830718307283073830748307583076830778307883079830808308183082830838308483085830868308783088830898309083091830928309383094830958309683097830988309983100831018310283103831048310583106831078310883109831108311183112831138311483115831168311783118831198312083121831228312383124831258312683127831288312983130831318313283133831348313583136831378313883139831408314183142831438314483145831468314783148831498315083151831528315383154831558315683157831588315983160831618316283163831648316583166831678316883169831708317183172831738317483175831768317783178831798318083181831828318383184831858318683187831888318983190831918319283193831948319583196831978319883199832008320183202832038320483205832068320783208832098321083211832128321383214832158321683217832188321983220832218322283223832248322583226832278322883229832308323183232832338323483235832368323783238832398324083241832428324383244832458324683247832488324983250832518325283253832548325583256832578325883259832608326183262832638326483265832668326783268832698327083271832728327383274832758327683277832788327983280832818328283283832848328583286832878328883289832908329183292832938329483295832968329783298832998330083301833028330383304833058330683307833088330983310833118331283313833148331583316833178331883319833208332183322833238332483325833268332783328833298333083331833328333383334833358333683337833388333983340833418334283343833448334583346833478334883349833508335183352833538335483355833568335783358833598336083361833628336383364833658336683367833688336983370833718337283373833748337583376833778337883379833808338183382833838338483385833868338783388833898339083391833928339383394833958339683397833988339983400834018340283403834048340583406834078340883409834108341183412834138341483415834168341783418834198342083421834228342383424834258342683427834288342983430834318343283433834348343583436834378343883439834408344183442834438344483445834468344783448834498345083451834528345383454834558345683457834588345983460834618346283463834648346583466834678346883469834708347183472834738347483475834768347783478834798348083481834828348383484834858348683487834888348983490834918349283493834948349583496834978349883499835008350183502835038350483505835068350783508835098351083511835128351383514835158351683517835188351983520835218352283523835248352583526835278352883529835308353183532835338353483535835368353783538835398354083541835428354383544835458354683547835488354983550835518355283553835548355583556835578355883559835608356183562835638356483565835668356783568835698357083571835728357383574835758357683577835788357983580835818358283583835848358583586835878358883589835908359183592835938359483595835968359783598835998360083601836028360383604836058360683607836088360983610836118361283613836148361583616836178361883619836208362183622836238362483625836268362783628836298363083631836328363383634836358363683637836388363983640836418364283643836448364583646836478364883649836508365183652836538365483655836568365783658836598366083661836628366383664836658366683667836688366983670836718367283673836748367583676836778367883679836808368183682836838368483685836868368783688836898369083691836928369383694836958369683697836988369983700837018370283703837048370583706837078370883709837108371183712837138371483715837168371783718837198372083721837228372383724837258372683727837288372983730837318373283733837348373583736837378373883739837408374183742837438374483745837468374783748837498375083751837528375383754837558375683757837588375983760837618376283763837648376583766837678376883769837708377183772837738377483775837768377783778837798378083781837828378383784837858378683787837888378983790837918379283793837948379583796837978379883799838008380183802838038380483805838068380783808838098381083811838128381383814838158381683817838188381983820838218382283823838248382583826838278382883829838308383183832838338383483835838368383783838838398384083841838428384383844838458384683847838488384983850838518385283853838548385583856838578385883859838608386183862838638386483865838668386783868838698387083871838728387383874838758387683877838788387983880838818388283883838848388583886838878388883889838908389183892838938389483895838968389783898838998390083901839028390383904839058390683907839088390983910839118391283913839148391583916839178391883919839208392183922839238392483925839268392783928839298393083931839328393383934839358393683937839388393983940839418394283943839448394583946839478394883949839508395183952839538395483955839568395783958839598396083961839628396383964839658396683967839688396983970839718397283973839748397583976839778397883979839808398183982839838398483985839868398783988839898399083991839928399383994839958399683997839988399984000840018400284003840048400584006840078400884009840108401184012840138401484015840168401784018840198402084021840228402384024840258402684027840288402984030840318403284033840348403584036840378403884039840408404184042840438404484045840468404784048840498405084051840528405384054840558405684057840588405984060840618406284063840648406584066840678406884069840708407184072840738407484075840768407784078840798408084081840828408384084840858408684087840888408984090840918409284093840948409584096840978409884099841008410184102841038410484105841068410784108841098411084111841128411384114841158411684117841188411984120841218412284123841248412584126841278412884129841308413184132841338413484135841368413784138841398414084141841428414384144841458414684147841488414984150841518415284153841548415584156841578415884159841608416184162841638416484165841668416784168841698417084171841728417384174841758417684177841788417984180841818418284183841848418584186841878418884189841908419184192841938419484195841968419784198841998420084201842028420384204842058420684207842088420984210842118421284213842148421584216842178421884219842208422184222842238422484225842268422784228842298423084231842328423384234842358423684237842388423984240842418424284243842448424584246842478424884249842508425184252842538425484255842568425784258842598426084261842628426384264842658426684267842688426984270842718427284273842748427584276842778427884279842808428184282842838428484285842868428784288842898429084291842928429384294842958429684297842988429984300843018430284303843048430584306843078430884309843108431184312843138431484315843168431784318843198432084321843228432384324843258432684327843288432984330843318433284333843348433584336843378433884339843408434184342843438434484345843468434784348843498435084351843528435384354843558435684357843588435984360843618436284363843648436584366843678436884369843708437184372843738437484375843768437784378843798438084381843828438384384843858438684387843888438984390843918439284393843948439584396843978439884399844008440184402844038440484405844068440784408844098441084411844128441384414844158441684417844188441984420844218442284423844248442584426844278442884429844308443184432844338443484435844368443784438844398444084441844428444384444844458444684447844488444984450844518445284453844548445584456844578445884459844608446184462844638446484465844668446784468844698447084471844728447384474844758447684477844788447984480844818448284483844848448584486844878448884489844908449184492844938449484495844968449784498844998450084501845028450384504845058450684507845088450984510845118451284513845148451584516845178451884519845208452184522845238452484525845268452784528845298453084531845328453384534845358453684537845388453984540845418454284543845448454584546845478454884549845508455184552845538455484555845568455784558845598456084561845628456384564845658456684567845688456984570845718457284573845748457584576845778457884579845808458184582845838458484585845868458784588845898459084591845928459384594845958459684597845988459984600846018460284603846048460584606846078460884609846108461184612846138461484615846168461784618846198462084621846228462384624846258462684627846288462984630846318463284633846348463584636846378463884639846408464184642846438464484645846468464784648846498465084651846528465384654846558465684657846588465984660846618466284663846648466584666846678466884669846708467184672846738467484675846768467784678846798468084681846828468384684846858468684687846888468984690846918469284693846948469584696846978469884699847008470184702847038470484705847068470784708847098471084711847128471384714847158471684717847188471984720847218472284723847248472584726847278472884729847308473184732847338473484735847368473784738847398474084741847428474384744847458474684747847488474984750847518475284753847548475584756847578475884759847608476184762847638476484765847668476784768847698477084771847728477384774847758477684777847788477984780847818478284783847848478584786847878478884789847908479184792847938479484795847968479784798847998480084801848028480384804848058480684807848088480984810848118481284813848148481584816848178481884819848208482184822848238482484825848268482784828848298483084831848328483384834848358483684837848388483984840848418484284843848448484584846848478484884849848508485184852848538485484855848568485784858848598486084861848628486384864848658486684867848688486984870848718487284873848748487584876848778487884879848808488184882848838488484885848868488784888848898489084891848928489384894848958489684897848988489984900849018490284903849048490584906849078490884909849108491184912849138491484915849168491784918849198492084921849228492384924849258492684927849288492984930849318493284933849348493584936849378493884939849408494184942849438494484945849468494784948849498495084951849528495384954849558495684957849588495984960849618496284963849648496584966849678496884969849708497184972849738497484975849768497784978849798498084981849828498384984849858498684987849888498984990849918499284993849948499584996849978499884999850008500185002850038500485005850068500785008850098501085011850128501385014850158501685017850188501985020850218502285023850248502585026850278502885029850308503185032850338503485035850368503785038850398504085041850428504385044850458504685047850488504985050850518505285053850548505585056850578505885059850608506185062850638506485065850668506785068850698507085071850728507385074850758507685077850788507985080850818508285083850848508585086850878508885089850908509185092850938509485095850968509785098850998510085101851028510385104851058510685107851088510985110851118511285113851148511585116851178511885119851208512185122851238512485125851268512785128851298513085131851328513385134851358513685137851388513985140851418514285143851448514585146851478514885149851508515185152851538515485155851568515785158851598516085161851628516385164851658516685167851688516985170851718517285173851748517585176851778517885179851808518185182851838518485185851868518785188851898519085191851928519385194851958519685197851988519985200852018520285203852048520585206852078520885209852108521185212852138521485215852168521785218852198522085221852228522385224852258522685227852288522985230852318523285233852348523585236852378523885239852408524185242852438524485245852468524785248852498525085251852528525385254852558525685257852588525985260852618526285263852648526585266852678526885269852708527185272852738527485275852768527785278852798528085281852828528385284852858528685287852888528985290852918529285293852948529585296852978529885299853008530185302853038530485305853068530785308853098531085311853128531385314853158531685317853188531985320853218532285323853248532585326853278532885329853308533185332853338533485335853368533785338853398534085341853428534385344853458534685347853488534985350853518535285353853548535585356853578535885359853608536185362853638536485365853668536785368853698537085371853728537385374853758537685377853788537985380853818538285383853848538585386853878538885389853908539185392853938539485395853968539785398853998540085401854028540385404854058540685407854088540985410854118541285413854148541585416854178541885419854208542185422854238542485425854268542785428854298543085431854328543385434854358543685437854388543985440854418544285443854448544585446854478544885449854508545185452854538545485455854568545785458854598546085461854628546385464854658546685467854688546985470854718547285473854748547585476854778547885479854808548185482854838548485485854868548785488854898549085491854928549385494854958549685497854988549985500855018550285503855048550585506855078550885509855108551185512855138551485515855168551785518855198552085521855228552385524855258552685527855288552985530855318553285533855348553585536855378553885539855408554185542855438554485545855468554785548855498555085551855528555385554855558555685557855588555985560855618556285563855648556585566855678556885569855708557185572855738557485575855768557785578855798558085581855828558385584855858558685587855888558985590855918559285593855948559585596855978559885599856008560185602856038560485605856068560785608856098561085611856128561385614856158561685617856188561985620856218562285623856248562585626856278562885629856308563185632856338563485635856368563785638856398564085641856428564385644856458564685647856488564985650856518565285653856548565585656856578565885659856608566185662856638566485665856668566785668856698567085671856728567385674856758567685677856788567985680856818568285683856848568585686856878568885689856908569185692856938569485695856968569785698856998570085701857028570385704857058570685707857088570985710857118571285713857148571585716857178571885719857208572185722857238572485725857268572785728857298573085731857328573385734857358573685737857388573985740857418574285743857448574585746857478574885749857508575185752857538575485755857568575785758857598576085761857628576385764857658576685767857688576985770857718577285773857748577585776857778577885779857808578185782857838578485785857868578785788857898579085791857928579385794857958579685797857988579985800858018580285803858048580585806858078580885809858108581185812858138581485815858168581785818858198582085821858228582385824858258582685827858288582985830858318583285833858348583585836858378583885839858408584185842858438584485845858468584785848858498585085851858528585385854858558585685857858588585985860858618586285863858648586585866858678586885869858708587185872858738587485875858768587785878858798588085881858828588385884858858588685887858888588985890858918589285893858948589585896858978589885899859008590185902859038590485905859068590785908859098591085911859128591385914859158591685917859188591985920859218592285923859248592585926859278592885929859308593185932859338593485935859368593785938859398594085941859428594385944859458594685947859488594985950859518595285953859548595585956859578595885959859608596185962859638596485965859668596785968859698597085971859728597385974859758597685977859788597985980859818598285983859848598585986859878598885989859908599185992859938599485995859968599785998859998600086001860028600386004860058600686007860088600986010860118601286013860148601586016860178601886019860208602186022860238602486025860268602786028860298603086031860328603386034860358603686037860388603986040860418604286043860448604586046860478604886049860508605186052860538605486055860568605786058860598606086061860628606386064860658606686067860688606986070860718607286073860748607586076860778607886079860808608186082860838608486085860868608786088860898609086091860928609386094860958609686097860988609986100861018610286103861048610586106861078610886109861108611186112861138611486115861168611786118861198612086121861228612386124861258612686127861288612986130861318613286133861348613586136861378613886139861408614186142861438614486145861468614786148861498615086151861528615386154861558615686157861588615986160861618616286163861648616586166861678616886169861708617186172861738617486175861768617786178861798618086181861828618386184861858618686187861888618986190861918619286193861948619586196861978619886199862008620186202862038620486205862068620786208862098621086211862128621386214862158621686217862188621986220862218622286223862248622586226862278622886229862308623186232862338623486235862368623786238862398624086241862428624386244862458624686247862488624986250862518625286253862548625586256862578625886259862608626186262862638626486265862668626786268862698627086271862728627386274862758627686277862788627986280862818628286283862848628586286862878628886289862908629186292862938629486295862968629786298862998630086301863028630386304863058630686307863088630986310863118631286313863148631586316863178631886319863208632186322863238632486325863268632786328863298633086331863328633386334863358633686337863388633986340863418634286343863448634586346863478634886349863508635186352863538635486355863568635786358863598636086361863628636386364863658636686367863688636986370863718637286373863748637586376863778637886379863808638186382863838638486385863868638786388863898639086391863928639386394863958639686397863988639986400864018640286403864048640586406864078640886409864108641186412864138641486415864168641786418864198642086421864228642386424864258642686427864288642986430864318643286433864348643586436864378643886439864408644186442864438644486445864468644786448864498645086451864528645386454864558645686457864588645986460864618646286463864648646586466864678646886469864708647186472864738647486475864768647786478864798648086481864828648386484864858648686487864888648986490864918649286493864948649586496864978649886499865008650186502865038650486505865068650786508865098651086511865128651386514865158651686517865188651986520865218652286523865248652586526865278652886529865308653186532865338653486535865368653786538865398654086541865428654386544865458654686547865488654986550865518655286553865548655586556865578655886559865608656186562865638656486565865668656786568865698657086571865728657386574865758657686577865788657986580865818658286583865848658586586865878658886589865908659186592865938659486595865968659786598865998660086601866028660386604866058660686607866088660986610866118661286613866148661586616866178661886619866208662186622866238662486625866268662786628866298663086631866328663386634866358663686637866388663986640866418664286643866448664586646866478664886649866508665186652866538665486655866568665786658866598666086661866628666386664866658666686667866688666986670866718667286673866748667586676866778667886679866808668186682866838668486685866868668786688866898669086691866928669386694866958669686697866988669986700867018670286703867048670586706867078670886709867108671186712867138671486715867168671786718867198672086721867228672386724867258672686727867288672986730867318673286733867348673586736867378673886739867408674186742867438674486745867468674786748867498675086751867528675386754867558675686757867588675986760867618676286763867648676586766867678676886769867708677186772867738677486775867768677786778867798678086781867828678386784867858678686787867888678986790867918679286793867948679586796867978679886799868008680186802868038680486805868068680786808868098681086811868128681386814868158681686817868188681986820868218682286823868248682586826868278682886829868308683186832868338683486835868368683786838868398684086841868428684386844868458684686847868488684986850868518685286853868548685586856868578685886859868608686186862868638686486865868668686786868868698687086871868728687386874868758687686877868788687986880868818688286883868848688586886868878688886889868908689186892868938689486895868968689786898868998690086901869028690386904869058690686907869088690986910869118691286913869148691586916869178691886919869208692186922869238692486925869268692786928869298693086931869328693386934869358693686937869388693986940869418694286943869448694586946869478694886949869508695186952869538695486955869568695786958869598696086961869628696386964869658696686967869688696986970869718697286973869748697586976869778697886979869808698186982869838698486985869868698786988869898699086991869928699386994869958699686997869988699987000870018700287003870048700587006870078700887009870108701187012870138701487015870168701787018870198702087021870228702387024870258702687027870288702987030870318703287033870348703587036870378703887039870408704187042870438704487045870468704787048870498705087051870528705387054870558705687057870588705987060870618706287063870648706587066870678706887069870708707187072870738707487075870768707787078870798708087081870828708387084870858708687087870888708987090870918709287093870948709587096870978709887099871008710187102871038710487105871068710787108871098711087111871128711387114871158711687117871188711987120871218712287123871248712587126871278712887129871308713187132871338713487135871368713787138871398714087141871428714387144871458714687147871488714987150871518715287153871548715587156871578715887159871608716187162871638716487165871668716787168871698717087171871728717387174871758717687177871788717987180871818718287183871848718587186871878718887189871908719187192871938719487195871968719787198871998720087201872028720387204872058720687207872088720987210872118721287213872148721587216872178721887219872208722187222872238722487225872268722787228872298723087231872328723387234872358723687237872388723987240872418724287243872448724587246872478724887249872508725187252872538725487255872568725787258872598726087261872628726387264872658726687267872688726987270872718727287273872748727587276872778727887279872808728187282872838728487285872868728787288872898729087291872928729387294872958729687297872988729987300873018730287303873048730587306873078730887309873108731187312873138731487315873168731787318873198732087321873228732387324873258732687327873288732987330873318733287333873348733587336873378733887339873408734187342873438734487345873468734787348873498735087351873528735387354873558735687357873588735987360873618736287363873648736587366873678736887369873708737187372873738737487375873768737787378873798738087381873828738387384873858738687387873888738987390873918739287393873948739587396873978739887399874008740187402874038740487405874068740787408874098741087411874128741387414874158741687417874188741987420874218742287423874248742587426874278742887429874308743187432874338743487435874368743787438874398744087441874428744387444874458744687447874488744987450874518745287453874548745587456874578745887459874608746187462874638746487465874668746787468874698747087471874728747387474874758747687477874788747987480874818748287483874848748587486874878748887489874908749187492874938749487495874968749787498874998750087501875028750387504875058750687507875088750987510875118751287513875148751587516875178751887519875208752187522875238752487525875268752787528875298753087531875328753387534875358753687537875388753987540875418754287543875448754587546875478754887549875508755187552875538755487555875568755787558875598756087561875628756387564875658756687567875688756987570875718757287573875748757587576875778757887579875808758187582875838758487585875868758787588875898759087591875928759387594875958759687597875988759987600876018760287603876048760587606876078760887609876108761187612876138761487615876168761787618876198762087621876228762387624876258762687627876288762987630876318763287633876348763587636876378763887639876408764187642876438764487645876468764787648876498765087651876528765387654876558765687657876588765987660876618766287663876648766587666876678766887669876708767187672876738767487675876768767787678876798768087681876828768387684876858768687687876888768987690876918769287693876948769587696876978769887699877008770187702877038770487705877068770787708877098771087711877128771387714877158771687717877188771987720877218772287723877248772587726877278772887729877308773187732877338773487735877368773787738877398774087741877428774387744877458774687747877488774987750877518775287753877548775587756877578775887759877608776187762877638776487765877668776787768877698777087771877728777387774877758777687777877788777987780877818778287783877848778587786877878778887789877908779187792877938779487795877968779787798877998780087801878028780387804878058780687807878088780987810878118781287813878148781587816878178781887819878208782187822878238782487825878268782787828878298783087831878328783387834878358783687837878388783987840878418784287843878448784587846878478784887849878508785187852878538785487855878568785787858878598786087861878628786387864878658786687867878688786987870878718787287873878748787587876878778787887879878808788187882878838788487885878868788787888878898789087891878928789387894878958789687897878988789987900879018790287903879048790587906879078790887909879108791187912879138791487915879168791787918879198792087921879228792387924879258792687927879288792987930879318793287933879348793587936879378793887939879408794187942879438794487945879468794787948879498795087951879528795387954879558795687957879588795987960879618796287963879648796587966879678796887969879708797187972879738797487975879768797787978879798798087981879828798387984879858798687987879888798987990879918799287993879948799587996879978799887999880008800188002880038800488005880068800788008880098801088011880128801388014880158801688017880188801988020880218802288023880248802588026880278802888029880308803188032880338803488035880368803788038880398804088041880428804388044880458804688047880488804988050880518805288053880548805588056880578805888059880608806188062880638806488065880668806788068880698807088071880728807388074880758807688077880788807988080880818808288083880848808588086880878808888089880908809188092880938809488095880968809788098880998810088101881028810388104881058810688107881088810988110881118811288113881148811588116881178811888119881208812188122881238812488125881268812788128881298813088131881328813388134881358813688137881388813988140881418814288143881448814588146881478814888149881508815188152881538815488155881568815788158881598816088161881628816388164881658816688167881688816988170881718817288173881748817588176881778817888179881808818188182881838818488185881868818788188881898819088191881928819388194881958819688197881988819988200882018820288203882048820588206882078820888209882108821188212882138821488215882168821788218882198822088221882228822388224882258822688227882288822988230882318823288233882348823588236882378823888239882408824188242882438824488245882468824788248882498825088251882528825388254882558825688257882588825988260882618826288263882648826588266882678826888269882708827188272882738827488275882768827788278882798828088281882828828388284882858828688287882888828988290882918829288293882948829588296882978829888299883008830188302883038830488305883068830788308883098831088311883128831388314883158831688317883188831988320883218832288323883248832588326883278832888329883308833188332883338833488335883368833788338883398834088341883428834388344883458834688347883488834988350883518835288353883548835588356883578835888359883608836188362883638836488365883668836788368883698837088371883728837388374883758837688377883788837988380883818838288383883848838588386883878838888389883908839188392883938839488395883968839788398883998840088401884028840388404884058840688407884088840988410884118841288413884148841588416884178841888419884208842188422884238842488425884268842788428884298843088431884328843388434884358843688437884388843988440884418844288443884448844588446884478844888449884508845188452884538845488455884568845788458884598846088461884628846388464884658846688467884688846988470884718847288473884748847588476884778847888479884808848188482884838848488485884868848788488884898849088491884928849388494884958849688497884988849988500885018850288503885048850588506885078850888509885108851188512885138851488515885168851788518885198852088521885228852388524885258852688527885288852988530885318853288533885348853588536885378853888539885408854188542885438854488545885468854788548885498855088551885528855388554885558855688557885588855988560885618856288563885648856588566885678856888569885708857188572885738857488575885768857788578885798858088581885828858388584885858858688587885888858988590885918859288593885948859588596885978859888599886008860188602886038860488605886068860788608886098861088611886128861388614886158861688617886188861988620886218862288623886248862588626886278862888629886308863188632886338863488635886368863788638886398864088641886428864388644886458864688647886488864988650886518865288653886548865588656886578865888659886608866188662886638866488665886668866788668886698867088671886728867388674886758867688677886788867988680886818868288683886848868588686886878868888689886908869188692886938869488695886968869788698886998870088701887028870388704887058870688707887088870988710887118871288713887148871588716887178871888719887208872188722887238872488725887268872788728887298873088731887328873388734887358873688737887388873988740887418874288743887448874588746887478874888749887508875188752887538875488755887568875788758887598876088761887628876388764887658876688767887688876988770887718877288773887748877588776887778877888779887808878188782887838878488785887868878788788887898879088791887928879388794887958879688797887988879988800888018880288803888048880588806888078880888809888108881188812888138881488815888168881788818888198882088821888228882388824888258882688827888288882988830888318883288833888348883588836888378883888839888408884188842888438884488845888468884788848888498885088851888528885388854888558885688857888588885988860888618886288863888648886588866888678886888869888708887188872888738887488875888768887788878888798888088881888828888388884888858888688887888888888988890888918889288893888948889588896888978889888899889008890188902889038890488905889068890788908889098891088911889128891388914889158891688917889188891988920889218892288923889248892588926889278892888929889308893188932889338893488935889368893788938889398894088941889428894388944889458894688947889488894988950889518895288953889548895588956889578895888959889608896188962889638896488965889668896788968889698897088971889728897388974889758897688977889788897988980889818898288983889848898588986889878898888989889908899188992889938899488995889968899788998889998900089001890028900389004890058900689007890088900989010890118901289013890148901589016890178901889019890208902189022890238902489025890268902789028890298903089031890328903389034890358903689037890388903989040890418904289043890448904589046890478904889049890508905189052890538905489055890568905789058890598906089061890628906389064890658906689067890688906989070890718907289073890748907589076890778907889079890808908189082890838908489085890868908789088890898909089091890928909389094890958909689097890988909989100891018910289103891048910589106891078910889109891108911189112891138911489115891168911789118891198912089121891228912389124891258912689127891288912989130891318913289133891348913589136891378913889139891408914189142891438914489145891468914789148891498915089151891528915389154891558915689157891588915989160891618916289163891648916589166891678916889169891708917189172891738917489175891768917789178891798918089181891828918389184891858918689187891888918989190891918919289193891948919589196891978919889199892008920189202892038920489205892068920789208892098921089211892128921389214892158921689217892188921989220892218922289223892248922589226892278922889229892308923189232892338923489235892368923789238892398924089241892428924389244892458924689247892488924989250892518925289253892548925589256892578925889259892608926189262892638926489265892668926789268892698927089271892728927389274892758927689277892788927989280892818928289283892848928589286892878928889289892908929189292892938929489295892968929789298892998930089301893028930389304893058930689307893088930989310893118931289313893148931589316893178931889319893208932189322893238932489325893268932789328893298933089331893328933389334893358933689337893388933989340893418934289343893448934589346893478934889349893508935189352893538935489355893568935789358893598936089361893628936389364893658936689367893688936989370893718937289373893748937589376893778937889379893808938189382893838938489385893868938789388893898939089391893928939389394893958939689397893988939989400894018940289403894048940589406894078940889409894108941189412894138941489415894168941789418894198942089421894228942389424894258942689427894288942989430894318943289433894348943589436894378943889439894408944189442894438944489445894468944789448894498945089451894528945389454894558945689457894588945989460894618946289463894648946589466894678946889469894708947189472894738947489475894768947789478894798948089481894828948389484894858948689487894888948989490894918949289493894948949589496894978949889499895008950189502895038950489505895068950789508895098951089511895128951389514895158951689517895188951989520895218952289523895248952589526895278952889529895308953189532895338953489535895368953789538895398954089541895428954389544895458954689547895488954989550895518955289553895548955589556895578955889559895608956189562895638956489565895668956789568895698957089571895728957389574895758957689577895788957989580895818958289583895848958589586895878958889589895908959189592895938959489595895968959789598895998960089601896028960389604896058960689607896088960989610896118961289613896148961589616896178961889619896208962189622896238962489625896268962789628896298963089631896328963389634896358963689637896388963989640896418964289643896448964589646896478964889649896508965189652896538965489655896568965789658896598966089661896628966389664896658966689667896688966989670896718967289673896748967589676896778967889679896808968189682896838968489685896868968789688896898969089691896928969389694896958969689697896988969989700897018970289703897048970589706897078970889709897108971189712897138971489715897168971789718897198972089721897228972389724897258972689727897288972989730897318973289733897348973589736897378973889739897408974189742897438974489745897468974789748897498975089751897528975389754897558975689757897588975989760897618976289763897648976589766897678976889769897708977189772897738977489775897768977789778897798978089781897828978389784897858978689787897888978989790897918979289793897948979589796897978979889799898008980189802898038980489805898068980789808898098981089811898128981389814898158981689817898188981989820898218982289823898248982589826898278982889829898308983189832898338983489835898368983789838898398984089841898428984389844898458984689847898488984989850898518985289853898548985589856898578985889859898608986189862898638986489865898668986789868898698987089871898728987389874898758987689877898788987989880898818988289883898848988589886898878988889889898908989189892898938989489895898968989789898898998990089901899028990389904899058990689907899088990989910899118991289913899148991589916899178991889919899208992189922899238992489925899268992789928899298993089931899328993389934899358993689937899388993989940899418994289943899448994589946899478994889949899508995189952899538995489955899568995789958899598996089961899628996389964899658996689967899688996989970899718997289973899748997589976899778997889979899808998189982899838998489985899868998789988899898999089991899928999389994899958999689997899988999990000900019000290003900049000590006900079000890009900109001190012900139001490015900169001790018900199002090021900229002390024900259002690027900289002990030900319003290033900349003590036900379003890039900409004190042900439004490045900469004790048900499005090051900529005390054900559005690057900589005990060900619006290063900649006590066900679006890069900709007190072900739007490075900769007790078900799008090081900829008390084900859008690087900889008990090900919009290093900949009590096900979009890099901009010190102901039010490105901069010790108901099011090111901129011390114901159011690117901189011990120901219012290123901249012590126901279012890129901309013190132901339013490135901369013790138901399014090141901429014390144901459014690147901489014990150901519015290153901549015590156901579015890159901609016190162901639016490165901669016790168901699017090171901729017390174901759017690177901789017990180901819018290183901849018590186901879018890189901909019190192901939019490195901969019790198901999020090201902029020390204902059020690207902089020990210902119021290213902149021590216902179021890219902209022190222902239022490225902269022790228902299023090231902329023390234902359023690237902389023990240902419024290243902449024590246902479024890249902509025190252902539025490255902569025790258902599026090261902629026390264902659026690267902689026990270902719027290273902749027590276902779027890279902809028190282902839028490285902869028790288902899029090291902929029390294902959029690297902989029990300903019030290303903049030590306903079030890309903109031190312903139031490315903169031790318903199032090321903229032390324903259032690327903289032990330903319033290333903349033590336903379033890339903409034190342903439034490345903469034790348903499035090351903529035390354903559035690357903589035990360903619036290363903649036590366903679036890369903709037190372903739037490375903769037790378903799038090381903829038390384903859038690387903889038990390903919039290393903949039590396903979039890399904009040190402904039040490405904069040790408904099041090411904129041390414904159041690417904189041990420904219042290423904249042590426904279042890429904309043190432904339043490435904369043790438904399044090441904429044390444904459044690447904489044990450904519045290453904549045590456904579045890459904609046190462904639046490465904669046790468904699047090471904729047390474904759047690477904789047990480904819048290483904849048590486904879048890489904909049190492904939049490495904969049790498904999050090501905029050390504905059050690507905089050990510905119051290513905149051590516905179051890519905209052190522905239052490525905269052790528905299053090531905329053390534905359053690537905389053990540905419054290543905449054590546905479054890549905509055190552905539055490555905569055790558905599056090561905629056390564905659056690567905689056990570905719057290573905749057590576905779057890579905809058190582905839058490585905869058790588905899059090591905929059390594905959059690597905989059990600906019060290603906049060590606906079060890609906109061190612906139061490615906169061790618906199062090621906229062390624906259062690627906289062990630906319063290633906349063590636906379063890639906409064190642906439064490645906469064790648906499065090651906529065390654906559065690657906589065990660906619066290663906649066590666906679066890669906709067190672906739067490675906769067790678906799068090681906829068390684906859068690687906889068990690906919069290693906949069590696906979069890699907009070190702907039070490705907069070790708907099071090711907129071390714907159071690717907189071990720907219072290723907249072590726907279072890729907309073190732907339073490735907369073790738907399074090741907429074390744907459074690747907489074990750907519075290753907549075590756907579075890759907609076190762907639076490765907669076790768907699077090771907729077390774907759077690777907789077990780907819078290783907849078590786907879078890789907909079190792907939079490795907969079790798907999080090801908029080390804908059080690807908089080990810908119081290813908149081590816908179081890819908209082190822908239082490825908269082790828908299083090831908329083390834908359083690837908389083990840908419084290843908449084590846908479084890849908509085190852908539085490855908569085790858908599086090861908629086390864908659086690867908689086990870908719087290873908749087590876908779087890879908809088190882908839088490885908869088790888908899089090891908929089390894908959089690897908989089990900909019090290903909049090590906909079090890909909109091190912909139091490915909169091790918909199092090921909229092390924909259092690927909289092990930909319093290933909349093590936909379093890939909409094190942909439094490945909469094790948909499095090951909529095390954909559095690957909589095990960909619096290963909649096590966909679096890969909709097190972909739097490975909769097790978909799098090981909829098390984909859098690987909889098990990909919099290993909949099590996909979099890999910009100191002910039100491005910069100791008910099101091011910129101391014910159101691017910189101991020910219102291023910249102591026910279102891029910309103191032910339103491035910369103791038910399104091041910429104391044910459104691047910489104991050910519105291053910549105591056910579105891059910609106191062910639106491065910669106791068910699107091071910729107391074910759107691077910789107991080910819108291083910849108591086910879108891089910909109191092910939109491095910969109791098910999110091101911029110391104911059110691107911089110991110911119111291113911149111591116911179111891119911209112191122911239112491125911269112791128911299113091131911329113391134911359113691137911389113991140911419114291143911449114591146911479114891149911509115191152911539115491155911569115791158911599116091161911629116391164911659116691167911689116991170911719117291173911749117591176911779117891179911809118191182911839118491185911869118791188911899119091191911929119391194911959119691197911989119991200912019120291203912049120591206912079120891209912109121191212912139121491215912169121791218912199122091221912229122391224912259122691227912289122991230912319123291233912349123591236912379123891239912409124191242912439124491245912469124791248912499125091251912529125391254912559125691257912589125991260912619126291263912649126591266912679126891269912709127191272912739127491275912769127791278912799128091281912829128391284912859128691287912889128991290912919129291293912949129591296912979129891299913009130191302913039130491305913069130791308913099131091311913129131391314913159131691317913189131991320913219132291323913249132591326913279132891329913309133191332913339133491335913369133791338913399134091341913429134391344913459134691347913489134991350913519135291353913549135591356913579135891359913609136191362913639136491365913669136791368913699137091371913729137391374913759137691377913789137991380913819138291383913849138591386913879138891389913909139191392913939139491395913969139791398913999140091401914029140391404914059140691407914089140991410914119141291413914149141591416914179141891419914209142191422914239142491425914269142791428914299143091431914329143391434914359143691437914389143991440914419144291443914449144591446914479144891449914509145191452914539145491455914569145791458914599146091461914629146391464914659146691467914689146991470914719147291473914749147591476914779147891479914809148191482914839148491485914869148791488914899149091491914929149391494914959149691497914989149991500915019150291503915049150591506915079150891509915109151191512915139151491515915169151791518915199152091521915229152391524915259152691527915289152991530915319153291533915349153591536915379153891539915409154191542915439154491545915469154791548915499155091551915529155391554915559155691557915589155991560915619156291563915649156591566915679156891569915709157191572915739157491575915769157791578915799158091581915829158391584915859158691587915889158991590915919159291593915949159591596915979159891599916009160191602916039160491605916069160791608916099161091611916129161391614916159161691617916189161991620916219162291623916249162591626916279162891629916309163191632916339163491635916369163791638916399164091641916429164391644916459164691647916489164991650916519165291653916549165591656916579165891659916609166191662916639166491665916669166791668916699167091671916729167391674916759167691677916789167991680916819168291683916849168591686916879168891689916909169191692916939169491695916969169791698916999170091701917029170391704917059170691707917089170991710917119171291713917149171591716917179171891719917209172191722917239172491725917269172791728917299173091731917329173391734917359173691737917389173991740917419174291743917449174591746917479174891749917509175191752917539175491755917569175791758917599176091761917629176391764917659176691767917689176991770917719177291773917749177591776917779177891779917809178191782917839178491785917869178791788917899179091791917929179391794917959179691797917989179991800918019180291803918049180591806918079180891809918109181191812918139181491815918169181791818918199182091821918229182391824918259182691827918289182991830918319183291833918349183591836918379183891839918409184191842918439184491845918469184791848918499185091851918529185391854918559185691857918589185991860918619186291863918649186591866918679186891869918709187191872918739187491875918769187791878918799188091881918829188391884918859188691887918889188991890918919189291893918949189591896918979189891899919009190191902919039190491905919069190791908919099191091911919129191391914919159191691917919189191991920919219192291923919249192591926919279192891929919309193191932919339193491935919369193791938919399194091941919429194391944919459194691947919489194991950919519195291953919549195591956919579195891959919609196191962919639196491965919669196791968919699197091971919729197391974919759197691977919789197991980919819198291983919849198591986919879198891989919909199191992919939199491995919969199791998919999200092001920029200392004920059200692007920089200992010920119201292013920149201592016920179201892019920209202192022920239202492025920269202792028920299203092031920329203392034920359203692037920389203992040920419204292043920449204592046920479204892049920509205192052920539205492055920569205792058920599206092061920629206392064920659206692067920689206992070920719207292073920749207592076920779207892079920809208192082920839208492085920869208792088920899209092091920929209392094920959209692097920989209992100921019210292103921049210592106921079210892109921109211192112921139211492115921169211792118921199212092121921229212392124921259212692127921289212992130921319213292133921349213592136921379213892139921409214192142921439214492145921469214792148921499215092151921529215392154921559215692157921589215992160921619216292163921649216592166921679216892169921709217192172921739217492175921769217792178921799218092181921829218392184921859218692187921889218992190921919219292193921949219592196921979219892199922009220192202922039220492205922069220792208922099221092211922129221392214922159221692217922189221992220922219222292223922249222592226922279222892229922309223192232922339223492235922369223792238922399224092241922429224392244922459224692247922489224992250922519225292253922549225592256922579225892259922609226192262922639226492265922669226792268922699227092271922729227392274922759227692277922789227992280922819228292283922849228592286922879228892289922909229192292922939229492295922969229792298922999230092301923029230392304923059230692307923089230992310923119231292313923149231592316923179231892319923209232192322923239232492325923269232792328923299233092331923329233392334923359233692337923389233992340923419234292343923449234592346923479234892349923509235192352923539235492355923569235792358923599236092361923629236392364923659236692367923689236992370923719237292373923749237592376923779237892379923809238192382923839238492385923869238792388923899239092391923929239392394923959239692397923989239992400924019240292403924049240592406924079240892409924109241192412924139241492415924169241792418924199242092421924229242392424924259242692427924289242992430924319243292433924349243592436924379243892439924409244192442924439244492445924469244792448924499245092451924529245392454924559245692457924589245992460924619246292463924649246592466924679246892469924709247192472924739247492475924769247792478924799248092481924829248392484924859248692487924889248992490924919249292493924949249592496924979249892499925009250192502925039250492505925069250792508925099251092511925129251392514925159251692517925189251992520925219252292523925249252592526925279252892529925309253192532925339253492535925369253792538925399254092541925429254392544925459254692547925489254992550925519255292553925549255592556925579255892559925609256192562925639256492565925669256792568925699257092571925729257392574925759257692577925789257992580925819258292583925849258592586925879258892589925909259192592925939259492595925969259792598925999260092601926029260392604926059260692607926089260992610926119261292613926149261592616926179261892619926209262192622926239262492625926269262792628926299263092631926329263392634926359263692637926389263992640926419264292643926449264592646926479264892649926509265192652926539265492655926569265792658926599266092661926629266392664926659266692667926689266992670926719267292673926749267592676926779267892679926809268192682926839268492685926869268792688926899269092691926929269392694926959269692697926989269992700927019270292703927049270592706927079270892709927109271192712927139271492715927169271792718927199272092721927229272392724927259272692727927289272992730927319273292733927349273592736927379273892739927409274192742927439274492745927469274792748927499275092751927529275392754927559275692757927589275992760927619276292763927649276592766927679276892769927709277192772927739277492775927769277792778927799278092781927829278392784927859278692787927889278992790927919279292793927949279592796927979279892799928009280192802928039280492805928069280792808928099281092811928129281392814928159281692817928189281992820928219282292823928249282592826928279282892829928309283192832928339283492835928369283792838928399284092841928429284392844928459284692847928489284992850928519285292853928549285592856928579285892859928609286192862928639286492865928669286792868928699287092871928729287392874928759287692877928789287992880928819288292883928849288592886928879288892889928909289192892928939289492895928969289792898928999290092901929029290392904929059290692907929089290992910929119291292913929149291592916929179291892919929209292192922929239292492925929269292792928929299293092931929329293392934929359293692937929389293992940929419294292943929449294592946929479294892949929509295192952929539295492955929569295792958929599296092961929629296392964929659296692967929689296992970929719297292973929749297592976929779297892979929809298192982929839298492985929869298792988929899299092991929929299392994929959299692997929989299993000930019300293003930049300593006930079300893009930109301193012930139301493015930169301793018930199302093021930229302393024930259302693027930289302993030930319303293033930349303593036930379303893039930409304193042930439304493045930469304793048930499305093051930529305393054930559305693057930589305993060930619306293063930649306593066930679306893069930709307193072930739307493075930769307793078930799308093081930829308393084930859308693087930889308993090930919309293093930949309593096930979309893099931009310193102931039310493105931069310793108931099311093111931129311393114931159311693117931189311993120931219312293123931249312593126931279312893129931309313193132931339313493135931369313793138931399314093141931429314393144931459314693147931489314993150931519315293153931549315593156931579315893159931609316193162931639316493165931669316793168931699317093171931729317393174931759317693177931789317993180931819318293183931849318593186931879318893189931909319193192931939319493195931969319793198931999320093201932029320393204932059320693207932089320993210932119321293213932149321593216932179321893219932209322193222932239322493225932269322793228932299323093231932329323393234932359323693237932389323993240932419324293243932449324593246932479324893249932509325193252932539325493255932569325793258932599326093261932629326393264932659326693267932689326993270932719327293273932749327593276932779327893279932809328193282932839328493285932869328793288932899329093291932929329393294932959329693297932989329993300933019330293303933049330593306933079330893309933109331193312933139331493315933169331793318933199332093321933229332393324933259332693327933289332993330933319333293333933349333593336933379333893339933409334193342933439334493345933469334793348933499335093351933529335393354933559335693357933589335993360933619336293363933649336593366933679336893369933709337193372933739337493375933769337793378933799338093381933829338393384933859338693387933889338993390933919339293393933949339593396933979339893399934009340193402934039340493405934069340793408934099341093411934129341393414934159341693417934189341993420934219342293423934249342593426934279342893429934309343193432934339343493435934369343793438934399344093441934429344393444934459344693447934489344993450934519345293453934549345593456934579345893459934609346193462934639346493465934669346793468934699347093471934729347393474934759347693477934789347993480934819348293483934849348593486934879348893489934909349193492934939349493495934969349793498934999350093501935029350393504935059350693507935089350993510935119351293513935149351593516935179351893519935209352193522935239352493525935269352793528935299353093531935329353393534935359353693537935389353993540935419354293543935449354593546935479354893549935509355193552935539355493555935569355793558935599356093561935629356393564935659356693567935689356993570935719357293573935749357593576935779357893579935809358193582935839358493585935869358793588935899359093591935929359393594935959359693597935989359993600936019360293603936049360593606936079360893609936109361193612936139361493615936169361793618936199362093621936229362393624936259362693627936289362993630936319363293633936349363593636936379363893639936409364193642936439364493645936469364793648936499365093651936529365393654936559365693657936589365993660936619366293663936649366593666936679366893669936709367193672936739367493675936769367793678936799368093681936829368393684936859368693687936889368993690936919369293693936949369593696936979369893699937009370193702937039370493705937069370793708937099371093711937129371393714937159371693717937189371993720937219372293723937249372593726937279372893729937309373193732937339373493735937369373793738937399374093741937429374393744937459374693747937489374993750937519375293753937549375593756937579375893759937609376193762937639376493765937669376793768937699377093771937729377393774937759377693777937789377993780937819378293783937849378593786937879378893789937909379193792937939379493795937969379793798937999380093801938029380393804938059380693807938089380993810938119381293813938149381593816938179381893819938209382193822938239382493825938269382793828938299383093831938329383393834938359383693837938389383993840938419384293843938449384593846938479384893849938509385193852938539385493855938569385793858938599386093861938629386393864938659386693867938689386993870938719387293873938749387593876938779387893879938809388193882938839388493885938869388793888938899389093891938929389393894938959389693897938989389993900939019390293903939049390593906939079390893909939109391193912939139391493915939169391793918939199392093921939229392393924939259392693927939289392993930939319393293933939349393593936939379393893939939409394193942939439394493945939469394793948939499395093951939529395393954939559395693957939589395993960939619396293963939649396593966939679396893969939709397193972939739397493975939769397793978939799398093981939829398393984939859398693987939889398993990939919399293993939949399593996939979399893999940009400194002940039400494005940069400794008940099401094011940129401394014940159401694017940189401994020940219402294023940249402594026940279402894029940309403194032940339403494035940369403794038940399404094041940429404394044940459404694047940489404994050940519405294053940549405594056940579405894059940609406194062940639406494065940669406794068940699407094071940729407394074940759407694077940789407994080940819408294083940849408594086940879408894089940909409194092940939409494095940969409794098940999410094101941029410394104941059410694107941089410994110941119411294113941149411594116941179411894119941209412194122941239412494125941269412794128941299413094131941329413394134941359413694137941389413994140941419414294143941449414594146941479414894149941509415194152941539415494155941569415794158941599416094161941629416394164941659416694167941689416994170941719417294173941749417594176941779417894179941809418194182941839418494185941869418794188941899419094191941929419394194941959419694197941989419994200942019420294203942049420594206942079420894209942109421194212942139421494215942169421794218942199422094221942229422394224942259422694227942289422994230942319423294233942349423594236942379423894239942409424194242942439424494245942469424794248942499425094251942529425394254942559425694257942589425994260942619426294263942649426594266942679426894269942709427194272942739427494275942769427794278942799428094281942829428394284942859428694287942889428994290942919429294293942949429594296942979429894299943009430194302943039430494305943069430794308943099431094311943129431394314943159431694317943189431994320943219432294323943249432594326943279432894329943309433194332943339433494335943369433794338943399434094341943429434394344943459434694347943489434994350943519435294353943549435594356943579435894359943609436194362943639436494365943669436794368943699437094371943729437394374943759437694377943789437994380943819438294383943849438594386943879438894389943909439194392943939439494395943969439794398943999440094401944029440394404944059440694407944089440994410944119441294413944149441594416944179441894419944209442194422944239442494425944269442794428944299443094431944329443394434944359443694437944389443994440944419444294443944449444594446944479444894449944509445194452944539445494455944569445794458944599446094461944629446394464944659446694467944689446994470944719447294473944749447594476944779447894479944809448194482944839448494485944869448794488944899449094491944929449394494944959449694497944989449994500945019450294503945049450594506945079450894509945109451194512945139451494515945169451794518945199452094521945229452394524945259452694527945289452994530945319453294533945349453594536945379453894539945409454194542945439454494545945469454794548945499455094551945529455394554945559455694557945589455994560945619456294563945649456594566945679456894569945709457194572945739457494575945769457794578945799458094581945829458394584945859458694587945889458994590945919459294593945949459594596945979459894599946009460194602946039460494605946069460794608946099461094611946129461394614946159461694617946189461994620946219462294623946249462594626946279462894629946309463194632946339463494635946369463794638946399464094641946429464394644946459464694647946489464994650946519465294653946549465594656946579465894659946609466194662946639466494665946669466794668946699467094671946729467394674946759467694677946789467994680946819468294683946849468594686946879468894689946909469194692946939469494695946969469794698946999470094701947029470394704947059470694707947089470994710947119471294713947149471594716947179471894719947209472194722947239472494725947269472794728947299473094731947329473394734947359473694737947389473994740947419474294743947449474594746947479474894749947509475194752947539475494755947569475794758947599476094761947629476394764947659476694767947689476994770947719477294773947749477594776947779477894779947809478194782947839478494785947869478794788947899479094791947929479394794947959479694797947989479994800948019480294803948049480594806948079480894809948109481194812948139481494815948169481794818948199482094821948229482394824948259482694827948289482994830948319483294833948349483594836948379483894839948409484194842948439484494845948469484794848948499485094851948529485394854948559485694857948589485994860948619486294863948649486594866948679486894869948709487194872948739487494875948769487794878948799488094881948829488394884948859488694887948889488994890948919489294893948949489594896948979489894899949009490194902949039490494905949069490794908949099491094911949129491394914949159491694917949189491994920949219492294923949249492594926949279492894929949309493194932949339493494935949369493794938949399494094941949429494394944949459494694947949489494994950949519495294953949549495594956949579495894959949609496194962949639496494965949669496794968949699497094971949729497394974949759497694977949789497994980949819498294983949849498594986949879498894989949909499194992949939499494995949969499794998949999500095001950029500395004950059500695007950089500995010950119501295013950149501595016950179501895019950209502195022950239502495025950269502795028950299503095031950329503395034950359503695037950389503995040950419504295043950449504595046950479504895049950509505195052950539505495055950569505795058950599506095061950629506395064950659506695067950689506995070950719507295073950749507595076950779507895079950809508195082950839508495085950869508795088950899509095091950929509395094950959509695097950989509995100951019510295103951049510595106951079510895109951109511195112951139511495115951169511795118951199512095121951229512395124951259512695127951289512995130951319513295133951349513595136951379513895139951409514195142951439514495145951469514795148951499515095151951529515395154951559515695157951589515995160951619516295163951649516595166951679516895169951709517195172951739517495175951769517795178951799518095181951829518395184951859518695187951889518995190951919519295193951949519595196951979519895199952009520195202952039520495205952069520795208952099521095211952129521395214952159521695217952189521995220952219522295223952249522595226952279522895229952309523195232952339523495235952369523795238952399524095241952429524395244952459524695247952489524995250952519525295253952549525595256952579525895259952609526195262952639526495265952669526795268952699527095271952729527395274952759527695277952789527995280952819528295283952849528595286952879528895289952909529195292952939529495295952969529795298952999530095301953029530395304953059530695307953089530995310953119531295313953149531595316953179531895319953209532195322953239532495325953269532795328953299533095331953329533395334953359533695337953389533995340953419534295343953449534595346953479534895349953509535195352953539535495355953569535795358953599536095361953629536395364953659536695367953689536995370953719537295373953749537595376953779537895379953809538195382953839538495385953869538795388953899539095391953929539395394953959539695397953989539995400954019540295403954049540595406954079540895409954109541195412954139541495415954169541795418954199542095421954229542395424954259542695427954289542995430954319543295433954349543595436954379543895439954409544195442954439544495445954469544795448954499545095451954529545395454954559545695457954589545995460954619546295463954649546595466954679546895469954709547195472954739547495475954769547795478954799548095481954829548395484954859548695487954889548995490954919549295493954949549595496954979549895499955009550195502955039550495505955069550795508955099551095511955129551395514955159551695517955189551995520955219552295523955249552595526955279552895529955309553195532955339553495535955369553795538955399554095541955429554395544955459554695547955489554995550955519555295553955549555595556955579555895559955609556195562955639556495565955669556795568955699557095571955729557395574955759557695577955789557995580955819558295583955849558595586955879558895589955909559195592955939559495595955969559795598955999560095601956029560395604956059560695607956089560995610956119561295613956149561595616956179561895619956209562195622956239562495625956269562795628956299563095631956329563395634956359563695637956389563995640956419564295643956449564595646956479564895649956509565195652956539565495655956569565795658956599566095661956629566395664956659566695667956689566995670956719567295673956749567595676956779567895679956809568195682956839568495685956869568795688956899569095691956929569395694956959569695697956989569995700957019570295703957049570595706957079570895709957109571195712957139571495715957169571795718957199572095721957229572395724957259572695727957289572995730957319573295733957349573595736957379573895739957409574195742957439574495745957469574795748957499575095751957529575395754957559575695757957589575995760957619576295763957649576595766957679576895769957709577195772957739577495775957769577795778957799578095781957829578395784957859578695787957889578995790957919579295793957949579595796957979579895799958009580195802958039580495805958069580795808958099581095811958129581395814958159581695817958189581995820958219582295823958249582595826958279582895829958309583195832958339583495835958369583795838958399584095841958429584395844958459584695847958489584995850958519585295853958549585595856958579585895859958609586195862958639586495865958669586795868958699587095871958729587395874958759587695877958789587995880958819588295883958849588595886958879588895889958909589195892958939589495895958969589795898958999590095901959029590395904959059590695907959089590995910959119591295913959149591595916959179591895919959209592195922959239592495925959269592795928959299593095931959329593395934959359593695937959389593995940959419594295943959449594595946959479594895949959509595195952959539595495955959569595795958959599596095961959629596395964959659596695967959689596995970959719597295973959749597595976959779597895979959809598195982959839598495985959869598795988959899599095991959929599395994959959599695997959989599996000960019600296003960049600596006960079600896009960109601196012960139601496015960169601796018960199602096021960229602396024960259602696027960289602996030960319603296033960349603596036960379603896039960409604196042960439604496045960469604796048960499605096051960529605396054960559605696057960589605996060960619606296063960649606596066960679606896069960709607196072960739607496075960769607796078960799608096081960829608396084960859608696087960889608996090960919609296093960949609596096960979609896099961009610196102961039610496105961069610796108961099611096111961129611396114961159611696117961189611996120961219612296123961249612596126961279612896129961309613196132961339613496135961369613796138961399614096141961429614396144961459614696147961489614996150961519615296153961549615596156961579615896159961609616196162961639616496165961669616796168961699617096171961729617396174961759617696177961789617996180961819618296183961849618596186961879618896189961909619196192961939619496195961969619796198961999620096201962029620396204962059620696207962089620996210962119621296213962149621596216962179621896219962209622196222962239622496225962269622796228962299623096231962329623396234962359623696237962389623996240962419624296243962449624596246962479624896249962509625196252962539625496255962569625796258962599626096261962629626396264962659626696267962689626996270962719627296273962749627596276962779627896279962809628196282962839628496285962869628796288962899629096291962929629396294962959629696297962989629996300963019630296303963049630596306963079630896309963109631196312963139631496315963169631796318963199632096321963229632396324963259632696327963289632996330963319633296333963349633596336963379633896339963409634196342963439634496345963469634796348963499635096351963529635396354963559635696357963589635996360963619636296363963649636596366963679636896369963709637196372963739637496375963769637796378963799638096381963829638396384963859638696387963889638996390963919639296393963949639596396963979639896399964009640196402964039640496405964069640796408964099641096411964129641396414964159641696417964189641996420964219642296423964249642596426964279642896429964309643196432964339643496435964369643796438964399644096441964429644396444964459644696447964489644996450964519645296453964549645596456964579645896459964609646196462964639646496465964669646796468964699647096471964729647396474964759647696477964789647996480964819648296483964849648596486964879648896489964909649196492964939649496495964969649796498964999650096501965029650396504965059650696507965089650996510965119651296513965149651596516965179651896519965209652196522965239652496525965269652796528965299653096531965329653396534965359653696537965389653996540965419654296543965449654596546965479654896549965509655196552965539655496555965569655796558965599656096561965629656396564965659656696567965689656996570965719657296573965749657596576965779657896579965809658196582965839658496585965869658796588965899659096591965929659396594965959659696597965989659996600966019660296603966049660596606966079660896609966109661196612966139661496615966169661796618966199662096621966229662396624966259662696627966289662996630966319663296633966349663596636966379663896639966409664196642966439664496645966469664796648966499665096651966529665396654966559665696657966589665996660966619666296663966649666596666966679666896669966709667196672966739667496675966769667796678966799668096681966829668396684966859668696687966889668996690966919669296693966949669596696966979669896699967009670196702967039670496705967069670796708967099671096711967129671396714967159671696717967189671996720967219672296723967249672596726967279672896729967309673196732967339673496735967369673796738967399674096741967429674396744967459674696747967489674996750967519675296753967549675596756967579675896759967609676196762967639676496765967669676796768967699677096771967729677396774967759677696777967789677996780967819678296783967849678596786967879678896789967909679196792967939679496795967969679796798967999680096801968029680396804968059680696807968089680996810968119681296813968149681596816968179681896819968209682196822968239682496825968269682796828968299683096831968329683396834968359683696837968389683996840968419684296843968449684596846968479684896849968509685196852968539685496855968569685796858968599686096861968629686396864968659686696867968689686996870968719687296873968749687596876968779687896879968809688196882968839688496885968869688796888968899689096891968929689396894968959689696897968989689996900969019690296903969049690596906969079690896909969109691196912969139691496915969169691796918969199692096921969229692396924969259692696927969289692996930969319693296933969349693596936969379693896939969409694196942969439694496945969469694796948969499695096951969529695396954969559695696957969589695996960969619696296963969649696596966969679696896969969709697196972969739697496975969769697796978969799698096981969829698396984969859698696987969889698996990969919699296993969949699596996969979699896999970009700197002970039700497005970069700797008970099701097011970129701397014970159701697017970189701997020970219702297023970249702597026970279702897029970309703197032970339703497035970369703797038970399704097041970429704397044970459704697047970489704997050970519705297053970549705597056970579705897059970609706197062970639706497065970669706797068970699707097071970729707397074970759707697077970789707997080970819708297083970849708597086970879708897089970909709197092970939709497095970969709797098970999710097101971029710397104971059710697107971089710997110971119711297113971149711597116971179711897119971209712197122971239712497125971269712797128971299713097131971329713397134971359713697137971389713997140971419714297143971449714597146971479714897149971509715197152971539715497155971569715797158971599716097161971629716397164971659716697167971689716997170971719717297173971749717597176971779717897179971809718197182971839718497185971869718797188971899719097191971929719397194971959719697197971989719997200972019720297203972049720597206972079720897209972109721197212972139721497215972169721797218972199722097221972229722397224972259722697227972289722997230972319723297233972349723597236972379723897239972409724197242972439724497245972469724797248972499725097251972529725397254972559725697257972589725997260972619726297263972649726597266972679726897269972709727197272972739727497275972769727797278972799728097281972829728397284972859728697287972889728997290972919729297293972949729597296972979729897299973009730197302973039730497305973069730797308973099731097311973129731397314973159731697317973189731997320973219732297323973249732597326973279732897329973309733197332973339733497335973369733797338973399734097341973429734397344973459734697347973489734997350973519735297353973549735597356973579735897359973609736197362973639736497365973669736797368973699737097371973729737397374973759737697377973789737997380973819738297383973849738597386973879738897389973909739197392973939739497395973969739797398973999740097401974029740397404974059740697407974089740997410974119741297413974149741597416974179741897419974209742197422974239742497425974269742797428974299743097431974329743397434974359743697437974389743997440974419744297443974449744597446974479744897449974509745197452974539745497455974569745797458974599746097461974629746397464974659746697467974689746997470974719747297473974749747597476974779747897479974809748197482974839748497485974869748797488974899749097491974929749397494974959749697497974989749997500975019750297503975049750597506975079750897509975109751197512975139751497515975169751797518975199752097521975229752397524975259752697527975289752997530975319753297533975349753597536975379753897539975409754197542975439754497545975469754797548975499755097551975529755397554975559755697557975589755997560975619756297563975649756597566975679756897569975709757197572975739757497575975769757797578975799758097581975829758397584975859758697587975889758997590975919759297593975949759597596975979759897599976009760197602976039760497605976069760797608976099761097611976129761397614976159761697617976189761997620976219762297623976249762597626976279762897629976309763197632976339763497635976369763797638976399764097641976429764397644976459764697647976489764997650976519765297653976549765597656976579765897659976609766197662976639766497665976669766797668976699767097671976729767397674976759767697677976789767997680976819768297683976849768597686976879768897689976909769197692976939769497695976969769797698976999770097701977029770397704977059770697707977089770997710977119771297713977149771597716977179771897719977209772197722977239772497725977269772797728977299773097731977329773397734977359773697737977389773997740977419774297743977449774597746977479774897749977509775197752977539775497755977569775797758977599776097761977629776397764977659776697767977689776997770977719777297773977749777597776977779777897779977809778197782977839778497785977869778797788977899779097791977929779397794977959779697797977989779997800978019780297803978049780597806978079780897809978109781197812978139781497815978169781797818978199782097821978229782397824978259782697827978289782997830978319783297833978349783597836978379783897839978409784197842978439784497845978469784797848978499785097851978529785397854978559785697857978589785997860978619786297863978649786597866978679786897869978709787197872978739787497875978769787797878978799788097881978829788397884978859788697887978889788997890978919789297893978949789597896978979789897899979009790197902979039790497905979069790797908979099791097911979129791397914979159791697917979189791997920979219792297923979249792597926979279792897929979309793197932979339793497935979369793797938979399794097941979429794397944979459794697947979489794997950979519795297953979549795597956979579795897959979609796197962979639796497965979669796797968979699797097971979729797397974979759797697977979789797997980979819798297983979849798597986979879798897989979909799197992979939799497995979969799797998979999800098001980029800398004980059800698007980089800998010980119801298013980149801598016980179801898019980209802198022980239802498025980269802798028980299803098031980329803398034980359803698037980389803998040980419804298043980449804598046980479804898049980509805198052980539805498055980569805798058980599806098061980629806398064980659806698067980689806998070980719807298073980749807598076980779807898079980809808198082980839808498085980869808798088980899809098091980929809398094980959809698097980989809998100981019810298103981049810598106981079810898109981109811198112981139811498115981169811798118981199812098121981229812398124981259812698127981289812998130981319813298133981349813598136981379813898139981409814198142981439814498145981469814798148981499815098151981529815398154981559815698157981589815998160981619816298163981649816598166981679816898169981709817198172981739817498175981769817798178981799818098181981829818398184981859818698187981889818998190981919819298193981949819598196981979819898199982009820198202982039820498205982069820798208982099821098211982129821398214982159821698217982189821998220982219822298223982249822598226982279822898229982309823198232982339823498235982369823798238982399824098241982429824398244982459824698247982489824998250982519825298253982549825598256982579825898259982609826198262982639826498265982669826798268982699827098271982729827398274982759827698277982789827998280982819828298283982849828598286982879828898289982909829198292982939829498295982969829798298982999830098301983029830398304983059830698307983089830998310983119831298313983149831598316983179831898319983209832198322983239832498325983269832798328983299833098331983329833398334983359833698337983389833998340983419834298343983449834598346983479834898349983509835198352983539835498355983569835798358983599836098361983629836398364983659836698367983689836998370983719837298373983749837598376983779837898379983809838198382983839838498385983869838798388983899839098391983929839398394983959839698397983989839998400984019840298403984049840598406984079840898409984109841198412984139841498415984169841798418984199842098421984229842398424984259842698427984289842998430984319843298433984349843598436984379843898439984409844198442984439844498445984469844798448984499845098451984529845398454984559845698457984589845998460984619846298463984649846598466984679846898469984709847198472984739847498475984769847798478984799848098481984829848398484984859848698487984889848998490984919849298493984949849598496984979849898499985009850198502985039850498505985069850798508985099851098511985129851398514985159851698517985189851998520985219852298523985249852598526985279852898529985309853198532985339853498535985369853798538985399854098541985429854398544985459854698547985489854998550985519855298553985549855598556985579855898559985609856198562985639856498565985669856798568985699857098571985729857398574985759857698577985789857998580985819858298583985849858598586985879858898589985909859198592985939859498595985969859798598985999860098601986029860398604986059860698607986089860998610986119861298613986149861598616986179861898619986209862198622986239862498625986269862798628986299863098631986329863398634986359863698637986389863998640986419864298643986449864598646986479864898649986509865198652986539865498655986569865798658986599866098661986629866398664986659866698667986689866998670986719867298673986749867598676986779867898679986809868198682986839868498685986869868798688986899869098691986929869398694986959869698697986989869998700987019870298703987049870598706987079870898709987109871198712987139871498715987169871798718987199872098721987229872398724987259872698727987289872998730987319873298733987349873598736987379873898739987409874198742987439874498745987469874798748987499875098751987529875398754987559875698757987589875998760987619876298763987649876598766987679876898769987709877198772987739877498775987769877798778987799878098781987829878398784987859878698787987889878998790987919879298793987949879598796987979879898799988009880198802988039880498805988069880798808988099881098811988129881398814988159881698817988189881998820988219882298823988249882598826988279882898829988309883198832988339883498835988369883798838988399884098841988429884398844988459884698847988489884998850988519885298853988549885598856988579885898859988609886198862988639886498865988669886798868988699887098871988729887398874988759887698877988789887998880988819888298883988849888598886988879888898889988909889198892988939889498895988969889798898988999890098901989029890398904989059890698907989089890998910989119891298913989149891598916989179891898919989209892198922989239892498925989269892798928989299893098931989329893398934989359893698937989389893998940989419894298943989449894598946989479894898949989509895198952989539895498955989569895798958989599896098961989629896398964989659896698967989689896998970989719897298973989749897598976989779897898979989809898198982989839898498985989869898798988989899899098991989929899398994989959899698997989989899999000990019900299003990049900599006990079900899009990109901199012990139901499015990169901799018990199902099021990229902399024990259902699027990289902999030990319903299033990349903599036990379903899039990409904199042990439904499045990469904799048990499905099051990529905399054990559905699057990589905999060990619906299063990649906599066990679906899069990709907199072990739907499075990769907799078990799908099081990829908399084990859908699087990889908999090990919909299093990949909599096990979909899099991009910199102991039910499105991069910799108991099911099111991129911399114991159911699117991189911999120991219912299123991249912599126991279912899129991309913199132991339913499135991369913799138991399914099141991429914399144991459914699147991489914999150991519915299153991549915599156991579915899159991609916199162991639916499165991669916799168991699917099171991729917399174991759917699177991789917999180991819918299183991849918599186991879918899189991909919199192991939919499195991969919799198991999920099201992029920399204992059920699207992089920999210992119921299213992149921599216992179921899219992209922199222992239922499225992269922799228992299923099231992329923399234992359923699237992389923999240992419924299243992449924599246992479924899249992509925199252992539925499255992569925799258992599926099261992629926399264992659926699267992689926999270992719927299273992749927599276992779927899279992809928199282992839928499285992869928799288992899929099291992929929399294992959929699297992989929999300993019930299303993049930599306993079930899309993109931199312993139931499315993169931799318993199932099321993229932399324993259932699327993289932999330993319933299333993349933599336993379933899339993409934199342993439934499345993469934799348993499935099351993529935399354993559935699357993589935999360993619936299363993649936599366993679936899369993709937199372993739937499375993769937799378993799938099381993829938399384993859938699387993889938999390993919939299393993949939599396993979939899399994009940199402994039940499405994069940799408994099941099411994129941399414994159941699417994189941999420994219942299423994249942599426994279942899429994309943199432994339943499435994369943799438994399944099441994429944399444994459944699447994489944999450994519945299453994549945599456994579945899459994609946199462994639946499465994669946799468994699947099471994729947399474994759947699477994789947999480994819948299483994849948599486994879948899489994909949199492994939949499495994969949799498994999950099501995029950399504995059950699507995089950999510995119951299513995149951599516995179951899519995209952199522995239952499525995269952799528995299953099531995329953399534995359953699537995389953999540995419954299543995449954599546995479954899549995509955199552995539955499555995569955799558995599956099561995629956399564995659956699567995689956999570995719957299573995749957599576995779957899579995809958199582995839958499585995869958799588995899959099591995929959399594995959959699597995989959999600996019960299603996049960599606996079960899609996109961199612996139961499615996169961799618996199962099621996229962399624996259962699627996289962999630996319963299633996349963599636996379963899639996409964199642996439964499645996469964799648996499965099651996529965399654996559965699657996589965999660996619966299663996649966599666996679966899669996709967199672996739967499675996769967799678996799968099681996829968399684996859968699687996889968999690996919969299693996949969599696996979969899699997009970199702997039970499705997069970799708997099971099711997129971399714997159971699717997189971999720997219972299723997249972599726997279972899729997309973199732997339973499735997369973799738997399974099741997429974399744997459974699747997489974999750997519975299753997549975599756997579975899759997609976199762997639976499765997669976799768997699977099771997729977399774997759977699777997789977999780997819978299783997849978599786997879978899789997909979199792997939979499795997969979799798997999980099801998029980399804998059980699807998089980999810998119981299813998149981599816998179981899819998209982199822998239982499825998269982799828998299983099831998329983399834998359983699837998389983999840998419984299843998449984599846998479984899849998509985199852998539985499855998569985799858998599986099861998629986399864998659986699867998689986999870998719987299873998749987599876998779987899879998809988199882998839988499885998869988799888998899989099891998929989399894998959989699897998989989999900999019990299903999049990599906999079990899909999109991199912999139991499915999169991799918999199992099921999229992399924999259992699927999289992999930999319993299933999349993599936999379993899939999409994199942999439994499945999469994799948999499995099951999529995399954999559995699957999589995999960999619996299963999649996599966999679996899969999709997199972999739997499975999769997799978999799998099981999829998399984999859998699987999889998999990999919999299993999949999599996999979999899999100000100001100002100003100004100005100006100007100008100009100010100011100012100013100014100015100016100017100018100019100020100021100022100023100024100025100026100027100028100029100030100031100032100033100034100035100036100037100038100039100040100041100042100043100044100045100046100047100048100049100050100051100052100053100054100055100056100057100058100059100060100061100062100063100064100065100066100067100068100069100070100071100072100073100074100075100076100077100078100079100080100081100082100083100084100085100086100087100088100089100090100091100092100093100094100095100096100097100098100099100100100101100102100103100104100105100106100107100108100109100110100111100112100113100114100115100116100117100118100119100120100121100122100123100124100125100126100127100128100129100130100131100132100133100134100135100136100137100138100139100140100141100142100143100144100145100146100147100148100149100150100151100152100153100154100155100156100157100158100159100160100161100162100163100164100165100166100167100168100169100170100171100172100173100174100175100176100177100178100179100180100181100182100183100184100185100186100187100188100189100190100191100192100193100194100195100196100197100198100199100200100201100202100203100204100205100206100207100208100209100210100211100212100213100214100215100216100217100218100219100220100221100222100223100224100225100226100227100228100229100230100231100232100233100234100235100236100237100238100239100240100241100242100243100244100245100246100247100248100249100250100251100252100253100254100255100256100257100258100259100260100261100262100263100264100265100266100267100268100269100270100271100272100273100274100275100276100277100278100279100280100281100282100283100284100285100286100287100288100289100290100291100292100293100294100295100296100297100298100299100300100301100302100303100304100305100306100307100308100309100310100311100312100313100314100315100316100317100318100319100320100321100322100323100324100325100326100327100328100329100330100331100332100333100334100335100336100337100338100339100340100341100342100343100344100345100346100347100348100349100350100351100352100353100354100355100356100357100358100359100360100361100362100363100364100365100366100367100368100369100370100371100372100373100374100375100376100377100378100379100380100381100382100383100384100385100386100387100388100389100390100391100392100393100394100395100396100397100398100399100400100401100402100403100404100405100406100407100408100409100410100411100412100413100414100415100416100417100418100419100420100421100422100423100424100425100426100427100428100429100430100431100432100433100434100435100436100437100438100439100440100441100442100443100444100445100446100447100448100449100450100451100452100453100454100455100456100457100458100459100460100461100462100463100464100465100466100467100468100469100470100471100472100473100474100475100476100477100478100479100480100481100482100483100484100485100486100487100488100489100490100491100492100493100494100495100496100497100498100499100500100501100502100503100504100505100506100507100508100509100510100511100512100513100514100515100516100517100518100519100520100521100522100523100524100525100526100527100528100529100530100531100532100533100534100535100536100537100538100539100540100541100542100543100544100545100546100547100548100549100550100551100552100553100554100555100556100557100558100559100560100561100562100563100564100565100566100567100568100569100570100571100572100573100574100575100576100577100578100579100580100581100582100583100584100585100586100587100588100589100590100591100592100593100594100595100596100597100598100599100600100601100602100603100604100605100606100607100608100609100610100611100612100613100614100615100616100617100618100619100620100621100622100623100624100625100626100627100628100629100630100631100632100633100634100635100636100637100638100639100640100641100642100643100644100645100646100647100648100649100650100651100652100653100654100655100656100657100658100659100660100661100662100663100664100665100666100667100668100669100670100671100672100673100674100675100676100677100678100679100680100681100682100683100684100685100686100687100688100689100690100691100692100693100694100695100696100697100698100699100700100701100702100703100704100705100706100707100708100709100710100711100712100713100714100715100716100717100718100719100720100721100722100723100724100725100726100727100728100729100730100731100732100733100734100735100736100737100738100739100740100741100742100743100744100745100746100747100748100749100750100751100752100753100754100755100756100757100758100759100760100761100762100763100764100765100766100767100768100769100770100771100772100773100774100775100776100777100778100779100780100781100782100783100784100785100786100787100788100789100790100791100792100793100794100795100796100797100798100799100800100801100802100803100804100805100806100807100808100809100810100811100812100813100814100815100816100817100818100819100820100821100822100823100824100825100826100827100828100829100830100831100832100833100834100835100836100837100838100839100840100841100842100843100844100845100846100847100848100849100850100851100852100853100854100855100856100857100858100859100860100861100862100863100864100865100866100867100868100869100870100871100872100873100874100875100876100877100878100879100880100881100882100883100884100885100886100887100888100889100890100891100892100893100894100895100896100897100898100899100900100901100902100903100904100905100906100907100908100909100910100911100912100913100914100915100916100917100918100919100920100921100922100923100924100925100926100927100928100929100930100931100932100933100934100935100936100937100938100939100940100941100942100943100944100945100946100947100948100949100950100951100952100953100954100955100956100957100958100959100960100961100962100963100964100965100966100967100968100969100970100971100972100973100974100975100976100977100978100979100980100981100982100983100984100985100986100987100988100989100990100991100992100993100994100995100996100997100998100999101000101001101002101003101004101005101006101007101008101009101010101011101012101013101014101015101016101017101018101019101020101021101022101023101024101025101026101027101028101029101030101031101032101033101034101035101036101037101038101039101040101041101042101043101044101045101046101047101048101049101050101051101052101053101054101055101056101057101058101059101060101061101062101063101064101065101066101067101068101069101070101071101072101073101074101075101076101077101078101079101080101081101082101083101084101085101086101087101088101089101090101091101092101093101094101095101096101097101098101099101100101101101102101103101104101105101106101107101108101109101110101111101112101113101114101115101116101117101118101119101120101121101122101123101124101125101126101127101128101129101130101131101132101133101134101135101136101137101138101139101140101141101142101143101144101145101146101147101148101149101150101151101152101153101154101155101156101157101158101159101160101161101162101163101164101165101166101167101168101169101170101171101172101173101174101175101176101177101178101179101180101181101182101183101184101185101186101187101188101189101190101191101192101193101194101195101196101197101198101199101200101201101202101203101204101205101206101207101208101209101210101211101212101213101214101215101216101217101218101219101220101221101222101223101224101225101226101227101228101229101230101231101232101233101234101235101236101237101238101239101240101241101242101243101244101245101246101247101248101249101250101251101252101253101254101255101256101257101258101259101260101261101262101263101264101265101266101267101268101269101270101271101272101273101274101275101276101277101278101279101280101281101282101283101284101285101286101287101288101289101290101291101292101293101294101295101296101297101298101299101300101301101302101303101304101305101306101307101308101309101310101311101312101313101314101315101316101317101318101319101320101321101322101323101324101325101326101327101328101329101330101331101332101333101334101335101336101337101338101339101340101341101342101343101344101345101346101347101348101349101350101351101352101353101354101355101356101357101358101359101360101361101362101363101364101365101366101367101368101369101370101371101372101373101374101375101376101377101378101379101380101381101382101383101384101385101386101387101388101389101390101391101392101393101394101395101396101397101398101399101400101401101402101403101404101405101406101407101408101409101410101411101412101413101414101415101416101417101418101419101420101421101422101423101424101425101426101427101428101429101430101431101432101433101434101435101436101437101438101439101440101441101442101443101444101445101446101447101448101449101450101451101452101453101454101455101456101457101458101459101460101461101462101463101464101465101466101467101468101469101470101471101472101473101474101475101476101477101478101479101480101481101482101483101484101485101486101487101488101489101490101491101492101493101494101495101496101497101498101499101500101501101502101503101504101505101506101507101508101509101510101511101512101513101514101515101516101517101518101519101520101521101522101523101524101525101526101527101528101529101530101531101532101533101534101535101536101537101538101539101540101541101542101543101544101545101546101547101548101549101550101551101552101553101554101555101556101557101558101559101560101561101562101563101564101565101566101567101568101569101570101571101572101573101574101575101576101577101578101579101580101581101582101583101584101585101586101587101588101589101590101591101592101593101594101595101596101597101598101599101600101601101602101603101604101605101606101607101608101609101610101611101612101613101614101615101616101617101618101619101620101621101622101623101624101625101626101627101628101629101630101631101632101633101634101635101636101637101638101639101640101641101642101643101644101645101646101647101648101649101650101651101652101653101654101655101656101657101658101659101660101661101662101663101664101665101666101667101668101669101670101671101672101673101674101675101676101677101678101679101680101681101682101683101684101685101686101687101688101689101690101691101692101693101694101695101696101697101698101699101700101701101702101703101704101705101706101707101708101709101710101711101712101713101714101715101716101717101718101719101720101721101722101723101724101725101726101727101728101729101730101731101732101733101734101735101736101737101738101739101740101741101742101743101744101745101746101747101748101749101750101751101752101753101754101755101756101757101758101759101760101761101762101763101764101765101766101767101768101769101770101771101772101773101774101775101776101777101778101779101780101781101782101783101784101785101786101787101788101789101790101791101792101793101794101795101796101797101798101799101800101801101802101803101804101805101806101807101808101809101810101811101812101813101814101815101816101817101818101819101820101821101822101823101824101825101826101827101828101829101830101831101832101833101834101835101836101837101838101839101840101841101842101843101844101845101846101847101848101849101850101851101852101853101854101855101856101857101858101859101860101861101862101863101864101865101866101867101868101869101870101871101872101873101874101875101876101877101878101879101880101881101882101883101884101885101886101887101888101889101890101891101892101893101894101895101896101897101898101899101900101901101902101903101904101905101906101907101908101909101910101911101912101913101914101915101916101917101918101919101920101921101922101923101924101925101926101927101928101929101930101931101932101933101934101935101936101937101938101939101940101941101942101943101944101945101946101947101948101949101950101951101952101953101954101955101956101957101958101959101960101961101962101963101964101965101966101967101968101969101970101971101972101973101974101975101976101977101978101979101980101981101982101983101984101985101986101987101988101989101990101991101992101993101994101995101996101997101998101999102000102001102002102003102004102005102006102007102008102009102010102011102012102013102014102015102016102017102018102019102020102021102022102023102024102025102026102027102028102029102030102031102032102033102034102035102036102037102038102039102040102041102042102043102044102045102046102047102048102049102050102051102052102053102054102055102056102057102058102059102060102061102062102063102064102065102066102067102068102069102070102071102072102073102074102075102076102077102078102079102080102081102082102083102084102085102086102087102088102089102090102091102092102093102094102095102096102097102098102099102100102101102102102103102104102105102106102107102108102109102110102111102112102113102114102115102116102117102118102119102120102121102122102123102124102125102126102127102128102129102130102131102132102133102134102135102136102137102138102139102140102141102142102143102144102145102146102147102148102149102150102151102152102153102154102155102156102157102158102159102160102161102162102163102164102165102166102167102168102169102170102171102172102173102174102175102176102177102178102179102180102181102182102183102184102185102186102187102188102189102190102191102192102193102194102195102196102197102198102199102200102201102202102203102204102205102206102207102208102209102210102211102212102213102214102215102216102217102218102219102220102221102222102223102224102225102226102227102228102229102230102231102232102233102234102235102236102237102238102239102240102241102242102243102244102245102246102247102248102249102250102251102252102253102254102255102256102257102258102259102260102261102262102263102264102265102266102267102268102269102270102271102272102273102274102275102276102277102278102279102280102281102282102283102284102285102286102287102288102289102290102291102292102293102294102295102296102297102298102299102300102301102302102303102304102305102306102307102308102309102310102311102312102313102314102315102316102317102318102319102320102321102322102323102324102325102326102327102328102329102330102331102332102333102334102335102336102337102338102339102340102341102342102343102344102345102346102347102348102349102350102351102352102353102354102355102356102357102358102359102360102361102362102363102364102365102366102367102368102369102370102371102372102373102374102375102376102377102378102379102380102381102382102383102384102385102386102387102388102389102390102391102392102393102394102395102396102397102398102399102400102401102402102403102404102405102406102407102408102409102410102411102412102413102414102415102416102417102418102419102420102421102422102423102424102425102426102427102428102429102430102431102432102433102434102435102436102437102438102439102440102441102442102443102444102445102446102447102448102449102450102451102452102453102454102455102456102457102458102459102460102461102462102463102464102465102466102467102468102469102470102471102472102473102474102475102476102477102478102479102480102481102482102483102484102485102486102487102488102489102490102491102492102493102494102495102496102497102498102499102500102501102502102503102504102505102506102507102508102509102510102511102512102513102514102515102516102517102518102519102520102521102522102523102524102525102526102527102528102529102530102531102532102533102534102535102536102537102538102539102540102541102542102543102544102545102546102547102548102549102550102551102552102553102554102555102556102557102558102559102560102561102562102563102564102565102566102567102568102569102570102571102572102573102574102575102576102577102578102579102580102581102582102583102584102585102586102587102588102589102590102591102592102593102594102595102596102597102598102599102600102601102602102603102604102605102606102607102608102609102610102611102612102613102614102615102616102617102618102619102620102621102622102623102624102625102626102627102628102629102630102631102632102633102634102635102636102637102638102639102640102641102642102643102644102645102646102647102648102649102650102651102652102653102654102655102656102657102658102659102660102661102662102663102664102665102666102667102668102669102670102671102672102673102674102675102676102677102678102679102680102681102682102683102684102685102686102687102688102689102690102691102692102693102694102695102696102697102698102699102700102701102702102703102704102705102706102707102708102709102710102711102712102713102714102715102716102717102718102719102720102721102722102723102724102725102726102727102728102729102730102731102732102733102734102735102736102737102738102739102740102741102742102743102744102745102746102747102748102749102750102751102752102753102754102755102756102757102758102759102760102761102762102763102764102765102766102767102768102769102770102771102772102773102774102775102776102777102778102779102780102781102782102783102784102785102786102787102788102789102790102791102792102793102794102795102796102797102798102799102800102801102802102803102804102805102806102807102808102809102810102811102812102813102814102815102816102817102818102819102820102821102822102823102824102825102826102827102828102829102830102831102832102833102834102835102836102837102838102839102840102841102842102843102844102845102846102847102848102849102850102851102852102853102854102855102856102857102858102859102860102861102862102863102864102865102866102867102868102869102870102871102872102873102874102875102876102877102878102879102880102881102882102883102884102885102886102887102888102889102890102891102892102893102894102895102896102897102898102899102900102901102902102903102904102905102906102907102908102909102910102911102912102913102914102915102916102917102918102919102920102921102922102923102924102925102926102927102928102929102930102931102932102933102934102935102936102937102938102939102940102941102942102943102944102945102946102947102948102949102950102951102952102953102954102955102956102957102958102959102960102961102962102963102964102965102966102967102968102969102970102971102972102973102974102975102976102977102978102979102980102981102982102983102984102985102986102987102988102989102990102991102992102993102994102995102996102997102998102999103000103001103002103003103004103005103006103007103008103009103010103011103012103013103014103015103016103017103018103019103020103021103022103023103024103025103026103027103028103029103030103031103032103033103034103035103036103037103038103039103040103041103042103043103044103045103046103047103048103049103050103051103052103053103054103055103056103057103058103059103060103061103062103063103064103065103066103067103068103069103070103071103072103073103074103075103076103077103078103079103080103081103082103083103084103085103086103087103088103089103090103091103092103093103094103095103096103097103098103099103100103101103102103103103104103105103106103107103108103109103110103111103112103113103114103115103116103117103118103119103120103121103122103123103124103125103126103127103128103129103130103131103132103133103134103135103136103137103138103139103140103141103142103143103144103145103146103147103148103149103150103151103152103153103154103155103156103157103158103159103160103161103162103163103164103165103166103167103168103169103170103171103172103173103174103175103176103177103178103179103180103181103182103183103184103185103186103187103188103189103190103191103192103193103194103195103196103197103198103199103200103201103202103203103204103205103206103207103208103209103210103211103212103213103214103215103216103217103218103219103220103221103222103223103224103225103226103227103228103229103230103231103232103233103234103235103236103237103238103239103240103241103242103243103244103245103246103247103248103249103250103251103252103253103254103255103256103257103258103259103260103261103262103263103264103265103266103267103268103269103270103271103272103273103274103275103276103277103278103279103280103281103282103283103284103285103286103287103288103289103290103291103292103293103294103295103296103297103298103299103300103301103302103303103304103305103306103307103308103309103310103311103312103313103314103315103316103317103318103319103320103321103322103323103324103325103326103327103328103329103330103331103332103333103334103335103336103337103338103339103340103341103342103343103344103345103346103347103348103349103350103351103352103353103354103355103356103357103358103359103360103361103362103363103364103365103366103367103368103369103370103371103372103373103374103375103376103377103378103379103380103381103382103383103384103385103386103387103388103389103390103391103392103393103394103395103396103397103398103399103400103401103402103403103404103405103406103407103408103409103410103411103412103413103414103415103416103417103418103419103420103421103422103423103424103425103426103427103428103429103430103431103432103433103434103435103436103437103438103439103440103441103442103443103444103445103446103447103448103449103450103451103452103453103454103455103456103457103458103459103460103461103462103463103464103465103466103467103468103469103470103471103472103473103474103475103476103477103478103479103480103481103482103483103484103485103486103487103488103489103490103491103492103493103494103495103496103497103498103499103500103501103502103503103504103505103506103507103508103509103510103511103512103513103514103515103516103517103518103519103520103521103522103523103524103525103526103527103528103529103530103531103532103533103534103535103536103537103538103539103540103541103542103543103544103545103546103547103548103549103550103551103552103553103554103555103556103557103558103559103560103561103562103563103564103565103566103567103568103569103570103571103572103573103574103575103576103577103578103579103580103581103582103583103584103585103586103587103588103589103590103591103592103593103594103595103596103597103598103599103600103601103602103603103604103605103606103607103608103609103610103611103612103613103614103615103616103617103618103619103620103621103622103623103624103625103626103627103628103629103630103631103632103633103634103635103636103637103638103639103640103641103642103643103644103645103646103647103648103649103650103651103652103653103654103655103656103657103658103659103660103661103662103663103664103665103666103667103668103669103670103671103672103673103674103675103676103677103678103679103680103681103682103683103684103685103686103687103688103689103690103691103692103693103694103695103696103697103698103699103700103701103702103703103704103705103706103707103708103709103710103711103712103713103714103715103716103717103718103719103720103721103722103723103724103725103726103727103728103729103730103731103732103733103734103735103736103737103738103739103740103741103742103743103744103745103746103747103748103749103750103751103752103753103754103755103756103757103758103759103760103761103762103763103764103765103766103767103768103769103770103771103772103773103774103775103776103777103778103779103780103781103782103783103784103785103786103787103788103789103790103791103792103793103794103795103796103797103798103799103800103801103802103803103804103805103806103807103808103809103810103811103812103813103814103815103816103817103818103819103820103821103822103823103824103825103826103827103828103829103830103831103832103833103834103835103836103837103838103839103840103841103842103843103844103845103846103847103848103849103850103851103852103853103854103855103856103857103858103859103860103861103862103863103864103865103866103867103868103869103870103871103872103873103874103875103876103877103878103879103880103881103882103883103884103885103886103887103888103889103890103891103892103893103894103895103896103897103898103899103900103901103902103903103904103905103906103907103908103909103910103911103912103913103914103915103916103917103918103919103920103921103922103923103924103925103926103927103928103929103930103931103932103933103934103935103936103937103938103939103940103941103942103943103944103945103946103947103948103949103950103951103952103953103954103955103956103957103958103959103960103961103962103963103964103965103966103967103968103969103970103971103972103973103974103975103976103977103978103979103980103981103982103983103984103985103986103987103988103989103990103991103992103993103994103995103996103997103998103999104000104001104002104003104004104005104006104007104008104009104010104011104012104013104014104015104016104017104018104019104020104021104022104023104024104025104026104027104028104029104030104031104032104033104034104035104036104037104038104039104040104041104042104043104044104045104046104047104048104049104050104051104052104053104054104055104056104057104058104059104060104061104062104063104064104065104066104067104068104069104070104071104072104073104074104075104076104077104078104079104080104081104082104083104084104085104086104087104088104089104090104091104092104093104094104095104096104097104098104099104100104101104102104103104104104105104106104107104108104109104110104111104112104113104114104115104116104117104118104119104120104121104122104123104124104125104126104127104128104129104130104131104132104133104134104135104136104137104138104139104140104141104142104143104144104145104146104147104148104149104150104151104152104153104154104155104156104157104158104159104160104161104162104163104164104165104166104167104168104169104170104171104172104173104174104175104176104177104178104179104180104181104182104183104184104185104186104187104188104189104190104191104192104193104194104195104196104197104198104199104200104201104202104203104204104205104206104207104208104209104210104211104212104213104214104215104216104217104218104219104220104221104222104223104224104225104226104227104228104229104230104231104232104233104234104235104236104237104238104239104240104241104242104243104244104245104246104247104248104249104250104251104252104253104254104255104256104257104258104259104260104261104262104263104264104265104266104267104268104269104270104271104272104273104274104275104276104277104278104279104280104281104282104283104284104285104286104287104288104289104290104291104292104293104294104295104296104297104298104299104300104301104302104303104304104305104306104307104308104309104310104311104312104313104314104315104316104317104318104319104320104321104322104323104324104325104326104327104328104329104330104331104332104333104334104335104336104337104338104339104340104341104342104343104344104345104346104347104348104349104350104351104352104353104354104355104356104357104358104359104360104361104362104363104364104365104366104367104368104369104370104371104372104373104374104375104376104377104378104379104380104381104382104383104384104385104386104387104388104389104390104391104392104393104394104395104396104397104398104399104400104401104402104403104404104405104406104407104408104409104410104411104412104413104414104415104416104417104418104419104420104421104422104423104424104425104426104427104428104429104430104431104432104433104434104435104436104437104438104439104440104441104442104443104444104445104446104447104448104449104450104451104452104453104454104455104456104457104458104459104460104461104462104463104464104465104466104467104468104469104470104471104472104473104474104475104476104477104478104479104480104481104482104483104484104485104486104487104488104489104490104491104492104493104494104495104496104497104498104499104500104501104502104503104504104505104506104507104508104509104510104511104512104513104514104515104516104517104518104519104520104521104522104523104524104525104526104527104528104529104530104531104532104533104534104535104536104537104538104539104540104541104542104543104544104545104546104547104548104549104550104551104552104553104554104555104556104557104558104559104560104561104562104563104564104565104566104567104568104569104570104571104572104573104574104575104576104577104578104579104580104581104582104583104584104585104586104587104588104589104590104591104592104593104594104595104596104597104598104599104600104601104602104603104604104605104606104607104608104609104610104611104612104613104614104615104616104617104618104619104620104621104622104623104624104625104626104627104628104629104630104631104632104633104634104635104636104637104638104639104640104641104642104643104644104645104646104647104648104649104650104651104652104653104654104655104656104657104658104659104660104661104662104663104664104665104666104667104668104669104670104671104672104673104674104675104676104677104678104679104680104681104682104683104684104685104686104687104688104689104690104691104692104693104694104695104696104697104698104699104700104701104702104703104704104705104706104707104708104709104710104711104712104713104714104715104716104717104718104719104720104721104722104723104724104725104726104727104728104729104730104731104732104733104734104735104736104737104738104739104740104741104742104743104744104745104746104747104748104749104750104751104752104753104754104755104756104757104758104759104760104761104762104763104764104765104766104767104768104769104770104771104772104773104774104775104776104777104778104779104780104781104782104783104784104785104786104787104788104789104790104791104792104793104794104795104796104797104798104799104800104801104802104803104804104805104806104807104808104809104810104811104812104813104814104815104816104817104818104819104820104821104822104823104824104825104826104827104828104829104830104831104832104833104834104835104836104837104838104839104840104841104842104843104844104845104846104847104848104849104850104851104852104853104854104855104856104857104858104859104860104861104862104863104864104865104866104867104868104869104870104871104872104873104874104875104876104877104878104879104880104881104882104883104884104885104886104887104888104889104890104891104892104893104894104895104896104897104898104899104900104901104902104903104904104905104906104907104908104909104910104911104912104913104914104915104916104917104918104919104920104921104922104923104924104925104926104927104928104929104930104931104932104933104934104935104936104937104938104939104940104941104942104943104944104945104946104947104948104949104950104951104952104953104954104955104956104957104958104959104960104961104962104963104964104965104966104967104968104969104970104971104972104973104974104975104976104977104978104979104980104981104982104983104984104985104986104987104988104989104990104991104992104993104994104995104996104997104998104999105000105001105002105003105004105005105006105007105008105009105010105011105012105013105014105015105016105017105018105019105020105021105022105023105024105025105026105027105028105029105030105031105032105033105034105035105036105037105038105039105040105041105042105043105044105045105046105047105048105049105050105051105052105053105054105055105056105057105058105059105060105061105062105063105064105065105066105067105068105069105070105071105072105073105074105075105076105077105078105079105080105081105082105083105084105085105086105087105088105089105090105091105092105093105094105095105096105097105098105099105100105101105102105103105104105105105106105107105108105109105110105111105112105113105114105115105116105117105118105119105120105121105122105123105124105125105126105127105128105129105130105131105132105133105134105135105136105137105138105139105140105141105142105143105144105145105146105147105148105149105150105151105152105153105154105155105156105157105158105159105160105161105162105163105164105165105166105167105168105169105170105171105172105173105174105175105176105177105178105179105180105181105182105183105184105185105186105187105188105189105190105191105192105193105194105195105196105197105198105199105200105201105202105203105204105205105206105207105208105209105210105211105212105213105214105215105216105217105218105219105220105221105222105223105224105225105226105227105228105229105230105231105232105233105234105235105236105237105238105239105240105241105242105243105244105245105246105247105248105249105250105251105252105253105254105255105256105257105258105259105260105261105262105263105264105265105266105267105268105269105270105271105272105273105274105275105276105277105278105279105280105281105282105283105284105285105286105287105288105289105290105291105292105293105294105295105296105297105298105299105300105301105302105303105304105305105306105307105308105309105310105311105312105313105314105315105316105317105318105319105320105321105322105323105324105325105326105327105328105329105330105331105332105333105334105335105336105337105338105339105340105341105342105343105344105345105346105347105348105349105350105351105352105353105354105355105356105357105358105359105360105361105362105363105364105365105366105367105368105369105370105371105372105373105374105375105376105377105378105379105380105381105382105383105384105385105386105387105388105389105390105391105392105393105394105395105396105397105398105399105400105401105402105403105404105405105406105407105408105409105410105411105412105413105414105415105416105417105418105419105420105421105422105423105424105425105426105427105428105429105430105431105432105433105434105435105436105437105438105439105440105441105442105443105444105445105446105447105448105449105450105451105452105453105454105455105456105457105458105459105460105461105462105463105464105465105466105467105468105469105470105471105472105473105474105475105476105477105478105479105480105481105482105483105484105485105486105487105488105489105490105491105492105493105494105495105496105497105498105499105500105501105502105503105504105505105506105507105508105509105510105511105512105513105514105515105516105517105518105519105520105521105522105523105524105525105526105527105528105529105530105531105532105533105534105535105536105537105538105539105540105541105542105543105544105545105546105547105548105549105550105551105552105553105554105555105556105557105558105559105560105561105562105563105564105565105566105567105568105569105570105571105572105573105574105575105576105577105578105579105580105581105582105583105584105585105586105587105588105589105590105591105592105593105594105595105596105597105598105599105600105601105602105603105604105605105606105607105608105609105610105611105612105613105614105615105616105617105618105619105620105621105622105623105624105625105626105627105628105629105630105631105632105633105634105635105636105637105638105639105640105641105642105643105644105645105646105647105648105649105650105651105652105653105654105655105656105657105658105659105660105661105662105663105664105665105666105667105668105669105670105671105672105673105674105675105676105677105678105679105680105681105682105683105684105685105686105687105688105689105690105691105692105693105694105695105696105697105698105699105700105701105702105703105704105705105706105707105708105709105710105711105712105713105714105715105716105717105718105719105720105721105722105723105724105725105726105727105728105729105730105731105732105733105734105735105736105737105738105739105740105741105742105743105744105745105746105747105748105749105750105751105752105753105754105755105756105757105758105759105760105761105762105763105764105765105766105767105768105769105770105771105772105773105774105775105776105777105778105779105780105781105782105783105784105785105786105787105788105789105790105791105792105793105794105795105796105797105798105799105800105801105802105803105804105805105806105807105808105809105810105811105812105813105814105815105816105817105818105819105820105821105822105823105824105825105826105827105828105829105830105831105832105833105834105835105836105837105838105839105840105841105842105843105844105845105846105847105848105849105850105851105852105853105854105855105856105857105858105859105860105861105862105863105864105865105866105867105868105869105870105871105872105873105874105875105876105877105878105879105880105881105882105883105884105885105886105887105888105889105890105891105892105893105894105895105896105897105898105899105900105901105902105903105904105905105906105907105908105909105910105911105912105913105914105915105916105917105918105919105920105921105922105923105924105925105926105927105928105929105930105931105932105933105934105935105936105937105938105939105940105941105942105943105944105945105946105947105948105949105950105951105952105953105954105955105956105957105958105959105960105961105962105963105964105965105966105967105968105969105970105971105972105973105974105975105976105977105978105979105980105981105982105983105984105985105986105987105988105989105990105991105992105993105994105995105996105997105998105999106000106001106002106003106004106005106006106007106008106009106010106011106012106013106014106015106016106017106018106019106020106021106022106023106024106025106026106027106028106029106030106031106032106033106034106035106036106037106038106039106040106041106042106043106044106045106046106047106048106049106050106051106052106053106054106055106056106057106058106059106060106061106062106063106064106065106066106067106068106069106070106071106072106073106074106075106076106077106078106079106080106081106082106083106084106085106086106087106088106089106090106091106092106093106094106095106096106097106098106099106100106101106102106103106104106105106106106107106108106109106110106111106112106113106114106115106116106117106118106119106120106121106122106123106124106125106126106127106128106129106130106131106132106133106134106135106136106137106138106139106140106141106142106143106144106145106146106147106148106149106150106151106152106153106154106155106156106157106158106159106160106161106162106163106164106165106166106167106168106169106170106171106172106173106174106175106176106177106178106179106180106181106182106183106184106185106186106187106188106189106190106191106192106193106194106195106196106197106198106199106200106201106202106203106204106205106206106207106208106209106210106211106212106213106214106215106216106217106218106219106220106221106222106223106224106225106226106227106228106229106230106231106232106233106234106235106236106237106238106239106240106241106242106243106244106245106246106247106248106249106250106251106252106253106254106255106256106257106258106259106260106261106262106263106264106265106266106267106268106269106270106271106272106273106274106275106276106277106278106279106280106281106282106283106284106285106286106287106288106289106290106291106292106293106294106295106296106297106298106299106300106301106302106303106304106305106306106307106308106309106310106311106312106313106314106315106316106317106318106319106320106321106322106323106324106325106326106327106328106329106330106331106332106333106334106335106336106337106338106339106340106341106342106343106344106345106346106347106348106349106350106351106352106353106354106355106356106357106358106359106360106361106362106363106364106365106366106367106368106369106370106371106372106373106374106375106376106377106378106379106380106381106382106383106384106385106386106387106388106389106390106391106392106393106394106395106396106397106398106399106400106401106402106403106404106405106406106407106408106409106410106411106412106413106414106415106416106417106418106419106420106421106422106423106424106425106426106427106428106429106430106431106432106433106434106435106436106437106438106439106440106441106442106443106444106445106446106447106448106449106450106451106452106453106454106455106456106457106458106459106460106461106462106463106464106465106466106467106468106469106470106471106472106473106474106475106476106477106478106479106480106481106482106483106484106485106486106487106488106489106490106491106492106493106494106495106496106497106498106499106500106501106502106503106504106505106506106507106508106509106510106511106512106513106514106515106516106517106518106519106520106521106522106523106524106525106526106527106528106529106530106531106532106533106534106535106536106537106538106539106540106541106542106543106544106545106546106547106548106549106550106551106552106553106554106555106556106557106558106559106560106561106562106563106564106565106566106567106568106569106570106571106572106573106574106575106576106577106578106579106580106581106582106583106584106585106586106587106588106589106590106591106592106593106594106595106596106597106598106599106600106601106602106603106604106605106606106607106608106609106610106611106612106613106614106615106616106617106618106619106620106621106622106623106624106625106626106627106628106629106630106631106632106633106634106635106636106637106638106639106640106641106642106643106644106645106646106647106648106649106650106651106652106653106654106655106656106657106658106659106660106661106662106663106664106665106666106667106668106669106670106671106672106673106674106675106676106677106678106679106680106681106682106683106684106685106686106687106688106689106690106691106692106693106694106695106696106697106698106699106700106701106702106703106704106705106706106707106708106709106710106711106712106713106714106715106716106717106718106719106720106721106722106723106724106725106726106727106728106729106730106731106732106733106734106735106736106737106738106739106740106741106742106743106744106745106746106747106748106749106750106751106752106753106754106755106756106757106758106759106760106761106762106763106764106765106766106767106768106769106770106771106772106773106774106775106776106777106778106779106780106781106782106783106784106785106786106787106788106789106790106791106792106793106794106795106796106797106798106799106800106801106802106803106804106805106806106807106808106809106810106811106812106813106814106815106816106817106818106819106820106821106822106823106824106825106826106827106828106829106830106831106832106833106834106835106836106837106838106839106840106841106842106843106844106845106846106847106848106849106850106851106852106853106854106855106856106857106858106859106860106861106862106863106864106865106866106867106868106869106870106871106872106873106874106875106876106877106878106879106880106881106882106883106884106885106886106887106888106889106890106891106892106893106894106895106896106897106898106899106900106901106902106903106904106905106906106907106908106909106910106911106912106913106914106915106916106917106918106919106920106921106922106923106924106925106926106927106928106929106930106931106932106933106934106935106936106937106938106939106940106941106942106943106944106945106946106947106948106949106950106951106952106953106954106955106956106957106958106959106960106961106962106963106964106965106966106967106968106969106970106971106972106973106974106975106976106977106978106979106980106981106982106983106984106985106986106987106988106989106990106991106992106993106994106995106996106997106998106999107000107001107002107003107004107005107006107007107008107009107010107011107012107013107014107015107016107017107018107019107020107021107022107023107024107025107026107027107028107029107030107031107032107033107034107035107036107037107038107039107040107041107042107043107044107045107046107047107048107049107050107051107052107053107054107055107056107057107058107059107060107061107062107063107064107065107066107067107068107069107070107071107072107073107074107075107076107077107078107079107080107081107082107083107084107085107086107087107088107089107090107091107092107093107094107095107096107097107098107099107100107101107102107103107104107105107106107107107108107109107110107111107112107113107114107115107116107117107118107119107120107121107122107123107124107125107126107127107128107129107130107131107132107133107134107135107136107137107138107139107140107141107142107143107144107145107146107147107148107149107150107151107152107153107154107155107156107157107158107159107160107161107162107163107164107165107166107167107168107169107170107171107172107173107174107175107176107177107178107179107180107181107182107183107184107185107186107187107188107189107190107191107192107193107194107195107196107197107198107199107200107201107202107203107204107205107206107207107208107209107210107211107212107213107214107215107216107217107218107219107220107221107222107223107224107225107226107227107228107229107230107231107232107233107234107235107236107237107238107239107240107241107242107243107244107245107246107247107248107249107250107251107252107253107254107255107256107257107258107259107260107261107262107263107264107265107266107267107268107269107270107271107272107273107274107275107276107277107278107279107280107281107282107283107284107285107286107287107288107289107290107291107292107293107294107295107296107297107298107299107300107301107302107303107304107305107306107307107308107309107310107311107312107313107314107315107316107317107318107319107320107321107322107323107324107325107326107327107328107329107330107331107332107333107334107335107336107337107338107339107340107341107342107343107344107345107346107347107348107349107350107351107352107353107354107355107356107357107358107359107360107361107362107363107364107365107366107367107368107369107370107371107372107373107374107375107376107377107378107379107380107381107382107383107384107385107386107387107388107389107390107391107392107393107394107395107396107397107398107399107400107401107402107403107404107405107406107407107408107409107410107411107412107413107414107415107416107417107418107419107420107421107422107423107424107425107426107427107428107429107430107431107432107433107434107435107436107437107438107439107440107441107442107443107444107445107446107447107448107449107450107451107452107453107454107455107456107457107458107459107460107461107462107463107464107465107466107467107468107469107470107471107472107473107474107475107476107477107478107479107480107481107482107483107484107485107486107487107488107489107490107491107492107493107494107495107496107497107498107499107500107501107502107503107504107505107506107507107508107509107510107511107512107513107514107515107516107517107518107519107520107521107522107523107524107525107526107527107528107529107530107531107532107533107534107535107536107537107538107539107540107541107542107543107544107545107546107547107548107549107550107551107552107553107554107555107556107557107558107559107560107561107562107563107564107565107566107567107568107569107570107571107572107573107574107575107576107577107578107579107580107581107582107583107584107585107586107587107588107589107590107591107592107593107594107595107596107597107598107599107600107601107602107603107604107605107606107607107608107609107610107611107612107613107614107615107616107617107618107619107620107621107622107623107624107625107626107627107628107629107630107631107632107633107634107635107636107637107638107639107640107641107642107643107644107645107646107647107648107649107650107651107652107653107654107655107656107657107658107659107660107661107662107663107664107665107666107667107668107669107670107671107672107673107674107675107676107677107678107679107680107681107682107683107684107685107686107687107688107689107690107691107692107693107694107695107696107697107698107699107700107701107702107703107704107705107706107707107708107709107710107711107712107713107714107715107716107717107718107719107720107721107722107723107724107725107726107727107728107729107730107731107732107733107734107735107736107737107738107739107740107741107742107743107744107745107746107747107748107749107750107751107752107753107754107755107756107757107758107759107760107761107762107763107764107765107766107767107768107769107770107771107772107773107774107775107776107777107778107779107780107781107782107783107784107785107786107787107788107789107790107791107792107793107794107795107796107797107798107799107800107801107802107803107804107805107806107807107808107809107810107811107812107813107814107815107816107817107818107819107820107821107822107823107824107825107826107827107828107829107830107831107832107833107834107835107836107837107838107839107840107841107842107843107844107845107846107847107848107849107850107851107852107853107854107855107856107857107858107859107860107861107862107863107864107865107866107867107868107869107870107871107872107873107874107875107876107877107878107879107880107881107882107883107884107885107886107887107888107889107890107891107892107893107894107895107896107897107898107899107900107901107902107903107904107905107906107907107908107909107910107911107912107913107914107915107916107917107918107919107920107921107922107923107924107925107926107927107928107929107930107931107932107933107934107935107936107937107938107939107940107941107942107943107944107945107946107947107948107949107950107951107952107953107954107955107956107957107958107959107960107961107962107963107964107965107966107967107968107969107970107971107972107973107974107975107976107977107978107979107980107981107982107983107984107985107986107987107988107989107990107991107992107993107994107995107996107997107998107999108000108001108002108003108004108005108006108007108008108009108010108011108012108013108014108015108016108017108018108019108020108021108022108023108024108025108026108027108028108029108030108031108032108033108034108035108036108037108038108039108040108041108042108043108044108045108046108047108048108049108050108051108052108053108054108055108056108057108058108059108060108061108062108063108064108065108066108067108068108069108070108071108072108073108074108075108076108077108078108079108080108081108082108083108084108085108086108087108088108089108090108091108092108093108094108095108096108097108098108099108100108101108102108103108104108105108106108107108108108109108110108111108112108113108114108115108116108117108118108119108120108121108122108123108124108125108126108127108128108129108130108131108132108133108134108135108136108137108138108139108140108141108142108143108144108145108146108147108148108149108150108151108152108153108154108155108156108157108158108159108160108161108162108163108164108165108166108167108168108169108170108171108172108173108174108175108176108177108178108179108180108181108182108183108184108185108186108187108188108189108190108191108192108193108194108195108196108197108198108199108200108201108202108203108204108205108206108207108208108209108210108211108212108213108214108215108216108217108218108219108220108221108222108223108224108225108226108227108228108229108230108231108232108233108234108235108236108237108238108239108240108241108242108243108244108245108246108247108248108249108250108251108252108253108254108255108256108257108258108259108260108261108262108263108264108265108266108267108268108269108270108271108272108273108274108275108276108277108278108279108280108281108282108283108284108285108286108287108288108289108290108291108292108293108294108295108296108297108298108299108300108301108302108303108304108305108306108307108308108309108310108311108312108313108314108315108316108317108318108319108320108321108322108323108324108325108326108327108328108329108330108331108332108333108334108335108336108337108338108339108340108341108342108343108344108345108346108347108348108349108350108351108352108353108354108355108356108357108358108359108360108361108362108363108364108365108366108367108368108369108370108371108372108373108374108375108376108377108378108379108380108381108382108383108384108385108386108387108388108389108390108391108392108393108394108395108396108397108398108399108400108401108402108403108404108405108406108407108408108409108410108411108412108413108414108415108416108417108418108419108420108421108422108423108424108425108426108427108428108429108430108431108432108433108434108435108436108437108438108439108440108441108442108443108444108445108446108447108448108449108450108451108452108453108454108455108456108457108458108459108460108461108462108463108464108465108466108467108468108469108470108471108472108473108474108475108476108477108478108479108480108481108482108483108484108485108486108487108488108489108490108491108492108493108494108495108496108497108498108499108500108501108502108503108504108505108506108507108508108509108510108511108512108513108514108515108516108517108518108519108520108521108522108523108524108525108526108527108528108529108530108531108532108533108534108535108536108537108538108539108540108541108542108543108544108545108546108547108548108549108550108551108552108553108554108555108556108557108558108559108560108561108562108563108564108565108566108567108568108569108570108571108572108573108574108575108576108577108578108579108580108581108582108583108584108585108586108587108588108589108590108591108592108593108594108595108596108597108598108599108600108601108602108603108604108605108606108607108608108609108610108611108612108613108614108615108616108617108618108619108620108621108622108623108624108625108626108627108628108629108630108631108632108633108634108635108636108637108638108639108640108641108642108643108644108645108646108647108648108649108650108651108652108653108654108655108656108657108658108659108660108661108662108663108664108665108666108667108668108669108670108671108672108673108674108675108676108677108678108679108680108681108682108683108684108685108686108687108688108689108690108691108692108693108694108695108696108697108698108699108700108701108702108703108704108705108706108707108708108709108710108711108712108713108714108715108716108717108718108719108720108721108722108723108724108725108726108727108728108729108730108731108732108733108734108735108736108737108738108739108740108741108742108743108744108745108746108747108748108749108750108751108752108753108754108755108756108757108758108759108760108761108762108763108764108765108766108767108768108769108770108771108772108773108774108775108776108777108778108779108780108781108782108783108784108785108786108787108788108789108790108791108792108793108794108795108796108797108798108799108800108801108802108803108804108805108806108807108808108809108810108811108812108813108814108815108816108817108818108819108820108821108822108823108824108825108826108827108828108829108830108831108832108833108834108835108836108837108838108839108840108841108842108843108844108845108846108847108848108849108850108851108852108853108854108855108856108857108858108859108860108861108862108863108864108865108866108867108868108869108870108871108872108873108874108875108876108877108878108879108880108881108882108883108884108885108886108887108888108889108890108891108892108893108894108895108896108897108898108899108900108901108902108903108904108905108906108907108908108909108910108911108912108913108914108915108916108917108918108919108920108921108922108923108924108925108926108927108928108929108930108931108932108933108934108935108936108937108938108939108940108941108942108943108944108945108946108947108948108949108950108951108952108953108954108955108956108957108958108959108960108961108962108963108964108965108966108967108968108969108970108971108972108973108974108975108976108977108978108979108980108981108982108983108984108985108986108987108988108989108990108991108992108993108994108995108996108997108998108999109000109001109002109003109004109005109006109007109008109009109010109011109012109013109014109015109016109017109018109019109020109021109022109023109024109025109026109027109028109029109030109031109032109033109034109035109036109037109038109039109040109041109042109043109044109045109046109047109048109049109050109051109052109053109054109055109056109057109058109059109060109061109062109063109064109065109066109067109068109069109070109071109072109073109074109075109076109077109078109079109080109081109082109083109084109085109086109087109088109089109090109091109092109093109094109095109096109097109098109099109100109101109102109103109104109105109106109107109108109109109110109111109112109113109114109115109116109117109118109119109120109121109122109123109124109125109126109127109128109129109130109131109132109133109134109135109136109137109138109139109140109141109142109143109144109145109146109147109148109149109150109151109152109153109154109155109156109157109158109159109160109161109162109163109164109165109166109167109168109169109170109171109172109173109174109175109176109177109178109179109180109181109182109183109184109185109186109187109188109189109190109191109192109193109194109195109196109197109198109199109200109201109202109203109204109205109206109207109208109209109210109211109212109213109214109215109216109217109218109219109220109221109222109223109224109225109226109227109228109229109230109231109232109233109234109235109236109237109238109239109240109241109242109243109244109245109246109247109248109249109250109251109252109253109254109255109256109257109258109259109260109261109262109263109264109265109266109267109268109269109270109271109272109273109274109275109276109277109278109279109280109281109282109283109284109285109286109287109288109289109290109291109292109293109294109295109296109297109298109299109300109301109302109303109304109305109306109307109308109309109310109311109312109313109314109315109316109317109318109319109320109321109322109323109324109325109326109327109328109329109330109331109332109333109334109335109336109337109338109339109340109341109342109343109344109345109346109347109348109349109350109351109352109353109354109355109356109357109358109359109360109361109362109363109364109365109366109367109368109369109370109371109372109373109374109375109376109377109378109379109380109381109382109383109384109385109386109387109388109389109390109391109392109393109394109395109396109397109398109399109400109401109402109403109404109405109406109407109408109409109410109411109412109413109414109415109416109417109418109419109420109421109422109423109424109425109426109427109428109429109430109431109432109433109434109435109436109437109438109439109440109441109442109443109444109445109446109447109448109449109450109451109452109453109454109455109456109457109458109459109460109461109462109463109464109465109466109467109468109469109470109471109472109473109474109475109476109477109478109479109480109481109482109483109484109485109486109487109488109489109490109491109492109493109494109495109496109497109498109499109500109501109502109503109504109505109506109507109508109509109510109511109512109513109514109515109516109517109518109519109520109521109522109523109524109525109526109527109528109529109530109531109532109533109534109535109536109537109538109539109540109541109542109543109544109545109546109547109548109549109550109551109552109553109554109555109556109557109558109559109560109561109562109563109564109565109566109567109568109569109570109571109572109573109574109575109576109577109578109579109580109581109582109583109584109585109586109587109588109589109590109591109592109593109594109595109596109597109598109599109600109601109602109603109604109605109606109607109608109609109610109611109612109613109614109615109616109617109618109619109620109621109622109623109624109625109626109627109628109629109630109631109632109633109634109635109636109637109638109639109640109641109642109643109644109645109646109647109648109649109650109651109652109653109654109655109656109657109658109659109660109661109662109663109664109665109666109667109668109669109670109671109672109673109674109675109676109677109678109679109680109681109682109683109684109685109686109687109688109689109690109691109692109693109694109695109696109697109698109699109700109701109702109703109704109705109706109707109708109709109710109711109712109713109714109715109716109717109718109719109720109721109722109723109724109725109726109727109728109729109730109731109732109733109734109735109736109737109738109739109740109741109742109743109744109745109746109747109748109749109750109751109752109753109754109755109756109757109758109759109760109761109762109763109764109765109766109767109768109769109770109771109772109773109774109775109776109777109778109779109780109781109782109783109784109785109786109787109788109789109790109791109792109793109794109795109796109797109798109799109800109801109802109803109804109805109806109807109808109809109810109811109812109813109814109815109816109817109818109819109820109821109822109823109824109825109826109827109828109829109830109831109832109833109834109835109836109837109838109839109840109841109842109843109844109845109846109847109848109849109850109851109852109853109854109855109856109857109858109859109860109861109862109863109864109865109866109867109868109869109870109871109872109873109874109875109876109877109878109879109880109881109882109883109884109885109886109887109888109889109890109891109892109893109894109895109896109897109898109899109900109901109902109903109904109905109906109907109908109909109910109911109912109913109914109915109916109917109918109919109920109921109922109923109924109925109926109927109928109929109930109931109932109933109934109935109936109937109938109939109940109941109942109943109944109945109946109947109948109949109950109951109952109953109954109955109956109957109958109959109960109961109962109963109964109965109966109967109968109969109970109971109972109973109974109975109976109977109978109979109980109981109982109983109984109985109986109987109988109989109990109991109992109993109994109995109996109997109998109999110000110001110002110003110004110005110006110007110008110009110010110011110012110013110014110015110016110017110018110019110020110021110022110023110024110025110026110027110028110029110030110031110032110033110034110035110036110037110038110039110040110041110042110043110044110045110046110047110048110049110050110051110052110053110054110055110056110057110058110059110060110061110062110063110064110065110066110067110068110069110070110071110072110073110074110075110076110077110078110079110080110081110082110083110084110085110086110087110088110089110090110091110092110093110094110095110096110097110098110099110100110101110102110103110104110105110106110107110108110109110110110111110112110113110114110115110116110117110118110119110120110121110122110123110124110125110126110127110128110129110130110131110132110133110134110135110136110137110138110139110140110141110142110143110144110145110146110147110148110149110150110151110152110153110154110155110156110157110158110159110160110161110162110163110164110165110166110167110168110169110170110171110172110173110174110175110176110177110178110179110180110181110182110183110184110185110186110187110188110189110190110191110192110193110194110195110196110197110198110199110200110201110202110203110204110205110206110207110208110209110210110211110212110213110214110215110216110217110218110219110220110221110222110223110224110225110226110227110228110229110230110231110232110233110234110235110236110237110238110239110240110241110242110243110244110245110246110247110248110249110250110251110252110253110254110255110256110257110258110259110260110261110262110263110264110265110266110267110268110269110270110271110272110273110274110275110276110277110278110279110280110281110282110283110284110285110286110287110288110289110290110291110292110293110294110295110296110297110298110299110300110301110302110303110304110305110306110307110308110309110310110311110312110313110314110315110316110317110318110319110320110321110322110323110324110325110326110327110328110329110330110331110332110333110334110335110336110337110338110339110340110341110342110343110344110345110346110347110348110349110350110351110352110353110354110355110356110357110358110359110360110361110362110363110364110365110366110367110368110369110370110371110372110373110374110375110376110377110378110379110380110381110382110383110384110385110386110387110388110389110390110391110392110393110394110395110396110397110398110399110400110401110402110403110404110405110406110407110408110409110410110411110412110413110414110415110416110417110418110419110420110421110422110423110424110425110426110427110428110429110430110431110432110433110434110435110436110437110438110439110440110441110442110443110444110445110446110447110448110449110450110451110452110453110454110455110456110457110458110459110460110461110462110463110464110465110466110467110468110469110470110471110472110473110474110475110476110477110478110479110480110481110482110483110484110485110486110487110488110489110490110491110492110493110494110495110496110497110498110499110500110501110502110503110504110505110506110507110508110509110510110511110512110513110514110515110516110517110518110519110520110521110522110523110524110525110526110527110528110529110530110531110532110533110534110535110536110537110538110539110540110541110542110543110544110545110546110547110548110549110550110551110552110553110554110555110556110557110558110559110560110561110562110563110564110565110566110567110568110569110570110571110572110573110574110575110576110577110578110579110580110581110582110583110584110585110586110587110588110589110590110591110592110593110594110595110596110597110598110599110600110601110602110603110604110605110606110607110608110609110610110611110612110613110614110615110616110617110618110619110620110621110622110623110624110625110626110627110628110629110630110631110632110633110634110635110636110637110638110639110640110641110642110643110644110645110646110647110648110649110650110651110652110653110654110655110656110657110658110659110660110661110662110663110664110665110666110667110668110669110670110671110672110673110674110675110676110677110678110679110680110681110682110683110684110685110686110687110688110689110690110691110692110693110694110695110696110697110698110699110700110701110702110703110704110705110706110707110708110709110710110711110712110713110714110715110716110717110718110719110720110721110722110723110724110725110726110727110728110729110730110731110732110733110734110735110736110737110738110739110740110741110742110743110744110745110746110747110748110749110750110751110752110753110754110755110756110757110758110759110760110761110762110763110764110765110766110767110768110769110770110771110772110773110774110775110776110777110778110779110780110781110782110783110784110785110786110787110788110789110790110791110792110793110794110795110796110797110798110799110800110801110802110803110804110805110806110807110808110809110810110811110812110813110814110815110816110817110818110819110820110821110822110823110824110825110826110827110828110829110830110831110832110833110834110835110836110837110838110839110840110841110842110843110844110845110846110847110848110849110850110851110852110853110854110855110856110857110858110859110860110861110862110863110864110865110866110867110868110869110870110871110872110873110874110875110876110877110878110879110880110881110882110883110884110885110886110887110888110889110890110891110892110893110894110895110896110897110898110899110900110901110902110903110904110905110906110907110908110909110910110911110912110913110914110915110916110917110918110919110920110921110922110923110924110925110926110927110928110929110930110931110932110933110934110935110936110937110938110939110940110941110942110943110944110945110946110947110948110949110950110951110952110953110954110955110956110957110958110959110960110961110962110963110964110965110966110967110968110969110970110971110972110973110974110975110976110977110978110979110980110981110982110983110984110985110986110987110988110989110990110991110992110993110994110995110996110997110998110999111000111001111002111003111004111005111006111007111008111009111010111011111012111013111014111015111016111017111018111019111020111021111022111023111024111025111026111027111028111029111030111031111032111033111034111035111036111037111038111039111040111041111042111043111044111045111046111047111048111049111050111051111052111053111054111055111056111057111058111059111060111061111062111063111064111065111066111067111068111069111070111071111072111073111074111075111076111077111078111079111080111081111082111083111084111085111086111087111088111089111090111091111092111093111094111095111096111097111098111099111100111101111102111103111104111105111106111107111108111109111110111111111112111113111114111115111116111117111118111119111120111121111122111123111124111125111126111127111128111129111130111131111132111133111134111135111136111137111138111139111140111141111142111143111144111145111146111147111148111149111150111151111152111153111154111155111156111157111158111159111160111161111162111163111164111165111166111167111168111169111170111171111172111173111174111175111176111177111178111179111180111181111182111183111184111185111186111187111188111189111190111191111192111193111194111195111196111197111198111199111200111201111202111203111204111205111206111207111208111209111210111211111212111213111214111215111216111217111218111219111220111221111222111223111224111225111226111227111228111229111230111231111232111233111234111235111236111237111238111239111240111241111242111243111244111245111246111247111248111249111250111251111252111253111254111255111256111257111258111259111260111261111262111263111264111265111266111267111268111269111270111271111272111273111274111275111276111277111278111279111280111281111282111283111284111285111286111287111288111289111290111291111292111293111294111295111296111297111298111299111300111301111302111303111304111305111306111307111308111309111310111311111312111313111314111315111316111317111318111319111320111321111322111323111324111325111326111327111328111329111330111331111332111333111334111335111336111337111338111339111340111341111342111343111344111345111346111347111348111349111350111351111352111353111354111355111356111357111358111359111360111361111362111363111364111365111366111367111368111369111370111371111372111373111374111375111376111377111378111379111380111381111382111383111384111385111386111387111388111389111390111391111392111393111394111395111396111397111398111399111400111401111402111403111404111405111406111407111408111409111410111411111412111413111414111415111416111417111418111419111420111421111422111423111424111425111426111427111428111429111430111431111432111433111434111435111436111437111438111439111440111441111442111443111444111445111446111447111448111449111450111451111452111453111454111455111456111457111458111459111460111461111462111463111464111465111466111467111468111469111470111471111472111473111474111475111476111477111478111479111480111481111482111483111484111485111486111487111488111489111490111491111492111493111494111495111496111497111498111499111500111501111502111503111504111505111506111507111508111509111510111511111512111513111514111515111516111517111518111519111520111521111522111523111524111525111526111527111528111529111530111531111532111533111534111535111536111537111538111539111540111541111542111543111544111545111546111547111548111549111550111551111552111553111554111555111556111557111558111559111560111561111562111563111564111565111566111567111568111569111570111571111572111573111574111575111576111577111578111579111580111581111582111583111584111585111586111587111588111589111590111591111592111593111594111595111596111597111598111599111600111601111602111603111604111605111606111607111608111609111610111611111612111613111614111615111616111617111618111619111620111621111622111623111624111625111626111627111628111629111630111631111632111633111634111635111636111637111638111639111640111641111642111643111644111645111646111647111648111649111650111651111652111653111654111655111656111657111658111659111660111661111662111663111664111665111666111667111668111669111670111671111672111673111674111675111676111677111678111679111680111681111682111683111684111685111686111687111688111689111690111691111692111693111694111695111696111697111698111699111700111701111702111703111704111705111706111707111708111709111710111711111712111713111714111715111716111717111718111719111720111721111722111723111724111725111726111727111728111729111730111731111732111733111734111735111736111737111738111739111740111741111742111743111744111745111746111747111748111749111750111751111752111753111754111755111756111757111758111759111760111761111762111763111764111765111766111767111768111769111770111771111772111773111774111775111776111777111778111779111780111781111782111783111784111785111786111787111788111789111790111791111792111793111794111795111796111797111798111799111800111801111802111803111804111805111806111807111808111809111810111811111812111813111814111815111816111817111818111819111820111821111822111823111824111825111826111827111828111829111830111831111832111833111834111835111836111837111838111839111840111841111842111843111844111845111846111847111848111849111850111851111852111853111854111855111856111857111858111859111860111861111862111863111864111865111866111867111868111869111870111871111872111873111874111875111876111877111878111879111880111881111882111883111884111885111886111887111888111889111890111891111892111893111894111895111896111897111898111899111900111901111902111903111904111905111906111907111908111909111910111911111912111913111914111915111916111917111918111919111920111921111922111923111924111925111926111927111928111929111930111931111932111933111934111935111936111937111938111939111940111941111942111943111944111945111946111947111948111949111950111951111952111953111954111955111956111957111958111959111960111961111962111963111964111965111966111967111968111969111970111971111972111973111974111975111976111977111978111979111980111981111982111983111984111985111986111987111988111989111990111991111992111993111994111995111996111997111998111999112000112001112002112003112004112005112006112007112008112009112010112011112012112013112014112015112016112017112018112019112020112021112022112023112024112025112026112027112028112029112030112031112032112033112034112035112036112037112038112039112040112041112042112043112044112045112046112047112048112049112050112051112052112053112054112055112056112057112058112059112060112061112062112063112064112065112066112067112068112069112070112071112072112073112074112075112076112077112078112079112080112081112082112083112084112085112086112087112088112089112090112091112092112093112094112095112096112097112098112099112100112101112102112103112104112105112106112107112108112109112110112111112112112113112114112115112116112117112118112119112120112121112122112123112124112125112126112127112128112129112130112131112132112133112134112135112136112137112138112139112140112141112142112143112144112145112146112147112148112149112150112151112152112153112154112155112156112157112158112159112160112161112162112163112164112165112166112167112168112169112170112171112172112173112174112175112176112177112178112179112180112181112182112183112184112185112186112187112188112189112190112191112192112193112194112195112196112197112198112199112200112201112202112203112204112205112206112207112208112209112210112211112212112213112214112215112216112217112218112219112220112221112222112223112224112225112226112227112228112229112230112231112232112233112234112235112236112237112238112239112240112241112242112243112244112245112246112247112248112249112250112251112252112253112254112255112256112257112258112259112260112261112262112263112264112265112266112267112268112269112270112271112272112273112274112275112276112277112278112279112280112281112282112283112284112285112286112287112288112289112290112291112292112293112294112295112296112297112298112299112300112301112302112303112304112305112306112307112308112309112310112311112312112313112314112315112316112317112318112319112320112321112322112323112324112325112326112327112328112329112330112331112332112333112334112335112336112337112338112339112340112341112342112343112344112345112346112347112348112349112350112351112352112353112354112355112356112357112358112359112360112361112362112363112364112365112366112367112368112369112370112371112372112373112374112375112376112377112378112379112380112381112382112383112384112385112386112387112388112389112390112391112392112393112394112395112396112397112398112399112400112401112402112403112404112405112406112407112408112409112410112411112412112413112414112415112416112417112418112419112420112421112422112423112424112425112426112427112428112429112430112431112432112433112434112435112436112437112438112439112440112441112442112443112444112445112446112447112448112449112450112451112452112453112454112455112456112457112458112459112460112461112462112463112464112465112466112467112468112469112470112471112472112473112474112475112476112477112478112479112480112481112482112483112484112485112486112487112488112489112490112491112492112493112494112495112496112497112498112499112500112501112502112503112504112505112506112507112508112509112510112511112512112513112514112515112516112517112518112519112520112521112522112523112524112525112526112527112528112529112530112531112532112533112534112535112536112537112538112539112540112541112542112543112544112545112546112547112548112549112550112551112552112553112554112555112556112557112558112559112560112561112562112563112564112565112566112567112568112569112570112571112572112573112574112575112576112577112578112579112580112581112582112583112584112585112586112587112588112589112590112591112592112593112594112595112596112597112598112599112600112601112602112603112604112605112606112607112608112609112610112611112612112613112614112615112616112617112618112619112620112621112622112623112624112625112626112627112628112629112630112631112632112633112634112635112636112637112638112639112640112641112642112643112644112645112646112647112648112649112650112651112652112653112654112655112656112657112658112659112660112661112662112663112664112665112666112667112668112669112670112671112672112673112674112675112676112677112678112679112680112681112682112683112684112685112686112687112688112689112690112691112692112693112694112695112696112697112698112699112700112701112702112703112704112705112706112707112708112709112710112711112712112713112714112715112716112717112718112719112720112721112722112723112724112725112726112727112728112729112730112731112732112733112734112735112736112737112738112739112740112741112742112743112744112745112746112747112748112749112750112751112752112753112754112755112756112757112758112759112760112761112762112763112764112765112766112767112768112769112770112771112772112773112774112775112776112777112778112779112780112781112782112783112784112785112786112787112788112789112790112791112792112793112794112795112796112797112798112799112800112801112802112803112804112805112806112807112808112809112810112811112812112813112814112815112816112817112818112819112820112821112822112823112824112825112826112827112828112829112830112831112832112833112834112835112836112837112838112839112840112841112842112843112844112845112846112847112848112849112850112851112852112853112854112855112856112857112858112859112860112861112862112863112864112865112866112867112868112869112870112871112872112873112874112875112876112877112878112879112880112881112882112883112884112885112886112887112888112889112890112891112892112893112894112895112896112897112898112899112900112901112902112903112904112905112906112907112908112909112910112911112912112913112914112915112916112917112918112919112920112921112922112923112924112925112926112927112928112929112930112931112932112933112934112935112936112937112938112939112940112941112942112943112944112945112946112947112948112949112950112951112952112953112954112955112956112957112958112959112960112961112962112963112964112965112966112967112968112969112970112971112972112973112974112975112976112977112978112979112980112981112982112983112984112985112986112987112988112989112990112991112992112993112994112995112996112997112998112999113000113001113002113003113004113005113006113007113008113009113010113011113012113013113014113015113016113017113018113019113020113021113022113023113024113025113026113027113028113029113030113031113032113033113034113035113036113037113038113039113040113041113042113043113044113045113046113047113048113049113050113051113052113053113054113055113056113057113058113059113060113061113062113063113064113065113066113067113068113069113070113071113072113073113074113075113076113077113078113079113080113081113082113083113084113085113086113087113088113089113090113091113092113093113094113095113096113097113098113099113100113101113102113103113104113105113106113107113108113109113110113111113112113113113114113115113116113117113118113119113120113121113122113123113124113125113126113127113128113129113130113131113132113133113134113135113136113137113138113139113140113141113142113143113144113145113146113147113148113149113150113151113152113153113154113155113156113157113158113159113160113161113162113163113164113165113166113167113168113169113170113171113172113173113174113175113176113177113178113179113180113181113182113183113184113185113186113187113188113189113190113191113192113193113194113195113196113197113198113199113200113201113202113203113204113205113206113207113208113209113210113211113212113213113214113215113216113217113218113219113220113221113222113223113224113225113226113227113228113229113230113231113232113233113234113235113236113237113238113239113240113241113242113243113244113245113246113247113248113249113250113251113252113253113254113255113256113257113258113259113260113261113262113263113264113265113266113267113268113269113270113271113272113273113274113275113276113277113278113279113280113281113282113283113284113285113286113287113288113289113290113291113292113293113294113295113296113297113298113299113300113301113302113303113304113305113306113307113308113309113310113311113312113313113314113315113316113317113318113319113320113321113322113323113324113325113326113327113328113329113330113331113332113333113334113335113336113337113338113339113340113341113342113343113344113345113346113347113348113349113350113351113352113353113354113355113356113357113358113359113360113361113362113363113364113365113366113367113368113369113370113371113372113373113374113375113376113377113378113379113380113381113382113383113384113385113386113387113388113389113390113391113392113393113394113395113396113397113398113399113400113401113402113403113404113405113406113407113408113409113410113411113412113413113414113415113416113417113418113419113420113421113422113423113424113425113426113427113428113429113430113431113432113433113434113435113436113437113438113439113440113441113442113443113444113445113446113447113448113449113450113451113452113453113454113455113456113457113458113459113460113461113462113463113464113465113466113467113468113469113470113471113472113473113474113475113476113477113478113479113480113481113482113483113484113485113486113487113488113489113490113491113492113493113494113495113496113497113498113499113500113501113502113503113504113505113506113507113508113509113510113511113512113513113514113515113516113517113518113519113520113521113522113523113524113525113526113527113528113529113530113531113532113533113534113535113536113537113538113539113540113541113542113543113544113545113546113547113548113549113550113551113552113553113554113555113556113557113558113559113560113561113562113563113564113565113566113567113568113569113570113571113572113573113574113575113576113577113578113579113580113581113582113583113584113585113586113587113588113589113590113591113592113593113594113595113596113597113598113599113600113601113602113603113604113605113606113607113608113609113610113611113612113613113614113615113616113617113618113619113620113621113622113623113624113625113626113627113628113629113630113631113632113633113634113635113636113637113638113639113640113641113642113643113644113645113646113647113648113649113650113651113652113653113654113655113656113657113658113659113660113661113662113663113664113665113666113667113668113669113670113671113672113673113674113675113676113677113678113679113680113681113682113683113684113685113686113687113688113689113690113691113692113693113694113695113696113697113698113699113700113701113702113703113704113705113706113707113708113709113710113711113712113713113714113715113716113717113718113719113720113721113722113723113724113725113726113727113728113729113730113731113732113733113734113735113736113737113738113739113740113741113742113743113744113745113746113747113748113749113750113751113752113753113754113755113756113757113758113759113760113761113762113763113764113765113766113767113768113769113770113771113772113773113774113775113776113777113778113779113780113781113782113783113784113785113786113787113788113789113790113791113792113793113794113795113796113797113798113799113800113801113802113803113804113805113806113807113808113809113810113811113812113813113814113815113816113817113818113819113820113821113822113823113824113825113826113827113828113829113830113831113832113833113834113835113836113837113838113839113840113841113842113843113844113845113846113847113848113849113850113851113852113853113854113855113856113857113858113859113860113861113862113863113864113865113866113867113868113869113870113871113872113873113874113875113876113877113878113879113880113881113882113883113884113885113886113887113888113889113890113891113892113893113894113895113896113897113898113899113900113901113902113903113904113905113906113907113908113909113910113911113912113913113914113915113916113917113918113919113920113921113922113923113924113925113926113927113928113929113930113931113932113933113934113935113936113937113938113939113940113941113942113943113944113945113946113947113948113949113950113951113952113953113954113955113956113957113958113959113960113961113962113963113964113965113966113967113968113969113970113971113972113973113974113975113976113977113978113979113980113981113982113983113984113985113986113987113988113989113990113991113992113993113994113995113996113997113998113999114000114001114002114003114004114005114006114007114008114009114010114011114012114013114014114015114016114017114018114019114020114021114022114023114024114025114026114027114028114029114030114031114032114033114034114035114036114037114038114039114040114041114042114043114044114045114046114047114048114049114050114051114052114053114054114055114056114057114058114059114060114061114062114063114064114065114066114067114068114069114070114071114072114073114074114075114076114077114078114079114080114081114082114083114084114085114086114087114088114089114090114091114092114093114094114095114096114097114098114099114100114101114102114103114104114105114106114107114108114109114110114111114112114113114114114115114116114117114118114119114120114121114122114123114124114125114126114127114128114129114130114131114132114133114134114135114136114137114138114139114140114141114142114143114144114145114146114147114148114149114150114151114152114153114154114155114156114157114158114159114160114161114162114163114164114165114166114167114168114169114170114171114172114173114174114175114176114177114178114179114180114181114182114183114184114185114186114187114188114189114190114191114192114193114194114195114196114197114198114199114200114201114202114203114204114205114206114207114208114209114210114211114212114213114214114215114216114217114218114219114220114221114222114223114224114225114226114227114228114229114230114231114232114233114234114235114236114237114238114239114240114241114242114243114244114245114246114247114248114249114250114251114252114253114254114255114256114257114258114259114260114261114262114263114264114265114266114267114268114269114270114271114272114273114274114275114276114277114278114279114280114281114282114283114284114285114286114287114288114289114290114291114292114293114294114295114296114297114298114299114300114301114302114303114304114305114306114307114308114309114310114311114312114313114314114315114316114317114318114319114320114321114322114323114324114325114326114327114328114329114330114331114332114333114334114335114336114337114338114339114340114341114342114343114344114345114346114347114348114349114350114351114352114353114354114355114356114357114358114359114360114361114362114363114364114365114366114367114368114369114370114371114372114373114374114375114376114377114378114379114380114381114382114383114384114385114386114387114388114389114390114391114392114393114394114395114396114397114398114399114400114401114402114403114404114405114406114407114408114409114410114411114412114413114414114415114416114417114418114419114420114421114422114423114424114425114426114427114428114429114430114431114432114433114434114435114436114437114438114439114440114441114442114443114444114445114446114447114448114449114450114451114452114453114454114455114456114457114458114459114460114461114462114463114464114465114466114467114468114469114470114471114472114473114474114475114476114477114478114479114480114481114482114483114484114485114486114487114488114489114490114491114492114493114494114495114496114497114498114499114500114501114502114503114504114505114506114507114508114509114510114511114512114513114514114515114516114517114518114519114520114521114522114523114524114525114526114527114528114529114530114531114532114533114534114535114536114537114538114539114540114541114542114543114544114545114546114547114548114549114550114551114552114553114554114555114556114557114558114559114560114561114562114563114564114565114566114567114568114569114570114571114572114573114574114575114576114577114578114579114580114581114582114583114584114585114586114587114588114589114590114591114592114593114594114595114596114597114598114599114600114601114602114603114604114605114606114607114608114609114610114611114612114613114614114615114616114617114618114619114620114621114622114623114624114625114626114627114628114629114630114631114632114633114634114635114636114637114638114639114640114641114642114643114644114645114646114647114648114649114650114651114652114653114654114655114656114657114658114659114660114661114662114663114664114665114666114667114668114669114670114671114672114673114674114675114676114677114678114679114680114681114682114683114684114685114686114687114688114689114690114691114692114693114694114695114696114697114698114699114700114701114702114703114704114705114706114707114708114709114710114711114712114713114714114715114716114717114718114719114720114721114722114723114724114725114726114727114728114729114730114731114732114733114734114735114736114737114738114739114740114741114742114743114744114745114746114747114748114749114750114751114752114753114754114755114756114757114758114759114760114761114762114763114764114765114766114767114768114769114770114771114772114773114774114775114776114777114778114779114780114781114782114783114784114785114786114787114788114789114790114791114792114793114794114795114796114797114798114799114800114801114802114803114804114805114806114807114808114809114810114811114812114813114814114815114816114817114818114819114820114821114822114823114824114825114826114827114828114829114830114831114832114833114834114835114836114837114838114839114840114841114842114843114844114845114846114847114848114849114850114851114852114853114854114855114856114857114858114859114860114861114862114863114864114865114866114867114868114869114870114871114872114873114874114875114876114877114878114879114880114881114882114883114884114885114886114887114888114889114890114891114892114893114894114895114896114897114898114899114900114901114902114903114904114905114906114907114908114909114910114911114912114913114914114915114916114917114918114919114920114921114922114923114924114925114926114927114928114929114930114931114932114933114934114935114936114937114938114939114940114941114942114943114944114945114946114947114948114949114950114951114952114953114954114955114956114957114958114959114960114961114962114963114964114965114966114967114968114969114970114971114972114973114974114975114976114977114978114979114980114981114982114983114984114985114986114987114988114989114990114991114992114993114994114995114996114997114998114999115000115001115002115003115004115005115006115007115008115009115010115011115012115013115014115015115016115017115018115019115020115021115022115023115024115025115026115027115028115029115030115031115032115033115034115035115036115037115038115039115040115041115042115043115044115045115046115047115048115049115050115051115052115053115054115055115056115057115058115059115060115061115062115063115064115065115066115067115068115069115070115071115072115073115074115075115076115077115078115079115080115081115082115083115084115085115086115087115088115089115090115091115092115093115094115095115096115097115098115099115100115101115102115103115104115105115106115107115108115109115110115111115112115113115114115115115116115117115118115119115120115121115122115123115124115125115126115127115128115129115130115131115132115133115134115135115136115137115138115139115140115141115142115143115144115145115146115147115148115149115150115151115152115153115154115155115156115157115158115159115160115161115162115163115164115165115166115167115168115169115170115171115172115173115174115175115176115177115178115179115180115181115182115183115184115185115186115187115188115189115190115191115192115193115194115195115196115197115198115199115200115201115202115203115204115205115206115207115208115209115210115211115212115213115214115215115216115217115218115219115220115221115222115223115224115225115226115227115228115229115230115231115232115233115234115235115236115237115238115239115240115241115242115243115244115245115246115247115248115249115250115251115252115253115254115255115256115257115258115259115260115261115262115263115264115265115266115267115268115269115270115271115272115273115274115275115276115277115278115279115280115281115282115283115284115285115286115287115288115289115290115291115292115293115294115295115296115297115298115299115300115301115302115303115304115305115306115307115308115309115310115311115312115313115314115315115316115317115318115319115320115321115322115323115324115325115326115327115328115329115330115331115332115333115334115335115336115337115338115339115340115341115342115343115344115345115346115347115348115349115350115351115352115353115354115355115356115357115358115359115360115361115362115363115364115365115366115367115368115369115370115371115372115373115374115375115376115377115378115379115380115381115382115383115384115385115386115387115388115389115390115391115392115393115394115395115396115397115398115399115400115401115402115403115404115405115406115407115408115409115410115411115412115413115414115415115416115417115418115419115420115421115422115423115424115425115426115427115428115429115430115431115432115433115434115435115436115437115438115439115440115441115442115443115444115445115446115447115448115449115450115451115452115453115454115455115456115457115458115459115460115461115462115463115464115465115466115467115468115469115470115471115472115473115474115475115476115477115478115479115480115481115482115483115484115485115486115487115488115489115490115491115492115493115494115495115496115497115498115499115500115501115502115503115504115505115506115507115508115509115510115511115512115513115514115515115516115517115518115519115520115521115522115523115524115525115526115527115528115529115530115531115532115533115534115535115536115537115538115539115540115541115542115543115544115545115546115547115548115549115550115551115552115553115554115555115556115557115558115559115560115561115562115563115564115565115566115567115568115569115570115571115572115573115574115575115576115577115578115579115580115581115582115583115584115585115586115587115588115589115590115591115592115593115594115595115596115597115598115599115600115601115602115603115604115605115606115607115608115609115610115611115612115613115614115615115616115617115618115619115620115621115622115623115624115625115626115627115628115629115630115631115632115633115634115635115636115637115638115639115640115641115642115643115644115645115646115647115648115649115650115651115652115653115654115655115656115657115658115659115660115661115662115663115664115665115666115667115668115669115670115671115672115673115674115675115676115677115678115679115680115681115682115683115684115685115686115687115688115689115690115691115692115693115694115695115696115697115698115699115700115701115702115703115704115705115706115707115708115709115710115711115712115713115714115715115716115717115718115719115720115721115722115723115724115725115726115727115728115729115730115731115732115733115734115735115736115737115738115739115740115741115742115743115744115745115746115747115748115749115750115751115752115753115754115755115756115757115758115759115760115761115762115763115764115765115766115767115768115769115770115771115772115773115774115775115776115777115778115779115780115781115782115783115784115785115786115787115788115789115790115791115792115793115794115795115796115797115798115799115800115801115802115803115804115805115806115807115808115809115810115811115812115813115814115815115816115817115818115819115820115821115822115823115824115825115826115827115828115829115830115831115832115833115834115835115836115837115838115839115840115841115842115843115844115845115846115847115848115849115850115851115852115853115854115855115856115857115858115859115860115861115862115863115864115865115866115867115868115869115870115871115872115873115874115875115876115877115878115879115880115881115882115883115884115885115886115887115888115889115890115891115892115893115894115895115896115897115898115899115900115901115902115903115904115905115906115907115908115909115910115911115912115913115914115915115916115917115918115919115920115921115922115923115924115925115926115927115928115929115930115931115932115933115934115935115936115937115938115939115940115941115942115943115944115945115946115947115948115949115950115951115952115953115954115955115956115957115958115959115960115961115962115963115964115965115966115967115968115969115970115971115972115973115974115975115976115977115978115979115980115981115982115983115984115985115986115987115988115989115990115991115992115993115994115995115996115997115998115999116000116001116002116003116004116005116006116007116008116009116010116011116012116013116014116015116016116017116018116019116020116021116022116023116024116025116026116027116028116029116030116031116032116033116034116035116036116037116038116039116040116041116042116043116044116045116046116047116048116049116050116051116052116053116054116055116056116057116058116059116060116061116062116063116064116065116066116067116068116069116070116071116072116073116074116075116076116077116078116079116080116081116082116083116084116085116086116087116088116089116090116091116092116093116094116095116096116097116098116099116100116101116102116103116104116105116106116107116108116109116110116111116112116113116114116115116116116117116118116119116120116121116122116123116124116125116126116127116128116129116130116131116132116133116134116135116136116137116138116139116140116141116142116143116144116145116146116147116148116149116150116151116152116153116154116155116156116157116158116159116160116161116162116163116164116165116166116167116168116169116170116171116172116173116174116175116176116177116178116179116180116181116182116183116184116185116186116187116188116189116190116191116192116193116194116195116196116197116198116199116200116201116202116203116204116205116206116207116208116209116210116211116212116213116214116215116216116217116218116219116220116221116222116223116224116225116226116227116228116229116230116231116232116233116234116235116236116237116238116239116240116241116242116243116244116245116246116247116248116249116250116251116252116253116254116255116256116257116258116259116260116261116262116263116264116265116266116267116268116269116270116271116272116273116274116275116276116277116278116279116280116281116282116283116284116285116286116287116288116289116290116291116292116293116294116295116296116297116298116299116300116301116302116303116304116305116306116307116308116309116310116311116312116313116314116315116316116317116318116319116320116321116322116323116324116325116326116327116328116329116330116331116332116333116334116335116336116337116338116339116340116341116342116343116344116345116346116347116348116349116350116351116352116353116354116355116356116357116358116359116360116361116362116363116364116365116366116367116368116369116370116371116372116373116374116375116376116377116378116379116380116381116382116383116384116385116386116387116388116389116390116391116392116393116394116395116396116397116398116399116400116401116402116403116404116405116406116407116408116409116410116411116412116413116414116415116416116417116418116419116420116421116422116423116424116425116426116427116428116429116430116431116432116433116434116435116436116437116438116439116440116441116442116443116444116445116446116447116448116449116450116451116452116453116454116455116456116457116458116459116460116461116462116463116464116465116466116467116468116469116470116471116472116473116474116475116476116477116478116479116480116481116482116483116484116485116486116487116488116489116490116491116492116493116494116495116496116497116498116499116500116501116502116503116504116505116506116507116508116509116510116511116512116513116514116515116516116517116518116519116520116521116522116523116524116525116526116527116528116529116530116531116532116533116534116535116536116537116538116539116540116541116542116543116544116545116546116547116548116549116550116551116552116553116554116555116556116557116558116559116560116561116562116563116564116565116566116567116568116569116570116571116572116573116574116575116576116577116578116579116580116581116582116583116584116585116586116587116588116589116590116591116592116593116594116595116596116597116598116599116600116601116602116603116604116605116606116607116608116609116610116611116612116613116614116615116616116617116618116619116620116621116622116623116624116625116626116627116628116629116630116631116632116633116634116635116636116637116638116639116640116641116642116643116644116645116646116647116648116649116650116651116652116653116654116655116656116657116658116659116660116661116662116663116664116665116666116667116668116669116670116671116672116673116674116675116676116677116678116679116680116681116682116683116684116685116686116687116688116689116690116691116692116693116694116695116696116697116698116699116700116701116702116703116704116705116706116707116708116709116710116711116712116713116714116715116716116717116718116719116720116721116722116723116724116725116726116727116728116729116730116731116732116733116734116735116736116737116738116739116740116741116742116743116744116745116746116747116748116749116750116751116752116753116754116755116756116757116758116759116760116761116762116763116764116765116766116767116768116769116770116771116772116773116774116775116776116777116778116779116780116781116782116783116784116785116786116787116788116789116790116791116792116793116794116795116796116797116798116799116800116801116802116803116804116805116806116807116808116809116810116811116812116813116814116815116816116817116818116819116820116821116822116823116824116825116826116827116828116829116830116831116832116833116834116835116836116837116838116839116840116841116842116843116844116845116846116847116848116849116850116851116852116853116854116855116856116857116858116859116860116861116862116863116864116865116866116867116868116869116870116871116872116873116874116875116876116877116878116879116880116881116882116883116884116885116886116887116888116889116890116891116892116893116894116895116896116897116898116899116900116901116902116903116904116905116906116907116908116909116910116911116912116913116914116915116916116917116918116919116920116921116922116923116924116925116926116927116928116929116930116931116932116933116934116935116936116937116938116939116940116941116942116943116944116945116946116947116948116949116950116951116952116953116954116955116956116957116958116959116960116961116962116963116964116965116966116967116968116969116970116971116972116973116974116975116976116977116978116979116980116981116982116983116984116985116986116987116988116989116990116991116992116993116994116995116996116997116998116999117000117001117002117003117004117005117006117007117008117009117010117011117012117013117014117015117016117017117018117019117020117021117022117023117024117025117026117027117028117029117030117031117032117033117034117035117036117037117038117039117040117041117042117043117044117045117046117047117048117049117050117051117052117053117054117055117056117057117058117059117060117061117062117063117064117065117066117067117068117069117070117071117072117073117074117075117076117077117078117079117080117081117082117083117084117085117086117087117088117089117090117091117092117093117094117095117096117097117098117099117100117101117102117103117104117105117106117107117108117109117110117111117112117113117114117115117116117117117118117119117120117121117122117123117124117125117126117127117128117129117130117131117132117133117134117135117136117137117138117139117140117141117142117143117144117145117146117147117148117149117150117151117152117153117154117155117156117157117158117159117160117161117162117163117164117165117166117167117168117169117170117171117172117173117174117175117176117177117178117179117180117181117182117183117184117185117186117187117188117189117190117191117192117193117194117195117196117197117198117199117200117201117202117203117204117205117206117207117208117209117210117211117212117213117214117215117216117217117218117219117220117221117222117223117224117225117226117227117228117229117230117231117232117233117234117235117236117237117238117239117240117241117242117243117244117245117246117247117248117249117250117251117252117253117254117255117256117257117258117259117260117261117262117263117264117265117266117267117268117269117270117271117272117273117274117275117276117277117278117279117280117281117282117283117284117285117286117287117288117289117290117291117292117293117294117295117296117297117298117299117300117301117302117303117304117305117306117307117308117309117310117311117312117313117314117315117316117317117318117319117320117321117322117323117324117325117326117327117328117329117330117331117332117333117334117335117336117337117338117339117340117341117342117343117344117345117346117347117348117349117350117351117352117353117354117355117356117357117358117359117360117361117362117363117364117365117366117367117368117369117370117371117372117373117374117375117376117377117378117379117380117381117382117383117384117385117386117387117388117389117390117391117392117393117394117395117396117397117398117399117400117401117402117403117404117405117406117407117408117409117410117411117412117413117414117415117416117417117418117419117420117421117422117423117424117425117426117427117428117429117430117431117432117433117434117435117436117437117438117439117440117441117442117443117444117445117446117447117448117449117450117451117452117453117454117455117456117457117458117459117460117461117462117463117464117465117466117467117468117469117470117471117472117473117474117475117476117477117478117479117480117481117482117483117484117485117486117487117488117489117490117491117492117493117494117495117496117497117498117499117500117501117502117503117504117505117506117507117508117509117510117511117512117513117514117515117516117517117518117519117520117521117522117523117524117525117526117527117528117529117530117531117532117533117534117535117536117537117538117539117540117541117542117543117544117545117546117547117548117549117550117551117552117553117554117555117556117557117558117559117560117561117562117563117564117565117566117567117568117569117570117571117572117573117574117575117576117577117578117579117580117581117582117583117584117585117586117587117588117589117590117591117592117593117594117595117596117597117598117599117600117601117602117603117604117605117606117607117608117609117610117611117612117613117614117615117616117617117618117619117620117621117622117623117624117625117626117627117628117629117630117631117632117633117634117635117636117637117638117639117640117641117642117643117644117645117646117647117648117649117650117651117652117653117654117655117656117657117658117659117660117661117662117663117664117665117666117667117668117669117670117671117672117673117674117675117676117677117678117679117680117681117682117683117684117685117686117687117688117689117690117691117692117693117694117695117696117697117698117699117700117701117702117703117704117705117706117707117708117709117710117711117712117713117714117715117716117717117718117719117720117721117722117723117724117725117726117727117728117729117730117731117732117733117734117735117736117737117738117739117740117741117742117743117744117745117746117747117748117749117750117751117752117753117754117755117756117757117758117759117760117761117762117763117764117765117766117767117768117769117770117771117772117773117774117775117776117777117778117779117780117781117782117783117784117785117786117787117788117789117790117791117792117793117794117795117796117797117798117799117800117801117802117803117804117805117806117807117808117809117810117811117812117813117814117815117816117817117818117819117820117821117822117823117824117825117826117827117828117829117830117831117832117833117834117835117836117837117838117839117840117841117842117843117844117845117846117847117848117849117850117851117852117853117854117855117856117857117858117859117860117861117862117863117864117865117866117867117868117869117870117871117872117873117874117875117876117877117878117879117880117881117882117883117884117885117886117887117888117889117890117891117892117893117894117895117896117897117898117899117900117901117902117903117904117905117906117907117908117909117910117911117912117913117914117915117916117917117918117919117920117921117922117923117924117925117926117927117928117929117930117931117932117933117934117935117936117937117938117939117940117941117942117943117944117945117946117947117948117949117950117951117952117953117954117955117956117957117958117959117960117961117962117963117964117965117966117967117968117969117970117971117972117973117974117975117976117977117978117979117980117981117982117983117984117985117986117987117988117989117990117991117992117993117994117995117996117997117998117999118000118001118002118003118004118005118006118007118008118009118010118011118012118013118014118015118016118017118018118019118020118021118022118023118024118025118026118027118028118029118030118031118032118033118034118035118036118037118038118039118040118041118042118043118044118045118046118047118048118049118050118051118052118053118054118055118056118057118058118059118060118061118062118063118064118065118066118067118068118069118070118071118072118073118074118075118076118077118078118079118080118081118082118083118084118085118086118087118088118089118090118091118092118093118094118095118096118097118098118099118100118101118102118103118104118105118106118107118108118109118110118111118112118113118114118115118116118117118118118119118120118121118122118123118124118125118126118127118128118129118130118131118132118133118134118135118136118137118138118139118140118141118142118143118144118145118146118147118148118149118150118151118152118153118154118155118156118157118158118159118160118161118162118163118164118165118166118167118168118169118170118171118172118173118174118175118176118177118178118179118180118181118182118183118184118185118186118187118188118189118190118191118192118193118194118195118196118197118198118199118200118201118202118203118204118205118206118207118208118209118210118211118212118213118214118215118216118217118218118219118220118221118222118223118224118225118226118227118228118229118230118231118232118233118234118235118236118237118238118239118240118241118242118243118244118245118246118247118248118249118250118251118252118253118254118255118256118257118258118259118260118261118262118263118264118265118266118267118268118269118270118271118272118273118274118275118276118277118278118279118280118281118282118283118284118285118286118287118288118289118290118291118292118293118294118295118296118297118298118299118300118301118302118303118304118305118306118307118308118309118310118311118312118313118314118315118316118317118318118319118320118321118322118323118324118325118326118327118328118329118330118331118332118333118334118335118336118337118338118339118340118341118342118343118344118345118346118347118348118349118350118351118352118353118354118355118356118357118358118359118360118361118362118363118364118365118366118367118368118369118370118371118372118373118374118375118376118377118378118379118380118381118382118383118384118385118386118387118388118389118390118391118392118393118394118395118396118397118398118399118400118401118402118403118404118405118406118407118408118409118410118411118412118413118414118415118416118417118418118419118420118421118422118423118424118425118426118427118428118429118430118431118432118433118434118435118436118437118438118439118440118441118442118443118444118445118446118447118448118449118450118451118452118453118454118455118456118457118458118459118460118461118462118463118464118465118466118467118468118469118470118471118472118473118474118475118476118477118478118479118480118481118482118483118484118485118486118487118488118489118490118491118492118493118494118495118496118497118498118499118500118501118502118503118504118505118506118507118508118509118510118511118512118513118514118515118516118517118518118519118520118521118522118523118524118525118526118527118528118529118530118531118532118533118534118535118536118537118538118539118540118541118542118543118544118545118546118547118548118549118550118551118552118553118554118555118556118557118558118559118560118561118562118563118564118565118566118567118568118569118570118571118572118573118574118575118576118577118578118579118580118581118582118583118584118585118586118587118588118589118590118591118592118593118594118595118596118597118598118599118600118601118602118603118604118605118606118607118608118609118610118611118612118613118614118615118616118617118618118619118620118621118622118623118624118625118626118627118628118629118630118631118632118633118634118635118636118637118638118639118640118641118642118643118644118645118646118647118648118649118650118651118652118653118654118655118656118657118658118659118660118661118662118663118664118665118666118667118668118669118670118671118672118673118674118675118676118677118678118679118680118681118682118683118684118685118686118687118688118689118690118691118692118693118694118695118696118697118698118699118700118701118702118703118704118705118706118707118708118709118710118711118712118713118714118715118716118717118718118719118720118721118722118723118724118725118726118727118728118729118730118731118732118733118734118735118736118737118738118739118740118741118742118743118744118745118746118747118748118749118750118751118752118753118754118755118756118757118758118759118760118761118762118763118764118765118766118767118768118769118770118771118772118773118774118775118776118777118778118779118780118781118782118783118784118785118786118787118788118789118790118791118792118793118794118795118796118797118798118799118800118801118802118803118804118805118806118807118808118809118810118811118812118813118814118815118816118817118818118819118820118821118822118823118824118825118826118827118828118829118830118831118832118833118834118835118836118837118838118839118840118841118842118843118844118845118846118847118848118849118850118851118852118853118854118855118856118857118858118859118860118861118862118863118864118865118866118867118868118869118870118871118872118873118874118875118876118877118878118879118880118881118882118883118884118885118886118887118888118889118890118891118892118893118894118895118896118897118898118899118900118901118902118903118904118905118906118907118908118909118910118911118912118913118914118915118916118917118918118919118920118921118922118923118924118925118926118927118928118929118930118931118932118933118934118935118936118937118938118939118940118941118942118943118944118945118946118947118948118949118950118951118952118953118954118955118956118957118958118959118960118961118962118963118964118965118966118967118968118969118970118971118972118973118974118975118976118977118978118979118980118981118982118983118984118985118986118987118988118989118990118991118992118993118994118995118996118997118998118999119000119001119002119003119004119005119006119007119008119009119010119011119012119013119014119015119016119017119018119019119020119021119022119023119024119025119026119027119028119029119030119031119032119033119034119035119036119037119038119039119040119041119042119043119044119045119046119047119048119049119050119051119052119053119054119055119056119057119058119059119060119061119062119063119064119065119066119067119068119069119070119071119072119073119074119075119076119077119078119079119080119081119082119083119084119085119086119087119088119089119090119091119092119093119094119095119096119097119098119099119100119101119102119103119104119105119106119107119108119109119110119111119112119113119114119115119116119117119118119119119120119121119122119123119124119125119126119127119128119129119130119131119132119133119134119135119136119137119138119139119140119141119142119143119144119145119146119147119148119149119150119151119152119153119154119155119156119157119158119159119160119161119162119163119164119165119166119167119168119169119170119171119172119173119174119175119176119177119178119179119180119181119182119183119184119185119186119187119188119189119190119191119192119193119194119195119196119197119198119199119200119201119202119203119204119205119206119207119208119209119210119211119212119213119214119215119216119217119218119219119220119221119222119223119224119225119226119227119228119229119230119231119232119233119234119235119236119237119238119239119240119241119242119243119244119245119246119247119248119249119250119251119252119253119254119255119256119257119258119259119260119261119262119263119264119265119266119267119268119269119270119271119272119273119274119275119276119277119278119279119280119281119282119283119284119285119286119287119288119289119290119291119292119293119294119295119296119297119298119299119300119301119302119303119304119305119306119307119308119309119310119311119312119313119314119315119316119317119318119319119320119321119322119323119324119325119326119327119328119329119330119331119332119333119334119335119336119337119338119339119340119341119342119343119344119345119346119347119348119349119350119351119352119353119354119355119356119357119358119359119360119361119362119363119364119365119366119367119368119369119370119371119372119373119374119375119376119377119378119379119380119381119382119383119384119385119386119387119388119389119390119391119392119393119394119395119396119397119398119399119400119401119402119403119404119405119406119407119408119409119410119411119412119413119414119415119416119417119418119419119420119421119422119423119424119425119426119427119428119429119430119431119432119433119434119435119436119437119438119439119440119441119442119443119444119445119446119447119448119449119450119451119452119453119454119455119456119457119458119459119460119461119462119463119464119465119466119467119468119469119470119471119472119473119474119475119476119477119478119479119480119481119482119483119484119485119486119487119488119489119490119491119492119493119494119495119496119497119498119499119500119501119502119503119504119505119506119507119508119509119510119511119512119513119514119515119516119517119518119519119520119521119522119523119524119525119526119527119528119529119530119531119532119533119534119535119536119537119538119539119540119541119542119543119544119545119546119547119548119549119550119551119552119553119554119555119556119557119558119559119560119561119562119563119564119565119566119567119568119569119570119571119572119573119574119575119576119577119578119579119580119581119582119583119584119585119586119587119588119589119590119591119592119593119594119595119596119597119598119599119600119601119602119603119604119605119606119607119608119609119610119611119612119613119614119615119616119617119618119619119620119621119622119623119624119625119626119627119628119629119630119631119632119633119634119635119636119637119638119639119640119641119642119643119644119645119646119647119648119649119650119651119652119653119654119655119656119657119658119659119660119661119662119663119664119665119666119667119668119669119670119671119672119673119674119675119676119677119678119679119680119681119682119683119684119685119686119687119688119689119690119691119692119693119694119695119696119697119698119699119700119701119702119703119704119705119706119707119708119709119710119711119712119713119714119715119716119717119718119719119720119721119722119723119724119725119726119727119728119729119730119731119732119733119734119735119736119737119738119739119740119741119742119743119744119745119746119747119748119749119750119751119752119753119754119755119756119757119758119759119760119761119762119763119764119765119766119767119768119769119770119771119772119773119774119775119776119777119778119779119780119781119782119783119784119785119786119787119788119789119790119791119792119793119794119795119796119797119798119799119800119801119802119803119804119805119806119807119808119809119810119811119812119813119814119815119816119817119818119819119820119821119822119823119824119825119826119827119828119829119830119831119832119833119834119835119836119837119838119839119840119841119842119843119844119845119846119847119848119849119850119851119852119853119854119855119856119857119858119859119860119861119862119863119864119865119866119867119868119869119870119871119872119873119874119875119876119877119878119879119880119881119882119883119884119885119886119887119888119889119890119891119892119893119894119895119896119897119898119899119900119901119902119903119904119905119906119907119908119909119910119911119912119913119914119915119916119917119918119919119920119921119922119923119924119925119926119927119928119929119930119931119932119933119934119935119936119937119938119939119940119941119942119943119944119945119946119947119948119949119950119951119952119953119954119955119956119957119958119959119960119961119962119963119964119965119966119967119968119969119970119971119972119973119974119975119976119977119978119979119980119981119982119983119984119985119986119987119988119989119990119991119992119993119994119995119996119997119998119999120000120001120002120003120004120005120006120007120008120009120010120011120012120013120014120015120016120017120018120019120020120021120022120023120024120025120026120027120028120029120030120031120032120033120034120035120036120037120038120039120040120041120042120043120044120045120046120047120048120049120050120051120052120053120054120055120056120057120058120059120060120061120062120063120064120065120066120067120068120069120070120071120072120073120074120075120076120077120078120079120080120081120082120083120084120085120086120087120088120089120090120091120092120093120094120095120096120097120098120099120100120101120102120103120104120105120106120107120108120109120110120111120112120113120114120115120116120117120118120119120120120121120122120123120124120125120126120127120128120129120130120131120132120133120134120135120136120137120138120139120140120141120142120143120144120145120146120147120148120149120150120151120152120153120154120155120156120157120158120159120160120161120162120163120164120165120166120167120168120169120170120171120172120173120174120175120176120177120178120179120180120181120182120183120184120185120186120187120188120189120190120191120192120193120194120195120196120197120198120199120200120201120202120203120204120205120206120207120208120209120210120211120212120213120214120215120216120217120218120219120220120221120222120223120224120225120226120227120228120229120230120231120232120233120234120235120236120237120238120239120240120241120242120243120244120245120246120247120248120249120250120251120252120253120254120255120256120257120258120259120260120261120262120263120264120265120266120267120268120269120270120271120272120273120274120275120276120277120278120279120280120281120282120283120284120285120286120287120288120289120290120291120292120293120294120295120296120297120298120299120300120301120302120303120304120305120306120307120308120309120310120311120312120313120314120315120316120317120318120319120320120321120322120323120324120325120326120327120328120329120330120331120332120333120334120335120336120337120338120339120340120341120342120343120344120345120346120347120348120349120350120351120352120353120354120355120356120357120358120359120360120361120362120363120364120365120366120367120368120369120370120371120372120373120374120375120376120377120378120379120380120381120382120383120384120385120386120387120388120389120390120391120392120393120394120395120396120397120398120399120400120401120402120403120404120405120406120407120408120409120410120411120412120413120414120415120416120417120418120419120420120421120422120423120424120425120426120427120428120429120430120431120432120433120434120435120436120437120438120439120440120441120442120443120444120445120446120447120448120449120450120451120452120453120454120455120456120457120458120459120460120461120462120463120464120465120466120467120468120469120470120471120472120473120474120475120476120477120478120479120480120481120482120483120484120485120486120487120488120489120490120491120492120493120494120495120496120497120498120499120500120501120502120503120504120505120506120507120508120509120510120511120512120513120514120515120516120517120518120519120520120521120522120523120524120525120526120527120528120529120530120531120532120533120534120535120536120537120538120539120540120541120542120543120544120545120546120547120548120549120550120551120552120553120554120555120556120557120558120559120560120561120562120563120564120565120566120567120568120569120570120571120572120573120574120575120576120577120578120579120580120581120582120583120584120585120586120587120588120589120590120591120592120593120594120595120596120597120598120599120600120601120602120603120604120605120606120607120608120609120610120611120612120613120614120615120616120617120618120619120620120621120622120623120624120625120626120627120628120629120630120631120632120633120634120635120636120637120638120639120640120641120642120643120644120645120646120647120648120649120650120651120652120653120654120655120656120657120658120659120660120661120662120663120664120665120666120667120668120669120670120671120672120673120674120675120676120677120678120679120680120681120682120683120684120685120686120687120688120689120690120691120692120693120694120695120696120697120698120699120700120701120702120703120704120705120706120707120708120709120710120711120712120713120714120715120716120717120718120719120720120721120722120723120724120725120726120727120728120729120730120731120732120733120734120735120736120737120738120739120740120741120742120743120744120745120746120747120748120749120750120751120752120753120754120755120756120757120758120759120760120761120762120763120764120765120766120767120768120769120770120771120772120773120774120775120776120777120778120779120780120781120782120783120784120785120786120787120788120789120790120791120792120793120794120795120796120797120798120799120800120801120802120803120804120805120806120807120808120809120810120811120812120813120814120815120816120817120818120819120820120821120822120823120824120825120826120827120828120829120830120831120832120833120834120835120836120837120838120839120840120841120842120843120844120845120846120847120848120849120850120851120852120853120854120855120856120857120858120859120860120861120862120863120864120865120866120867120868120869120870120871120872120873120874120875120876120877120878120879120880120881120882120883120884120885120886120887120888120889120890120891120892120893120894120895120896120897120898120899120900120901120902120903120904120905120906120907120908120909120910120911120912120913120914120915120916120917120918120919120920120921120922120923120924120925120926120927120928120929120930120931120932120933120934120935120936120937120938120939120940120941120942120943120944120945120946120947120948120949120950120951120952120953120954120955120956120957120958120959120960120961120962120963120964120965120966120967120968120969120970120971120972120973120974120975120976120977120978120979120980120981120982120983120984120985120986120987120988120989120990120991120992120993120994120995120996120997120998120999121000121001121002121003121004121005121006121007121008121009121010121011121012121013121014121015121016121017121018121019121020121021121022121023121024121025121026121027121028121029121030121031121032121033121034121035121036121037121038121039121040121041121042121043121044121045121046121047121048121049121050121051121052121053121054121055121056121057121058121059121060121061121062121063121064121065121066121067121068121069121070121071121072121073121074121075121076121077121078121079121080121081121082121083121084121085121086121087121088121089121090121091121092121093121094121095121096121097121098121099121100121101121102121103121104121105121106121107121108121109121110121111121112121113121114121115121116121117121118121119121120121121121122121123121124121125121126121127121128121129121130121131121132121133121134121135121136121137121138121139121140121141121142121143121144121145121146121147121148121149121150121151121152121153121154121155121156121157121158121159121160121161121162121163121164121165121166121167121168121169121170121171121172121173121174121175121176121177121178121179121180121181121182121183121184121185121186121187121188121189121190121191121192121193121194121195121196121197121198121199121200121201121202121203121204121205121206121207121208121209121210121211121212121213121214121215121216121217121218121219121220121221121222121223121224121225121226121227121228121229121230121231121232121233121234121235121236121237121238121239121240121241121242121243121244121245121246121247121248121249121250121251121252121253121254121255121256121257121258121259121260121261121262121263121264121265121266121267121268121269121270121271121272121273121274121275121276121277121278121279121280121281121282121283121284121285121286121287121288121289121290121291121292121293121294121295121296121297121298121299121300121301121302121303121304121305121306121307121308121309121310121311121312121313121314121315121316121317121318121319121320121321121322121323121324121325121326121327121328121329121330121331121332121333121334121335121336121337121338121339121340121341121342121343121344121345121346121347121348121349121350121351121352121353121354121355121356121357121358121359121360121361121362121363121364121365121366121367121368121369121370121371121372121373121374121375121376121377121378121379121380121381121382121383121384121385121386121387121388121389121390121391121392121393121394121395121396121397121398121399121400121401121402121403121404121405121406121407121408121409121410121411121412121413121414121415121416121417121418121419121420121421121422121423121424121425121426121427121428121429121430121431121432121433121434121435121436121437121438121439121440121441121442121443121444121445121446121447121448121449121450121451121452121453121454121455121456121457121458121459121460121461121462121463121464121465121466121467121468121469121470121471121472121473121474121475121476121477121478121479121480121481121482121483121484121485121486121487121488121489121490121491121492121493121494121495121496121497121498121499121500121501121502121503121504121505121506121507121508121509121510121511121512121513121514121515121516121517121518121519121520121521121522121523121524121525121526121527121528121529121530121531121532121533121534121535121536121537121538121539121540121541121542121543121544121545121546121547121548121549121550121551121552121553121554121555121556121557121558121559121560121561121562121563121564121565121566121567121568121569121570121571121572121573121574121575121576121577121578121579121580121581121582121583121584121585121586121587121588121589121590121591121592121593121594121595121596121597121598121599121600121601121602121603121604121605121606121607121608121609121610121611121612121613121614121615121616121617121618121619121620121621121622121623121624121625121626121627121628121629121630121631121632121633121634121635121636121637121638121639121640121641121642121643121644121645121646121647121648121649121650121651121652121653121654121655121656121657121658121659121660121661121662121663121664121665121666121667121668121669121670121671121672121673121674121675121676121677121678121679121680121681121682121683121684121685121686121687121688121689121690121691121692121693121694121695121696121697121698121699121700121701121702121703121704121705121706121707121708121709121710121711121712121713121714121715121716121717121718121719121720121721121722121723121724121725121726121727121728121729121730121731121732121733121734121735121736121737121738121739121740121741121742121743121744121745121746121747121748121749121750121751121752121753121754121755121756121757121758121759121760121761121762121763121764121765121766121767121768121769121770121771121772121773121774121775121776121777121778121779121780121781121782121783121784121785121786121787121788121789121790121791121792121793121794121795121796121797121798121799121800121801121802121803121804121805121806121807121808121809121810121811121812121813121814121815121816121817121818121819121820121821121822121823121824121825121826121827121828121829121830121831121832121833121834121835121836121837121838121839121840121841121842121843121844121845121846121847121848121849121850121851121852121853121854121855121856121857121858121859121860121861121862121863121864121865121866121867121868121869121870121871121872121873121874121875121876121877121878121879121880121881121882121883121884121885121886121887121888121889121890121891121892121893121894121895121896121897121898121899121900121901121902121903121904121905121906121907121908121909121910121911121912121913121914121915121916121917121918121919121920121921121922121923121924121925121926121927121928121929121930121931121932121933121934121935121936121937121938121939121940121941121942121943121944121945121946121947121948121949121950121951121952121953121954121955121956121957121958121959121960121961121962121963121964121965121966121967121968121969121970121971121972121973121974121975121976121977121978121979121980121981121982121983121984121985121986121987121988121989121990121991121992121993121994121995121996121997121998121999122000122001122002122003122004122005122006122007122008122009122010122011122012122013122014122015122016122017122018122019122020122021122022122023122024122025122026122027122028122029122030122031122032122033122034122035122036122037122038122039122040122041122042122043122044122045122046122047122048122049122050122051122052122053122054122055122056122057122058122059122060122061122062122063122064122065122066122067122068122069122070122071122072122073122074122075122076122077122078122079122080122081122082122083122084122085122086122087122088122089122090122091122092122093122094122095122096122097122098122099122100122101122102122103122104122105122106122107122108122109122110122111122112122113122114122115122116122117122118122119122120122121122122122123122124122125122126122127122128122129122130122131122132122133122134122135122136122137122138122139122140122141122142122143122144122145122146122147122148122149122150122151122152122153122154122155122156122157122158122159122160122161122162122163122164122165122166122167122168122169122170122171122172122173122174122175122176122177122178122179122180122181122182122183122184122185122186122187122188122189122190122191122192122193122194122195122196122197122198122199122200122201122202122203122204122205122206122207122208122209122210122211122212122213122214122215122216122217122218122219122220122221122222122223122224122225122226122227122228122229122230122231122232122233122234122235122236122237122238122239122240122241122242122243122244122245122246122247122248122249122250122251122252122253122254122255122256122257122258122259122260122261122262122263122264122265122266122267122268122269122270122271122272122273122274122275122276122277122278122279122280122281122282122283122284122285122286122287122288122289122290122291122292122293122294122295122296122297122298122299122300122301122302122303122304122305122306122307122308122309122310122311122312122313122314122315122316122317122318122319122320122321122322122323122324122325122326122327122328122329122330122331122332122333122334122335122336122337122338122339122340122341122342122343122344122345122346122347122348122349122350122351122352122353122354122355122356122357122358122359122360122361122362122363122364122365122366122367122368122369122370122371122372122373122374122375122376122377122378122379122380122381122382122383122384122385122386122387122388122389122390122391122392122393122394122395122396122397122398122399122400122401122402122403122404122405122406122407122408122409122410122411122412122413122414122415122416122417122418122419122420122421122422122423122424122425122426122427122428122429122430122431122432122433122434122435122436122437122438122439122440122441122442122443122444122445122446122447122448122449122450122451122452122453122454122455122456122457122458122459122460122461122462122463122464122465122466122467122468122469122470122471122472122473122474122475122476122477122478122479122480122481122482122483122484122485122486122487122488122489122490122491122492122493122494122495122496122497122498122499122500122501122502122503122504122505122506122507122508122509122510122511122512122513122514122515122516122517122518122519122520122521122522122523122524122525122526122527122528122529122530122531122532122533122534122535122536122537122538122539122540122541122542122543122544122545122546122547122548122549122550122551122552122553122554122555122556122557122558122559122560122561122562122563122564122565122566122567122568122569122570122571122572122573122574122575122576122577122578122579122580122581122582122583122584122585122586122587122588122589122590122591122592122593122594122595122596122597122598122599122600122601122602122603122604122605122606122607122608122609122610122611122612122613122614122615122616122617122618122619122620122621122622122623122624122625122626122627122628122629122630122631122632122633122634122635122636122637122638122639122640122641122642122643122644122645122646122647122648122649122650122651122652122653122654122655122656122657122658122659122660122661122662122663122664122665122666122667122668122669122670122671122672122673122674122675122676122677122678122679122680122681122682122683122684122685122686122687122688122689122690122691122692122693122694122695122696122697122698122699122700122701122702122703122704122705122706122707122708122709122710122711122712122713122714122715122716122717122718122719122720122721122722122723122724122725122726122727122728122729122730122731122732122733122734122735122736122737122738122739122740122741122742122743122744122745122746122747122748122749122750122751122752122753122754122755122756122757122758122759122760122761122762122763122764122765122766122767122768122769122770122771122772122773122774122775122776122777122778122779122780122781122782122783122784122785122786122787122788122789122790122791122792122793122794122795122796122797122798122799122800122801122802122803122804122805122806122807122808122809122810122811122812122813122814122815122816122817122818122819122820122821122822122823122824122825122826122827122828122829122830122831122832122833122834122835122836122837122838122839122840122841122842122843122844122845122846122847122848122849122850122851122852122853122854122855122856122857122858122859122860122861122862122863122864122865122866122867122868122869122870122871122872122873122874122875122876122877122878122879122880122881122882122883122884122885122886122887122888122889122890122891122892122893122894122895122896122897122898122899122900122901122902122903122904122905122906122907122908122909122910122911122912122913122914122915122916122917122918122919122920122921122922122923122924122925122926122927122928122929122930122931122932122933122934122935122936122937122938122939122940122941122942122943122944122945122946122947122948122949122950122951122952122953122954122955122956122957122958122959122960122961122962122963122964122965122966122967122968122969122970122971122972122973122974122975122976122977122978122979122980122981122982122983122984122985122986122987122988122989122990122991122992122993122994122995122996122997122998122999123000123001123002123003123004123005123006123007123008123009123010123011123012123013123014123015123016123017123018123019123020123021123022123023123024123025123026123027123028123029123030123031123032123033123034123035123036123037123038123039123040123041123042123043123044123045123046123047123048123049123050123051123052123053123054123055123056123057123058123059123060123061123062123063123064123065123066123067123068123069123070123071123072123073123074123075123076123077123078123079123080123081123082123083123084123085123086123087123088123089123090123091123092123093123094123095123096123097123098123099123100123101123102123103123104123105123106123107123108123109123110123111123112123113123114123115123116123117123118123119123120123121123122123123123124123125123126123127123128123129123130123131123132123133123134123135123136123137123138123139123140123141123142123143123144123145123146123147123148123149123150123151123152123153123154123155123156123157123158123159123160123161123162123163123164123165123166123167123168123169123170123171123172123173123174123175123176123177123178123179123180123181123182123183123184123185123186123187123188123189123190123191123192123193123194123195123196123197123198123199123200123201123202123203123204123205123206123207123208123209123210123211123212123213123214123215123216123217123218123219123220123221123222123223123224123225123226123227123228123229123230123231123232123233123234123235123236123237123238123239123240123241123242123243123244123245123246123247123248123249123250123251123252123253123254123255123256123257123258123259123260123261123262123263123264123265123266123267123268123269123270123271123272123273123274123275123276123277123278123279123280123281123282123283123284123285123286123287123288123289123290123291123292123293123294123295123296123297123298123299123300123301123302123303123304123305123306123307123308123309123310123311123312123313123314123315123316123317123318123319123320123321123322123323123324123325123326123327123328123329123330123331123332123333123334123335123336123337123338123339123340123341123342123343123344123345123346123347123348123349123350123351123352123353123354123355123356123357123358123359123360123361123362123363123364123365123366123367123368123369123370123371123372123373123374123375123376123377123378123379123380123381123382123383123384123385123386123387123388123389123390123391123392123393123394123395123396123397123398123399123400123401123402123403123404123405123406123407123408123409123410123411123412123413123414123415123416123417123418123419123420123421123422123423123424123425123426123427123428123429123430123431123432123433123434123435123436123437123438123439123440123441123442123443123444123445123446123447123448123449123450123451123452123453123454123455123456123457123458123459123460123461123462123463123464123465123466123467123468123469123470123471123472123473123474123475123476123477123478123479123480123481123482123483123484123485123486123487123488123489123490123491123492123493123494123495123496123497123498123499123500123501123502123503123504123505123506123507123508123509123510123511123512123513123514123515123516123517123518123519123520123521123522123523123524123525123526123527123528123529123530123531123532123533123534123535123536123537123538123539123540123541123542123543123544123545123546123547123548123549123550123551123552123553123554123555123556123557123558123559123560123561123562123563123564123565123566123567123568123569123570123571123572123573123574123575123576123577123578123579123580123581123582123583123584123585123586123587123588123589123590123591123592123593123594123595123596123597123598123599123600123601123602123603123604123605123606123607123608123609123610123611123612123613123614123615123616123617123618123619123620123621123622123623123624123625123626123627123628123629123630123631123632123633123634123635123636123637123638123639123640123641123642123643123644123645123646123647123648123649123650123651123652123653123654123655123656123657123658123659123660123661123662123663123664123665123666123667123668123669123670123671123672123673123674123675123676123677123678123679123680123681123682123683123684123685123686123687123688123689123690123691123692123693123694123695123696123697123698123699123700123701123702123703123704123705123706123707123708123709123710123711123712123713123714123715123716123717123718123719123720123721123722123723123724123725123726123727123728123729123730123731123732123733123734123735123736123737123738123739123740123741123742123743123744123745123746123747123748123749123750123751123752123753123754123755123756123757123758123759123760123761123762123763123764123765123766123767123768123769123770123771123772123773123774123775123776123777123778123779123780123781123782123783123784123785123786123787123788123789123790123791123792123793123794123795123796123797123798123799123800123801123802123803123804123805123806123807123808123809123810123811123812123813123814123815123816123817123818123819123820123821123822123823123824123825123826123827123828123829123830123831123832123833123834123835123836123837123838123839123840123841123842123843123844123845123846123847123848123849123850123851123852123853123854123855123856123857123858123859123860123861123862123863123864123865123866123867123868123869123870123871123872123873123874123875123876123877123878123879123880123881123882123883123884123885123886123887123888123889123890123891123892123893123894123895123896123897123898123899123900123901123902123903123904123905123906123907123908123909123910123911123912123913123914123915123916123917123918123919123920123921123922123923123924123925123926123927123928123929123930123931123932123933123934123935123936123937123938123939123940123941123942123943123944123945123946123947123948123949123950123951123952123953123954123955123956123957123958123959123960123961123962123963123964123965123966123967123968123969123970123971123972123973123974123975123976123977123978123979123980123981123982123983123984123985123986123987123988123989123990123991123992123993123994123995123996123997123998123999124000124001124002124003124004124005124006124007124008124009124010124011124012124013124014124015124016124017124018124019124020124021124022124023124024124025124026124027124028124029124030124031124032124033124034124035124036124037124038124039124040124041124042124043124044124045124046124047124048124049124050124051124052124053124054124055124056124057124058124059124060124061124062124063124064124065124066124067124068124069124070124071124072124073124074124075124076124077124078124079124080124081124082124083124084124085124086124087124088124089124090124091124092124093124094124095124096124097124098124099124100124101124102124103124104124105124106124107124108124109124110124111124112124113124114124115124116124117124118124119124120124121124122124123124124124125124126124127124128124129124130124131124132124133124134124135124136124137124138124139124140124141124142124143124144124145124146124147124148124149124150124151124152124153124154124155124156124157124158124159124160124161124162124163124164124165124166124167124168124169124170124171124172124173124174124175124176124177124178124179124180124181124182124183124184124185124186124187124188124189124190124191124192124193124194124195124196124197124198124199124200124201124202124203124204124205124206124207124208124209124210124211124212124213124214124215124216124217124218124219124220124221124222124223124224124225124226124227124228124229124230124231124232124233124234124235124236124237124238124239124240124241124242124243124244124245124246124247124248124249124250124251124252124253124254124255124256124257124258124259124260124261124262124263124264124265124266124267124268124269124270124271124272124273124274124275124276124277124278124279124280124281124282124283124284124285124286124287124288124289124290124291124292124293124294124295124296124297124298124299124300124301124302124303124304124305124306124307124308124309124310124311124312124313124314124315124316124317124318124319124320124321124322124323124324124325124326124327124328124329124330124331124332124333124334124335124336124337124338124339124340124341124342124343124344124345124346124347124348124349124350124351124352124353124354124355124356124357124358124359124360124361124362124363124364124365124366124367124368124369124370124371124372124373124374124375124376124377124378124379124380124381124382124383124384124385124386124387124388124389124390124391124392124393124394124395124396124397124398124399124400124401124402124403124404124405124406124407124408124409124410124411124412124413124414124415124416124417124418124419124420124421124422124423124424124425124426124427124428124429124430124431124432124433124434124435124436124437124438124439124440124441124442124443124444124445124446124447124448124449124450124451124452124453124454124455124456124457124458124459124460124461124462124463124464124465124466124467124468124469124470124471124472124473124474124475124476124477124478124479124480124481124482124483124484124485124486124487124488124489124490124491124492124493124494124495124496124497124498124499124500124501124502124503124504124505124506124507124508124509124510124511124512124513124514124515124516124517124518124519124520124521124522124523124524124525124526124527124528124529124530124531124532124533124534124535124536124537124538124539124540124541124542124543124544124545124546124547124548124549124550124551124552124553124554124555124556124557124558124559124560124561124562124563124564124565124566124567124568124569124570124571124572124573124574124575124576124577124578124579124580124581124582124583124584124585124586124587124588124589124590124591124592124593124594124595124596124597124598124599124600124601124602124603124604124605124606124607124608124609124610124611124612124613124614124615124616124617124618124619124620124621124622124623124624124625124626124627124628124629124630124631124632124633124634124635124636124637124638124639124640124641124642124643124644124645124646124647124648124649124650124651124652124653124654124655124656124657124658124659124660124661124662124663124664124665124666124667124668124669124670124671124672124673124674124675124676124677124678124679124680124681124682124683124684124685124686124687124688124689124690124691124692124693124694124695124696124697124698124699124700124701124702124703124704124705124706124707124708124709124710124711124712124713124714124715124716124717124718124719124720124721124722124723124724124725124726124727124728124729124730124731124732124733124734124735124736124737124738124739124740124741124742124743124744124745124746124747124748124749124750124751124752124753124754124755124756124757124758124759124760124761124762124763124764124765124766124767124768124769124770124771124772124773124774124775124776124777124778124779124780124781124782124783124784124785124786124787124788124789124790124791124792124793124794124795124796124797124798124799124800124801124802124803124804124805124806124807124808124809124810124811124812124813124814124815124816124817124818124819124820124821124822124823124824124825124826124827124828124829124830124831124832124833124834124835124836124837124838124839124840124841124842124843124844124845124846124847124848124849124850124851124852124853124854124855124856124857124858124859124860124861124862124863124864124865124866124867124868124869124870124871124872124873124874124875124876124877124878124879124880124881124882124883124884124885124886124887124888124889124890124891124892124893124894124895124896124897124898124899124900124901124902124903124904124905124906124907124908124909124910124911124912124913124914124915124916124917124918124919124920124921124922124923124924124925124926124927124928124929124930124931124932124933124934124935124936124937124938124939124940124941124942124943124944124945124946124947124948124949124950124951124952124953124954124955124956124957124958124959124960124961124962124963124964124965124966124967124968124969124970124971124972124973124974124975124976124977124978124979124980124981124982124983124984124985124986124987124988124989124990124991124992124993124994124995124996124997124998124999125000125001125002125003125004125005125006125007125008125009125010125011125012125013125014125015125016125017125018125019125020125021125022125023125024125025125026125027125028125029125030125031125032125033125034125035125036125037125038125039125040125041125042125043125044125045125046125047125048125049125050125051125052125053125054125055125056125057125058125059125060125061125062125063125064125065125066125067125068125069125070125071125072125073125074125075125076125077125078125079125080125081125082125083125084125085125086125087125088125089125090125091125092125093125094125095125096125097125098125099125100125101125102125103125104125105125106125107125108125109125110125111125112125113125114125115125116125117125118125119125120125121125122125123125124125125125126125127125128125129125130125131125132125133125134125135125136125137125138125139125140125141125142125143125144125145125146125147125148125149125150125151125152125153125154125155125156125157125158125159125160125161125162125163125164125165125166125167125168125169125170125171125172125173125174125175125176125177125178125179125180125181125182125183125184125185125186125187125188125189125190125191125192125193125194125195125196125197125198125199125200125201125202125203125204125205125206125207125208125209125210125211125212125213125214125215125216125217125218125219125220125221125222125223125224125225125226125227125228125229125230125231125232125233125234125235125236125237125238125239125240125241125242125243125244125245125246125247125248125249125250125251125252125253125254125255125256125257125258125259125260125261125262125263125264125265125266125267125268125269125270125271125272125273125274125275125276125277125278125279125280125281125282125283125284125285125286125287125288125289125290125291125292125293125294125295125296125297125298125299125300125301125302125303125304125305125306125307125308125309125310125311125312125313125314125315125316125317125318125319125320125321125322125323125324125325125326125327125328125329125330125331125332125333125334125335125336125337125338125339125340125341125342125343125344125345125346125347125348125349125350125351125352125353125354125355125356125357125358125359125360125361125362125363125364125365125366125367125368125369125370125371125372125373125374125375125376125377125378125379125380125381125382125383125384125385125386125387125388125389125390125391125392125393125394125395125396125397125398125399125400125401125402125403125404125405125406125407125408125409125410125411125412125413125414125415125416125417125418125419125420125421125422125423125424125425125426125427125428125429125430125431125432125433125434125435125436125437125438125439125440125441125442125443125444125445125446125447125448125449125450125451125452125453125454125455125456125457125458125459125460125461125462125463125464125465125466125467125468125469125470125471125472125473125474125475125476125477125478125479125480125481125482125483125484125485125486125487125488125489125490125491125492125493125494125495125496125497125498125499125500125501125502125503125504125505125506125507125508125509125510125511125512125513125514125515125516125517125518125519125520125521125522125523125524125525125526125527125528125529125530125531125532125533125534125535125536125537125538125539125540125541125542125543125544125545125546125547125548125549125550125551125552125553125554125555125556125557125558125559125560125561125562125563125564125565125566125567125568125569125570125571125572125573125574125575125576125577125578125579125580125581125582125583125584125585125586125587125588125589125590125591125592125593125594125595125596125597125598125599125600125601125602125603125604125605125606125607125608125609125610125611125612125613125614125615125616125617125618125619125620125621125622125623125624125625125626125627125628125629125630125631125632125633125634125635125636125637125638125639125640125641125642125643125644125645125646125647125648125649125650125651125652125653125654125655125656125657125658125659125660125661125662125663125664125665125666125667125668125669125670125671125672125673125674125675125676125677125678125679125680125681125682125683125684125685125686125687125688125689125690125691125692125693125694125695125696125697125698125699125700125701125702125703125704125705125706125707125708125709125710125711125712125713125714125715125716125717125718125719125720125721125722125723125724125725125726125727125728125729125730125731125732125733125734125735125736125737125738125739125740125741125742125743125744125745125746125747125748125749125750125751125752125753125754125755125756125757125758125759125760125761125762125763125764125765125766125767125768125769125770125771125772125773125774125775125776125777125778125779125780125781125782125783125784125785125786125787125788125789125790125791125792125793125794125795125796125797125798125799125800125801125802125803125804125805125806125807125808125809125810125811125812125813125814125815125816125817125818125819125820125821125822125823125824125825125826125827125828125829125830125831125832125833125834125835125836125837125838125839125840125841125842125843125844125845125846125847125848125849125850125851125852125853125854125855125856125857125858125859125860125861125862125863125864125865125866125867125868125869125870125871125872125873125874125875125876125877125878125879125880125881125882125883125884125885125886125887125888125889125890125891125892125893125894125895125896125897125898125899125900125901125902125903125904125905125906125907125908125909125910125911125912125913125914125915125916125917125918125919125920125921125922125923125924125925125926125927125928125929125930125931125932125933125934125935125936125937125938125939125940125941125942125943125944125945125946125947125948125949125950125951125952125953125954125955125956125957125958125959125960125961125962125963125964125965125966125967125968125969125970125971125972125973125974125975125976125977125978125979125980125981125982125983125984125985125986125987125988125989125990125991125992125993125994125995125996125997125998125999126000126001126002126003126004126005126006126007126008126009126010126011126012126013126014126015126016126017126018126019126020126021126022126023126024126025126026126027126028126029126030126031126032126033126034126035126036126037126038126039126040126041126042126043126044126045126046126047126048126049126050126051126052126053126054126055126056126057126058126059126060126061126062126063126064126065126066126067126068126069126070126071126072126073126074126075126076126077126078126079126080126081126082126083126084126085126086126087126088126089126090126091126092126093126094126095126096126097126098126099126100126101126102126103126104126105126106126107126108126109126110126111126112126113126114126115126116126117126118126119126120126121126122126123126124126125126126126127126128126129126130126131126132126133126134126135126136126137126138126139126140126141126142126143126144126145126146126147126148126149126150126151126152126153126154126155126156126157126158126159126160126161126162126163126164126165126166126167126168126169126170126171126172126173126174126175126176126177126178126179126180126181126182126183126184126185126186126187126188126189126190126191126192126193126194126195126196126197126198126199126200126201126202126203126204126205126206126207126208126209126210126211126212126213126214126215126216126217126218126219126220126221126222126223126224126225126226126227126228126229126230126231126232126233126234126235126236126237126238126239126240126241126242126243126244126245126246126247126248126249126250126251126252126253126254126255126256126257126258126259126260126261126262126263126264126265126266126267126268126269126270126271126272126273126274126275126276126277126278126279126280126281126282126283126284126285126286126287126288126289126290126291126292126293126294126295126296126297126298126299126300126301126302126303126304126305126306126307126308126309126310126311126312126313126314126315126316126317126318126319126320126321126322126323126324126325126326126327126328126329126330126331126332126333126334126335126336126337126338126339126340126341126342126343126344126345126346126347126348126349126350126351126352126353126354126355126356126357126358126359126360126361126362126363126364126365126366126367126368126369126370126371126372126373126374126375126376126377126378126379126380126381126382126383126384126385126386126387126388126389126390126391126392126393126394126395126396126397126398126399126400126401126402126403126404126405126406126407126408126409126410126411126412126413126414126415126416126417126418126419126420126421126422126423126424126425126426126427126428126429126430126431126432126433126434126435126436126437126438126439126440126441126442126443126444126445126446126447126448126449126450126451126452126453126454126455126456126457126458126459126460126461126462126463126464126465126466126467126468126469126470126471126472126473126474126475126476126477126478126479126480126481126482126483126484126485126486126487126488126489126490126491126492126493126494126495126496126497126498126499126500126501126502126503126504126505126506126507126508126509126510126511126512126513126514126515126516126517126518126519126520126521126522126523126524126525126526126527126528126529126530126531126532126533126534126535126536126537126538126539126540126541126542126543126544126545126546126547126548126549126550126551126552126553126554126555126556126557126558126559126560126561126562126563126564126565126566126567126568126569126570126571126572126573126574126575126576126577126578126579126580126581126582126583126584126585126586126587126588126589126590126591126592126593126594126595126596126597126598126599126600126601126602126603126604126605126606126607126608126609126610126611126612126613126614126615126616126617126618126619126620126621126622126623126624126625126626126627126628126629126630126631126632126633126634126635126636126637126638126639126640126641126642126643126644126645126646126647126648126649126650126651126652126653126654126655126656126657126658126659126660126661126662126663126664126665126666126667126668126669126670126671126672126673126674126675126676126677126678126679126680126681126682126683126684126685126686126687126688126689126690126691126692126693126694126695126696126697126698126699126700126701126702126703126704126705126706126707126708126709126710126711126712126713126714126715126716126717126718126719126720126721126722126723126724126725126726126727126728126729126730126731126732126733126734126735126736126737126738126739126740126741126742126743126744126745126746126747126748126749126750126751126752126753126754126755126756126757126758126759126760126761126762126763126764126765126766126767126768126769126770126771126772126773126774126775126776126777126778126779126780126781126782126783126784126785126786126787126788126789126790126791126792126793126794126795126796126797126798126799126800126801126802126803126804126805126806126807126808126809126810126811126812126813126814126815126816126817126818126819126820126821126822126823126824126825126826126827126828126829126830126831126832126833126834126835126836126837126838126839126840126841126842126843126844126845126846126847126848126849126850126851126852126853126854126855126856126857126858126859126860126861126862126863126864126865126866126867126868126869126870126871126872126873126874126875126876126877126878126879126880126881126882126883126884126885126886126887126888126889126890126891126892126893126894126895126896126897126898126899126900126901126902126903126904126905126906126907126908126909126910126911126912126913126914126915126916126917126918126919126920126921126922126923126924126925126926126927126928126929126930126931126932126933126934126935126936126937126938126939126940126941126942126943126944126945126946126947126948126949126950126951126952126953126954126955126956126957126958126959126960126961126962126963126964126965126966126967126968126969126970126971126972126973126974126975126976126977126978126979126980126981126982126983126984126985126986126987126988126989126990126991126992126993126994126995126996126997126998126999127000127001127002127003127004127005127006127007127008127009127010127011127012127013127014127015127016127017127018127019127020127021127022127023127024127025127026127027127028127029127030127031127032127033127034127035127036127037127038127039127040127041127042127043127044127045127046127047127048127049127050127051127052127053127054127055127056127057127058127059127060127061127062127063127064127065127066127067127068127069127070127071127072127073127074127075127076127077127078127079127080127081127082127083127084127085127086127087127088127089127090127091127092127093127094127095127096127097127098127099127100127101127102127103127104127105127106127107127108127109127110127111127112127113127114127115127116127117127118127119127120127121127122127123127124127125127126127127127128127129127130127131127132127133127134127135127136127137127138127139127140127141127142127143127144127145127146127147127148127149127150127151127152127153127154127155127156127157127158127159127160127161127162127163127164127165127166127167127168127169127170127171127172127173127174127175127176127177127178127179127180127181127182127183127184127185127186127187127188127189127190127191127192127193127194127195127196127197127198127199127200127201127202127203127204127205127206127207127208127209127210127211127212127213127214127215127216127217127218127219127220127221127222127223127224127225127226127227127228127229127230127231127232127233127234127235127236127237127238127239127240127241127242127243127244127245127246127247127248127249127250127251127252127253127254127255127256127257127258127259127260127261127262127263127264127265127266127267127268127269127270127271127272127273127274127275127276127277127278127279127280127281127282127283127284127285127286127287127288127289127290127291127292127293127294127295127296127297127298127299127300127301127302127303127304127305127306127307127308127309127310127311127312127313127314127315127316127317127318127319127320127321127322127323127324127325127326127327127328127329127330127331127332127333127334127335127336127337127338127339127340127341127342127343127344127345127346127347127348127349127350127351127352127353127354127355127356127357127358127359127360127361127362127363127364127365127366127367127368127369127370127371127372127373127374127375127376127377127378127379127380127381127382127383127384127385127386127387127388127389127390127391127392127393127394127395127396127397127398127399127400127401127402127403127404127405127406127407127408127409127410127411127412127413127414127415127416127417127418127419127420127421127422127423127424127425127426127427127428127429127430127431127432127433127434127435127436127437127438127439127440127441127442127443127444127445127446127447127448127449127450127451127452127453127454127455127456127457127458127459127460127461127462127463127464127465127466127467127468127469127470127471127472127473127474127475127476127477127478127479127480127481127482127483127484127485127486127487127488127489127490127491127492127493127494127495127496127497127498127499127500127501127502127503127504127505127506127507127508127509127510127511127512127513127514127515127516127517127518127519127520127521127522127523127524127525127526127527127528127529127530127531127532127533127534127535127536127537127538127539127540127541127542127543127544127545127546127547127548127549127550127551127552127553127554127555127556127557127558127559127560127561127562127563127564127565127566127567127568127569127570127571127572127573127574127575127576127577127578127579127580127581127582127583127584127585127586127587127588127589127590127591127592127593127594127595127596127597127598127599127600127601127602127603127604127605127606127607127608127609127610127611127612127613127614127615127616127617127618127619127620127621127622127623127624127625127626127627127628127629127630127631127632127633127634127635127636127637127638127639127640127641127642127643127644127645127646127647127648127649127650127651127652127653127654127655127656127657127658127659127660127661127662127663127664127665127666127667127668127669127670127671127672127673127674127675127676127677127678127679127680127681127682127683127684127685127686127687127688127689127690127691127692127693127694127695127696127697127698127699127700127701127702127703127704127705127706127707127708127709127710127711127712127713127714127715127716127717127718127719127720127721127722127723127724127725127726127727127728127729127730127731127732127733127734127735127736127737127738127739127740127741127742127743127744127745127746127747127748127749127750127751127752127753127754127755127756127757127758127759127760127761127762127763127764127765127766127767127768127769127770127771127772127773127774127775127776127777127778127779127780127781127782127783127784127785127786127787127788127789127790127791127792127793127794127795127796127797127798127799127800127801127802127803127804127805127806127807127808127809127810127811127812127813127814127815127816127817127818127819127820127821127822127823127824127825127826127827127828127829127830127831127832127833127834127835127836127837127838127839127840127841127842127843127844127845127846127847127848127849127850127851127852127853127854127855127856127857127858127859127860127861127862127863127864127865127866127867127868127869127870127871127872127873127874127875127876127877127878127879127880127881127882127883127884127885127886127887127888127889127890127891127892127893127894127895127896127897127898127899127900127901127902127903127904127905127906127907127908127909127910127911127912127913127914127915127916127917127918127919127920127921127922127923127924127925127926127927127928127929127930127931127932127933127934127935127936127937127938127939127940127941127942127943127944127945127946127947127948127949127950127951127952127953127954127955127956127957127958127959127960127961127962127963127964127965127966127967127968127969127970127971127972127973127974127975127976127977127978127979127980127981127982127983127984127985127986127987127988127989127990127991127992127993127994127995127996127997127998127999128000128001128002128003128004128005128006128007128008128009128010128011128012128013128014128015128016128017128018128019128020128021128022128023128024128025128026128027128028128029128030128031128032128033128034128035128036128037128038128039128040128041128042128043128044128045128046128047128048128049128050128051128052128053128054128055128056128057128058128059128060128061128062128063128064128065128066128067128068128069128070128071128072128073128074128075128076128077128078128079128080128081128082128083128084128085128086128087128088128089128090128091128092128093128094128095128096128097128098128099128100128101128102128103128104128105128106128107128108128109128110128111128112128113128114128115128116128117128118128119128120128121128122128123128124128125128126128127128128128129128130128131128132128133128134128135128136128137128138128139128140128141128142128143128144128145128146128147128148128149128150128151128152128153128154128155128156128157128158128159128160128161128162128163128164128165128166128167128168128169128170128171128172128173128174128175128176128177128178128179128180128181128182128183128184128185128186128187128188128189128190128191128192128193128194128195128196128197128198128199128200128201128202128203128204128205128206128207128208128209128210128211128212128213128214128215128216128217128218128219128220128221128222128223128224128225128226128227128228128229128230128231128232128233128234128235128236128237128238128239128240128241128242128243128244128245128246128247128248128249128250128251128252128253128254128255128256128257128258128259128260128261128262128263128264128265128266128267128268128269128270128271128272128273128274128275128276128277128278128279128280128281128282128283128284128285128286128287128288128289128290128291128292128293128294128295128296128297128298128299128300128301128302128303128304128305128306128307128308128309128310128311128312128313128314128315128316128317128318128319128320128321128322128323128324128325128326128327128328128329128330128331128332128333128334128335128336128337128338128339128340128341128342128343128344128345128346128347128348128349128350128351128352128353128354128355128356128357128358128359128360128361128362128363128364128365128366128367128368128369128370128371128372128373128374128375128376128377128378128379128380128381128382128383128384128385128386128387128388128389128390128391128392128393128394128395128396128397128398128399128400128401128402128403128404128405128406128407128408128409128410128411128412128413128414128415128416128417128418128419128420128421128422128423128424128425128426128427128428128429128430128431128432128433128434128435128436128437128438128439128440128441128442128443128444128445128446128447128448128449128450128451128452128453128454128455128456128457128458128459128460128461128462128463128464128465128466128467128468128469128470128471128472128473128474128475128476128477128478128479128480128481128482128483128484128485128486128487128488128489128490128491128492128493128494128495128496128497128498128499128500128501128502128503128504128505128506128507128508128509128510128511128512128513128514128515128516128517128518128519128520128521128522128523128524128525128526128527128528128529128530128531128532128533128534128535128536128537128538128539128540128541128542128543128544128545128546128547128548128549128550128551128552128553128554128555128556128557128558128559128560128561128562128563128564128565128566128567128568128569128570128571128572128573128574128575128576128577128578128579128580128581128582128583128584128585128586128587128588128589128590128591128592128593128594128595128596128597128598128599128600128601128602128603128604128605128606128607128608128609128610128611128612128613128614128615128616128617128618128619128620128621128622128623128624128625128626128627128628128629128630128631128632128633128634128635128636128637128638128639128640128641128642128643128644128645128646128647128648128649128650128651128652128653128654128655128656128657128658128659128660128661128662128663128664128665128666128667128668128669128670128671128672128673128674128675128676128677128678128679128680128681128682128683128684128685128686128687128688128689128690128691128692128693128694128695128696128697128698128699128700128701128702128703128704128705128706128707128708128709128710128711128712128713128714128715128716128717128718128719128720128721128722128723128724128725128726128727128728128729128730128731128732128733128734128735128736128737128738128739128740128741128742128743128744128745128746128747128748128749128750128751128752128753128754128755128756128757128758128759128760128761128762128763128764128765128766128767128768128769128770128771128772128773128774128775128776128777128778128779128780128781128782128783128784128785128786128787128788128789128790128791128792128793128794128795128796128797128798128799128800128801128802128803128804128805128806128807128808128809128810128811128812128813128814128815128816128817128818128819128820128821128822128823128824128825128826128827128828128829128830128831128832128833128834128835128836128837128838128839128840128841128842128843128844128845128846128847128848128849128850128851128852128853128854128855128856128857128858128859128860128861128862128863128864128865128866128867128868128869128870128871128872128873128874128875128876128877128878128879128880128881128882128883128884128885128886128887128888128889128890128891128892128893128894128895128896128897128898128899128900128901128902128903128904128905128906128907128908128909128910128911128912128913128914128915128916128917128918128919128920128921128922128923128924128925128926128927128928128929128930128931128932128933128934128935128936128937128938128939128940128941128942128943128944128945128946128947128948128949128950128951128952128953128954128955128956128957128958128959128960128961128962128963128964128965128966128967128968128969128970128971128972128973128974128975128976128977128978128979128980128981128982128983128984128985128986128987128988128989128990128991128992128993128994128995128996128997128998128999129000129001129002129003129004129005129006129007129008129009129010129011129012129013129014129015129016129017129018129019129020129021129022129023129024129025129026129027129028129029129030129031129032129033129034129035129036129037129038129039129040129041129042129043129044129045129046129047129048129049129050129051129052129053129054129055129056129057129058129059129060129061129062129063129064129065129066129067129068129069129070129071129072129073129074129075129076129077129078129079129080129081129082129083129084129085129086129087129088129089129090129091129092129093129094129095129096129097129098129099129100129101129102129103129104129105129106129107129108129109129110129111129112129113129114129115129116129117129118129119129120129121129122129123129124129125129126129127129128129129129130129131129132129133129134129135129136129137129138129139129140129141129142129143129144129145129146129147129148129149129150129151129152129153129154129155129156129157129158129159129160129161129162129163129164129165129166129167129168129169129170129171129172129173129174129175129176129177129178129179129180129181129182129183129184129185129186129187129188129189129190129191129192129193129194129195129196129197129198129199129200129201129202129203129204129205129206129207129208129209129210129211129212129213129214129215129216129217129218129219129220129221129222129223129224129225129226129227129228129229129230129231129232129233129234129235129236129237129238129239129240129241129242129243129244129245129246129247129248129249129250129251129252129253129254129255129256129257129258129259129260129261129262129263129264129265129266129267129268129269129270129271129272129273129274129275129276129277129278129279129280129281129282129283129284129285129286129287129288129289129290129291129292129293129294129295129296129297129298129299129300129301129302129303129304129305129306129307129308129309129310129311129312129313129314129315129316129317129318129319129320129321129322129323129324129325129326129327129328129329129330129331129332129333129334129335129336129337129338129339129340129341129342129343129344129345129346129347129348129349129350129351129352129353129354129355129356129357129358129359129360129361129362129363129364129365129366129367129368129369129370129371129372129373129374129375129376129377129378129379129380129381129382129383129384129385129386129387129388129389129390129391129392129393129394129395129396129397129398129399129400129401129402129403129404129405129406129407129408129409129410129411129412129413129414129415129416129417129418129419129420129421129422129423129424129425129426129427129428129429129430129431129432129433129434129435129436129437129438129439129440129441129442129443129444129445129446129447129448129449129450129451129452129453129454129455129456129457129458129459129460129461129462129463129464129465129466129467129468129469129470129471129472129473129474129475129476129477129478129479129480129481129482129483129484129485129486129487129488129489129490129491129492129493129494129495129496129497129498129499129500129501129502129503129504129505129506129507129508129509129510129511129512129513129514129515129516129517129518129519129520129521129522129523129524129525129526129527129528129529129530129531129532129533129534129535129536129537129538129539129540129541129542129543129544129545129546129547129548129549129550129551129552129553129554129555129556129557129558129559129560129561129562129563129564129565129566129567129568129569129570129571129572129573129574129575129576129577129578129579129580129581129582129583129584129585129586129587129588129589129590129591129592129593129594129595129596129597129598129599129600129601129602129603129604129605129606129607129608129609129610129611129612129613129614129615129616129617129618129619129620129621129622129623129624129625129626129627129628129629129630129631129632129633129634129635129636129637129638129639129640129641129642129643129644129645129646129647129648129649129650129651129652129653129654129655129656129657129658129659129660129661129662129663129664129665129666129667129668129669129670129671129672129673129674129675129676129677129678129679129680129681129682129683129684129685129686129687129688129689129690129691129692129693129694129695129696129697129698129699129700129701129702129703129704129705129706129707129708129709129710129711129712129713129714129715129716129717129718129719129720129721129722129723129724129725129726129727129728129729129730129731129732129733129734129735129736129737129738129739129740129741129742129743129744129745129746129747129748129749129750129751129752129753129754129755129756129757129758129759129760129761129762129763129764129765129766129767129768129769129770129771129772129773129774129775129776129777129778129779129780129781129782129783129784129785129786129787129788129789129790129791129792129793129794129795129796129797129798129799129800129801129802129803129804129805129806129807129808129809129810129811129812129813129814129815129816129817129818129819129820129821129822129823129824129825129826129827129828129829129830129831129832129833129834129835129836129837129838129839129840129841129842129843129844129845129846129847129848129849129850129851129852129853129854129855129856129857129858129859129860129861129862129863129864129865129866129867129868129869129870129871129872129873129874129875129876129877129878129879129880129881129882129883129884129885129886129887129888129889129890129891129892129893129894129895129896129897129898129899129900129901129902129903129904129905129906129907129908129909129910129911129912129913129914129915129916129917129918129919129920129921129922129923129924129925129926129927129928129929129930129931129932129933129934129935129936129937129938129939129940129941129942129943129944129945129946129947129948129949129950129951129952129953129954129955129956129957129958129959129960129961129962129963129964129965129966129967129968129969129970129971129972129973129974129975129976129977129978129979129980129981129982129983129984129985129986129987129988129989129990129991129992129993129994129995129996129997129998129999130000130001130002130003130004130005130006130007130008130009130010130011130012130013130014130015130016130017130018130019130020130021130022130023130024130025130026130027130028130029130030130031130032130033130034130035130036130037130038130039130040130041130042130043130044130045130046130047130048130049130050130051130052130053130054130055130056130057130058130059130060130061130062130063130064130065130066130067130068130069130070130071130072130073130074130075130076130077130078130079130080130081130082130083130084130085130086130087130088130089130090130091130092130093130094130095130096130097130098130099130100130101130102130103130104130105130106130107130108130109130110130111130112130113130114130115130116130117130118130119130120130121130122130123130124130125130126130127130128130129130130130131130132130133130134130135130136130137130138130139130140130141130142130143130144130145130146130147130148130149130150130151130152130153130154130155130156130157130158130159130160130161130162130163130164130165130166130167130168130169130170130171130172130173130174130175130176130177130178130179130180130181130182130183130184130185130186130187130188130189130190130191130192130193130194130195130196130197130198130199130200130201130202130203130204130205130206130207130208130209130210130211130212130213130214130215130216130217130218130219130220130221130222130223130224130225130226130227130228130229130230130231130232130233130234130235130236130237130238130239130240130241130242130243130244130245130246130247130248130249130250130251130252130253130254130255130256130257130258130259130260130261130262130263130264130265130266130267130268130269130270130271130272130273130274130275130276130277130278130279130280130281130282130283130284130285130286130287130288130289130290130291130292130293130294130295130296130297130298130299130300130301130302130303130304130305130306130307130308130309130310130311130312130313130314130315130316130317130318130319130320130321130322130323130324130325130326130327130328130329130330130331130332130333130334130335130336130337130338130339130340130341130342130343130344130345130346130347130348130349130350130351130352130353130354130355130356130357130358130359130360130361130362130363130364130365130366130367130368130369130370130371130372130373130374130375130376130377130378130379130380130381130382130383130384130385130386130387130388130389130390130391130392130393130394130395130396130397130398130399130400130401130402130403130404130405130406130407130408130409130410130411130412130413130414130415130416130417130418130419130420130421130422130423130424130425130426130427130428130429130430130431130432130433130434130435130436130437130438130439130440130441130442130443130444130445130446130447130448130449130450130451130452130453130454130455130456130457130458130459130460130461130462130463130464130465130466130467130468130469130470130471130472130473130474130475130476130477130478130479130480130481130482130483130484130485130486130487130488130489130490130491130492130493130494130495130496130497130498130499130500130501130502130503130504130505130506130507130508130509130510130511130512130513130514130515130516130517130518130519130520130521130522130523130524130525130526130527130528130529130530130531130532130533130534130535130536130537130538130539130540130541130542130543130544130545130546130547130548130549130550130551130552130553130554130555130556130557130558130559130560130561130562130563130564130565130566130567130568130569130570130571130572130573130574130575130576130577130578130579130580130581130582130583130584130585130586130587130588130589130590130591130592130593130594130595130596130597130598130599130600130601130602130603130604130605130606130607130608130609130610130611130612130613130614130615130616130617130618130619130620130621130622130623130624130625130626130627130628130629130630130631130632130633130634130635130636130637130638130639130640130641130642130643130644130645130646130647130648130649130650130651130652130653130654130655130656130657130658130659130660130661130662130663130664130665130666130667130668130669130670130671130672130673130674130675130676130677130678130679130680130681130682130683130684130685130686130687130688130689130690130691130692130693130694130695130696130697130698130699130700130701130702130703130704130705130706130707130708130709130710130711130712130713130714130715130716130717130718130719130720130721130722130723130724130725130726130727130728130729130730130731130732130733130734130735130736130737130738130739130740130741130742130743130744130745130746130747130748130749130750130751130752130753130754130755130756130757130758130759130760130761130762130763130764130765130766130767130768130769130770130771130772130773130774130775130776130777130778130779130780130781130782130783130784130785130786130787130788130789130790130791130792130793130794130795130796130797130798130799130800130801130802130803130804130805130806130807130808130809130810130811130812130813130814130815130816130817130818130819130820130821130822130823130824130825130826130827130828130829130830130831130832130833130834130835130836130837130838130839130840130841130842130843130844130845130846130847130848130849130850130851130852130853130854130855130856130857130858130859130860130861130862130863130864130865130866130867130868130869130870130871130872130873130874130875130876130877130878130879130880130881130882130883130884130885130886130887130888130889130890130891130892130893130894130895130896130897130898130899130900130901130902130903130904130905130906130907130908130909130910130911130912130913130914130915130916130917130918130919130920130921130922130923130924130925130926130927130928130929130930130931130932130933130934130935130936130937130938130939130940130941130942130943130944130945130946130947130948130949130950130951130952130953130954130955130956130957130958130959130960130961130962130963130964130965130966130967130968130969130970130971130972130973130974130975130976130977130978130979130980130981130982130983130984130985130986130987130988130989130990130991130992130993130994130995130996130997130998130999131000131001131002131003131004131005131006131007131008131009131010131011131012131013131014131015131016131017131018131019131020131021131022131023131024131025131026131027131028131029131030131031131032131033131034131035131036131037131038131039131040131041131042131043131044131045131046131047131048131049131050131051131052131053131054131055131056131057131058131059131060131061131062131063131064131065131066131067131068131069131070131071131072131073131074131075131076131077131078131079131080131081131082131083131084131085131086131087131088131089131090131091131092131093131094131095131096131097131098131099131100131101131102131103131104131105131106131107131108131109131110131111131112131113131114131115131116131117131118131119131120131121131122131123131124131125131126131127131128131129131130131131131132131133131134131135131136131137131138131139131140131141131142131143131144131145131146131147131148131149131150131151131152131153131154131155131156131157131158131159131160131161131162131163131164131165131166131167131168131169131170131171131172131173131174131175131176131177131178131179131180131181131182131183131184131185131186131187131188131189131190131191131192131193131194131195131196131197131198131199131200131201131202131203131204131205131206131207131208131209131210131211131212131213131214131215131216131217131218131219131220131221131222131223131224131225131226131227131228131229131230131231131232131233131234131235131236131237131238131239131240131241131242131243131244131245131246131247131248131249131250131251131252131253131254131255131256131257131258131259131260131261131262131263131264131265131266131267131268131269131270131271131272131273131274131275131276131277131278131279131280131281131282131283131284131285131286131287131288131289131290131291131292131293131294131295131296131297131298131299131300131301131302131303131304131305131306131307131308131309131310131311131312131313131314131315131316131317131318131319131320131321131322131323131324131325131326131327131328131329131330131331131332131333131334131335131336131337131338131339131340131341131342131343131344131345131346131347131348131349131350131351131352131353131354131355131356131357131358131359131360131361131362131363131364131365131366131367131368131369131370131371131372131373131374131375131376131377131378131379131380131381131382131383131384131385131386131387131388131389131390131391131392131393131394131395131396131397131398131399131400131401131402131403131404131405131406131407131408131409131410131411131412131413131414131415131416131417131418131419131420131421131422131423131424131425131426131427131428131429131430131431131432131433131434131435131436131437131438131439131440131441131442131443131444131445131446131447131448131449131450131451131452131453131454131455131456131457131458131459131460131461131462131463131464131465131466131467131468131469131470131471131472131473131474131475131476131477131478131479131480131481131482131483131484131485131486131487131488131489131490131491131492131493131494131495131496131497131498131499131500131501131502131503131504131505131506131507131508131509131510131511131512131513131514131515131516131517131518131519131520131521131522131523131524131525131526131527131528131529131530131531131532131533131534131535131536131537131538131539131540131541131542131543131544131545131546131547131548131549131550131551131552131553131554131555131556131557131558131559131560131561131562131563131564131565131566131567131568131569131570131571131572131573131574131575131576131577131578131579131580131581131582131583131584131585131586131587131588131589131590131591131592131593131594131595131596131597131598131599131600131601131602131603131604131605131606131607131608131609131610131611131612131613131614131615131616131617131618131619131620131621131622131623131624131625131626131627131628131629131630131631131632131633131634131635131636131637131638131639131640131641131642131643131644131645131646131647131648131649131650131651131652131653131654131655131656131657131658131659131660131661131662131663131664131665131666131667131668131669131670131671131672131673131674131675131676131677131678131679131680131681131682131683131684131685131686131687131688131689131690131691131692131693131694131695131696131697131698131699131700131701131702131703131704131705131706131707131708131709131710131711131712131713131714131715131716131717131718131719131720131721131722131723131724131725131726131727131728131729131730131731131732131733131734131735131736131737131738131739131740131741131742131743131744131745131746131747131748131749131750131751131752131753131754131755131756131757131758131759131760131761131762131763131764131765131766131767131768131769131770131771131772131773131774131775131776131777131778131779131780131781131782131783131784131785131786131787131788131789131790131791131792131793131794131795131796131797131798131799131800131801131802131803131804131805131806131807131808131809131810131811131812131813131814131815131816131817131818131819131820131821131822131823131824131825131826131827131828131829131830131831131832131833131834131835131836131837131838131839131840131841131842131843131844131845131846131847131848131849131850131851131852131853131854131855131856131857131858131859131860131861131862131863131864131865131866131867131868131869131870131871131872131873131874131875131876131877131878131879131880131881131882131883131884131885131886131887131888131889131890131891131892131893131894131895131896131897131898131899131900131901131902131903131904131905131906131907131908131909131910131911131912131913131914131915131916131917131918131919131920131921131922131923131924131925131926131927131928131929131930131931131932131933131934131935131936131937131938131939131940131941131942131943131944131945131946131947131948131949131950131951131952131953131954131955131956131957131958131959131960131961131962131963131964131965131966131967131968131969131970131971131972131973131974131975131976131977131978131979131980131981131982131983131984131985131986131987131988131989131990131991131992131993131994131995131996131997131998131999132000132001132002132003132004132005132006132007132008132009132010132011132012132013132014132015132016132017132018132019132020132021132022132023132024132025132026132027132028132029132030132031132032132033132034132035132036132037132038132039132040132041132042132043132044132045132046132047132048132049132050132051132052132053132054132055132056132057132058132059132060132061132062132063132064132065132066132067132068132069132070132071132072132073132074132075132076132077132078132079132080132081132082132083132084132085132086132087132088132089132090132091132092132093132094132095132096132097132098132099132100132101132102132103132104132105132106132107132108132109132110132111132112132113132114132115132116132117132118132119132120132121132122132123132124132125132126132127132128132129132130132131132132132133132134132135132136132137132138132139132140132141132142132143132144132145132146132147132148132149132150132151132152132153132154132155132156132157132158132159132160132161132162132163132164132165132166132167132168132169132170132171132172132173132174132175132176132177132178132179132180132181132182132183132184132185132186132187132188132189132190132191132192132193132194132195132196132197132198132199132200132201132202132203132204132205132206132207132208132209132210132211132212132213132214132215132216132217132218132219132220132221132222132223132224132225132226132227132228132229132230132231132232132233132234132235132236132237132238132239132240132241132242132243132244132245132246132247132248132249132250132251132252132253132254132255132256132257132258132259132260132261132262132263132264132265132266132267132268132269132270132271132272132273132274132275132276132277132278132279132280132281132282132283132284132285132286132287132288132289132290132291132292132293132294132295132296132297132298132299132300132301132302132303132304132305132306132307132308132309132310132311132312132313132314132315132316132317132318132319132320132321132322132323132324132325132326132327132328132329132330132331132332132333132334132335132336132337132338132339132340132341132342132343132344132345132346132347132348132349132350132351132352132353132354132355132356132357132358132359132360132361132362132363132364132365132366132367132368132369132370132371132372132373132374132375132376132377132378132379132380132381132382132383132384132385132386132387132388132389132390132391132392132393132394132395132396132397132398132399132400132401132402132403132404132405132406132407132408132409132410132411132412132413132414132415132416132417132418132419132420132421132422132423132424132425132426132427132428132429132430132431132432132433132434132435132436132437132438132439132440132441132442132443132444132445132446132447132448132449132450132451132452132453132454132455132456132457132458132459132460132461132462132463132464132465132466132467132468132469132470132471132472132473132474132475132476132477132478132479132480132481132482132483132484132485132486132487132488132489132490132491132492132493132494132495132496132497132498132499132500132501132502132503132504132505132506132507132508132509132510132511132512132513132514132515132516132517132518132519132520132521132522132523132524132525132526132527132528132529132530132531132532132533132534132535132536132537132538132539132540132541132542132543132544132545132546132547132548132549132550132551132552132553132554132555132556132557132558132559132560132561132562132563132564132565132566132567132568132569132570132571132572132573132574132575132576132577132578132579132580132581132582132583132584132585132586132587132588132589132590132591132592132593132594132595132596132597132598132599132600132601132602132603132604132605132606132607132608132609132610132611132612132613132614132615132616132617132618132619132620132621132622132623132624132625132626132627132628132629132630132631132632132633132634132635132636132637132638132639132640132641132642132643132644132645132646132647132648132649132650132651132652132653132654132655132656132657132658132659132660132661132662132663132664132665132666132667132668132669132670132671132672132673132674132675132676132677132678132679132680132681132682132683132684132685132686132687132688132689132690132691132692132693132694132695132696132697132698132699132700132701132702132703132704132705132706132707132708132709132710132711132712132713132714132715132716132717132718132719132720132721132722132723132724132725132726132727132728132729132730132731132732132733132734132735132736132737132738132739132740132741132742132743132744132745132746132747132748132749132750132751132752132753132754132755132756132757132758132759132760132761132762132763132764132765132766132767132768132769132770132771132772132773132774132775132776132777132778132779132780132781132782132783132784132785132786132787132788132789132790132791132792132793132794132795132796132797132798132799132800132801132802132803132804132805132806132807132808132809132810132811132812132813132814132815132816132817132818132819132820132821132822132823132824132825132826132827132828132829132830132831132832132833132834132835132836132837132838132839132840132841132842132843132844132845132846132847132848132849132850132851132852132853132854132855132856132857132858132859132860132861132862132863132864132865132866132867132868132869132870132871132872132873132874132875132876132877132878132879132880132881132882132883132884132885132886132887132888132889132890132891132892132893132894132895132896132897132898132899132900132901132902132903132904132905132906132907132908132909132910132911132912132913132914132915132916132917132918132919132920132921132922132923132924132925132926132927132928132929132930132931132932132933132934132935132936132937132938132939132940132941132942132943132944132945132946132947132948132949132950132951132952132953132954132955132956132957132958132959132960132961132962132963132964132965132966132967132968132969132970132971132972132973132974132975132976132977132978132979132980132981132982132983132984132985132986132987132988132989132990132991132992132993132994132995132996132997132998132999133000133001133002133003133004133005133006133007133008133009133010133011133012133013133014133015133016133017133018133019133020133021133022133023133024133025133026133027133028133029133030133031133032133033133034133035133036133037133038133039133040133041133042133043133044133045133046133047133048133049133050133051133052133053133054133055133056133057133058133059133060133061133062133063133064133065133066133067133068133069133070133071133072133073133074133075133076133077133078133079133080133081133082133083133084133085133086133087133088133089133090133091133092133093133094133095133096133097133098133099133100133101133102133103133104133105133106133107133108133109133110133111133112133113133114133115133116133117133118133119133120133121133122133123133124133125133126133127133128133129133130133131133132133133133134133135133136133137133138133139133140133141133142133143133144133145133146133147133148133149133150133151133152133153133154133155133156133157133158133159133160133161133162133163133164133165133166133167133168133169133170133171133172133173133174133175133176133177133178133179133180133181133182133183133184133185133186133187133188133189133190133191133192133193133194133195133196133197133198133199133200133201133202133203133204133205133206133207133208133209133210133211133212133213133214133215133216133217133218133219133220133221133222133223133224133225133226133227133228133229133230133231133232133233133234133235133236133237133238133239133240133241133242133243133244133245133246133247133248133249133250133251133252133253133254133255133256133257133258133259133260133261133262133263133264133265133266133267133268133269133270133271133272133273133274133275133276133277133278133279133280133281133282133283133284133285133286133287133288133289133290133291133292133293133294133295133296133297133298133299133300133301133302133303133304133305133306133307133308133309133310133311133312133313133314133315133316133317133318133319133320133321133322133323133324133325133326133327133328133329133330133331133332133333133334133335133336133337133338133339133340133341133342133343133344133345133346133347133348133349133350133351133352133353133354133355133356133357133358133359133360133361133362133363133364133365133366133367133368133369133370133371133372133373133374133375133376133377133378133379133380133381133382133383133384133385133386133387133388133389133390133391133392133393133394133395133396133397133398133399133400133401133402133403133404133405133406133407133408133409133410133411133412133413133414133415133416133417133418133419133420133421133422133423133424133425133426133427133428133429133430133431133432133433133434133435133436133437133438133439133440133441133442133443133444133445133446133447133448133449133450133451133452133453133454133455133456133457133458133459133460133461133462133463133464133465133466133467133468133469133470133471133472133473133474133475133476133477133478133479133480133481133482133483133484133485133486133487133488133489133490133491133492133493133494133495133496133497133498133499133500133501133502133503133504133505133506133507133508133509133510133511133512133513133514133515133516133517133518133519133520133521133522133523133524133525133526133527133528133529133530133531133532133533133534133535133536133537133538133539133540133541133542133543133544133545133546133547133548133549133550133551133552133553133554133555133556133557133558133559133560133561133562133563133564133565133566133567133568133569133570133571133572133573133574133575133576133577133578133579133580133581133582133583133584133585133586133587133588133589133590133591133592133593133594133595133596133597133598133599133600133601133602133603133604133605133606133607133608133609133610133611133612133613133614133615133616133617133618133619133620133621133622133623133624133625133626133627133628133629133630133631133632133633133634133635133636133637133638133639133640133641133642133643133644133645133646133647133648133649133650133651133652133653133654133655133656133657133658133659133660133661133662133663133664133665133666133667133668133669133670133671133672133673133674133675133676133677133678133679133680133681133682133683133684133685133686133687133688133689133690133691133692133693133694133695133696133697133698133699133700133701133702133703133704133705133706133707133708133709133710133711133712133713133714133715133716133717133718133719133720133721133722133723133724133725133726133727133728133729133730133731133732133733133734133735133736133737133738133739133740133741133742133743133744133745133746133747133748133749133750133751133752133753133754133755133756133757133758133759133760133761133762133763133764133765133766133767133768133769133770133771133772133773133774133775133776133777133778133779133780133781133782133783133784133785133786133787133788133789133790133791133792133793133794133795133796133797133798133799133800133801133802133803133804133805133806133807133808133809133810133811133812133813133814133815133816133817133818133819133820133821133822133823133824133825133826133827133828133829133830133831133832133833133834133835133836133837133838133839133840133841133842133843133844133845133846133847133848133849133850133851133852133853133854133855133856133857133858133859133860133861133862133863133864133865133866133867133868133869133870133871133872133873133874133875133876133877133878133879133880133881133882133883133884133885133886133887133888133889133890133891133892133893133894133895133896133897133898133899133900133901133902133903133904133905133906133907133908133909133910133911133912133913133914133915133916133917133918133919133920133921133922133923133924133925133926133927133928133929133930133931133932133933133934133935133936133937133938133939133940133941133942133943133944133945133946133947133948133949133950133951133952133953133954133955133956133957133958133959133960133961133962133963133964133965133966133967133968133969133970133971133972133973133974133975133976133977133978133979133980133981133982133983133984133985133986133987133988133989133990133991133992133993133994133995133996133997133998133999134000134001134002134003134004134005134006134007134008134009134010134011134012134013134014134015134016134017134018134019134020134021134022134023134024134025134026134027134028134029134030134031134032134033134034134035134036134037134038134039134040134041134042134043134044134045134046134047134048134049134050134051134052134053134054134055134056134057134058134059134060134061134062134063134064134065134066134067134068134069134070134071134072134073134074134075134076134077134078134079134080134081134082134083134084134085134086134087134088134089134090134091134092134093134094134095134096134097134098134099134100134101134102134103134104134105134106134107134108134109134110134111134112134113134114134115134116134117134118134119134120134121134122134123134124134125134126134127134128134129134130134131134132134133134134134135134136134137134138134139134140134141134142134143134144134145134146134147134148134149134150134151134152134153134154134155134156134157134158134159134160134161134162134163134164134165134166134167134168134169134170134171134172134173134174134175134176134177134178134179134180134181134182134183134184134185134186134187134188134189134190134191134192134193134194134195134196134197134198134199134200134201134202134203134204134205134206134207134208134209134210134211134212134213134214134215134216134217134218134219134220134221134222134223134224134225134226134227134228134229134230134231134232134233134234134235134236134237134238134239134240134241134242134243134244134245134246134247134248134249134250134251134252134253134254134255134256134257134258134259134260134261134262134263134264134265134266134267134268134269134270134271134272134273134274134275134276134277134278134279134280134281134282134283134284134285134286134287134288134289134290134291134292134293134294134295134296134297134298134299134300134301134302134303134304134305134306134307134308134309134310134311134312134313134314134315134316134317134318134319134320134321134322134323134324134325134326134327134328134329134330134331134332134333134334134335134336134337134338134339134340134341134342134343134344134345134346134347134348134349134350134351134352134353134354134355134356134357134358134359134360134361134362134363134364134365134366134367134368134369134370134371134372134373134374134375134376134377134378134379134380134381134382134383134384134385134386134387134388134389134390134391134392134393134394134395134396134397134398134399134400134401134402134403134404134405134406134407134408134409134410134411134412134413134414134415134416134417134418134419134420134421134422134423134424134425134426134427134428134429134430134431134432134433134434134435134436134437134438134439134440134441134442134443134444134445134446134447134448134449134450134451134452134453134454134455134456134457134458134459134460134461134462134463134464134465134466134467134468134469134470134471134472134473134474134475134476134477134478134479134480134481134482134483134484134485134486134487134488134489134490134491134492134493134494134495134496134497134498134499134500134501134502134503134504134505134506134507134508134509134510134511134512134513134514134515134516134517134518134519134520134521134522134523134524134525134526134527134528134529134530134531134532134533134534134535134536134537134538134539134540134541134542134543134544134545134546134547134548134549134550134551134552134553134554134555134556134557134558134559134560134561134562134563134564134565134566134567134568134569134570134571134572134573134574134575134576134577134578134579134580134581134582134583134584134585134586134587134588134589134590134591134592134593134594134595134596134597134598134599134600134601134602134603134604134605134606134607134608134609134610134611134612134613134614134615134616134617134618134619134620134621134622134623134624134625134626134627134628134629134630134631134632134633134634134635134636134637134638134639134640134641134642134643134644134645134646134647134648134649134650134651134652134653134654134655134656134657134658134659134660134661134662134663134664134665134666134667134668134669134670134671134672134673134674134675134676134677134678134679134680134681134682134683134684134685134686134687134688134689134690134691134692134693134694134695134696134697134698134699134700134701134702134703134704134705134706134707134708134709134710134711134712134713134714134715134716134717134718134719134720134721134722134723134724134725134726134727134728134729134730134731134732134733134734134735134736134737134738134739134740134741134742134743134744134745134746134747134748134749134750134751134752134753134754134755134756134757134758134759134760134761134762134763134764134765134766134767134768134769134770134771134772134773134774134775134776134777134778134779134780134781134782134783134784134785134786134787134788134789134790134791134792134793134794134795134796134797134798134799134800134801134802134803134804134805134806134807134808134809134810134811134812134813134814134815134816134817134818134819134820134821134822134823134824134825134826134827134828134829134830134831134832134833134834134835134836134837134838134839134840134841134842134843134844134845134846134847134848134849134850134851134852134853134854134855134856134857134858134859134860134861134862134863134864134865134866134867134868134869134870134871134872134873134874134875134876134877134878134879134880134881134882134883134884134885134886134887134888134889134890134891134892134893134894134895134896134897134898134899134900134901134902134903134904134905134906134907134908134909134910134911134912134913134914134915134916134917134918134919134920134921134922134923134924134925134926134927134928134929134930134931134932134933134934134935134936134937134938134939134940134941134942134943134944134945134946134947134948134949134950134951134952134953134954134955134956134957134958134959134960134961134962134963134964134965134966134967134968134969134970134971134972134973134974134975134976134977134978134979134980134981134982134983134984134985134986134987134988134989134990134991134992134993134994134995134996134997134998134999135000135001135002135003135004135005135006135007135008135009135010135011135012135013135014135015135016135017135018135019135020135021135022135023135024135025135026135027135028135029135030135031135032135033135034135035135036135037135038135039135040135041135042135043135044135045135046135047135048135049135050135051135052135053135054135055135056135057135058135059135060135061135062135063135064135065135066135067135068135069135070135071135072135073135074135075135076135077135078135079135080135081135082135083135084135085135086135087135088135089135090135091135092135093135094135095135096135097135098135099135100135101135102135103135104135105135106135107135108135109135110135111135112135113135114135115135116135117135118135119135120135121135122135123135124135125135126135127135128135129135130135131135132135133135134135135135136135137135138135139135140135141135142135143135144135145135146135147135148135149135150135151135152135153135154135155135156135157135158135159135160135161135162135163135164135165135166135167135168135169135170135171135172135173135174135175135176135177135178135179135180135181135182135183135184135185135186135187135188135189135190135191135192135193135194135195135196135197135198135199135200135201135202135203135204135205135206135207135208135209135210135211135212135213135214135215135216135217135218135219135220135221135222135223135224135225135226135227135228135229135230135231135232135233135234135235135236135237135238135239135240135241135242135243135244135245135246135247135248135249135250135251135252135253135254135255135256135257135258135259135260135261135262135263135264135265135266135267135268135269135270135271135272135273135274135275135276135277135278135279135280135281135282135283135284135285135286135287135288135289135290135291135292135293135294135295135296135297135298135299135300135301135302135303135304135305135306135307135308135309135310135311135312135313135314135315135316135317135318135319135320135321135322135323135324135325135326135327135328135329135330135331135332135333135334135335135336135337135338135339135340135341135342135343135344135345135346135347135348135349135350135351135352135353135354135355135356135357135358135359135360135361135362135363135364135365135366135367135368135369135370135371135372135373135374135375135376135377135378135379135380135381135382135383135384135385135386135387135388135389135390135391135392135393135394135395135396135397135398135399135400135401135402135403135404135405135406135407135408135409135410135411135412135413135414135415135416135417135418135419135420135421135422135423135424135425135426135427135428135429135430135431135432135433135434135435135436135437135438135439135440135441135442135443135444135445135446135447135448135449135450135451135452135453135454135455135456135457135458135459135460135461135462135463135464135465135466135467135468135469135470135471135472135473135474135475135476135477135478135479135480135481135482135483135484135485135486135487135488135489135490135491135492135493135494135495135496135497135498135499135500135501135502135503135504135505135506135507135508135509135510135511135512135513135514135515135516135517135518135519135520135521135522135523135524135525135526135527135528135529135530135531135532135533135534135535135536135537135538135539135540135541135542135543135544135545135546135547135548135549135550135551135552135553135554135555135556135557135558135559135560135561135562135563135564135565135566135567135568135569135570135571135572135573135574135575135576135577135578135579135580135581135582135583135584135585135586135587135588135589135590135591135592135593135594135595135596135597135598135599135600135601135602135603135604135605135606135607135608135609135610135611135612135613135614135615135616135617135618135619135620135621135622135623135624135625135626135627135628135629135630135631135632135633135634135635135636135637135638135639135640135641135642135643135644135645135646135647135648135649135650135651135652135653135654135655135656135657135658135659135660135661135662135663135664135665135666135667135668135669135670135671135672135673135674135675135676135677135678135679135680135681135682135683135684135685135686135687135688135689135690135691135692135693135694135695135696135697135698135699135700135701135702135703135704135705135706135707135708135709135710135711135712135713135714135715135716135717135718135719135720135721135722135723135724135725135726135727135728135729135730135731135732135733135734135735135736135737135738135739135740135741135742135743135744135745135746135747135748135749135750135751135752135753135754135755135756135757135758135759135760135761135762135763135764135765135766135767135768135769135770135771135772135773135774135775135776135777135778135779135780135781135782135783135784135785135786135787135788135789135790135791135792135793135794135795135796135797135798135799135800135801135802135803135804135805135806135807135808135809135810135811135812135813135814135815135816135817135818135819135820135821135822135823135824135825135826135827135828135829135830135831135832135833135834135835135836135837135838135839135840135841135842135843135844135845135846135847135848135849135850135851135852135853135854135855135856135857135858135859135860135861135862135863135864135865135866135867135868135869135870135871135872135873135874135875135876135877135878135879135880135881135882135883135884135885135886135887135888135889135890135891135892135893135894135895135896135897135898135899135900135901135902135903135904135905135906135907135908135909135910135911135912135913135914135915135916135917135918135919135920135921135922135923135924135925135926135927135928135929135930135931135932135933135934135935135936135937135938135939135940135941135942135943135944135945135946135947135948135949135950135951135952135953135954135955135956135957135958135959135960135961135962135963135964135965135966135967135968135969135970135971135972135973135974135975135976135977135978135979135980135981135982135983135984135985135986135987135988135989135990135991135992135993135994135995135996135997135998135999136000136001136002136003136004136005136006136007136008136009136010136011136012136013136014136015136016136017136018136019136020136021136022136023136024136025136026136027136028136029136030136031136032136033136034136035136036136037136038136039136040136041136042136043136044136045136046136047136048136049136050136051136052136053136054136055136056136057136058136059136060136061136062136063136064136065136066136067136068136069136070136071136072136073136074136075136076136077136078136079136080136081136082136083136084136085136086136087136088136089136090136091136092136093136094136095136096136097136098136099136100136101136102136103136104136105136106136107136108136109136110136111136112136113136114136115136116136117136118136119136120136121136122136123136124136125136126136127136128136129136130136131136132136133136134136135136136136137136138136139136140136141136142136143136144136145136146136147136148136149136150136151136152136153136154136155136156136157136158136159136160136161136162136163136164136165136166136167136168136169136170136171136172136173136174136175136176136177136178136179136180136181136182136183136184136185136186136187136188136189136190136191136192136193136194136195136196136197136198136199136200136201136202136203136204136205136206136207136208136209136210136211136212136213136214136215136216136217136218136219136220136221136222136223136224136225136226136227136228136229136230136231136232136233136234136235136236136237136238136239136240136241136242136243136244136245136246136247136248136249136250136251136252136253136254136255136256136257136258136259136260136261136262136263136264136265136266136267136268136269136270136271136272136273136274136275136276136277136278136279136280136281136282136283136284136285136286136287136288136289136290136291136292136293136294136295136296136297136298136299136300136301136302136303136304136305136306136307136308136309136310136311136312136313136314136315136316136317136318136319136320136321136322136323136324136325136326136327136328136329136330136331136332136333136334136335136336136337136338136339136340136341136342136343136344136345136346136347136348136349136350136351136352136353136354136355136356136357136358136359136360136361136362136363136364136365136366136367136368136369136370136371136372136373136374136375136376136377136378136379136380136381136382136383136384136385136386136387136388136389136390136391136392136393136394136395136396136397136398136399136400136401136402136403136404136405136406136407136408136409136410136411136412136413136414136415136416136417136418136419136420136421136422136423136424136425136426136427136428136429136430136431136432136433136434136435136436136437136438136439136440136441136442136443136444136445136446136447136448136449136450136451136452136453136454136455136456136457136458136459136460136461136462136463136464136465136466136467136468136469136470136471136472136473136474136475136476136477136478136479136480136481136482136483136484136485136486136487136488136489136490136491136492136493136494136495136496136497136498136499136500136501136502136503136504136505136506136507136508136509136510136511136512136513136514136515136516136517136518136519136520136521136522136523136524136525136526136527136528136529136530136531136532136533136534136535136536136537136538136539136540136541136542136543136544136545136546136547136548136549136550136551136552136553136554136555136556136557136558136559136560136561136562136563136564136565136566136567136568136569136570136571136572136573136574136575136576136577136578136579136580136581136582136583136584136585136586136587136588136589136590136591136592136593136594136595136596136597136598136599136600136601136602136603136604136605136606136607136608136609136610136611136612136613136614136615136616136617136618136619136620136621136622136623136624136625136626136627136628136629136630136631136632136633136634136635136636136637136638136639136640136641136642136643136644136645136646136647136648136649136650136651136652136653136654136655136656136657136658136659136660136661136662136663136664136665136666136667136668136669136670136671136672136673136674136675136676136677136678136679136680136681136682136683136684136685136686136687136688136689136690136691136692136693136694136695136696136697136698136699136700136701136702136703136704136705136706136707136708136709136710136711136712136713136714136715136716136717136718136719136720136721136722136723136724136725136726136727136728136729136730136731136732136733136734136735136736136737136738136739136740136741136742136743136744136745136746136747136748136749136750136751136752136753136754136755136756136757136758136759136760136761136762136763136764136765136766136767136768136769136770136771136772136773136774136775136776136777136778136779136780136781136782136783136784136785136786136787136788136789136790136791136792136793136794136795136796136797136798136799136800136801136802136803136804136805136806136807136808136809136810136811136812136813136814136815136816136817136818136819136820136821136822136823136824136825136826136827136828136829136830136831136832136833136834136835136836136837136838136839136840136841136842136843136844136845136846136847136848136849136850136851136852136853136854136855136856136857136858136859136860136861136862136863136864136865136866136867136868136869136870136871136872136873136874136875136876136877136878136879136880136881136882136883136884136885136886136887136888136889136890136891136892136893136894136895136896136897136898136899136900136901136902136903136904136905136906136907136908136909136910136911136912136913136914136915136916136917136918136919136920136921136922136923136924136925136926136927136928136929136930136931136932136933136934136935136936136937136938136939136940136941136942136943136944136945136946136947136948136949136950136951136952136953136954136955136956136957136958136959136960136961136962136963136964136965136966136967136968136969136970136971136972136973136974136975136976136977136978136979136980136981136982136983136984136985136986136987136988136989136990136991136992136993136994136995136996136997136998136999137000137001137002137003137004137005137006137007137008137009137010137011137012137013137014137015137016137017137018137019137020137021137022137023137024137025137026137027137028137029137030137031137032137033137034137035137036137037137038137039137040137041137042137043137044137045137046137047137048137049137050137051137052137053137054137055137056137057137058137059137060137061137062137063137064137065137066137067137068137069137070137071137072137073137074137075137076137077137078137079137080137081137082137083137084137085137086137087137088137089137090137091137092137093137094137095137096137097137098137099137100137101137102137103137104137105137106137107137108137109137110137111137112137113137114137115137116137117137118137119137120137121137122137123137124137125137126137127137128137129137130137131137132137133137134137135137136137137137138137139137140137141137142137143137144137145137146137147137148137149137150137151137152137153137154137155137156137157137158137159137160137161137162137163137164137165137166137167137168137169137170137171137172137173137174137175137176137177137178137179137180137181137182137183137184137185137186137187137188137189137190137191137192137193137194137195137196137197137198137199137200137201137202137203137204137205137206137207137208137209137210137211137212137213137214137215137216137217137218137219137220137221137222137223137224137225137226137227137228137229137230137231137232137233137234137235137236137237137238137239137240137241137242137243137244137245137246137247137248137249137250137251137252137253137254137255137256137257137258137259137260137261137262137263137264137265137266137267137268137269137270137271137272137273137274137275137276137277137278137279137280137281137282137283137284137285137286137287137288137289137290137291137292137293137294137295137296137297137298137299137300137301137302137303137304137305137306137307137308137309137310137311137312137313137314137315137316137317137318137319137320137321137322137323137324137325137326137327137328137329137330137331137332137333137334137335137336137337137338137339137340137341137342137343137344137345137346137347137348137349137350137351137352137353137354137355137356137357137358137359137360137361137362137363137364137365137366137367137368137369137370137371137372137373137374137375137376137377137378137379137380137381137382137383137384137385137386137387137388137389137390137391137392137393137394137395137396137397137398137399137400137401137402137403137404137405137406137407137408137409137410137411137412137413137414137415137416137417137418137419137420137421137422137423137424137425137426137427137428137429137430137431137432137433137434137435137436137437137438137439137440137441137442137443137444137445137446137447137448137449137450137451137452137453137454137455137456137457137458137459137460137461137462137463137464137465137466137467137468137469137470137471137472137473137474137475137476137477137478137479137480137481137482137483137484137485137486137487137488137489137490137491137492137493137494137495137496137497137498137499137500137501137502137503137504137505137506137507137508137509137510137511137512137513137514137515137516137517137518137519137520137521137522137523137524137525137526137527137528137529137530137531137532137533137534137535137536137537137538137539137540137541137542137543137544137545137546137547137548137549137550137551137552137553137554137555137556137557137558137559137560137561137562137563137564137565137566137567137568137569137570137571137572137573137574137575137576137577137578137579137580137581137582137583137584137585137586137587137588137589137590137591137592137593137594137595137596137597137598137599137600137601137602137603137604137605137606137607137608137609137610137611137612137613137614137615137616137617137618137619137620137621137622137623137624137625137626137627137628137629137630137631137632137633137634137635137636137637137638137639137640137641137642137643137644137645137646137647137648137649137650137651137652137653137654137655137656137657137658137659137660137661137662137663137664137665137666137667137668137669137670137671137672137673137674137675137676137677137678137679137680137681137682137683137684137685137686137687137688137689137690137691137692137693137694137695137696137697137698137699137700137701137702137703137704137705137706137707137708137709137710137711137712137713137714137715137716137717137718137719137720137721137722137723137724137725137726137727137728137729137730137731137732137733137734137735137736137737137738137739137740137741137742137743137744137745137746137747137748137749137750137751137752137753137754137755137756137757137758137759137760137761137762137763137764137765137766137767137768137769137770137771137772137773137774137775137776137777137778137779137780137781137782137783137784137785137786137787137788137789137790137791137792137793137794137795137796137797137798137799137800137801137802137803137804137805137806137807137808137809137810137811137812137813137814137815137816137817137818137819137820137821137822137823137824137825137826137827137828137829137830137831137832137833137834137835137836137837137838137839137840137841137842137843137844137845137846137847137848137849137850137851137852137853137854137855137856137857137858137859137860137861137862137863137864137865137866137867137868137869137870137871137872137873137874137875137876137877137878137879137880137881137882137883137884137885137886137887137888137889137890137891137892137893137894137895137896137897137898137899137900137901137902137903137904137905137906137907137908137909137910137911137912137913137914137915137916137917137918137919137920137921137922137923137924137925137926137927137928137929137930137931137932137933137934137935137936137937137938137939137940137941137942137943137944137945137946137947137948137949137950137951137952137953137954137955137956137957137958137959137960137961137962137963137964137965137966137967137968137969137970137971137972137973137974137975137976137977137978137979137980137981137982137983137984137985137986137987137988137989137990137991137992137993137994137995137996137997137998137999138000138001138002138003138004138005138006138007138008138009138010138011138012138013138014138015138016138017138018138019138020138021138022138023138024138025138026138027138028138029138030138031138032138033138034138035138036138037138038138039138040138041138042138043138044138045138046138047138048138049138050138051138052138053138054138055138056138057138058138059138060138061138062138063138064138065138066138067138068138069138070138071138072138073138074138075138076138077138078138079138080138081138082138083138084138085138086138087138088138089138090138091138092138093138094138095138096138097138098138099138100138101138102138103138104138105138106138107138108138109138110138111138112138113138114138115138116138117138118138119138120138121138122138123138124138125138126138127138128138129138130138131138132138133138134138135138136138137138138138139138140138141138142138143138144138145138146138147138148138149138150138151138152138153138154138155138156138157138158138159138160138161138162138163138164138165138166138167138168138169138170138171138172138173138174138175138176138177138178138179138180138181138182138183138184138185138186138187138188138189138190138191138192138193138194138195138196138197138198138199138200138201138202138203138204138205138206138207138208138209138210138211138212138213138214138215138216138217138218138219138220138221138222138223138224138225138226138227138228138229138230138231138232138233138234138235138236138237138238138239138240138241138242138243138244138245138246138247138248138249138250138251138252138253138254138255138256138257138258138259138260138261138262138263138264138265138266138267138268138269138270138271138272138273138274138275138276138277138278138279138280138281138282138283138284138285138286138287138288138289138290138291138292138293138294138295138296138297138298138299138300138301138302138303138304138305138306138307138308138309138310138311138312138313138314138315138316138317138318138319138320138321138322138323138324138325138326138327138328138329138330138331138332138333138334138335138336138337138338138339138340138341138342138343138344138345138346138347138348138349138350138351138352138353138354138355138356138357138358138359138360138361138362138363138364138365138366138367138368138369138370138371138372138373138374138375138376138377138378138379138380138381138382138383138384138385138386138387138388138389138390138391138392138393138394138395138396138397138398138399138400138401138402138403138404138405138406138407138408138409138410138411138412138413138414138415138416138417138418138419138420138421138422138423138424138425138426138427138428138429138430138431138432138433138434138435138436138437138438138439138440138441138442138443138444138445138446138447138448138449138450138451138452138453138454138455138456138457138458138459138460138461138462138463138464138465138466138467138468138469138470138471138472138473138474138475138476138477138478138479138480138481138482138483138484138485138486138487138488138489138490138491138492138493138494138495138496138497138498138499138500138501138502138503138504138505138506138507138508138509138510138511138512138513138514138515138516138517138518138519138520138521138522138523138524138525138526138527138528138529138530138531138532138533138534138535138536138537138538138539138540138541138542138543138544138545138546138547138548138549138550138551138552138553138554138555138556138557138558138559138560138561138562138563138564138565138566138567138568138569138570138571138572138573138574138575138576138577138578138579138580138581138582138583138584138585138586138587138588138589138590138591138592138593138594138595138596138597138598138599138600138601138602138603138604138605138606138607138608138609138610138611138612138613138614138615138616138617138618138619138620138621138622138623138624138625138626138627138628138629138630138631138632138633138634138635138636138637138638138639138640138641138642138643138644138645138646138647138648138649138650138651138652138653138654138655138656138657138658138659138660138661138662138663138664138665138666138667138668138669138670138671138672138673138674138675138676138677138678138679138680138681138682138683138684138685138686138687138688138689138690138691138692138693138694138695138696138697138698138699138700138701138702138703138704138705138706138707138708138709138710138711138712138713138714138715138716138717138718138719138720138721138722138723138724138725138726138727138728138729138730138731138732138733138734138735138736138737138738138739138740138741138742138743138744138745138746138747138748138749138750138751138752138753138754138755138756138757138758138759138760138761138762138763138764138765138766138767138768138769138770138771138772138773138774138775138776138777138778138779138780138781138782138783138784138785138786138787138788138789138790138791138792138793138794138795138796138797138798138799138800138801138802138803138804138805138806138807138808138809138810138811138812138813138814138815138816138817138818138819138820138821138822138823138824138825138826138827138828138829138830138831138832138833138834138835138836138837138838138839138840138841138842138843138844138845138846138847138848138849138850138851138852138853138854138855138856138857138858138859138860138861138862138863138864138865138866138867138868138869138870138871138872138873138874138875138876138877138878138879138880138881138882138883138884138885138886138887138888138889138890138891138892138893138894138895138896138897138898138899138900138901138902138903138904138905138906138907138908138909138910138911138912138913138914138915138916138917138918138919138920138921138922138923138924138925138926138927138928138929138930138931138932138933138934138935138936138937138938138939138940138941138942138943138944138945138946138947138948138949138950138951138952138953138954138955138956138957138958138959138960138961138962138963138964138965138966138967138968138969138970138971138972138973138974138975138976138977138978138979138980138981138982138983138984138985138986138987138988138989138990138991138992138993138994138995138996138997138998138999139000139001139002139003139004139005139006139007139008139009139010139011139012139013139014139015139016139017139018139019139020139021139022139023139024139025139026139027139028139029139030139031139032139033139034139035139036139037139038139039139040139041139042139043139044139045139046139047139048139049139050139051139052139053139054139055139056139057139058139059139060139061139062139063139064139065139066139067139068139069139070139071139072139073139074139075139076139077139078139079139080139081139082139083139084139085139086139087139088139089139090139091139092139093139094139095139096139097139098139099139100139101139102139103139104139105139106139107139108139109139110139111139112139113139114139115139116139117139118139119139120139121139122139123139124139125139126139127139128139129139130139131139132139133139134139135139136139137139138139139139140139141139142139143139144139145139146139147139148139149139150139151139152139153139154139155139156139157139158139159139160139161139162139163139164139165139166139167139168139169139170139171139172139173139174139175139176139177139178139179139180139181139182139183139184139185139186139187139188139189139190139191139192139193139194139195139196139197139198139199139200139201139202139203139204139205139206139207139208139209139210139211139212139213139214139215139216139217139218139219139220139221139222139223139224139225139226139227139228139229139230139231139232139233139234139235139236139237139238139239139240139241139242139243139244139245139246139247139248139249139250139251139252139253139254139255139256139257139258139259139260139261139262139263139264139265139266139267139268139269139270139271139272139273139274139275139276139277139278139279139280139281139282139283139284139285139286139287139288139289139290139291139292139293139294139295139296139297139298139299139300139301139302139303139304139305139306139307139308139309139310139311139312139313139314139315139316139317139318139319139320139321139322139323139324139325139326139327139328139329139330139331139332139333139334139335139336139337139338139339139340139341139342139343139344139345139346139347139348139349139350139351139352139353139354139355139356139357139358139359139360139361139362139363139364139365139366139367139368139369139370139371139372139373139374139375139376139377139378139379139380139381139382139383139384139385139386139387139388139389139390139391139392139393139394139395139396139397139398139399139400139401139402139403139404139405139406139407139408139409139410139411139412139413139414139415139416139417139418139419139420139421139422139423139424139425139426139427139428139429139430139431139432139433139434139435139436139437139438139439139440139441139442139443139444139445139446139447139448139449139450139451139452139453139454139455139456139457139458139459139460139461139462139463139464139465139466139467139468139469139470139471139472139473139474139475139476139477139478139479139480139481139482139483139484139485139486139487139488139489139490139491139492139493139494139495139496139497139498139499139500139501139502139503139504139505139506139507139508139509139510139511139512139513139514139515139516139517139518139519139520139521139522139523139524139525139526139527139528139529139530139531139532139533139534139535139536139537139538139539139540139541139542139543139544139545139546139547139548139549139550139551139552139553139554139555139556139557139558139559139560139561139562139563139564139565139566139567139568139569139570139571139572139573139574139575139576139577139578139579139580139581139582139583139584139585139586139587139588139589139590139591139592139593139594139595139596139597139598139599139600139601139602139603139604139605139606139607139608139609139610139611139612139613139614139615139616139617139618139619139620139621139622139623139624139625139626139627139628139629139630139631139632139633139634139635139636139637139638139639139640139641139642139643139644139645139646139647139648139649139650139651139652139653139654139655139656139657139658139659139660139661139662139663139664139665139666139667139668139669139670139671139672139673139674139675139676139677139678139679139680139681139682139683139684139685139686139687139688139689139690139691139692139693139694139695139696139697139698139699139700139701139702139703139704139705139706139707139708139709139710139711139712139713139714139715139716139717139718139719139720139721139722139723139724139725139726139727139728139729139730139731139732139733139734139735139736139737139738139739139740139741139742139743139744139745139746139747139748139749139750139751139752139753139754139755139756139757139758139759139760139761139762139763139764139765139766139767139768139769139770139771139772139773139774139775139776139777139778139779139780139781139782139783139784139785139786139787139788139789139790139791139792139793139794139795139796139797139798139799139800139801139802139803139804139805139806139807139808139809139810139811139812139813139814139815139816139817139818139819139820139821139822139823139824139825139826139827139828139829139830139831139832139833139834139835139836139837139838139839139840139841139842139843139844139845139846139847139848139849139850139851139852139853139854139855139856139857139858139859139860139861139862139863139864139865139866139867139868139869139870139871139872139873139874139875139876139877139878139879139880139881139882139883139884139885139886139887139888139889139890139891139892139893139894139895139896139897139898139899139900139901139902139903139904139905139906139907139908139909139910139911139912139913139914139915139916139917139918139919139920139921139922139923139924139925139926139927139928139929139930139931139932139933139934139935139936139937139938139939139940139941139942139943139944139945139946139947139948139949139950139951139952139953139954139955139956139957139958139959139960139961139962139963139964139965139966139967139968139969139970139971139972139973139974139975139976139977139978139979139980139981139982139983139984139985139986139987139988139989139990139991139992139993139994139995139996139997139998139999140000140001140002140003140004140005140006140007140008140009140010140011140012140013140014140015140016140017140018140019140020140021140022140023140024140025140026140027140028140029140030140031140032140033140034140035140036140037140038140039140040140041140042140043140044140045140046140047140048140049140050140051140052140053140054140055140056140057140058140059140060140061140062140063140064140065140066140067140068140069140070140071140072140073140074140075140076140077140078140079140080140081140082140083140084140085140086140087140088140089140090140091140092140093140094140095140096140097140098140099140100140101140102140103140104140105140106140107140108140109140110140111140112140113140114140115140116140117140118140119140120140121140122140123140124140125140126140127140128140129140130140131140132140133140134140135140136140137140138140139140140140141140142140143140144140145140146140147140148140149140150140151140152140153140154140155140156140157140158140159140160140161140162140163140164140165140166140167140168140169140170140171140172140173140174140175140176140177140178140179140180140181140182140183140184140185140186140187140188140189140190140191140192140193140194140195140196140197140198140199140200140201140202140203140204140205140206140207140208140209140210140211140212140213140214140215140216140217140218140219140220140221140222140223140224140225140226140227140228140229140230140231140232140233140234140235140236140237140238140239140240140241140242140243140244140245140246140247140248140249140250140251140252140253140254140255140256140257140258140259140260140261140262140263140264140265140266140267140268140269140270140271140272140273140274140275140276140277140278140279140280140281140282140283140284140285140286140287140288140289140290140291140292140293140294140295140296140297140298140299140300140301140302140303140304140305140306140307140308140309140310140311140312140313140314140315140316140317140318140319140320140321140322140323140324140325140326140327140328140329140330140331140332140333140334140335140336140337140338140339140340140341140342140343140344140345140346140347140348140349140350140351140352140353140354140355140356140357140358140359140360140361140362140363140364140365140366140367140368140369140370140371140372140373140374140375140376140377140378140379140380140381140382140383140384140385140386140387140388140389140390140391140392140393140394140395140396140397140398140399140400140401140402140403140404140405140406140407140408140409140410140411140412140413140414140415140416140417140418140419140420140421140422140423140424140425140426140427140428140429140430140431140432140433140434140435140436140437140438140439140440140441140442140443140444140445140446140447140448140449140450140451140452140453140454140455140456140457140458140459140460140461140462140463140464140465140466140467140468140469140470140471140472140473140474140475140476140477140478140479140480140481140482140483140484140485140486140487140488140489140490140491140492140493140494140495140496140497140498140499140500140501140502140503140504140505140506140507140508140509140510140511140512140513140514140515140516140517140518140519140520140521140522140523140524140525140526140527140528140529140530140531140532140533140534140535140536140537140538140539140540140541140542140543140544140545140546140547140548140549140550140551140552140553140554140555140556140557140558140559140560140561140562140563140564140565140566140567140568140569140570140571140572140573140574140575140576140577140578140579140580140581140582140583140584140585140586140587140588140589140590140591140592140593140594140595140596140597140598140599140600140601140602140603140604140605140606140607140608140609140610140611140612140613140614140615140616140617140618140619140620140621140622140623140624140625140626140627140628140629140630140631140632140633140634140635140636140637140638140639140640140641140642140643140644140645140646140647140648140649140650140651140652140653140654140655140656140657140658140659140660140661140662140663140664140665140666140667140668140669140670140671140672140673140674140675140676140677140678140679140680140681140682140683140684140685140686140687140688140689140690140691140692140693140694140695140696140697140698140699140700140701140702140703140704140705140706140707140708140709140710140711140712140713140714140715140716140717140718140719140720140721140722140723140724140725140726140727140728140729140730140731140732140733140734140735140736140737140738140739140740140741140742140743140744140745140746140747140748140749140750140751140752140753140754140755140756140757140758140759140760140761140762140763140764140765140766140767140768140769140770140771140772140773140774140775140776140777140778140779140780140781140782140783140784140785140786140787140788140789140790140791140792140793140794140795140796140797140798140799140800140801140802140803140804140805140806140807140808140809140810140811140812140813140814140815140816140817140818140819140820140821140822140823140824140825140826140827140828140829140830140831140832140833140834140835140836140837140838140839140840140841140842140843140844140845140846140847140848140849140850140851140852140853140854140855140856140857140858140859140860140861140862140863140864140865140866140867140868140869140870140871140872140873140874140875140876140877140878140879140880140881140882140883140884140885140886140887140888140889140890140891140892140893140894140895140896140897140898140899140900140901140902140903140904140905140906140907140908140909140910140911140912140913140914140915140916140917140918140919140920140921140922140923140924140925140926140927140928140929140930140931140932140933140934140935140936140937140938140939140940140941140942140943140944140945140946140947140948140949140950140951140952140953140954140955140956140957140958140959140960140961140962140963140964140965140966140967140968140969140970140971140972140973140974140975140976140977140978140979140980140981140982140983140984140985140986140987140988140989140990140991140992140993140994140995140996140997140998140999141000141001141002141003141004141005141006141007141008141009141010141011141012141013141014141015141016141017141018141019141020141021141022141023141024141025141026141027141028141029141030141031141032141033141034141035141036141037141038141039141040141041141042141043141044141045141046141047141048141049141050141051141052141053141054141055141056141057141058141059141060141061141062141063141064141065141066141067141068141069141070141071141072141073141074141075141076141077141078141079141080141081141082141083141084141085141086141087141088141089141090141091141092141093141094141095141096141097141098141099141100141101141102141103141104141105141106141107141108141109141110141111141112141113141114141115141116141117141118141119141120141121141122141123141124141125141126141127141128141129141130141131141132141133141134141135141136141137141138141139141140141141141142141143141144141145141146141147141148141149141150141151141152141153141154141155141156141157141158141159141160141161141162141163141164141165141166141167141168141169141170141171141172141173141174141175141176141177141178141179141180141181141182141183141184141185141186141187141188141189141190141191141192141193141194141195141196141197141198141199141200141201141202141203141204141205141206141207141208141209141210141211141212141213141214141215141216141217141218141219141220141221141222141223141224141225141226141227141228141229141230141231141232141233141234141235141236141237141238141239141240141241141242141243141244141245141246141247141248141249141250141251141252141253141254141255141256141257141258141259141260141261141262141263141264141265141266141267141268141269141270141271141272141273141274141275141276141277141278141279141280141281141282141283141284141285141286141287141288141289141290141291141292141293141294141295141296141297141298141299141300141301141302141303141304141305141306141307141308141309141310141311141312141313141314141315141316141317141318141319141320141321141322141323141324141325141326141327141328141329141330141331141332141333141334141335141336141337141338141339141340141341141342141343141344141345141346141347141348141349141350141351141352141353141354141355141356141357141358141359141360141361141362141363141364141365141366141367141368141369141370141371141372141373141374141375141376141377141378141379141380141381141382141383141384141385141386141387141388141389141390141391141392141393141394141395141396141397141398141399141400141401141402141403141404141405141406141407141408141409141410141411141412141413141414141415141416141417141418141419141420141421141422141423141424141425141426141427141428141429141430141431141432141433141434141435141436141437141438141439141440141441141442141443141444141445141446141447141448141449141450141451141452141453141454141455141456141457141458141459141460141461141462141463141464141465141466141467141468141469141470141471141472141473141474141475141476141477141478141479141480141481141482141483141484141485141486141487141488141489141490141491141492141493141494141495141496141497141498141499141500141501141502141503141504141505141506141507141508141509141510141511141512141513141514141515141516141517141518141519141520141521141522141523141524141525141526141527141528141529141530141531141532141533141534141535141536141537141538141539141540141541141542141543141544141545141546141547141548141549141550141551141552141553141554141555141556141557141558141559141560141561141562141563141564141565141566141567141568141569141570141571141572141573141574141575141576141577141578141579141580141581141582141583141584141585141586141587141588141589141590141591141592141593141594141595141596141597141598141599141600141601141602141603141604141605141606141607141608141609141610141611141612141613141614141615141616141617141618141619141620141621141622141623141624141625141626141627141628141629141630141631141632141633141634141635141636141637141638141639141640141641141642141643141644141645141646141647141648141649141650141651141652141653141654141655141656141657141658141659141660141661141662141663141664141665141666141667141668141669141670141671141672141673141674141675141676141677141678141679141680141681141682141683141684141685141686141687141688141689141690141691141692141693141694141695141696141697141698141699141700141701141702141703141704141705141706141707141708141709141710141711141712141713141714141715141716141717141718141719141720141721141722141723141724141725141726141727141728141729141730141731141732141733141734141735141736141737141738141739141740141741141742141743141744141745141746141747141748141749141750141751141752141753141754141755141756141757141758141759141760141761141762141763141764141765141766141767141768141769141770141771141772141773141774141775141776141777141778141779141780141781141782141783141784141785141786141787141788141789141790141791141792141793141794141795141796141797141798141799141800141801141802141803141804141805141806141807141808141809141810141811141812141813141814141815141816141817141818141819141820141821141822141823141824141825141826141827141828141829141830141831141832141833141834141835141836141837141838141839141840141841141842141843141844141845141846141847141848141849141850141851141852141853141854141855141856141857141858141859141860141861141862141863141864141865141866141867141868141869141870141871141872141873141874141875141876141877141878141879141880141881141882141883141884141885141886141887141888141889141890141891141892141893141894141895141896141897141898141899141900141901141902141903141904141905141906141907141908141909141910141911141912141913141914141915141916141917141918141919141920141921141922141923141924141925141926141927141928141929141930141931141932141933141934141935141936141937141938141939141940141941141942141943141944141945141946141947141948141949141950141951141952141953141954141955141956141957141958141959141960141961141962141963141964141965141966141967141968141969141970141971141972141973141974141975141976141977141978141979141980141981141982141983141984141985141986141987141988141989141990141991141992141993141994141995141996141997141998141999142000142001142002142003142004142005142006142007142008142009142010142011142012142013142014142015142016142017142018142019142020142021142022142023142024142025142026142027142028142029142030142031142032142033142034142035142036142037142038142039142040142041142042142043142044142045142046142047142048142049142050142051142052142053142054142055142056142057142058142059142060142061142062142063142064142065142066142067142068142069142070142071142072142073142074142075142076142077142078142079142080142081142082142083142084142085142086142087142088142089142090142091142092142093142094142095142096142097142098142099142100142101142102142103142104142105142106142107142108142109142110142111142112142113142114142115142116142117142118142119142120142121142122142123142124142125142126142127142128142129142130142131142132142133142134142135142136142137142138142139142140142141142142142143142144142145142146142147142148142149142150142151142152142153142154142155142156142157142158142159142160142161142162142163142164142165142166142167142168142169142170142171142172142173142174142175142176142177142178142179142180142181142182142183142184142185142186142187142188142189142190142191142192142193142194142195142196142197142198142199142200142201142202142203142204142205142206142207142208142209142210142211142212142213142214142215142216142217142218142219142220142221142222142223142224142225142226142227142228142229142230142231142232142233142234142235142236142237142238142239142240142241142242142243142244142245142246142247142248142249142250142251142252142253142254142255142256142257142258142259142260142261142262142263142264142265142266142267142268142269142270142271142272142273142274142275142276142277142278142279142280142281142282142283142284142285142286142287142288142289142290142291142292142293142294142295142296142297142298142299142300142301142302142303142304142305142306142307142308142309142310142311142312142313142314142315142316142317142318142319142320142321142322142323142324142325142326142327142328142329142330142331142332142333142334142335142336142337142338142339142340142341142342142343142344142345142346142347142348142349142350142351142352142353142354142355142356142357142358142359142360142361142362142363142364142365142366142367142368142369142370142371142372142373142374142375142376142377142378142379142380142381142382142383142384142385142386142387142388142389142390142391142392142393142394142395142396142397142398142399142400142401142402142403142404142405142406142407142408142409142410142411142412142413142414142415142416142417142418142419142420142421142422142423142424142425142426142427142428142429142430142431142432142433142434142435142436142437142438142439142440142441142442142443142444142445142446142447142448142449142450142451142452142453142454142455142456142457142458142459142460142461142462142463142464142465142466142467142468142469142470142471142472142473142474142475142476142477142478142479142480142481142482142483142484142485142486142487142488142489142490142491142492142493142494142495142496142497142498142499142500142501142502142503142504142505142506142507142508142509142510142511142512142513142514142515142516142517142518142519142520142521142522142523142524142525142526142527142528142529142530142531142532142533142534142535142536142537142538142539142540142541142542142543142544142545142546142547142548142549142550142551142552142553142554142555142556142557142558142559142560142561142562142563142564142565142566142567142568142569142570142571142572142573142574142575142576142577142578142579142580142581142582142583142584142585142586142587142588142589142590142591142592142593142594142595142596142597142598142599142600142601142602142603142604142605142606142607142608142609142610142611142612142613142614142615142616142617142618142619142620142621142622142623142624142625142626142627142628142629142630142631142632142633142634142635142636142637142638142639142640142641142642142643142644142645142646142647142648142649142650142651142652142653142654142655142656142657142658142659142660142661142662142663142664142665142666142667142668142669142670142671142672142673142674142675142676142677142678142679142680142681142682142683142684142685142686142687142688142689142690142691142692142693142694142695142696142697142698142699142700142701142702142703142704142705142706142707142708142709142710142711142712142713142714142715142716142717142718142719142720142721142722142723142724142725142726142727142728142729142730142731142732142733142734142735142736142737142738142739142740142741142742142743142744142745142746142747142748142749142750142751142752142753142754142755142756142757142758142759142760142761142762142763142764142765142766142767142768142769142770142771142772142773142774142775142776142777142778142779142780142781142782142783142784142785142786142787142788142789142790142791142792142793142794142795142796142797142798142799142800142801142802142803142804142805142806142807142808142809142810142811142812142813142814142815142816142817142818142819142820142821142822142823142824142825142826142827142828142829142830142831142832142833142834142835142836142837142838142839142840142841142842142843142844142845142846142847142848142849142850142851142852142853142854142855142856142857142858142859142860142861142862142863142864142865142866142867142868142869142870142871142872142873142874142875142876142877142878142879142880142881142882142883142884142885142886142887142888142889142890142891142892142893142894142895142896142897142898142899142900142901142902142903142904142905142906142907142908142909142910142911142912142913142914142915142916142917142918142919142920142921142922142923142924142925142926142927142928142929142930142931142932142933142934142935142936142937142938142939142940142941142942142943142944142945142946142947142948142949142950142951142952142953142954142955142956142957142958142959142960142961142962142963142964142965142966142967142968142969142970142971142972142973142974142975142976142977142978142979142980142981142982142983142984142985142986142987142988142989142990142991142992142993142994142995142996142997142998142999143000143001143002143003143004143005143006143007143008143009143010143011143012143013143014143015143016143017143018143019143020143021143022143023143024143025143026143027143028143029143030143031143032143033143034143035143036143037143038143039143040143041143042143043143044143045143046143047143048143049143050143051143052143053143054143055143056143057143058143059143060143061143062143063143064143065143066143067143068143069143070143071143072143073143074143075143076143077143078143079143080143081143082143083143084143085143086143087143088143089143090143091143092143093143094143095143096143097143098143099143100143101143102143103143104143105143106143107143108143109143110143111143112143113143114143115143116143117143118143119143120143121143122143123143124143125143126143127143128143129143130143131143132143133143134143135143136143137143138143139143140143141143142143143143144143145143146143147143148143149143150143151143152143153143154143155143156143157143158143159143160143161143162143163143164143165143166143167143168143169143170143171143172143173143174143175143176143177143178143179143180143181143182143183143184143185143186143187143188143189143190143191143192143193143194143195143196143197143198143199143200143201143202143203143204143205143206143207143208143209143210143211143212143213143214143215143216143217143218143219143220143221143222143223143224143225143226143227143228143229143230143231143232143233143234143235143236143237143238143239143240143241143242143243143244143245143246143247143248143249143250143251143252143253143254143255143256143257143258143259143260143261143262143263143264143265143266143267143268143269143270143271143272143273143274143275143276143277143278143279143280143281143282143283143284143285143286143287143288143289143290143291143292143293143294143295143296143297143298143299143300143301143302143303143304143305143306143307143308143309143310143311143312143313143314143315143316143317143318143319143320143321143322143323143324143325143326143327143328143329143330143331143332143333143334143335143336143337143338143339143340143341143342143343143344143345143346143347143348143349143350143351143352143353143354143355143356143357143358143359143360143361143362143363143364143365143366143367143368143369143370143371143372143373143374143375143376143377143378143379143380143381143382143383143384143385143386143387143388143389143390143391143392143393143394143395143396143397143398143399143400143401143402143403143404143405143406143407143408143409143410143411143412143413143414143415143416143417143418143419143420143421143422143423143424143425143426143427143428143429143430143431143432143433143434143435143436143437143438143439143440143441143442143443143444143445143446143447143448143449143450143451143452143453143454143455143456143457143458143459143460143461143462143463143464143465143466143467143468143469143470143471143472143473143474143475143476143477143478143479143480143481143482143483143484143485143486143487143488143489143490143491143492143493143494143495143496143497143498143499143500143501143502143503143504143505143506143507143508143509143510143511143512143513143514143515143516143517143518143519143520143521143522143523143524143525143526143527143528143529143530143531143532143533143534143535143536143537143538143539143540143541143542143543143544143545143546143547143548143549143550143551143552143553143554143555143556143557143558143559143560143561143562143563143564143565143566143567143568143569143570143571143572143573143574143575143576143577143578143579143580143581143582143583143584143585143586143587143588143589143590143591143592143593143594143595143596143597143598143599143600143601143602143603143604143605143606143607143608143609143610143611143612143613143614143615143616143617143618143619143620143621143622143623143624143625143626143627143628143629143630143631143632143633143634143635143636143637143638143639143640143641143642143643143644143645143646143647143648143649143650143651143652143653143654143655143656143657143658143659143660143661143662143663143664143665143666143667143668143669143670143671143672143673143674143675143676143677143678143679143680143681143682143683143684143685143686143687143688143689143690143691143692143693143694143695143696143697143698143699143700143701143702143703143704143705143706143707143708143709143710143711143712143713143714143715143716143717143718143719143720143721143722143723143724143725143726143727143728143729143730143731143732143733143734143735143736143737143738143739143740143741143742143743143744143745143746143747143748143749143750143751143752143753143754143755143756143757143758143759143760143761143762143763143764143765143766143767143768143769143770143771143772143773143774143775143776143777143778143779143780143781143782143783143784143785143786143787143788143789143790143791143792143793143794143795143796143797143798143799143800143801143802143803143804143805143806143807143808143809143810143811143812143813143814143815143816143817143818143819143820143821143822143823143824143825143826143827143828143829143830143831143832143833143834143835143836143837143838143839143840143841143842143843143844143845143846143847143848143849143850143851143852143853143854143855143856143857143858143859143860143861143862143863143864143865143866143867143868143869143870143871143872143873143874143875143876143877143878143879143880143881143882143883143884143885143886143887143888143889143890143891143892143893143894143895143896143897143898143899143900143901143902143903143904143905143906143907143908143909143910143911143912143913143914143915143916143917143918143919143920143921143922143923143924143925143926143927143928143929143930143931143932143933143934143935143936143937143938143939143940143941143942143943143944143945143946143947143948143949143950143951143952143953143954143955143956143957143958143959143960143961143962143963143964143965143966143967143968143969143970143971143972143973143974143975143976143977143978143979143980143981143982143983143984143985143986143987143988143989143990143991143992143993143994143995143996143997143998143999144000144001144002144003144004144005144006144007144008144009144010144011144012144013144014144015144016144017144018144019144020144021144022144023144024144025144026144027144028144029144030144031144032144033144034144035144036144037144038144039144040144041144042144043144044144045144046144047144048144049144050144051144052144053144054144055144056144057144058144059144060144061144062144063144064144065144066144067144068144069144070144071144072144073144074144075144076144077144078144079144080144081144082144083144084144085144086144087144088144089144090144091144092144093144094144095144096144097144098144099144100144101144102144103144104144105144106144107144108144109144110144111144112144113144114144115144116144117144118144119144120144121144122144123144124144125144126144127144128144129144130144131144132144133144134144135144136144137144138144139144140144141144142144143144144144145144146144147144148144149144150144151144152144153144154144155144156144157144158144159144160144161144162144163144164144165144166144167144168144169144170144171144172144173144174144175144176144177144178144179144180144181144182144183144184144185144186144187144188144189144190144191144192144193144194144195144196144197144198144199144200144201144202144203144204144205144206144207144208144209144210144211144212144213144214144215144216144217144218144219144220144221144222144223144224144225144226144227144228144229144230144231144232144233144234144235144236144237144238144239144240144241144242144243144244144245144246144247144248144249144250144251144252144253144254144255144256144257144258144259144260144261144262144263144264144265144266144267144268144269144270144271144272144273144274144275144276144277144278144279144280144281144282144283144284144285144286144287144288144289144290144291144292144293144294144295144296144297144298144299144300144301144302144303144304144305144306144307144308144309144310144311144312144313144314144315144316144317144318144319144320144321144322144323144324144325144326144327144328144329144330144331144332144333144334144335144336144337144338144339144340144341144342144343144344144345144346144347144348144349144350144351144352144353144354144355144356144357144358144359144360144361144362144363144364144365144366144367144368144369144370144371144372144373144374144375144376144377144378144379144380144381144382144383144384144385144386144387144388144389144390144391144392144393144394144395144396144397144398144399144400144401144402144403144404144405144406144407144408144409144410144411144412144413144414144415144416144417144418144419144420144421144422144423144424144425144426144427144428144429144430144431144432144433144434144435144436144437144438144439144440144441144442144443144444144445144446144447144448144449144450144451144452144453144454144455144456144457144458144459144460144461144462144463144464144465144466144467144468144469144470144471144472144473144474144475144476144477144478144479144480144481144482144483144484144485144486144487144488144489144490144491144492144493144494144495144496144497144498144499144500144501144502144503144504144505144506144507144508144509144510144511144512144513144514144515144516144517144518144519144520144521144522144523144524144525144526144527144528144529144530144531144532144533144534144535144536144537144538144539144540144541144542144543144544144545144546144547144548144549144550144551144552144553144554144555144556144557144558144559144560144561144562144563144564144565144566144567144568144569144570144571144572144573144574144575144576144577144578144579144580144581144582144583144584144585144586144587144588144589144590144591144592144593144594144595144596144597144598144599144600144601144602144603144604144605144606144607144608144609144610144611144612144613144614144615144616144617144618144619144620144621144622144623144624144625144626144627144628144629144630144631144632144633144634144635144636144637144638144639144640144641144642144643144644144645144646144647144648144649144650144651144652144653144654144655144656144657144658144659144660144661144662144663144664144665144666144667144668144669144670144671144672144673144674144675144676144677144678144679144680144681144682144683144684144685144686144687144688144689144690144691144692144693144694144695144696144697144698144699144700144701144702144703144704144705144706144707144708144709144710144711144712144713144714144715144716144717144718144719144720144721144722144723144724144725144726144727144728144729144730144731144732144733144734144735144736144737144738144739144740144741144742144743144744144745144746144747144748144749144750144751144752144753144754144755144756144757144758144759144760144761144762144763144764144765144766144767144768144769144770144771144772144773144774144775144776144777144778144779144780144781144782144783144784144785144786144787144788144789144790144791144792144793144794144795144796144797144798144799144800144801144802144803144804144805144806144807144808144809144810144811144812144813144814144815144816144817144818144819144820144821144822144823144824144825144826144827144828144829144830144831144832144833144834144835144836144837144838144839144840144841144842144843144844144845144846144847144848144849144850144851144852144853144854144855144856144857144858144859144860144861144862144863144864144865144866144867144868144869144870144871144872144873144874144875144876144877144878144879144880144881144882144883144884144885144886144887144888144889144890144891144892144893144894144895144896144897144898144899144900144901144902144903144904144905144906144907144908144909144910144911144912144913144914144915144916144917144918144919144920144921144922144923144924144925144926144927144928144929144930144931144932144933144934144935144936144937144938144939144940144941144942144943144944144945144946144947144948144949144950144951144952144953144954144955144956144957144958144959144960144961144962144963144964144965144966144967144968144969144970144971144972144973144974144975144976144977144978144979144980144981144982144983144984144985144986144987144988144989144990144991144992144993144994144995144996144997144998144999145000145001145002145003145004145005145006145007145008145009145010145011145012145013145014145015145016145017145018145019145020145021145022145023145024145025145026145027145028145029145030145031145032145033145034145035145036145037145038145039145040145041145042145043145044145045145046145047145048145049145050145051145052145053145054145055145056145057145058145059145060145061145062145063145064145065145066145067145068145069145070145071145072145073145074145075145076145077145078145079145080145081145082145083145084145085145086145087145088145089145090145091145092145093145094145095145096145097145098145099145100145101145102145103145104145105145106145107145108145109145110145111145112145113145114145115145116145117145118145119145120145121145122145123145124145125145126145127145128145129145130145131145132145133145134145135145136145137145138145139145140145141145142145143145144145145145146145147145148145149145150145151145152145153145154145155145156145157145158145159145160145161145162145163145164145165145166145167145168145169145170145171145172145173145174145175145176145177145178145179145180145181145182145183145184145185145186145187145188145189145190145191145192145193145194145195145196145197145198145199145200145201145202145203145204145205145206145207145208145209145210145211145212145213145214145215145216145217145218145219145220145221145222145223145224145225145226145227145228145229145230145231145232145233145234145235145236145237145238145239145240145241145242145243145244145245145246145247145248145249145250145251145252145253145254145255145256145257145258145259145260145261145262145263145264145265145266145267145268145269145270145271145272145273145274145275145276145277145278145279145280145281145282145283145284145285145286145287145288145289145290145291145292145293145294145295145296145297145298145299145300145301145302145303145304145305145306145307145308145309145310145311145312145313145314145315145316145317145318145319145320145321145322145323145324145325145326145327145328145329145330145331145332145333145334145335145336145337145338145339145340145341145342145343145344145345145346145347145348145349145350145351145352145353145354145355145356145357145358145359145360145361145362145363145364145365145366145367145368145369145370145371145372145373145374145375145376145377145378145379145380145381145382145383145384145385145386145387145388145389145390145391145392145393145394145395145396145397145398145399145400145401145402145403145404145405145406145407145408145409145410145411145412145413145414145415145416145417145418145419145420145421145422145423145424145425145426145427145428145429145430145431145432145433145434145435145436145437145438145439145440145441145442145443145444145445145446145447145448145449145450145451145452145453145454145455145456145457145458145459145460145461145462145463145464145465145466145467145468145469145470145471145472145473145474145475145476145477145478145479145480145481145482145483145484145485145486145487145488145489145490145491145492145493145494145495145496145497145498145499145500145501145502145503145504145505145506145507145508145509145510145511145512145513145514145515145516145517145518145519145520145521145522145523145524145525145526145527145528145529145530145531145532145533145534145535145536145537145538145539145540145541145542145543145544145545145546145547145548145549145550145551145552145553145554145555145556145557145558145559145560145561145562145563145564145565145566145567145568145569145570145571145572145573145574145575145576145577145578145579145580145581145582145583145584145585145586145587145588145589145590145591145592145593145594145595145596145597145598145599145600145601145602145603145604145605145606145607145608145609145610145611145612145613145614145615145616145617145618145619145620145621145622145623145624145625145626145627145628145629145630145631145632145633145634145635145636145637145638145639145640145641145642145643145644145645145646145647145648145649145650145651145652145653145654145655145656145657145658145659145660145661145662145663145664145665145666145667145668145669145670145671145672145673145674145675145676145677145678145679145680145681145682145683145684145685145686145687145688145689145690145691145692145693145694145695145696145697145698145699145700145701145702145703145704145705145706145707145708145709145710145711145712145713145714145715145716145717145718145719145720145721145722145723145724145725145726145727145728145729145730145731145732145733145734145735145736145737145738145739145740145741145742145743145744145745145746145747145748145749145750145751145752145753145754145755145756145757145758145759145760145761145762145763145764145765145766145767145768145769145770145771145772145773145774145775145776145777145778145779145780145781145782145783145784145785145786145787145788145789145790145791145792145793145794145795145796145797145798145799145800145801145802145803145804145805145806145807145808145809145810145811145812145813145814145815145816145817145818145819145820145821145822145823145824145825145826145827145828145829145830145831145832145833145834145835145836145837145838145839145840145841145842145843145844145845145846145847145848145849145850145851145852145853145854145855145856145857145858145859145860145861145862145863145864145865145866145867145868145869145870145871145872145873145874145875145876145877145878145879145880145881145882145883145884145885145886145887145888145889145890145891145892145893145894145895145896145897145898145899145900145901145902145903145904145905145906145907145908145909145910145911145912145913145914145915145916145917145918145919145920145921145922145923145924145925145926145927145928145929145930145931145932145933145934145935145936145937145938145939145940145941145942145943145944145945145946145947145948145949145950145951145952145953145954145955145956145957145958145959145960145961145962145963145964145965145966145967145968145969145970145971145972145973145974145975145976145977145978145979145980145981145982145983145984145985145986145987145988145989145990145991145992145993145994145995145996145997145998145999146000146001146002146003146004146005146006146007146008146009146010146011146012146013146014146015146016146017146018146019146020146021146022146023146024146025146026146027146028146029146030146031146032146033146034146035146036146037146038146039146040146041146042146043146044146045146046146047146048146049146050146051146052146053146054146055146056146057146058146059146060146061146062146063146064146065146066146067146068146069146070146071146072146073146074146075146076146077146078146079146080146081146082146083146084146085146086146087146088146089146090146091146092146093146094146095146096146097146098146099146100146101146102146103146104146105146106146107146108146109146110146111146112146113146114146115146116146117146118146119146120146121146122146123146124146125146126146127146128146129146130146131146132146133146134146135146136146137146138146139146140146141146142146143146144146145146146146147146148146149146150146151146152146153146154146155146156146157146158146159146160146161146162146163146164146165146166146167146168146169146170146171146172146173146174146175146176146177146178146179146180146181146182146183146184146185146186146187146188146189146190146191146192146193146194146195146196146197146198146199146200146201146202146203146204146205146206146207146208146209146210146211146212146213146214146215146216146217146218146219146220146221146222146223146224146225146226146227146228146229146230146231146232146233146234146235146236146237146238146239146240146241146242146243146244146245146246146247146248146249146250146251146252146253146254146255146256146257146258146259146260146261146262146263146264146265146266146267146268146269146270146271146272146273146274146275146276146277146278146279146280146281146282146283146284146285146286146287146288146289146290146291146292146293146294146295146296146297146298146299146300146301146302146303146304146305146306146307146308146309146310146311146312146313146314146315146316146317146318146319146320146321146322146323146324146325146326146327146328146329146330146331146332146333146334146335146336146337146338146339146340146341146342146343146344146345146346146347146348146349146350146351146352146353146354146355146356146357146358146359146360146361146362146363146364146365146366146367146368146369146370146371146372146373146374146375146376146377146378146379146380146381146382146383146384146385146386146387146388146389146390146391146392146393146394146395146396146397146398146399146400146401146402146403146404146405146406146407146408146409146410146411146412146413146414146415146416146417146418146419146420146421146422146423146424146425146426146427146428146429146430146431146432146433146434146435146436146437146438146439146440146441146442146443146444146445146446146447146448146449146450146451146452146453146454146455146456146457146458146459146460146461146462146463146464146465146466146467146468146469146470146471146472146473146474146475146476146477146478146479146480146481146482146483146484146485146486146487146488146489146490146491146492146493146494146495146496146497146498146499146500146501146502146503146504146505146506146507146508146509146510146511146512146513146514146515146516146517146518146519146520146521146522146523146524146525146526146527146528146529146530146531146532146533146534146535146536146537146538146539146540146541146542146543146544146545146546146547146548146549146550146551146552146553146554146555146556146557146558146559146560146561146562146563146564146565146566146567146568146569146570146571146572146573146574146575146576146577146578146579146580146581146582146583146584146585146586146587146588146589146590146591146592146593146594146595146596146597146598146599146600146601146602146603146604146605146606146607146608146609146610146611146612146613146614146615146616146617146618146619146620146621146622146623146624146625146626146627146628146629146630146631146632146633146634146635146636146637146638146639146640146641146642146643146644146645146646146647146648146649146650146651146652146653146654146655146656146657146658146659146660146661146662146663146664146665146666146667146668146669146670146671146672146673146674146675146676146677146678146679146680146681146682146683146684146685146686146687146688146689146690146691146692146693146694146695146696146697146698146699146700146701146702146703146704146705146706146707146708146709146710146711146712146713146714146715146716146717146718146719146720146721146722146723146724146725146726146727146728146729146730146731146732146733146734146735146736146737146738146739146740146741146742146743146744146745146746146747146748146749146750146751146752146753146754146755146756146757146758146759146760146761146762146763146764146765146766146767146768146769146770146771146772146773146774146775146776146777146778146779146780146781146782146783146784146785146786146787146788146789146790146791146792146793146794146795146796146797146798146799146800146801146802146803146804146805146806146807146808146809146810146811146812146813146814146815146816146817146818146819146820146821146822146823146824146825146826146827146828146829146830146831146832146833146834146835146836146837146838146839146840146841146842146843146844146845146846146847146848146849146850146851146852146853146854146855146856146857146858146859146860146861146862146863146864146865146866146867146868146869146870146871146872146873146874146875146876146877146878146879146880146881146882146883146884146885146886146887146888146889146890146891146892146893146894146895146896146897146898146899146900146901146902146903146904146905146906146907146908146909146910146911146912146913146914146915146916146917146918146919146920146921146922146923146924146925146926146927146928146929146930146931146932146933146934146935146936146937146938146939146940146941146942146943146944146945146946146947146948146949146950146951146952146953146954146955146956146957146958146959146960146961146962146963146964146965146966146967146968146969146970146971146972146973146974146975146976146977146978146979146980146981146982146983146984146985146986146987146988146989146990146991146992146993146994146995146996146997146998146999147000147001147002147003147004147005147006147007147008147009147010147011147012147013147014147015147016147017147018147019147020147021147022147023147024147025147026147027147028147029147030147031147032147033147034147035147036147037147038147039147040147041147042147043147044147045147046147047147048147049147050147051147052147053147054147055147056147057147058147059147060147061147062147063147064147065147066147067147068147069147070147071147072147073147074147075147076147077147078147079147080147081147082147083147084147085147086147087147088147089147090147091147092147093147094147095147096147097147098147099147100147101147102147103147104147105147106147107147108147109147110147111147112147113147114147115147116147117147118147119147120147121147122147123147124147125147126147127147128147129147130147131147132147133147134147135147136147137147138147139147140147141147142147143147144147145147146147147147148147149147150147151147152147153147154147155147156147157147158147159147160147161147162147163147164147165147166147167147168147169147170147171147172147173147174147175147176147177147178147179147180147181147182147183147184147185147186147187147188147189147190147191147192147193147194147195147196147197147198147199147200147201147202147203147204147205147206147207147208147209147210147211147212147213147214147215147216147217147218147219147220147221147222147223147224147225147226147227147228147229147230147231147232147233147234147235147236147237147238147239147240147241147242147243147244147245147246147247147248147249147250147251147252147253147254147255147256147257147258147259147260147261147262147263147264147265147266147267147268147269147270147271147272147273147274147275147276147277147278147279147280147281147282147283147284147285147286147287147288147289147290147291147292147293147294147295147296147297147298147299147300147301147302147303147304147305147306147307147308147309147310147311147312147313147314147315147316147317147318147319147320147321147322147323147324147325147326147327147328147329147330147331147332147333147334147335147336147337147338147339147340147341147342147343147344147345147346147347147348147349147350147351147352147353147354147355147356147357147358147359147360147361147362147363147364147365147366147367147368147369147370147371147372147373147374147375147376147377147378147379147380147381147382147383147384147385147386147387147388147389147390147391147392147393147394147395147396147397147398147399147400147401147402147403147404147405147406147407147408147409147410147411147412147413147414147415147416147417147418147419147420147421147422147423147424147425147426147427
  1. Interrupt List Release 60 Last change 03jan99
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  3. --------!---FLAGS----------------------------
  4. The use of -> instead of = signifies that the indicated register or register
  5. pair contains a pointer to the specified item, rather than the item itself.
  6. Register pairs (such as AX:BX) indicate that the item is split across the
  7. registers, with the high-order half in the first register.
  8. One or more letters may follow the interrupt number; they have the following
  9. meanings: U - undocumented function, u - partially documented function,
  10. P - available only in protected mode, R - available only in real or V86 mode,
  11. C - callout or callback (usually hooked rather than called),
  12. O - obsolete (no longer present in current versions)
  13. --------!---CATEGORIES-----------------------
  14. The ninth column of the divider line preceding an entry usually contains a
  15. classification code (the entry has not been classified if that character is
  16. a dash). The codes currently in use are:
  17. A - applications, a - access software (screen readers, etc),
  18. B - BIOS, b - vendor-specific BIOS extensions,
  19. C - CPU-generated, c - caches/spoolers,
  20. D - DOS kernel, d - disk I/O enhancements,
  21. E - DOS extenders, e - electronic mail, F - FAX,
  22. f - file manipulation, G - debuggers/debugging tools, g - games,
  23. H - hardware, h - vendor-specific hardware,
  24. I - IBM workstation/terminal emulators, i - system info/monitoring,
  25. J - Japanese, j - joke programs,
  26. K - keyboard enhancers, k - file/disk compression,
  27. l - shells/command interpreters,
  28. M - mouse/pointing device, m - memory management,
  29. N - network, n - non-traditional input devices,
  30. O - other operating systems,
  31. P - printer enhancements, p - power management,
  32. Q - DESQview/TopView and Quarterdeck programs,
  33. R - remote control/file access, r - runtime support,
  34. S - serial I/O, s - sound/speech,
  35. T - DOS-based task switchers/multitaskers, t - TSR libraries
  36. U - resident utilities, u - emulators,
  37. V - video, v - virus/antivirus,
  38. W - MS Windows,
  39. X - expansion bus BIOSes, x - non-volatile config storage
  40. y - security, * - reserved (and not otherwise classified)
  41. --------C-00---------------------------------
  42. INT 00 C - CPU-generated - DIVIDE ERROR
  43. Desc: generated if the divisor of a DIV or IDIV instruction is zero or the
  44. quotient overflows the result register; DX and AX will be unchanged.
  45. Notes: on an 8086/8088, the return address points to the following instruction
  46. on an 80286+, the return address points to the divide instruction
  47. an 8086/8088 will generate this interrupt if the result of a division
  48. is 80h (byte) or 8000h (word)
  49. SeeAlso: INT 04,OPCODE "AAD"
  50. --------G-00---------------------------------
  51. INT 00 - Zenith - ROM DEBUGGER
  52. Desc: invokes the ROM Debugger when at the BIOS level; equivalent to
  53. pressing Ctrl-Alt-Ins on booting.
  54. Note: since DOS revectors INT 00, it is necessary to restore this vector to
  55. its original ROM BIOS value in order to invoke the debugger once DOS
  56. loads
  57. SeeAlso: INT 03"Columbia"
  58. --------C-01---------------------------------
  59. INT 01 C - CPU-generated - SINGLE STEP
  60. Desc: generated after each instruction if TF (trap flag) is set; TF is
  61. cleared on invoking the single-step interrupt handler
  62. Notes: interrupts are prioritized such that external interrupts are invoked
  63. after the INT 01 pushes CS:IP/FLAGS and clears TF, but before the
  64. first instruction of the handler executes
  65. used by debuggers for single-instruction execution tracing, such as
  66. MS-DOS DEBUG's T command
  67. SeeAlso: INT 03"CPU"
  68. --------C-01---------------------------------
  69. INT 01 C - CPU-generated (80386+) - DEBUGGING EXCEPTIONS
  70. Desc: generated by the CPU on various occurrences which may be of interest
  71. to a debugger program
  72. Note: events which may trigger the interrupt:
  73. Instruction address breakpoint fault - will return to execute inst
  74. Data address breakpoint trap - will return to following instruction
  75. General detect fault, debug registers in use
  76. Task-switch breakpoint trap
  77. undocumented 386/486 opcode F1h - will return to following instruc
  78. SeeAlso: INT 03"CPU"
  79. --------H-02---------------------------------
  80. INT 02 C - external hardware - NON-MASKABLE INTERRUPT
  81. Desc: generated by the CPU when the input to the NMI pin is asserted
  82. Notes: return address points to start of interrupted instruction on 80286+
  83. on the 80286+, further NMIs are disabled until the next IRET
  84. instruction, but one additional NMI is remembered by the hardware
  85. and will be serviced after the IRET instruction reenables NMIs
  86. maskable interrupts may interrupt the NMI handler if interrupts are
  87. enabled
  88. although the Intel documentation states that this interrupt is
  89. typically used for power-failure procedures, it has many other uses
  90. on IBM-compatible machines:
  91. Memory parity error: all except Jr, CONV, and some machines
  92. without memory parity
  93. Breakout switch on hardware debuggers
  94. Coprocessor interrupt: all except Jr and CONV
  95. Keyboard interrupt: Jr, CONV
  96. I/O channel check: CONV, PS50+
  97. Disk-controller power-on request: CONV
  98. System suspend: CONV
  99. Real-time clock: CONV
  100. System watch-dog timer, time-out interrupt: PS50+
  101. DMA timer time-out interrupt: PS50+
  102. Low battery: HP 95LX
  103. Module pulled: HP 95LX
  104. --------m-02----SI0714-----------------------
  105. INT 02 U - STB RAPIDMAP.SYS - ???
  106. SI = 0714h
  107. ES:DI -> ???
  108. Return: ???
  109. SeeAlso: INT 67/AX=6100h"STB",PORT 00E1h"STB"
  110. --------C-03---------------------------------
  111. INT 03 C - CPU-generated - BREAKPOINT
  112. Desc: generated by the one-byte breakpoint instruction (opcode CCh)
  113. Notes: used by debuggers to implement breakpoints, such as MS-DOS DEBUG's G
  114. command
  115. also used by Turbo Pascal versions 1,2,3 when {$U+} specified
  116. return address points to byte following the breakpoint instruction
  117. called by Novell DOS 7 EMM386 after displaying an exception error
  118. message (GPF, illegal opcodes, etc.) and before waiting for user
  119. input
  120. called by QEMM-386 if the user presses 'I' (undocumented) when prompted
  121. after an exception error message
  122. SeeAlso: INT 01"CPU"
  123. --------G-03---------------------------------
  124. INT 03 - Columbia PCs (desktop,VP portables) - ROM DEBUGGER
  125. Desc: invokes the ROM Debugger if INT 03 has not been revectored; equivalent
  126. to pressing Esc on booting.
  127. SeeAlso: INT 00"Zenith",INT 03"Realia"
  128. --------G-03---------------------------------
  129. INT 03 - Realia COBOL - DEBUGGER SUPPORT
  130. Note: Realia COBOL checks for a signature eight bytes prior to the interrupt
  131. handler when it starts up
  132. BUG: if the offset of the INT 03 vector is less than 8, the compiler and
  133. all executables generated by it will crash the system
  134. SeeAlso: INT 03"Columbia"
  135. --------G-03---------------------------------
  136. INT 03 U - Watcom WVIDEO, Watcom WD - OUTPUT DEBUGGING MESSAGE
  137. STACK: DWORD selector
  138. DWORD offset of ASCIZ message to display
  139. Notes: the INT 03h instruction which invokes the debugger must be followed by
  140. a JMP SHORT and the signature string "WVIDEO"
  141. to check whether this interface is available, define a public byte
  142. variable named ___WD_Present, which the debugger will set to 01h
  143. before running the program
  144. SeeAlso: AX=0910h
  145. --------U-03---------------------------------
  146. INT 03 - DTown Utilities - POP UP
  147. Program: DTown Software Development's DTown Utilities contains various tools
  148. which are useful to programmers, such as a memory viewer and
  149. disassembler
  150. Note: DTU pops up on INT 03 (if not hooked by a debugger) to allow the
  151. user to inspect memory or code when the machine crashes; various
  152. memory managers will invoke INT 03 when displaying a CPU exception
  153. error message (either automatically or when the user presses a
  154. particular key)
  155. SeeAlso: INT 2D/AL=20h"DTown"
  156. --------G-030000-----------------------------
  157. INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET Soft-ICE VERSION
  158. AX = 0000h
  159. SI = magic value 4647h ('FG')
  160. DI = magic value 4A4Dh ('JM')
  161. Return: SI = BCD version (0280h = v2.80)
  162. SeeAlso: INT 03/AX=0910h
  163. --------G-0301-------------------------------
  164. INT 03 - Soft-ICE - BACK DOOR COMMANDS - ???
  165. AH = 01h
  166. SI = magic value 4647h ('FG')
  167. DI = magic value 4A4Dh ('JM')
  168. Return: ???
  169. SeeAlso: AX=0000h,AX=090Bh,INT 03/AH=10h
  170. --------G-030900-----------------------------
  171. INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
  172. AX = 0900h
  173. SI = magic value 4647h ('FG')
  174. DI = magic value 4A4Dh ('JM')
  175. DS:BX -> ???
  176. CX = ???
  177. DX = ???
  178. Return: ???
  179. SeeAlso: AX=0000h,AH=01h,AX=0902h,AX=0914h
  180. --------G-030902-----------------------------
  181. INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - POPUP & START A DEBUG SESSION
  182. AX = 0902h
  183. SI = magic value 4647h ('FG')
  184. DI = magic value 4A4Dh ('JM')
  185. DS:BX -> initial register values (see #00001)
  186. Return: registers as specified in initial register values table
  187. Note: This function is called by LDR.EXE in loading a program to
  188. be debugged. After executing the function, Soft-ICE pops up its
  189. debugging window and you may start debugging your program.
  190. Return: ???
  191. SeeAlso: AX=0000h,AX=090Ah,AX=0910h,AX=0914h
  192. Format of Soft-ICE initial register values:
  193. Offset Size Description (Table 00001)
  194. 00h WORD initial value of SP
  195. 02h WORD initial value of SS
  196. 04h WORD initial value of IP
  197. 06h WORD initial value of CS
  198. 08h WORD initial value of DS and ES
  199. 0Ah WORD ???
  200. 0Ch WORD ???
  201. 0Eh WORD ???
  202. 10h WORD initial value of AX
  203. 12h WORD ??? (defaults to 000AH ???)
  204. 14h WORD ??? (defaults to 0001H ???)
  205. 16h WORD ??? (defaults to 0100H ???)
  206. --------G-030903-----------------------------
  207. INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
  208. AX = 0903h
  209. SI = magic value 4647h ('FG')
  210. DI = magic value 4A4Dh ('JM')
  211. DS:BX -> ???
  212. CX = ???
  213. DX = ???
  214. Return: ???
  215. SeeAlso: AX=0000h,AX=0902h,AX=0907h,AX=0914h
  216. --------G-030907-----------------------------
  217. INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
  218. AX = 0907h
  219. SI = magic value 4647h ('FG')
  220. DI = magic value 4A4Dh ('JM')
  221. DS:BX -> ???
  222. CX = ???
  223. DX = ???
  224. Return: ???
  225. SeeAlso: AX=0000h,AX=0903h,AX=090Ah,AX=0914h
  226. --------G-03090A-----------------------------
  227. INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
  228. AX = 090Ah
  229. SI = magic value 4647h ('FG')
  230. DI = magic value 4A4Dh ('JM')
  231. DS:BX -> ???
  232. CX = ???
  233. DX = ???
  234. Return: ???
  235. SeeAlso: AX=0000h,AX=0907h,AX=090Bh,AX=0914h
  236. --------G-03090B-----------------------------
  237. INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
  238. AX = 090Bh
  239. SI = magic value 4647h ('FG')
  240. DI = magic value 4A4Dh ('JM')
  241. DS:BX -> ???
  242. CX = ???
  243. DX = ???
  244. Return: ???
  245. SeeAlso: AX=0000h,AX=090Ah,AX=0910h,AX=0914h
  246. --------G-030910-----------------------------
  247. INT 03 - Soft-ICE - BACK DOOR COMMANDS - DISPLAY STRING IN Soft-ICE WINDOW
  248. AX = 0910h
  249. SI = magic value 4647h ('FG')
  250. DI = magic value 4A4Dh ('JM')
  251. DS:DX -> ASCIZ string to display (max 100 bytes, 0Dh OK)
  252. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  253. SeeAlso: INT 03"WVIDEO"
  254. --------G-030911-----------------------------
  255. INT 03 - Soft-ICE - BACK DOOR COMMANDS - EXECUTE Soft-ICE COMMAND
  256. AX = 0911h
  257. SI = magic value 4647h ('FG')
  258. DI = magic value 4A4Dh ('JM')
  259. DS:DX -> ASCIZ command string (max 100 bytes, 0Dh OK)
  260. Return: nothing
  261. SeeAlso: AX=0912h,AX=0913h
  262. --------G-030912-----------------------------
  263. INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET BREAKPOINT INFORMATION
  264. AX = 0912h
  265. SI = magic value 4647h ('FG')
  266. DI = magic value 4A4Dh ('JM')
  267. Return: BH = entry number of last breakpoint set
  268. BL = type of last breakpoint set (see #00002)
  269. DH = entry number of last breakpoint to be triggered
  270. DL = type of last triggered breakpoint (see #00002)
  271. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  272. SeeAlso: AX=0911h,AX=0913h,AX=0914h
  273. (Table 00002)
  274. Values for Soft-ICE breakpoint type:
  275. 00h BPM (breakpoint register types)
  276. 01h I/O
  277. 02h INTerrupt
  278. 03h BPX (INT 03-style breakpoint)
  279. 04h reserved
  280. 05h range
  281. --------G-030913-----------------------------
  282. INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - SET Soft-ICE BREAKPOINT
  283. AX = 0913h
  284. SI = magic value 4647h ('FG')
  285. DI = magic value 4A4Dh ('JM')
  286. DS:DX -> breakpoint structure (see #00003)
  287. Return: AX = status
  288. 00h successful
  289. BX = breakpoint number
  290. 03h breakpoint table full
  291. 06h memory limit error
  292. 07h I/O limit error
  293. 09h range limit error
  294. 16h duplicate breakpoint
  295. SeeAlso: AX=0911h,AX=0912h,AX=0914h
  296. Format of Soft-ICE breakpoint structure:
  297. Offset Size Description (Table 00003)
  298. 00h BYTE breakpoint type (see #00004)
  299. 01h DWORD breakpoint address 1
  300. (lower range limit for memory BPs,
  301. interrupt number for interrupt BPs,
  302. address of BP for execution BPs,
  303. I/O address (only word) for I/O BPs)
  304. 05h DWORD breakpoint address 2
  305. (upper range limit for memory BPs,
  306. optional value to check for for interrupt BPs,
  307. overlay number (0 = root) for execution BPs)
  308. 09h DWORD breakpoint address 3
  309. 0Dh BYTE breakpoint mode 1 (see #00005)
  310. (for interrupt BPs = register to check
  311. 00h no value checking
  312. 01h check AL
  313. 02h check AH
  314. 03h check AX)
  315. 0Eh BYTE breakpoint mode 2 (see #00005)
  316. 0Fh BYTE breakpoint size (00h byte, 01h word, 03h dword)
  317. 10h BYTE breakpoint pass count before program stop
  318. 11h BYTE breakpoint state
  319. Note: all unused fields should contain zeros
  320. (Table 00004)
  321. Values for Soft-ICE breakpoint type:
  322. 00h memory location
  323. 01h memory range
  324. 03h I/O
  325. 04h interrupt
  326. 05h execution break
  327. (Table 00005)
  328. Values for Soft-ICE breakpoint mode:
  329. 01h read
  330. 02h write
  331. 04h execution
  332. --------G-030914-----------------------------
  333. INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - REMOVE Soft-ICE BREAKPOINT
  334. AX = 0914h
  335. SI = magic value 4647h ('FG')
  336. DI = magic value 4A4Dh ('JM')
  337. BX = breakpoint number (returned by AX=0913h)
  338. Return: BX = ???
  339. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  340. SeeAlso: AX=0912h,AX=0913h
  341. --------G-030918-----------------------------
  342. INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
  343. AX = 0918h
  344. SI = magic value 4647h ('FG')
  345. DI = magic value 4A4Dh ('JM')
  346. DS:BX -> ???
  347. CX = ???
  348. DX = ???
  349. Return: ???
  350. SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AX=0914h,INT 03/AH=10h
  351. --------G-0310-------------------------------
  352. INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
  353. AH = 10h
  354. SI = magic value 4647h ('FG')
  355. DI = magic value 4A4Dh ('JM')
  356. Return: ???
  357. SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AH=01h,INT 03/AH=11h
  358. --------G-0311-------------------------------
  359. INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
  360. AH = 11h
  361. SI = magic value 4647h ('FG')
  362. DI = magic value 4A4Dh ('JM')
  363. Return: none???
  364. SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AH=10h,INT 03/AX=130Ch
  365. --------G-03130C-----------------------------
  366. INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
  367. AX = 130Ch
  368. SI = magic value 4647h ('FG')
  369. DI = magic value 4A4Dh ('JM')
  370. BX = ???
  371. CX = ???
  372. DX = ???
  373. Return: AX = ??? (1300h)
  374. SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AH=11h,INT 03/AX=130Eh
  375. --------G-03130E-----------------------------
  376. INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
  377. AX = 130Eh
  378. SI = magic value 4647h ('FG')
  379. DI = magic value 4A4Dh ('JM')
  380. BX = ???
  381. CX = ???
  382. DX = ???
  383. Return: AX = ??? (1300h)
  384. SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AX=130Ch,INT 03/AX=1313h
  385. --------G-031313-----------------------------
  386. INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
  387. AX = 1313h
  388. SI = magic value 4647h ('FG')
  389. DI = magic value 4A4Dh ('JM')
  390. BX = ???
  391. CX = ???
  392. DX = ???
  393. Return: AX = ??? (1300h)
  394. SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AX=130Eh
  395. --------G-030900-----------------------------
  396. INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
  397. AX = 0900h
  398. SI = magic value 4647h ('FG')
  399. DI = magic value 4A4Dh ('JM')
  400. Return: none???
  401. SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AH=10h,INT 03/AH=12h
  402. --------C-04---------------------------------
  403. INT 04 C - CPU-generated - INTO DETECTED OVERFLOW
  404. Desc: the INTO instruction will generate this interrupt if OF (Overflow Flag)
  405. is set; otherwise, INTO is effectively a NOP
  406. Note: may be used for convenient overflow testing (to prevent errors from
  407. propagating) instead of JO or a JNO/JMP combination
  408. SeeAlso: INT 00"CPU",OPCODE "AAD",OPCODE "AAM"
  409. --------B-05---------------------------------
  410. INT 05 - PRINT SCREEN
  411. Desc: dump the current text screen to the first printer
  412. Notes: normally invoked by the INT 09 handler when PrtSc key is pressed, but
  413. may be invoked directly by applications
  414. byte at 0050h:0000h contains status used by default handler
  415. 00h not active
  416. 01h PrtSc in progress
  417. FFh last PrtSc encountered error
  418. default handler is at F000h:FF54h in IBM PC and 100%-compatible BIOSes
  419. since the BOUND instruction also calls INT 05h, but returns control
  420. to the BOUND instruction, a failed BOUND check will cause an infinite
  421. loop of PrtScreens unless the INT 05 handler is aware of the problem
  422. and checks whether the interrupt was invoked by a BOUND instruction
  423. BUG: some old BIOSes/applications appear to destroy BP on return
  424. SeeAlso: INT 10/AH=12h/BL=20h,INT 4A"Tandy 2000",INT 5E"TI Professional"
  425. SeeAlso: INT 80"Phar Lap"
  426. --------C-05---------------------------------
  427. INT 05 C - CPU-generated (80186+) - BOUND RANGE EXCEEDED
  428. Desc: generated by BOUND instruction when the value to be tested is less than
  429. the indicated lower bound or greater than the indicated upper bound.
  430. Note: returning from this interrupt re-executes the failing BOUND instruction
  431. --------P-05454A-----------------------------
  432. INT 05 U - PSPS v2.01 - EJECT PAGE
  433. AX = 454Ah ('EJ')
  434. Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
  435. Technologies
  436. Note: sends a ^D to the current printer
  437. SeeAlso: AX=4E57h,AX=5053h,AX=554Eh
  438. --------P-054E57-----------------------------
  439. INT 05 U - PSPS v2.01 - SET PARAMETERS
  440. AX = 4E57h ('NW')
  441. ES:SI -> 11-byte buffer containing new settings
  442. Return: buffer filled
  443. SeeAlso: AX=454Ah,AX=5053h,INT 17/AH=63h
  444. --------P-055053-----------------------------
  445. INT 05 U - PSPS v2.01 - GET PARAMETERS
  446. AX = 5053h ('PS')
  447. ES:SI -> 11-byte buffer for settings
  448. Return: buffer filled
  449. SeeAlso: AX=4E57h,AX=554Eh,INT 17/AH=64h
  450. --------P-05554E-----------------------------
  451. INT 05 U - PSPS v2.01 - UNINSTALL
  452. AX = 554Eh ('UN')
  453. Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
  454. Technologies
  455. SeeAlso: AX=454Ah,AX=4E57h,INT 17/AH=62h
  456. --------C-06---------------------------------
  457. INT 06 C - CPU-generated (80286+) - INVALID OPCODE
  458. Desc: this interrupt is generated when the CPU attempts to execute an
  459. invalid opcode (most protected-mode instructions are considered
  460. invalid in real mode) or a BOUND, LDS, LES, or LIDT instruction
  461. which specifies a register rather than a memory address
  462. Notes: return address points to beginning of invalid instruction
  463. with proper programming, this interrupt may be used to emulate
  464. instructions which do not exist; many 386 BIOSes emulate the 80286
  465. undocumented LOADALL instruction which was removed from the 80386+
  466. generated by the 80386+ when the LOCK prefix is used with instructions
  467. other than BTS, BTR, BTC, XCHG, XADD (486), CMPXCHG (486), INC, DEC,
  468. NOT, NEG, ADD, ADC, SUB, SBB, AND, OR, or XOR, or any instruction
  469. not accessing memory.
  470. SeeAlso: INT 0C"CPU",INT 0D"CPU"
  471. --------b-06---------------------------------
  472. INT 06 C - HP 95LX - SLEEP/WAKEUP
  473. Desc: this interrupt is called just before going into light or deep
  474. (shutdown) sleep and just after returning from light or deep sleep
  475. SeeAlso: INT 0B"HP 95LX",INT 15/AX=4DD4h,INT 15/AH=4Eh
  476. --------V-06---------------------------------
  477. INT 06 U - no-name clone - GRAPHICS CHARACTER TABLE (NOT A VECTOR!)
  478. Desc: points at graphics data for characters 00h-7Fh of the current font
  479. SeeAlso: INT 43"EGA",INT 44"VIDEO"
  480. --------C-07---------------------------------
  481. INT 07 C - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE
  482. Desc: this interrupt is automatically called if a coprocessor instruction is
  483. encountered when no coprocessor is installed
  484. Note: can be used to emulate a numeric coprocessor in software
  485. SeeAlso: INT 09"CPU"
  486. --------H-08---------------------------------
  487. INT 08 C - IRQ0 - SYSTEM TIMER
  488. Desc: generated 18.2 times per second by channel 0 of the 8254 system timer,
  489. this interrupt is used to keep the time-of-day clock updated
  490. Notes: programs which need to be invoked regularly should use INT 1C unless
  491. they need to reprogram the timer while still keeping the time-of-day
  492. clock running at the proper rate
  493. default handler is at F000h:FEA5h in IBM PC and 100%-compatible BIOSes
  494. may be masked by setting bit 0 on I/O port 21h
  495. SeeAlso: INT 1C,INT 4A"SYSTEM",INT 50"DESQview",INT 58"DoubleDOS",INT 70"IRQ8"
  496. SeeAlso: INT 78"GO32",INT D8"Screen Thief",MEM 0040h:0040h,MEM 0040h:006Ch
  497. --------C-08---------------------------------
  498. INT 08 C - CPU-generated (80286+) - DOUBLE EXCEPTION DETECTED
  499. Desc: called when multiple exceptions occur on one instruction, or an
  500. exception occurs in an exception handler
  501. Notes: called in protected mode if an interrupt above the defined limit of
  502. the interrupt vector table occurs
  503. return address points at beginning of instruction with errors or the
  504. beginning of the instruction which was about to execute when the
  505. external interrupt caused the exception
  506. if an exception occurs in the double fault handler, the CPU goes into
  507. SHUTDOWN mode (which circuitry in the PC/AT converts to a reset);
  508. this "triple fault" is a faster way of returning to real mode on
  509. many 80286 machines than the standard keyboard controller reset
  510. --------H-09---------------------------------
  511. INT 09 C - IRQ1 - KEYBOARD DATA READY
  512. Desc: this interrupt is generated when data is received from the keyboard.
  513. This is normally a scan code (from either a keypress *or* a key
  514. release), but may also be an ACK or NAK of a command on AT-class
  515. keyboards.
  516. Notes: this IRQ may be masked by setting bit 1 on I/O port 21h
  517. if the BIOS supports an enhanced (101/102-key) keyboard, it calls
  518. INT 15/AH=4Fh after reading the scan code (see #00006) from the
  519. keyboard and before further processing; all further processing uses
  520. the scan code returned from INT 15/AH=4Fh
  521. the default interrupt handler is at F000h:E987h in 100%-compatible
  522. BIOSes
  523. the interrupt handler performs the following actions for certain
  524. special keystrokes:
  525. Ctrl-Break clear keyboard buffer, place word 0000h in buffer,
  526. invoke INT 1B, and set flag at 0040h:0071h
  527. SysReq invoke INT 15/AH=85h (SysReq is often labeled SysRq)
  528. Ctrl-Numlock place system in a tight wait loop until next INT 09
  529. Ctrl-Alt-Del jump to BIOS startup code (either F000h:FFF0h or the
  530. destination of the jump at that address)
  531. Shift-PrtSc invoke INT 05
  532. Ctrl-Alt-Plus (HP Vectra) enable keyclick
  533. Ctrl-Alt-Plus (many clones) set clock speed to high
  534. Ctrl-Alt-Minus (HP Vectra) reduce keyclick volume
  535. Ctrl-Alt-Minus (many clones) set clock speed to low
  536. Ctrl-Alt-SysReq (HP Vectra) generate hard reset
  537. Ctrl-Alt-S (many clones) run BIOS setup program
  538. Ctrl-Alt-Esc (many clones) run BIOS setup program
  539. Ctrl-Alt-Ins (many clones) run BIOS setup program
  540. Ctrl-Alt-LeftShift-GrayMinus (some clones) turn off system cache
  541. Ctrl-Alt-LeftShift-GrayPlus (some clones) turn on system cache
  542. DR DOS hooks this interrupt to control the cursor shape (underscore/
  543. half block) for overwrite/insert mode
  544. DR Multiuser DOS hooks this interrupt for cursor shape control and to
  545. control whether Ctrl-Alt-Del reboots the current session or the
  546. entire system
  547. SeeAlso: INT 05"PRINT SCREEN",INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h
  548. SeeAlso: INT 16/AH=00h,INT 16/AH=10h,INT 1B,INT 2F/AX=A901h,INT 4A/AH=00h"TI"
  549. SeeAlso: INT 51"DESQview",INT 59"DoubleDOS",INT 79"GO32"
  550. (Table 00006)
  551. Values for keyboard make/break (scan) code:
  552. 01h Esc 31h N
  553. 02h 1 ! 32h M
  554. 03h 2 @ 33h , < 63h F16
  555. 04h 3 # 34h . > 64h F17
  556. 05h 4 $ 35h / ? 65h F18
  557. 06h 5 % 36h Right Shift 66h F19
  558. 07h 6 ^ 37h Grey* 67h F20
  559. 08h 7 & 38h Alt 68h F21 (Fn) [*]
  560. 09h 8 * 39h SpaceBar 69h F22
  561. 0Ah 9 ( 3Ah CapsLock 6Ah F23
  562. 0Bh 0 ) 3Bh F1 6Bh F24
  563. 0Ch - _ 3Ch F2 6Ch --
  564. 0Dh = + 3Dh F3 6Dh EraseEOF
  565. 0Eh Backspace 3Eh F4
  566. 0Fh Tab 3Fh F5 6Fh Copy/Play
  567. 10h Q 40h F6
  568. 11h W 41h F7
  569. 12h E 42h F8 72h CrSel
  570. 13h R 43h F9 73h <delta> [*]
  571. 14h T 44h F10 74h ExSel
  572. 15h Y 45h NumLock 75h --
  573. 16h U 46h ScrollLock 76h Clear
  574. 17h I 47h Home 77h [Note2] Joyst But1
  575. 18h O 48h UpArrow 78h [Note2] Joyst But2
  576. 19h P 49h PgUp 79h [Note2] Joyst Right
  577. 1Ah [ { 4Ah Grey- 7Ah [Note2] Joyst Left
  578. 1Bh ] } 4Bh LeftArrow 7Bh [Note2] Joyst Up
  579. 1Ch Enter 4Ch Keypad 5 7Ch [Note2] Joyst Down
  580. 1Dh Ctrl 4Dh RightArrow 7Dh [Note2] right mouse
  581. 1Eh A 4Eh Grey+ 7Eh [Note2] left mouse
  582. 1Fh S 4Fh End
  583. 20h D 50h DownArrow
  584. 21h F 51h PgDn
  585. 22h G 52h Ins
  586. 23h H 53h Del
  587. 24h J 54h SysReq ---non-key codes---
  588. 25h K 55h [Note1] F11 00h kbd buffer full
  589. 26h L 56h left \| (102-key)
  590. 27h ; : 57h F11 AAh self-test complete
  591. 28h ' " 58h F12 E0h prefix code
  592. 29h ` ~ 59h [Note1] F15 E1h prefix code
  593. 2Ah Left Shift 5Ah PA1 EEh ECHO
  594. 2Bh \ | 5Bh F13 (LWin) F0h prefix code (key break)
  595. 2Ch Z 5Ch F14 (RWin) FAh ACK
  596. 2Dh X 5Dh F15 (Menu) FCh diag failure (MF-kbd)
  597. 2Eh C FDh diag failure (AT-kbd)
  598. 2Fh V FEh RESEND
  599. 30h B FFh kbd error/buffer full
  600. Notes: scan codes 56h-E1h are only available on the extended (101/102-key)
  601. keyboard and Host Connected (122-key) keyboard; scan codes 5Bh-5Dh
  602. are only available on the 122-key keyboard and the Microsoft Natural
  603. Keyboard; scan codes 5Eh-76h are only available on the 122-key
  604. keyboard
  605. in the default configuration, break codes are the make scan codes with
  606. the high bit set; make codes 60h,61h,70h, etc. are not available
  607. because the corresponding break codes conflict with prefix codes
  608. (code 2Ah is available because the self-test result code AAh is only
  609. sent on keyboard initialization). An alternate keyboard
  610. configuration can be enabled on AT and later systems with enhanced
  611. keyboards, in which break codes are the same as make codes, but
  612. prefixed with an F0h scan code
  613. prefix code E0h indicates that the following make/break code is for a
  614. "gray" duplicate to a key which existed on the original PC keyboard;
  615. prefix code E1h indicates that the following make code has no
  616. corresponding break code (currently only the Pause key generates no
  617. break code)
  618. the Microsoft Natural Keyboard sends make codes 5Bh, 5Ch, and 5Dh
  619. (all with an E0h prefix) for the Left Windows, Right Windows, and
  620. Menu keys on the bottom row
  621. the European "Cherry G81-3000 SAx/04" keyboard contains contacts for
  622. four additional keys, which can be made available by a user
  623. modification; the three new keys located directly below the cursor
  624. pad's Delete, End, and PgDn keys send make codes 66h-68h (F19-F21);
  625. the fourth new key, named <delta>, sends make code 73h
  626. the SysReq key is often labeled SysRq
  627. the "Accord" ergonomic keyboard with optional touchpad (no other
  628. identification visible on keyboard or in owner's booklet) has an
  629. additional key above the Grey- key marked with a left-pointing
  630. triangle and labeled "Fn" in the owner's booklet which returns
  631. scan codes E0h 68h on make and E0h E8h on break
  632. the "Preh Commander AT" keyboard with additional F11-F22 keys treats
  633. F11-F20 as Shift-F1..Shift-F10 and F21/F22 as Ctrl-F1/Ctrl-F2; the
  634. Eagle PC-2 keyboard with F11-F24 keys treated those additional keys
  635. in the same way
  636. [Note1] the "Cherry G80-0777" keyboard has additional F11-F15 keys
  637. which generate make codes 55h-59h; some other extended keyboards
  638. generate codes 55h and 56h for F11 and F12, which cannot be managed
  639. by standard DOS keyboard drivers
  640. [Note2] the Schneider/Amstrad PC1512 PC keyboards contain extra keys,
  641. a mouse, and a digital joystick, which are handled like extra keys.
  642. The joystick's motion scancodes are converted into standard arrow
  643. keys by the BIOS, and the joystick and mouse button scan codes are
  644. converted to FFFFh codes in the BIOS keyboard buffer
  645. (see CMOS 15h"AMSTRAD").
  646. In addition to the keys listed in the table above, there are
  647. Del-> (delete forward) 70h
  648. Enter 74h
  649. SeeAlso: #00602 at INT 16/AX=6F07h,#03214 at INT 4A/AH=05h
  650. --------C-09---------------------------------
  651. INT 09 C - CPU-generated (80286,80386) - PROCESSOR EXTENSION PROTECTION ERROR
  652. Desc: called if the coprocessor attempts to access memory outside a segment
  653. boundary; it may occur at an arbitrary time after the coprocessor
  654. instruction was issued
  655. Notes: until the condition is cleared or the coprocessor is reset, the only
  656. coprocessor instruction which may be used is FNINIT; WAIT or other
  657. coprocessor instructions will cause a deadlock because the
  658. coprocessor is still busy waiting for data
  659. for the 486+, a coprocessor protection error generates an INT 0D
  660. SeeAlso: INT 07"CPU"
  661. --------*-09---------------------------------
  662. INT 09 P - internal hardware - RESERVED BY Intel (80486)
  663. Note: this exception has been moved to INT 0D
  664. SeeAlso: INT 09"CPU",INT 0D
  665. --------H-0A---------------------------------
  666. INT 0A C - IRQ2 - LPT2 (PC), VERTICAL RETRACE INTERRUPT (EGA,VGA)
  667. Notes: the TOPS and PCnet adapters use this interrupt request line by default
  668. DOS 3.2 revectors IRQ2 to a stack-switching routine
  669. on ATs and above, the physical data line for IRQ2 is labeled IRQ9 and
  670. connects to the slave 8259. The BIOS redirects the interrupt for
  671. IRQ9 back here.
  672. under DESQview, only the INT 15h vector and BASIC segment address (the
  673. word at 0000h:0510h) may be assumed to be valid for the handler's
  674. process
  675. many VGA boards do not implement the vertical retrace interrupt,
  676. including the IBM VGA Adapter where the traces are either cut or
  677. removed
  678. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  679. --------H-0A---------------------------------
  680. INT 0A C - IRQ2 - Tandy 1000-series HARD DISK
  681. Notes: this interrupt may be masked by setting bit 2 on I/O port 21h
  682. the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
  683. 1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
  684. 1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
  685. for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
  686. DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
  687. RSX-HD use IRQ14. Tandy systems which use IRQ2 for the hard disk
  688. interrupt use IRQ5 for vertical retrace.
  689. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71
  690. --------H-0A---------------------------------
  691. INT 0A - IRQ2 - ROLAND MPU MIDI INTERFACE
  692. Note: newer Roland cards and MIDI interfaces by other manufacturers use
  693. a jumper-selectable IRQ, but software and hardware generally defaults
  694. to IRQ2
  695. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  696. --------C-0A---------------------------------
  697. INT 0A CP - CPU-generated (80286+) - INVALID TASK STATE SEGMENT
  698. Desc: automatically called during a task switch if the new TSS specified by
  699. the task gate is invalid for any of the following reasons:
  700. TSS limit is less than 43 (80286) or 103 (80386/80486)
  701. LDT selector invalid or segment not present
  702. null SS selector, or SS selector outside LDT/GDT limit
  703. stack segment is read-only
  704. stack segment DPL differs from new CPL, or RPL <> CPL
  705. CS selector is outside LDT/GDT limit or not code
  706. non-conforming code segment's DPL differs from CPL
  707. conforming code segment's DPL > CPL
  708. DS/ES selectors outside LDT/GDT limit or not readable segments
  709. Note: the handler must use a task gate in order to have a valid TSS under
  710. which to execute; it must also reset the busy bit in the new TSS
  711. SeeAlso: INT 0B"CPU"
  712. --------H-0B---------------------------------
  713. INT 0B C - IRQ3 - SERIAL COMMUNICATIONS (COM2)
  714. Desc: automatically asserted by the UART when COM2 needs attention, if the
  715. UART has been programmed to generate interrupts
  716. Notes: the TOPS and PCnet adapters use this interrupt request line as an
  717. alternate
  718. on PS/2s, COM2 through COM8 share this interrupt; on many PC's, COM4
  719. shares this interrupt
  720. may be masked by setting bit 3 on I/O port 21h
  721. SeeAlso: INT 0C"COM1",INT 53"DESQview",INT 5B"DoubleDOS",INT 7B"GO32"
  722. --------C-0B---------------------------------
  723. INT 0B CP - CPU-generated (80286+) - SEGMENT NOT PRESENT
  724. Desc: generated when loading a segment register if the segment descriptor
  725. indicates that the segment is not currently in memory, unless the
  726. segment is an LDT (see INT 0A"CPU") or stack segment (see
  727. INT 0C"CPU") needed by a task switch
  728. Note: may be used to implement virtual memory by loading in segments as they
  729. are accessed, clearing the "not present" bit after loading
  730. SeeAlso: INT 0A"CPU",INT 0E"CPU"
  731. --------h-0B---------------------------------
  732. INT 0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER
  733. Desc: this is the lowest-level keyboard handler on an HP 95LX palmtop
  734. Note: debounces key, places the keycode in I/O register 60h, and calls INT 09
  735. SeeAlso: INT 09,INT 0D"HP 95LX",INT 15/AX=4DD4h
  736. --------H-0C---------------------------------
  737. INT 0C C - IRQ4 - SERIAL COMMUNICATIONS (COM1)
  738. Desc: automatically asserted by the UART when COM1 needs attention, if the
  739. UART has been programmed to generate interrupts
  740. BUG: this vector is modified but not restored by Direct Access v4.0, and
  741. may be left dangling by other programs written with the same version
  742. of compiled BASIC
  743. Notes: on many PC's, COM3 shares this interrupt
  744. may be masked by setting bit 4 on I/O port 21h
  745. SeeAlso: INT 0B"COM2",INT 54"DESQview",INT 5C"DoubleDOS",INT 7C"GO32"
  746. --------C-0C---------------------------------
  747. INT 0C C - CPU-generated (80286+) - STACK FAULT
  748. Desc: this interrupt is generated in protected mode on a stack overflow or
  749. underflow, or if an inter-level transition or task switch references
  750. a stack segment marked "not present"; it is generated in real mode
  751. on accessing a word operand at SS:FFFFh
  752. Note: the 80286 will shut down in real mode if SP=1 before a push. On the
  753. PC AT and compatibles, external circuitry generates a reset on
  754. shutdown.
  755. SeeAlso: INT 0B"CPU",INT 0D"CPU"
  756. --------I-0C---------------------------------
  757. INT 0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER
  758. Desc: the IBM System 36/38 emulator may be invoked through a private API,
  759. whose entry point address (see #00007) is offset 100h in the segment
  760. pointed at by this vector
  761. (Table 00007)
  762. Call the System 36/38 emulator API entry point with:
  763. AH = function
  764. 03h update screen
  765. 05h select next session
  766. AL = session number (00h-03h)
  767. Return: AL = session type code
  768. 00h not active
  769. 01h display session
  770. 02h printer session
  771. FEh invalid session number
  772. DS = requested session's data segment (0 if not active)
  773. (see #00008)
  774. Return: ???
  775. Format of System 36/38 emulator's data area:
  776. Offset Size Description (Table 00008)
  777. 13Eh BYTE bit flags for status line indicators turned on since this byte
  778. last zerod
  779. 13Fh BYTE bit flags for status line indicators turned off since this
  780. byte last set to FFh
  781. 140h WORD offset of EBCDIC to ASCII translation
  782. 146h WORD offset of EBCDIC screen buffer
  783. 148h WORD offset of EC (engineering change) level signature
  784. 150h BYTE "KEYI"
  785. 151h BYTE 5250 key scan code to be sent to remote
  786. 15Bh BYTE "SYSAV"
  787. 15Dh BYTE 5250 cursor column
  788. 15Eh BYTE 5250 cursor row
  789. 167h BYTE "DVCTAD"
  790. 178h BYTE "FLAGS"
  791. 184h BYTE "SESSNOAD"
  792. 193h BYTE "STNAD"
  793. 198h BYTE "NSDS"
  794. Note: offsets are from the interrupt handler's segment
  795. --------H-0D---------------------------------
  796. INT 0D C - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2)
  797. Notes: under DESQview, only the INT 15h vector and BASIC segment address (the
  798. word at 0000h:0510h) may be assumed to be valid for the handler's
  799. process
  800. the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
  801. 1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
  802. 1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
  803. for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
  804. DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
  805. RSX-HD use IRQ14. Tandy systems which use IRQ2 for the hard disk
  806. interrupt use IRQ5 for vertical retrace.
  807. may be masked by setting bit 5 on I/O port 21h
  808. SeeAlso: INT 0E"IRQ6",INT 0F"IRQ7",INT 55"DESQview",INT 5D"DoubleDOS"
  809. SeeAlso: INT 7D"GO32"
  810. --------H-0D---------------------------------
  811. INT 0D C - IRQ5 - Tandy 1000 60 Hz RAM REFRESH
  812. Desc: used to ensure that the dynamic RAM retains its contents in earlier
  813. 1000-series models; later models use normal DMA for RAM refresh
  814. (some early models have no DMA unless it is added via an expansion
  815. card)
  816. SeeAlso: INT 55
  817. --------h-0D---------------------------------
  818. INT 0D - HP 95LX - INFRARED INTERRUPT
  819. Desc: this interrupt is used to perform communications over the infrared
  820. data link
  821. SeeAlso: INT 0B"HP 95LX",INT 0E"HP 95LX",INT 15/AX=4DD4h
  822. --------C-0D---------------------------------
  823. INT 0D C - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION
  824. Desc: the CPU generates this interrupt when it detects a protection violation
  825. which does not fit under any other category having a separate
  826. interrupt
  827. Notes: called in real mode when
  828. an instruction accesses a memory operand extending beyond offset
  829. FFFFh (i.e. WORD at FFFFh or DWORD at FFFDh or higher) in segment
  830. CS, DS, ES, FG, or GS
  831. a PUSH MEM or POP MEM instruction contains an invalid bit encoding
  832. in the second byte
  833. an instruction exceeds the maximum length allowed (10 bytes for
  834. 80286, 15 bytes for 80386/80486)
  835. an instruction wraps from offset FFFFh to offset 0000h
  836. called in protected mode on protection violations not covered by INT 06
  837. through INT 0C, including
  838. segment limit violations
  839. write to read-only segments
  840. accesses using null DS or ES selectors
  841. accesses to segments with privilege greater than CPL
  842. wrong descriptor type
  843. called on 80486 protected-mode floating-point protection fault
  844. SeeAlso: INT 09"80486",INT 0C"STACK"
  845. --------H-0E---------------------------------
  846. INT 0E C - IRQ6 - DISKETTE CONTROLLER
  847. Desc: this interrupt is generated by the floppy disk controller on
  848. completion of an operation
  849. Notes: default handler is at F000h:EF57h in IBM PC and 100%-compatible BIOSes
  850. may be masked by setting bit 6 on I/O port 21h
  851. SeeAlso: INT 0D"IRQ5",INT 56"DESQview",INT 5E"DoubleDOS",INT 7E"GO32"
  852. --------C-0E---------------------------------
  853. INT 0E C - CPU-generated (80386+ native mode) - PAGE FAULT
  854. Desc: this interrupt is generated in protected and virtual-86 modes on
  855. attempting to access a 4K memory page whose page table entry has
  856. the "present" bit cleared
  857. Notes: used to implement virtual memory--when the page fault occurs, the
  858. operating system can load the appropriate page from disk
  859. a protected-mode program written in the Flat memory model will often
  860. generate this interrupt (typically reported as an Exception #14 or
  861. Exception 0E with a register dump) when dereferencing an
  862. uninitialized or corrupted pointer
  863. SeeAlso: INT 0B"CPU"
  864. --------h-0E---------------------------------
  865. INT 0E C - HP 95LX - EXTERNAL CARD INTERRUPT
  866. SeeAlso: INT 0D"HP 95LX",INT 0F"HP 95LX",INT 15/AX=4DD4h
  867. --------H-0F---------------------------------
  868. INT 0F C - IRQ7 - PARALLEL PRINTER
  869. Desc: this interrupt is generated by the LPT1 printer adapter when the
  870. printer becomes ready
  871. Notes: most printer adapters do not reliably generate this interrupt
  872. the 8259 interrupt controller generates an interrupt corresponding to
  873. IRQ7 when an error condition occurs
  874. SeeAlso: INT 0D"IRQ5",INT 57"DESQview",INT 5F"DoubleDOS",INT 7F"GO32"
  875. SeeAlso: MEM 0040h:006Bh
  876. --------h-0F---------------------------------
  877. INT 0F C - HP 95LX - REAL-TIME CLOCK
  878. SeeAlso: INT 0E"HP 95LX",INT 15/AX=4DD4h,INT 70"IRQ8"
  879. --------C-10---------------------------------
  880. INT 10 C - CPU-generated (80286+) - COPROCESSOR ERROR
  881. Desc: this interrupt is generated by the CPU when the -ERROR pin is asserted
  882. by the coprocessor
  883. Note: AT's and clones usually wire the coprocessor to use IRQ13, but not all
  884. get it right
  885. SeeAlso: INT 09"hardware",INT 75
  886. --------V-1000-------------------------------
  887. INT 10 - VIDEO - SET VIDEO MODE
  888. AH = 00h
  889. AL = desired video mode (see #00010)
  890. Return: AL = video mode flag (Phoenix, AMI BIOS)
  891. 20h mode > 7
  892. 30h modes 0-5 and 7
  893. 3Fh mode 6
  894. AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
  895. Desc: specify the display mode for the currently active display adapter
  896. InstallCheck: for Ahead adapters, the signature "AHEAD" at C000h:0025h
  897. for Paradise adapters, the signature "VGA=" at C000h:007Dh
  898. for Oak Tech OTI-037/057/067/077 chipsets, the signature "OAK VGA" at
  899. C000h:0008h
  900. for ATI adapters, the signature "761295520" at C000h:0031h; the byte
  901. at C000h:0043h indicates the chipset revision:
  902. 31h for 18800
  903. 32h for 18800-1
  904. 33h for 18800-2
  905. 34h for 18800-4
  906. 35h for 18800-5
  907. 62h for 68800AX (Mach32) (see also #00732)
  908. the two bytes at C000h:0040h indicate the adapter type
  909. "22" EGA Wonder
  910. "31" VGA Wonder
  911. "32" EGA Wonder800+
  912. the byte at C000h:0042h contains feature flags
  913. bit 1: mouse port present
  914. bit 4: programmable video clock
  915. the byte at C000h:0044h contains additional feature flags if chipset
  916. byte > 30h (see #00009)
  917. for Genoa video adapters, the signature 77h XXh 99h 66h at C000h:NNNNh,
  918. where NNNNh is stored at C000h:0037h and XXh is
  919. 00h for Genoa 6200/6300
  920. 11h for Genoa 6400/6600
  921. 22h for Genoa 6100
  922. 33h for Genoa 5100/5200
  923. 55h for Genoa 5300/5400
  924. for SuperEGA BIOS v2.41+, C000h:0057h contains the product level
  925. for Genoa SuperEGA BIOS v3.0+, C000h:0070h contains the signature
  926. "EXTMODE", indicating support for extended modes
  927. Notes: IBM standard modes do not clear the screen if the high bit of AL is set
  928. (EGA or higher only)
  929. the Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond
  930. SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA,
  931. Everex EV-673, etc.
  932. SeeAlso: AX=0070h,AX=007Eh,AX=10E0h,AX=10F0h,AH=40h,AX=6F05h,AH=FFh"GO32"
  933. SeeAlso: INT 33/AX=0028h,INT 5F/AH=00h,INT 62/AX=0001h,MEM 0040h:0049h
  934. Index: installation check;Tseng ET4000|installation check;Ahead video cards
  935. Index: installation check;Oak Technologies|installation check;ATI video cards
  936. Index: installation check;Paradise video|installation check;Genoa video cards
  937. Bitfields for ATI additional feature flags:
  938. Bit(s) Description (Table 00009)
  939. 0 70 Hz non-interlaced display
  940. 1 Korean (double-byte) characters
  941. 2 45 MHz memory clock rather than 40 MHz
  942. 3 zero wait states
  943. 4 paged ROMs
  944. 6 no 8514/A monitor support
  945. 7 HiColor DAC
  946. (Table 00010)
  947. Values for video mode:
  948. text/ text pixel pixel colors disply scrn system
  949. grph resol box resolution pages addr
  950. 00h = T 40x25 8x8 320x200 16gray 8 B800 CGA,PCjr,Tandy
  951. = T 40x25 8x14 320x350 16gray 8 B800 EGA
  952. = T 40x25 8x16 320x400 16 8 B800 MCGA
  953. = T 40x25 9x16 360x400 16 8 B800 VGA
  954. 01h = T 40x25 8x8 320x200 16 8 B800 CGA,PCjr,Tandy
  955. = T 40x25 8x14 320x350 16 8 B800 EGA
  956. = T 40x25 8x16 320x400 16 8 B800 MCGA
  957. = T 40x25 9x16 360x400 16 8 B800 VGA
  958. 02h = T 80x25 8x8 640x200 16gray 4 B800 CGA,PCjr,Tandy
  959. = T 80x25 8x14 640x350 16gray 8 B800 EGA
  960. = T 80x25 8x16 640x400 16 8 B800 MCGA
  961. = T 80x25 9x16 720x400 16 8 B800 VGA
  962. 03h = T 80x25 8x8 640x200 16 4 B800 CGA,PCjr,Tandy
  963. = T 80x25 8x14 640x350 16/64 8 B800 EGA
  964. = T 80x25 8x16 640x400 16 8 B800 MCGA
  965. = T 80x25 9x16 720x400 16 8 B800 VGA
  966. = T 80x43 8x8 640x350 16 4 B800 EGA,VGA [17]
  967. = T 80x50 8x8 640x400 16 4 B800 VGA [17]
  968. 04h = G 40x25 8x8 320x200 4 . B800 CGA,PCjr,EGA,MCGA,VGA
  969. 05h = G 40x25 8x8 320x200 4gray . B800 CGA,PCjr,EGA
  970. = G 40x25 8x8 320x200 4 . B800 MCGA,VGA
  971. 06h = G 80x25 8x8 640x200 2 . B800 CGA,PCjr,EGA,MCGA,VGA
  972. = G 80x25 . . mono . B000 HERCULES.COM on HGC [14]
  973. 07h = T 80x25 9x14 720x350 mono var B000 MDA,Hercules,EGA
  974. = T 80x25 9x16 720x400 mono . B000 VGA
  975. 08h = T 132x25 8x8 1056x200 16 . B800 ATI EGA/VGA Wonder [2]
  976. = T 132x25 8x8 1056x200 mono . B000 ATI EGA/VGA Wonder [2]
  977. = G 20x25 8x8 160x200 16 . . PCjr, Tandy 1000
  978. = G 80x25 8x16 640x400 color . . Tandy 2000
  979. = G 90x43 8x8 720x348 mono . B000 Hercules + MSHERC.COM
  980. = G 90x45 8x8 720x360 mono . B000 Hercules + HERKULES [11]
  981. = G 90x29 8x12 720x348 mono . . Hercules + HERCBIOS [15]
  982. 09h = G 40x25 8x8 320x200 16 . . PCjr, Tandy 1000
  983. = G 80x25 8x16 640x400 mono . . Tandy 2000
  984. = G 90x43 8x8 720x348 mono . . Hercules + HERCBIOS [15]
  985. 0Ah = G 80x25 8x8 640x200 4 . . PCjr, Tandy 1000
  986. 0Bh = reserved (EGA BIOS internal use)
  987. = G 80x25 8x8 640x200 16 . . Tandy 1000 SL/TL [13]
  988. 0Ch = reserved (EGA BIOS internal use)
  989. 0Dh = G 40x25 8x8 320x200 16 8 A000 EGA,VGA
  990. 0Eh = G 80x25 8x8 640x200 16 4 A000 EGA,VGA
  991. 0Fh = G 80x25 8x14 640x350 mono 2 A000 EGA,VGA
  992. 10h = G 80x25 8x14 640x350 4 2 A000 64k EGA
  993. = G . . 640x350 16 . A000 256k EGA,VGA
  994. 11h = G 80x30 8x16 640x480 mono . A000 VGA,MCGA,ATI EGA,ATI VIP
  995. 12h = G 80x30 8x16 640x480 16/256K . A000 VGA,ATI VIP
  996. = G 80x30 8x16 640x480 16/64 . A000 ATI EGA Wonder
  997. = G . . 640x480 16 . . UltraVision+256K EGA
  998. 13h = G 40x25 8x8 320x200 256/256K . A000 VGA,MCGA,ATI VIP
  999. 14h = T 132x25 Nx16 . 16 . B800 XGA, IBM Enhanced VGA [3]
  1000. = T 132x25 8x16 1056x400 16/256K . . Cirrus CL-GD5420/5422/5426
  1001. = G 80x25 8x8 640x200 . . . Lava Chrome II EGA
  1002. = G . . 640x400 16 . . Tecmar VGA/AD
  1003. 15h = G 80x25 8x14 640x350 . . . Lava Chrome II EGA
  1004. 16h = G 80x25 8x14 640x350 . . . Lava Chrome II EGA
  1005. = G . . 800x600 16 . . Tecmar VGA/AD
  1006. 17h = T 132x25 . . . . . Tecmar VGA/AD
  1007. = T 80x43 8x8 640x348 16 4 B800 Tseng ET4000 BIOS [10]
  1008. = G 80x34 8x14 640x480 . . . Lava Chrome II EGA
  1009. 18h = T 80x30 9x16 720x480 16 1 A000 Realtek RTVGA [12]
  1010. = T 132x25 . . mono . B000 Cirrus 5320 chipset
  1011. = T 132x44 8x8 1056x352 mono . B000 Tseng Labs EVA
  1012. = T 132x44 9x8 1188x352 4gray 2 B000 Tseng ET3000 chipset
  1013. = T 132x44 8x8 1056x352 16/256 2 B000 Tseng ET4000 chipset
  1014. = G 80x34 8x14 640x480 . . . Lava Chrome II EGA
  1015. = G 1024x768 16 . . Tecmar VGA/AD
  1016. 19h = T 80x43 9x11 720x473 16 1 A000 Realtek RTVGA [12]
  1017. = T 132x25 8x14 1056x350 mono . B000 Tseng Labs EVA
  1018. = T 132x25 9x14 1188x350 4gray 4 B000 Tseng ET3000 chipset
  1019. = T 132x25 8x14 1056x350 16/256 4 B000 Tseng ET4000 chipset
  1020. = T 132x34 . . mono . B000 Cirrus 5320 chipset
  1021. 1Ah = T 80x60 9x8 720x480 16 1 A000 Realtek RTVGA [12]
  1022. = T 132x28 8x13 1056x364 mono . B000 Tseng Labs EVA
  1023. = T 132x28 9x13 1188x364 4gray 4 B000 Tseng ET3000 chipset
  1024. = T 132x28 8x13 1056x364 16/256 4 B000 Tseng ET4000 chipset
  1025. = T 132x44 . . mono . B000 Cirrus 5320 chipset
  1026. = G . . 640x350 256 . . Tecmar VGA/AD
  1027. 1Bh = T 132x25 9x14 1188x350 16 1 A000 Realtek RTVGA [12]
  1028. = G . . 640x400 256 . . Tecmar VGA/AD
  1029. 1Ch = T 132x25 . . . . . Cirrus 5320 chipset
  1030. = T 132x30 9x16 1188x480 16 1 A000 Realtek RTVGA [12]
  1031. = G . . 640x480 256 . . Tecmar VGA/AD
  1032. 1Dh = T 132x43 . . . . . Cirrus 5320 chipset
  1033. = T 132x43 9x11 1188x473 16 1 A000 Realtek RTVGA [12]
  1034. = G . . 800x600 256 . . Tecmar VGA/AD
  1035. 1Eh = T 132x44 . . . . . Cirrus 5320 chipset
  1036. = T 132x60 9x8 1188x480 16 1 A000 Realtek RTVGA [12]
  1037. 1Fh = G 100x75 8x8 800x600 16 1 A000 Realtek RTVGA
  1038. 20h = T 132x25 . . 16 . . Avance Logic AL2101
  1039. = G 40x16 . 240x128 mono . B000 HP 95LX/100LX/200LX
  1040. = G 80x30 8x16 640x480 16 . . C&T 64310/65530 BIOS
  1041. = G 120x45 8x16 960x720 16 1 A000 Realtek RTVGA
  1042. 21h = T 80x25 . . mono . B000 HP 200LX
  1043. = T 132x30 . . 16 . . Avance Logic AL2101
  1044. = T 132x44 9x9 1188x396 16/256K . B800 WD90C
  1045. = T 132x44 9x9 1188x396 16 . B800 Diamond Speedstar 24X
  1046. = T 132x60 . . 16 2 B800 Tseng ET4000 chipset [10]
  1047. = G 80x43 8x8 720x348 mono . B000 DESQview 2.x+Hercules [4]
  1048. = G 128x48 8x16 1024x768 16 1 A000 Realtek RTVGA [12]
  1049. 22h = T 132x43 . . . . . Allstar Peacock (VGA)
  1050. = T 132x43 . . 16 . . Avance Logic AL2101
  1051. = T 132x44 8x8 1056x352 . . B800 Tseng Labs EVA
  1052. = T 132x44 9x8 1188x352 16/256K 2 B800 Tseng ET3000 chipset
  1053. = T 132x44 8x8 1056x352 16/256K 2 B800 Tseng ET4000 chipset
  1054. = T 132x44 8x8 1056x352 . . . Ahead Systems EGA2001
  1055. = T 132x44 8x8 1056x352 16 2 B800 Ahead B
  1056. = T 132x44 8x9 1056x398 16 . . STB Lightspeed ET4000/W32P
  1057. = T 132x44 . . 16 . . Orchid Prodesigner VGA
  1058. = G 80x43 8x8 720x348 mono . B800 DESQview 2.x+Hercules [4]
  1059. = G 96x64 8x16 768x1024 16 1 A000 Realtek RTVGA
  1060. = G 100x37 8x16 800x600 16 . . C&T 64310/65530 BIOS
  1061. 23h = T 132x25 6x14 792x350 . . B800 Tseng Labs EVA
  1062. = T 132x25 9x14 1188x350 16/256K 4 B800 Tseng ET3000 chipset
  1063. = T 132x25 8x14 1056x350 16/256 4 B800 Tseng ET4000 chipset
  1064. = T 132x25 8x14 1056x350 . . . Ahead Systems EGA2001
  1065. = T 132x25 8x14 1056x350 16 4 B800 Ahead B
  1066. = T 132x25 8x8 1056x200 16 . B800 ATI EGA Wonder,ATI VIP
  1067. = T 132x25 . . . . . Cirrus 5320 chipset
  1068. = T 132x28 . . . . . Allstar Peacock (VGA)
  1069. = T 132x28 . . 16 . . Orchid Prodesigner VGA
  1070. = T 132x60 . . 16 . . Avance Logic AL2101
  1071. = G 128x48 8x16 1024x768 4 1 A000 Realtek RTVGA
  1072. 24h = T 80x30 . . 16 . . Avance Logic AL2101
  1073. = T 132x25 . . . . . Allstar Peacock (VGA)
  1074. = T 132x25 . . 16 . . Orchid Prodesigner VGA
  1075. = T 132x28 6x13 792x364 . . B800 Tseng Labs EVA
  1076. = T 132x28 9x13 1188x364 16/256K 4 B800 Tseng ET3000 chipset
  1077. = T 132x28 8x12 1056x336 16 1 B800 Ahead B
  1078. = T 132x28 8x13 1056x364 16/256K 4 B800 Tseng ET4000 chipset
  1079. = T 132x28 8x14 1056x392 16 . . STB Lightspeed ET4000/W32P
  1080. = T 132x28 . . . . . Cirrus 5320 chipset
  1081. = G 64x32 8x16 512x512 256 1 A000 Realtek RTVGA
  1082. = G 128x48 8x16 1024x768 16 . . C&T 64310/65530 BIOS
  1083. 25h = T 80x43 . . 16 . . Avance Logic AL2101
  1084. = G 80x60 8x8 640x480 . . A000 Tseng Labs EVA
  1085. = G 80x60 8x8 640x480 16/256K 1 A000 Tseng ET3000/4000 chipset
  1086. = G . . 640x480 16 . . VEGA VGA
  1087. = G 80x60 8x8 640x480 16 . A000 Orchid Prodesigner VGA
  1088. = G 80x60 8x8 640x480 16 1 A000 Ahead B (same as 26h)
  1089. = G . . 640x480 16 . . NEC GB-1
  1090. = G . . 640x480 16 . . Cirrus 5320 chipset
  1091. = G . . 640x400 256 . . Realtek RTVGA
  1092. 26h = T 80x60 8x8 640x480 . . . Tseng Labs EVA
  1093. = T 80x60 8x8 640x480 16/256K 3 B800 Tseng ET3000/4000 chipset
  1094. = T 80x60 . . . . . Allstar Peacock (VGA)
  1095. = T 80x60 . . 16 . . Orchid ProDesigner VGA
  1096. = T 80x60 . . 16 . . Avance Logic AL2101
  1097. = G 80x60 8x8 640x480 . . . Ahead Systems EGA2001
  1098. = G 80x60 8x8 640x480 16 1 A000 Ahead B (same as 25h)
  1099. = G . . 640x480 256 . . Realtek RTVGA
  1100. 27h = T 132x25 8x8 1056x200 mono . B000 ATI EGA Wonder,ATI VIP
  1101. = G . . 720x512 16 . . VEGA VGA
  1102. = G . . 720x512 16 . . Genoa
  1103. = G 100x75 8x8 800x600 256 1 A000 Realtek RTVGA [12]
  1104. = G . . 960x720 16 . . Avance Logic AL2101
  1105. 28h = T ???x??? . . . . . VEGA VGA
  1106. = G . . 512x512 256 . . Avance Logic AL2101
  1107. = G . . 1024x768 256 . . Realtek RTVGA (1meg)
  1108. = G 160x64 8x16 1280x1024 16 . . Chips&Technologies 64310 [1]
  1109. 29h = G . . 640x400 256 . . Avance Logic AL2101
  1110. = G . . 800x600 16 . . VEGA VGA
  1111. = G 100x37 8x16 800x600 16 . A000 Orchid
  1112. = G . . 800x600 16 . A000 STB,Genoa,Sigma
  1113. = G . . 800x600 16 . . Allstar Peacock (VGA)
  1114. = G 100x37 8x16 800x600 16/256K 1 A000 Tseng ET3000/4000 chipset
  1115. = G . . 800x600 ??? . . EIZO MDB10
  1116. = G . . 800x600 16 . . Cirrus 5320 chipset
  1117. = G NA . 800x600 16 . . Compaq QVision 1024/1280
  1118. = G . . 1024x1024 256 . . Realtek RTVGA BIOS v3.C10
  1119. 2Ah = T 100x40 . . . . . Allstar Peacock (VGA)
  1120. = T 100x40 8x16 800x640 16 . . Orchid Prodesigner VGA
  1121. = T 100x40 8x15 800x600 16/256K 4 B800 Tseng ET3000/4000 chipset
  1122. = T 100x40 8x15 800x600 16 . . STB Lightspeed ET4000/W32P
  1123. = G . . 640x480 256 . . Avance Logic AL2101
  1124. = G . . 1280x1024 16 . . Realtek RTVGA
  1125. 2Bh = G . . 800x600 16 . . Avance Logic AL2101
  1126. 2Ch = G . . 800x600 256 . . Avance Logic AL2101
  1127. 2Dh = G . . 640x350 256 . . VEGA VGA
  1128. = G . . 640x350 256/256K . A000 Orchid, Genoa, STB
  1129. = G 80x25 8x14 640x350 256/256K 1 A000 Tseng ET3000/4000 chipset
  1130. = G . . 640x350 256 . . Cirrus 5320 chipset
  1131. = G 80x25 8x14 640x350 256 . . STB Lightspeed ET4000/W32P
  1132. = G . . 768x1024 16 . . Avance Logic AL2101
  1133. 2Eh = G . . 640x480 256 . . VEGA VGA
  1134. = G 80x30 8x16 640x480 256/256K . A000 Orchid
  1135. = G . . 640x480 256/256K . A000 STB,Genoa,Sigma
  1136. = G 80x30 8x16 640x480 256/256K 1 A000 Tseng ET3000/4000 chipset
  1137. = G . . 640x480 256/256K . . Compaq QVision 1024/1280
  1138. = G . . 768x1024 256 . . Avance Logic AL2101
  1139. 2Fh = T 160x50 8x8 1280x400 16 4 B800 Ahead B (Wizard/3270)
  1140. = G . . 720x512 256 . . VEGA VGA
  1141. = G . . 720x512 256 . . Genoa
  1142. = G 80x25 8x16 640x400 256/256K 1 A000 Tseng ET4000 chipset
  1143. = G . . 1024x768 4 . . Avance Logic AL2101
  1144. 30h = G 80x30 8x16 640x480 256 . . C&T 64310/65530 BIOS
  1145. = G . . . . . B800 AT&T 6300
  1146. = G . . 720x350 2 . . 3270 PC
  1147. = G . . 800x600 256 . . VEGA VGA
  1148. = G 100x37 8x16 800x600 256/256K . A000 Orchid
  1149. = G . . 800x600 256/256K . A000 STB,Genoa,Sigma
  1150. = G . . 800x600 256 . . Cardinal
  1151. = G 100x37 8x16 800x600 256/256K 1 A000 Tseng ET3000/4000 chipset
  1152. = G . . 1024x768 16 . . Avance Logic AL2101
  1153. 31h = G . . 1024x768 256 . . Avance Logic AL2101
  1154. 32h = T 80x34 8x10 . 16 4 B800 Ahead B (Wizard/3270)
  1155. = G . . 640x480 256 . . Compaq QVision 1024/1280
  1156. = G 100x37 8x16 800x600 256 . . C&T 64310/65530 BIOS
  1157. 33h = T 132x44 8x8 . 16 . B800 ATI EGA Wonder,ATI VIP
  1158. = T 80x34 8x8 . 16 4 B800 Ahead B (Wizard/3270)
  1159. 34h = T 80x66 8x8 . 16 4 B800 Ahead B (Wizard/3270)
  1160. = G . . 800x600 256 . . Compaq QVision 1024/1280
  1161. = G 128x48 8x16 1024x768 256 . . Chips&Technologies 64310
  1162. 36h = G . . 960x720 16 . . VEGA VGA, STB
  1163. = G . . 960x720 16 . A000 Tseng ET3000 only
  1164. = G . . 1280x1024 16 . . Avance Logic AL2101
  1165. 37h = T 132x44 8x8 . mono . B800 ATI EGA Wonder,ATI VIP
  1166. = G . . 1024x768 16 . . VEGA VGA
  1167. = G 128x48 8x16 1024x768 16 . A000 Orchid
  1168. = G . . 1024x768 16 . A000 STB,Genoa,Sigma
  1169. = G . . 1024x768 16 . . Definicon
  1170. = G 128x48 8x16 1024x768 16 1 A000 Tseng ET3000/4000 chipset
  1171. = G . . 1024x768 16 . . Compaq QVision 1024/1280
  1172. = G . . 1280x1024 256 . . Avance Logic AL2101
  1173. 38h = G . . 1024x768 256 . . STB VGA/EM-16 Plus (1MB)
  1174. = G 128x48 8x16 1024x768 256/256K 1 A000 Tseng ET4000 chipset
  1175. = G . . 1024x768 256 . . Orchid ProDesigner II
  1176. = G . . 1024x768 256 . . Compaq QVision 1024/1280
  1177. = G 160x64 8x16 1280x1024 256 . . Chips&Technologies 64310 [1]
  1178. 39h = G . . 1280x1024 16 . . Compaq QVision 1280
  1179. 3Ah = G . . 1280x1024 256 . . Compaq QVision 1280
  1180. 3Bh = G . . 512x480 256 . . Compaq QVision 1024/1280
  1181. 3Ch = G . . 640x400 64K . . Compaq QVision 1024/1280
  1182. 3Dh = G . . 1280x1024 16 . . Definicon
  1183. = G 128x64 8x16 1280x1024 16 1 A000 Tseng ET4000 v3.00 [1,7]
  1184. 3Eh = G . . 1280x961 16 . . Definicon
  1185. = G . . 640x480 64K . . Compaq QVision 1024/1280
  1186. 3Fh = G . . 1280x1024 256 . . Hercules ??? (ET4000W32)
  1187. = G . . 800x600 64K . . Compaq QVision 1024/1280
  1188. 40h = T 80x43 . . . . . VEGA VGA, Tecmar VGA/AD
  1189. = T 80x43 . . . . . Video7 V-RAM VGA
  1190. = T 80x43 . . . . . Tatung VGA
  1191. = T 100x30 . . 16 . . MORSE VGA
  1192. = T 100x30 . . . . . Cirrus 510/520 chipset
  1193. = T 80x25 . 720x350 mono . . Genoa SuperEGA BIOS 3.0+
  1194. = G . . 320x200 64K . . Avance Logic AL2101
  1195. = G 80x25 8x16 640x400 2 1 B800 AT&T 6300, AT&T VDC600
  1196. = G 80x25 8x16 640x400 2 1 B800 Olivetti Quaderno
  1197. = G 80x25 8x16 640x400 2 1 B800 Compaq Portable
  1198. = G 80x30 8x16 640x480 32K . . Chips&Technologies 64310
  1199. = G . . 1024x768 64K . . Compaq QVision 1280
  1200. 41h = T 132x25 . . . . . VEGA VGA
  1201. = T 132x25 . . . . . Tatung VGA
  1202. = T 132x25 . . . . . Video7 V-RAM VGA
  1203. = T 100x50 . . 16 . . MORSE VGA
  1204. = T 100x50 . . . . . Cirrus 510/520 chipset
  1205. = T 80x34 9x14 720x476 16/256K . B800 WD90C
  1206. = T 80x34 9x14 . 16 . B800 Diamond Speedstar 24X
  1207. = G . . 512x512 64K . . Avance Logic AL2101
  1208. = G . . 640x200 16 1 . AT&T 6300
  1209. = G 80x30 8x16 640x480 64K . . Chips&Technologies 64310
  1210. = G 80x25 . 720x348 mono . B000 Genoa SuperEGA BIOS 3.0+
  1211. 42h = T 132x43 . . . . . VEGA VGA
  1212. = T 132x43 . . . . . Tatung VGA
  1213. = T 132x43 . . . . . Video7 V-RAM VGA
  1214. = T 80x34 9x10 . 4 4 B800 Ahead B (Wizard/3270)
  1215. = T 100x60 . . 16 . . MORSE VGA
  1216. = T 100x60 . . . . . Cirrus 510/520 chipset
  1217. = G 80x25 8x16 640x400 16 . . AT&T 6300, AT&T VDC600
  1218. = G . . 640x400 64K . . Avance Logic AL2101
  1219. = G 80x25 . 720x348 mono . B800 Genoa SuperEGA BIOS 3.0+
  1220. = G 100x37 8x16 800x600 32K . . Chips&Technologies 64310
  1221. 43h = T 80x60 . . . . . VEGA VGA
  1222. = T 80x60 . . . . . Tatung VGA
  1223. = T 80x60 . . . . . Video7 V-RAM VGA
  1224. = T 80x45 9x8 . 4 4 B800 Ahead B (Wizard/3270)
  1225. = T 100x75 . . 16 . . MORSE VGA
  1226. = T 80x29 . 720x348 mono . . Genoa SuperEGA BIOS 3.0+
  1227. = G . . 640x200 of 640x400 viewport AT&T 6300 (unsupported)
  1228. = G . . 640x480 64K . . Avance Logic AL2101
  1229. = G 100x37 8x16 800x600 64K . . Chips&Technologies 64310
  1230. 44h = disable VDC and DEB output . AT&T 6300
  1231. = T 100x60 . . . . . VEGA VGA
  1232. = T 100x60 . . . . . Tatung VGA
  1233. = T 100x60 . . . . . Video7 V-RAM VGA
  1234. = T 80x32 . 720x352 mono . . Genoa SuperEGA BIOS 3.0+
  1235. = G . . 800x600 64K . . Avance Logic AL2101
  1236. 45h = T 132x28 . . . . . Tatung VGA
  1237. = T 132x28 . . . . . Video7 V-RAM VGA
  1238. = T 80x44 . 720x352 mono . . Genoa SuperEGA BIOS 3.0+
  1239. 46h = T 132x25 8x14 . mono . . Genoa 6400
  1240. = T 132x25 9x14 . mono . . Genoa SuperEGA BIOS 3.0+
  1241. = G 100x40 8x15 800x600 2 . . AT&T VDC600
  1242. 47h = T 132x29 8x12 . mono . . Genoa 6400
  1243. = T 132x29 9x12 . mono . . Genoa SuperEGA BIOS 3.0+
  1244. = T 132x28 9x16 1188x448 16/256K . B800 WD90C
  1245. = T 132x28 9x16 . 16 . B800 Diamond Speedstar 24X
  1246. = G 100x37 8x16 800x600 16 . . AT&T VDC600
  1247. 48h = T 132x32 8x12 . mono . . Genoa 6400
  1248. = T 132x32 9x11 . mono . . Genoa SuperEGA BIOS 3.0+
  1249. = G 80x50 8x8 640x400 2 . B800 AT&T 6300, AT&T VDC600
  1250. = G 80x50 8x8 640x400 2 . B800 Olivetti Quaderno
  1251. 49h = T 132x44 8x8 . mono . . Genoa 6400
  1252. = T 132x44 9x8 . mono . . Genoa SuperEGA BIOS 3.0+
  1253. = G 80x30 8x16 640x480 . . . Lava Chrome II EGA
  1254. = G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
  1255. 4Bh = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
  1256. 4Dh = T 120x25 . . . . . VEGA VGA
  1257. = G . . 512x480 16M . . Compaq QVision 1024/1280
  1258. = G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1
  1259. 4Eh = T 120x43 . . . . . VEGA VGA
  1260. = T 80x60 8x8 . 16/256K . B800 Oak OTI-067/OTI-077 [8]
  1261. = G . . 640x400 16M . . Compaq QVision 1024/1280
  1262. = G 144x54 8x16 1152x864 . . A000 Diamond Stealth64 Video 2xx1
  1263. 4Fh = T 132x25 . . . . . VEGA VGA
  1264. = T 132x60 . . . . . some Oak Tech VGA [8]
  1265. = G . . 640x480 16M . . Compaq QVision 1280
  1266. 50h = T 80x30 8x16 . 16/256K . B800 Trident TVGA 8800/8900
  1267. = T 80x34 . . . . . Lava Chrome II EGA
  1268. = T 80x43 . . mono . . VEGA VGA
  1269. = T 132x25 9x14 . mono . . Ahead Systems EGA2001
  1270. = T 132x25 9x14 . 4 4 B800 Ahead B
  1271. = T 132x25 8x14 . 16 8 B800 OAK Technologies VGA-16
  1272. = T 132x25 8x14 . 16/256K . B800 Oak OTI-037/067/077 [8]
  1273. = T 132x25 8x14 1056x350 16 8 B800 UM587 chipset
  1274. = T 132x30 . . 16 . . MORSE VGA
  1275. = T 132x30 . . . . . Cirrus 510/520 chipset
  1276. = G 80x30 8x16 640x480 16 . . Paradise EGA-480
  1277. = G 80x30 8x16 640x480 16 . . NEL Electronics BIOS
  1278. = G 80x30 8x16 640x480 16M . . Chips&Technologies 64310
  1279. = G . . 640x480 mono??? . . Taxan 565 EGA
  1280. = G 40x25 8x8 320x200 . . . Genoa SuperEGA BIOS 3.0+
  1281. 51h = T 80x30 8x16 . . . . Paradise EGA-480
  1282. = T 80x30 9x16 . . . . NEL Electronics BIOS
  1283. = T 80x30 . . . . . Lava Chrome II EGA
  1284. = T 80x43 8x11 . 16/256K . B800 Trident TVGA 8800/8900
  1285. = T 132x25 . . mono . . VEGA VGA
  1286. = T 132x28 9x12 . 4 4 B800 Ahead B
  1287. = T 132x43 8x8 . 16 5 B800 OAK Technologies VGA-16
  1288. = T 132x43 8x8 . 16/256K . B800 Oak OTI-037/067/077
  1289. = T 132x43 8x8 1056x344 16 5 B800 UM587 chipset
  1290. = T 132x50 . . 16 . . MORSE VGA
  1291. = T 132x50 . . . . . Cirrus 510/520 chipset
  1292. = G 80x34 8x14 640x480 16 . . ATI EGA Wonder
  1293. = G 80x25 8x8 640x200 . . . Genoa SuperEGA BIOS 3.0+
  1294. 52h = T 80x60 . . . . . Lava Chrome II EGA
  1295. = T 80x60 8x8 . 16/256K . B800 Trident TVGA 8800/8900
  1296. = T 132x43 . . mono . . VEGA VGA
  1297. = T 132x44 9x8 . mono . . Ahead Systems EGA2001
  1298. = T 132x44 9x8 . 4 2 B800 Ahead B
  1299. = T 132x60 . . 16 . . MORSE VGA
  1300. = T 132x60 . . . . . Cirrus 510/520 chipset
  1301. = G 80x25 8x19 640x480 16 1 A000 AX VGA (Kanji&superimpose)
  1302. = G 94x29 8x14 752x410 16 . . ATI EGA Wonder
  1303. = G 100x75 8x8 800x600 16 1 A000 OAK Technologies VGA-16
  1304. = G 100x75 8x8 800x600 16 . A000 Oak OTI-037 chipset [8]
  1305. = G 100x37 8x16 800x600 16 . A000 Oak OTI-067/077 chips [8]
  1306. = G 100x75 8x8 800x600 16 . A000 UM587 chipset
  1307. = G 128x30 8x16 1024x480 16 . . NEL Electronics BIOS
  1308. 53h = T 80x25 8x16 . . . . NEL Electronics BIOS
  1309. = T 80x60 . . 16 . . MORSE VGA
  1310. = T 80x60 . . . . . Cirrus 510/520 chipset
  1311. = T 132x25 8x14 . 16/256K . B800 Trident TVGA 8800/8900
  1312. = T 132x43 . . . . . Lava Chrome II EGA
  1313. = G 80x25 8x19 640x480 16 1 A000 AX VGA (Kanji, no superimp.)
  1314. = G . . 640x480 256 . . Oak VGA
  1315. = G 80x30 8x16 640x480 256 . A000 Oak OTI-067/OTI-077 [8]
  1316. = G 100x40 8x14 800x560 16 . . ATI EGA Wonder,ATI VIP
  1317. = G . . . . . . AX PC
  1318. 54h = T 132x25 . . . . . Lava Chrome II EGA
  1319. = T 132x30 8x16 . 16/256K . B800 Trident TVGA 8800/8900
  1320. = T 132x43 8x8 . . . . Paradise EGA-480
  1321. = T 132x43 8x8 . . . . NEL Electronics BIOS
  1322. = T 132x43 7x9 . 16/256K . B800 Paradise VGA
  1323. = T 132x43 8x9 . 16/256K . B800 Paradise VGA on multisync
  1324. = T 132x43 . . . . . Taxan 565 EGA
  1325. = T 132x43 . . . . . AST VGA Plus
  1326. = T 132x43 . . . . . Hewlett-Packard D1180A
  1327. = T 132x43 7x9 . 16 . . AT&T VDC600
  1328. = T 132x43 9x9 1188x387 16/256K . B800 WD90C
  1329. = T 132x43 9x9 1188x387 16/256K . B800 Diamond Speedstar 24X
  1330. = T 132x43 9x9 1188x387 16/256K . B800 Diamond Stealth 24
  1331. = T 132x43 8x8 . . . B800 Diamond Stealth64 Video 2xx1
  1332. = T 132x43 8x8 1056x350 16/256K . . Cirrus CL-GD5420/5422/5426
  1333. = T 132x50 8x8 . 16 . A000 NCR 77C22 [9]
  1334. = G 100x42 8x14 800x600 16 . A000 ATI EGA Wonder, VGA Wonder
  1335. = G 100x42 8x14 800x600 16 . A000 ATI Ultra 8514A, ATI XL
  1336. = G . . 800x600 256 . A000 Oak VGA
  1337. = G 100x37 8x16 800x600 256 . A000 Oak OTI-067/077 chips [8]
  1338. 55h = T 80x66 8x8 . 16/256K . A000 ATI VIP
  1339. = T 132x25 8x14 . . . . Paradise EGA-480
  1340. = T 132x25 8x14 . . . . NEL Electronics BIOS
  1341. = T 132x25 7x16 . 16/256K . B800 Paradise VGA
  1342. = T 132x25 8x16 . 16/256K . B800 Paradise VGA on multisync
  1343. = T 132x25 . . . . . Taxan 565 EGA
  1344. = T 132x25 . . . . . AST VGA Plus
  1345. = T 132x25 . . . . . Hewlett-Packard D1180A
  1346. = T 132x25 7x16 . 16 . . AT&T VDC600
  1347. = T 132x25 8x16 . 16 . A000 NCR 77C22 [9]
  1348. = T 132x25 9x16 1188x400 16/256K . B800 WD90C
  1349. = T 132x25 9x16 1188x400 16/256K . B800 Diamond Speedstar 24X
  1350. = T 132x25 9x16 1188x400 16/256K . B800 Diamond Stealth 24
  1351. = T 132x25 8x16 . . . B800 Diamond Stealth64 Video 2xx1
  1352. = T 132x25 8x14 1056x350 16/256K . . Cirrus CL-GD5420/5422/5426
  1353. = T 132x43 8x11 . 16/256K . B800 Trident TVGA 8800/8900
  1354. = G 94x29 8x14 752x410 . . . Lava Chrome II EGA
  1355. = G 128x48 8x16 1024x768 16/256K . A000 ATI VGA Wonder v4+ [5]
  1356. = G . . 1024x768 16/256K . . ATI VGA Wonder Plus
  1357. = G . . 1024x768 16/256K . . ATI Ultra 8514A,ATI XL
  1358. = G 128x48 8x16 1024x768 4 . A000 Oak OTI-067/077 chips [8]
  1359. 56h = T 132x43 8x8 . 3??? 2 B000 NSI Smart EGA+
  1360. = T 132x43 7x9 . 4 . B000 Paradise VGA
  1361. = T 132x43 8x9 . 4 . B000 Paradise VGA on multisync
  1362. = T 132x43 . . mono . . Taxan 565 EGA
  1363. = T 132x43 7x9 . 2 . . AT&T VDC600
  1364. = T 132x43 9x8 . . . . NEL Electronics BIOS
  1365. = T 132x50 8x8 . 4 . A000 NCR 77C22 [9]
  1366. = T 132x60 8x8 . 16/256K . B800 Trident TVGA 8800/8900
  1367. = G . . 1024x768 16 . A000 Oak VGA
  1368. = G 128x48 8x16 1024x768 16 . A000 Oak OTI-067/077 chips [8]
  1369. 57h = T 132x25 8x14 . 3??? 4 B000 NSI Smart EGA+
  1370. = T 132x25 7x16 . 4 . B000 Paradise VGA
  1371. = T 132x25 8x16 . 4 . B000 Paradise VGA on multisync
  1372. = T 132x25 9x14 . . . . NEL Electronics BIOS
  1373. = T 132x25 . . mono . . Taxan 565 EGA
  1374. = T 132x25 7x16 . 2 . . AT&T VDC600
  1375. = T 132x25 9x14 . 16/256K . B800 Trident TVGA 8800/8900
  1376. = T 132x25 8x16 . 4 . A000 NCR 77C22 [9]
  1377. = G 96x48 8x16 768x1024 16 . A000 Oak OTI-067/077 chips [8]
  1378. 58h = T 80x33 8x14 . 16 . B800 ATI EGA Wonder,ATI VIP
  1379. = T 80x32 9x16 . 16 . . Genoa 6400
  1380. = T 80x43 8x8 . . . . NEL Electronics BIOS
  1381. = T 132x30 9x16 . 16/256K . B800 Trident TVGA 8800/8900
  1382. = G 100x75 8x8 800x600 16/256K . A000 Paradise VGA
  1383. = G 100x75 8x8 800x600 16 . . AT&T VDC600
  1384. = G 100x75 8x8 800x600 16 . A000 NCR 77C22 [9]
  1385. = G 100x75 8x8 800x600 16 . A000 Diamond Speedstar 24X
  1386. = G 100x75 8x8 800x600 16/256K . A000 Paradise VGA, WD90C
  1387. = G . . 800x600 16 . . AST VGA Plus, Compaq VGA
  1388. = G . . 800x600 16 . . Dell VGA
  1389. = G . . 800x600 16 . . Hewlett-Packard D1180A
  1390. = G . . 800x600 ??? . . ELT VGA PLUS 16
  1391. = G 100x37 8x16 800x600 16/256K . A000 Cirrus CL-GD5420/5422/5426
  1392. = G 160x64 8x16 1280x1024 16 . A000 Oak OTI-077 chipset [8]
  1393. 59h = T 80x43 9x8 . . . . NEL Electronics BIOS
  1394. = T 80x66 8x8 . 16/256K . A000 ATI VIP
  1395. = T 132x43 9x11 . 16/256K . B800 Trident TVGA 8800/8900
  1396. = G 100x75 8x8 800x600 2 . A000 Paradise VGA
  1397. = G 100x75 8x8 800x600 2 . . AT&T VDC600
  1398. = G . . 800x600 2 . . AST VGA Plus, Compaq VGA
  1399. = G . . 800x600 2 . . Dell VGA
  1400. = G . . 800x600 2 . . Hewlett-Packard D1180A
  1401. = G 100x75 8x8 800x600 2 . A000 NCR 77C22 [9]
  1402. = G 128x48 8x16 1024x768 256 . A000 Oak OTI-077 chipset [8]
  1403. 5Ah = T 80x60 8x8 . . . . NEL Electronics BIOS
  1404. = T 132x60 9x8 . 16/256K . B800 Trident TVGA 8800/8900
  1405. = G 128x48 8x16 1024x768 2 . A000 NCR 77C22 [9]
  1406. 5Bh = T 80x30 8x16 . . . B800 ATI VGA Wonder (undoc)
  1407. = G . . 640x350 256 . . Genoa 6400
  1408. = G 80x25 8x16 640x400 32K . A000 Oak OTI-067/077 chips [8]
  1409. = G . . 800x600 16 . . Maxxon, SEFCO TVGA, Imtec
  1410. = G 100x75 8x8 800x600 16/256K . A000 Trident TVGA 8800, 8900
  1411. = G . . 800x600 ??? . . Vobis MVGA
  1412. = G 100x37 8x16 800x600 . . . NEL Electronics BIOS
  1413. = G 128x48 8x16 1024x768 16 . A000 NCR 77C22 [1,9]
  1414. 5Ch = T 100x37 8x16 . . . . NEL Electronics BIOS
  1415. = G . . 640x400 256 . . Logix, ATI Prism Elite
  1416. = G . . 640x400 256 . . Maxxon, SEFCO TVGA, Imtec
  1417. = G 80x25 8x16 640x400 256/256K . A000 Zymos Poach, Hi Res 512
  1418. = G 80x25 8x16 640x400 256/256K . A000 Trident TVGA 8800/8900
  1419. = G 80x30 8x16 640x480 256 . . Genoa 6400
  1420. = G 80x30 8x16 640x480 32K . A000 Oak OTI-077 chipset [8]
  1421. = G 100x75 8x8 800x600 256 . A000 NCR 77C22 [9]
  1422. = G 100x75 8x8 800x600 256/256K . A000 WD90C
  1423. = G 100x75 8x8 800x600 256/256K . A000 Diamond Speedstar 24X
  1424. = G 100x37 8x16 800x600 256/256K . A000 Cirrus CL-GD5420/5422/5426
  1425. 5Dh = T 100x75 8x8 . . . . NEL Electronics BIOS
  1426. = G 80x25 8x14 640x350 64K . . STB Lightspeed ET4000/W32P
  1427. = G . . 640x480 256 . . Logix, ATI Prism Elite
  1428. = G . . 640x480 256 . . Maxxon, SEFCO TVGA, Imtec
  1429. = G 80x30 8x16 640x480 256/256K . A000 Zymos Poach, Hi Res 512
  1430. = G 80x30 8x16 640x480 256/256K . A000 Trident TVGA 8800 (512K)
  1431. = G 128x48 8x16 1024x768 16 . A000 NCR 77C22 [9]
  1432. = G 128x48 8x16 1024x768 16/256K . A000 WD90C
  1433. = G 128x48 8x16 1024x768 16 . A000 Diamond Speedstar 24X
  1434. = G 128x48 8x16 1024x768 16/256K . A000 Cirrus CL-GD5420/5422/5426
  1435. 5Eh = G . . 640x400 256 . . Paradise VGA,VEGA VGA
  1436. = G . . 640x400 256 . . AST VGA Plus, NCR 77C22
  1437. = G . . 640x400 256 . . Compaq VGA, Dell VGA
  1438. = G 80x25 8x16 640x400 256 . . AT&T VDC600
  1439. = G 80x25 8x16 640x400 256 . A000 NCR 77C22 [9]
  1440. = G 80x25 8x16 640x400 256/256K . A000 WD90C
  1441. = G 80x25 8x16 640x400 256/256K . A000 Diamond Speedstar 24X
  1442. = G . . 800x600 16 . . Logix, ATI Prism Elite
  1443. = G 100x37 8x16 800x600 16 . . NEL Electronics BIOS
  1444. = G 100x75 8x8 800x600 256 . . Genoa 6400
  1445. = G 100x75 8x8 800x600 256/256K . A000 Zymos Poach, Trident 8900
  1446. = G 100x75 8x8 800x600 256/256K . A000 Hi Res 512
  1447. 5Fh = G 80x25 8x16 640x400 64K . . STB Lightspeed ET4000/W32P
  1448. = G . . 640x480 256 . . Paradise VGA
  1449. = G . . 640x480 256 . . AST VGA Plus, NCR 77C22
  1450. = G . . 640x480 256 . . Compaq VGA, Dell VGA
  1451. = G . . 640x480 256 . . Hewlett-Packard D1180A
  1452. = G 80x30 8x16 640x480 256 . . AT&T VDC600 (512K)
  1453. = G 80x30 8x16 640x480 256 . A000 NCR 77C22 [9]
  1454. = G 80x30 8x16 640x480 256/256K . A000 WD90C
  1455. = G 80x30 8x16 640x480 256/256K . A000 Diamond Speedstar 24X
  1456. = G 80x30 8x16 640x480 256/256K . A000 Cirrus CL-GD5420/5422/5426
  1457. = G . . 1024x768 16 . . Logix, ATI Prism Elite
  1458. = G . . 1024x768 16 . . Maxxon, Imtec
  1459. = G 128x48 8x16 1024x768 16 . . Genoa 6400
  1460. = G 128x48 8x16 1024x768 16/256K . A000 Zymos Poach, Hi Res 512
  1461. = G 128x48 8x16 1024x768 16/256K . A000 Trident TVGA 88/8900 512K
  1462. 60h = T 132x25 8x14 . 16/64 8 B800 Quadram Ultra VGA
  1463. = T 132x25 8x14 . 16 . . Genoa 6400
  1464. = T 132x25 8x14 . 16 . . Genoa SuperEGA BIOS 3.0+
  1465. = T 132x25 . . . . . Cirrus 5320 chipset
  1466. = T 132x25 8x16 1056x400 16 . B800 Chips&Technologies chipset
  1467. = G 80x??? . ???x400 . . . Corona/Cordata BIOS 4.10+
  1468. = G 80x25 8x16 640x400 256 1 A000 Ahead A, Ahead B
  1469. = G . . 752x410 . . . VEGA VGA
  1470. = G . . 752x410 16 . . Tatung VGA
  1471. = G . . 752x410 16 . . Video7 V-RAM VGA
  1472. = G 128x48 8x16 1024x768 4/256K . A000 Trident TVGA 8900
  1473. = G 128x48 8x16 1024x768 256/256K . A000 WD90C
  1474. = G 128x48 8x16 1024x768 256/256K . A000 Diamond Speedstar 24X
  1475. = G 128x48 8x16 1024x768 256/256K . A000 Cirrus CL-GD5420/5422/5426
  1476. = G 144x54 8x16 1152x864 . . A000 Diamond Stealth64 Video 2xx1
  1477. 61h = T 132x29 8x12 . 16/64 8 B800 Quadram Ultra VGA
  1478. = T 132x29 8x8 . 16 . . Genoa 6400
  1479. = T 132x29 8x8 . 16 . . Genoa SuperEGA BIOS 3.0+
  1480. = T 132x50 . . . . . Cirrus 5320 chipset
  1481. = T 132x50 8x8 1056x400 16 . B800 Chips&Technologies chipset
  1482. = T 132x50 8x16 1056x800 16 . B800 Chips&Technologies 64310
  1483. = G . . ???x400 . . . Corona/Cordata BIOS 4.10+
  1484. = G 80x25 8x16 640x400 256 . A000 ATI VGA Wonder,VGA Wonder+
  1485. = G 80x25 8x16 640x400 256 . A000 ATI Ultra 8514A,ATI XL
  1486. = G 80x25 8x16 640x400 . . A000 Diamond Stealth64 Video 2xx1
  1487. = G 80x30 8x16 640x480 256 1 A000 Ahead A, Ahead B (512K)
  1488. = G . . 720x540 . . . VEGA VGA
  1489. = G . . 720x540 16 . . Tatung VGA
  1490. = G . . 720x540 16 . . Video7 V-RAM VGA
  1491. = G 96x64 8x16 768x1024 16/256K . A000 Trident TVGA 88/8900 512K
  1492. = G 128x48 8x16 1024x768 256 . A000 NCR 77C22 [1,9]
  1493. = G 144x54 8x16 1152x864 . . A000 Diamond Stealth64 Video 2xx1
  1494. 62h = T 132x32 8x11 . 16/64 6 B800 Quadram Ultra VGA
  1495. = T 132x32 8x12 . 16 . . Genoa 6400
  1496. = T 132x32 8x11 . 16 . . Genoa SuperEGA BIOS 3.0+
  1497. = T 132x43 8x8 1056x344 16 . B800 C&T 82C450 BIOS
  1498. = G . . 640x450 16 . . Cirrus 510/520 chipset
  1499. = G 80x30 8x16 640x480 256 . A000 ATI VGA Wonder,VGA Wonder+
  1500. = G 80x30 8x16 640x480 256 . A000 ATI Ultra 8514A,ATI XL
  1501. = G 80x30 8x16 640x480 32K . A000 WD90C
  1502. = G 80x30 8x16 640x480 32K . A000 Diamond Speedstar 24X
  1503. = G . . 800x600 . . . VEGA VGA
  1504. = G . . 800x600 16 . . Tatung VGA
  1505. = G . . 800x600 16 . . Video7 V-RAM VGA
  1506. = G 100x75 8x8 800x600 256 1 A000 Ahead A, Ahead B (512K)
  1507. = G 128x48 8x16 1024x768 256/256K . A000 Trident TVGA 8900, Zymos
  1508. = G 128x48 8x16 1024x768 256 . A000 NCR 77C22 [9]
  1509. 63h = T 132x44 8x8 . 16/64 5 B800 Quadram Ultra VGA
  1510. = T 132x44 8x8 . 16 . . Genoa 6400
  1511. = T 132x44 8x8 . 16 . . Genoa SuperEGA BIOS 3.0+
  1512. = G . . 720x540 16 . . MORSE VGA
  1513. = G . . 720x540 16 . . Cirrus 510/520 chipset
  1514. = G 100x42 8x14 800x600 256 . A000 ATI VGA Wonder,VGA Wonder+
  1515. = G 100x42 8x14 800x600 256 . A000 ATI Ultra 8514A,ATI XL
  1516. = G . . 800x600 32K . A000 WD90C
  1517. = G . . 800x600 32K . A000 Diamond Speedstar 24X
  1518. = G 128x48 7x16 1024x768 256 1 A000 Ahead B (1MB)
  1519. = G . . 1024x768 2 . . Video7 V-RAM VGA
  1520. 64h = T 132x60 8x8 . 16 . . Genoa 6400
  1521. = T 80x43 8x8 528x344 16 . B800 C&T 82C450 BIOS
  1522. = G . . 640x480 64K . A000 Cirrus CL-GD 5422/5426
  1523. = G . . 800x600 16 . . MORSE VGA
  1524. = G . . 800x600 16 . . Cirrus 510/520 chipset
  1525. = G . . 800x600 ??? . . SAMPO-Mira VGA
  1526. = G . . 1024x768 4 . . Video7 V-RAM VGA
  1527. = G 128x48 8x16 1024x768 256 . A000 ATI VGA Wonder Plus,ATI XL
  1528. = G 160x64 8x16 1280x1024 16/256K . A000 WD90C [1]
  1529. = G 160x64 8x16 1280x1024 16/256K . A000 Diamond Speedstar 24X [1]
  1530. 65h = T 80x50 8x8 528x400 16 . B800 C&T 82C450 BIOS
  1531. = G . . 800x600 64K . A000 Cirrus CL-GD 5422/5426
  1532. = G . . 1024x768 16 . . Video7 V-RAM VGA
  1533. = G 128x48 8x16 1024x768 16 . A000 ATI VGA Wonder
  1534. 66h = T 80x50 8x8 640x400 16/256K . B800 WD90C
  1535. = T 80x50 8x8 . 16 . B800 Diamond Speedstar 24X
  1536. = G . . 640x400 256 . . Tatung VGA
  1537. = G . . 640x400 256 . . Video7 V-RAM VGA
  1538. = G . . 640x480 32K . A000 Cirrus CL-GD 5422/5426
  1539. 67h = T 80x43 8x8 640x344 16/256K . B800 WD90C
  1540. = T 80x43 8x8 . 16 . B800 Diamond Speedstar 24X
  1541. = G . . 640x480 256 . . Video7 V-RAM VGA
  1542. = G . . 800x600 32K . A000 Cirrus CL-GD 5422/5426
  1543. = G 128x48 8x16 1024x768 4 . A000 ATI VGA Wonder
  1544. = G 160x64 8x16 1280x1024 16 . A000 NCR 77C22 [1,9]
  1545. 68h = G 80x25 8x16 640x400 . . A000 Diamond Stealth64 Video 2xx1
  1546. 69h = T 132x50 8x8 1056x400 16/256K . B800 WD90C
  1547. = T 132x50 8x8 . 16 . B800 Diamond Speedstar 24X
  1548. = G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
  1549. = G . . 720x540 256 . A000 Video7 V-RAM VGA
  1550. 6Ah = G . . 800x600 16 . A000 VESA standard interface
  1551. = G 100x75 8x8 800x600 16 . A000 Genoa 6400
  1552. = G 100x75 8x8 800x600 16 . A000 Diamond Speedstar 24X
  1553. = G . . 800x600 16 . A000 Ahead A
  1554. = G 100x75 8x8 800x600 16 1 A000 Ahead B (VESA) [see 71h]
  1555. = G . . 800x600 16 . . Zymos Poach, Hi Res 512
  1556. = G . . 800x600 16 . . Epson LT-386SX in CRT Mode
  1557. = G . . 800x600 16 . . Compuadd 316SL in CRT Mode
  1558. = G 100x37 8x16 800x600 16/256K . A000 Cirrus CL-GD5420/5422/5426
  1559. = G 100x37 8x16 800x600 16 . A000 Diamond Stealth64 Video 2xx1
  1560. = G 100x42 8x14 800x600 . . A000 ATI VGA Wonder (undoc)
  1561. = G . . 800x600 16 . A000 Chips&Technologies chipset
  1562. = G 160x64 8x16 1280x1024 256 . A000 NCR 77C22 [1,9]
  1563. 6Bh = T 100x37 8x16 . 16 . . Genoa 6400
  1564. = T 100x37 8x16 . . . . NEL Electronics BIOS
  1565. = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
  1566. 6Ch = G 80x30 8x16 640x480 16M . A000 Trident 8900CL/BIOS C04
  1567. = G 100x75 8x8 800x600 256 . . Genoa 6400
  1568. = G 128x48 8x16 1024x768 2 . A000 Diamond Stealth64 Video 2xx1
  1569. = G 160x60 8x16 1280x960 16/256K . A000 WD90C [1]
  1570. = G 160x60 8x16 1280x960 16/256K . A000 Diamond Speedstar 24X [1]
  1571. = G 160x64 8x16 1280x1024 16/256K . A000 Cirrus CL-GD 5422/5426 [1]
  1572. 6Dh = G 80x25 8x14 640x350 64K . A000 STB Lightspeed ET4000/W32P
  1573. = G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1
  1574. = G 160x64 8x16 1280x1024 256/256K . A000 Cirrus CL-GD 5422/5426 [1]
  1575. 6Eh = G 40x25 8x8 320x200 64K . A000 Cirrus CL-GD 5422/5426
  1576. = G 160x64 8x16 1280x1024 2 . A000 Diamond Stealth64 Video 2xx1
  1577. 6Fh = G 40x25 8x8 320x200 16M . A000 Cirrus CL-GD 5422/5426
  1578. = G 160x64 8x16 1280x1024 . . A000 Diamond Stealth64 Video 2xx1
  1579. 70h = extended mode set (see AX=0070h) . Everex Micro Enhancer EGA
  1580. = T 40x25 8x8 . 16 8 B800 Quadram (CGA double scan)
  1581. = T 40x25 8x8 (CGA dblscan) . . Genoa SuperEGA BIOS 3.0+
  1582. = G . . 360x480 256 . . Cirrus 510/520/5320 chips
  1583. = G 90x28 8x14 720x392 16 1 A000 Ahead B
  1584. = G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
  1585. = G 100x38 8x16 800x600 16 . A000 C&T chipset, Cardinal
  1586. = G . . 1024x480 256 . A000 Trident 8900C BIOS C3.0
  1587. 71h = T 80x25 8x8 . 16 8 B800 Quadram (CGA double scan)
  1588. = T 80x25 8x8 (CGA dblscan) . . Genoa SuperEGA BIOS 3.0+
  1589. = G . . 528x400 256 . . Cirrus 510/520 chipset
  1590. = G 80x30 8x16 640x480 16M . A000 Cirrus CL-GD 5422/5426
  1591. = G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
  1592. = G 100x35 8x16 800x600 16/64 . A000 NSI Smart EGA+
  1593. = G 100x75 8x8 800x600 16 1 A000 Ahead B (same as 6Ah)
  1594. = G . . 960x720 16 . . C&T chipset, Cardinal
  1595. = G . . 1024x480 256 . A000 Trident 8900C BIOS C3.0
  1596. 72h = T 80x60 8x8 . 16 . B800 Quadram Ultra VGA
  1597. = T 80x60 8x8 . 16 . B800 Genoa 6400
  1598. = T 80x60 8x8 . 16 . B800 Genoa SuperEGA BIOS 3.0+
  1599. = G . . 528x480 256 . . Cirrus 510/520 chipset
  1600. = G 80x25 8x19 640x480 16 1 A000 DOS/V w/ any VGA
  1601. = G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
  1602. = G . . 640x480 32K . A000 ATI
  1603. = G . . 640x480 16M . A000 WD90C
  1604. = G . . 640x480 16M . A000 Diamond Speedstar 24X
  1605. = G . . 1024x768 16 . . C&T chipset, Cardinal
  1606. = G 128x48 8x16 1024x768i 16 . A000 C&T 82C450 BIOS
  1607. = G 128x48 8x16 1024x768 16 . A000 C&T 65530 BIOS (multisync)
  1608. 73h = G 80x60 8x8 640x480 16 . A000 Quadram Ultra VGA
  1609. = G 80x60 8x8 640x480 16 . . Genoa 6400
  1610. = G 80x60 8x8 640x480 16 . . Genoa SuperEGA BIOS 3.0+
  1611. = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
  1612. = T 80x25 8x19 640x475 16 1 none DOS/V, emulated in VGA graph
  1613. 74h = T 80x66 8x8 . 16 . B800 Quadram Ultra VGA
  1614. = T 80x66 8x8 . 16 . B800 Genoa 6400
  1615. = T 80x66 8x8 . 16 . B800 Genoa SuperEGA BIOS 3.0+
  1616. = G . . 640x400 2 . B800 Toshiba 3100 AT&T mode
  1617. = G 80x30 8x16 640x480 32K . A000 Trident 8900C/BIOS C03
  1618. = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
  1619. = G 128x48 8x16 1024x768 16 1 A000 Ahead A, Ahead B (512K)
  1620. = G . . 1024x768 64K . A000 Cirrus CL-GD 5422/5426 [1]
  1621. 75h = G 80x30 8x16 640x480 64K . A000 Trident 8900C/BIOS C03
  1622. = G 80x66 . 640x528 16??? . A000 Quadram Ultra VGA
  1623. = G 80x66 . 640x528 16 . . Genoa SuperEGA BIOS 3.0+
  1624. = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
  1625. = G 128x48 8x16 1024x768 4 1 A000 Ahead B
  1626. = G 128x48 8x16 1024x768 16 . A000 Chips&Technologies 64310
  1627. 76h = T 94x29 8x14 . 16 . B800 Quadram Ultra VGA
  1628. = T 94x29 8x14 . . . . Genoa SuperEGA BIOS 3.0+
  1629. = G 100x75 8x8 800x600 32K . A000 Trident 8900C/BIOS C03
  1630. = G 128x48 8x16 1024x768 2 1 A000 Ahead B
  1631. = G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1
  1632. = G 160x64 8x16 1280x1024 16 . A000 Chips&Technologies 64310 [1]
  1633. 77h = G 94x29 . 752x410 16??? . A000 Quadram Ultra VGA
  1634. = G 94x29 . 752x410 16 . . Genoa SuperEGA BIOS 3.0+
  1635. = G 100x75 8x8 800x600 64K . A000 Trident 8900C/BIOS C03
  1636. = G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1
  1637. 78h = T 100x37 8x16 . 16 . . Genoa 6400
  1638. = T 100x75 8x8 . 16 . B800 Quadram Ultra VGA
  1639. = T 100x75 8x8 . . . . Genoa SuperEGA BIOS 3.0+
  1640. = G . . 640x400 256 . . STB VGA/EM-16 Plus
  1641. = G 80x25 8x16 640x400 256 . . Cardinal, C&T chipset
  1642. = G . . 640x400 256 . . Cirrus 5320 chipset
  1643. = G 80x25 8x16 640x400 256 . A000 Chips&Technologies 64310
  1644. 79h = G 80x30 8x16 640x480 256 . . Cardinal, C&T chipset
  1645. = G 80x30 8x16 640x480 256 . A000 Chips&Technologies 64310
  1646. = G 100x75 . 800x600 16??? . A000 Quadram Ultra VGA
  1647. = G 100x75 8x8 800x600 16 . . Genoa SuperEGA BIOS 3.0+
  1648. = G 100x75 8x8 800x600 16 . . Genoa 6400
  1649. 7Ah = T 114x60 8x8 . 16 . B800 Quadram Ultra VGA
  1650. = T 114x60 8x8 . . . . Genoa SuperEGA BIOS 3.0+
  1651. = G . . 720x540 256 . . C&T chipset, Cardinal
  1652. 7Bh = G . . 800x600 256 . . C&T chipset, Cardinal
  1653. = G 114x60 . 912x480 16??? . A000 Quadram Ultra VGA
  1654. = G . . 912x480 16 . . Genoa SuperEGA BIOS 3.0+
  1655. 7Ch = G . . 512x512 16 . . Genoa
  1656. = G 100x37 8x16 800x600 256 . . C&T 82C453/F65530 chipsets
  1657. = G 100x37 8x16 800x600 256 . A000 Chips&Technologies 64310
  1658. = G 200x75 8x16 1600x1200 . [16] . A000 Diamond Stealth64 Video 2xx1
  1659. 7Dh = G 64x32 8x16 512x512 256 . . Genoa
  1660. 7Eh = special mode set (see AX=007Eh) . Paradise VGA, AT&T VDC600
  1661. = G 80x25 8x16 640x400 256 . . Genoa 6400
  1662. = G . . 1024x768 256 . . C&T 82C453 chipset
  1663. = G 128x48 8x16 1024x768 256 . A000 Chips&Technologies 64310
  1664. = G 90x43 . . mono . B000 HERCULES.COM on HGC [14]
  1665. 7Fh = special function set (see AX=007Fh/BH=00h) Paradise VGA, AT&T VDC600
  1666. = G 128x48 8x16 1024x768 4 . . Genoa 6400
  1667. = G 90x29 . . mono . B000 HERCULES.COM on HGC [14]
  1668. 82h = T 80x25 . . B&W . . AT&T VDC overlay mode [6]
  1669. 83h = T 80x25 . . . . . AT&T VDC overlay mode [6]
  1670. 86h = G . . 640x200 B&W . . AT&T VDC overlay mode [6]
  1671. 88h = G 90x43 8x8 720x348 mono . B000 Hercules + MSHERC.COM
  1672. C0h = G . . 640x400 2/prog palette . AT&T VDC overlay mode [6]
  1673. = G . . 640x400 2/prog palette . Olivetti Quaderno overlay
  1674. C4h = disable output . . . . AT&T VDC overlay mode [6]
  1675. C8h = G 80x50 8x8 640x400 2 . B800 Olivetti Quaderno overlay
  1676. D0h = G . . 640x400 2 . B800 DEC VAXmate AT&T mode
  1677. Notes:
  1678. [1] interlaced only
  1679. [2] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.
  1680. SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h,
  1681. otherwise to mode 23h, thus selecting the appropriate (monochrome or
  1682. color) 132x25 character mode.
  1683. for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
  1684. resident
  1685. [3] early XGA boards support 132-column text but do not have this BIOS mode
  1686. [4] DESQview intercepts calls to change into these two modes (21h is page 0,
  1687. 22h is page 1) even if there is no Hercules graphics board installed
  1688. [5] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
  1689. [6] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
  1690. 40h, or 44h
  1691. [7] BIOS text support is broken in this undocumented mode; scrolling moves
  1692. only about 1/3 of the screen (and does even that portion incorrectly),
  1693. while screen clears only clear about 3/4.
  1694. [8] The Oak OTI-037/067/077 modes are present in the Oak VGA BIOS, which OEMs
  1695. may choose to use only partially or not at all; thus, not all Oak boards
  1696. support all "Oak" modes listed here
  1697. [9] this card uses the full 128K A000h-BFFFh range for the video buffer,
  1698. precluding the use of a monochrome adapter in the same system
  1699. [10] mode 17h supported by Tseng ET4000 BIOS 8.01X dated 09/14/90, but not
  1700. v8.01X dated 02/28/92; mode 21h supported by 02/28/92 version but not
  1701. 09/14/90 version
  1702. [11] HERKULES simulates a 90x45 text mode in Hercules graphics mode; the
  1703. installation check for HERKULES.COM is the signature "Herkules" two
  1704. bytes beyond the INT 10 handler
  1705. [12] The Realtek RTVGA BIOS v3.C10 crashes when attempting to switch into
  1706. modes 21h or 27h; this version of the BIOS also sets the BIOS data area
  1707. incorrectly for extended text modes, resulting in scrolling after only
  1708. 24 lines (the VMODE.EXE utility does set the data area correctly)
  1709. [13] The Tandy 1000SL/TL BIOS does not actually support this mode
  1710. [14] HERCULES.COM is a graphics-mode BIOS extension for Hercules-compatible
  1711. graphics cards by Soft Warehouse, Inc. Its installation check is to
  1712. test whether the word preceding the INT 10 handler is 4137h.
  1713. [15] The Hercules-graphics video modes for HERCBIOS (shareware by Dave
  1714. Tutelman) may be changed by a command-line switch; the 90x43
  1715. character-cell mode's number is always one higher than the 90x29 mode
  1716. (whose default is mode 08h)
  1717. [16] Stealth64 Video 2001-series BIOS v1.03 reports 76 lines for mode 7Ch,
  1718. resulting in incorrect scrolling for TTY output (scrolling occurs only
  1719. after the end of the 76th line, which is not displayed)
  1720. [17] For 43-line text on EGA or 43/50-line text on VGA, you must load an 8x8
  1721. font using AX=1102h after switching to mode 3; VGA may also require
  1722. using INT 10/AH=12h/BL=30h
  1723. SeeAlso: #00011,#00083,#00191
  1724. Index: video modes
  1725. Index: installation check;HERKULES|installation check;HERCULES.COM
  1726. --------V-100070-----------------------------
  1727. INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET
  1728. AX = 0070h
  1729. BL = mode (see #00011)
  1730. Desc: specify a proprietary display mode on the Everex Micro Enhancer or
  1731. Viewpoint video adapters
  1732. SeeAlso: AH=00h,AX=6F05h,AX=7000h/BX=0004h,AH=FFh"GO32"
  1733. (Table 00011)
  1734. Values for Everex video mode:
  1735. text/ text pixel pixel colors disply scrn monitor adapter
  1736. grph resol box resolution pages addr
  1737. 00h = G . . 640x480 16 . . multisync EGA,VGA
  1738. 01h = G . . 752x410 16 . . multisync EGA,VGA
  1739. 02h = G . . 800x600 16 . . multisync EGA,VGA
  1740. 03h = T 80x34 . . . . . multisync EGA,VGA
  1741. 04h = T 80x60 . . . . . multisync EGA,VGA
  1742. 05h = T 94x29 . . . . . multisync EGA only
  1743. 06h = T 94x51 . . . . . multisync EGA only
  1744. 07h = T 100x43 8x14 . 16 . . . VGA only
  1745. 08h = T 100x75 8x8 . 16 . . . VGA only
  1746. 09h = T 80x44 . . . . . EGA EGA only
  1747. 0Ah = T 132x25 . . . . . EGA EGA,VGA
  1748. 0Bh = T 132x44 . . . . . EGA EGA,VGA
  1749. 0Ch = T 132x25 . . . . . CGA EGA only
  1750. 0Dh = T 80x44 . . . . . mono EGA only
  1751. 0Eh = T 132x25 . . . . . mono
  1752. 0Fh = T 132x44 . . . . . mono
  1753. 10h = reserved
  1754. 11h = G . . 1280x350 4 . . . EGA only
  1755. 12h = G . . 1280x600 4 . . . EGA only
  1756. 13h = G . . 640x350 256 . . . EGA,EV673
  1757. 14h = G . . 640x400 256 . . .
  1758. 15h = G . . 512x480 256 . . .
  1759. 16h = T 80x30 8x16 . 256 . . . VGA only
  1760. 18h = T 100x27 8x16 . 16 . . . VGA only
  1761. 20h = G . . 1024x768 16 . . . Everex 629,678
  1762. . . . . . . . Everex EV-673
  1763. 21h = T 160x64 8x16 1280x1024 16 . . . 1MB VGA only
  1764. 30h = G . . 640x480 256 . . . Everex 629,678
  1765. . . . . . . . Everex EV-673
  1766. 31h = G . . 800x600 256 . . . Everex 629,678
  1767. . . . . . . . Everex EV-673
  1768. 32h = G 128x48 8x16 1024x768 256 . . . 1MB VGA only
  1769. 40h = T 132x30 8x16 . 16 . . . VGA only
  1770. 50h = T 132x32 8x16 . mono . . . VGA only
  1771. 62h = G 40x25 8x8 320x200 32K . . . Vwpt TC (EV629)
  1772. 70h = G 64x30 8x16 512x480 32K . . . Viewpoint TC
  1773. 71h = G 80x30 8x16 640x480 32K . . . Viewpoint TC
  1774. 76h = G 64x30 8x16 512x480 16M . . . Viewpoint TC
  1775. 77h = G 80x30 8x16 640x480 16M . . . Viewpoint TC
  1776. SeeAlso: #00010,#00191
  1777. Index: video modes;Everex
  1778. --------V-10007E-----------------------------
  1779. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE
  1780. AX = 007Eh
  1781. BX = horizontal dimension of the mode desired
  1782. CX = vertical dimension of the mode desired
  1783. (both BX/CX in pixels for graphics modes, rows for alpha modes)
  1784. DX = number of colors of the mode desired (0000h for monochrome modes)
  1785. Return: BH = 7Eh if successful (Paradise VGA)
  1786. AL = 7Eh if successful (AT&T VDC600)
  1787. Desc: specify a display mode by resolution rather than mode number
  1788. SeeAlso: AH=00h,AX=0070h,AX=007Fh/BH=00h,AX=6F05h,AH=FFh"GO32"
  1789. Index: video modes;Paradise|video modes;AT&T
  1790. --------V-10007FBH00-------------------------
  1791. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET VGA OPERATION
  1792. AX = 007Fh
  1793. BH = 00h
  1794. Return: AL = 7Fh if successful (AT&T VDC600)
  1795. BH = status (Paradise/Dell)
  1796. 00h invalid function
  1797. 7Fh successful
  1798. SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02h
  1799. --------V-10007FBH01-------------------------
  1800. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET NON-VGA OPERATION
  1801. AX = 007Fh
  1802. BH = 01h
  1803. Return: AL = 7Fh if successful (AT&T VDC600)
  1804. BH = status (Paradise/Dell)
  1805. 00h invalid function
  1806. 7Fh successful
  1807. Note: color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation, monochrome
  1808. mode 7 will set non-VGA MDA/Hercules operation
  1809. SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=02h
  1810. --------V-10007FBH02-------------------------
  1811. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - QUERY MODE STATUS
  1812. AX = 007Fh
  1813. BH = 02h
  1814. Return: AL = 7Fh if successful (AT&T VDC600)
  1815. BH = status (Paradise/Dell)
  1816. 00h invalid function
  1817. 7Fh successful
  1818. ---if successful---
  1819. BL = 00h if operating in VGA mode, 01h if non-VGA mode
  1820. CH = total video RAM size in 64k byte units
  1821. CL = video RAM used by the current mode
  1822. Note: under Novell DOS 7 TaskMgr Multitasker, this call always returns 0K
  1823. video memory in CX
  1824. SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=01h
  1825. --------V-10007FBH03-------------------------
  1826. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - LOCK CURRENT MODE
  1827. AX = 007Fh
  1828. BH = 03h
  1829. Return: AL = 7Fh if successful (AT&T VDC600)
  1830. BH = status (Paradise/Dell)
  1831. 00h invalid function
  1832. 7Fh successful
  1833. Desc: allows current mode (VGA or non-VGA) to survive re-boot
  1834. SeeAlso: AX=007Eh,AX=007Fh/BH=04h,AX=007Fh/BH=06h,AH=FFh"Oak"
  1835. --------V-10007FBH04-------------------------
  1836. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER MDA EMULATION MODE
  1837. AX = 007Fh
  1838. BH = 04h
  1839. Return: AL = 7Fh if successful (AT&T VDC600)
  1840. BH = status (Paradise/Dell)
  1841. 00h invalid function
  1842. 7Fh successful
  1843. SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=05h,AH=FFh"Oak"
  1844. --------V-10007FBH05-------------------------
  1845. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER CGA EMULATION MODE
  1846. AX = 007Fh
  1847. BH = 05h
  1848. Return: AL = 7Fh if successful (AT&T VDC600)
  1849. BH = status (Paradise/Dell)
  1850. 00h invalid function
  1851. 7Fh successful
  1852. SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=04h,AH=FFh"Oak"
  1853. --------V-10007FBH06-------------------------
  1854. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER MONOCHROME VGA MODE
  1855. AX = 007Fh
  1856. BH = 06h
  1857. Return: AL = 7Fh if successful (AT&T VDC600)
  1858. BH = status (Paradise/Dell)
  1859. 00h invalid function
  1860. 7Fh successful
  1861. Note: this function also switches to video mode 7
  1862. SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=07h,AH=FFh"Oak"
  1863. --------V-10007FBH07-------------------------
  1864. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER COLOR VGA MODE
  1865. AX = 007Fh
  1866. BH = 07h
  1867. Return: AL = 7Fh if successful (AT&T VDC600)
  1868. BH = status (Paradise/Dell)
  1869. 00h invalid function
  1870. 7Fh successful
  1871. Note: this function also switches to video mode 3
  1872. SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=06h,AH=FFh"Oak"
  1873. --------V-10007F-----------------------------
  1874. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED DATA REGISTER ACCESS
  1875. AX = 007Fh
  1876. BH = function
  1877. 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh WRITE PARADISE REGISTERS 0,1,2,3,4,5
  1878. (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1879. BL = value to set in the paradise register
  1880. 1Ah,1Bh,1Ch,1Dh,1Eh,1Fh READ PARADISE REGISTERS 0,1,2,3,4,5
  1881. (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1882. Return: BL = value of the paradise register
  1883. BH = 7Fh if successful
  1884. 29h-2Fh ??? (Paradise VGA for Dell, 7/24/91)
  1885. Return: AL = 7Fh if successful (AT&T VDC600)
  1886. BH = status (Paradise/Dell)
  1887. 00h invalid function
  1888. 7Fh successful
  1889. SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=05h,AH=FFh"Oak"
  1890. --------V-10007FBH60-------------------------
  1891. INT 10 - Paradise VGA - ???
  1892. AX = 007Fh
  1893. BH = 60h
  1894. BL = ??? (00h-13h)
  1895. ???
  1896. Return: BH = status (00h failed or not supported, 7Fh successful)
  1897. ???
  1898. Note: this function is supported by the 5/14/93 ROM for the Dell 486D
  1899. SeeAlso: AX=007Fh/BH=61h
  1900. --------V-10007FBH61-------------------------
  1901. INT 10 - Paradise VGA - ???
  1902. AX = 007Fh
  1903. BH = 61h
  1904. ES:DI -> buffer for list of ??? (see #00012)
  1905. Return: BH = status (00h failed or not supported, 7Fh successful)
  1906. ???
  1907. Note: this function is supported by the 5/14/93 ROM for the Dell 486D
  1908. SeeAlso: AX=007Fh/BH=60h
  1909. Format of Paradise VGA list entry:
  1910. Offset Size Description (Table 00012)
  1911. 00h BYTE ??? or 00h if end of list
  1912. 01h BYTE ???
  1913. 02h WORD ???
  1914. 04h WORD ???
  1915. 06h WORD ???
  1916. --------V-10007FBXA500-----------------------
  1917. INT 10 - Paradise VGA - ???
  1918. AX = 007Fh
  1919. BX = A500h
  1920. ???
  1921. Return: BH = status (00h failed or not supported, 7Fh successful)
  1922. ???
  1923. Note: this function is supported by the 5/14/93 ROM for the Dell 486D
  1924. SeeAlso: AX=007Fh/BH=A6h
  1925. --------V-10007FBHA5-------------------------
  1926. INT 10 - Paradise VGA - ???
  1927. AX = 007Fh
  1928. BH = A5h
  1929. BL = ???
  1930. bits 3-0: ??? (0-4)
  1931. bits 5,4: ???
  1932. ???
  1933. Return: BH = status (00h failed or not supported, 7Fh successful)
  1934. ???
  1935. Note: this function is supported by the 5/14/93 ROM for the Dell 486D
  1936. --------V-10007FBHA6-------------------------
  1937. INT 10 - Paradise VGA - ???
  1938. AX = 007Fh
  1939. BH = A6h
  1940. ???
  1941. Return: BH = status (00h failed or not supported, 7Fh successful)
  1942. ???
  1943. Note: this function is supported by the 5/14/93 ROM for the Dell 486D
  1944. SeeAlso: AX=007Fh/BH=A5h
  1945. --------V-1001-------------------------------
  1946. INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
  1947. AH = 01h
  1948. CH = cursor start and options (see #00013)
  1949. CL = bottom scan line containing cursor (bits 0-4)
  1950. Return: nothing
  1951. Desc: specify the starting and ending scan lines to be occupied by the
  1952. hardware cursor in text modes
  1953. Notes: buggy on EGA systems--BIOS remaps cursor shape in 43 line modes, but
  1954. returns unmapped cursor shape
  1955. UltraVision scales size to the current font height by assuming 14-line
  1956. monochrome and 8-line color fonts; this call is not valid if cursor
  1957. emulation has been disabled
  1958. applications which wish to change the cursor by programming the
  1959. hardware directly on EGA or above should call INT 10/AX=1130h or
  1960. read 0040h:0085h first to determine the current font height
  1961. on some adapters, setting the end line greater than the number of lines
  1962. in the font will result in the cursor extending to the top of the
  1963. next character cell on the right
  1964. BUG: AMI 386 BIOS and AST Premier 386 BIOS will lock up the system if AL
  1965. is not equal to the current video mode
  1966. SeeAlso: AH=03h,AX=CD05h,AH=12h/BL=34h,#03885
  1967. Bitfields for cursor start and options:
  1968. Bit(s) Description (Table 00013)
  1969. 7 should be zero
  1970. 6,5 cursor blink
  1971. (00=normal, 01=invisible, 10=erratic, 11=slow)
  1972. (00=normal, other=invisible on EGA/VGA)
  1973. 4-0 topmost scan line containing cursor
  1974. --------V-1002-------------------------------
  1975. INT 10 - VIDEO - SET CURSOR POSITION
  1976. AH = 02h
  1977. BH = page number
  1978. 0-3 in modes 2&3
  1979. 0-7 in modes 0&1
  1980. 0 in graphics modes
  1981. DH = row (00h is top)
  1982. DL = column (00h is left)
  1983. Return: nothing
  1984. SeeAlso: AH=03h,AH=05h,INT 60/DI=030Bh,MEM 0040h:0050h
  1985. --------V-1003-------------------------------
  1986. INT 10 - VIDEO - GET CURSOR POSITION AND SIZE
  1987. AH = 03h
  1988. BH = page number
  1989. 0-3 in modes 2&3
  1990. 0-7 in modes 0&1
  1991. 0 in graphics modes
  1992. Return: AX = 0000h (Phoenix BIOS)
  1993. CH = start scan line
  1994. CL = end scan line
  1995. DH = row (00h is top)
  1996. DL = column (00h is left)
  1997. Notes: a separate cursor is maintained for each of up to 8 display pages
  1998. many ROM BIOSes incorrectly return the default size for a color display
  1999. (start 06h, end 07h) when a monochrome display is attached
  2000. SeeAlso: AH=01h,AH=02h,AH=12h/BL=34h,MEM 0040h:0050h,MEM 0040h:0060h
  2001. --------V-1004-------------------------------
  2002. INT 10 - VIDEO - READ LIGHT PEN POSITION (except VGA)
  2003. AH = 04h
  2004. Return: AH = light pen trigger flag
  2005. 00h not down/triggered
  2006. 01h down/triggered
  2007. DH,DL = row,column of character light pen is on
  2008. CH = pixel row (graphics modes 04h-06h)
  2009. CX = pixel row (graphics modes with >200 rows)
  2010. BX = pixel column
  2011. Desc: determine the current position and status of the light pen (if
  2012. present)
  2013. Notes: on a CGA, returned column numbers are always multiples of 2 (320-
  2014. column modes) or 4 (640-column modes)
  2015. returned row numbers are only accurate to two lines
  2016. --------V-1004------------------------------------
  2017. INT 10 - HUNTER 16 - GET CURSOR ADDRESS
  2018. AH = 04h
  2019. BH = page
  2020. Return: DH = row (0..24)
  2021. DL = column (0..79)
  2022. CH = cursor pixel Y-address (0..199)
  2023. CL = cursor pixel X-address (0..639)
  2024. Notes: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
  2025. members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  2026. pixel coordinates are for the lower left corner of the character cell
  2027. containing the cursor
  2028. SeeAlso: AH=60h"HUNTER"
  2029. --------V-1005-------------------------------
  2030. INT 10 - VIDEO - SELECT ACTIVE DISPLAY PAGE
  2031. AH = 05h
  2032. AL = new page number (00h to number of pages - 1) (see #00010)
  2033. Return: nothing
  2034. Desc: specify which of possibly multiple display pages will be visible
  2035. Note: to determine whether the requested page actually exists, use AH=0Fh
  2036. to query the current page after making this call
  2037. SeeAlso: AH=0Fh,AH=43h,AH=45h,MEM 0040h:0062h,MEM 0040h:004Eh
  2038. --------V-100500-----------------------------
  2039. INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - SET GRAPHICS BITMAP BUFFER
  2040. AX = 0500h
  2041. BX = segment of buffer
  2042. Return: nothing
  2043. Desc: set the address of graphics bitmap buffer for video modes 60h and 61h
  2044. SeeAlso: AX=050Fh"Corona"
  2045. --------V-10050F-----------------------------
  2046. INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - GET GRAPHICS BITMAP BUFFER
  2047. AX = 050Fh
  2048. Return: DX = segment of graphics bitmap buffer
  2049. Desc: get the address of graphics bitmap buffer for video modes 60h and 61h
  2050. SeeAlso: AX=0500h"Corona"
  2051. --------V-100580-----------------------------
  2052. INT 10 - VIDEO - PCjr, Tandy 1000 - GET CRT/CPU PAGE REGISTERS
  2053. AX = 0580h
  2054. Return: BH = CRT page register
  2055. BL = CPU page register
  2056. Notes: the CPU page determines which 16K block of the first 128K of physical
  2057. memory will be mapped at B800h by the hardware
  2058. the CRT page determines the start address of the memory used by the
  2059. video controller
  2060. SeeAlso: AH=05h"SET CRT/CPU"
  2061. --------V-1005-------------------------------
  2062. INT 10 - VIDEO - PCjr, Tandy 1000 - SET CRT/CPU PAGE REGISTERS
  2063. AH = 05h
  2064. AL = subfunction
  2065. 81h set CPU page register
  2066. BL = CPU page
  2067. 82h set CRT page register
  2068. BH = CRT page
  2069. 83h set both CPU and CRT page registers
  2070. BL = CPU page
  2071. BH = CRT page
  2072. Return: nothing
  2073. Notes: the CPU page determines which 16K block of the first 128K of physical
  2074. memory will be mapped at B800h by the hardware
  2075. the CRT page determines the start address of the memory used by the
  2076. video controller
  2077. SeeAlso: AX=0580h
  2078. --------V-1006-------------------------------
  2079. INT 10 - VIDEO - SCROLL UP WINDOW
  2080. AH = 06h
  2081. AL = number of lines by which to scroll up (00h = clear entire window)
  2082. BH = attribute used to write blank lines at bottom of window
  2083. CH,CL = row,column of window's upper left corner
  2084. DH,DL = row,column of window's lower right corner
  2085. Return: nothing
  2086. Note: affects only the currently active page (see AH=05h)
  2087. BUGS: some implementations (including the original IBM PC) have a bug which
  2088. destroys BP
  2089. the Trident TVGA8900CL (BIOS dated 9/8/92) clears DS to 0000h when
  2090. scrolling in an SVGA mode (800x600 or higher)
  2091. SeeAlso: AH=07h,AH=12h"Tandy 2000",AH=72h,AH=73h,AX=7F07h,INT 50/AX=0014h
  2092. --------V-1007-------------------------------
  2093. INT 10 - VIDEO - SCROLL DOWN WINDOW
  2094. AH = 07h
  2095. AL = number of lines by which to scroll down (00h=clear entire window)
  2096. BH = attribute used to write blank lines at top of window
  2097. CH,CL = row,column of window's upper left corner
  2098. DH,DL = row,column of window's lower right corner
  2099. Return: nothing
  2100. Note: affects only the currently active page (see AH=05h)
  2101. BUGS: some implementations (including the original IBM PC) have a bug which
  2102. destroys BP
  2103. the Trident TVGA8900CL (BIOS dated 9/8/92) clears DS to 0000h when
  2104. scrolling in an SVGA mode (800x600 or higher)
  2105. SeeAlso: AH=06h,AH=12h"Tandy 2000",AH=72h,AH=73h,INT 50/AX=0014h
  2106. --------V-1008-------------------------------
  2107. INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  2108. AH = 08h
  2109. BH = page number (00h to number of pages - 1) (see #00010)
  2110. Return: AH = character's attribute (text mode only) (see #00014)
  2111. AH = character's color (Tandy 2000 graphics mode only)
  2112. AL = character
  2113. Notes: for monochrome displays, a foreground of 1 with background 0 is
  2114. underlined
  2115. the blink bit may be reprogrammed to enable intense background colors
  2116. using AX=1003h or by programming the CRT controller
  2117. the foreground intensity bit (3) can be programmed to switch between
  2118. character sets A and B on EGA and VGA cards, thus enabling 512
  2119. simultaneous characters on screen. In this case the bit's usual
  2120. function (intensity) is regularly turned off.
  2121. in graphics modes, only characters drawn with white foreground pixels
  2122. are matched by the pattern-comparison routine
  2123. on the Tandy 2000, BH=FFh specifies that the current page should be
  2124. used
  2125. BUG: some IBM PC ROM BIOSes destroy BP when in graphics modes
  2126. SeeAlso: AH=09h,AX=1003h,AX=1103h,AH=12h/BL=37h,AX=5001h
  2127. Bitfields for character's display attribute:
  2128. Bit(s) Description (Table 00014)
  2129. 7 foreground blink or (alternate) background bright (see also AX=1003h)
  2130. 6-4 background color (see #00015)
  2131. 3 foreground bright or (alternate) alternate character set (see AX=1103h)
  2132. 2-0 foreground color (see #00015)
  2133. SeeAlso: #00026
  2134. (Table 00015)
  2135. Values for character color:
  2136. Normal Bright
  2137. 000b black dark gray
  2138. 001b blue light blue
  2139. 010b green light green
  2140. 011b cyan light cyan
  2141. 100b red light red
  2142. 101b magenta light magenta
  2143. 110b brown yellow
  2144. 111b light gray white
  2145. --------V-1009-------------------------------
  2146. INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  2147. AH = 09h
  2148. AL = character to display
  2149. BH = page number (00h to number of pages - 1) (see #00010)
  2150. background color in 256-color graphics modes (ET4000)
  2151. BL = attribute (text mode) or color (graphics mode)
  2152. if bit 7 set in <256-color graphics mode, character is XOR'ed
  2153. onto screen
  2154. CX = number of times to write character
  2155. Return: nothing
  2156. Notes: all characters are displayed, including CR, LF, and BS
  2157. replication count in CX may produce an unpredictable result in graphics
  2158. modes if it is greater than the number of positions remaining in the
  2159. current row
  2160. SeeAlso: AH=08h,AH=0Ah,AH=4Bh"GRAFIX",INT 17/AH=60h,INT 1F"SYSTEM DATA"
  2161. SeeAlso: INT 43"VIDEO DATA",INT 44"VIDEO DATA"
  2162. --------V-100A-------------------------------
  2163. INT 10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION
  2164. AH = 0Ah
  2165. AL = character to display
  2166. BH = page number (00h to number of pages - 1) (see #00010)
  2167. background color in 256-color graphics modes (ET4000)
  2168. BL = attribute (PCjr, Tandy 1000 only) or color (graphics mode)
  2169. if bit 7 set in <256-color graphics mode, character is XOR'ed
  2170. onto screen
  2171. CX = number of times to write character
  2172. Return: nothing
  2173. Notes: all characters are displayed, including CR, LF, and BS
  2174. replication count in CX may produce an unpredictable result in graphics
  2175. modes if it is greater than the number of positions remaining in the
  2176. current row
  2177. SeeAlso: AH=08h,AH=09h,AH=11h"Tandy 2000",AH=4Bh,INT 17/AH=60h
  2178. SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA",INT 44"VIDEO DATA"
  2179. --------V-100B--BH00-------------------------
  2180. INT 10 - VIDEO - SET BACKGROUND/BORDER COLOR
  2181. AH = 0Bh
  2182. BH = 00h
  2183. BL = background/border color (border only in text modes)
  2184. Return: nothing
  2185. SeeAlso: AH=0Bh/BH=01h
  2186. --------V-100B--BH01-------------------------
  2187. INT 10 - VIDEO - SET PALETTE
  2188. AH = 0Bh
  2189. BH = 01h
  2190. BL = palette ID
  2191. 00h background, green, red, and brown/yellow
  2192. 01h background, cyan, magenta, and white
  2193. Return: nothing
  2194. Note: this call was only valid in 320x200 graphics on the CGA, but newer
  2195. cards support it in many or all graphics modes
  2196. SeeAlso: AH=0Bh/BH=00h,MEM 0040h:0066h
  2197. --------V-100B--BH02-------------------------
  2198. INT 10 - Tandy 2000 - VIDEO - SET PALETTE ENTRY
  2199. AH = 0Bh
  2200. BH = 02h
  2201. BL = palette entry number
  2202. AL = new color value for palette entry
  2203. Return: nothing
  2204. Note: this interrupt is identical to INT 52 for Tandy 2000
  2205. SeeAlso: INT 10/AH=00h,INT 10/AH=0Bh/BH=01h,INT 52"Tandy 2000"
  2206. --------V-100C-------------------------------
  2207. INT 10 - VIDEO - WRITE GRAPHICS PIXEL
  2208. AH = 0Ch
  2209. BH = page number
  2210. AL = pixel color
  2211. if bit 7 set, value is XOR'ed onto screen except in 256-color modes
  2212. CX = column
  2213. DX = row
  2214. Return: nothing
  2215. Desc: set a single pixel on the display in graphics modes
  2216. Notes: valid only in graphics modes
  2217. BH is ignored if the current video mode supports only one page
  2218. SeeAlso: AH=0Dh,AH=46h
  2219. --------V-100D-------------------------------
  2220. INT 10 - VIDEO - READ GRAPHICS PIXEL
  2221. AH = 0Dh
  2222. BH = page number
  2223. CX = column
  2224. DX = row
  2225. Return: AL = pixel color
  2226. Desc: determine the current color of the specified pixel in grahics modes
  2227. Notes: valid only in graphics modes
  2228. BH is ignored if the current video mode supports only one page
  2229. SeeAlso: AH=0Ch,AH=47h
  2230. --------V-100E-------------------------------
  2231. INT 10 - VIDEO - TELETYPE OUTPUT
  2232. AH = 0Eh
  2233. AL = character to write
  2234. BH = page number
  2235. BL = foreground color (graphics modes only)
  2236. Return: nothing
  2237. Desc: display a character on the screen, advancing the cursor and scrolling
  2238. the screen as necessary
  2239. Notes: characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
  2240. and do the expected things
  2241. IBM PC ROMs dated 4/24/81 and 10/19/81 require that BH be the same as
  2242. the current active page
  2243. BUG: if the write causes the screen to scroll, BP is destroyed by BIOSes
  2244. for which AH=06h destroys BP
  2245. SeeAlso: AH=02h,AH=06h,AH=0Ah
  2246. --------b-100E--CXABCD-----------------------
  2247. INT 10 - V20-XT-BIOS - TELETYPE OUTPUT WITH ATTRIBUTE
  2248. AH = 0Eh
  2249. CX = ABCDh
  2250. BP = ABCDh
  2251. AL = character to write
  2252. BH = page number
  2253. BL = foreground color (text modes as well as graphics modes)
  2254. Return: nothing
  2255. Program: V20-XT-BIOS is a ROM BIOS replacement with extensions by Peter
  2256. Koehlmann / c't magazine
  2257. Desc: display a character on the screen, advancing the cursor and scrolling
  2258. the screen as necessary
  2259. Notes: characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
  2260. and do the expected things
  2261. SeeAlso: INT 15/AH=84h"V20-XT-BIOS"
  2262. --------V-100F-------------------------------
  2263. INT 10 - VIDEO - GET CURRENT VIDEO MODE
  2264. AH = 0Fh
  2265. Return: AH = number of character columns
  2266. AL = display mode (see #00010 at AH=00h)
  2267. BH = active page (see AH=05h)
  2268. Notes: if mode was set with bit 7 set ("no blanking"), the returned mode will
  2269. also have bit 7 set
  2270. EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  2271. (monochrome) in all extended-row text modes
  2272. HP 200LX returns AL=07h (monochrome) if mode was set to AL=21h
  2273. and always 80 resp. 40 columns in all text modes regardless of
  2274. current zoom setting (see AH=D0h)
  2275. when using a Hercules Graphics Card, additional checks are necessary:
  2276. mode 05h: if WORD 0040h:0063h is 03B4h, may be in graphics page 1
  2277. (as set by DOSSHELL and other Microsoft software)
  2278. mode 06h: if WORD 0040h:0063h is 03B4h, may be in graphics page 0
  2279. (as set by DOSSHELL and other Microsoft software)
  2280. mode 07h: if BYTE 0040h:0065h bit 1 is set, Hercules card is in
  2281. graphics mode, with bit 7 indicating the page (mode set by
  2282. Hercules driver for Borland Turbo C)
  2283. the Tandy 2000 BIOS is only documented as returning AL, not AH or BH
  2284. SeeAlso: AH=00h,AH=05h,AX=10F2h,AX=1130h,AX=CD04h,MEM 0040h:004Ah
  2285. --------V-100F56BX4756-----------------------
  2286. INT 10 - VUIMAGE DISPLAY DRIVER (v2.20 and below)
  2287. AX = 0F56h
  2288. BX = 4756h
  2289. CX = 4944h
  2290. DL = function
  2291. 01h installation check
  2292. Return: AX = 5649h
  2293. BX = 4443h
  2294. CX = 5647h
  2295. DH = 01h
  2296. 02h get first video mode's parameters
  2297. Return: AX = BIOS mode number
  2298. BX = width in pixels
  2299. CX = height in pixels
  2300. DX = number of colors
  2301. 03h get next video mode's parameters
  2302. Return: as for DL=02h
  2303. 04h display line???
  2304. ES:DI -> record (see #00016)
  2305. ???
  2306. Return: ???
  2307. Program: VUIMAGE is a shareware GIF/TIFF image viewer by Offe Enterprises
  2308. Note: the use of TSR display drivers was discontinued after v2.20
  2309. Index: installation check;VUIMAGE display driver
  2310. Format of record for VUIMAGE Function 04h:
  2311. Offset Size Description (Table 00016)
  2312. 00h WORD row number
  2313. 02h WORD starting column???
  2314. 04h WORD ending column???
  2315. ???
  2316. --------V-100F--SIF123-----------------------
  2317. INT 10 - FRIEZE v7.41+ - INSTALLATION CHECK
  2318. AH = 0Fh
  2319. SI = F123h
  2320. DI = 321Fh
  2321. Return: AH = number of character columns
  2322. AL = display mode (see #00010 at AH=00h)
  2323. BH = active page (see AH=05h)
  2324. SI = DI = F345h if installed
  2325. Notes: if mode was set with bit 7 set ("no blanking"), the returned mode will
  2326. also have bit 7 set
  2327. EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  2328. (monochrome) in all extended-row text modes
  2329. SeeAlso: AH=0Fh"VIDEO",AH=4Bh"FRIEZE"
  2330. --------V-1010-------------------------------
  2331. INT 10 - BIOS Window Extension v1.1 - SET WINDOW COORDINATES
  2332. AH = 10h
  2333. CH,CL = row,column of upper left corner of window
  2334. DH,DL = row,column of lower right corner of window
  2335. Return: AL = status
  2336. 00h successful
  2337. 01h failed
  2338. AH destroyed
  2339. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2340. Note: when a window has been set, all output via AH=0Eh is restricted to
  2341. the specified window
  2342. SeeAlso: AH=11h"Window",AH=12h"Window"
  2343. --------V-1010-------------------------------
  2344. INT 10 - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED
  2345. AH = 10h
  2346. AL = speed
  2347. 00h fast
  2348. 01h slow (scrolling only moves characters during vertical retrace)
  2349. Return: AH = previous speed
  2350. --------V-1010-------------------------------
  2351. INT 10 - Tandy 2000 - VIDEO - GET/SET CHARACTER FONTS
  2352. AH = 10h
  2353. AL = control value
  2354. bit 0: set character set instead of reading it
  2355. bit 1: high 128 characters instead of low 128 characters
  2356. ES:BX -> new character set if AL bit 0 set
  2357. Return: ES:BX -> current character set if AL bit 0 clear on entry
  2358. Notes: this interrupt is identical to INT 52 on Tandy 2000
  2359. the character set consists of 16 bytes for each of the 128 characters,
  2360. where each of the 16 bytes describes the pixels in one scan line,
  2361. most significant bit leftmost
  2362. SeeAlso: AH=00h,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000"
  2363. SeeAlso: INT 52"Tandy 2000"
  2364. --------V-101000-----------------------------
  2365. INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,Tandy,EGA,MCGA,VGA)
  2366. AX = 1000h
  2367. BL = palette register number (00h-0Fh)
  2368. = attribute register number (undocumented) (see #00017)
  2369. BH = color or attribute register value
  2370. Return: nothing
  2371. Notes: on MCGA, only BX = 0712h is supported
  2372. under UltraVision, the palette locking status (see AX=CD01h)
  2373. determines the outcome
  2374. SeeAlso: AX=1002h,AX=1007h,AX=CD01h
  2375. (Table 00017)
  2376. Values for attribute register number:
  2377. 10h attribute mode control register (should let BIOS control this)
  2378. 11h overscan color register (see also AX=1001h)
  2379. 12h color plane enable register (bits 3-0 enable corresponding
  2380. text attribute bit)
  2381. 13h horizontal PEL panning register
  2382. 14h color select register
  2383. --------V-101001-----------------------------
  2384. INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,Tandy,EGA,VGA)
  2385. AX = 1001h
  2386. BH = border color (00h-3Fh)
  2387. Return: nothing
  2388. BUG: the original IBM VGA BIOS incorrectly updates the parameter save area
  2389. and places the border color at offset 11h of the palette table
  2390. rather than offset 10h
  2391. Note: under UltraVision, the palette locking status (see AX=CD01h)
  2392. determines the outcome
  2393. SeeAlso: AX=1002h,AX=1008h,AX=CD01h
  2394. --------V-101002-----------------------------
  2395. INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,Tandy,EGA,VGA)
  2396. AX = 1002h
  2397. ES:DX -> palette register list (see #00018)
  2398. BH = 00h to avoid problems on some adapters
  2399. Return: nothing
  2400. Note: under UltraVision, the palette locking status (see AX=CD01h)
  2401. determines the outcome
  2402. SeeAlso: AX=1000h,AX=1001h,AX=1009h,AX=CD01h
  2403. Format of palette register list:
  2404. Offset Size Description (Table 00018)
  2405. 00h 16 BYTEs colors for palette registers 00h through 0Fh
  2406. 10h BYTE border color
  2407. SeeAlso: #00461
  2408. --------V-101003-----------------------------
  2409. INT 10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
  2410. AX = 1003h
  2411. BL = new state
  2412. 00h background intensity enabled
  2413. 01h blink enabled
  2414. BH = 00h to avoid problems on some adapters
  2415. Return: nothing
  2416. Notes: although there is no function to get the current status on adapters
  2417. prior to the VGA, bit 5 of 0040h:0065h indicates the state; on the
  2418. VGA, use AH=1Bh and check offset 2Dh of the returned data (see #00040)
  2419. when configured for a monochrome display, the Boca Research Multi-EGA
  2420. with ROM v M1.1 Type D has its screen disrupted if BH is not clear
  2421. this call is reported to be "Get Cursor Position" on the Tandy
  2422. 1000SL/TL
  2423. SeeAlso: AH=08h,AH=1Bh
  2424. --------V-101007-----------------------------
  2425. INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)
  2426. AX = 1007h
  2427. BL = palette or attribute (undoc) register number (see #00017)
  2428. Return: BH = palette or attribute register value
  2429. Note: UltraVision v2+ supports this function even on color EGA systems in
  2430. video modes 00h-03h, 10h, and 12h; direct programming of the palette
  2431. registers will cause incorrect results because the EGA registers are
  2432. write-only. To guard against older versions or unsupported video
  2433. modes, programs which expect to use this function on EGA systems
  2434. should set BH to FFh on entry.
  2435. SeeAlso: AX=1000h,AX=1009h
  2436. --------V-101008-----------------------------
  2437. INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)
  2438. AX = 1008h
  2439. Return: BH = border color (00h-3Fh)
  2440. Note: (see AX=1007h)
  2441. SeeAlso: AX=1001h
  2442. --------V-101009-----------------------------
  2443. INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)
  2444. AX = 1009h
  2445. ES:DX -> 17-byte buffer for palette register list (see #00018)
  2446. Return: nothing
  2447. Note: UltraVision v2+ supports this function even on color EGA systems in
  2448. video modes 00h-03h, 10h, and 12h; direct programming of the palette
  2449. registers will cause incorrect results because the EGA registers are
  2450. write-only. To guard against older versions or unsupported video
  2451. modes, programs which expect to use this function on EGA systems
  2452. should set the ES:DX buffer to FFh before calling.
  2453. SeeAlso: AX=1002h,AX=1007h,AX=CD02h
  2454. --------V-101010-----------------------------
  2455. INT 10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)
  2456. AX = 1010h
  2457. BX = register number
  2458. CH = new value for green (0-63)
  2459. CL = new value for blue (0-63)
  2460. DH = new value for red (0-63)
  2461. Return: nothing
  2462. SeeAlso: AX=1012h,AX=1015h
  2463. --------V-101012-----------------------------
  2464. INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)
  2465. AX = 1012h
  2466. BX = starting color register
  2467. CX = number of registers to set
  2468. ES:DX -> table of 3*CX bytes where each 3 byte group represents one
  2469. byte each of red, green and blue (0-63)
  2470. Return: nothing
  2471. SeeAlso: AX=1010h,AX=1017h,INT 62/AX=00A5h
  2472. --------V-101013-----------------------------
  2473. INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)
  2474. AX = 1013h
  2475. BL = subfunction
  2476. 00h select paging mode
  2477. BH = 00h select 4 blocks of 64
  2478. BH = 01h select 16 blocks of 16
  2479. 01h select page
  2480. BH = page number (00h to 03h) or (00h to 0Fh)
  2481. Return: nothing
  2482. Note: this function is not valid in mode 13h
  2483. SeeAlso: AX=101Ah
  2484. --------V-101015-----------------------------
  2485. INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)
  2486. AX = 1015h
  2487. BL = palette register number
  2488. Return: DH = red value
  2489. CH = green value
  2490. CL = blue value
  2491. AX destroyed by some BIOSes
  2492. (e.g. Tseng ET4000 BIOS v8.00n always returns AX=00C9h)
  2493. SeeAlso: AX=1010h,AX=1017h
  2494. --------V-101017-----------------------------
  2495. INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)
  2496. AX = 1017h
  2497. BX = starting palette register
  2498. CX = number of palette registers to read
  2499. ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h)
  2500. Return: buffer filled with CX red, green and blue triples
  2501. SeeAlso: AX=1012h,AX=1015h,INT 62/AX=00A4h
  2502. --------V-101018-----------------------------
  2503. INT 10 U - VIDEO - SET PEL MASK (VGA/MCGA)
  2504. AX = 1018h
  2505. BL = new PEL value
  2506. Return: nothing
  2507. SeeAlso: AX=1019h
  2508. --------V-101019-----------------------------
  2509. INT 10 U - VIDEO - READ PEL MASK (VGA/MCGA)
  2510. AX = 1019h
  2511. Return: BL = value read
  2512. SeeAlso: AX=1018h
  2513. --------V-10101A-----------------------------
  2514. INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)
  2515. AX = 101Ah
  2516. Return: BL = paging mode
  2517. 00h four pages of 64
  2518. 01h sixteen pages of 16
  2519. BH = current page
  2520. SeeAlso: AX=1013h
  2521. --------V-10101B-----------------------------
  2522. INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)
  2523. AX = 101Bh
  2524. BX = starting palette register
  2525. CX = number of registers to convert
  2526. Return: nothing
  2527. Desc: convert the RGB values of one or more palette registers such that the
  2528. resulting values are grays with the same intensities as the original
  2529. colors
  2530. SeeAlso: AH=12h/BL=33h
  2531. --------V-1010E0-----------------------------
  2532. INT 10 - VIDEO - Diamond Speedstar 24 - SET 24-BIT GRAPHICS MODE
  2533. AX = 10E0h
  2534. BL = video mode (see also #00010 at AH=00h)
  2535. 2Eh = 640x480
  2536. Return: ???
  2537. SeeAlso: AH=00h,AX=10F0h
  2538. --------V-1010F0-----------------------------
  2539. INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE
  2540. AX = 10F0h
  2541. BL = video mode (see also #00010 at AH=00h)
  2542. 13h = 320x200x32K
  2543. 2Dh = 640x350x32K
  2544. 2Eh = 640x480x32K
  2545. 2Fh = 640x400x32K
  2546. 30h = 800x600x32K
  2547. 3Eh = 640x480x16M (Genoa 7900)
  2548. FFh Tseng 24-bit color mode
  2549. BH = mode
  2550. 2Dh = 640x480
  2551. 2Eh = 640x480x16M
  2552. 2Fh = 640x400
  2553. 30h = 800x600
  2554. 38h = 1024x768??? (Tseng ET4000/W32i)
  2555. Return: AL = 10h if supported
  2556. AH = status
  2557. 00h if successful
  2558. other on error
  2559. Desc: switch the display into a graphics mode with 15 or more bits per pixel
  2560. Note: the Tseng HiColor BIOS extensions are supported by:
  2561. Diamond Computer Systems SpeedStar HiColor VGA
  2562. Everex Systems HC VGA
  2563. Focus Information Systems 2theMax 4000
  2564. Cardinal Technologies VGA732
  2565. Orchid ProDesigner IIs Genoa 7900
  2566. SeeAlso: AH=00h,AX=10E0h,AX=10F1h,AX=10F2h
  2567. Index: video modes;Tseng Hi-Color
  2568. --------V-1010F1-----------------------------
  2569. INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE
  2570. AX = 10F1h
  2571. Return: AL = 10h if supported
  2572. BL = type of digital/analog converter (see #00019)
  2573. Desc: determine which type of digital-to-analog converter is installed on the
  2574. display board
  2575. SeeAlso: AX=10F0h,AX=10F2h
  2576. (Table 00019)
  2577. Values for type of DAC:
  2578. 00h normal VGA DAC
  2579. 01h Sierra SC1148x HiColor DAC
  2580. ---Diamond SpeedStar 24---
  2581. 02h new Sierra SS24 DAC (24-bit)
  2582. ---generic Tseng BIOS v8+ ---
  2583. 02h Sierra Mark2 (15-bit) or Mark3 (15/16-bit) DAC
  2584. 03h ATT20c490/1/2 (15/16/24-bit)
  2585. 04h AcuMos ADAC1 (15/16/24-bit)
  2586. 05h unknown 15/16/24-bit DAC
  2587. 06h Cirrus Internal 15/16/24-bit (CL-GD54xx series adapters)
  2588. 07h Diamond SS2410 (15/24-bit)
  2589. 08h unknown 15/16/24-bit DAC
  2590. 09h unknown 15/16/24-bit DAC
  2591. else other HiColor DAC
  2592. --------V-1010F2-----------------------------
  2593. INT 10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF HiColor MODE/SET HiColor MODE
  2594. AX = 10F2h
  2595. BL = function
  2596. 00h get current HiColor mode
  2597. 01h set 15-bit HiColor mode
  2598. 02h set 16-bit HiColor mode
  2599. Return: AX = 0010h if supported
  2600. BL = video mode type
  2601. 00h not in HiColor mode
  2602. 01h 15-bit RGB mode
  2603. 02h 16-bit RGB mode
  2604. 03h 24-bit RGB mode
  2605. Desc: determine whether the display is in a graphics mode with 15 or more
  2606. bits per pixel color resolution
  2607. Note: set (BL=01h/02h) only works if already in a HiColor mode
  2608. SeeAlso: AH=0Fh,AX=10F0h,AX=10F1h
  2609. --------V-1011-------------------------------
  2610. INT 10 - BIOS Window Extension v1.1 - GET WINDOW COORDINATES
  2611. AH = 11h
  2612. Return: CH,CL = row,column of upper left corner
  2613. DH,DL = row,column of lower right corner
  2614. Desc: determine the portion of the display to which output is restricted
  2615. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2616. SeeAlso: AH=10h"Window",AH=12h"Window"
  2617. --------V-1011-------------------------------
  2618. INT 10 - Tandy 2000 - VIDEO - WRITE ATTRIBUTE ONLY
  2619. AH = 11h
  2620. BL = new character attribute (text modes) or color (graphics)
  2621. CX = number of times to write attribute
  2622. Return: nothing
  2623. Note: this interrupt is identical to INT 52 on Tandy 2000
  2624. SeeAlso: AH=0Ah,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000"
  2625. SeeAlso: INT 52"Tandy 2000"
  2626. --------V-101100-----------------------------
  2627. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD USER-SPECIFIED PATTERNS (PS,EGA,VGA)
  2628. AX = 1100h
  2629. ES:BP -> user table
  2630. CX = count of patterns to store
  2631. DX = character offset into map 2 block
  2632. BL = block to load in map 2
  2633. BH = number of bytes per character pattern
  2634. Return: nothing
  2635. Notes: This function will cause a mode set, completely resetting
  2636. the video environment, but without clearing the video buffer
  2637. the current block specifiers may be determined with INT 10/AH=1Bh,
  2638. looking at offsets 2Bh and 2Ch of the returned data (VGA only)
  2639. (see AH=1Bh,#00040)
  2640. SeeAlso: AX=1101h,AX=1102h,AX=1103h,AX=1104h,AX=1110h,AH=1Bh,AX=CD10h
  2641. SeeAlso: MEM 0040h:0084h
  2642. Index: text mode;font|text mode;screen rows
  2643. --------V-101101-----------------------------
  2644. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM MONOCHROME PATTERNS (PS,EGA,VGA)
  2645. AX = 1101h
  2646. BL = block to load
  2647. Return: nothing
  2648. Notes: (see also AX=1100h)
  2649. This function will cause a mode set, completely resetting
  2650. the video environment, but without clearing the video buffer
  2651. the "monochrome" patters are 8x14 pixels in size
  2652. SeeAlso: AX=1100h,AX=1102h,AX=1103h,AX=1104h,AX=1111h,AH=1Bh,AX=CD10h
  2653. SeeAlso: MEM 0040h:0084h
  2654. Index: text mode;font|text mode;screen rows
  2655. --------V-101102-----------------------------
  2656. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x8 DBL-DOT PATTERNS (PS,EGA,VGA)
  2657. AX = 1102h
  2658. BL = block to load
  2659. Return: nothing
  2660. Notes: (see AX=1100h)
  2661. SeeAlso: AX=1100h,AX=1101h,AX=1103h,AX=1104h,AX=1112h,AH=1Bh,AX=CD10h
  2662. SeeAlso: MEM 0040h:0084h
  2663. --------V-101103-----------------------------
  2664. INT 10 - VIDEO - TEXT-MODE CHARGEN - SET BLOCK SPECIFIER (PS,EGA,VGA)
  2665. AX = 1103h
  2666. BL = block specifier (see #00020)
  2667. Return: nothing
  2668. Notes: (see also AX=1110h)
  2669. This function allows dual character sets to appear on screen
  2670. simultaneously
  2671. SeeAlso: AX=1100h,AX=1101h,AX=1102h,AX=1104h,AH=1Bh,AX=CD10h
  2672. SeeAlso: MEM 0040h:0084h
  2673. Index: text mode;font|text mode;screen rows
  2674. Bitfields for block specifier:
  2675. Bit(s) Description (Table 00020)
  2676. ---EGA/MCGA---
  2677. 0,1 block selected by characters with attribute bit 3 clear
  2678. 2,3 block selected by characters with attribute bit 3 set
  2679. ---VGA---
  2680. 0,1,4 block selected by characters with attribute bit 3 clear
  2681. 2,3,5 block selected by characters with attribute bit 3 set
  2682. --------V-101104-----------------------------
  2683. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x16 CHARACTER SET (VGA)
  2684. AX = 1104h
  2685. BL = block to load
  2686. Return: nothing
  2687. Notes: (see AX=1100h)
  2688. SeeAlso: AX=1100h,AX=1101h,AX=1102h,AX=1103h,AX=1114h,AH=1Bh,AX=CD10h
  2689. SeeAlso: MEM 0040h:0084h
  2690. Index: text mode;font|text mode;screen rows
  2691. --------V-1011-------------------------------
  2692. INT 10 - VIDEO - Realtek RTVGA - TEXT-MODE CHARACTER GENERATOR FUNCTIONS
  2693. AH = 11h
  2694. AL = 07h load user-specified patterns and recalculate mode parms
  2695. parameters are the same as for AX=1110h
  2696. AL = 08h load monochrome patterns (8x14) and recalculate mode parms
  2697. parameters are the same as for AX=1111h
  2698. AL = 09h load ROM 8 by 8 double-dot patterns and recalculate mode parms
  2699. parameters are the same as for AX=1112h
  2700. AL = 0Bh load ROM 8x16 character set (VGA) and recalculate mode parms
  2701. parameters are the same as for AX=1114h
  2702. Note: these functions should only be called under the same conditions as
  2703. AL=1xh (see AX=1110h"EGA")
  2704. SeeAlso: AX=1100h,AX=1110h"CHARGEN",AX=1110h"Realtek",MEM 0040h:0084h
  2705. Index: text mode;font|text mode;screen rows
  2706. --------V-10110F-----------------------------
  2707. INT 10 - VIDEO - Realtek RTVGA - SET USER 8x8 GRAPHICS CHARACTERS
  2708. AX = 110Fh
  2709. ES:BP -> user table for INT 1F
  2710. Return: nothing
  2711. Note: this function is meant to be called immediately after a mode set;
  2712. results are unpredictable at other times
  2713. SeeAlso: AX=1110h"Realtek",AX=1111h"Realtek",AX=1112h"Realtek",AX=1120h
  2714. --------V-101110-----------------------------
  2715. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD USER-SPECIFIED PATTERNS (PS,EGA,VGA)
  2716. AX = 1110h
  2717. ES:BP -> user table
  2718. CX = count of patterns to store
  2719. DX = character offset into map 2 block
  2720. BL = block to load in map 2
  2721. BH = number of bytes per character pattern
  2722. Return: nothing
  2723. Notes: This function will cause a mode set, completely resetting
  2724. the video environment, but without clearing the video buffer
  2725. This function is designed to be called immediately after a mode set,
  2726. it is equivalent to AX=110xh except that:
  2727. Page 0 must be active.
  2728. Bytes/character is recalculated.
  2729. Max character rows is recalculated.
  2730. CRT buffer length is recalculated.
  2731. CRTC registers are reprogrammed as follows:
  2732. R09 = bytes/char-1 ; max scan line (mode 7 only)
  2733. R0A = bytes/char-2 ; cursor start
  2734. R0B = 0 ; cursor end
  2735. R12 = ((rows+1)*(bytes/char))-1 ; vertical display end
  2736. R14 = bytes/char ; underline loc
  2737. (*** BUG: should be 1 less ***)
  2738. the current block specifiers may be determined with INT 10/AH=1Bh,
  2739. looking at offsets 2Bh and 2Ch of the returned data (VGA only)
  2740. (see AH=1Bh,#00040)
  2741. SeeAlso: AX=1100h,AX=1111h,AX=1112h,AX=1114h,AH=1Bh,AX=CD10h,MEM 0040h:0084h
  2742. Index: text mode;font|text mode;screen rows
  2743. --------V-101110-----------------------------
  2744. INT 10 - VIDEO - Realtek RTVGA - SET USER GRAPHICS CHARACTERS
  2745. AX = 1110h
  2746. ES:BP -> user table
  2747. CX = bytes per character
  2748. BL = row specifier
  2749. 00h user set
  2750. DL = number of rows
  2751. 01h 14 rows
  2752. 02h 25 rows
  2753. 03h 43 rows
  2754. Return: nothing
  2755. Note: this function is meant to be called immediately after a mode set;
  2756. results are unpredictable at other times
  2757. SeeAlso: AX=110Fh"Realtek",AX=1112h"Realtek",AX=1121h
  2758. --------V-101111-----------------------------
  2759. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM MONOCHROME PATTERNS (PS,EGA,VGA)
  2760. AX = 1111h
  2761. BL = block to load
  2762. Return: nothing
  2763. Notes: (see AX=1110h)
  2764. the "monochrome" patters are 8x14 pixels in size
  2765. SeeAlso: AX=1101h,AX=1110h,AX=1112h,AX=1114h,AH=1Bh,AX=CD10h
  2766. --------V-101111-----------------------------
  2767. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x14 GRAPHICS CHARACTERS
  2768. AX = 1111h
  2769. BL = row specifier (see AX=1121h)
  2770. Return: nothing
  2771. Note: this function is meant to be called immediately after a mode set;
  2772. results are unpredictable at other times
  2773. SeeAlso: AX=110Fh"Realtek",AX=1110h"Realtek",AX=1122h
  2774. --------V-101112-----------------------------
  2775. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x8 DBL-DOT PATTERNS (PS,EGA,VGA)
  2776. AX = 1112h
  2777. BL = block to load
  2778. Return: nothing
  2779. Notes: (see AX=1110h)
  2780. SeeAlso: AX=1103h,AX=1110h,AX=1111h,AX=1114h,AH=1Bh,AX=CD10h
  2781. --------V-101112-----------------------------
  2782. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x8 DOUBLE-DOT CHARACTERS
  2783. AX = 1112h
  2784. BL = row specifier (see AX=1121h)
  2785. Return: nothing
  2786. Note: this function is meant to be called immediately after a mode set;
  2787. results are unpredictable at other times
  2788. SeeAlso: AX=110Fh"Realtek",AX=1110h"Realtek",AX=1111h"Realtek",AX=1123h
  2789. --------V-101114-----------------------------
  2790. INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x16 CHARACTER SET (VGA)
  2791. AX = 1114h
  2792. BL = block to load
  2793. Return: nothing
  2794. Notes: (see AX=1110h)
  2795. SeeAlso: AX=1104h,AX=1110h,AX=1111h,AX=1112h,AH=1Bh,AX=CD10h
  2796. --------V-101118-----------------------------
  2797. INT 10 - IBM SurePath BIOS - Officially "Private" Function
  2798. AX = 1118h
  2799. --------V-101120-----------------------------
  2800. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER 8x8 GRAPHICS CHARS (PS,EGA,VGA)
  2801. AX = 1120h
  2802. ES:BP -> user table for INT 1F
  2803. Return: nothing
  2804. Note: this function is meant to be called immediately after a mode set;
  2805. results are unpredictable at other times
  2806. SeeAlso: AX=1121h,AX=1122h,AX=1123h,AX=1124h,AX=1129h,INT 1F"SYSTEM DATA"
  2807. SeeAlso: INT 43"VIDEO DATA"
  2808. --------V-101121-----------------------------
  2809. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (PS,EGA,VGA)
  2810. AX = 1121h
  2811. ES:BP -> user table
  2812. CX = bytes per character
  2813. BL = row specifier
  2814. 00h user set
  2815. DL = number of rows
  2816. 01h 14 rows
  2817. 02h 25 rows
  2818. 03h 43 rows
  2819. Return: AL = new number of rows (Diamond Stealth64 Video)
  2820. Note: this function is meant to be called immediately after a mode set;
  2821. results are unpredictable at other times
  2822. SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,AX=1129h"Compaq"
  2823. SeeAlso: AX=1129h"Diamond",INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
  2824. --------V-101122-----------------------------
  2825. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x14 GRAPHICS CHARS (PS,EGA,VGA)
  2826. AX = 1122h
  2827. BL = row specifier (see AX=1121h)
  2828. Return: nothing
  2829. Notes: this function is meant to be called immediately after a mode set;
  2830. results are unpredictable at other times
  2831. UltraVision v2+ sets INT 43 to the appropriate font on this call
  2832. SeeAlso: AX=1111h,AX=1120h,AX=1121h,AX=1123h,AX=1124h,AX=1129h
  2833. SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
  2834. --------V-101123-----------------------------
  2835. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x8 DOUBLE-DOT CHARS (PS,EGA,VGA)
  2836. AX = 1123h
  2837. BL = row specifier (see AX=1121h)
  2838. Return: nothing
  2839. Notes: this function is meant to be called immediately after a mode set;
  2840. results are unpredictable at other times
  2841. UltraVision v2+ sets INT 43 to the appropriate font on this call
  2842. SeeAlso: AX=1112h,AX=1120h,AX=1121h,AX=1122h,AX=1124h,AX=1129h
  2843. SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
  2844. --------V-101124-----------------------------
  2845. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPHICS CHARS (VGA,MCGA)
  2846. AX = 1124h
  2847. BL = row specifier (see AX=1121h)
  2848. Return: nothing
  2849. Notes: this function is meant to be called immediately after a mode set;
  2850. results are unpredictable at other times
  2851. UltraVision v2+ sets INT 43 to the appropriate font on this call
  2852. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1129h
  2853. SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
  2854. --------V-101129-----------------------------
  2855. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPH CHARS (Compaq Systempro)
  2856. AX = 1129h
  2857. BL = row specifier (see AX=1121h)
  2858. Return: nothing
  2859. Notes: this function is meant to be called immediately after a mode set;
  2860. results are unpredictable at other times
  2861. UltraVision v2+ sets INT 43 to the appropriate font on this call
  2862. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1124h,INT 1F"SYSTEM DATA"
  2863. SeeAlso: INT 43"VIDEO DATA"
  2864. --------V-101129-----------------------------
  2865. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (Diamond)
  2866. AX = 1129h
  2867. DI:BP -> user table
  2868. CX = bytes per character
  2869. BL = row specifier
  2870. 00h user set
  2871. DL = number of rows
  2872. 01h 14 rows
  2873. 02h 25 rows
  2874. 03h 43 rows
  2875. Return: AL = new number of rows
  2876. Notes: this function is meant to be called immediately after a mode set;
  2877. results are unpredictable at other times
  2878. supported by Diamond Stealth64 Video
  2879. SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,INT 1F"SYSTEM",INT 43"VIDEO"
  2880. --------V-101130-----------------------------
  2881. INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)
  2882. AX = 1130h
  2883. BH = pointer specifier
  2884. 00h INT 1Fh pointer
  2885. 01h INT 43h pointer
  2886. 02h ROM 8x14 character font pointer
  2887. 03h ROM 8x8 double dot font pointer
  2888. 04h ROM 8x8 double dot font (high 128 characters)
  2889. 05h ROM alpha alternate (9 by 14) pointer (EGA,VGA)
  2890. 06h ROM 8x16 font (MCGA, VGA)
  2891. 07h ROM alternate 9x16 font (VGA only) (see #00021)
  2892. 11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA)
  2893. 12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA)
  2894. Return: ES:BP = specified pointer
  2895. CX = bytes/character of on-screen font (not the requested font!)
  2896. DL = highest character row on screen
  2897. Note: for UltraVision v2+, the 9xN alternate fonts follow the corresponding
  2898. 8xN font at ES:BP+256N
  2899. BUG: the IBM EGA and some other EGA cards return in DL the number of rows on
  2900. screen rather than the highest row number (which is one less).
  2901. SeeAlso: AX=1100h,AX=1103h,AX=1120h,INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
  2902. Format of alternate font table [array]:
  2903. Offset Size Description (Table 00021)
  2904. 00h BYTE character to be replaced (00h = end of table)
  2905. 01h N BYTEs graphics data for character, one byte per scan line
  2906. --------V-101130BX4D4F-----------------------
  2907. INT 10 - M10_SCR.COM v3.5+ - INSTALLATION CHECK
  2908. AX = 1130h
  2909. BX = 4D4Fh
  2910. Return: CX = 4F4Dh if installed
  2911. ES:BP -> M10_SCR INT 10 handler
  2912. Program: M10_SCR is a shareware extended text mode and font driver by
  2913. I.V. Morozov
  2914. SeeAlso: INT 16/AX=4D4Fh
  2915. --------V-1012-------------------------------
  2916. INT 10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
  2917. AH = 12h
  2918. Return: BH = attribute to use on blanked lines when scrolling
  2919. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2920. SeeAlso: AH=11h"Window",AH=12h"Window"
  2921. --------V-1012-------------------------------
  2922. INT 10 - Tandy 2000 - VIDEO - SCROLL WINDOW
  2923. AH = 12h
  2924. AL = number of rows or columns to scroll
  2925. BH = buffer flag
  2926. 00h data in user buffer
  2927. ES:SI -> buffer containing character/attribute pairs
  2928. 01h no buffer, fill emptied rows/columns with blanks
  2929. BL = direction in which to scroll
  2930. 00h up
  2931. 01h down
  2932. 02h left
  2933. 03h right
  2934. CH,CL = row,column of upper left corner of scroll area
  2935. DH,DL = row,column of lower right corner
  2936. Return: nothing
  2937. Notes: this interrupt is identical to INT 52 on Tandy 2000
  2938. the user buffer, if supplied, must be organized by row; regardless of
  2939. the scroll direction, all character/attribute pairs for the first
  2940. row are first, then the pairs for the second row, etc.
  2941. SeeAlso: AH=00h,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000"
  2942. SeeAlso: INT 52"Tandy"
  2943. --------V-1012--BL10-------------------------
  2944. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO
  2945. AH = 12h
  2946. BL = 10h
  2947. Return: BH = video state
  2948. 00h color mode in effect (I/O port 3Dxh)
  2949. 01h mono mode in effect (I/O port 3Bxh)
  2950. BL = installed memory (00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K)
  2951. CH = feature connector bits (see #00022)
  2952. CL = switch settings (see #00023,#00024)
  2953. AH destroyed (at least by Tseng ET4000 BIOS v8.00n)
  2954. Note: one possible check for the presence of an EGA or later display card
  2955. is to call this function with BH=FFh; if not present, BH will be
  2956. unchanged on return
  2957. another installation check is used by Athena Digital's HGCIBM, which
  2958. sets CX to FFFFh on calling and checks whether it has been changed
  2959. on return
  2960. Index: installation check;EGA
  2961. Bitfields for feature connector bits:
  2962. Bit(s) Description (Table 00022)
  2963. 0 FEAT 1 line, state 2
  2964. 1 FEAT 0 line, state 2
  2965. 2 FEAT 1 line, state 1
  2966. 3 FEAT 0 line, state 1
  2967. 4-7 unused (0)
  2968. Bitfields for switch settings:
  2969. Bit(s) Description (Table 00023)
  2970. 0 switch 1 OFF
  2971. 1 switch 2 OFF
  2972. 2 switch 3 OFF
  2973. 3 switch 4 OFF
  2974. 4-7 unused
  2975. (Table 00024)
  2976. Values for switch settings on original EGA/VGA:
  2977. 00h primary MDA/HGC, secondary EGA+ 40x25
  2978. 01h-03h primary MDA/HGC, secondary EGA+ 80x25
  2979. 04h primary CGA 40x25, secondary EGA+ 80x25 mono
  2980. 05h primary CGA 80x25, secondary EGA+ 80x25 mono
  2981. 06h primary EGA+ 40x25, secondary MDA/HGC (optional)
  2982. 07h-09h primary EGA+ 80x25, secondary MDA/HGC (optional)
  2983. 0Ah primary EGA+ 80x25 mono,secondary CGA 40x25 (optional)
  2984. 0Bh primary EGA+ 80x25 mono,secondary CGA 80x25 (optional)
  2985. --------V-1012--BL11-------------------------
  2986. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET BIOS INFO
  2987. AH = 12h
  2988. BL = 11h
  2989. Return: AL = 12h if function supported
  2990. BL = ??? (10h)
  2991. ES:BP -> BIOS info structure (see #00025)
  2992. SeeAlso: AH=12h/BL=12h"TRIDENT"
  2993. Format of Trident BIOS Info structure:
  2994. Offset Size Description (Table 00025)
  2995. 00h BYTE ??? (0000h)
  2996. 01h BYTE OEM Code (00h for original Trident)
  2997. 02h WORD ID??? (1073h for 8800BR, 1074 for 8800CS)
  2998. 04h 8 BYTEs BIOS date ('mm/dd/yy')
  2999. 0Ch WORD ???
  3000. 0Eh 8 BYTEs BIOS Version (' C3-128 ', ' C3-129 ')
  3001. --------V-1012--BL12-------------------------
  3002. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET VIDEO RAM SIZE
  3003. AH = 12h
  3004. BL = 12h
  3005. Return: AL = 12h if function supported
  3006. AH = number of 256K banks of RAM installed
  3007. (read from CRTC register 1Fh)
  3008. SeeAlso: AH=12h/BL=11h"TRIDENT"
  3009. --------V-1012--BL20-------------------------
  3010. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
  3011. AH = 12h
  3012. BL = 20h select alternate print screen routine
  3013. Return: nothing
  3014. Desc: installs a PrtSc routine from the video card's BIOS to replace the
  3015. default PrtSc handler from the ROM BIOS, which usually does not
  3016. understand screen heights other than 25 lines
  3017. Note: some adapters disable print-screen instead of enhancing it
  3018. SeeAlso: INT 05"PRINT SCREEN"
  3019. --------V-1012--BL2E-------------------------
  3020. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3021. AH = 12h
  3022. BL = 2Eh
  3023. Return: nothing
  3024. Note: due to an omitted end-of-list marker, these versions of the BIOS will
  3025. crash the system on this function
  3026. --------V-1012--BL30-------------------------
  3027. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION
  3028. AH = 12h
  3029. BL = 30h
  3030. AL = vertical resolution
  3031. 00h 200 scan lines
  3032. 01h 350 scan lines
  3033. 02h 400 scan lines
  3034. Return: AL = 12h if function supported
  3035. Desc: specify the number of scan lines used to display text modes
  3036. Note: the specified resolution will take effect on the next mode set
  3037. SeeAlso: AH=00h
  3038. --------V-1012--BL31-------------------------
  3039. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING
  3040. AH = 12h
  3041. BL = 31h
  3042. AL = new state
  3043. 00h enable default palette loading
  3044. 01h disable default palette loading
  3045. Return: AL = 12h if function supported
  3046. Desc: specify whether a default palette should be loaded when the display
  3047. mode is set
  3048. SeeAlso: AH=00h
  3049. --------V-1012--BL32-------------------------
  3050. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING
  3051. AH = 12h
  3052. BL = 32h
  3053. AL = new state
  3054. 00h enable video addressing
  3055. 01h disable video addressing
  3056. Return: AL = 12h if function supported
  3057. Desc: specify whether the CPU should have access to video memory and the
  3058. display adapters I/O registers
  3059. --------V-1012--BL33-------------------------
  3060. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING
  3061. AH = 12h
  3062. BL = 33h
  3063. AL = new state
  3064. 00h enable gray scale summing
  3065. 01h disable gray scale summing
  3066. Return: AL = 12h if function supported
  3067. Desc: specify whether or not colors should be converted to gray scale when
  3068. palette or color registers are loaded
  3069. SeeAlso: AX=101Bh,AX=BF06h,AX=BF08h
  3070. --------V-1012--BL34-------------------------
  3071. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION
  3072. AH = 12h
  3073. BL = 34h
  3074. AL = new state
  3075. 00h enable alphanumeric cursor emulation
  3076. 01h disable alphanumeric cursor emulation
  3077. Return: AL = 12h if function supported
  3078. Desc: specify whether the BIOS should automatically remap cursor start/end
  3079. according to the current character height in text modes
  3080. SeeAlso: AH=01h,AH=03h
  3081. --------V-1012--BL35-------------------------
  3082. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE
  3083. AH = 12h
  3084. BL = 35h
  3085. AL = subfunction
  3086. 00h initial adapter video off
  3087. 01h initial planar video on
  3088. 02h switch active video off
  3089. 03h switch inactive video on
  3090. 80h *UNDOCUMENTED* set system board video active flag
  3091. ES:DX -> buffer for 128 byte save area (if AL = 00h-03h)
  3092. Return: AL = 12h if function supported
  3093. Desc: switch between two video adapters which may otherwise have address
  3094. conflicts
  3095. SeeAlso: AX=BF00h,AX=BF01h,INT 6D"VGA"
  3096. --------V-1012--BL36-------------------------
  3097. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL
  3098. AH = 12h
  3099. BL = 36h
  3100. AL = new state
  3101. 00h enable refresh
  3102. 01h disable refresh
  3103. Return: AL = 12h if function supported
  3104. Desc: specify whether the contents of video memory should be displayed on
  3105. the screen; disabling refresh effectively blanks the screen
  3106. Note: when display refresh is disabled, the entire screen displays the color
  3107. specified by the DAC color register 00h; thus to actually blank the
  3108. screen, the application must first ensure that that register has been
  3109. set to black
  3110. BUG: GEM/VIEWMAX ET3000 and ET4000 drivers dated 6/23/88 do not correctly
  3111. reenable refresh after the screen has been blanked due to inactivity,
  3112. resulting in a total loss of video synchronization
  3113. SeeAlso: AX=BF05h
  3114. --------V-1012--BL37-------------------------
  3115. INT 10 - VIDEO - XGA - MAINFRAME INTERACTIVE SUPPORT
  3116. AH = 12h
  3117. BL = 37h
  3118. AL = text attribute type (00h normal VGA, 01h mainframe type)
  3119. Return: AL = 12h if supported
  3120. SeeAlso: #00026,AH=08h,#00042
  3121. Bitfields for XGA mainframe type character attributes:
  3122. Bit(s) Description (Table 00026)
  3123. 7 blink double rate (75% ON time) or use color 8 as background
  3124. (see AX=1003h)
  3125. 6 reverse video
  3126. 5 underlined
  3127. 4 left-most and right-most dots of underline area inverted
  3128. 3 foreground intensity/character font select
  3129. 2-0 foreground color
  3130. SeeAlso: #00014,#00036
  3131. --------V-1012--BL38-------------------------
  3132. INT 10 - IBM SurePath BIOS - Officially "Private" Function
  3133. AH = 12h
  3134. BL = 38h
  3135. SeeAlso: AX=1118h,AH=12h/BL=39h
  3136. --------V-1012--BL39-------------------------
  3137. INT 10 - IBM SurePath BIOS - Officially "Private" Function
  3138. AH = 12h
  3139. BL = 39h
  3140. SeeAlso: AX=1118h,AH=12h/BL=38h,AH=12h/BL=3Ah
  3141. --------V-1012--BL3A-------------------------
  3142. INT 10 - IBM SurePath BIOS - Officially "Private" Function
  3143. AH = 12h
  3144. BL = 3Ah
  3145. SeeAlso: AX=1118h,AH=12h/BL=39h
  3146. --------V-1012--BL53-------------------------
  3147. INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
  3148. AH = 12h
  3149. BL = 53h
  3150. Note: due to an omitted end-of-list marker, this version of the BIOS will
  3151. crash the system on this function
  3152. --------V-1012--BL57-------------------------
  3153. INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
  3154. AH = 12h
  3155. BL = 57h
  3156. Note: due to an omitted end-of-list marker, this version of the BIOS will
  3157. crash the system on this function
  3158. --------V-1012--BH55-------------------------
  3159. INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
  3160. AH = 12h
  3161. BH = 55h
  3162. BL = subfunction
  3163. 00h disable enhanced features
  3164. 01h enable enhanced features
  3165. 02h get status
  3166. Return: AL = status flags (see #00027)
  3167. 03h disable register trapping (CGA emulation)
  3168. 04h enable register trapping
  3169. 05h program video mode
  3170. ES:BP -> video mode table (see #00028)
  3171. 06h get mode table
  3172. AL = video mode
  3173. Return: ES:BP -> table suitable for mode AL
  3174. (and subfunc BL=05h) (see #00028)
  3175. BP = FFFFh on error
  3176. SI = 0000h (ATI Mach32)
  3177. Note: the ATI Mouse driver (MOUSE.COM/MOUSE.SYS) uses subfunction 06h to get
  3178. the mode table for mode 03h, and then looks for a signature string
  3179. beginning within 32 bytes of the offset specified by the word at
  3180. ES:000Ch
  3181. SeeAlso: AH=FFh"Oak"
  3182. Index: installation check;ATI video adapters
  3183. Bitfields for status flags:
  3184. Bit(s) Description (Table 00027)
  3185. 3 set if enhanced features enabled
  3186. 7-5 monitor type
  3187. 000 PS/2 mono
  3188. 001 PS/2 color
  3189. 010 multi-sync
  3190. 011 Taxan 650 25kHz
  3191. 100 RGB
  3192. 101 mono
  3193. 110 EGA
  3194. 111 Compaq internal
  3195. Format of ATI VGA Wonder video mode table:
  3196. Offset Size Description (Table 00028)
  3197. 00h BYTE number of columns
  3198. 01h BYTE maximum row (number of rows - 1)
  3199. 02h BYTE scan lines per row
  3200. 03h WORD video buffer size in bytes
  3201. 05h 4 BYTEs values for Sequencer registers 1-4
  3202. 09h BYTE value for Miscellaneous Output register
  3203. 0Ah 25 BYTEs values for CRTC registers 00h-18h
  3204. 00h horizontal total size (chars)
  3205. 01h horizontal displayed (chars)
  3206. 02h horizontal sync position (chars)
  3207. 03h horizontal sync width (chars)
  3208. 04h vertical total size (char rows)
  3209. 05h vertical total adjust (scan lines)
  3210. 06h vertical displayed (char rows)
  3211. 07h vertical sync position (char rows)
  3212. 08h interlace mode
  3213. 09h max scan line in row
  3214. 0Ah cursor start scan line
  3215. 0Bh cursor end scan line
  3216. 0Ch screen memory start (high)
  3217. 0Dh screen memory start (low)
  3218. 0Eh cursor address (high)
  3219. 0Fh cursor address (low)
  3220. 10h light pen (high)
  3221. 11h light pen (low)
  3222. 23h 20 BYTEs default palette (values for Attribute Controller regs 00h-13h)
  3223. 37h 9 BYTEs values for Graphics Controller registers 00h-08h
  3224. --------V-1012--BL74-------------------------
  3225. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3226. AH = 12h
  3227. BL = 74h
  3228. Note: due to an omitted end-of-list marker, these versions of the BIOS will
  3229. crash the system on this function
  3230. --------V-1012--BL80-------------------------
  3231. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3232. AH = 12h
  3233. BL = 80h
  3234. Note: due to an omitted end-of-list marker, these versions of the BIOS will
  3235. crash the system on this function
  3236. --------V-1012--BL80-------------------------
  3237. INT 10 - Cirrus Logic BIOS - INQUIRE VGA TYPE
  3238. AH = 12h
  3239. BL = 80h
  3240. Return: AX = controller type in bits 13-0 (see #00029)
  3241. bit 14: ???
  3242. bit 15: ???
  3243. BL = silicon revision number (bit 7 set if not available)
  3244. BH = ???
  3245. bit 2 set if using CL-GD 6340 LCD interface
  3246. SeeAlso: AH=12h/BL=81h,AH=12h/BL=82h,AH=12h/BL=85h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  3247. (Table 00029)
  3248. Values for Cirrus Logic video controller type:
  3249. 0000h no extended alternate select support
  3250. 0001h reserved
  3251. 0002h CL-GD510/520
  3252. 0003h CL-GD610/620
  3253. 0004h CL-GD5320
  3254. 0005h CL-GD6410
  3255. 0006h CL-GD5410
  3256. 0007h CL-GD6420
  3257. 0008h CL-GD6412
  3258. 0010h CL-GD5401
  3259. 0011h CL-GD5402
  3260. 0012h CL-GD5420
  3261. 0013h CL-GD5422
  3262. 0014h CL-GD5424
  3263. 0015h CL-GD5426
  3264. 0016h CL-GD5420r1
  3265. 0017h CL-GD5402r1
  3266. 0018h CL-GD5428
  3267. 0019h CL-GD5429
  3268. 0020h CL-GD6205/15/25
  3269. 0021h CL-GD6215
  3270. 0022h CL-GD6225
  3271. 0023h CL-GD6235
  3272. 0024h CL-GD6245
  3273. 0030h CL-GD5432
  3274. 0031h CL-GD5434
  3275. 0032h CL-GD5430
  3276. 0033h CL-GD5434 rev. E and F
  3277. 0035h CL-GD5440
  3278. 0036h CL-GD5436
  3279. 0039h CL-GD5446
  3280. 0040h CL-GD6440
  3281. 0041h CL-GD7542 (Nordic)
  3282. 0042h CL-GD7543 (Viking)
  3283. 0043h CL-GD7541 (Nordic Lite)
  3284. 0050h CL-GD5452 (Northstar)
  3285. 0052h CL-GD5452 (Northstar) ???
  3286. SeeAlso: #00732,#00743
  3287. --------V-1012--BL81-------------------------
  3288. INT 10 - Cirrus Logic BIOS - GET BIOS VERSION NUMBER
  3289. AH = 12h
  3290. BL = 81h
  3291. Return: AH = BIOS major version
  3292. AL = BIOS minor version
  3293. SeeAlso: AH=12h/BL=80h,AH=12h/BL=82h
  3294. --------V-1012--BL82-------------------------
  3295. INT 10 - Cirrus Logic BIOS - GET DESIGN REVISION CODE
  3296. AH = 12h
  3297. BL = 82h
  3298. Return: AL = chip revision
  3299. AH = ??? (AFh for v1.01)
  3300. SeeAlso: AH=12h/BL=80h,AH=12h/BL=81h,#00732 at INT 1A/AX=B102h
  3301. --------V-1012--BL84-------------------------
  3302. INT 10 - Cirrus Logic BIOS v3.02 - INQUIRE OPTIONS
  3303. AH = 12h
  3304. BL = 84h
  3305. Return: AX = user options word (see #00030)
  3306. SeeAlso: AH=12h/BL=89h,AH=12h/BL=8Ah,AH=12h/BL=8Bh,AH=12h/BL=8Ch,AH=12h/BL=8Fh
  3307. SeeAlso: AH=12h/BL=90h,AH=12h/BL=9Ah
  3308. Bitfields for Cirrus Logic user options word:
  3309. Bit(s) Description (Table 00030)
  3310. 1,0 centering
  3311. 00 vertical centered, 01 from bottom, 10 from top, 11 reserved
  3312. 3,2 720-dot fix-up options
  3313. 00 OR every 8th and 9th pixel
  3314. 01 display MGA mode from left
  3315. 10 display MGA mode from right
  3316. 11 skip every 9th pixel
  3317. 4 ???
  3318. 7-5 video mode (001 CGA, 010 MGA, 011 EGA, 100 VGA)
  3319. 8 external monitor enabled instead of LCD panel
  3320. 9 vertical expand mode enabled
  3321. 10 8-bit mode instead of 16-bit mode
  3322. 11 normal video rather than reverse video (for LCD)
  3323. 12 attribute automap rather than attribute emulation
  3324. 13 bold mode disabled (default)
  3325. 14 fast bandwidth
  3326. 15 ???
  3327. --------V-1012--BL85-------------------------
  3328. INT 10 - Cirrus Logic BIOS - GET INSTALLED MEMORY
  3329. AH = 12h
  3330. BL = 85h
  3331. Return: AL = number of 64K banks of video memory
  3332. SeeAlso: AH=12h/BL=80h,AH=12h/BL=93h
  3333. --------V-1012--BL89-------------------------
  3334. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - EN/DISABLE REVERSE VIDEO MODE
  3335. AH = 12h
  3336. BL = 89h
  3337. AL = new state (00h enabled, 01h disabled)
  3338. Return: nothing
  3339. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=8Bh
  3340. --------V-1012--BL8A-------------------------
  3341. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET FRAME COLOR
  3342. AH = 12h
  3343. BL = 8Ah
  3344. AL = new gray-scale color (00h = black to 0Fh = white)
  3345. Return: nothing
  3346. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Fh
  3347. --------V-1012--BL8B-------------------------
  3348. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE BOLD MODE
  3349. AH = 12h
  3350. BL = 8Bh
  3351. AL = new state (00h enabled, 01h disabled)
  3352. Return: nothing
  3353. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Ch,AH=12h/BL=8Fh
  3354. --------V-1012--BL8C-------------------------
  3355. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET AUTOMAP/EMULATE ATTRIBUTES
  3356. AH = 12h
  3357. BL = 8Ch
  3358. AL = new state
  3359. 00h enable automap
  3360. 01h disable automap and emulate attributes
  3361. Return: nothing
  3362. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Bh
  3363. --------V-1012--BL8F-------------------------
  3364. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE EXPAND MODE
  3365. AH = 12h
  3366. BL = 8Fh
  3367. AL = new state (00h enabled, 01h disabled)
  3368. Return: nothing
  3369. Note: when expand mode is enabled, the vertical dimension is enlarged to
  3370. full screen
  3371. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Bh,AH=12h/BL=90h
  3372. --------V-1012--BL90-------------------------
  3373. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET CENTERING MODE
  3374. AH = 12h
  3375. BL = 90h
  3376. AL = new position
  3377. 00h centered
  3378. 01h from top
  3379. 02h from bottom
  3380. 03h from top
  3381. Return: nothing
  3382. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Fh
  3383. --------V-1012--BL91-------------------------
  3384. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET 720-DOT FIXUP MODE
  3385. AH = 12h
  3386. BL = 91h
  3387. AL = new mode
  3388. 00h display MGA mode from left of screen (default)
  3389. 01h display MGA from right
  3390. 02h skip every ninth pixel
  3391. 03h OR every 8th and 9th pixel
  3392. Return: nothing
  3393. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=90h
  3394. --------V-1012--BL92-------------------------
  3395. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SWITCH DISPLAY
  3396. AH = 12h
  3397. BL = 92h
  3398. AL = new display (00h LCD, 01h external monitor)
  3399. Return: nothing
  3400. Note: the deselected display is disabled
  3401. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=90h,AH=12h/BL=94h
  3402. --------V-1012--BL93-------------------------
  3403. INT 10 - Cirrus Logic BIOS - FORCE 8-BIT OR 16-BIT OPERATION
  3404. AH = 12h
  3405. BL = 93h
  3406. AL = new I/O width (00h = 16 bits, 01h = 8 bits)
  3407. Return: nothing
  3408. SeeAlso: AH=12h/BL=9Ah
  3409. --------V-1012--BL94-------------------------
  3410. INT 10 - Cirrus Logic BIOS v3.02 - POWER CONSERVATION
  3411. AH = 12h
  3412. BL = 94h
  3413. AL = new state (00h wake up monitor, 01h shut down display)
  3414. Return: nothing
  3415. Note: AL=01h is reported not to work properly on the LCD panel
  3416. SeeAlso: AH=12h/BL=84h,AH=12h/BL=92h
  3417. --------V-1012--BL9A-------------------------
  3418. INT 10 - Cirrus Logic BIOS - GET USER OPTIONS
  3419. AH = 12h
  3420. BL = 9Ah
  3421. Return: AX = options word 1 (see #00031)
  3422. CX = options word 2 (see #00032)
  3423. BX,DX reserved
  3424. SeeAlso: AH=12h/BL=80h,AH=12h/BL=84h,AH=12h/BL=93h,AH=12h/BL=A0h
  3425. SeeAlso: AH=12h/BL=A3h,AH=12h/BL=A4h,#00732 at INT 1A/AX=B102h
  3426. Bitfields for Cirrus Logic options word 1:
  3427. Bit(s) Description (Table 00031)
  3428. 0,1 reserved
  3429. 2-4 monitor type
  3430. 5-6 maximum vertical resolution
  3431. 7-9 reserved
  3432. 10 force 8-bit operation
  3433. 11-13 reserved
  3434. 14 vertical refresh frequency at 640x480
  3435. =0 60 Hz
  3436. =1 high refresh
  3437. 15 reserved
  3438. SeeAlso: AH=12h/BL=AEh
  3439. Bitfields for Cirrus Logic options word 2:
  3440. Bit(s) Description (Table 00032)
  3441. 15-13 vertical refresh frequency at 1024x768
  3442. 12-11 vertical refresh frequency at 800x600
  3443. 10-6 reserved
  3444. 5-4 vertical refresh frequency at 1280x1024
  3445. 3-0 reserved
  3446. SeeAlso: #00033
  3447. Bitfields for Cirrus Logic Options word 2 (alternate???):
  3448. Bit(s) Description (Table 00033)
  3449. 15-12 vertical refresh frequency at 1024x768
  3450. 0000 43i Hz
  3451. 0001 60 Hz
  3452. 0010 70 Hz
  3453. 0011 72 Hz
  3454. 0100 76 Hz
  3455. other reserved
  3456. 11-8 vertical refresh frequency at 800x600
  3457. 0000 56 Hz
  3458. 0001 60 Hz
  3459. 0010 72 Hz
  3460. 0011 75 Hz
  3461. other reserved
  3462. 7-4 maximum vertical resolution
  3463. 0000 480 scanlines
  3464. 0001 600 scanlines
  3465. 0010 768 scanlines
  3466. 0011 1024 scanlines
  3467. other reserved
  3468. 3-1 vertical refresh frequency at 1280x1024
  3469. 000 43i Hz
  3470. 001 60 Hz
  3471. 010 71.2 Hz (CL-GD5434 rev. E and F)
  3472. 011 74 Hz (CL-GD5434 rev. E and F)
  3473. other reserved
  3474. 0 reserved
  3475. SeeAlso: #00032
  3476. --------V-1012--BLA0-------------------------
  3477. INT 10 - Cirrus Logic BIOS - GET VIDEO MODE AVAILABILITY
  3478. AH = 12h
  3479. BL = A0h
  3480. AL = video mode number (00h-7Fh)
  3481. Return: AH bit 0: video mode supported
  3482. BX = offset of BIOS subroutine to fixup standard video parameters
  3483. (call subroutine with DS:SI and ES:DI as returned by this call)
  3484. DS:SI -> standard video parameters or FFFFh:FFFFh
  3485. ES:DI -> supplemental video parameters or FFFFh:FFFFh
  3486. SeeAlso: AH=00h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  3487. --------V-1012--BLA1-------------------------
  3488. INT 10 - Cirrus Logic BIOS - READ MONITOR TYPE AND ID FROM 15-PIN CONNECTOR
  3489. AH = 12h
  3490. BL = A1h
  3491. Return: BH = monitor ID (see #00034)
  3492. BL = monitor type (00h color, 01h grayscale, 02h no display)
  3493. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A2h
  3494. (Table 00034)
  3495. Values for Cirrus Logic monitor ID:
  3496. 00h-08h reserved
  3497. 09h IBM 8604/8507 or equivalent
  3498. 0Ah IBM 8514 or equivalent
  3499. 0Bh IBM 8515 or equivalent
  3500. 0Dh IBM 8503 or equivalent
  3501. 0Eh IBM 8512/8513 or equivalent
  3502. 0Fh no monitor
  3503. --------V-1012--BLA2-------------------------
  3504. INT 10 - Cirrus Logic BIOS - SET MONITOR HORIZONTAL RETRACE FREQUENCY
  3505. AH = 12h
  3506. BL = A2h
  3507. AL = retrace rate
  3508. 00h standard VGA (31.5 kHz)
  3509. 01h 8514-compatible (31.5 kHz and 35.5 kHz interlaced)
  3510. 02h SuperVGA (31.5-35.1 kHz)
  3511. 03h extended SuperVGA (31.5-35.5 kHz)
  3512. 04h multi-frequency (31.5-37.8 kHz)
  3513. 05h extended multi-frequency (31.5-48.0 kHz)
  3514. 06h super multi-frequency (31.5-56.0 kHz)
  3515. 07h extended super multi-frequency (31.5-64.0 kHz)
  3516. Return: nothing
  3517. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A0h,AH=12h/BL=A4h
  3518. --------V-1012--BLA3-------------------------
  3519. INT 10 - Cirrus Logic BIOS - SET VGA REFRESH
  3520. AH = 12h
  3521. BL = A3h
  3522. AL = refresh rate for 640x480 (00h normal, 01h high)
  3523. Return: nothing
  3524. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A4h
  3525. --------V-1012--BLA4-------------------------
  3526. INT 10 - Cirrus Logic BIOS - SET MONITOR TYPE
  3527. AH = 12h
  3528. BL = A4h
  3529. AL = options 1
  3530. bits 7-4 = vertical refresh at 640x480
  3531. (0 = 60Hz, 1 = 72Hz, other reserved)
  3532. bits 3-0 = maximum vertical resolution
  3533. (0 = 480 scanlines, 1 = 600, 2 = 768, 3 = 1024, other reserved)
  3534. BH = options 2
  3535. bits 7-4 = vertical refresh at 1024x768
  3536. (0=87Hz-int, 1=60Hz, 2=70Hz, 3=72Hz, 4=76Hz, other reserved)
  3537. bits 3-0 = vertical refresh at 800x600
  3538. (0 = 56Hz, 1 = 60Hz, 2 = 72Hz, other reserved)
  3539. CH = options 3
  3540. bits 7-4 = vertical refresh at 1280x1024
  3541. (0=87Hz-int, 1=60Hz, 2=70Hz, other reserved)
  3542. bits 3-0: reserved
  3543. CL,DX reserved
  3544. Return: nothing
  3545. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h
  3546. --------V-1012--BLAE-------------------------
  3547. INT 10 - Cirrus Logic BIOS - GET HIGH REFRESH
  3548. AH = 12h
  3549. BL = AEh
  3550. Return: AL = result
  3551. bits 7-1: reserved
  3552. bit 0: 640x480 high refresh rate
  3553. =0 72 Hz
  3554. =1 75 Hz
  3555. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h,AH=12h/BL=A4h,AH=12h/BL=AFh
  3556. --------V-1012--BLAF-------------------------
  3557. INT 10 - Cirrus Logic BIOS - SET HIGH REFRESH
  3558. AH = 12h
  3559. BL = AFh
  3560. AL = option
  3561. bits 7-1: reserved
  3562. bit 0: 640x480 high refresh rate
  3563. =0 72 Hz
  3564. =1 75 Hz
  3565. Return: nothing
  3566. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h,AH=12h/BL=A4h,AH=12h/BL=AEh
  3567. --------V-1012--BLBE-------------------------
  3568. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3569. AH = 12h
  3570. BL = BEh
  3571. Note: due to an omitted end-of-list marker, these versions of the BIOS will
  3572. crash the system on this function
  3573. --------V-1012--BLC6-------------------------
  3574. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3575. AH = 12h
  3576. BL = C6h
  3577. Note: due to an omitted end-of-list marker, these versions of the BIOS will
  3578. crash the system on this function
  3579. --------V-1012--BLF0-------------------------
  3580. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3581. AH = 12h
  3582. BL = F0h
  3583. Note: due to an omitted end-of-list marker, these versions of the BIOS will
  3584. crash the system on this function
  3585. --------V-1012--BLF1--------------------------
  3586. INT 10 - Tseng ET-4000 BIOS - GET/SET SCREEN REFRESH RATE
  3587. AH = 12h
  3588. BL = F1h
  3589. AL = subfunction
  3590. 00h set refresh rate
  3591. 01h get refresh rate
  3592. BH = video mode
  3593. 00h 640x480
  3594. 01h 800x600
  3595. 02h 1024x768
  3596. 03h 1280x1024
  3597. CX = new refresh rate (see #00035) if AL = 00h
  3598. Return: AL = 12h if supported
  3599. CX = current rate (for AL=00h, a changed CX indicates failure)
  3600. (Table 00035)
  3601. Values for Tseng ET4000 refresh rate:
  3602. CX 640x480 800x600 1024x768/1280x1024
  3603. 00h 60 Hz 56 Hz interlaced
  3604. 01h 72 Hz 60 Hz 60 Hz
  3605. 02h 75 Hz 72 Hz 70 Hz
  3606. 03h 90 Hz 75 Hz 75 Hz
  3607. 04h -- 90 Hz --
  3608. --------V-1013-------------------------------
  3609. INT 10 - VIDEO - WRITE STRING (AT and later,EGA)
  3610. AH = 13h
  3611. AL = write mode
  3612. bit 0: update cursor after writing
  3613. bit 1: string contains alternating characters and attributes
  3614. bits 2-7: reserved (0)
  3615. BH = page number
  3616. BL = attribute if string contains only characters
  3617. CX = number of characters in string
  3618. DH,DL = row,column at which to start writing
  3619. ES:BP -> string to write
  3620. Return: nothing
  3621. Notes: recognizes CR, LF, BS, and bell; for the ET4000 BIOS, scrolling,
  3622. backspace, and CR only take place in the active page
  3623. also available PC or XT with EGA or higher
  3624. HP 95LX only supports write mode 00h
  3625. IBM documents AL=10h,11h,20h,21h as "private" rather than "reserved"
  3626. BUG: on the IBM VGA Adapter, any scrolling which may occur is performed on
  3627. the active page rather than the requested page
  3628. SeeAlso: AH=09h,AH=0Ah,AH=13h"DOS/V"
  3629. --------J-1013-------------------------------
  3630. INT 10 - DOS/V - READ/WRITE DOUBLE-BYTE CHARACTER SET CHARACTERS/ATTRIBUTES
  3631. AH = 13h
  3632. AL = function
  3633. 10h read characters and standard attributes
  3634. 11h read characters and extended attributes
  3635. 12h write characters and standard attributes
  3636. 13h write characters and extended attributes
  3637. BH = 00h
  3638. CX = number of characters to transfer
  3639. DH,DL = row,column at which to start transfer
  3640. ES:BP -> buffer for/containing characters and attributes (see #00036)
  3641. Return: ES:BP buffer filled if reading
  3642. Program: DOS/V is a Japanese-language version of MS-DOS which can run on
  3643. standard (non-Japanese) ATs and compatible equipped with a VGA or
  3644. newer video adapter
  3645. Notes: subfunctions 11h and 13h are only valid when DOS/V is using video
  3646. mode 73h
  3647. the cursor position is not changed by these functions
  3648. extended attributes consist of three bytes; the first is the standard
  3649. character attribute byte, the second is as described below, and the
  3650. third is always zero in current versions
  3651. SeeAlso: AH=00h,AH=13h"VIDEO"
  3652. Bitfields for DOS/V second extended attribute byte:
  3653. Bit(s) Description (Table 00036)
  3654. 7 underline using foreground color
  3655. 6 reverse foreground/background specified in standard attribute byte
  3656. 5-4 unused
  3657. 3 vertical white grid line in cell
  3658. 2 horizontal white grid line in cell
  3659. 1-0 unused
  3660. SeeAlso: #00014,#00026
  3661. --------V-101400-----------------------------
  3662. INT 10 - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386)
  3663. AX = 1400h
  3664. ES:DI -> character font
  3665. BH = number of bytes per character
  3666. 08h or 10h (Compaq)
  3667. BL = 00h load main font (block 0)
  3668. 01h load alternate font (block 1)
  3669. CX = number of characters to store
  3670. DX = character offset into RAM font area
  3671. Return: nothing
  3672. SeeAlso: AX=1100h,AX=1110h,AX=1401h
  3673. --------V-101401-----------------------------
  3674. INT 10 - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386)
  3675. AX = 1401h
  3676. BL = font to load
  3677. 00h main font (block 0)
  3678. 01h alternate font (block 1)
  3679. Return: nothing
  3680. SeeAlso: AX=1100h,AX=1102h,AX=1400h
  3681. --------V-101402-----------------------------
  3682. INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)
  3683. AX = 1402h
  3684. BL = subfunction
  3685. 00h ignore high intensity attribute
  3686. 01h map high intensity to reverse video
  3687. 02h map high intensity to underscore
  3688. 03h map high intensity to selected alternate font
  3689. B0h half intensity (Compaq)
  3690. B1h toggle active intensity bit interpretation (CP386)
  3691. Return: nothing
  3692. --------V-1015-------------------------------
  3693. INT 10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE)
  3694. AH = 15h
  3695. Return: AX = alternate display adapter type (see #00037)
  3696. ES:DI -> parameter table (see #00038)
  3697. SeeAlso: AH=1Bh
  3698. (Table 00037)
  3699. Values for PC Convertible alternate display adapter type:
  3700. 0000h none
  3701. 5140h LCD
  3702. 5153h CGA
  3703. 5151h mono
  3704. Format of PC Convertible display parameter table:
  3705. Offset Size Description (Table 00038)
  3706. 00h WORD monitor model number
  3707. 02h WORD vertical pixels per meter
  3708. 04h WORD horizontal pixels per meter
  3709. 06h WORD total vertical pixels
  3710. 08h WORD total horizontal pixels
  3711. 0Ah WORD horizontal pixel separation in micrometers
  3712. (width, center-to-center)
  3713. 0Ch WORD vertical pixel separation in micrometers
  3714. (height, center-to-center)
  3715. --------V-1015-------------------------------
  3716. INT 10 - VIDEO - SET SUPERIMPOSE MODE (Sperry PC)
  3717. AH = 15h
  3718. AL = superimpose mode
  3719. 00h show graphics screen
  3720. 01h show text screen
  3721. 02h show text screen superimposed on graphics screen
  3722. Return: nothing
  3723. --------J-1018-------------------------------
  3724. INT 10 - VIDEO - DOS/V - GET/SET FONT PATTERN
  3725. AH = 18h
  3726. AL = subfunction
  3727. 00h get font pattern
  3728. 01h set font pattern
  3729. BX = 0000h
  3730. CL = character size in bytes (01h,02h)
  3731. CH = 00h
  3732. DH = character width in pixels
  3733. DL = character height in pixels
  3734. ES:DI -> buffer for/containing font image
  3735. Return: AL = status (00h successful, else error)
  3736. ES:DI buffer filled for function 00h if successful
  3737. Note: the supported font sizes are 8x16 single-byte, 8x19 single-byte,
  3738. 16x16 double-byte, and 24x24 double-byte
  3739. SeeAlso: AH=19h,INT 16/AH=14h
  3740. --------V-1019-------------------------------
  3741. INT 10 - Japanese VIDEO - DOUBLE-BYTE CHARACTER SET SHIFT INFORMATION
  3742. AH = 19h
  3743. ???
  3744. Return: ???
  3745. SeeAlso: AH=18h,INT 16/AH=14h
  3746. --------V-101A00-----------------------------
  3747. INT 10 - VIDEO - GET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  3748. AX = 1A00h
  3749. Return: AL = 1Ah if function was supported
  3750. BL = active display code (see #00039)
  3751. BH = alternate display code (see #00039)
  3752. Notes: this function is commonly used to check for the presence of a VGA
  3753. this function is supported on the ATI EGA Wonder with certain
  3754. undocumented configuration switch settings, even though the EGA
  3755. Wonder does not support VGA graphics; to distinguish this case,
  3756. call AX=1C00h with CX nonzero, which the EGA Wonder does not support
  3757. SeeAlso: AH=12h/BL=35h,AX=1A01h,AH=1Bh,AH=1Ch,MEM 0040h:008Ah
  3758. Index: installation check;VGA
  3759. (Table 00039)
  3760. Values for display combination code:
  3761. 00h no display
  3762. 01h monochrome adapter w/ monochrome display
  3763. 02h CGA w/ color display
  3764. 03h reserved
  3765. 04h EGA w/ color display
  3766. 05h EGA w/ monochrome display
  3767. 06h PGA w/ color display
  3768. 07h VGA w/ monochrome analog display
  3769. 08h VGA w/ color analog display
  3770. 09h reserved
  3771. 0Ah MCGA w/ digital color display
  3772. 0Bh MCGA w/ monochrome analog display
  3773. 0Ch MCGA w/ color analog display
  3774. FFh unknown display type
  3775. --------V-101A01-----------------------------
  3776. INT 10 - VIDEO - SET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  3777. AX = 1A01h
  3778. BL = active display code (see #00039)
  3779. BH = alternate display code
  3780. Return: AL = 1Ah if function was supported
  3781. SeeAlso: AH=12h/BL=35h,AX=1A00h
  3782. --------V-101B-------------------------------
  3783. INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)
  3784. AH = 1Bh
  3785. BX = implementation type
  3786. 0000h return funtionality/state information
  3787. ES:DI -> 64-byte buffer for state information (see #00040)
  3788. Return: AL = 1Bh if function supported
  3789. ES:DI buffer filled with state information
  3790. BUG: Trident 8900 (BIOS D3.0 11/12/91) and Trident 9000 (C3.0 10/25/91)
  3791. do not correctly set the fields at offsets 27h and 29h of the
  3792. state information
  3793. SeeAlso: AH=15h,AX=1A00h,AX=1F01h
  3794. Format of MCGA+ state information:
  3795. Offset Size Description (Table 00040)
  3796. 00h DWORD address of static funtionality table (see #00045)
  3797. 04h BYTE video mode in effect
  3798. 05h WORD number of columns
  3799. 07h WORD length of regen buffer in bytes
  3800. 09h WORD starting address of regen buffer
  3801. 0Bh WORD cursor position for page 0
  3802. 0Dh WORD cursor position for page 1
  3803. 0Fh WORD cursor position for page 2
  3804. 11h WORD cursor position for page 3
  3805. 13h WORD cursor position for page 4
  3806. 15h WORD cursor position for page 5
  3807. 17h WORD cursor position for page 6
  3808. 19h WORD cursor position for page 7
  3809. 1Bh WORD cursor "type" (start/stop scan lines)
  3810. 1Dh BYTE active display page
  3811. 1Eh WORD CRTC port address
  3812. 20h BYTE current setting of PORT 03x8h
  3813. 21h BYTE current setting of PORT 03x9h
  3814. 22h BYTE number of rows - 1
  3815. 23h WORD bytes/character
  3816. 25h BYTE display combination code of active display
  3817. 26h BYTE DCC of alternate display
  3818. 27h WORD number of colors supported in current mode (0000h = mono)
  3819. 29h BYTE number of pages supported in current mode
  3820. 2Ah BYTE number of scan lines active
  3821. (0,1,2,3) = (200,350,400,480)
  3822. Tseng ET3000: (4,5,6 = 512,600,768)
  3823. 2Bh BYTE primary character block
  3824. 2Ch BYTE secondary character block
  3825. 2Dh BYTE miscellaneous flags (see #00041)
  3826. 2Eh BYTE non-VGA mode support (see #00042)
  3827. 2Fh 2 BYTEs reserved (00h)
  3828. 31h BYTE video memory available
  3829. 00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K
  3830. 32h BYTE save pointer state flags (see #00043)
  3831. 33h BYTE display information and status (see #00044)
  3832. 34h 12 BYTEs reserved (00h)
  3833. Bitfields for miscellaneous flags:
  3834. Bit(s) Description (Table 00041)
  3835. 0 all modes on all displays on
  3836. 1 gray summing on
  3837. 2 monochrome display attached
  3838. 3 default palette loading disabled
  3839. 4 cursor emulation enabled
  3840. 5 0 = intensity; 1 = blinking
  3841. 6 flat-panel display is active
  3842. 7 unused (0)
  3843. SeeAlso: #00040
  3844. Bitfields for non-VGA mode support:
  3845. Bit(s) Description (Table 00042)
  3846. 7-5 reserved
  3847. 4 132-column mode supported
  3848. 3 =1 MFI attributes enabled (see AH=12h/BL=37h)
  3849. =0 VGA attributes
  3850. 2 16-bit VGA graphics present
  3851. 1 adapter interface driver required
  3852. 0 BIOS supports information return for adapter interface
  3853. SeeAlso: #00040
  3854. Bitfields for save pointer state flags:
  3855. Bit(s) Description (Table 00043)
  3856. 0 512 character set active
  3857. 1 dynamic save area present
  3858. 2 alpha font override active
  3859. 3 graphics font override active
  3860. 4 palette override active
  3861. 5 DCC override active
  3862. 6-7 unused (0)
  3863. SeeAlso: #00040
  3864. Bitfields for display information and status:
  3865. Bit(s) Description (Table 00044)
  3866. 7 640x480 flat-panel can be used simultaneously with CRT controller
  3867. 6-3 reserved
  3868. 2 color display
  3869. 1 flat-panel display active
  3870. 0 flat-panel display attached
  3871. SeeAlso: #00040
  3872. Format of Static Functionality Table:
  3873. Offset Size Description (Table 00045)
  3874. 00h BYTE modes supported 1
  3875. bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6,7 supported
  3876. 01h BYTE modes supported 2
  3877. bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported
  3878. 02h BYTE modes supported 3
  3879. bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported
  3880. bit 4 to bit 7 unused (0)
  3881. 03h BYTE (IBM) reserved
  3882. (Tseng ET3000/4000) modes supported 4
  3883. bit 0 to bit 7 = modes 18h-1Fh supported
  3884. 04h BYTE (IBM) reserved
  3885. (Tseng ET3000/4000) modes supported 5
  3886. bit 0 to bit 7 = modes 20h-27h supported
  3887. 05h BYTE (IBM) reserved
  3888. (Tseng ET3000/4000) modes supported 6
  3889. bit 0 to bit 7 = modes 28h-2Fh supported
  3890. 06h BYTE (IBM) reserved
  3891. (Tseng ET3000/4000) modes supported 7
  3892. bit 0 to bit 7 = modes 30h-37h supported
  3893. 07h BYTE scan lines supported
  3894. bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
  3895. bits 3-7 = unused (0)
  3896. 08h BYTE total number of character blocks available in text modes
  3897. 09h BYTE maximum number of active character blocks in text modes
  3898. 0Ah WORD miscellaneous function support flags (see #00046)
  3899. 0Ch WORD reserved
  3900. 0Eh BYTE save pointer function flags (see #00047)
  3901. 0Fh BYTE reserved
  3902. SeeAlso: #00040
  3903. Bitfields for miscellaneous function support flags:
  3904. Bit(s) Description (Table 00046)
  3905. 0 all modes on all displays function supported
  3906. 1 gray summing function supported
  3907. 2 character font loading function supported
  3908. 3 default palette loading enable/disable supported
  3909. 4 cursor emulation function supported
  3910. 5 EGA palette present
  3911. 6 color palette present
  3912. 7 color-register paging function supported
  3913. 8 light pen supported (see AH=04h)
  3914. 9 save/restore state function 1Ch supported
  3915. 10 intensity/blinking function supported (see AX=1003h)
  3916. 11 Display Combination Code supported (see #00039)
  3917. 12-15 unused (0)
  3918. SeeAlso: #00040
  3919. Bitfields for save pointer function flags:
  3920. Bit(s) Description (Table 00047)
  3921. 0 512 character set supported
  3922. 1 dynamic save area supported
  3923. 2 alpha font override supported
  3924. 3 graphics font override supported
  3925. 4 palette override supported
  3926. 5 DCC extension supported
  3927. 6-7 unused (0)
  3928. SeeAlso: #00040
  3929. --------V-101C-------------------------------
  3930. INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)
  3931. AH = 1Ch
  3932. AL = function
  3933. 00h return state buffer size
  3934. Return: BX = number of 64-byte blocks needed
  3935. 01h save video state
  3936. ES:BX -> buffer
  3937. 02h restore video state
  3938. ES:BX -> buffer containing previously saved state
  3939. CX = requested states (see #00048)
  3940. Return: AL = 1Ch if function supported
  3941. Notes: many BIOSes corrupt the video registers when saving the state, so a
  3942. program should restore the state immediately after saving it (the
  3943. saved data is uncorrupted)
  3944. the BIOS data area consists of the 96 bytes from 0040h:0049h-00A8h
  3945. this function is not supported when DOS/V is running
  3946. this function may be a better VGA installation check than the usual
  3947. INT 10/AX=1A00h, since some late-model EGA cards (such as the ATI
  3948. EGA Wonder) supported that call
  3949. SeeAlso: AX=1A00h,AX=5F90h,AX=5FA0h,MEM 0040h:00A8h
  3950. Bitfields for requested states:
  3951. Bit(s) Description (Table 00048)
  3952. 0 video hardware (see #00049)
  3953. 1 BIOS data areas
  3954. 2 color registers and DAC state (see #00050)
  3955. 3-15 unused (0)
  3956. SeeAlso: #00186
  3957. Format of VGA video hardware state:
  3958. Offset Size Description (Table 00049)
  3959. 00h BYTE sequencer index register
  3960. 01h BYTE CRTC index register
  3961. 02h BYTE graphics controller index register
  3962. 03h BYTE attribute controller index register
  3963. 04h BYTE feature controller register
  3964. 05h 4 BYTEs sequencer registers
  3965. 09h BYTE sequencer register 0
  3966. 0Ah 25 BYTEs CRTC registers 0-8
  3967. 23h 16 BYTEs palette registers 00h-0Fh
  3968. 33h 4 BYTEs attribute registers 10h-13h
  3969. 37h 9 BYTEs graphics controller registers 0-8
  3970. 40h BYTE CRTC base address (low)
  3971. 41h BYTE CRTC base address (high)
  3972. 42h BYTE plane 0 latch
  3973. 43h BYTE plane 1 latch
  3974. 44h BYTE plane 2 latch
  3975. 45h BYTE plane 3 latch
  3976. Format of VGA DAC state:
  3977. Offset Size Description (Table 00050)
  3978. 00h BYTE read/write mode DAC
  3979. 01h BYTE pixel address
  3980. 02h BYTE pixel mask
  3981. 03h 768 BYTEs color data (256 triples)
  3982. 303h BYTE color select register
  3983. --------J-101D-------------------------------
  3984. INT 10 - VIDEO - DOS/V - SHIFT STATUS LINE CONTROL
  3985. AH = 1Dh
  3986. AL = function
  3987. 00h enable shift status line(s)
  3988. BX = number of lines to reserve at bottom of screen (usu. 1)
  3989. 01h disable shift status line
  3990. BX = number of lines reserved at bottom of screen (usually 1)
  3991. 02h get number of status lines
  3992. Return: BX = number of lines reserved for shift status
  3993. SeeAlso: AH=19h
  3994. --------V-101D-------------------------------
  3995. INT 10 - SpeedSTAR Plus BIOS v4.23+ - SET SYNC PARAMETERS
  3996. AH = 1Dh
  3997. AL = video mode
  3998. ES = caller's segment
  3999. Return: nothing
  4000. Note: the caller's segment contains at offset 5Ch (FCB field in PSP)
  4001. or 100h a table with sync parameters (see #00051) (BIOS looks at both
  4002. offsets)
  4003. Format of SpeedSTAR Plus sync table:
  4004. Offset Size Description (Table 00051)
  4005. 00h 9 BYTEs ID contains string 'ey5CENTER'
  4006. 09h 5 BYTEs sync parameters for 640x480 modes 11h,12h,25h,26h,2Eh
  4007. 0Bh 5 BYTEs sync parameters for 800x600 modes 29h,30h,2Ah
  4008. 13h 5 BYTEs sync parameters for 1024x768 modes 37h,38h
  4009. --------V-101D-------------------------------
  4010. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  4011. AH = 1Dh
  4012. Note: these versions of the BIOS jump to a random location on this function
  4013. due to a fencepost error
  4014. --------V-101DAABXFDEC-----------------------
  4015. INT 10 U - Diamond Stealth64 Video - INSTALLATION CHECK
  4016. AX = 1DAAh
  4017. BX = FDECh
  4018. Return: BX = CDEFh if Diamond Stealth64 Video 2001-series video card installed
  4019. AL = number of megabytes of video memory
  4020. AH = card type??? (4Bh for VL-Bus/5Bh for PCI)
  4021. CX = ??? (0000h)
  4022. SI:DI -> signature/copyright string
  4023. --------V-101E00-----------------------------
  4024. INT 10 - VIDEO - FLAT-PANEL - READ INFORMATION
  4025. AX = 1E00h
  4026. Return: AL = 1Eh if function supported
  4027. BL = flat-panel status (see #00052)
  4028. ES:DI -> information table (see #00053)
  4029. Note: IBM classifies this function as optional
  4030. SeeAlso: AX=1E01h,AX=1E02h,AX=1E03h,AX=1E04h,AX=1E05h,AX=1EFEh
  4031. Bitfields for flat-panel status:
  4032. Bit(s) Description (Table 00052)
  4033. 7-3 reserved
  4034. 2 color display
  4035. 1 flat panel is active
  4036. 0 flat panel is attached
  4037. SeeAlso: #00053
  4038. Format of flat-panel information table:
  4039. Offset Size Description (Table 00053)
  4040. 00h BYTE number of WORDs in the remainder of the table
  4041. 01h WORD number of vertical pixels per meter
  4042. 03h WORD number of horizontal pixels per meter
  4043. 05h WORD total number of vertical pixels
  4044. 07h WORD total number of horizontal pixels
  4045. 09h WORD vertical pixel separation in micrometers (center-to-center)
  4046. 0Bh WORD horizontal pixel separation in micrometers
  4047. 0Dh WORD range of gray levels available, less 1
  4048. 0Fh WORD number of red levels available, less 1 (0000h if nonochrome)
  4049. 11h WORD number of green levels available, less 1 (0000h if nonochrome)
  4050. 13h WORD number of blue levels available, less 1 (0000h if nonochrome)
  4051. SeeAlso: #00052
  4052. --------V-101E01-----------------------------
  4053. INT 10 - VIDEO - FLAT-PANEL - LCD/CRT DISPLAY CONTROL
  4054. AX = 1E01h
  4055. BH = function
  4056. bit 7: =1 set display control, =0 query control
  4057. bits 6-0: reserved (0)
  4058. ---if BH bit 7 set---
  4059. BL = new display combination (see #00054)
  4060. Return: AL = 1Eh if function supported
  4061. BH = results
  4062. bit 7: query/set (copied from input)
  4063. bits 6-3: reserved (0)
  4064. bit 2: simultaneous display is supported by hardware
  4065. bit 1: LCD/CRT display control supported by hardware
  4066. bit 0: set operation was successful (always clear on get)
  4067. BL = active display combination (see #00054)
  4068. SeeAlso: AX=1E00h,AX=1E02h
  4069. Bitfields for Flat-Panel display combination:
  4070. Bit(s) Description (Table 00054)
  4071. 7-2 reserved (0)
  4072. 1-0 combination
  4073. 00 reserved
  4074. 01 LCD active
  4075. 10 CRT active
  4076. 11 both LCD and CRT active (simultaneous display)
  4077. SeeAlso: #00055
  4078. --------V-101E02-----------------------------
  4079. INT 10 - VIDEO - FLAT-PANEL - DISPLAY POSITION
  4080. AX = 1E02h
  4081. BH = function
  4082. bit 7: =1 set display position, =0 query position
  4083. bits 6-0: reserved (0)
  4084. ---if BH bit 7 set---
  4085. BL = new position setting (see #00055)
  4086. Return: AL = 1Eh if function supported
  4087. BH = results
  4088. bit 7: query/set (copied from input)
  4089. bits 6-4: reserved (0)
  4090. bit 3: positioning to top is supported by hardware
  4091. bit 2: positioning to center is supported by hardware
  4092. bit 1: positioning to bottom is supported by hardware
  4093. bit 0: set operation was successful (always clear on get)
  4094. BL = active position setting (see #00055)
  4095. SeeAlso: AX=1E00h,AX=1E01h
  4096. Bitfields for Flat-Panel position setting:
  4097. Bit(s) Description (Table 00055)
  4098. 7-2 reserved (0)
  4099. 1-0 position
  4100. 00 center
  4101. 01 top
  4102. 10 bottom
  4103. 11 reserved
  4104. SeeAlso: #00054,#00056
  4105. --------V-101E03-----------------------------
  4106. INT 10 - VIDEO - FLAT-PANEL - VERTICAL EXPANSION FOR TEXT/GRAPHICS MODES
  4107. AX = 1E03h
  4108. BH = function
  4109. bit 7: =1 set vertical expansion, =0 query expansion
  4110. bits 6-0: reserved (0)
  4111. ---if BH bit 7 set---
  4112. BL = new vertical expansion setting (see #00056)
  4113. Return: AL = 1Eh if function supported
  4114. BH = results
  4115. bit 7: query/set (copied from input)
  4116. bits 6-4: reserved (0)
  4117. bit 3: vertical expansion of text is supported by hardware
  4118. bit 2: vertical expansion of graphics is supported by hardware
  4119. bit 1: hardware supports independent control of expansion in
  4120. text and graphics modes
  4121. bit 0: set operation was successful (always clear on get)
  4122. BL = active vertical expansion setting (see #00056)
  4123. SeeAlso: AX=1E00h,AX=1E02h.AX=1E04h
  4124. Bitfields for Flat-Panel vertical expansion setting:
  4125. Bit(s) Description (Table 00056)
  4126. 7-2 reserved (0)
  4127. 1 vertical expansion turned on for text modes
  4128. 0 vertical expansion turned on for graphics modes
  4129. SeeAlso: #00054,#00055,#00057
  4130. --------V-101E04-----------------------------
  4131. INT 10 - VIDEO - FLAT-PANEL - NORMAL/REVERSE VIDEO FOR TEXT/GRAPHICS MODES
  4132. AX = 1E04h
  4133. BH = function
  4134. bit 7: =1 set normal/reverse video, =0 query normal/reverse
  4135. bits 6-0: reserved (0)
  4136. ---if BH bit 7 set---
  4137. BL = new normal/reverse video setting (see #00057)
  4138. Return: AL = 1Eh if function supported
  4139. BH = results
  4140. bit 7: query/set (copied from input)
  4141. bits 6-4: reserved (0)
  4142. bit 3: hardware supports reverse video for text modes
  4143. bit 2: hardware supports reverse video for graphics modes
  4144. bit 1: hardware supports independent control of reverse video
  4145. in text and graphics modes
  4146. bit 0: set operation was successful (always clear on get)
  4147. BL = active normal/reverse video setting (see #00057)
  4148. SeeAlso: AX=1E00h,AX=1E03h,AX=1E05h
  4149. Bitfields for Flat-Panel normal/reverse video setting:
  4150. Bit(s) Description (Table 00057)
  4151. 7-2 reserved (0)
  4152. 1 reverse video for text
  4153. 0 reverse video for graphics
  4154. SeeAlso: #00054,#00056,#00058,#00059
  4155. --------V-101E05-----------------------------
  4156. INT 10 - VIDEO - FLAT-PANEL - BRIGHTNESS CONTROL
  4157. AX = 1E05h
  4158. BH = function
  4159. bit 7: =1 set brightness, =0 query brightness
  4160. bits 6-0: reserved (0)
  4161. ---if BH bit 7 set---
  4162. BL = new brightness setting (see #00058)
  4163. Return: AL = 1Eh if function supported
  4164. BH = results
  4165. bit 7: query/set (copied from input)
  4166. bits 6-2: reserved (0)
  4167. bit 1: software brightness control is supported
  4168. bit 0: set operation was successful (always clear on get)
  4169. BL = active brightness setting (see #00058)
  4170. Note: this function operates independently of AX=1E07h
  4171. SeeAlso: AX=1E00h,AX=1E04h,AX=1E06h,AX=1E07h
  4172. Bitfields for Flat-Panel brightness control:
  4173. Bit(s) Description (Table 00058)
  4174. 7-1 reserved (0)
  4175. 0 high brightness
  4176. SeeAlso: #00057,#00059
  4177. --------V-101E06-----------------------------
  4178. INT 10 - VIDEO - FLAT-PANEL - CONTRAST CONTROL FOR TEXT/GRAPHICS
  4179. AX = 1E06h
  4180. BH = function
  4181. bit 7: =1 set contrast control, =0 query contrast
  4182. bits 6-0: reserved (0)
  4183. ---if BH bit 7 set---
  4184. BL = new normal/reverse video setting (see #00059)
  4185. Return: AL = 1Eh if function supported
  4186. BH = results
  4187. bit 7: query/set (copied from input)
  4188. bits 6-4: reserved (0)
  4189. bit 3: software contrast control supported for text
  4190. bit 2: software contrast control supported for graphics
  4191. bit 1: hardware supports independent control of contrast
  4192. in text and graphics modes
  4193. bit 0: set operation was successful (always clear on get)
  4194. BL = active contrast setting (see #00059)
  4195. Note: this function operates independently of AX=1E08h
  4196. SeeAlso: AX=1E00h,AX=1E04h,AX=1E05h,AX=1E07h,AX=1E08h
  4197. Bitfields for Flat-Panel contrast control:
  4198. Bit(s) Description (Table 00059)
  4199. 7-2 reserved (0)
  4200. 1 high contrast for text
  4201. 0 high contrast for graphics
  4202. SeeAlso: #00057,#00058
  4203. --------V-101E07-----------------------------
  4204. INT 10 - VIDEO - FLAT-PANEL - BRIGHTNESS SETTING
  4205. AX = 1E07h
  4206. BH = function
  4207. bit 7: =1 set brightness control, =0 query brightness
  4208. bit 6: use standard brightness
  4209. bits 5-0: reserved (0)
  4210. ---if BH bits 7,6=10---
  4211. BL = brightness (00h = minimum, FFh = maximum)
  4212. Return: AL = 1Eh if function supported
  4213. BH = results
  4214. bit 7: query/set (copied from input)
  4215. bit 6: standard/custom (copied from input)
  4216. bits 5-2: reserved (0)
  4217. bit 1: software brightness control is supported
  4218. bit 0: set operation was succesful (always clear on get)
  4219. BL = brightness (00h = minimum, FFh = maximum)
  4220. Note: this function operates independently of AX=1E05h
  4221. SeeAlso: AX=1E00h,AX=1E05h,AX=1E08h
  4222. --------V-101E08-----------------------------
  4223. INT 10 - VIDEO - FLAT-PANEL - CONTRAST SETTING
  4224. AX = 1E08h
  4225. BH = function
  4226. bit 7: =1 set contrast control, =0 query contrast
  4227. bit 6: use standard contrast
  4228. bits 5-0: reserved (0)
  4229. ---if BH bits 7,6=10---
  4230. BL = contrast (00h = minimum, FFh = maximum)
  4231. Return: AL = 1Eh if function supported
  4232. BH = results
  4233. bit 7: query/set (copied from input)
  4234. bit 6: standard/custom (copied from input)
  4235. bits 5-2: reserved (0)
  4236. bit 1: software contrast control is supported
  4237. bit 0: set operation was succesful (always clear on get)
  4238. BL = contrast (00h = minimum, FFh = maximum)
  4239. Note: this function operates independently of AX=1E06h
  4240. SeeAlso: AX=1E00h,AX=1E06h,AX=1E07h
  4241. --------V-101EFE-----------------------------
  4242. INT 10 - VIDEO - FLAT-PANEL - FUNCTION SUPPORT FLAG
  4243. AX = 1EFEh
  4244. ES:DI -> DWORD buffer for bitmap of supported functions
  4245. (set to all zeros before calling)
  4246. Return: ES:DI buffer updated with mask of supported functions
  4247. Index: installation check;flat-panel display support
  4248. SeeAlso: AX=1E00h,AX=1E06h
  4249. --------V-101F00-----------------------------
  4250. INT 10 - VIDEO - XGA - GET DMQS (Display Mode Query and Set) DATA LENGTH
  4251. AX = 1F00h
  4252. Return: AL = 1Fh if supported
  4253. BX = number of bytes of DMQS data
  4254. Note: not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  4255. and later models.
  4256. SeeAlso: AX=1F01h
  4257. --------V-101F01-----------------------------
  4258. INT 10 - VIDEO - XGA - READ DMQS DATA
  4259. AX = 1F01h
  4260. ES:DI -> user buffer for return data (call AX=1F00h for size)
  4261. Return: AL = 1Fh if function supported
  4262. user buffer filled with DMQS data (see #00060)
  4263. Note: not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  4264. and later models.
  4265. SeeAlso: AH=1Bh,AX=1F00h,AX=3000h
  4266. Format of XGA DMQS buffer:
  4267. Offset Size Description (Table 00060)
  4268. 00h WORD offset (in bytes) to DMQS data for next XGA instance
  4269. 02h BYTE slot number
  4270. 03h BYTE XGA implementation function level identifier
  4271. 04h BYTE XGA implementation resolution level identifier
  4272. 05h WORD vendor identifier - identifies card vendor
  4273. 07h WORD vendor defined field
  4274. 09h WORD XGA adapter I/O register base address
  4275. 0Bh WORD XGA coprocessor register base address
  4276. (paragraph--multiply by 10h to get physical address)
  4277. 0Dh WORD 1 Megabyte system video memory aperture
  4278. 0000h if not allocated
  4279. (Multiply by 100000h to get physical address)
  4280. 0Fh WORD 4 Megabyte system video memory aperture
  4281. 0000h if not allocated
  4282. (multiply by 100000h to get physical address)
  4283. 11h WORD video memory base address
  4284. (multiply by 100000h to get physical address)
  4285. 13h WORD composite ID of the attached display
  4286. 15h BYTE amount of video memory available, in multiples of 256K bytes
  4287. 16h DWORD alternate XGA coprocessor register base address. 0 = none.
  4288. 1Ah var DMQS Data for further XGA Instances (as above)
  4289. Note: "Instances" refers to the capability of having up to 8 XGA
  4290. adapters in one computer.
  4291. SeeAlso: #00061
  4292. --------V-101F02-----------------------------
  4293. INT 10 - VIDEO - XGA - GET SVGA DMQS DATA LENGTH
  4294. AX = 1F02h
  4295. Return: AL = 1Fh if function supported
  4296. BX = length of SVGA DMQS data in bytes
  4297. SeeAlso: AX=1F00h,AX=1F03h
  4298. --------V-101F03-----------------------------
  4299. INT 10 - VIDEO - XGA - GET SVGA DMQS DATA
  4300. AX = 1F03h
  4301. ES:DI -> buffer for SVGA DMQS data (see #00061)
  4302. Return: AL = 1Fh if function supported
  4303. ES:DI buffer filled
  4304. SeeAlso: AX=1F00h,AX=1F02h
  4305. Format of SVGA DMQS data:
  4306. Offset Size Description (Table 00061)
  4307. 00h WORD offset to DMQS data for next SVGA instance or 0000h
  4308. 02h BYTE reserved
  4309. 03h BYTE SVGA implementation functional level
  4310. 04h BYTE SVGA implementation resolution level
  4311. 05h WORD vendor ID
  4312. 07h WORD vendor-specific
  4313. 09h 7 BYTEs reserved
  4314. 10h BYTE SVGA linear address window size
  4315. 00h 64K
  4316. 01h 1M
  4317. 02h 2M
  4318. 03h 4M
  4319. 11h WORD SVGA linear address window location or 0000h if not allocated
  4320. (multiply by 10000h [shift left 16 bits] to get physical addr)
  4321. 13h WORD attached monitor's composite monitor ID
  4322. 15h BYTE available video RAM in multiples of 256K
  4323. 16h 11 BYTEs reserved
  4324. SeeAlso: #00060
  4325. --------V-103000CX0000-----------------------
  4326. INT 10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)
  4327. AX = 3000h
  4328. CX = 0000h
  4329. DX = 0000h
  4330. Return: CX:DX -> 3270PC configuration table (see #00062)
  4331. CX:DX = 0000h:0000h if 3270PC Control Program not active
  4332. SeeAlso: AX=1F01h
  4333. Format of 3270 PC configuration table:
  4334. Offset Size Description (Table 00062)
  4335. 00h BYTE aspect ratio X
  4336. 01h BYTE aspect ratio Y
  4337. 02h BYTE monitor type (see #00063)
  4338. 03h BYTE reserved
  4339. 04h BYTE adapter ID
  4340. 00h = 5151/5272 adapter
  4341. 04h = 5151/5272 with XGA adapter
  4342. 30h = 3295 or 3270PC G/GX adapter
  4343. 05h BYTE reserved
  4344. 06h BYTE function flags 1 (see #00064)
  4345. 07h BYTE function flags 2
  4346. bit 6: GPI graphics supported
  4347. 08h WORD segment address of Control Program Level table (see #00065)
  4348. 0Ah 10 BYTEs reserved
  4349. (Table 00063)
  4350. Values for 3270 PC monitor type:
  4351. 00h 5151 (mono) or 5272 (color)
  4352. 01h 3295
  4353. 02h 5151 or 5272 with XGA (???) graphics adapter
  4354. 03h 5279 with 3270PC G adapter
  4355. 04h 5379 model C01 with 3270PC GX adapter
  4356. 05h 5379 model M01 with 3270PC GX adapter
  4357. 07h non-3270PC with 3270 Workstation Program
  4358. FFh 3270PC Control Program not loaded
  4359. Bitfields for 3270 PC function flags 1:
  4360. Bit(s) Description (Table 00064)
  4361. 7 mono text, 1 page
  4362. 6 color text, 1 page
  4363. 5 color text, 4 pages
  4364. 4 CGA color graphics
  4365. 3 720x350 two-color graphics
  4366. 2 360x350 four-color graphics
  4367. 1 720x350 eight-color graphics
  4368. Format of Control Program Level table:
  4369. Offset Size Description (Table 00065)
  4370. 00h WORD program version
  4371. 02xxh = 3270PC Control Program v2.xx
  4372. 03xxh = 3270PC Control Program v3.xx
  4373. 04xxh = 3270 Workstation Program v1.xx
  4374. 02h BYTE Control Program ID (00h)
  4375. 03h 27 BYTEs Control Program Descriptor ("IBM 3270 PC CONTROL PROGRAM")
  4376. --------a-103800-----------------------------
  4377. INT 10 - Tinytalk Personal v1.09f+ - GET CONFIGURATION INFO
  4378. AX = 3800h
  4379. Return: ES:DI -> configuration info (see #00066)
  4380. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  4381. Notes: this call is also used as the installation check by verifying that the
  4382. returned ES:DI points at valid configuration info
  4383. Tinytalk v1.09f ignores AL and always returns the configuration info;
  4384. v1.10 adds several subfunctions selected with AL
  4385. SeeAlso: AX=3801h,AX=3803h,AX=3806h,AH=39h,INT 14/AX=F0F1h
  4386. SeeAlso: INT 2F/AX=FB00h"AutoBraille"
  4387. Index: installation check;Tinytalk Personal
  4388. Format of Tinytalk Personal configuration info:
  4389. Offset Size Description (Table 00066)
  4390. 00h 8 BYTEs signature "TTCONFIG"
  4391. 08h WORD size of configuration data, not counting signature, this WORD,
  4392. or the following byte
  4393. 0Ah BYTE ???
  4394. 0Bh ??? configuration data
  4395. --------a-103801-----------------------------
  4396. INT 10 - Tinytalk Personal v1.10 - ???
  4397. AX = 3801h
  4398. DL = ???
  4399. Return: ???
  4400. SeeAlso: AX=3800h,AX=3802h
  4401. --------a-103802-----------------------------
  4402. INT 10 - Tinytalk Personal v1.10 - ???
  4403. AX = 3802h
  4404. DL = ???
  4405. Return: ???
  4406. SeeAlso: AX=3800h,AX=3801h
  4407. --------a-103803-----------------------------
  4408. INT 10 - Tinytalk Personal v1.10 - GET ???
  4409. AX = 3803h
  4410. Return: AL = ???
  4411. SeeAlso: AX=3800h,AX=3804h,AX=3805h
  4412. --------a-103804-----------------------------
  4413. INT 10 - Tinytalk Personal v1.10 - GET ???
  4414. AX = 3804h
  4415. Return: AX = ???
  4416. SeeAlso: AX=3800h,AX=3803h,AX=3805h
  4417. --------a-103805-----------------------------
  4418. INT 10 - Tinytalk Personal v1.10 - GET ???
  4419. AX = 3805h
  4420. Return: AL = ???
  4421. SeeAlso: AX=3800h,AX=3803h,AX=3804h
  4422. --------a-103806-----------------------------
  4423. INT 10 - Tinytalk Personal v1.10 - ???
  4424. AX = 3806h
  4425. ES:DX -> ASCIZ ???
  4426. Return: ???
  4427. SeeAlso: AX=3800h
  4428. --------a-1039-------------------------------
  4429. INT 10 - Tinytalk Personal v1.10 - ???
  4430. AH = 39h
  4431. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  4432. Note: this function was a NOP in TTDEMO.EXE, but may be implemented in other
  4433. variants of Tinytalk
  4434. --------V-1040-------------------------------
  4435. INT 10 - VIDEO - Hercules GRAFIX - "GMODE" - SET GRAPHICS MODE
  4436. AH = 40h
  4437. Return: nothing
  4438. Desc: switch the Hercules Graphics Card into graphics mode (720x348)
  4439. SeeAlso: AH=00h,AH=41h
  4440. Index: video modes;Hercules
  4441. --------V-1041-------------------------------
  4442. INT 10 - VIDEO - Hercules GRAFIX - "TMODE" - SET TEXT MODE
  4443. AH = 41h
  4444. Return: nothing
  4445. Desc: switch the Hercules Graphics Card into text mode
  4446. SeeAlso: AH=00h,AH=40h
  4447. Index: video modes;Hercules
  4448. --------V-1042-------------------------------
  4449. INT 10 - VIDEO - Hercules GRAFIX - "CLRSCR" - CLEAR CURRENT PAGE
  4450. AH = 42h
  4451. Return: nothing
  4452. SeeAlso: AH=45h
  4453. --------V-1043-------------------------------
  4454. INT 10 - VIDEO - Hercules GRAFIX - "GPAGE" - SELECT DRAWING PAGE
  4455. AH = 43h
  4456. AL = page number (0,1)
  4457. Return: nothing
  4458. Desc: specify which of the two pages of video memory is to be used for
  4459. output
  4460. SeeAlso: AH=05h,AH=44h,AH=45h
  4461. --------V-1044-------------------------------
  4462. INT 10 - VIDEO - Hercules GRAFIX - "LEVEL" - SELECT DRAWING FUNCTION
  4463. AH = 44h
  4464. AL = drawing function
  4465. 00h clear pixels
  4466. 01h set pixels
  4467. 02h invert pixels
  4468. Return: nothing
  4469. Desc: specify how graphics output will change the display
  4470. SeeAlso: AH=45h,AH=46h,AH=4Ch,AH=4Dh
  4471. --------V-1045-------------------------------
  4472. INT 10 - VIDEO - Hercules GRAFIX - "DISP" - SELECT PAGE TO DISPLAY
  4473. AH = 45h
  4474. AL = page number (0,1)
  4475. Return: nothing
  4476. Desc: specify which of the two pages of video memory is visible on screen
  4477. SeeAlso: AH=05h,AH=42h,AH=43h
  4478. --------V-1046-------------------------------
  4479. INT 10 - VIDEO - Hercules GRAFIX - "PLOT" - DRAW ONE PIXEL
  4480. AH = 46h
  4481. DI = x (0-719)
  4482. BP = y (0-347)
  4483. Return: nothing
  4484. Notes: function 44h determines operation and function 43h which page to use
  4485. if the indicated coordinate is valid, this function does nothing
  4486. SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4Dh
  4487. --------V-1047-------------------------------
  4488. INT 10 - VIDEO - Hercules GRAFIX - "GETPT" - FIND PIXEL VALUE
  4489. AH = 47h
  4490. DI = x (0-719)
  4491. BP = y (0-347)
  4492. Return: AL = 00h pixel clear
  4493. AL = 01h pixel set
  4494. Note: function 43h specifies which page is used
  4495. SeeAlso: AH=0Dh,AH=46h
  4496. --------V-1048-------------------------------
  4497. INT 10 - VIDEO - Hercules GRAFIX - "MOVE" - MOVE TO POINT
  4498. AH = 48h
  4499. DI = x (0-719)
  4500. BP = y (0-347)
  4501. Return: nothing
  4502. Desc: specify the location from which to start the next graphics output
  4503. SeeAlso: AH=49h
  4504. --------V-1049-------------------------------
  4505. INT 10 - VIDEO - Hercules GRAFIX - "DLINE" - DRAW TO POINT
  4506. AH = 49h
  4507. DI = x (0-719)
  4508. BP = y (0-347)
  4509. Return: nothing
  4510. Note: function 48h or 49h specify first point, 44h operation and 43h page to
  4511. use
  4512. SeeAlso: AH=43h,AH=44h,AH=48h,AH=4Ch,AH=4Dh
  4513. --------V-104A-------------------------------
  4514. INT 10 - VIDEO - Hercules GRAFIX - "BLKFIL" - BLOCK FILL
  4515. AH = 4Ah
  4516. DI = x coordinate of lower left corner
  4517. BP = y coordinate of lower left corner
  4518. BX = height in pixels
  4519. CX = width in pixels
  4520. Return: nothing
  4521. Desc: draw a solid rectangle of the specified size at the given location
  4522. SeeAlso: AH=4Eh
  4523. --------V-104B-------------------------------
  4524. INT 10 - VIDEO - Hercules GRAFIX - "TEXT" - DISPLAY CHARACTER
  4525. AH = 4Bh
  4526. AL = character to display
  4527. DI = x (0-719)
  4528. BP = y (0-347)
  4529. Return: nothing
  4530. Notes: unlike the other BIOS character functions character position is
  4531. specified in pixels rather than rows and columns
  4532. the character is writting using the drawing function last specified by
  4533. AH=44h
  4534. SeeAlso: AH=09h,AH=0Ah
  4535. --------P-104B-------------------------------
  4536. INT 10 - FRIEZE - API
  4537. AH = 4Bh
  4538. CL = function
  4539. 00h (v6.x-) print window
  4540. AL = mode
  4541. 00h character
  4542. 01h normal
  4543. 02h sideways
  4544. 01h load window
  4545. ES:BX -> ASCIZ filename from which to read
  4546. 02h save window
  4547. ES:BX -> ASCIZ filename to which to write
  4548. 03h set print width
  4549. AL = width in 1/4 inches
  4550. 04h set print height
  4551. AL = height in 1/4 inches
  4552. 05h reserved
  4553. 06h set left margin
  4554. AL = printout margin in 1/4 inches
  4555. 07h set window size
  4556. ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax
  4557. 08h reserved
  4558. 09h set patterns
  4559. ES:BX -> 16-BYTE vector of screen->printer color correspondnces
  4560. 0Ah get patterns
  4561. ES:BX -> 16-BYTE buffer for color correspondences
  4562. 0Bh set mode
  4563. AL = mode
  4564. 0Ch (v7.41) ???
  4565. AL = ???
  4566. 00h ??? (calls original INT 05)
  4567. else ???
  4568. 0Dh (v7.41) ???
  4569. AL = ???
  4570. 00h ??? (calls original INT 05)
  4571. else ???
  4572. 0Eh (v7.41) ???
  4573. ???
  4574. 0Fh get window
  4575. ES:BX -> four-WORD buffer for Xmin, Ymin, Xmax, Ymax
  4576. 10h set print options
  4577. ES:BX -> printer options in same format as FRIEZE cmdline
  4578. 11h initialize
  4579. ES:BX -> three-WORD array from CARDS.DAT for HRes, VRes, code
  4580. 12h (v7.41) ???
  4581. ???
  4582. 13h (v7.41) ???
  4583. ???
  4584. 14h get version
  4585. Return: AH = major version (00h if FRIEZE version before 7)
  4586. AL = minor version
  4587. 15h set parameters
  4588. ES:BX -> parameter table (see #00068)
  4589. 16h get parameters
  4590. ES:BX -> buffer for parameter table (see #00068)
  4591. 17h get printer resolution
  4592. ES:BX -> 12-WORD table for six horizontal/vertical resol pairs
  4593. 18h (v8.0 only) reserved
  4594. 50h (v7.41) get ???
  4595. Return: AX = ???
  4596. 51h (v7.41) get ???
  4597. Return: ES = ??? (seen 2348h)
  4598. AX = ??? (seen 8432h)
  4599. Return: AX = status (see #00067)
  4600. SeeAlso: AH=0Fh/SI=F123h
  4601. (Table 00067)
  4602. Values for FRIEZE function status:
  4603. 00h successful
  4604. 01h user aborted printout with ESC
  4605. 02h reserved
  4606. 03h file read error
  4607. 04h file write error or printer error
  4608. 05h file not found
  4609. 06h invalid header (not an image or wrong screen mode) or can't create file
  4610. 07h file close error
  4611. 08h disk error
  4612. 09h (v7.0+) printer error
  4613. 0Ah invalid function
  4614. 0Bh (v7.0+) can't create file
  4615. 0Ch (v7.0+) wrong video mode
  4616. Format of FRIEZE parameter table:
  4617. Offset Size Description (Table 00068)
  4618. 00h WORD top margin (1/100 inch)
  4619. 02h WORD left margin (1/100 inch)
  4620. 04h WORD horizontal size (1/100 inch)
  4621. 06h WORD vertical size (1/100 inch)
  4622. 08h WORD quality/draft mode
  4623. 00h draft mode
  4624. 01h quality mode
  4625. 02h use horizontal/vertical resolution for output resolution
  4626. 0Ah WORD printer horizontal resolution (dots per inch)
  4627. 0Ch WORD printer vertical resolution (dots per inch)
  4628. 0Eh WORD reserved (FFFFh)
  4629. Note: any field which should remain unchanged may be filled with FFFFh
  4630. --------V-104C-------------------------------
  4631. INT 10 - VIDEO - Hercules GRAFIX - "ARC" - DRAW ARC
  4632. AH = 4Ch
  4633. AL = quadrant (1 = upper right, 2 = upper left, etc)
  4634. DI = x coordinate of center
  4635. BP = y coordinate of center
  4636. BX = radius
  4637. Return: nothing
  4638. SeeAlso: AH=49h,AH=4Dh
  4639. --------V-104D-------------------------------
  4640. INT 10 - VIDEO - Hercules GRAFIX - "CIRC" - DRAW CIRCLE
  4641. AH = 4Dh
  4642. DI = x of center
  4643. BP = y of center
  4644. BX = radius
  4645. Return: nothing
  4646. SeeAlso: AH=49h,AH=4Ch
  4647. --------V-104E-------------------------------
  4648. INT 10 - VIDEO - Hercules GRAFIX - "FILL" - FILL AREA
  4649. AH = 4Eh
  4650. DI = x coordinate of an interior point
  4651. BP = y coordinate of an interior point
  4652. Return: nothing
  4653. Desc: fill a convex polygonal area bounded by a contiguous line of the
  4654. opposite color with the border color
  4655. Note: the first fill makes the figure solid, the second erases it
  4656. SeeAlso: AH=4Ah
  4657. --------V-104E00-----------------------------
  4658. INT 10 - VESA XGA BIOS Extensions - GET XGA ENVIRONMENT INFORMATION
  4659. AX = 4E00h
  4660. ES:DI -> 256-byte buffer for XGA information (see #00069)
  4661. Return: AL = 4Eh if function supported
  4662. AH = status
  4663. 00h successful
  4664. else error code
  4665. Desc: determine whether VESA XGA extensions are present and the capabilities
  4666. supported by the display adapter
  4667. SeeAlso: AX=4E01h,AX=4E02h,AX=4F00h
  4668. Index: installation check;VESA XGA
  4669. Format of XGA information buffer:
  4670. Offset Size Description (Table 00069)
  4671. 00h 4 BYTEs signature ("VESA")
  4672. 04h WORD VESA version number
  4673. 06h DWORD pointer to ASCIZ OEM string
  4674. 0Ah DWORD environment flags (see #00070)
  4675. 0Eh WORD number of XGA adapters installed (other VESA XGA functions
  4676. require a handle indicating which adapter to use)
  4677. 10h 240 BYTEs reserved
  4678. Bitfields for XGA environment flags:
  4679. Bit(s) Description (Table 00070)
  4680. 0-1 system bus (00 = MCA, 01 = ISA, 10 = EISA)
  4681. 2 bus mastering available
  4682. 3-31 reserved
  4683. --------V-104E01----------------------------
  4684. INT 10 - VESA XGA BIOS Extensions - RETURN XGA SUBSYSTEM INFORMATION
  4685. AX = 4E01h
  4686. DX = XGA handle (0 to number of XGAs-1)
  4687. ES:DI -> 256-byte buffer for subsystem information (see #00071)
  4688. Return: AL = 4Eh if function supported
  4689. AH = status
  4690. 00h function successful
  4691. else error code
  4692. SeeAlso: AX=4E00h,AX=4E02h
  4693. Format of XGA subsystem information:
  4694. Offset Size Description (Table 00071)
  4695. 00h DWORD pointer to null-terminated board OEM string
  4696. 04h DWORD capabilities (see #00072)
  4697. 08h DWORD pointer to 8KB XGA ROM (or NULL)
  4698. 0Ch DWORD pointer to the XGA memory mapped registers
  4699. 10h WORD base address of XGA I/O registers (21x0h)
  4700. 12h DWORD pointer to start of physical video memory
  4701. (A000h:0000h or B000h:0000h)
  4702. 16h DWORD physical address of 4MB aperture (or NULL if none)
  4703. 1Ah DWORD physical address of 1MB aperture (or NULL if none)
  4704. 1Eh DWORD physical address of 64KB aperture (or NULL if not enabled)
  4705. 22h DWORD physical address of OEM aperture (or NULL if none)
  4706. 26h WORD size of OEM aperture in 64KByte units
  4707. 28h DWORD pointer to list of video modes
  4708. The list is a series of WORDs terminated by FFFFh
  4709. 2Ch WORD number of 64KB blocks on the board
  4710. 2Eh DWORD XGA manufacturer ID
  4711. byte 0 POS data index 1
  4712. byte 1 is index 2
  4713. byte 2 is 21xAh index 75h
  4714. 32h 206 BYTEs reserved
  4715. Bitfields for XGA capabilities:
  4716. Bit(s) Description (Table 00072)
  4717. 0-1 board bus architecture: 0=MCA, 1=ISA, 3=EISA
  4718. 2-3 reserved
  4719. 4-6 DMA Channel assigned for acquiring bus mastership (only for ISA bus)
  4720. 7 DMA Channel Status (ISA only). enabled if set
  4721. 8-31 reserved
  4722. --------V-104E02-----------------------------------
  4723. INT 10 - VESA XGA BIOS Extensions - RETURN XGA MODE INFORMATION
  4724. AX = 4E02h
  4725. CX = Video mode
  4726. DX = XGA handle
  4727. ES:DI -> 256 byte buffer for mode information (see #00073)
  4728. Return: AL = 4Eh if function supported
  4729. AH = status
  4730. 00h function successful
  4731. else error code
  4732. SeeAlso: AX=4E00h,AX=4E01h
  4733. Format of XGA mode information:
  4734. Offset Size Description (Table 00073)
  4735. 00h WORD attributes of the mode (see #00074)
  4736. 02h WORD bytes per logical scanline
  4737. 04h WORD horizontal resolution in pixels
  4738. 06h WORD vertical resolution in scanlines
  4739. 08h BYTE character Width in pixels
  4740. 09h BYTE character Height in pixels
  4741. 0Ah BYTE number of planes
  4742. 0Bh BYTE bits per pixels
  4743. 0Ch BYTE memory model (see #00075)
  4744. 0Dh BYTE number of Image Pages
  4745. 0Eh BYTE number of Red bits
  4746. 0Fh BYTE bit position of Red bit field
  4747. 10h BYTE number of Green bits
  4748. 11h BYTE bit position of Green bit field
  4749. 12h BYTE number of Blue bits
  4750. 13h BYTE bit position of Blue bit field
  4751. 14h BYTE number of Reserved bits
  4752. 15h BYTE bit position of Reserved bit field
  4753. 16h 235 BYTEs reserved
  4754. Bitfields for XGA mode attributes:
  4755. Bit(s) Description (Table 00074)
  4756. 0 set if mode is supported
  4757. 1 reserved
  4758. 2 output is supported by the BIOS
  4759. 3 reserved
  4760. 4 if set this is a graphics mode (VGA registers inactive, XGA active),
  4761. if clear this is a text mode (VGA registers active, XGA inactive)
  4762. (Table 00075)
  4763. Values for XGA video memory model:
  4764. 00h Text Mode
  4765. 01h CGA graphics
  4766. 02h Hercules graphics
  4767. 03h 4-planar graphics
  4768. 04h Packed Pixel
  4769. 05h Non-chain 4, 256 color
  4770. 06h Direct Color
  4771. 07h YUV-24
  4772. --------V-104E03-----------------------------------
  4773. INT 10 - VESA XGA BIOS Extensions - SET XGA VIDEO MODE
  4774. AX = 4E03h
  4775. BX = video mode
  4776. CX = other command flags
  4777. bit 0 If clear the feature connector is set to the default state
  4778. DX = XGA handle
  4779. ES:DI -> 256 byte buffer
  4780. Return: AL = 4Eh if function supported
  4781. AH = status
  4782. 00h function successful
  4783. else error code
  4784. SeeAlso: AH=00h,AX=4E04h,AX=4F02h
  4785. --------V-104E04-----------------------------------
  4786. INT 10 - VESA XGA BIOS Extensions - RETURN CURRENT VIDEO MODE
  4787. AX = 4E04h
  4788. DX = XGA handle
  4789. Return: AL = 4Eh if function supported
  4790. AH = status
  4791. 00h function successful
  4792. BX??? = current mode
  4793. else error code
  4794. SeeAlso: AH=0Fh,AX=4E03h,AX=4F03h
  4795. --------V-104E05-----------------------------------
  4796. INT 10 - VESA XGA BIOS Extensions - SET FEATURE CONNECTOR STATE
  4797. AX = 4E05h
  4798. BX = Feature Connector State (see #00076)
  4799. DX = XGA handle
  4800. Return: AL = 4Eh if function supported
  4801. AH = status
  4802. 00h function successful
  4803. else error code
  4804. SeeAlso: AX=4E00h,AX=4E06h
  4805. Bitfields for XGA Feature Connector State:
  4806. Bit(s) Description (Table 00076)
  4807. 0 Feature Connector is enabled
  4808. 1 Feature Connector is in Output Mode rather than Input Mode
  4809. 2-15 reserved (0)
  4810. --------V-104E06-----------------------------------
  4811. INT 10 - VESA XGA BIOS Extensions - RETURN FEATURE CONNECTOR STATE
  4812. AX = 4E06h
  4813. DX = XGA handle
  4814. Return: AL = 4Eh if function supported
  4815. AH = status
  4816. 00h function successful
  4817. else error code
  4818. BX = Feature Connector State (see #00076)
  4819. SeeAlso: AX=4E00h,AX=4E05h
  4820. --------V-104F00-----------------------------
  4821. INT 10 - VESA SuperVGA BIOS (VBE) - GET SuperVGA INFORMATION
  4822. AX = 4F00h
  4823. ES:DI -> buffer for SuperVGA information (see #00077)
  4824. Return: AL = 4Fh if function supported
  4825. AH = status
  4826. 00h successful
  4827. ES:DI buffer filled
  4828. 01h failed
  4829. ---VBE v2.0---
  4830. 02h function not supported by current hardware configuration
  4831. 03h function invalid in current video mode
  4832. Desc: determine whether VESA BIOS extensions are present and the capabilities
  4833. supported by the display adapter
  4834. SeeAlso: AX=4E00h,AX=4F01h,AX=7F00h"SOLLEX",AX=A00Ch
  4835. Index: installation check;VESA SuperVGA
  4836. Format of SuperVGA information:
  4837. Offset Size Description (Table 00077)
  4838. 00h 4 BYTEs (ret) signature ("VESA")
  4839. (call) VESA 2.0 request signature ("VBE2"), required to receive
  4840. version 2.0 info
  4841. 04h WORD VESA version number (one-digit minor version -- 0102h = v1.2)
  4842. 06h DWORD pointer to OEM name
  4843. "761295520" for ATI
  4844. 0Ah DWORD capabilities flags (see #00078)
  4845. 0Eh DWORD pointer to list of supported VESA and OEM video modes
  4846. (list of words terminated with FFFFh)
  4847. 12h WORD total amount of video memory in 64K blocks
  4848. ---VBE v1.x ---
  4849. 14h 236 BYTEs reserved
  4850. ---VBE v2.0 ---
  4851. 14h WORD OEM software version (BCD, high byte = major, low byte = minor)
  4852. 16h DWORD pointer to vendor name
  4853. 1Ah DWORD pointer to product name
  4854. 1Eh DWORD pointer to product revision string
  4855. 22h WORD (if capabilities bit 3 set) VBE/AF version (BCD)
  4856. 0100h for v1.0P
  4857. 24h DWORD (if capabilities bit 3 set) pointer to list of supported
  4858. accelerated video modes (list of words terminated with FFFFh)
  4859. 28h 216 BYTEs reserved for VBE implementation
  4860. 100h 256 BYTEs OEM scratchpad (for OEM strings, etc.)
  4861. Notes: the list of supported video modes is stored in the reserved portion of
  4862. the SuperVGA information record by some implementations, and it may
  4863. thus be necessary to either copy the mode list or use a different
  4864. buffer for all subsequent VESA calls
  4865. the 1.1 VESA document specifies 242 reserved bytes at the end, so the
  4866. buffer should be 262 bytes to ensure that it is not overrun; for
  4867. v2.0, the buffer should be 512 bytes
  4868. the S3 specific video modes will most likely follow the FFFFh
  4869. terminator at the end of the standard modes. A search must then
  4870. be made to find them, FFFFh will also terminate this second list
  4871. in some cases, only a "stub" VBE may be present, supporting only
  4872. AX=4F00h; this case may be assumed if the list of supported video
  4873. modes is empty (consisting of a single word of FFFFh)
  4874. Bitfields for VESA capabilities:
  4875. Bit(s) Description (Table 00078)
  4876. 0 DAC can be switched into 8-bit mode
  4877. 1 non-VGA controller
  4878. 2 programmed DAC with blank bit (i.e. only during blanking interval)
  4879. 3 controller supports VBE/AF v1.0P extensions
  4880. 4 (VBE/AF) must call EnableDirectAccess to access framebuffer
  4881. 5 (VBE/AF) controller supports hardware mouse cursor
  4882. 6 (VBE/AF) controller supports hardware clipping
  4883. 7 (VBE/AF) controller supports transparent BitBLT
  4884. 8-31 reserved (0)
  4885. SeeAlso: #00077,AX=4F09h
  4886. --------V-104F01-----------------------------
  4887. INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
  4888. AX = 4F01h
  4889. CX = SuperVGA video mode
  4890. bit 14 set means enable linear framebuffer mode (VBE v2.0+)
  4891. bit 13 set means VBE/AF v1.0P initializes accelerator hardware
  4892. ES:DI -> 256-byte buffer for mode information (see #00079)
  4893. Return: AL = 4Fh if function supported
  4894. AH = status
  4895. 00h successful
  4896. ES:DI buffer filled
  4897. 01h failed
  4898. Desc: determine the attributes of the specified video mode
  4899. SeeAlso: AX=4F00h,AX=4F02h
  4900. Format of VESA SuperVGA mode information:
  4901. Offset Size Description (Table 00079)
  4902. 00h WORD mode attributes (see #00080)
  4903. 02h BYTE window attributes, window A (see #00081)
  4904. 03h BYTE window attributes, window B (see #00081)
  4905. 04h WORD window granularity in KB
  4906. 06h WORD window size in KB
  4907. 08h WORD start segment of window A
  4908. 0Ah WORD start segment of window B
  4909. 0Ch DWORD -> FAR window positioning function (equivalent to AX=4F05h)
  4910. 10h WORD bytes per scan line
  4911. ---remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes---
  4912. 12h WORD width in pixels (graphics) or characters (text)
  4913. 14h WORD height in pixels (graphics) or characters (text)
  4914. 16h BYTE width of character cell in pixels
  4915. 17h BYTE height of character cell in pixels
  4916. 18h BYTE number of memory planes
  4917. 19h BYTE number of bits per pixel
  4918. 1Ah BYTE number of banks
  4919. 1Bh BYTE memory model type (see #00082)
  4920. 1Ch BYTE size of bank in KB
  4921. 1Dh BYTE number of image pages
  4922. 1Eh BYTE reserved (0)
  4923. ---VBE v1.2+---
  4924. 1Fh BYTE red mask size
  4925. 20h BYTE red field position
  4926. 21h BYTE green mask size
  4927. 22h BYTE green field size
  4928. 23h BYTE blue mask size
  4929. 24h BYTE blue field size
  4930. 25h BYTE reserved mask size
  4931. 26h BYTE reserved mask position
  4932. 27h BYTE direct color mode info
  4933. bit 0: color ramp is programmable
  4934. bit 1: bytes in reserved field may be used by application
  4935. ---VBE v2.0 ---
  4936. 28h DWORD physical address of linear video buffer
  4937. 2Ch DWORD pointer to start of offscreen memory
  4938. 30h WORD KB of offscreen memory
  4939. 32h 206 BYTEs reserved (0)
  4940. Bitfields for VESA SuperVGA mode attributes:
  4941. Bit(s) Description (Table 00080)
  4942. 0 mode supported
  4943. 1 optional information available
  4944. 2 BIOS output supported
  4945. 3 set if color, clear if monochrome
  4946. 4 set if graphics mode, clear if text mode
  4947. ---VBE v2.0 ---
  4948. 5 mode is not VGA-compatible
  4949. 6 bank-switched mode not supported
  4950. 7 linear framebuffer mode supported
  4951. 8 ???
  4952. 9 (VBE/AF v1.0P) application must call EnableDirectAccess before calling
  4953. bank-switching functions
  4954. SeeAlso: #00079
  4955. Bitfields for VESA SuperVGA window attributes:
  4956. Bit(s) Description (Table 00081)
  4957. 0 exists
  4958. 1 readable
  4959. 2 writable
  4960. 3-7 reserved
  4961. SeeAlso: #00079
  4962. (Table 00082)
  4963. Values for VESA SuperVGA memory model type:
  4964. 00h text
  4965. 01h CGA graphics
  4966. 02h HGC graphics
  4967. 03h 16-color (EGA) graphics
  4968. 04h packed pixel graphics
  4969. 05h "sequ 256" (non-chain 4) graphics
  4970. 06h direct color (HiColor, 24-bit color)
  4971. 07h YUV (luminance-chrominance, also called YIQ)
  4972. 08h-0Fh reserved for VESA
  4973. 10h-FFh OEM memory models
  4974. SeeAlso: #00079
  4975. --------V-104F02-----------------------------
  4976. INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
  4977. AX = 4F02h
  4978. BX = mode (see #00083,#00084)
  4979. bit 15 set means don't clear video memory
  4980. bit 14 set means enable linear framebuffer mode (VBE v2.0+)
  4981. bit 13 set means VBE/AF v1.0P initializes accelerator hardware
  4982. Return: AL = 4Fh if function supported
  4983. AH = status
  4984. 00h successful
  4985. 01h failed
  4986. Notes: bit 13 may only be set if the video mode is present in the list of
  4987. accelerated video modes returned by AX=4F00h
  4988. if the DAC supports both 8 bits per primary color and 6 bits, it will
  4989. be reset to 6 bits after a mode set; use AX=4F08h to restore 8 bits
  4990. SeeAlso: AX=4E03h,AX=4F00h,AX=4F01h,AX=4F03h,AX=4F08h
  4991. (Table 00083)
  4992. Values for VESA video mode:
  4993. 00h-FFh OEM video modes (see #00010 at AH=00h)
  4994. 100h 640x400x256
  4995. 101h 640x480x256
  4996. 102h 800x600x16
  4997. 103h 800x600x256
  4998. 104h 1024x768x16
  4999. 105h 1024x768x256
  5000. 106h 1280x1024x16
  5001. 107h 1280x1024x256
  5002. 108h 80x60 text
  5003. 109h 132x25 text
  5004. 10Ah 132x43 text
  5005. 10Bh 132x50 text
  5006. 10Ch 132x60 text
  5007. ---VBE v1.2---
  5008. 10Dh 320x200x32K
  5009. 10Eh 320x200x64K
  5010. 10Fh 320x200x16M
  5011. 110h 640x480x32K
  5012. 111h 640x480x64K
  5013. 112h 640x480x16M
  5014. 113h 800x600x32K
  5015. 114h 800x600x64K
  5016. 115h 800x600x16M
  5017. 116h 1024x768x32K
  5018. 117h 1024x768x64K
  5019. 118h 1024x768x16M
  5020. 119h 1280x1024x32K
  5021. 11Ah 1280x1024x64K
  5022. 11Bh 1280x1024x16M
  5023. ---VBE 2.0---
  5024. 120h 1600x1200x256
  5025. 121h 1600x1200x32K
  5026. 122h 1600x1200x64K
  5027. 81FFh special full-memory access mode
  5028. Note: the special mode 81FFh preserves the contents of the video memory and
  5029. gives access to all of the memory; VESA recommends that the special
  5030. mode be a packed-pixel mode
  5031. SeeAlso: #00010,#00011,#00084,#00191
  5032. Index: video modes;VESA
  5033. (Table 00084)
  5034. Values for S3 OEM video mode:
  5035. 201h 640x480x256
  5036. 202h 800x600x16
  5037. 203h 800x600x256
  5038. 204h 1024x768x16
  5039. 205h 1024x768x256
  5040. 206h 1280x960x16
  5041. 207h 1152x864x256 (Diamond Stealth 64)
  5042. 208h 1280x1024x16
  5043. 209h 1152x864x32K
  5044. 20Ah 1152x864x64K (Diamond Stealth 64)
  5045. 20Bh 1152x864x4G
  5046. 211h 640x480x64K (Diamond Stealth 24)
  5047. 211h 640x400x4G (Diamond Stealth64 Video / Stealth64 Graphics)
  5048. 212h 640x480x16M (Diamond Stealth 24)
  5049. 301h 640x480x32K
  5050. Note: these modes are only available on video cards using S3's VESA driver
  5051. SeeAlso: #00083,#00191,#00732 at INT 1A/AX=B102h
  5052. Index: video modes;S3
  5053. --------V-104F03-----------------------------
  5054. INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE
  5055. AX = 4F03h
  5056. Return: AL = 4Fh if function supported
  5057. AH = status
  5058. 00h successful
  5059. BX = video mode (see #00083,#00084)
  5060. bit 13: VBE/AF v1.0P accelerated video mode
  5061. bit 14: linear frame buffer enabled (VBE v2.0+)
  5062. bit 15: don't clear video memory
  5063. 01h failed
  5064. SeeAlso: AH=0Fh,AX=4E04h,AX=4F02h
  5065. --------V-104F04-----------------------------
  5066. INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE
  5067. AX = 4F04h
  5068. DL = subfunction
  5069. 00h get state buffer size
  5070. Return: BX = number of 64-byte blocks needed
  5071. 01h save video states
  5072. ES:BX -> buffer
  5073. 02h restore video states
  5074. ES:BX -> buffer
  5075. CX = states to save/restore (see #00085)
  5076. Return: AL = 4Fh if function supported
  5077. AH = status
  5078. 00h successful
  5079. 01h failed
  5080. SeeAlso: AH=1Ch,AX=5F90h,AX=5FA0h
  5081. Bitfields for VESA SuperVGA states to save/restore:
  5082. Bit(s) Description (Table 00085)
  5083. 0 video hardware state
  5084. 1 video BIOS data state
  5085. 2 video DAC state
  5086. 3 SuperVGA state
  5087. SeeAlso: #00048,#00186
  5088. --------V-104F05-----------------------------
  5089. INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL
  5090. AX = 4F05h
  5091. BH = subfunction
  5092. 00h select video memory window
  5093. DX = window address in video memory (in granularity units)
  5094. 01h get video memory window
  5095. Return: DX = window address in video memory (in gran. units)
  5096. BL = window number
  5097. 00h window A
  5098. 01h window B
  5099. Return: AL = 4Fh if function supported
  5100. AH = status
  5101. 00h successful
  5102. 01h failed
  5103. Note: when using an accelerated video mode under VBE/AF v1.0P, the
  5104. application must call EnableDirectAccess before switching banks if
  5105. bit 9 of the video mode attributes flag is set (see #00080)
  5106. BUG: Phoenix S3 Trio64V+ v1.02-02 reportedly returns garbage in DX for
  5107. subfunction 01h
  5108. SeeAlso: AX=4F01h,AX=4F06h,AX=4F07h,AX=7000h/BX=0004h
  5109. --------V-104F06-----------------------------
  5110. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET LOGICAL SCAN LINE LENGTH (PIXELS)
  5111. AX = 4F06h
  5112. BL = subfunction
  5113. 00h set scan line length
  5114. CX = desired width in pixels
  5115. 01h get scan line length
  5116. Return: AL = 4Fh if function supported
  5117. AH = status
  5118. 00h successful
  5119. 01h failed
  5120. BX = bytes per scan line
  5121. CX = number of pixels per scan line
  5122. DX = maximum number of scan lines
  5123. Notes: if the desired width is not achievable, the next larger width will be
  5124. set
  5125. the scan line may be wider than the visible area of the screen
  5126. this function is valid in text modes, provided that pixel values are
  5127. multiplied by the character cell width/height
  5128. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h/BL=02h,AX=4F06h/BL=03h,AX=4F07h
  5129. --------V-104F06BL02-------------------------
  5130. INT 10 - VESA SuperVGA BIOS v2.0+ - SET LOGICAL SCAN LINE LENGTH (BYTES)
  5131. AX = 4F06h
  5132. BL = 02h
  5133. CX = desired scanline width in bytes
  5134. Return: AL = 4Fh if function supported
  5135. AH = status
  5136. 00h successful
  5137. 01h failed
  5138. BX = bytes per scan line
  5139. CX = number of pixels per scan line
  5140. DX = maximum number of scan lines
  5141. Notes: if the desired width is not achievable, the next larger width will be
  5142. set
  5143. the scan line may be wider than the visible area of the screen
  5144. this function is valid in text modes, provided that pixel values are
  5145. multiplied by the character cell width/height
  5146. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h,AX=4F06h/BL=03h,AX=4F07h
  5147. --------V-104F06BL03-------------------------
  5148. INT 10 - VESA SuperVGA BIOS v2.0+ - GET MAXIMUM SCAN LINE LENGTH
  5149. AX = 4F06h
  5150. BL = 03h
  5151. Return: AL = 4Fh if function supported
  5152. AH = status
  5153. 00h successful
  5154. 01h failed
  5155. BX = maximum bytes per scan line
  5156. CX = maximum number of pixels per scan line
  5157. Notes: this function is valid in text modes, provided that pixel values are
  5158. multiplied by the character cell width/height
  5159. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h,AX=4F06h/BL=02h,AX=4F07h
  5160. --------V-104F07-----------------------------
  5161. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET DISPLAY START
  5162. AX = 4F07h
  5163. BL = subfunction
  5164. 00h,80h set display start
  5165. CX = leftmost displayed pixel in scan line
  5166. DX = first displayed scan line
  5167. 01h get display start
  5168. Return: BH = 00h
  5169. CX = leftmost displayed pixel in scan line
  5170. DX = first displayed scan line
  5171. BH = 00h (reserved)
  5172. Return: AL = 4Fh if function supported
  5173. AH = status
  5174. 00h successful
  5175. 01h failed
  5176. Notes: this function is valid in text modes, provided that values are
  5177. multiplied by the character cell width/height
  5178. subfunction 80h waits until vertical retrace before changing the
  5179. display start address (VBE v2.0+)
  5180. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h
  5181. --------V-104F08-----------------------------
  5182. INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL
  5183. AX = 4F08h
  5184. BL = subfunction
  5185. 00h set DAC palette width
  5186. BH = desired number of bits per primary color
  5187. 01h get DAC palette width
  5188. Return: AL = 4Fh if function supported
  5189. AH = status
  5190. 00h successful
  5191. 01h failed
  5192. BH = current number of bits per primary (06h = standard VGA)
  5193. --------V-104F09-----------------------------
  5194. INT 10 - VESA SuperVGA BIOS v2.0+ - GET/SET PALETTE ENTRIES
  5195. AX = 4F09h
  5196. BL = subfunction
  5197. 00h set (primary) palette
  5198. 01h get (primary) palette
  5199. 02h set secondary palette data
  5200. 03h get secondary palette data
  5201. 80h set palette during vertical retrace
  5202. CX = number of entries to change
  5203. DX = starting palette index
  5204. ES:DI -> palette buffer (see #00086)
  5205. Return: AL = 4Fh if function supported
  5206. AH = status
  5207. 00h successful
  5208. 01h failed
  5209. SeeAlso: AX=4F0Ah,AX=D000h"S3VBE"
  5210. Format of VESA VBE palette entry:
  5211. Offset Size Description (Table 00086)
  5212. 00h BYTE red
  5213. 01h BYTE green
  5214. 02h BYTE blue
  5215. 03h BYTE alpha or alignment byte
  5216. --------V-104F0ABL00-------------------------
  5217. INT 10 - VESA SuperVGA BIOS v2.0+ - GET PROTECTED-MODE INTERFACE
  5218. AX = 4F0Ah
  5219. BL = 00h
  5220. Return: AL = 4Fh if function supported
  5221. AH = status
  5222. 00h successful
  5223. ES:DI -> protected-mode table (see #00087)
  5224. CX = length of table in bytes, included protected-mode code
  5225. 01h failed
  5226. SeeAlso: AX=4F00h,AX=4F05h,AX=4F07h,AX=4F09h
  5227. Format of VESA VBE 2.0 protected-mode table:
  5228. Offset Size Description (Table 00087)
  5229. 00h WORD offset (within table) of protected-mode code for Function 5
  5230. (Set Window)
  5231. 02h WORD offset of protected-mode code for Function 7 (Set Disp Start)
  5232. 04h WORD offset of protected-mode code for Function 9 (Set Primary
  5233. Palette)
  5234. 06h WORD offset (within table) of list of I/O ports and memory locations
  5235. for which I/O privilege may be required in protected mode
  5236. (0000h if no list)
  5237. 08h var code and optional port/memory list
  5238. --------V-104F0A-----------------------------
  5239. INT 10 O - VESA SuperVGA BIOS v2.0 beta - GET PROTECTED-MODE CODE
  5240. AX = 4F0Ah
  5241. BX = function to be copied (see #00088)
  5242. Return: AL = 4Fh if function supported
  5243. AH = status
  5244. 00h successful
  5245. CX = number of bytes to copy
  5246. ES:DI -> code for requested function
  5247. 01h failed
  5248. SeeAlso: AX=4F09h,AX=D000h"S3VBE"
  5249. (Table 00088)
  5250. Values for VESA VBE protected-mode function identifiers:
  5251. 0001h set bank (see AX=4F05h)
  5252. 0002h set display start (see AX=4F07h)
  5253. 0003h set palette (see AX=4F09h)
  5254. --------V-104F0B-----------------------------
  5255. INT 10 - VESA SuperVBA BIOS - GET VBE/AF v1.0P DEVICE CONTEXT BUFFER
  5256. AX = 4F0Bh
  5257. BL = subfunction
  5258. 00h get length of device context buffer
  5259. 01h initialize device context buffer
  5260. ES:DI -> real-mode address of buffer (see #00089)
  5261. Return: AL = 4Fh if function supported
  5262. AH = status
  5263. 00h successful
  5264. CX = number of bytes required for buffer (if BL=00h on entry)
  5265. ES:DI buffer initialized (if BL=01h on entry)
  5266. 01h failed
  5267. Note: this interface description is derived from the draft VBE/AF proposal
  5268. (version 1.0P, document revsion 0.12P, dated 13jan95)
  5269. SeeAlso: AX=4F00h,AX=4F01h,AX=4F17h
  5270. Format of VBE/AF v1.0P Device Context buffer:
  5271. Offset Size Description (Table 00089)
  5272. 00h WORD maximum X coordinate in frame buffer (0 = left edge)
  5273. Note: application must never pass X coordinate greater than
  5274. this value to the SetClipRect function (values are
  5275. NOT range-checked!)
  5276. 02h WORD maximum Y coordinate in frame buffer (0 = top edge)
  5277. Note: application must never pass Y coordinate greater than
  5278. this value to the SetClipRect function
  5279. 04h DWORD -> "SetForeColor" to set foreground color/mix (see #00091)
  5280. 08h DWORD -> "SetBackColor" to set background color/mix (see #00092)
  5281. 0Ch DWORD -> "SetClipRect" set hardware clipping rectangle (see #00093)
  5282. 10h DWORD -> function "DrawScan" to draw a single scan line
  5283. 14h DWORD -> function "DrawScanList" to draw a list of scan lines
  5284. 18h DWORD -> function "DrawRect" to draw a solid rectangle
  5285. 1Ch DWORD -> function "DrawLine" to draw a solid line
  5286. 20h DWORD -> function "DrawPattScan" to draw a patterned scan line
  5287. 24h DWORD -> function "BitBlt" to perform screen-to-screen BitBLT
  5288. 28h DWORD -> "TransBitBlt" to perform transparent screen-to-screen BitBLT
  5289. 2Ch DWORD -> "MonoBitBlt" to monochrome expansion screen-to-screen BitBLT
  5290. 30h DWORD -> function "SetCursor" to download hardware cursor image
  5291. 34h DWORD -> function "SetCursorPos" to set hardware cursor position
  5292. 38h DWORD -> function "SetCursorColor" to set hardware cursor color
  5293. 3Ch DWORD -> function "ShowCursor" to show/hide hardware cursor
  5294. 40h DWORD -> function "WaitTillIdle" to wait until graphics engine idle
  5295. 44h DWORD -> "EnableDirectAccess" to enable direct framebuffer access
  5296. 48h DWORD -> "DisableDirectAccess" to disable direct framebuffer access
  5297. 4Ch DWORD -> "BankSwitchCB" bank-switching callback function
  5298. (set by application, may simply point at 32-bit VBE 2.0 bank
  5299. switching entry point)
  5300. 50h WORD "VidMemSel" selector for video memory (must be set by app)
  5301. 52h WORD "IOPortsOff" offset of I/O ports table in context buffer
  5302. 54h WORD "IOMemoryOff" offset of I/O memory table in context buffer
  5303. 56h WORD "IOMemSel1" selector for first I/O memory area specified by
  5304. I/O memory table (must be set by application)
  5305. 58h WORD "IOMemSel2" selector for second I/O memory area
  5306. 5Ah WORD "IOMemSel3" selector for third I/O memory area
  5307. 5Ch WORD "IOMemSel4" selector for fourth I/O memory area
  5308. 5Eh N BYTEs device-specific state buffer
  5309. N WORDs I/O port access table (list of ports, last entry is FFFFh)
  5310. N DWORDs I/O memory access table (list of physical-address/length pairs,
  5311. last entry is FFFFFFFFh)
  5312. N BYTEs 32-bit code for VBE/AF v1.0P function
  5313. Notes: all function pointers are offsets into the 32-bit code within the
  5314. context buffer, and should be updated to point at the actual
  5315. functions after the application has copied the buffer from the
  5316. real-mode memory used for the interrupt call into its own flat-model
  5317. memory space
  5318. any functions which are not supported by the hardware have function
  5319. pointers which are set to 00000000h initially
  5320. (Table 00090)
  5321. Values for VBE/AF v1.0P color mixing mode:
  5322. 00h replace
  5323. 01h XOR with existing pixel
  5324. 02h OR with existing pixel
  5325. 03h AND with existing pixel
  5326. SeeAlso: #00091,#00090
  5327. (Table 00091)
  5328. Call VBE/AF v1.0P function "SetForeColor" with:
  5329. ES:EDI -> device context buffer (see #00089)
  5330. EAX = new foreground color (format varies by video mode)
  5331. BL = new foreground mixing mode (see #00090)
  5332. SeeAlso: #00089,#00092,#00107
  5333. (Table 00092)
  5334. Call VBE/AF v1.0P function "SetbackColor" with:
  5335. ES:EDI -> device context buffer (see #00089)
  5336. EAX = new background color (format varies by video mode)
  5337. BL = new background mixing mode (see #00090)
  5338. SeeAlso: #00089,#00091,#00093
  5339. (Table 00093)
  5340. Call VBE/AF v1.0P function "SetClipRect" with:
  5341. ES:EDI -> device context buffer (see #00089)
  5342. EAX = left clipping coordinate
  5343. EBX = top clipping coordinate
  5344. ECX = right clipping coordinate
  5345. EDX = bottom clipping coordinate
  5346. SeeAlso: #00089,#00092,#00094,#00107
  5347. (Table 00094)
  5348. Call VBE/AF v1.0P function "DrawScan" with:
  5349. ES:EDI -> device context buffer (see #00089)
  5350. EAX = X1 coordinate
  5351. EBX = Y coordinate
  5352. ECX = X2 coordinate
  5353. Desc: draw a solid horizontal line from (X1,Y) to (X2,Y) in the currently-
  5354. active foreground color and mix, omitting the pixel at the largest
  5355. X coordinate
  5356. SeeAlso: #00089,#00093,#00095,#00098,#00107
  5357. (Table 00095)
  5358. Call VBE/AF v1.0P function "DrawScanList" with:
  5359. ES:EDI -> device context buffer (see #00089)
  5360. EAX = Y coordinate of first line
  5361. EBX = length of scan list
  5362. DS:ESI -> scanline list X coordinates (2N WORDs)
  5363. Desc: draw multiple solid horizontal lines at successive Y coordinates,
  5364. using the currently-active foreground color and mix, omitting the
  5365. pixel at the largest X coordinate for each line
  5366. Note: the scanline list consists of pairs of X coordinates; because the
  5367. last pixel is omitted, a scanline will be skipped if X1==X2
  5368. SeeAlso: #00089,#00094,#00096,#00107
  5369. (Table 00096)
  5370. Call VBE/AF v1.0P function "DrawRect" with:
  5371. ES:EDI -> device context buffer (see #00089)
  5372. EAX = left coordinate
  5373. EBX = top coordinate
  5374. ECX = right coordinate
  5375. EDX = bottom coordinate
  5376. Desc: draw a solid rectangle in the currently-active foreground color and
  5377. mix, omitting the rightmost X coordinate and bottom-most scan line
  5378. Note: results are undefined if EAX>ECX or EBX>EDX; nothing will be drawn if
  5379. EAX=ECX or EBX=EDX
  5380. SeeAlso: #00089,#00094,#00095,#00097
  5381. (Table 00097)
  5382. Call VBE/AF v1.0P function "DrawLine" with:
  5383. ES:EDI -> device context buffer (see #00089)
  5384. EAX = ??? (specified this way in the draft documentation!)
  5385. EBX = ???
  5386. ECX = ???
  5387. EDX = ???
  5388. ESI = ???
  5389. Desc: draw a solid line in the currently-active foreground color and mix,
  5390. given the Bresenham parameters
  5391. SeeAlso: #00089,#00094,#00096,#00098
  5392. (Table 00098)
  5393. Call VBE/AF v1.0P function "DrawPattScan" with:
  5394. ES:EDI -> device context buffer (see #00089)
  5395. EAX = X1 coordinate
  5396. EBX = Y coordinate
  5397. ECX = X2 coordinate
  5398. DL = 8-bit stipple pattern
  5399. Desc: draw a patterned horizontal line from (X1,Y) to (X2,Y) in the
  5400. currently-active foreground color and mix, omitting the pixel at
  5401. the largest X coordinate
  5402. Note: for each pixel in the line, if DL bit (X mod 8) is set, the pixel is
  5403. drawn, and left untouched if the bit is clear
  5404. SeeAlso: #00089,#00096,#00097,#00094,#00099,#00107
  5405. (Table 00099)
  5406. Call VBE/AF v1.0P function "BitBlt" with:
  5407. ES:EDI -> device context buffer (see #00089)
  5408. DS:ESI -> BitBlt parameter block (see #00100)
  5409. BL = mix operation
  5410. 00h replace
  5411. 01h XOR
  5412. 02h OR
  5413. 03h AND
  5414. SeeAlso: #00089,#00094,#00098,#00101,#00107
  5415. Format of VBE/AF BitBlt parameter block:
  5416. Offset Size Description (Table 00100)
  5417. 00h WORD left coordinate of source rectangle
  5418. 02h WORD top coordinate of source rectangle
  5419. 04h WORD right coordinate of source rectangle
  5420. 06h WORD bottom coordinate of source rectangle
  5421. 08h WORD left coordinate of destination rectangle
  5422. 0Ah WORD top coordinate of destination rectangle
  5423. 0Ch BYTE horizontal direction: 00h = decrement X, 01h = increment X
  5424. 0Dh BYTE vertical direction: 00h = decrement Y, 01h = increment Y
  5425. Notes: the rightmost pixel(s) and bottom-most scan line are not copied
  5426. the horizontal/vertical direction flags are used to ensure correct
  5427. copies when the source and destination rectangles overlap
  5428. SeeAlso: #00099
  5429. (Table 00101)
  5430. Call VBE/AF v1.0P function "TransBitBlt" with:
  5431. ES:EDI -> device context buffer (see #00089)
  5432. DS:ESI -> BitBlt parameter block (see #00100)
  5433. BL = mix operation
  5434. 00h replace
  5435. 01h XOR
  5436. 02h OR
  5437. 03h AND
  5438. ECX = transparent color
  5439. Desc: copy a rectangular area from one location to another, treating pixels
  5440. with the specified color as transparent (leaving the destination
  5441. unchanged)
  5442. SeeAlso: #00089,#00099,#00102,#00107
  5443. (Table 00102)
  5444. Call VBE/AF v1.0P function "MonoBitBlt" with:
  5445. ES:EDI -> device context buffer (see #00089)
  5446. DS:ESI -> BitBlt parameter block (see #00100)
  5447. BL = mix operation
  5448. 00h replace
  5449. 01h XOR
  5450. 02h OR
  5451. 03h AND
  5452. BH = bit-plane from which to read
  5453. Desc: copy a rectangular area from one location to another, expanding a
  5454. single bit of each source pixel
  5455. SeeAlso: #00089,#00099,#00101
  5456. (Table 00103)
  5457. Call VBE/AF v1.0P function "SetCursor" with:
  5458. ES:EDI -> device context buffer (see #00089)
  5459. DS -> application's data segment
  5460. ESI -> 32x32 cursor data, in Windows 3.1 cursor-file format
  5461. (32 DWORDs of XOR mask followed by 32 DWORDs of AND mask)
  5462. SeeAlso: #00089,#00094,#00104,#00105
  5463. (Table 00104)
  5464. Call VBE/AF v1.0P function "SetCursorPos" with:
  5465. ES:EDI -> device context buffer (see #00089)
  5466. EAX = cursor X coordinate
  5467. EBX = cursor Y coordinate
  5468. CL = cursor's X hotspot
  5469. CH = cursor's Y hotspot
  5470. SeeAlso: #00089,#00103,#00105
  5471. (Table 00105)
  5472. Call VBE/AF v1.0P function "SetCursorColor" with:
  5473. ES:EDI -> device context buffer (see #00089)
  5474. AL = 8-bit color index, or color's Red value
  5475. AH = color's Green value (16-bpp, 24-bpp, 32-bpp modes)
  5476. BL = color's Blue value (16-bpp, 24-bpp, 32-bpp modes)
  5477. SeeAlso: #00089,#00103,#00104,#00106
  5478. (Table 00106)
  5479. Call VBE/AF v1.0P function "ShowCursor" with:
  5480. ES:EDI -> device context buffer (see #00089)
  5481. AL = new visibility (00h hide cursor, 01h show cursor)
  5482. SeeAlso: #00089,#00103,#00104,#00105
  5483. (Table 00107)
  5484. Call VBE/AF v1.0P function "WaitTillIdle" with:
  5485. ES:EDI -> device context buffer (see #00089)
  5486. Desc: pause until the hardware accelerator has completed all pending
  5487. operations
  5488. SeeAlso: #00089,#00108,#00109
  5489. (Table 00108)
  5490. Call VBE/AF v1.0P function "EnableDirectAccess" with:
  5491. ES:EDI -> device context buffer (see #00089)
  5492. SeeAlso: #00089,#00109,#00107,AX=4F05h,#00078,#00080
  5493. (Table 00109)
  5494. Call VBE/AF v1.0P function "DisableDirectAccess" with:
  5495. ES:EDI -> device context buffer (see #00089)
  5496. SeeAlso: #00089,#00108
  5497. --------V-104F0C-----------------------------
  5498. INT 10 - VESA SuperVGA BIOS - RESERVED FOR FUTURE SVGA FUNCTIONS
  5499. AX = 4F0Ch-4F0Fh
  5500. SeeAlso: AX=4F00h
  5501. --------V-104F0B-----------------------------
  5502. INT 10 - Diamond Viper V330 - ???
  5503. AX = 4F0Bh
  5504. ECX = ???
  5505. ???
  5506. Return: AL = 4Fh if function supported
  5507. AH = status
  5508. 00h successful
  5509. ECX = ???
  5510. ???
  5511. 01h failed
  5512. Note: in BIOS v1.62, ECX is in multiples of 10000 (decimal) for both input
  5513. and output, and this function never fails
  5514. --------p-104F10BL00-------------------------
  5515. INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET CAPABILITIES
  5516. AX = 4F10h
  5517. BL = 00h
  5518. ES:DI = 0000h:0000h (reserved for future use as pointer to info block)
  5519. Return: AL = 4Fh if function supported (installed)
  5520. AH = call status
  5521. 00h successful
  5522. else failed
  5523. ---if successful---
  5524. BL = VBE/PM version (bits 7-4: major, bits 3-0: minor)
  5525. BH = supported states (see #00110)
  5526. ES:DI unchanged
  5527. Index: installation check;VESA VBE/Power Management|VESA DPMS
  5528. SeeAlso: AX=4F10h/BL=01h,AX=4F10h/BL=02h
  5529. Bitfields for VESA VBE/PM supported power states:
  5530. Bit(s) Description (Table 00110)
  5531. 0 standby
  5532. 1 suspend
  5533. 2 off
  5534. 3 reduced on
  5535. --------p-104F10BL01-------------------------
  5536. INT 10 - VESA VBE/PM (Power Management) v1.0+ - SET DISPLAY POWER STATE
  5537. AX = 4F10h
  5538. BL = 01h
  5539. BH = new state (see #00111)
  5540. Return: AL = 4Fh if function supported
  5541. AH = call status
  5542. 00h successful
  5543. else failed
  5544. SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=02h,AX=A00Ch
  5545. (Table 00111)
  5546. Values for VESA VBE/PM power state:
  5547. 00h On
  5548. 01h standby
  5549. 02h suspend
  5550. 04h Off
  5551. 08h reduced On (for flat screens)
  5552. --------p-104F10BL02-------------------------
  5553. INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET DISPLAY POWER STATE
  5554. AX = 4F10h
  5555. BL = 02h
  5556. Return: AL = 4Fh if function supported
  5557. AH = call status
  5558. 00h successful
  5559. BH = current power state (see #00111)
  5560. else failed
  5561. SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=01h,AX=A00Dh
  5562. --------V-104F11-----------------------------
  5563. INT 10 - VESA VBE/FP (Flat Panel Interface) - API
  5564. AX = 4F11h
  5565. BL = function
  5566. 00h installation check / get capabilities
  5567. other registers vary by function
  5568. Return: varies by function
  5569. --------V-104F12-----------------------------
  5570. INT 10 - VESA VBE/CI (Cursor Interface) - API
  5571. AX = 4F12h
  5572. BL = function
  5573. other registers vary by function
  5574. Return: varies by function
  5575. SeeAlso: AX=4F4Dh
  5576. --------s-104F13BX0000-----------------------
  5577. INT 10 - VESA VBE/AI (Audio Interface) - INSTALLATION CHECK
  5578. AX = 4F13h
  5579. BX = 0000h
  5580. Return: AL = 4Fh if function supported
  5581. AH = status
  5582. 00h successful
  5583. BX = version (0010h for 1.00 -- note nonstandard value!)
  5584. 01h failed
  5585. SeeAlso: AX=4F13h/BX=0001h,AX=4F13h/BX=0005h
  5586. --------s-104F13BX0001-----------------------
  5587. INT 10 - VESA VBE/AI (Audio Interface) - LOCATE DEVICE
  5588. AX = 4F13h
  5589. BX = 0001h
  5590. CX = 0000h ???
  5591. DX = type of device
  5592. 0001h Wave device
  5593. 0002h MIDI device
  5594. 0003h Volume device
  5595. Return: AL = 4Fh if function supported
  5596. AH = status
  5597. 00h successful
  5598. CX = handle [returned 1 for DX=1 and 3, and 2 for DX=2]
  5599. 01h failed
  5600. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h
  5601. --------s-104F13BX0002-----------------------
  5602. INT 10 - VESA VBE/AI (Audio Interface) - QUERY DEVICE
  5603. AX = 4F13h
  5604. BX = 0002h
  5605. CX = handle
  5606. DX = query
  5607. 0001h return length of GeneralDeviceClass
  5608. 0002h return copy of GeneralDeviceClass (see #00112)
  5609. 0003h return length of Volume Info Structure
  5610. 0004h return copy of Volume Info Structure (see #00122)
  5611. 0005h return length of Volume Services Structure
  5612. 0006h return copy of Volume Services Structure (see #00124)
  5613. 0007h-000Fh reserved
  5614. 0010h-FFFFh device-specific
  5615. SI:DI -> buffer (functions 0002h,0004h,0006h)
  5616. Return: AL = 4Fh if function supported
  5617. AH = status
  5618. 00h successful
  5619. SI:DI = length (functions 1,3,5)
  5620. SI:DI buffer filled (functions 2,4,6)
  5621. 01h failed
  5622. Note: functions 0003h to 0006h are only supported for the Volume device
  5623. Format of GeneralDeviceClass structure:
  5624. Offset Size Description (Table 00112)
  5625. 00h 4 BYTEs name of the structure ("GENI")
  5626. 04h DWORD structure length
  5627. 08h WORD type of device (1=Wave, 2=MIDI)
  5628. 0Ah WORD version of VESA driver support (0100h for 1.00)
  5629. 10h var for CX=handle for Wave device:
  5630. Wave Info structure (see #00113)
  5631. some bytes ???
  5632. for CX=handle for MIDI device:
  5633. MIDI Info Structure (see #00118)
  5634. first 8 bytes of MIDI Service Structure ???
  5635. SeeAlso: #00122,#00124
  5636. Format of WAVE Info Structure:
  5637. Offset Size Description (Table 00113)
  5638. 00h 4 BYTEs name of the structure ("WAVI")
  5639. 04h DWORD structure length [0000007Eh]
  5640. 08h DWORD driver software version [00000003h]
  5641. 0Ch 32 BYTEs vendor name, etc. (ASCIZ string)
  5642. 2Ch 32 BYTEs vendor product name
  5643. 4Ch 32 BYTEs vendor chip/hardware description
  5644. 6Ch BYTE installed board number
  5645. 6Dh 3 BYTEs unused data
  5646. 70h DWORD feature bits (see #00114)
  5647. 74h WORD user determined preference field
  5648. 76h WORD memory required for driver use [0200h]
  5649. 78h WORD number of timer tick callbacks per second [0000h]
  5650. 7Ah WORD channels: 1 = mono, 2 = stereo
  5651. stereo is assumed to be interleaved data
  5652. 7Ch WORD bitfield of max sample sizes (see #00115)
  5653. SeeAlso: #00118
  5654. Bitfields for Wave feature bits:
  5655. Bit(s) Description (Table 00114)
  5656. 0 8000hz Mono Playback
  5657. 1 8000hz Mono Record
  5658. 2 8000hz Stereo Record
  5659. 3 8000hz Stereo Playback
  5660. 4 8000hz Full Duplex Play/Record
  5661. 5 11025hz Mono Playback
  5662. 6 11025hz Mono Record
  5663. 7 11025hz Stereo Record
  5664. 8 11025hz Stereo Playback
  5665. 9 11025hz Full Duplex Play/Record
  5666. 10 22050hz Mono Playback
  5667. 11 22050hz Mono Record
  5668. 12 22050hz Stereo Record
  5669. 13 22050hz Stereo Playback
  5670. 14 22050hz Full Duplex Play/Record
  5671. 15 44100hz Mono Playback
  5672. 16 44100hz Mono Record
  5673. 17 44100hz Stereo Record
  5674. 18 44100hz Stereo Playback
  5675. 19 44100hz Full Duplex Play/Record
  5676. 20-26 reserved (0)
  5677. 27 driver must pre-handle the data
  5678. 28 Variable Sample mono playback
  5679. 29 Variable Sample stereo playback
  5680. 30 Variable Sample mono record
  5681. 31 Variable Sample stereo record
  5682. (Table 00115)
  5683. Values for Sample data size:
  5684. 01h 8bit play
  5685. 02h 16bit play
  5686. 10h 8bit record
  5687. 20h 16bit record
  5688. Format of WAVE Audio Services structure:
  5689. Offset Size Description (Table 00116)
  5690. 00h 4 BYTEs name of the structure
  5691. 04h DWORD structure length
  5692. 08h 16 BYTEs for future expansion
  5693. ---entry points (details???)---
  5694. 18h DWORD DeviceCheck
  5695. 11h compression (see also #00117)
  5696. 12h driver state
  5697. 13h get current pos
  5698. 14h sample rate
  5699. 15h set preference
  5700. 16h get DMA,IRQ
  5701. 17h get IO address
  5702. 18h get mem address
  5703. 19h get mem free
  5704. 1Ah full duplex
  5705. 1Bh get block size
  5706. 1Ch get PCM format
  5707. 1Dh enable PCM format
  5708. 80h-.. vendors can add DevChks above 0x80
  5709. 1Ch DWORD PCMInfo
  5710. 20h DWORD PlayBlock
  5711. 24h DWORD PlayCont
  5712. 28h DWORD RecordBlock
  5713. 2Ch DWORD RecordCont
  5714. 30h DWORD PauseIO
  5715. 34h DWORD ResumeIO
  5716. 38h DWORD StopIO
  5717. 3Ch DWORD WavePrepare
  5718. 40h DWORD WaveRegister
  5719. 44h DWORD GetLastError
  5720. 01h unsupported feature/function
  5721. 02h bad sample rate
  5722. 03h bad block length
  5723. 04h bad block address
  5724. 05h app. missed an IRQ
  5725. 06h don't understand the PCM size/format
  5726. 80h-.. vendors specific errors
  5727. 48h DWORD TimerTick
  5728. 4Ch DWORD ApplPSyncCB: CallBack: play filled in by the app
  5729. 50h DWORD ApplRSyncCB: CallBack: rec filled in by the app
  5730. SeeAlso: #00120,#00124
  5731. (Table 00117)
  5732. Values for type of compression:
  5733. 01h IMA play
  5734. 02h ALAW play
  5735. 03h ULAW play
  5736. 11h IMA record
  5737. 12h ALAW record
  5738. 13h ULAW record
  5739. Format of MIDI Info Structure:
  5740. Offset Size Description (Table 00118)
  5741. 00h 4 BYTEs name of the structure ("MIDI")
  5742. 04h DWORD structure length
  5743. 08h DWORD driver software version [00000003h]
  5744. 0Ch 32 BYTEs vendor name, etc. (ASCIZ string)
  5745. 2Ch 32 BYTEs vendor product name
  5746. 4Ch 32 BYTEs vendor chip/hardware description
  5747. 6Ch BYTE installed board number
  5748. 6Dh 3 BYTEs unused data
  5749. 70h 14 BYTEs the patch library file name [OPL2.BNK 00..]
  5750. 7Eh DWORD feature bits (see #00119)
  5751. 80h WORD user determined preference field
  5752. 82h WORD memory required for driver use
  5753. 84h WORD # of timer tick callbacks per second
  5754. 86h WORD max # of tones (voices, partials)
  5755. SeeAlso: #00112,#00120,#00122
  5756. Bitfields for MIDI feature bits:
  5757. Bit(s) Description (Table 00119)
  5758. 0-3 reserved for GM extensions
  5759. 4 Transmitter/Receiver only
  5760. 5 Patches preloaded
  5761. 6 MIDI receive has time stamp
  5762. 8 MIDI interrupt driven input supported
  5763. 9 MIDI polled input supported
  5764. 10 MIDI remote patches supported
  5765. Format of MIDI Service structure:
  5766. Offset Size Description (Table 00120)
  5767. 00h 4 BYTEs name of the structure ("MIDS")
  5768. 04h DWORD structure length
  5769. 08h 16 WORDs patches loaded table bit field
  5770. 28h 16 BYTEs for future expansion
  5771. ---entry points (details???)---
  5772. 38h DWORD device check
  5773. 11h return available tones
  5774. 12h return TRUE/FALSE if patch is understood
  5775. 13h set preference
  5776. 14h allow/disallow voice stealing
  5777. 15h get FIFO sizes
  5778. 16h get DMA,IRQ
  5779. 17h get IO address
  5780. 18h get mem address
  5781. 19h get mem free
  5782. 80h-.. vendors can add DevChks above 0x80
  5783. 3Ch DWORD global reset
  5784. 40h DWORD MIDI msg
  5785. 44h DWORD poll MIDI
  5786. 48h DWORD preload patch
  5787. 4Ch DWORD unload patch
  5788. 50h DWORD timer tick
  5789. 54h DWORD get last error
  5790. 01h unsupported feature/function
  5791. 02h unknown patch type (see #00121)
  5792. 03h all tones are used
  5793. 04h messages are out of sync
  5794. 05h an incoming patch was incomplete
  5795. 06h an incoming patch couldn't be stored
  5796. 07h had to drop an incoming byte
  5797. 08h driver is failing a patch download
  5798. 80h-.. vendors specific errors
  5799. 58h DWORD Patch Block free callback
  5800. 5Ch DWORD MIDI byte avail. callback
  5801. SeeAlso: #00116,#00124
  5802. (Table 00121)
  5803. Values for MIDI Registered Patch Types:
  5804. 10h OPL2
  5805. 11h OPL3
  5806. Format of Volume Info Structure:
  5807. Offset Size Description (Table 00122)
  5808. 00h 4 BYTEs name of the structure ("VOLI")
  5809. 04h DWORD structure length (00000092h)
  5810. 08h DWORD driver software version [00000001h]
  5811. 0Ch 32 BYTEs vendor name, etc. (ASCIZ string)
  5812. 2Ch 32 BYTEs vendor product name
  5813. 4Ch 32 BYTEs vendor chip/hardware description
  5814. 6Ch BYTE installed board number (0 for 1st/only board)
  5815. 6Dh 3 BYTEs unused data (0)
  5816. 70h 24 BYTEs text name of the mixer channel
  5817. 88h DWORD features bits (see #00123)
  5818. 8Ch WORD minimum volume setting
  5819. 8Eh WORD maximum volume setting
  5820. 90h WORD attenuation/gain crossover
  5821. SeeAlso: #00112,#00124
  5822. Bitfields for Volume feature bits:
  5823. Bit(s) Description (Table 00123)
  5824. 0 Stereo Volume control available
  5825. 2 Low Pass Filter is available
  5826. 3 High Pass Filter is available
  5827. 4 Parametric Tone Control is available
  5828. 5 selectable output paths
  5829. 8 Azimuth Field positioning supported
  5830. 9 Phi Field positioning supported
  5831. 10-30 unused???
  5832. 31 Master Volume device
  5833. Format of Volume Services Structure:
  5834. Offset Size Description (Table 00124)
  5835. 00h 4 BYTEs name of the structure ("VOLS")
  5836. 04h DWORD structure length (00000038h)
  5837. 08h 16 BYTEs 16 bytes for future expansion (0)
  5838. ---entry points (details???)---
  5839. 18h DWORD device check
  5840. 0011h filter range
  5841. 0012h filter setting
  5842. 0013h filter current
  5843. 0014h tone range
  5844. 0015h tone setting
  5845. 0016h tone current
  5846. 0017h path
  5847. 0018h get IO address
  5848. 0080h-.. vendors can add DevChks above 0x80
  5849. 1Ch DWORD set vol to an absolute setting
  5850. 01h User master volume setting
  5851. 02h application master volume setting
  5852. 20h DWORD set 3D volume
  5853. 24h DWORD tone control
  5854. 28h DWORD filter control
  5855. 2Ch DWORD output path
  5856. 30h DWORD reset channel
  5857. 34h DWORD get last error
  5858. 01h unsupported feature/function
  5859. 02h out of range parameter value
  5860. 80h+ vendor-specific errors
  5861. SeeAlso: #00116,#00120
  5862. --------s-104F13BX0003-----------------------
  5863. INT 10 - VESA VBE/AI (Audio Interface) - OPEN DEVICE
  5864. AX = 4F13h
  5865. BX = 0003h
  5866. CX = handle
  5867. DX = API set (16/32-bit)
  5868. SI = segment ???
  5869. Return: AL = 4Fh if function supported
  5870. AH = status
  5871. 00h successful
  5872. SI:CX -> memory ???
  5873. 01h failed
  5874. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h,AX=4F13h/BX=0004h
  5875. --------s-104F13BX0004-----------------------
  5876. INT 10 - VESA VBE/AI (Audio Interface) - CLOSE DEVICE
  5877. AX = 4F13h
  5878. BX = 0004h
  5879. CX = handle
  5880. Return: AL = 4Fh if function supported
  5881. AH = status
  5882. 00h successful
  5883. 01h failed
  5884. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0003h,AX=4F13h/BX=0005h
  5885. --------s-104F13BX0005-----------------------
  5886. INT 10 - VESA VBE/AI (Audio Interface) - UNINSTALL DRIVER
  5887. AX = 4F13h
  5888. BX = 0005h
  5889. Return: AL = 4Fh if function supported
  5890. AH = status
  5891. 00h successful
  5892. 01h failed
  5893. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0006h
  5894. --------s-104F13BX0006-----------------------
  5895. INT 10 - VESA VBE/AI (Audio Interface) - DRIVER CHAIN/UNCHAIN
  5896. AX = 4F13h
  5897. BX = 0006h
  5898. Return: AL = 4Fh if function supported
  5899. AH = status
  5900. 00h successful
  5901. 01h failed
  5902. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0005h
  5903. ----------104F14-----------------------------
  5904. INT 10 - VESA OEM Extensions - API
  5905. AX = 4F14h
  5906. BL = function
  5907. 00h installation check / get capabilities
  5908. other registers vary by function
  5909. Return: varies by function
  5910. Note: this function is provided for OEMs to implement system-specific
  5911. functionality in a VESA-compatible manner
  5912. ----------104F14-----------------------------
  5913. INT 10 - VESA OEM Extensions - Matrox Millenium (BIOS v2.1)
  5914. AX = 4F14h
  5915. BL = function
  5916. 00h installation check / get capabilities
  5917. ES:DI -> 256-byte buffer for Matrox-specific information
  5918. (see #00125)
  5919. Return: ES:DI buffer filled
  5920. 01h read/write MGA indexed data register
  5921. BH = direction (00h = write, else read)
  5922. CL = register number (80h for most-recently used register)
  5923. CH = new value, if writing
  5924. Return: CH = current value, if reading
  5925. 02h read/write register in MGA control space
  5926. BH = direction and size
  5927. bit 4: read register instead of writing
  5928. bits 1-0: data size (00 = BYTE, 01 = WORD, 10 = DWORD)
  5929. SI = register address
  5930. CL/CX/ECX = new value if writing
  5931. Return: CL/CX/ECX = current value if reading
  5932. 03h read PINS byte
  5933. SI = offset of byte within PINS data (see #00126)
  5934. Return: CL = value of specified PINS byte
  5935. 04h ??? (related to PLL programming)
  5936. DX = ???
  5937. Return: CL,EDX destroyed
  5938. 05h read BIOS byte
  5939. SI = offset of byte relative to start of BIOS image
  5940. Return: CL = specified byte
  5941. else
  5942. Return: AX = FFFFh
  5943. Return: AL = 4Fh if function supported
  5944. AH = status
  5945. 00h successful
  5946. 01h failed
  5947. Note: most of this info is from http:\\grafi.ii.pw.edu.pl\gbm\matrox
  5948. SeeAlso: MEM C000h:7FFCh"Matrox"
  5949. Format of Matrox-specific VESA extensions information:
  5950. Offset Size Description (Table 00125)
  5951. 00h 7 BYTEs signature "VBE/MGA"
  5952. 07h 10 BYTEs ??? (01h 01h 00h 00h 00h 00h 00h 00h 00h 07h)
  5953. 11h WORD BIOS version (high byte = major, low byte = one-digit minor)
  5954. 13h DWORD -> manufacturer name (ASCIZ "Matrox")
  5955. 17h DWORD -> ASCIZ card name
  5956. 1Bh DWORD -> ??? ASCIZ string (empty string on card examined)
  5957. 1Fh DWORD -> ASCIZ vendor name
  5958. 23h DWORD -> ASCIZ BIOS file base name
  5959. 27h DWORD -> PINS
  5960. 2Bh WORD video memory size in 64K units
  5961. 2Dh DWORD linear address of linear frame buffer
  5962. 31h DWORD linear address of MGA control aperture
  5963. 35h WORD PCI bus/device for card???
  5964. 37h 201 BYTEs unused??? (cleared to 00h)
  5965. Format of Matrox PINS data (version 3.0):
  5966. Offset Size Description (Table 00126)
  5967. 00h 2 BYTEs signature ".A" (2Eh 41h)
  5968. 02h BYTE structure length (40h for v3.0)
  5969. 03h BYTE ???
  5970. 04h WORD PINS version (high byte = major, low byte = minor)
  5971. 06h WORD date last programmed
  5972. 08h WORD number of times programmed
  5973. 0Ah WORD flags
  5974. 0Ch 8 BYTEs ASCII serial number, three letters + five digits
  5975. 14h 8 BYTEs ???
  5976. 1Ch 4 BYTEs ASCII card version
  5977. 20h DWORD PCB revision
  5978. 24h BYTE maximum RAMDAC frequency in MHz (less 100)
  5979. 25h BYTE maximum RAMDAC frequency???
  5980. 26h BYTE maximum RAMDAc frequency???
  5981. 27h BYTE ???
  5982. 28h BYTE ??? timing data?
  5983. 29h BYTE ???
  5984. 2Ah BYTE ???
  5985. 2Bh BYTE ???
  5986. 2Ch BYTE ???
  5987. 2Dh BYTE ???
  5988. 2Eh BYTE ???
  5989. 2Fh BYTE ???
  5990. 30h 4 BYTEs ???
  5991. 34h BYTE ???
  5992. 35h BYTE ???
  5993. 36h BYTE ???
  5994. 37h BYTE memory size in 64K units
  5995. 38h BYTE ???
  5996. 39h BYTE ???
  5997. 3Ah BYTE ???
  5998. 3Bh BYTE ???
  5999. 3Ch BYTE ???
  6000. 3Dh BYTE ???
  6001. 3Eh BYTE ???
  6002. 3Fh BYTE checksum (to make sum of all bytes MOD 256 == 00h)
  6003. --------V-104F15BL00-------------------------
  6004. INT 10 - VESA VBE/DC (Display Data Channel) - INSTALLATION CHECK / CAPABILITIES
  6005. AX = 4F15h
  6006. BL = 00h
  6007. Return: AL = 4Fh if function supported
  6008. AH = status
  6009. 00h successful
  6010. BX = ???
  6011. 01h failed
  6012. ???
  6013. SeeAlso: AX=4F15h/BL=01h,AX=4F15h/BL=02h
  6014. --------V-104F15BL01-------------------------
  6015. INT 10 - VESA VBE/DC (Display Data Channel) - READ EDID
  6016. AX = 4F15h
  6017. BL = 01h
  6018. CX = 0000h
  6019. DX = 0000h
  6020. ES:DI -> 128-byte buffer for EDID record (see #00127)
  6021. Return: AL = 4Fh if function supported
  6022. AH = status
  6023. 00h successful
  6024. ES:DI buffer filled
  6025. 01h failed (e.g. non-DDC monitor)
  6026. SeeAlso: AX=4F15h/BL=00h,AX=4F15h/BL=02h,I2C A0h"DDC"
  6027. Format of VESA EDID record:
  6028. Offset Size Description (Table 00127)
  6029. 00h 8 BYTEs padding (all FFh, or 00h FFh..FFh 00h)
  6030. 08h WORD big-endian manufacturer ID (see #00136)
  6031. bits 14-10: first letter (01h='A', 02h='B', etc.)
  6032. bits 9-5: second letter
  6033. bits 4-0: third letter
  6034. 0Ah WORD EDID ID code -- identifies monitor model
  6035. 0Ch DWORD serial number or FFFFFFFFh
  6036. for "MAG", subtract 7000000 to get actual serial number
  6037. for "OQI", subtract 456150000
  6038. for "PHL", subtract ???
  6039. for "VSC", subtract 640000000
  6040. 10h BYTE week number of manufacture
  6041. 11h BYTE manufacture year - 1990
  6042. 12h BYTE EDID version
  6043. 13h BYTE EDID revision
  6044. 14h BYTE video input type (see #00129)
  6045. 15h BYTE maximum horizontal size in cm
  6046. 16h BYTE maximum vertical size in cm
  6047. 17h BYTE gamma factor (gamma = 1.0 + factor/100, so max = 3.55)
  6048. 18h BYTE DPMS flags (see #00128)
  6049. 19h BYTE chroma information: green X'/Y' and red X'/Y'
  6050. 1Ah BYTE chroma information: white X'/Y' and blue X'/Y'
  6051. 1Bh BYTE chroma information: red Y
  6052. 1Ch BYTE chroma information: red X
  6053. 1Dh BYTE chroma information: green Y
  6054. 1Eh BYTE chroma information: green X
  6055. 1Fh BYTE chroma information: blue Y
  6056. 20h BYTE chroma information: blue X
  6057. 21h BYTE chroma information: white Y
  6058. 22h BYTE chroma information: white X
  6059. 23h BYTE established timings 1 (see #00130)
  6060. 24h BYTE established timings 2 (see #00131)
  6061. 25h BYTE manufacturer's reserved timing or 00h for none
  6062. bit 7: 1152x870 @ 75 Hz (Mac II, Apple)
  6063. 26h 8 WORDs standard timing identification
  6064. resolution (low byte) and vertical frequency (high byte) for
  6065. each of eight modes (see #00132)
  6066. X resolution = (lowbyte + 31) * 8
  6067. 36h 18 BYTEs detailed timing description #1 (see #00133)
  6068. (v1.1) alternately, text identification (see #00135)
  6069. 48h 18 BYTEs detailed timing description #2
  6070. (v1.1) alternately, text identification (see #00135)
  6071. 5Ah 18 BYTEs detailed timing description #3
  6072. (v1.1) alternately, text identification (see #00135)
  6073. 6Ch 18 BYTEs detailed timing description #4
  6074. (v1.1) alternately, text identification (see #00135)
  6075. 7Eh BYTE unused???
  6076. 7Fh BYTE checksum
  6077. (radix-complement: 256-low byte of 16-bit sum of 00h-7Eh)
  6078. Bitfields for DPMS EDID flags:
  6079. Bit(s) Description (Table 00128)
  6080. 2-0 unused???
  6081. 3 display type
  6082. =0 non-RGB multicolor
  6083. =1 RGB color
  6084. 4 unused???
  6085. 5 Active Off supported
  6086. 6 Suspend supported
  6087. 7 Standby supported
  6088. SeeAlso: #00127
  6089. Bitfields for DPMS input signal type:
  6090. Bit(s) Description (Table 00129)
  6091. 0 separate sync
  6092. 1 composite sync
  6093. 2 sync on green
  6094. 4-3 unused???
  6095. 6-5 voltage level
  6096. 00 0.700V/0.300V (1.00 Vp-p)
  6097. 01 0.714V/0.286V
  6098. 10 0.100V/0.400V
  6099. 11 reserved
  6100. 7 =1 digital signal, =0 analog
  6101. SeeAlso: #00127
  6102. Bitfields for DPMS established timings 1:
  6103. Bit(s) Description (Table 00130)
  6104. 0 720x400 @ 70 Hz (VGA 640x400, IBM)
  6105. 1 720x400 @ 88 Hz (XGA2)
  6106. 2 640x480 @ 60 Hz (VGA)
  6107. 3 640x480 @ 67 Hz (Mac II, Apple)
  6108. 4 640x480 @ 72 Hz (VESA)
  6109. 5 640x480 @ 75 Hz (VESA)
  6110. 6 800x600 @ 56 Hz (VESA)
  6111. 7 800x600 @ 60 Hz (VESA)
  6112. SeeAlso: #00127,#00131
  6113. Bitfields for DPMS established timings 2:
  6114. Bit(s) Description (Table 00131)
  6115. 0 800x600 @ 72 Hz (VESA)
  6116. 1 800x600 @ 75 Hz (VESA)
  6117. 2 832x624 @ 75 Hz (Mac II)
  6118. 3 1024x768 @ 87 Hz interlaced (8514A)
  6119. 4 1024x768 @ 60 Hz (VESA)
  6120. 5 1024x768 @ 70 Hz (VESA)
  6121. 6 1024x768 @ 75 Hz (VESA)
  6122. 7 1280x1024 @ 75 Hz (VESA)
  6123. SeeAlso: #00127,#00130
  6124. Bitfields for DPMS standard timing information:
  6125. Bit(s) Description (Table 00132)
  6126. 5-0 vertical refresh frequency - 60 (Hz)
  6127. 7-6 aspect ratio (Y resolution = X resolution * aspect ratio)
  6128. 00 ???
  6129. 01 0.75
  6130. 10 0.8
  6131. 11 0.5625
  6132. Note: if both bytes of the timing are 00h or 01h, then the Standard Timing
  6133. is "None"
  6134. SeeAlso: #00127
  6135. Format of Detailed Timing Description:
  6136. Offset Size Description (Table 00133)
  6137. 00h BYTE horizontal frequency in kHz (if 00h, may be text)(see #00135)
  6138. 01h BYTE vertical frequency in Hz
  6139. 02h BYTE horizontal active time (pixels) and X resolution
  6140. 03h BYTE horizontal blanking time (pixels)
  6141. 04h BYTE horizontal active time 2 / horizontal blanking time 2
  6142. 05h BYTE vertical active time (lines) and Y resolution
  6143. 06h BYTE vertical blanking time (lines)
  6144. 07h BYTE vertical active time 2 / vertical blanking time 2
  6145. 08h BYTE horizontal sync offset (pixels)
  6146. 09h BYTE horizontal sync pulsewidth (pixels)
  6147. 0Ah BYTE vertical sync offset / vertical sync pulsewidth
  6148. 0Bh BYTE vertical/horizontal sync offset 2 / vert/hor. sync pulsewidth 2
  6149. 0Ch BYTE horizontal image size (mm)
  6150. 0Dh BYTE vertical image size (mm)
  6151. 0Eh BYTE horizontal image size 2 / vertical image size 2
  6152. 0Fh BYTE horizontal border (pixels)
  6153. 10h BYTE vertical border (lines)
  6154. 11h BYTE type of display (see #00134)
  6155. SeeAlso: #00127,#00135
  6156. Bitfields for EDID detailed display type:
  6157. Bit(s) Description (Table 00134)
  6158. 7 interlaced
  6159. 6-5 stereo mode
  6160. 00 normal display (no stereo)
  6161. 01 stereo, right stereo sync high
  6162. 10 stereo, left stereo sync high
  6163. 11 undefined
  6164. 4-3 sync type
  6165. 00 sync analog composite
  6166. 01 sync bipolar analog composite
  6167. 10 sync digital composite
  6168. 11 sync digital separate
  6169. ---sync digital separate---
  6170. 2 vertical sync polarity (0 = negative, 1 = positive)
  6171. 1 horizontal sync polarity (0 = negative, 1 = positive)
  6172. ---other sync types---
  6173. 2 serrate
  6174. 1 sync location (0 = on green, 1 = on RGB)
  6175. ------
  6176. 0 not used???
  6177. SeeAlso: #00133
  6178. Format of EDID Text Identification Strings:
  6179. Offset Size Description (Table 00135)
  6180. 00h 3 BYTEs 00h 00h 00h (to distinguish from detailed timing description)
  6181. 03h BYTE text identifier
  6182. FFh serial number
  6183. FEh vendor name
  6184. FDh vertical/horizontal frequency range
  6185. FCh model name
  6186. ---frequency range---
  6187. 04h BYTE 00h ???
  6188. 05h BYTE minimum vertical refresh frequency in Hz
  6189. 06h BYTE maximum vertical refresh
  6190. 07h BYTE minimum horizontal frequency in kHz
  6191. 08h BYTE maximum horizontal frequency
  6192. 09h BYTE FFh ???
  6193. ---other---
  6194. 04h 14 BYTEs text, may be terminated with either a NUL (00h) or LF (0Ah)
  6195. SeeAlso: #00132
  6196. (Table 00136)
  6197. Values for manufacturer ID:
  6198. "AOC" AOC International (USA) Ltd. (see #00137)
  6199. "API" Acer (see #00138)
  6200. "APP" Apple Computer, Inc. (see #00139)
  6201. "AST" AST Research (see #00140)
  6202. "CPL" ALFA (see #00141)
  6203. "CPQ" COMPAQ (see #00142)
  6204. "CTX" CTX - Chuntex Electronic (see #00143)
  6205. "DEC" Digital Equipment Corporation (see #00144)
  6206. "DEL" Dell Computer Corp. (see #00145)
  6207. "DPC" Delta Electronics, Inc. (see #00146)
  6208. "DWE" Daewoo (see #00147)
  6209. "ECS" ELITEGROUP Computer Systems (see #00148)
  6210. "EIZ" EIZO (see #00149)
  6211. "GSM" LG Electronics Inc. (see #00158)
  6212. "HEI" Hyundai Electronics Industries Co., Ltd. (see #00150)
  6213. "HIT" Hitachi (see #00151)
  6214. "HSL" Hansol Electronics (see #00152)
  6215. "HTC" Hitachi Ltd. (see #00153)
  6216. "HWP" Hewlett Packard (see #00154)
  6217. "IBM" IBM PC Company (see #00155)
  6218. "ICL" Fujitsu ICL (see #00156)
  6219. "IVM" Idek Iiyama North America, Inc. (see #00157)
  6220. "LKM" AZALEA
  6221. "LNK" LINK Technologies, Inc.
  6222. "MAG" MAG Technology Co., Ltd. (see #00159)
  6223. "MAX" Maxdata Computer GmbH
  6224. "MEI" Panasonic Comm. & Systems Co. (see #00168)
  6225. "MEL" Mitsubishi Electronics (see #00160)
  6226. "MIR" miro Computer Products AG (see #00161)
  6227. "MTC" MITAC
  6228. "NAN" NANAO (see #00162)
  6229. "NEC" NEC Technologies, Inc. (see #00163)
  6230. "NOK" Nokia (see #00164)
  6231. "OQI" OPTIQUEST (see #00165)
  6232. "PGS" Princeton Graphic Systems (see #00166)
  6233. "PHL" Philips Consumer Electronics Co. (see #00167)
  6234. "REL" Relisys
  6235. "SAM" Samsung (see #00169)
  6236. "SDI" Samtron (see #00170)
  6237. "SNI" Siemens Nixdorf
  6238. "SNY" Sony Corporation
  6239. "TAT" Tatung Co. of America, Inc. (see #00171)
  6240. "TRL" Royal Information Company (see #00172)
  6241. "UNM" Unisys Corporation
  6242. "VSC" ViewSonic Corporation (see #00173)
  6243. "___" Targa
  6244. SeeAlso: #00127
  6245. (Table 00137)
  6246. Values for AOC monitor EDID:
  6247. A566h AOC SPECTRUM 5Nlr
  6248. A782h AOC SPECTRUM 7Nlr
  6249. D350h AOC SPECTRUM 4V, 4VA, 4Vlr, 4VlrA
  6250. D566h AOC SPECTRUM 5Vlr, 5VlrA
  6251. E570h AOC SPECTRUM 5Glr
  6252. E750h AOC SPECTRUM 7DlrA
  6253. SeeAlso: #00136,#00138
  6254. (Table 00138)
  6255. Values for Acer monitor EDID:
  6256. 0037h AcerView 55
  6257. 424Ch AcerView 76ie
  6258. 440Bh AcerView 11D
  6259. 4421h AcerView 33D
  6260. 4522h AcerView 7134e
  6261. 4536h AcerView 7154e
  6262. 4538h AcerView 7156e
  6263. 454Ch AcerView 7176ie
  6264. 454Eh AcerView 7178ie
  6265. 4938h AcerView 7156i
  6266. 494Ch AcerView 76i
  6267. 494Eh AcerView 78i
  6268. 4962h AcerView 98i
  6269. 4C21h AcerView 33DL
  6270. 4C22h AcerView 34TL
  6271. 4C37h AcerView 55L
  6272. 4C38h AcerView 56L
  6273. 4E4Ch AcerView 76N
  6274. 5321h AcerView 7133s
  6275. 5322h AcerView 7134s
  6276. 5336h AcerView 7154s
  6277. 5338h AcerView 7156s, 7156is
  6278. 534Ch AcerView 7176is
  6279. 5422h AcerView 34T
  6280. SeeAlso: #00136,#00137,#00140
  6281. (Table 00139)
  6282. Values for Apple Computer monitor EDID:
  6283. 0352h AppleVision 850
  6284. SeeAlso: #00136
  6285. (Table 00140)
  6286. Values for AST monitor EDID:
  6287. 8001h ASTVision 4V
  6288. 8002h ASTVision 4I
  6289. 8003h ASTVision 4N
  6290. 8004h ASTVision 4L
  6291. 8005h ASTVision 5L
  6292. 8006h ASTVision 7L
  6293. 8007h ASTVision 7H
  6294. 8008h ASTVision 20H
  6295. 8009h AST Sabre
  6296. 800Ah ASTVision 5V
  6297. SeeAlso: #00136,#00127,#00138,#00141
  6298. (Table 00141)
  6299. Values for ALFA monitor EDID:
  6300. 096Bh ALFA TH-450
  6301. SeeAlso: #00136,#00140,#00142
  6302. (Table 00142)
  6303. Values for Compaq monitor EDID:
  6304. 0011h COMPAQ 1024
  6305. 0012h COMPAQ 1024
  6306. 0013h COMPAQ 1024
  6307. 0014h COMPAQ 1024
  6308. 0015h COMPAQ 1024
  6309. 0016h COMPAQ 1024
  6310. 0017h COMPAQ PRB
  6311. 0018h COMPAQ PRB
  6312. 0019h COMPAQ PRB
  6313. 001Ah COMPAQ PRB
  6314. 0020h COMPAQ PRB
  6315. 0021h COMPAQ PRB
  6316. 0022h COMPAQ 151FS
  6317. 0023h COMPAQ 151FS
  6318. 0024h COMPAQ 151FS
  6319. 0025h COMPAQ 151FS
  6320. 0026h COMPAQ 151FS
  6321. 0027h COMPAQ 151FS
  6322. 0028h COMPAQ 151FS
  6323. 0029h COMPAQ PRB
  6324. 002Ah COMPAQ PRB
  6325. 002Bh COMPAQ PRB
  6326. 002Ch COMPAQ PRB
  6327. 002Dh COMPAQ 171FS
  6328. 002Eh COMPAQ 171FS
  6329. 002Fh COMPAQ 171FS
  6330. 0030h COMPAQ 171FS
  6331. 0031h COMPAQ 171FS
  6332. 0032h COMPAQ 171FS
  6333. 0033h COMPAQ 171FS
  6334. 0040h COMPAQ QVision 200
  6335. 0041h COMPAQ QVision 200
  6336. 0042h COMPAQ QVision 200
  6337. 0043h COMPAQ QVision 200
  6338. 0044h COMPAQ QVision 200
  6339. 0045h COMPAQ QVision 200
  6340. 0046h COMPAQ QVision 200
  6341. 0047h COMPAQ QVision 200
  6342. 0048h COMPAQ QVision 200
  6343. 0049h COMPAQ QVision 200
  6344. 0100h COMPAQ 1024
  6345. 0146h COMPAQ 1024
  6346. 0147h COMPAQ 1024
  6347. 0346h COMPAQ 151FS
  6348. 0347h COMPAQ 151FS
  6349. 0348h COMPAQ 151FS
  6350. 0349h COMPAQ 151FS
  6351. 034Ah COMPAQ 151FS
  6352. 034Bh COMPAQ 151FS
  6353. 0546h COMPAQ 171FS
  6354. 0547h COMPAQ 171FS
  6355. 0548h COMPAQ 171FS
  6356. 0549h COMPAQ 171FS
  6357. 0746h COMPAQ PRB
  6358. 0747h COMPAQ PRB
  6359. 0846h COMPAQ PRA
  6360. 0847h COMPAQ PRA
  6361. 0848h COMPAQ PRA
  6362. 0849h COMPAQ PRA
  6363. 084Ah COMPAQ PRA
  6364. 084Bh COMPAQ PRA
  6365. 084Ch COMPAQ PRA
  6366. 084Dh COMPAQ PRA
  6367. 0946h COMPAQ PRB
  6368. 0947h COMPAQ PRB
  6369. 0948h COMPAQ PRB
  6370. 0949h COMPAQ PRB
  6371. 0A46h COMPAQ PRA
  6372. 0A47h COMPAQ PRA
  6373. 0A48h COMPAQ PRA
  6374. 0A49h COMPAQ PRA
  6375. 0A4Ah COMPAQ PRA
  6376. 0A4Bh COMPAQ PRA
  6377. 0A4Ch COMPAQ PRA
  6378. 0A4Dh COMPAQ PRA
  6379. 0D46h COMPAQ 140
  6380. 0D47h COMPAQ 140
  6381. 0D48h COMPAQ 140
  6382. 0D49h COMPAQ 140
  6383. 0D4Ah COMPAQ 140
  6384. 0D4Bh COMPAQ 140
  6385. 0D4Ch COMPAQ 140
  6386. 0D4Dh COMPAQ 140
  6387. 0F46h COMPAQ 150
  6388. 0F47h COMPAQ 150
  6389. 0F48h COMPAQ 150
  6390. 0F49h COMPAQ 150
  6391. 0F4Ah COMPAQ 150
  6392. 0F4Bh COMPAQ 150
  6393. 0F4Ch COMPAQ 150
  6394. 0F4Dh COMPAQ 150
  6395. SeeAlso: #00136,#00141,#00143
  6396. (Table 00143)
  6397. Values for "CTX" monitor EDID:
  6398. 1451h CTX 1451
  6399. 1551h CTX 1551
  6400. 1562h CTX 1562
  6401. 1565h CTX 1565
  6402. 1569h CTX 1569S 15-inch
  6403. 1765h CTX 1765
  6404. 1785h CTX 1785 XE
  6405. 2085h CTX 2085
  6406. 2185h CTX 2185
  6407. SeeAlso: #00136,#00142,#00144
  6408. (Table 00144)
  6409. Values for Digital Equipment Corporation monitor EDID:
  6410. 06FAh Digital 21" Color (FR-PCXAV-WZ)
  6411. 073Ah Digital 17" Color (FR-PCXAV-YZ)
  6412. BA08h Digital 15" Color Monitor (FR-PCXBV-E*)
  6413. DA08h Digital 17" Color Monitor (FR-PCXBV-F*)
  6414. SeeAlso: #00136,#00143,#00145
  6415. (Table 00145)
  6416. Values for Dell monitor EDID:
  6417. 139Ah Dell Ultrascan 14XE
  6418. 139Bh Dell Ultrascan 14XE
  6419. 139Ch Dell Ultrascan 14XE
  6420. 139Dh Dell Ultrascan 14XE
  6421. 2210h Dell Ultrascan V17X
  6422. 2211h Dell Ultrascan V17X
  6423. 2212h Dell Ultrascan V17X
  6424. 2213h Dell Ultrascan V17X
  6425. 2214h Dell Ultrascan 21TE
  6426. 2215h Dell Ultrascan 21TE
  6427. 2216h Dell Ultrascan 21TE
  6428. 2217h Dell Ultrascan 21TE
  6429. 3024h Dell VS17X
  6430. 3025h Dell VS17X
  6431. 3026h Dell VS17X
  6432. 3027h Dell VS17X
  6433. 4273h Dell VS15X
  6434. SeeAlso: #00136,#00144,#00146
  6435. (Table 00146)
  6436. Values for Delta Electronics monitor EDID:
  6437. 0456h Delta DA-456
  6438. 1565h Delta DA-1565
  6439. 1765h Delta DA-1765
  6440. SeeAlso: #00136,#00145,#00147
  6441. (Table 00147)
  6442. Values for Daewoo monitor EDID:
  6443. 1423h Daewoo CMC-1423B1
  6444. 1427h Daewoo CMC-1427X1
  6445. 1502h Daewoo CMC-1502B1
  6446. 1505h Daewoo CMC-1505X
  6447. 1507h Daewoo CMC-1507X1
  6448. 1703h Daewoo CMC-1703B
  6449. 5133h Daewoo CMC-1511B
  6450. 7044h Daewoo CMC-1704C
  6451. SeeAlso: #00136,#00146,#00148
  6452. (Table 00148)
  6453. Values for ELITEGROUP Computer Systems monitor EDID:
  6454. 0001h ECS VERTOS 1401
  6455. 0002h ECS VERTOS 1501
  6456. 0003h ECS VERTOS 1502
  6457. 0004h ECS VERTOS 1503
  6458. 0005h ECS VERTOS 1700
  6459. 0006h ECS VERTOS 1701
  6460. 0007h ECS VERTOS 1700
  6461. 0008h ECS VERTOS 2101
  6462. 0009h ECS VERTOS 2102
  6463. SeeAlso: #00136,#00147,#00149
  6464. (Table 00149)
  6465. Values for EIZO monitor EDID:
  6466. 0200h EIZO FlexScan F351
  6467. 0201h EIZO FlexScan F553
  6468. 0202h EIZO FlexScan F563
  6469. 0203h EIZO FlexScan F764
  6470. 0204h EIZO FlexScan F784
  6471. 0206h EIZO FlexScan 6600
  6472. 0300h EIZO FlexScan 6500
  6473. 0302h EIZO 9060S
  6474. 0303h EIZO 9065S
  6475. 0305h EIZO FlexScan T563
  6476. 0306h EIZO 9070S
  6477. 0307h EIZO 9080i
  6478. 0308h EIZO 9400i
  6479. 0309h EIZO 9500
  6480. 030Ah EIZO FlexScan F340iW
  6481. 030Ch EIZO FlexScan F552
  6482. 030Dh EIZO FlexScan F560iW
  6483. 030Fh EIZO FlexScan F760iW
  6484. 0310h EIZO FlexScan F780iW
  6485. 0311h EIZO FlexScan T560i
  6486. 0312h EIZO FlexScan T660i
  6487. 0313h EIZO FlexScan T562
  6488. 0314h EIZO FlexScan T662
  6489. 038Ch EIZO FlexScan F550iW
  6490. SeeAlso: #00136,#00148,#00150
  6491. (Table 00150)
  6492. Values for Hyundai monitor EDID:
  6493. 0B42h Hyundai Deluxscan 21
  6494. 12F0h Hyundai Deluxscan 14S
  6495. 16D8h Hyundai Deluxscan 15B
  6496. 16E8h Hyundai Deluxscan 15G
  6497. 16EEh Hyundai Delucscan 15G+
  6498. 1E02h Hyundai Deluxscan 17 Pro
  6499. 1EB8h Hyundai Deluxscan 17B
  6500. 1EBEh Hyundai Deluxscan 17B+
  6501. 5864h Hyundai DeluxScan 15 Pro
  6502. B81Eh Hyundai DeluxScan 17
  6503. SeeAlso: #00136,#00149,#00151
  6504. (Table 00151)
  6505. Values for Hitachi monitor EDID:
  6506. 1717h Hitachi Accuvue GX17L
  6507. 1727h Hitachi HM1764
  6508. 1827h Hitachi HM1782
  6509. 2147h Hitachi HM4721
  6510. 2149h Hitachi HM4921
  6511. 4020h Hitachi HM4020
  6512. 4021h Hitachi HM4021
  6513. 4711h Hitachi Accuvue UX4721
  6514. 4810h Hitachi Accuvue GX20
  6515. 4811h Hitachi Accuvue GX21
  6516. 4820h Hitachi HM4820
  6517. 4821h Hitachi HM4821
  6518. 4830h Hitachi Accuvue GX20H
  6519. 4911h Hitachi Accuvue UX4921
  6520. 6421h Hitachi HM6421
  6521. 6811h Hitachi Accuvue UX6821
  6522. 6821h Hitachi HM6821
  6523. SeeAlso: #00136,#00150,#00152
  6524. (Table 00152)
  6525. Values for Hansol Electronics monitor EDID:
  6526. 0579 Hansol Electronics Mazellan14px
  6527. 057A Hansol Electronics Mazellan400A
  6528. 05DD Hansol Electronics Mazellan15ax
  6529. A605 Hansol Electronics Mazellan17px
  6530. SeeAlso: #00136,#00151,#00153
  6531. (Table 00153)
  6532. Values for Hitachi, Ltd. monitor EDID:
  6533. AB6Fh CM-1711M
  6534. ABC2h CM-2112M
  6535. ABC7h CM-2111M
  6536. ABCCh CM-2110M
  6537. ABE0h Hitachi, Ltd CM802
  6538. ABE2h Hitachi, Ltd CM801
  6539. ABE3h Hitachi, Ltd CM800
  6540. ABEAh Hitachi, Ltd CM803
  6541. ABF4h Hitachi, Ltd CM701
  6542. AFC8h Hitachi, Ltd CM500
  6543. AFD2h Hitachi, Ltd CM600
  6544. AFD7h Hitachi, Ltd CM611
  6545. SeeAlso: #00136,#00152,#00154
  6546. (Table 00154)
  6547. Values for Hewlett-Packard monitor EDID:
  6548. 0AF0h HP D2800A Ultra VGA 1600 21"
  6549. 0AF6h HP D2806A Ergo Ultra VGA 15"
  6550. 0AF8h HP D2808 1024 Low Emission
  6551. 0AFFh HP D2815A 1024 Low Emission 14"
  6552. 0F11h HP D3857A Multi Media 15"
  6553. 0F12h HP D3858A Multi Media 14"
  6554. SeeAlso: #00136,#00151,#00155
  6555. (Table 00155)
  6556. Values for IBM monitor EDID:
  6557. 198Eh IBM G41
  6558. 198Fh IBM G50
  6559. 1990h IBM G70
  6560. 1991h IBM G200
  6561. 1999h IBM P50
  6562. 199Ah IBM P70
  6563. 199Bh IBM P200
  6564. 1BB7h IBM 7095
  6565. 1BB9h IBM 7097
  6566. 2112h IBM 2112
  6567. 2113h IBM 2113
  6568. 2114h IBM 2114
  6569. 2115h IBM 2115
  6570. 2117h IBM 2117
  6571. 2215h IBM 2215
  6572. 2238h IBM 2238
  6573. 2248h IBM 2248
  6574. 2264h IBM 2264
  6575. 2535h IBM 9525-0X1
  6576. 26ACh IBM Aptiva 9900
  6577. 27ADh IBM Aptiva 9901
  6578. 6312h IBM 6312
  6579. 6314h IBM 6314
  6580. 6315h IBM 6315
  6581. 6317h IBM 6317
  6582. 6319h IBM 6319
  6583. 6321h IBM 6321
  6584. 6322h IBM 6322
  6585. 6324h IBM 6324
  6586. 6325h IBM 6325
  6587. 6327h IBM 6327
  6588. 8504h IBM 8504
  6589. 8511h IBM 8511
  6590. 8512h IBM 8512
  6591. 8513h IBM 8513
  6592. 8514h IBM 8514
  6593. 8515h IBM 8515
  6594. 8517h IBM 8517
  6595. 8518h IBM 8518
  6596. 9504h IBM 9504
  6597. 9515h IBM 9515
  6598. 9517h IBM 9517
  6599. 9518h IBM 9518
  6600. 9521h IBM 9521
  6601. 9524h IBM 9524
  6602. 9525h IBM 9525
  6603. 9527h IBM 9527
  6604. SeeAlso: #00136,#00154,#00156
  6605. (Table 00156)
  6606. Values for Fujitsu ICL monitor EDID:
  6607. 0100h Fujitsu ICL ErgoPro 211v
  6608. 0200h Fujitsu ICL ErgoPro 171p
  6609. 0400h Fujitsu ICL ErgoPro 171v
  6610. 0700h Fujitsu ICL ErgoPro 151p
  6611. 0800h Fujitsu ICL ErgoPro 151p AutoBrite
  6612. 0A00h Fujitsu ICL ErgoPro 151v
  6613. 0B00h Fujitsu ICL ErgoPro 141v
  6614. 0D00h Fujitsu ICL ErgoPro 141p
  6615. 0F00h Fujitsu ICL ErgoPro 152v
  6616. 1400h Fujitsu ICL ErgoPro 142v
  6617. 1600h Fujitsu ICL ErgoPro e153
  6618. 1900h Fujitsu ICL ErgoPro x173
  6619. 1A00h Fujitsu ICL ErgoPro x173a
  6620. 1C00h Fujitsu ICL ErgoPro x152
  6621. 1D00h Fujitsu ICL ErgoPro e173
  6622. 2200h FUJITSU ErgoPro e154
  6623. 2400h FUJITSU ErgoPro x174
  6624. SeeAlso: #00136,#00155,#00157
  6625. (Table 00157)
  6626. Values for Idek Iiyama North America monitor EDID:
  6627. 1700h Iiyama Vision Master MF-8617
  6628. SeeAlso: #00136,#00156,#00158
  6629. (Table 00158)
  6630. Values for LG Electronics monitor EDID:
  6631. 36B4h LG StudioWorks 44m
  6632. 36B9h LG StudioWorks 44i
  6633. 3AA0h LG 1505s
  6634. 3AA2h LG StudioWorks 56m
  6635. 3AAFh LG StudioWorks 56T 15-inch
  6636. 3AB0h LG StudioWorks 5D
  6637. 3AB6h LG StudioWorks 5D
  6638. 426Ch LG StudioWorks 78i
  6639. 426Dh LG StudioWorks 78T
  6640. 426Eh LG StudioWorks 76i
  6641. 4273h LG StudioWorks 76m
  6642. 4274h LG StudioWorks 78m
  6643. 4277h LG StudioWorks 74m
  6644. 4278h LG StudioWorks 74i
  6645. 427Eh LG StudioWorks 7D
  6646. 427Fh LG StudioWorks 78D
  6647. 4280h LG StudioWorks 78DT
  6648. 4281h LG StudioWorks 7DT
  6649. 4284h LG StudioWorks 76T
  6650. 42CFh LG 1725s
  6651. 4E21h LG StudioWorks 20i
  6652. SeeAlso: #00136,#00157,#00159
  6653. (Table 00159)
  6654. Values for MAG monitor EDID:
  6655. 5620h DX1595
  6656. 5624h DX15T
  6657. 5626h DX1795
  6658. SeeAlso: #00136,#00158,#00160
  6659. (Table 00160)
  6660. Values for Mitsubishi monitor EDID:
  6661. 0040h Mitsubishi Diamond Pro 21TX (THN-9105)
  6662. 2040h Mitsubishi Diamond Scan 20H (FR-8905)
  6663. 2040h Mitsubishi Diamond Pro 20X (FR-8905B)
  6664. 6140h Mitsubishi Diamond Scan 17HX (FFF8705)
  6665. 8040h Mitsubishi Diamond Pro 15H (SD-57xxC)
  6666. 4040h Mitsubishi Diamond Pro 17TX (TFG-8705)
  6667. 408Fh Mitsubishi Diamond Scan 15VX (SD58xx)
  6668. 40C0h Mitsubishi Diamond Pro 87TXM (TFM8705)
  6669. SeeAlso: #00136,#00159,#00161
  6670. (Table 00161)
  6671. Values for Miro monitor EDID:
  6672. 0721h PROOFSCREEN miroC21107
  6673. 6815h miroD1568
  6674. 6817h PROOFSCREEN miroC1768
  6675. 6917h miroD1769
  6676. 8217h PROOFSCREEN miroC1782
  6677. 8520h PROOFSCREEN miroC2085 E
  6678. 8521h PROOFSCREEN miroC2185
  6679. 9321h PROOFSCREEN miroC2193
  6680. SeeAlso: #00136,#00160,#00162
  6681. (Table 00162)
  6682. Values for Nanao monitor EDID:
  6683. 0000h NANAO USA FlexScan T2-20
  6684. 0400h NANAO USA F2-15
  6685. 0401h NANAO USA F2-17
  6686. 0402h NANAO USA F2-17EX
  6687. 0403h NANAO USA F2-21
  6688. 0404h NANAO USA FX2-21
  6689. 0405h NANAO USA FlexScan T2-17TS
  6690. 0406h NANAO FlexScan 6600
  6691. 0502h NANAO 9060S
  6692. 0503h NANAO 9065S
  6693. 0506h NANAO 9070U
  6694. 0507h NANAO 9080i
  6695. 0508h NANAO 9400i
  6696. 0509h NANAO 9500
  6697. 050Ah NANAO FlexScan F340iW
  6698. 050Bh NANAO FlexScan F550i
  6699. 050Ch NANAO FlexScan F550iW
  6700. 050Dh NANAO FlexScan F560iW
  6701. 050Eh NANAO FlexScan F750i
  6702. 050Fh NANAO FlexScan F760iW
  6703. 0510h NANAO FlexScan F780iW
  6704. 0511h NANAO FlexScan T560i
  6705. 0512h NANAO FlexScan T660i
  6706. 0513h NANAO USA FlexScan T2-17
  6707. 0514h NANAO USA FlexScan T2-20
  6708. 0580h NANAO USA FlexScan 6300
  6709. 0800h NANAO FlexScan 33F
  6710. 0802h NANAO FlexScan 88F
  6711. 0805h NANAO FlexScan 54T
  6712. 0882h NANAO FlexScan 52F
  6713. 0900h NANAO FlexScan 6500
  6714. 0902h NANAO 9060S
  6715. 0906h NANAO 9070U
  6716. 0907h NANAO 9080i
  6717. 090Ah NANAO FlexScan F347
  6718. 090Bh NANAO FlexScan F550i
  6719. 090Ch NANAO FlexScan F557
  6720. 090Fh NANAO FlexScan 77F
  6721. 0910h NANAO FlexScan F780iJ
  6722. 0911h NANAO FlexScan T560iJ
  6723. 0912h NANAO FlexScan T660iJ
  6724. 0913h NANAO FlexScan 56T
  6725. 0914h NANAO FlexScan 68T
  6726. 098Ah NANAO FlexScan F347II
  6727. 098Ch NANAO FlexScan 55F
  6728. 098Fh NANAO FlexScan 76F
  6729. 0991h NANAO FlexScan T567
  6730. 0993h NANAO FlexScan 53T
  6731. SeeAlso: #00136,#00161,#00163
  6732. (Table 00163)
  6733. Values for NEC monitor EDID:
  6734. 37FAh NEC MultiSync XV14
  6735. 37FBh NEC MultiSync XV14
  6736. 3A66h NEC MultiSync C400
  6737. 3C00h NEC MultiSync XE15
  6738. 3C0Ah NEC MultiSync XP15
  6739. 3C14h NEC MultiSync XV15
  6740. 3C1Eh NEC MultiSync XE15
  6741. 3D5Eh NEC MultiSync XV15+
  6742. 3D68h NEC MultiSync M500
  6743. 3E4Eh NEC MultiSync C500
  6744. 43A8h NEC MultiSync XE17
  6745. 43B2h NEC MultiSync XE17
  6746. 43BCh NEC MultiSync XV17
  6747. 4416h NEC MultiSync XP17
  6748. 533Eh NEC MultiSync XE21
  6749. 53B6h NEC MultiSync XP21
  6750. SeeAlso: #00136,#00162,#00164
  6751. (Table 00164)
  6752. Values for Nokia monitor EDID:
  6753. 008Dh NOKIA 449M
  6754. 0098h NOKIA 449X
  6755. 00A3h NOKIA 447KC
  6756. 00A9h NOKIA 447XI
  6757. 00ABh NOKIA 447KA
  6758. 00ADh NOKIA 447M
  6759. 00B7h NOKIA 447W
  6760. 00B8h NOKIA 447X
  6761. 00BBh NOKIA 447XAV
  6762. 00BCh NOKIA 447K
  6763. 00D2h NOKIA 445R
  6764. SeeAlso: #00136,#00163,#00165
  6765. (Table 00165)
  6766. Values for OptiQuest monitor EDID:
  6767. 3138h OPTIQUEST VA656
  6768. 3141h OPTIQUEST 14ES
  6769. 3232h OPTIQUEST 1562A-2
  6770. 3233h OPTIQUEST 1769DC
  6771. 3234h OPTIQUEST 1000S-2
  6772. 3332h OPTIQUEST V655
  6773. 3333h OPTIQUEST V775
  6774. 3432h OPTIQUEST V650
  6775. 3832h OPTIQUEST V665
  6776. 4637h OPTIQUEST 1769DC
  6777. SeeAlso: #00136,#00164,#00166
  6778. (Table 00166)
  6779. Values for Princeton Graphics monitor EDID:
  6780. 003Bh Princeton EO15
  6781. 003Dh Princeton EO17
  6782. SeeAlso: #00136,#00165,#00167
  6783. (Table 00167)
  6784. Values for Philips monitor EDID:
  6785. 0200h Philips CM0200 (15C)
  6786. 0500h Philips CM0500 (20C)
  6787. 0700h Philips CM0700 (20T)
  6788. 0800h Philips CM0800 (15B)
  6789. 1200h Philips CM1200 (15A)
  6790. 1800h Philips CM1800 (15A)
  6791. 2000h Philips CM0200 (14B)
  6792. 2600h Philips 17TCM26
  6793. 2800h Philips 17BCM28
  6794. 3800h Philips 17ACM38
  6795. 5600h Philips CM5600 (20B)
  6796. 700Bh Philips CM0700 (21B)
  6797. 8000h Philips CM0800 (14A)
  6798. SeeAlso: #00136,#00166,#00168
  6799. (Table 00168)
  6800. Values for Panasonic monitor EDID:
  6801. 1604h Panasonic TX-D2151W-ES
  6802. 1610h Panasonic TX-D2151NM
  6803. SeeAlso: #00136,#00167,#00169
  6804. (Table 00169)
  6805. Values for Samsung monitor EDID:
  6806. 0000h Samsung SyncMaster 3Ne
  6807. 0100h Samsung SyncMaster 4S
  6808. 1530h Samsung 15GLsi
  6809. 4610h Samsung SyncMaster 21GLs
  6810. 4690h Samsung SyncMaster 20GLsi
  6811. 4D50h Samsung SyncMaster 15GLe
  6812. 4D51h Samsung SyncMaster 15GLi
  6813. 4D52h Samsung SyncMaster 15M
  6814. 4D70h Samsung SyncMaster 17GLi
  6815. 4D71h Samsung SyncMaster 17GLsi
  6816. 4D72h Samsung SyncMaster 6Ne
  6817. 4D73h Samsung 17GLi
  6818. 4D74h Samsung 17GLsi
  6819. 5450h Samsung SyncMaster 15Me
  6820. 6D20h Samsung SyncMaster 15GLe
  6821. SeeAlso: #00136,#00168,#00170
  6822. (Table 00170)
  6823. Values for Samtron monitor EDID:
  6824. 1428h Samtron 428PT/PTL
  6825. 1528h Samtron SC-528TXL
  6826. 1529h Samtron SC-528UXL
  6827. 1530h Samtron SC-528MXLJ
  6828. 4690h Samtron SC-208DXL+
  6829. 4D70h Samtron SC-728FXL
  6830. 4D71h Samtron SC-726GXL
  6831. 5451h Samtron SC-528MDL
  6832. SeeAlso: #00136,#00169,#00171
  6833. (Table 00171)
  6834. Values for Tatung monitor EDID:
  6835. 1F65h Intelliscan TM651x series 15"
  6836. 1F67h Intelliscan TM671x series 17"
  6837. 2F44h Intelliscan TM442x series 14"
  6838. 2F45h Intelliscan TM452x series 15"
  6839. 434Dh Tatung CM-17MC
  6840. 4855h Tatung CM-14UH
  6841. SeeAlso: #00136,#00170,#00172
  6842. (Table 00172)
  6843. Values for Royal Information Company monitor EDID:
  6844. 061Ch TRL/RIC DL-1564
  6845. 0622h TRL/RIC DH-1570
  6846. SeeAlso: #00136,#00171,#00173
  6847. (Table 00173)
  6848. Values for ViewSonic monitor EDID:
  6849. 0C00h ViewSonic 17GS
  6850. 0C0Fh ViewSonic 17PS
  6851. 0C1Fh ViewSonic 17GA
  6852. 1600h ViewSonic 21PS-2
  6853. 2601h ViewSonic 15GS
  6854. 2600h ViewSonic 15GS-2
  6855. 3141h ViewSonic 14ES
  6856. 3142h ViewSonic 14ES
  6857. 3143h ViewSonic 14ES
  6858. 3145h ViewSonic 15GS-3
  6859. 3252h ViewSonic 21PS-2
  6860. 3253h ViewSonic 21PS-2
  6861. 334Bh ViewSonic 17GS-2
  6862. 334Ch ViewSonic 17GS-2
  6863. 3351h ViewSonic PT810
  6864. 344Bh ViewSonic 17PS-2
  6865. 344Ch ViewSonic 17PS-2
  6866. 3451h ViewSonic PT810-2
  6867. 354Dh ViewSonic GT800
  6868. 354Eh ViewSonic GT800
  6869. 3550h ViewSonic GT800
  6870. 3644h ViewSonic 15GA
  6871. 3646h ViewSonic 15GA
  6872. 3648h ViewSonic 15GA
  6873. 364Ah ViewSonic PT770
  6874. 364Bh ViewSonic PT770
  6875. 364Ch ViewSonic PT770
  6876. 3744h ViewSonic 15G-2
  6877. 3746h ViewSonic 15G-2
  6878. 3748h ViewSonic 15G-2
  6879. 374Bh ViewSonic 17GA
  6880. 374Ch ViewSonic 17GA
  6881. 3844h ViewSonic 15ES-2
  6882. 3846h ViewSonic 15ES-2
  6883. 3848h ViewSonic 15ES-2
  6884. 384Ah ViewSonic 17EA
  6885. 384Bh ViewSonic 17EA
  6886. 384Ch ViewSonic 17EA
  6887. 3944h ViewSonic 15GS-2
  6888. 3946h ViewSonic 15GS-2
  6889. 3948h ViewSonic 15GS-2
  6890. 394Ah ViewSonic 17GS-2
  6891. 394Bh ViewSonic 17GS-2
  6892. 394Ch ViewSonic 17GS-2
  6893. 424Ah ViewSonic GT770
  6894. 424Bh ViewSonic GT770
  6895. 424Ch ViewSonic GT770
  6896. 434Ah ViewSonic 17PS-2
  6897. 434Bh ViewSonic 17PS-2
  6898. 434Ch ViewSonic 17PS-2
  6899. 4439h ViewSonic 15GS-2
  6900. 444Ah ViewSonic 17GA-2
  6901. 4637h ViewSonic 1769DC
  6902. SeeAlso: #00136,#00172
  6903. --------V-104F15BL02-------------------------
  6904. INT 10 - VESA VBE/DC (Display Data Channel) - READ VDIF
  6905. AX = 4F15h
  6906. BL = 02h
  6907. ???
  6908. Return: AL = 4Fh if function supported
  6909. AH = status
  6910. 00h successful
  6911. ???
  6912. 01h failed
  6913. SeeAlso: AX=4F15h/BL=00h,AX=4F15h/BL=01h
  6914. --------V-104F16-----------------------------
  6915. INT 10 - VESA VBE/GC (Graphics System Configuration) - API
  6916. AX = 4F16h
  6917. BL = function
  6918. 00h installation check / get capabilities
  6919. other registers vary by function
  6920. Return: varies by function
  6921. --------V-104F17-----------------------------
  6922. INT 10 - VESA VBE/AF (Accelerator Functions) - API
  6923. AX = 4F17h
  6924. BL = function
  6925. 00h installation check / get capabilities
  6926. other registers vary by function
  6927. Return: AL = 4Fh if function supported
  6928. AH = status
  6929. 00h successful
  6930. 01h failed
  6931. 02h hardware does not support function
  6932. 03h function not available in current video mode
  6933. else reserved for future error codes
  6934. other vary by function
  6935. Notes: the accelerator function code should be given a 32-bit protected
  6936. mode stack which has at least 1024 bytes available for use by the
  6937. VBE/AF code
  6938. when called, the I/O permission bitmap must allow access to any
  6939. ports which VBE/AF may require for operation
  6940. SeeAlso: AX=4F0Bh
  6941. --------V-104F4D-----------------------------
  6942. INT 10 - VESA - VIDEO CURSOR INTERFACE REQUEST
  6943. AX = 4F4Dh
  6944. BX = number of bytes available for VCI use
  6945. DS:0000h -> buffer for VCI
  6946. ES:DI -> VCI driver callback function
  6947. Return: AL = 4Fh if supported
  6948. AH = status
  6949. 00h successful
  6950. BX = number of bytes used by VCI
  6951. ES:DI -> VCI request handler
  6952. 01h failed
  6953. Desc: allow the VESA BIOS Extensions to cooperate with a pointing-device
  6954. (typically mouse) driver
  6955. SeeAlso: AX=4F12h
  6956. --------V-104F70-----------------------------
  6957. INT 10 - Avance Logic - GET ADAPTER INFORMATION
  6958. AX = 4F70h
  6959. Return: AX = 004Fh if successful
  6960. BL = board information (see #00174)
  6961. BH = board type???
  6962. 00h on ALG2101
  6963. FFh otherwise
  6964. SeeAlso: AX=4F00h
  6965. Bitfields for Avance Logic board information:
  6966. Bit(s) Description (Table 00174)
  6967. 0-1 video RAM size
  6968. 00 256K
  6969. 01 512K
  6970. 10 1M
  6971. 11 2M
  6972. 2 ???
  6973. 3 slot size???
  6974. =0 8-bit slot
  6975. =1 16-bit slot
  6976. 4 unused
  6977. 5 set on ALG2228/AL2301
  6978. 6-7 unused
  6979. --------V-104FDD-----------------------------
  6980. INT 10 - ATI M64VBE.COM - GET RESIDENT SEGMENT
  6981. AX = 4FDDh
  6982. Return: AX = CS of resident code
  6983. Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip
  6984. SeeAlso: AX=4FFFh/BX=364Dh"M64VBE",INT 60"M64VBE"
  6985. --------V-104FFF-----------------------------
  6986. INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF
  6987. AX = 4FFFh
  6988. DL = new state (00h off, 01h on)
  6989. Return: AX = 0000h if successful
  6990. --------V-104FFF-----------------------------
  6991. INT 10 - Diamond Stealth 24 - SET/RESET DUAL DISPLAY MODE
  6992. AX = 4FFFh
  6993. BX = dual display mode
  6994. 00h reset
  6995. 01h set dual display, 32KB VGA test
  6996. 02h set dual display, 64KB VGA test
  6997. Return: AX = 4F00h if successful
  6998. BX = number of scanlines off screen for test mode
  6999. --------V-104FFFBX364D-----------------------
  7000. INT 10 - ATI M64VBE.COM - UNINSTALL
  7001. AX = 4FFFh
  7002. BX = 364Dh ('6M')
  7003. CX = 5634h ('V4')
  7004. Return: AX,DX,DS,ES destroyed
  7005. Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip
  7006. SeeAlso: AX=4FDDh"M64VBE",INT 60"M64VBE"
  7007. --------U-1050-------------------------------
  7008. INT 10 - SCROLOCK.COM - INSTALLATION CHECK
  7009. AH = 50h
  7010. Return: BX = 1954h if installed
  7011. AL = 00h if inactive, nonzero if active
  7012. Program: SCROLOCK is a utility supplied with System Enhancement Associates'
  7013. ARC archiver
  7014. SeeAlso: AH=51h
  7015. --------J-105000-----------------------------
  7016. INT 10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE
  7017. AX = 5000h
  7018. BX = country code
  7019. 0001h USA (English), 0051h Japan
  7020. Return: AL = status
  7021. 00h successful
  7022. 01h bad country code
  7023. 02h other error
  7024. SeeAlso: AX=5001h,INT 16/AX=5000h
  7025. --------J-105001-----------------------------
  7026. INT 10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE
  7027. AX = 5001h
  7028. Return: AL = status
  7029. 00h successful
  7030. BX = country code
  7031. 02h error
  7032. SeeAlso: AH=00h,AX=5000h,INT 16/AX=5001h,INT 21/AH=38h
  7033. --------V-105049-----------------------------
  7034. INT 10 - VIDEO - SCREENR v1.55+ - API
  7035. AX = 5049h ('PI')
  7036. BX = function
  7037. 0000h installation check
  7038. 0001h lock mode
  7039. 0002h unlock mode
  7040. 0003h lock palette
  7041. 0004h unlock palette
  7042. Return: AX = 0000h if installed
  7043. BX = TSR version (BH=major,BL=minor)
  7044. CL = mode locking status
  7045. 00h mode not locked
  7046. 01h mode locked: INT 10/AH=00h disabled
  7047. CH = palette locking status
  7048. 00h palette not locked
  7049. 01h palette locked, the following functions are disabled:
  7050. AX=1000h, AX=1001h, AX=1002h, AX=1010h, AX=1012h
  7051. Program: SCREENR is a TSR supplied with Patrick Ibbetson's SCREEN display
  7052. utility.
  7053. Index: installation check;SCREENR
  7054. --------U-1051-------------------------------
  7055. INT 10 - SCROLOCK.COM - ENABLE/DISABLE
  7056. AH = 51h
  7057. AL = state
  7058. 00h disable
  7059. nonzero enable
  7060. Return: nothing
  7061. Program: SCROLOCK is a utility supplied with System Enhancement Associates'
  7062. ARC file archiver
  7063. SeeAlso: AH=50h"SCROLOCK"
  7064. --------J-105100-----------------------------
  7065. INT 10 - VIDEO - AX PC - REGISTER EXTERNAL CHARACTER
  7066. AX = 5100h
  7067. BH = character width in bits (10h)
  7068. BL = character height (10h)
  7069. DX = character code (DH = F0h-F3h, DL=40h-7Eh,80h-FCh)
  7070. ES:BP -> character bitmap
  7071. Return: AL = status (00h successful, 01h failed)
  7072. SeeAlso: AX=5101h,INT 1F"SYSTEM DATA"
  7073. --------J-105101-----------------------------
  7074. INT 10 - VIDEO - AX PC - READ CHARACTER
  7075. AX = 5101h
  7076. BH = character width in bits
  7077. BL = character height
  7078. DX = character code (DH = 00h if 8-bit character)
  7079. ES:BP -> buffer for character bitmap
  7080. Return: AL = status (00h successful, 01h failed)
  7081. SeeAlso: AH=09h,AX=5100h
  7082. --------J-105200-----------------------------
  7083. INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER
  7084. AX = 5200h
  7085. BX = segment of buffer
  7086. Return: nothing
  7087. SeeAlso: AX=5201h
  7088. --------J-105201-----------------------------
  7089. INT 10 - VIDEO - AX PC - GET VIRTUAL TEXT RAM BUFFER
  7090. AX = 5201h
  7091. Return: BX = segment of buffer or 0000h if failed
  7092. SeeAlso: AX=8300h,AH=FEh
  7093. ----------1053-------------------------------
  7094. INT 10 - Show Partner F/X v3.6 - START PRESENTATION
  7095. AH = 53h
  7096. DS:DX -> ASCIZ name of presentation file (no path, extension forced to
  7097. .PR2)
  7098. Return: ???
  7099. SeeAlso: AH=55h
  7100. ----------1055-------------------------------
  7101. INT 10 - Show Partner F/X v3.6 - UNINSTALL
  7102. AH = 55h
  7103. Return: FXSHOW.EXE removed from memory
  7104. SeeAlso: AH=53h
  7105. --------V-105555-----------------------------
  7106. INT 10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK
  7107. AX = 5555h
  7108. Return: AX = AAAAh if installed
  7109. BX:CX -> ??? routine in SMS.COM resident portion
  7110. -> data area (see #00175) in VCONFIG
  7111. Program: Super Switch (SMS.COM) is a video mode switch program supplied with
  7112. ATI EGA Wonder. It also maps video mode 08h to 27h or 23h.
  7113. SeeAlso: INT 10/AH=00h,INT 14/AX=AA01h,INT 2F/AX=6400h
  7114. Index: screen saver;ATI Wonder SMS.COM
  7115. Format of ATI Super Switch data area:
  7116. Offset Size Description (Table 00175)
  7117. 00h DWORD original INT 09 vector
  7118. 04h DWORD original INT 10 vector
  7119. 08h DWORD original INT 1C vector
  7120. 0Ch WORD screen saver state, 0=off, 1=on
  7121. 0Eh WORD blanking interval in clock ticks
  7122. --------V-105F00-----------------------------
  7123. INT 10 - Chips & Technologies Extended BIOS - RETURN CHIP INFORMATION
  7124. AX = 5F00h
  7125. Return: AL = 5Fh function supported
  7126. BL = chip type (see #00176)
  7127. BH = video memory size (see #00177)
  7128. CX = miscellaneous information (see #00178)
  7129. SeeAlso: AX=5F01h
  7130. Bitfields for Chips&Technologies chip type:
  7131. Bit(s) Description (Table 00176)
  7132. 7-4 chip type
  7133. 0000: 82c451
  7134. 0001: 82c452 / 82c452A
  7135. 0010: 82c455
  7136. 0011: 82c453
  7137. 0100: 82c450
  7138. 0101: 82c456
  7139. 0110: 82c457
  7140. 0111: F65520
  7141. 1000: F65530 / F65525
  7142. 1001: F66510
  7143. 1010: ???
  7144. 1011: F64300 "Wingine DGX"
  7145. 1100: F65535/F65545 ???
  7146. 1101: F65540
  7147. 1110: ???
  7148. 1111: ???
  7149. 3-0 revision number
  7150. SeeAlso: #00177
  7151. (Table 00177)
  7152. Values for Chips&Technologies video memory size:
  7153. 00h 256KB
  7154. 01h 512KB
  7155. 02h 1MB
  7156. 03h 2MB
  7157. SeeAlso: #00176
  7158. Bitfields for Chips&Technologies miscellaneous information:
  7159. Bit(s) Description (Table 00178)
  7160. 0 DAC size (0=6-bit, 1=8-bit)
  7161. 1 system type (0=PC/AT, 1=PS/2)
  7162. 2 extended text modes supported by BIOS
  7163. 3 reserved
  7164. 4 extended graphics modes supported by BIOS
  7165. 5 reserved
  7166. 6 BIOS supports graphics cursor
  7167. 7 BIOS supports anti-aliased font
  7168. 8 BIOS supports pre-programmed emulation
  7169. 9 BIOS supports auto emulation
  7170. 10 BIOS supports variable mode set at cold boot
  7171. 11 BIOS supports variable mode set on warm boot
  7172. 12 BIOS supports emulation mode set at cold boot
  7173. 13 BIOS supports emulation mode set on warm boot
  7174. 14-15 reserved
  7175. --------V-105F00-----------------------------
  7176. INT 10 - VIDEO - Realtek RTVGA - RETURN CHIP VERSION
  7177. AX = 5F00h
  7178. Return: AH = 00h, if successful
  7179. AL = chip version (the same value that VTEST.EXE reads)
  7180. 00h RTG3103???
  7181. 01h RTG31030/RTG3105
  7182. 02h RTG3106???
  7183. 3Fh non-Realtek chip
  7184. BUG: in v3.C10, AX=5F00h on return due to improper stack restoration code
  7185. SeeAlso: AX=5F01h"RTVGA"
  7186. --------V-105F01-----------------------------
  7187. INT 10 - Chips & Technologies Extended BIOS - SET PREPROGRAMMED EMULATION
  7188. AX = 5F01h
  7189. BL = emulation type (see #00179)
  7190. Return: AL = 5Fh if function supported
  7191. AH = status
  7192. 00h unsuccessful
  7193. 01h successful
  7194. SeeAlso: AX=5F00h,AX=5F02h,AH=FFh"Oak"
  7195. (Table 00179)
  7196. Values for Chips&Technologies emulation type:
  7197. 00h,01h reserved
  7198. 02h CGA
  7199. 03h MDA
  7200. 04h Hercules
  7201. 05h EGA
  7202. 06h VGA (disable emulation)
  7203. --------V-105F01-----------------------------
  7204. INT 10 - VIDEO - Realtek RTVGA - WRITE RTVGA BIOS STRING TO DESTINATION
  7205. AX = 5F01h
  7206. ES:DI -> zero-filled buffer for BIOS ID string
  7207. Return: AH = 00h if successful
  7208. ES:DI -> ASCII signature "REALTEK VGA BIOS Version 3C.10"
  7209. BUG: in v3.C10, AX=5F01h on return due to improper stack restoration code
  7210. SeeAlso: AX=5F00h"RTVGA",AX=5F02h"RTVGA"
  7211. --------V-105F02-----------------------------
  7212. INT 10 - Chips & Technologies Extended BIOS - AUTO EMULATION CONTROL
  7213. AX = 5F02h
  7214. BL = new state of autmatic emulation (00h enabled, 01h disabled)
  7215. Return: AL = 5Fh if function supported
  7216. AH = status
  7217. 00h unsuccessful
  7218. 01h successful
  7219. SeeAlso: AX=5F01h,AX=5F03h
  7220. --------V-105F02-----------------------------
  7221. INT 10 - Chips & Technologies '64300' BIOS - SET CLOCK
  7222. AX = 5F02h
  7223. BH = what to set
  7224. 02h dot clock
  7225. BL = speed in MHz (12-99)
  7226. 03h memory clock
  7227. BL = speed in MHz (12-99)
  7228. FFh default dot and memory clocks
  7229. Return: AL = 5Fh if function supported
  7230. AH = status
  7231. 00h unsuccessful
  7232. 01h successful
  7233. SeeAlso: AX=5F00h"Chips",AX=5F03h"64300",AX=5F02h"65530"
  7234. --------V-105F02-----------------------------
  7235. INT 10 - Chips & Technologies '65530' BIOS - SET CLOCK
  7236. AX = 5F02h
  7237. BH = what to set
  7238. 02h dot clock
  7239. BL = new clock speed (see #00180)
  7240. 03h memory clock
  7241. BL = new clock speed (see #00180)
  7242. 04h set power-down register
  7243. BL = new value for power-down register (bits 3-0 only)
  7244. 06h (404 clock chip) set control register
  7245. BL = new vlaue for control register (bits 5-0 only)
  7246. 06h (404A/B/B-ES clock chips) set control register PWRDN1
  7247. BL = new value for control register
  7248. 07h (404A/B/B-ES clock chips) set control register PWRDN1
  7249. BL = new value for control register
  7250. FFh default dot and memory clocks
  7251. Return: AL = 5Fh if function supported
  7252. AH = status
  7253. 00h unsuccessful
  7254. 01h successful
  7255. SeeAlso: AX=5F01h,AX=5F02h"64300",AX=5FA0h,#00184
  7256. (Table 00180)
  7257. Values for C&T '65530' BIOS clock speed:
  7258. 00h 12 MHz
  7259. 01h 14 MHz
  7260. 02h 16 MHz
  7261. 03h 18 MHz
  7262. 04h 20 MHz
  7263. 05h 25 MHz
  7264. 06h 28 MHz
  7265. 07h 32 MHz
  7266. 08h 36 MHz
  7267. 09h 40 MHz
  7268. 0Ah 45 MHz
  7269. 0Bh 50 MHz
  7270. 0Ch 56 MHz
  7271. 0Dh 60 MHz
  7272. 0Eh 65 MHz
  7273. 0Fh 66 MHz
  7274. 15h 34 MHz
  7275. --------V-105F02-----------------------------
  7276. INT 10 - VIDEO - Realtek RTVGA - RETURN RTVGA ON-BOARD MEMORY SIZE
  7277. AX = 5F02h
  7278. Return: AH = 00h, if successful
  7279. AL = on-board memory size
  7280. (00h = 256K, 01h = 512K, 02h = 768K, 03h = 1024K)
  7281. BUG: in v3.C10, AX=5F02h on return due to improper stack restoration code
  7282. SeeAlso: AX=5F01h"RTVGA",AX=5F03h"RTVGA"
  7283. --------V-105F03-----------------------------
  7284. INT 10 - VIDEO - Realtek RTVGA - SET ???
  7285. AX = 5F03h
  7286. BL = 0-3 (???)
  7287. Return: AH = 00h if successful
  7288. BUG: in v3.C10, AX=5F03h on return due to improper stack restoration code
  7289. SeeAlso: AX=5F02h"RTVGA"
  7290. --------V-105F03BL00-------------------------
  7291. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON DISPLAY MODE
  7292. AX = 5F03h
  7293. BL = 00h
  7294. CL = display mode
  7295. CH = mode (see #00181)
  7296. Return: AL = 5Fh if function supported
  7297. AH = status
  7298. 00h unsuccessful
  7299. 01h successful
  7300. SeeAlso: AX=5F02h,AX=5F03h/BL=01h"Chips",AX=5F90h
  7301. Bitfields for Chips&Technologies display mode:
  7302. Bit(s) Description (Table 00181)
  7303. 1-0 scanlines (00 = 200, 01 = 350, 10 = 400)
  7304. 7 persistence (0 reset on next boot, 1 until changed)
  7305. --------V-105F03BH00-------------------------
  7306. INT 10 - Chips & Technologies '64300' BIOS - GET CLOCK SPEED
  7307. AX = 5F03h
  7308. BH = 00h (get default memory clock)
  7309. Return: AL = 5Fh if function supported
  7310. AH = status
  7311. 00h unsuccessful
  7312. 01h successful
  7313. BL = clock speed in MHz
  7314. SeeAlso: AX=5F02h"64300",AX=5F04h"64300"
  7315. --------V-105F03BL01-------------------------
  7316. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON EMULATION MODE
  7317. AX = 5F03h
  7318. BL = 01h
  7319. CL = emulation mode (see #00181)
  7320. CH = permanence
  7321. bit 7 persistence (0 reset on next boot, 1 until changed)
  7322. Return: AL = 5Fh if function supported
  7323. AH = status
  7324. 00h unsuccessful
  7325. 01h successful
  7326. SeeAlso: AX=5F02h,AX=5F03h/BL=00h"Chips",AX=5F90h
  7327. --------V-105F04-----------------------------
  7328. INT 10 - Chips & Technologies '64300' BIOS - GET REFRESH RATE
  7329. AX = 5F04h
  7330. BL = video mode number
  7331. Return: AL = 5Fh if function supported
  7332. AH = status
  7333. 00h unsuccessful
  7334. 01h successful
  7335. BH = available refresh rates (see #00182)
  7336. BL = currently-set refresh rate (see #00182)
  7337. SeeAlso: AX=5F03h"64300",AX=5F05h"64300"
  7338. Bitfields for C&T 64300 refresh rates:
  7339. Bit(s) Description (Table 00182)
  7340. 5 75 Hz
  7341. 4 72 Hz
  7342. 3 70 Hz
  7343. 2 60 Hz
  7344. 1 56 Hz
  7345. 0 interlaced
  7346. --------V-105F05-----------------------------
  7347. INT 10 - Chips & Technologies '64300' BIOS - SET REFRESH RATE
  7348. AX = 5F05h
  7349. BL = video mode number
  7350. BH = refresh rate to set (see #00182)
  7351. bit 7: =0 program new clock and CRT parametes
  7352. =1 keep current parameters
  7353. Return: AL = 5Fh if function supported
  7354. AH = status
  7355. 00h unsuccessful
  7356. 01h successful
  7357. SeeAlso: AX=5F04h"64300"
  7358. --------V-105F06-----------------------------
  7359. INT 10 - Chips & Technologies '64300' BIOS - GET XRAM INFORMATION
  7360. AX = 5F06h
  7361. Return: AL = 5Fh if function supported
  7362. AH = status
  7363. 00h unsuccessful
  7364. 01h successful
  7365. BL = XRAM presence (00h no XRAM, 01h present)
  7366. SeeAlso: AX=5F05h,AX=5F08h
  7367. --------V-105F08-----------------------------
  7368. INT 10 - Chips & Technologies '64300' BIOS - SET LINEAR MEMORY START ADDRESS
  7369. AX = 5F08h
  7370. BX = desired start address in megabytes
  7371. Return: AL = 5Fh if function supported
  7372. AH = status
  7373. 00h unsuccessful
  7374. 01h successful
  7375. SeeAlso: AX=5F06h
  7376. --------V-105F10-----------------------------
  7377. INT 10 - Chips & Technologies '64300'/'65530' BIOS - GET LINEAR MEMORY INFO
  7378. AX = 5F10h
  7379. Return: AL = 5Fh if function supported
  7380. AH = status
  7381. 00h unsuccessful
  7382. 01h successful
  7383. BX:CX = linear memory base address
  7384. DX = virtual screen width offset (bytes)
  7385. SI;DI = linear memory size
  7386. SeeAlso: AX=5F08h,AX=5FA0h
  7387. --------V-105F50-----------------------------
  7388. INT 10 - Chips & Technologies Extended BIOS - GET LAPTOP DISPLAY STATUS
  7389. AX = 5F50h
  7390. Return: DL = display status (see #00183)
  7391. Note: this call can be used on Toshiba laptops since ~1995 instead of
  7392. INT 42/AX=7503h which is no longer supported with the F655xx chips
  7393. SeeAlso: INT 42/AX=7503h
  7394. Bitfields for display status:
  7395. Bit(s) Description (Table 00183)
  7396. 7-4 always 0 ???
  7397. 3 1: both displays active (bit 1 also set)
  7398. 2 1: normal (monochrome display only), 0: inverse or color
  7399. 1 1: internal display active, 0: external only
  7400. 0 always set ???
  7401. --------V-105F50-----------------------------
  7402. INT 10 - Chips & Technologies '65530' BIOS - GET 655xx INFORMATION
  7403. AX = 5F50h
  7404. Return: AL = 5Fh if function supported
  7405. AH = status
  7406. 00h unsuccessful
  7407. 01h successful
  7408. BX = width of flat panel in pixels
  7409. CX = height of flat panel in pixels
  7410. DX = F65520/525/530 status (see #00184)
  7411. SeeAlso: AX=5F51h,INT 15/AX=5F31h
  7412. Bitfields for C&T F65520/525/530 status:
  7413. Bit(s) Description (Table 00184)
  7414. 15-0 reserved
  7415. 6-5 type of clock chip
  7416. 00 = 404
  7417. 01 = 404A
  7418. 10 = 404B ES
  7419. 11 = 404B
  7420. 4 accelerator enabled
  7421. 3 both displays active
  7422. 2 video polarity (1 = inverted)
  7423. 1 output device
  7424. 0 CRT
  7425. 1 flat panel (LCD)
  7426. 0 reserved
  7427. --------V-105F51-----------------------------
  7428. INT 10 - Chips & Technologies Extended BIOS - SWITCH DISPLAY DEVICE
  7429. AX = 5F51h
  7430. BL = new active display
  7431. 00h CRT
  7432. 01h flat panel (LCD)
  7433. 02h both simultaneously
  7434. BH = 01h to allow reprogramming the DAC
  7435. Return: AL = 5Fh if function supported
  7436. AH = status
  7437. 00h unsuccessful
  7438. 01h successful
  7439. SeeAlso: AX=5F50h,AX=5F53h
  7440. --------V-105F53-----------------------------
  7441. INT 10 - Chips & Technologies Extended BIOS - EN/DISABLE ACCELERATOR SUPPORT
  7442. AX = 5F53h
  7443. BL = new support state
  7444. 00h disable buffer/accelerator
  7445. 01h enable buffer/acelerator
  7446. Return: AL = 5Fh if function supported
  7447. AH = status
  7448. 00h unsuccessful
  7449. 01h successful
  7450. SeeAlso: AX=5F50h,AX=5F51h,AX=5F54h
  7451. --------V-105F54-----------------------------
  7452. INT 10 - Chips & Technologies Extended BIOS - TURN FLAT PANEL ON/OFF
  7453. AX = 5F54h
  7454. BL = new state
  7455. 00h on
  7456. 01h off
  7457. Return: AL = 5Fh if function supported
  7458. AH = status
  7459. 00h unsuccessful
  7460. 01h successful
  7461. SeeAlso: AX=5F50h,AX=5F51h,AX=5F53h,AX=5F5Ah
  7462. --------V-105F5A-----------------------------
  7463. INT 10 - Chips & Technologies Extended BIOS - SET FLAT-PANEL VIDEO POLARITY
  7464. AX = 5F5Ah
  7465. BL = new video polarity
  7466. 00h normal
  7467. 01h inverted
  7468. Return: AL = 5Fh if function supported
  7469. AH = status
  7470. 00h unsuccessful
  7471. 01h successful
  7472. SeeAlso: AX=5F50h,AX=5F54h
  7473. --------V-105F5C-----------------------------
  7474. INT 10 - Chips & Technologies Extended BIOS - SET VERTICAL COMPENSATION
  7475. AX = 5F5Ch
  7476. BL = type of vertical compensation to use
  7477. 00h no compensation
  7478. 01h automatic centering
  7479. 02h set centering register
  7480. DX = centering value (bits 9-0 only)
  7481. 03h non-automatic centering
  7482. 04h set vertical line insertion register
  7483. DL = vertical line insertion (bits 3-0 only)
  7484. 05h set alternate maximum scanline register
  7485. DL = alternate maximum scanline (bits 4-0 only)
  7486. 06h enable text stretching, type 0
  7487. 07h enable text stretching, type 1
  7488. 08h enable text stretching, type 2
  7489. 09h enable text stretching, type 3
  7490. 0Ah disable text stretching
  7491. 0Bh set vertical line replication register
  7492. DL = vertical line replication (bits 3-0 only)
  7493. 0Ch enable graphics stretching, type 0
  7494. 0Dh enable graphics stretching, type 1
  7495. 0Eh disable vertical graphics stretching
  7496. 0Fh disable all horizontal and vertical compensation
  7497. 10h enable optimal compensation
  7498. 11h disable optimal compensation
  7499. Return: AL = 5Fh if function supported
  7500. AH = status
  7501. 00h unsuccessful
  7502. 01h successful
  7503. SeeAlso: AX=5F50h,AX=5F5Eh,AX=5F5Fh
  7504. --------V-105F5E-----------------------------
  7505. INT 10 - Chips & Technologies Extended BIOS - EN/DISABLE TALL FONT LOADING
  7506. AX = 5F5Eh
  7507. BL = new state of tall-font loading
  7508. 00h enable loading of 8x19/30/32 fonts
  7509. 01h disable loading of 8x19/30/32 fonts
  7510. Return: AL = 5Fh if function supported
  7511. AH = status
  7512. 00h unsuccessful
  7513. 01h successful
  7514. Note: when tall fonts are enabled, the fonts are stretched by duplicating
  7515. scan lines as appropriate to convert an 8x16 font to the proper
  7516. height (scan lines 1/9/12 [8x19] or 2-15 [8x30] or all [8x32])
  7517. SeeAlso: AX=5F5Ch,AX=5F5Fh
  7518. --------V-105F5F-----------------------------
  7519. INT 10 - Chips & Technologies Extended BIOS - HORIZONTAL COMPENSATION
  7520. AX = 5F5Fh
  7521. BL = horizontal compensation type
  7522. 00h none
  7523. 01h automatic centering
  7524. 02h set centering register
  7525. DL = centering value
  7526. 03h non-automatic centering
  7527. 04h enable text compression (force 8xN fonts)
  7528. 05h disable text compression (allow 9xN fonts)
  7529. 06h enable auto doubling
  7530. 07h disable auto doubling
  7531. 0Fh disable all horizontal and vertical compensation
  7532. Return: AL = 5Fh if function supported
  7533. AH = status
  7534. 00h unsuccessful
  7535. 01h successful
  7536. SeeAlso: AX=5F50h,AX=5FA0h
  7537. --------V-105F90-----------------------------
  7538. INT 10 - Chips & Technologies Extended BIOS - GET SUPERVGA STATE BUFFER SIZE
  7539. AX = 5F90h
  7540. CX = state mask (see #00185)
  7541. Return: AL = 5Fh if function supported
  7542. BX = number of 64-byte blocks required
  7543. SeeAlso: AH=1Ch,AX=5F03h,AX=5F91h,AX=5F92h,AX=5FA0h
  7544. Bitfields for Chips&Technologies state mask:
  7545. Bit(s) Description (Table 00185)
  7546. 0 video hardware
  7547. 1 BIOS data state
  7548. 2 DAC state
  7549. 15 type (0 all state info, 1 SuperVGA state only)
  7550. --------V-105F91-----------------------------
  7551. INT 10 - Chips & Technologies Extended BIOS - SAVE SUPERVGA STATE
  7552. AX = 5F91h
  7553. CX = state mask (see #00185)
  7554. ES:BX -> save buffer
  7555. Return: AL = 5Fh if function supported
  7556. buffer at ES:BX filled
  7557. SeeAlso: AH=1Ch,AX=5F03h,AX=5F90h,AX=5F92h,AX=5FA1h
  7558. --------V-105F92-----------------------------
  7559. INT 10 - Chips & Technologies Extended BIOS - RESTORE SUPERVGA STATE
  7560. AX = 5F92h
  7561. CX = state mask (see #00185)
  7562. ES:BX -> previously-filled save buffer
  7563. Return: AL = 5Fh if function supported
  7564. SeeAlso: AH=1Ch,AX=5F03h,AX=5F90h,AX=5F92h,AX=5FA2h
  7565. --------V-105FA0-----------------------------
  7566. INT 10 - Chips & Technologies Wingine DGX - GET EXTENDED BIOS SAVE BUFFER SIZE
  7567. AX = 5FA0h
  7568. CX = state(s) to be saved (see #00186)
  7569. Return: AL = 5Fh if function supported
  7570. AH = status
  7571. 00h unsuccessful
  7572. 01h successful
  7573. BX = number of 64-byte blocks required for state
  7574. SeeAlso: AH=1Ch,AX=5FA1h,AX=5FA2h,AX=5F90h,AX=4F04h
  7575. Bitfields for C&T BIOS save/restore state type:
  7576. Bit(s) Description (Table 00186)
  7577. 0 video hardware
  7578. 1 BIOS data
  7579. 2 DAC and color registers
  7580. 14 (65530 BIOS with AL=A1h only) clear emulation state
  7581. 15 extended registers
  7582. SeeAlso: #00048,#00085
  7583. --------V-105FA1-----------------------------
  7584. INT 10 - Chips & Technologies Wingine DGX - SAVE VIDEO STATE
  7585. AX = 5FA1h
  7586. CX = state(s) to be saved (see #00186)
  7587. ES:BX -> buffer for state information
  7588. Return: AL = 5Fh if function supported
  7589. AH = status
  7590. 00h unsuccessful
  7591. 01h successful
  7592. ES:BX buffer filled
  7593. SeeAlso: AH=1Ch,AX=5FA0h,AX=5FA2h,AX=5F91h
  7594. --------V-105FA2-----------------------------
  7595. INT 10 - Chips & Technologies Wingine DGX - RESTORE VIDEO STATE
  7596. AX = 5FA2h
  7597. CX = state(s) to be restored (see #00186)
  7598. ES:BX -> buffer containing previously-saved state information
  7599. Return: AL = 5Fh if function supported
  7600. AH = status
  7601. 00h unsuccessful
  7602. 01h successful
  7603. SeeAlso: AH=1Ch,AX=5FA0h,AX=5FA1h,AX=5F92h
  7604. --------V-1060------------------------------------
  7605. INT 10 - HUNTER 16 - SET GRAPHICS FONT
  7606. AH = 60h
  7607. AL = new font
  7608. bit 7 output characters in reverse video
  7609. bits 0-6 font number (see #00200 at AH=77h)
  7610. Return: BH = cell width
  7611. BL = cell height
  7612. Desc: select the font to use for output in mode 6; this can be used to mix
  7613. fonts on the screen
  7614. Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
  7615. members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  7616. SeeAlso: AH=04h"HUNTER",AH=73h"HUNTER",AH=77h"HUNTER"
  7617. --------V-1061------------------------------------
  7618. INT 10 - HUNTER 16 - MOVE CURSOR TO GRAPHICS CO-ORDINATES
  7619. AH = 61h
  7620. CX = column
  7621. DX = row
  7622. Return: nothing
  7623. Note: this function is only valid in graphics modes
  7624. SeeAlso: AH=62h
  7625. --------V-1062------------------------------------
  7626. INT 10 - HUNTER 16 - GET CURSOR POSITION IN GRAPHICS CO-ORDINATES
  7627. AH = 62h
  7628. Return: CX = column
  7629. DX = row
  7630. Note: this function is only valid in graphics modes
  7631. SeeAlso: AH=61h
  7632. --------V-1063------------------------------------
  7633. INT 10 - HUNTER 16 - SET CONTRAST
  7634. AH = 63h
  7635. AL = contrast (0..127)
  7636. Return: nothing
  7637. Desc: set the LCD screen contrast to improve visibility
  7638. SeeAlso: AH=64h,AH=75h
  7639. --------V-1064------------------------------------
  7640. INT 10 - HUNTER 16 - SET BACKLIGHT LEVEL
  7641. AH = 64h
  7642. AL = level (0..15)
  7643. Return: nothing
  7644. Desc: set the LCD backlight level to improve visibility in bad lighting
  7645. SeeAlso: AH=63h,AH=65h,AH=74h,AH=78h"HUNTER",INT 15/AH=74h
  7646. --------V-106500----------------------------------
  7647. INT 10 - HUNTER 16 - GET BACKLIGHT TIMEOUT
  7648. AX = 6500h
  7649. Return: BX = timeout in seconds (0-300)
  7650. Desc: returns the time after which the backlight will turn off
  7651. SeeAlso: AH=63h,AH=64h,AX=6501h,INT 15/AH=74h
  7652. --------V-106501----------------------------------
  7653. INT 10 - HUNTER 16 - SET BACKLIGHT TIMEOUT
  7654. AX = 6501h
  7655. BX = timeout in seconds (0-300)
  7656. Return: nothing
  7657. Desc: set the idle time after which the backlight will turn off
  7658. SeeAlso: AH=64h,AX=6500h
  7659. --------V-1066------------------------------------
  7660. INT 10 - HUNTER 16 - SPLIT DISPLAY
  7661. AH = 66h
  7662. AL = control bits (see #00187)
  7663. BH = top row of lower section of LCD (0..7)
  7664. BL = top row of lower section of the virtual screen (0..24)
  7665. Return: nothing
  7666. Desc: split the LCD screen horizontally into two parts; each part may be
  7667. individually scrollable or fixed.
  7668. Note: the Hunter 16 has a 240x64 LCD display which serves as a window into
  7669. a 640x200 virtual screen
  7670. Bitfields for HUNTER 16 control bits:
  7671. Bit(s) Description (Table 00187)
  7672. 0-1 01: no split, 10: allow split
  7673. 2 allow scrolling the upper part
  7674. 3 allow scrolling the lower part
  7675. --------V-106A00BX0000-----------------------
  7676. INT 10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES
  7677. AX = 6A00h
  7678. BX = 0000h
  7679. CX = 0000h
  7680. DX = buffer length (may be 0)
  7681. ES:DI -> buffer
  7682. Return: BX = number of bytes stored in buffer
  7683. CX = bytes required for all descriptions (0 if no DGIS)
  7684. Note: buffer contains descriptions and addresses of DGIS-compatible
  7685. display(s) and printer(s)
  7686. SeeAlso: AX=6A02h
  7687. --------V-106A01CX0000-----------------------
  7688. INT 10 - Direct Graphics Interface Standard (DGIS) - REDIRECT CHARACTER OUTPUT
  7689. AX = 6A01h
  7690. CX = 0000h
  7691. ES:DI = address of device to send INT 10 output to
  7692. Return: CX = 0000h output could not be redirected
  7693. else INT 10h output now routed to requested display
  7694. SeeAlso: AX=6A02h
  7695. --------V-106A02-----------------------------
  7696. INT 10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE
  7697. AX = 6A02h
  7698. ES:DI = 0000h:0000h
  7699. Return: ES:DI = 0000h:0000h if current display is non-DGIS
  7700. else address of the current DGIS INT 10 display
  7701. SeeAlso: AX=6A00h,AX=6A01h
  7702. --------V-106D74-----------------------------
  7703. INT 10 - MTRFONTS - INSTALLATION CHECK
  7704. AX = 6D74h ('mt')
  7705. DS:0104h = signature "MtRfOnTs"
  7706. Return: AX = 4D54h ('MT') if installed
  7707. ES = PSP segment of resident code
  7708. Program: MTRFONTS is a shareware TSR (part of the MTR package) by Mechon Mamre
  7709. which provides Hebrew screen fonts
  7710. SeeAlso: INT 16/AX=6D74h"MTRTSR"
  7711. --------V-106E00-----------------------------
  7712. INT 10 - Paradise VGA internal - GET ???
  7713. AX = 6E00h
  7714. Return: BX = 5744h ('WD') if supported
  7715. DH:AH:AL = last three ASCII digits of ROM serial number
  7716. CL = ???
  7717. CH = ???
  7718. SeeAlso: AX=6E04h,AX=6E05h
  7719. --------V-106E04-----------------------------
  7720. INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ???
  7721. AX = 6E04h
  7722. Return: BX = screen width (columns)
  7723. CX = screen height (lines)
  7724. AH = ??? (05h or FFh)
  7725. AL = ??? (04h or video mode)
  7726. SeeAlso: AX=6E00h,AX=6E05h
  7727. --------V-106E05-----------------------------
  7728. INT 10 - Paradise VGA internal - SET MODE
  7729. AX = 6E05h
  7730. BL = mode
  7731. Return: nothing
  7732. Note: like AH=00h, AL=BL.
  7733. SeeAlso: AH=00h,AX=6E00h,AX=6E04h,AX=6F05h
  7734. --------V-106F00-----------------------------
  7735. INT 10 - HP Vectra EX-BIOS - INSTALLATION CHECK
  7736. AX = 6F00h
  7737. BX <> 4850h (usually set to 0000h for simplicity)
  7738. Return: BX = 4850h ('HP') indicates HP Extended BIOS video functions present
  7739. AX destroyed
  7740. SeeAlso: AX=6F00h"Video7",AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
  7741. SeeAlso: INT 14/AX=6F00h,INT 16/AX=6F00h,INT 17/AX=6F00h,INT 33/AX=6F00h
  7742. --------V-106F00BX0000-----------------------
  7743. INT 10 - VIDEO - Video7 VGA,VEGA VGA - INSTALLATION CHECK
  7744. AX = 6F00h
  7745. BX = 0000h
  7746. Return: BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present
  7747. SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
  7748. --------V-106F01-----------------------------
  7749. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP EX-BIOS - GET MONITOR INFO
  7750. AX = 6F01h
  7751. Return: AL = monitor type code (HP,VEGA VGA only) (see #00188)
  7752. AH = status register information (see #00189)
  7753. CL = current value of Extended Control register (HP Ext BIOS, and only
  7754. if AL=41h) (see #00190)
  7755. Notes: bits 0-3 are the same as the EGA/VGA status register bits 0-3
  7756. supported by original HP Vectra AT and by ES/QS/RS series Vectras
  7757. (Table 00188)
  7758. Values for monitor type code (HP Extended BIOS):
  7759. 00h non-HP card with ROM and possibly its own INT 10h driver
  7760. 41h MultiMode video display adapter
  7761. 42h-44h reserved
  7762. 45h industry standard monochrome display adapter
  7763. 46h industry standard color display adapter
  7764. 51h reserved
  7765. Bitfields for status register information:
  7766. Bit(s) Description (Table 00189)
  7767. 0 display enable
  7768. 0 = display enabled
  7769. 1 = vertical or horizontal retrace in progress
  7770. 1 light pen flip flop set
  7771. 2 light pen switch activated
  7772. 3 vertical sync
  7773. 4 monitor resolution
  7774. 0 = high resolution (>200 lines)
  7775. 1 = low resolution (<=200 lines)
  7776. 5 display type (0 = color, 1 = monochrome)
  7777. 6,7 diagnostic bits
  7778. Note: bits 0-3 are the same as the EGA/VGA status register bits 0-3
  7779. --------V-106F02-----------------------------
  7780. INT 10 - HP Vectra EX-BIOS - SET MONITOR INFO
  7781. AX = 6F02h
  7782. BL = new value for extended control register (see #00190)
  7783. Return: AX,BL destroyed
  7784. Notes: this function is only valid when an HP MultiMode Video Display Adapter
  7785. is installed
  7786. the Extended Control register is at I/O address 3DDh
  7787. SeeAlso: AX=6F01h,AX=6F03h
  7788. Bitfields for HP Vectra extended control register:
  7789. Bit(s) Description (Table 00190)
  7790. 0 screen resolution (0 = 200 lines, 1 = 400 lines)
  7791. 1 underline enable (if set, 'blue' of fg color = underline)
  7792. 2 font (0 = Standard-8, 1 = HP-Roman-8)
  7793. 3 memory disabled for CPU access
  7794. 4 allow access to full 32K memory instead of wrapping at 16K
  7795. 5 select second 16K page instead of first
  7796. 6,7 unused
  7797. --------V-106F03-----------------------------
  7798. INT 10 - HP Vectra EX-BIOS - MODIFY MONITOR INFO
  7799. AX = 6F03h
  7800. BH = exclude mask (set bits are not modified)
  7801. BL = new values for bits indicated by BH (see #00190)
  7802. Return: AX destroyed
  7803. Notes: this function is only valid when an HP MultiMode Video Display Adapter
  7804. is installed
  7805. supported by original HP Vectra AT and by ES/QS/RS series Vectras
  7806. SeeAlso: AX=6F01h,AX=6F02h
  7807. --------V-106F04-----------------------------
  7808. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Vectra - GET MODE AND SCREEN RESOLUTION
  7809. AX = 6F04h
  7810. Return: AL = current video mode (see #00191)
  7811. BX = horizontal columns (text) or pixels (graphics)
  7812. CX = vertical columns (text) or pixels (graphics)
  7813. SeeAlso: AX=6F05h
  7814. --------V-106F05-----------------------------
  7815. INT 10 - VIDEO - Video7 VGA,VEGA EXTENDED EGA/VGA,HP Vectra - SET VIDEO MODE
  7816. AX = 6F05h
  7817. BL = mode (see #00191)
  7818. Return: AX,BL destroyed
  7819. Notes: also supported by the HP Vectra Extended BIOS on the original
  7820. HP Vectra AT and by ES/QS/RS series Vectras
  7821. on the HP Vectra, this function rather than AH=00h must be used to
  7822. return to an IBM-standard mode after setting an HP-specified mode
  7823. from 08h to 0Fh.
  7824. SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
  7825. (Table 00191)
  7826. Values for Video7/VEGA video mode:
  7827. text/ text pixel pixel colors disply scrn system
  7828. grph resol box resolution pages addr
  7829. 00h-13h = standard IBM modes (see #00010 at AH=00h)
  7830. 08h = T 80x27 . . mono . . HP MultiMode Video
  7831. 09h = T 80x27 . . . . . HP MultiMode Video
  7832. 0Ah = T 40x27 . . mono . . HP MultiMode Video
  7833. 0Bh = T 40x27 . . . . . HP MultiMode Video
  7834. 0Ch = reserved HP MultiMode Video
  7835. 0Dh = G . . 640x400 . . . HP MultiMode Video
  7836. 0Eh = G . . 320x400 . . . HP MultiMode Video
  7837. 0Fh = G . . 320x400 . . . HP MultiMode Video
  7838. 40h = T 80x43 8x8 . . . . Video7/VEGA VGA
  7839. 41h = T 132x25 8x14 . . . . Video7/VEGA VGA
  7840. 42h = T 132x43 8x8 . . . . Video7/VEGA VGA
  7841. 43h = T 80x60 8x8 . . . . Video7/VEGA VGA
  7842. 44h = T 100x60 8x8 . . . . Video7/VEGA VGA
  7843. 45h = T 132x28 8x8 . . . . Video7/VEGA VGA
  7844. 60h = G . . 752x410 16 . . Video7 VGA, VEGA VGA
  7845. 61h = G . . 720x540 16 . . Video7 VGA, VEGA VGA
  7846. = G . . 720x540 16 . . Northgate, Headland 1024i
  7847. 62h = G . . 800x600 16 . . Video7 VGA, VEGA Ext EGA
  7848. = G . . 800x600 16 . . Headland 1024i
  7849. 63h = G . . 1024x768 2 . . Video7 VGA
  7850. 64h = G . . 1024x768 4 . . Video7 VGA
  7851. 65h = G . . 1024x768 16 . . Video7 VGA, VEGA Ext EGA
  7852. = G . . 1024x768 16 . . Headland 1024i
  7853. 66h = G . . 640x400 256 . . Video7 VGA, VEGA Ext VGA
  7854. = G . . 640x400 256 . . Northgate, Headland 1024i
  7855. 67h = G . . 640x480 256 . . Video7 VGA, VEGA Ext VGA
  7856. = G . . 640x480 256 . . Headland 1024i
  7857. 68h = G . . 720x540 256 . . Video7 VGA, VEGA Ext VGA
  7858. = G . . 720x540 256 . . Headland 1024i
  7859. 69h = G . . 800x600 256 . . Video7 VGA, VEGA Ext VGA
  7860. = G . . 800x600 256 . . Headland 1024i
  7861. 70h = G . . 752x410 16gray . . Video7 VGA, VEGA VGA
  7862. 71h = G . . 720x540 16gray . . Video7 VGA, VEGA VGA
  7863. 72h = G . . 800x600 16gray . . Video7 VGA
  7864. 73h = G . . 1024x768 2gray . . Video7 VGA
  7865. 74h = G . . 1024x768 4gray . . Video7 VGA
  7866. 75h = G . . 1024x768 16gray . . Video7 VGA
  7867. 76h = G . . 640x400 256gray . . Video7 VGA
  7868. 77h = G . . 640x480 256gray . . Video7 VGA
  7869. 78h = G . . 720x540 256gray . . Video7 VGA
  7870. 79h = G . . 800x600 256gray . . (future)
  7871. SeeAlso: AH=00h,#00010,AX=0070h,#00011,AX=007Eh,AX=6F04h,#00083
  7872. Index: video modes;Video 7|video modes;VEGA|video modes;Headland
  7873. --------V-106F06-----------------------------
  7874. INT 10 - VIDEO - Video7 VGA,VEGA VGA - SELECT AUTOSWITCH MODE
  7875. AX = 6F06h
  7876. BL = Autoswitch mode select
  7877. 00h select EGA/VGA-only modes
  7878. 01h select Autoswitched VGA/EGA/CGA/MGA modes
  7879. 02h select 'bootup' CGA/MGA modes
  7880. BH = enable/disable (00h enable, 01h = disable selection)
  7881. Return: nothing
  7882. --------V-106F07-----------------------------
  7883. INT 10 - VIDEO - Video7 VGA,VEGA VGA - GET VIDEO MEMORY CONFIGURATION
  7884. AX = 6F07h
  7885. Return: AL = 6Fh
  7886. AH = memory configuration
  7887. bits 0-6 = number of 256K blocks of video memory
  7888. bit 7 = DRAM/VRAM (0: DRAM, 1: VRAM)
  7889. BH = chip revision (SR8F) (S/C Chip in VEGA VGA)
  7890. BL = chip revision (SR8E) (G/A Chip in VEGA VGA)
  7891. CX = 0000h
  7892. SeeAlso: AH=12h/BL=10h
  7893. --------V-1070-------------------------------
  7894. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF VIDEO RAM
  7895. AH = 70h
  7896. Return: AX:BX -> WORD containing green plane's offset
  7897. AX:CX -> WORD containing green plane's segment
  7898. AX:DX -> WORD containing segment of red (offset 0) and blue (offset
  7899. 4000) planes
  7900. SeeAlso: AH=71h
  7901. --------V-1070------------------------------------
  7902. INT 10 - HUNTER 16 - DRAW ELLIPSE/CIRCLE
  7903. AH = 70h
  7904. DS:BX -> control block (see #00192)
  7905. Return: nothing
  7906. Desc: Draws a circle or ellipse. Only valid in graphics modes.
  7907. Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
  7908. members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  7909. SeeAlso: AH=71h"HUNTER"
  7910. Format of HUNTER 16 control block:
  7911. Offset Size Description (Table 00192)
  7912. 00h WORD center X co-ordinate
  7913. 02h BYTE center Y co-ordinate
  7914. 03h WORD radius in pixels
  7915. 05h BYTE color (00h white, 01h black, FFh invert)
  7916. 06h BYTE aspect ratio x:x (1-127)
  7917. 07h BYTE aspect ratio y:y (1-127)
  7918. --------V-107000BX0000-----------------------
  7919. INT 10 - Everex Extended Video BIOS - RETURN EMULATION STATUS
  7920. AX = 7000h
  7921. BX = 0000h
  7922. Return: AL = 70h if Trident-based Everex card
  7923. CL = monitor type (see #00193)
  7924. CH = feature bits (see #00194)
  7925. DX = video board info
  7926. bits 4-15: board ID model (see #00195)
  7927. bits 0-3: board ID revision
  7928. DI = BCD BIOS version number
  7929. SeeAlso: AX=5F01h,AH=FFh"Oak"
  7930. (Table 00193)
  7931. Values for Everex monitor type:
  7932. 00h mono
  7933. 01h CGA
  7934. 02h EGA
  7935. 03h digital multifrequency
  7936. 04h IBM PS/2
  7937. 05h IBM 8514
  7938. 06h SuperVGA
  7939. 07h analog multifrequency
  7940. 08h super multifrequency
  7941. Bitfields for Everex feature bits:
  7942. Bit(s) Description (Table 00194)
  7943. 7-6 memory size
  7944. 00 = 256K
  7945. 01 = 512K
  7946. 10 = 1024K
  7947. 11 = 2048K
  7948. 5 special oscillator present
  7949. 4 VGA protect enabled
  7950. 0 6845 emulation
  7951. (Table 00195)
  7952. Values for board model for Trident-based Everex cards:
  7953. 0236h Ultragraphics II
  7954. 0620h Vision VGA
  7955. 0673h EVGA
  7956. 0678h Viewpoint
  7957. --------V-107000BX0004-----------------------
  7958. INT 10 - Everex Extended Video BIOS - GET PAGING FUNCTION POINTER FOR CURR MODE
  7959. AX = 7000h
  7960. BX = 0004h
  7961. Return: ES:DI -> FAR paging function (call with DL = page to set)
  7962. Note: the word preceding ES:DI is the length of the function in bytes, and
  7963. the last byte of the function is a FAR return instruction.
  7964. SeeAlso: AX=4F05h,AX=7000h/BX=0000h,AX=7000h/BX=0005h
  7965. --------V-107000BX0005-----------------------
  7966. INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO
  7967. AX = 7000h
  7968. BX = 0005h
  7969. CL = maximum number of modes to get info for
  7970. CH = mode type to get info for (see #00196)
  7971. DL = monitor type to get info for
  7972. ES:DI -> buffer for mode info (see #00197)
  7973. Return: CL = total number of modes fitting criteria
  7974. CH = size of each info record
  7975. SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h
  7976. (Table 00196)
  7977. Values for Everex mode type:
  7978. 00h all modes
  7979. 01h monochrome text modes
  7980. 02h color text modes
  7981. 03h four-color CGA graphics modes
  7982. 04h two-color CGA graphics modes
  7983. 05h 16-color graphics modes
  7984. 06h 256-color graphics modes
  7985. Format of Everex mode information record:
  7986. Offset Size Description (Table 00197)
  7987. 00h BYTE mode number (bit 7 set if extended mode)
  7988. 01h BYTE mode type (see #00196)
  7989. 02h BYTE info bits (see #00198)
  7990. 03h BYTE font height
  7991. 04h BYTE text columns on screen
  7992. 05h BYTE text rows on screen
  7993. 06h WORD number of scan lines
  7994. 08h BYTE color information
  7995. bits 7-4 reserved
  7996. 3-0 bits per pixel
  7997. Bitfields for Everex info bits:
  7998. Bit(s) Description (Table 00198)
  7999. 7,6 reserved
  8000. 5 monochrome mode
  8001. 4 interlaced display
  8002. 3 requires special oscillator
  8003. 2,1 memory required (00 = 256K, 01 = 512K, 10 = 1024K, 11 = 2048K)
  8004. 0 reserved
  8005. --------V-1071-------------------------------
  8006. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF INCRAM
  8007. AH = 71h
  8008. Return: AX:BX -> WORD containing segment address of INCRAM
  8009. AX:CX -> WORD containing offset of INCRAM
  8010. SeeAlso: AH=70h"TANDY"
  8011. --------V-1071------------------------------------
  8012. INT 10 - HUNTER 16 - DRAW LINE/BOX
  8013. AH = 71h
  8014. DS:BX -> control block (see #00199)
  8015. Return: nothing
  8016. Desc: Draws a line or box. Only valid in graphics modes.
  8017. SeeAlso: AH=70h"HUNTER"
  8018. Format of HUNTER 16 control block:
  8019. Offset Size Description (Table 00199)
  8020. 00h WORD left edge X co-ordinate
  8021. 02h BYTE lower edge Y co-ordinate
  8022. 03h WORD right edge X co-ordinate
  8023. 05h BYTE upper edge Y co-ordinate
  8024. 06h BYTE color (00h white, 01h black, FFh invert)
  8025. 07h BYTE type (00h line, 01h box)
  8026. 08h BYTE if non-zero (and type is BOX) fill with color
  8027. --------V-1072-------------------------------
  8028. INT 10 - VIDEO - TANDY 2000 only - SCROLL RIGHT PART OR ALL OF SCREEN
  8029. AH = 72h
  8030. AL = number of columns to shift scroll area, 00h to clear entire area
  8031. BH = new attributes for blanked columns at left
  8032. CH,CL = row, column of upper left corner of scroll area
  8033. DH,DL = row, column of lower right corner of scroll area
  8034. Return: nothing
  8035. SeeAlso: AH=06h,AH=07h,AH=73h"TANDY",INT 15/AH=12h/BH=05h
  8036. --------V-1072------------------------------------
  8037. INT 10 - HUNTER 16 - SELECT TEXT-MODE INVERSE VIDEO MECHANISM
  8038. AH = 72h
  8039. AL = mechanism to use
  8040. 00h do not use inverse video
  8041. 01h emulate MDA. Display attribute 07h is normal video and 70h is
  8042. inverse video.
  8043. 02h use inverse video if background is non-black.
  8044. 03h use inverse video for high intensity text.
  8045. 04h use inverse video for text with background intensity greater
  8046. than foreground intensity.
  8047. 05h use inverse video for text with background color other than
  8048. black or high intensity foreground.
  8049. Return: nothing
  8050. SeeAlso: AH=70h"HUNTER",AH=71h"HUNTER"
  8051. --------V-1073-------------------------------
  8052. INT 10 - VIDEO - TANDY 2000 only - SCROLL LEFT PART OR ALL OF SCREEN
  8053. AH = 73h
  8054. AL = number of columns to shift scroll area, 00h to clear entire area
  8055. BH = new attributes for blanked columns at right
  8056. CH,CL = row, column of upper left corner of scroll area
  8057. DH,DL = row, column of lower right corner of scroll area
  8058. Return: nothing
  8059. SeeAlso: AH=06h,AH=07h,AH=72h"TANDY",INT 15/AH=12h/BH=05h
  8060. --------V-1073------------------------------------
  8061. INT 10 - HUNTER 16 - SELECT TEXT FONT
  8062. AH = 73h
  8063. AL = new font
  8064. 00h 7x7 in a 8x8 cell
  8065. 01h 5x7 in a 6x8 cell
  8066. 06h 3x5 in a 4x6 cell
  8067. Return: BH = cell width
  8068. BL = cell height
  8069. SeeAlso: AH=60h"HUNTER",AH=77h"HUNTER"
  8070. --------V-1074------------------------------------
  8071. INT 10 - HUNTER 16 - SET LCD WINDOWS POSITION
  8072. AH = 74h
  8073. DH = row (0..24)
  8074. DL = column (0..79)
  8075. Return: nothing
  8076. Desc: set the position in the virtual screen being displayed in the LCD
  8077. screen. If Split Screen (INT 10/AH=66h) is used, this call sets the
  8078. position for the window which has the cursor.
  8079. SeeAlso: AH=66h"HUNTER",AH=75h,AH=76h
  8080. --------V-1075------------------------------------
  8081. INT 10 - HUNTER 16 - SET ZOOM
  8082. AH = 75h
  8083. AL = new Zoom state (00h off, nonzero on)
  8084. Return: nothing
  8085. SeeAlso: AH=74h,AH=76h
  8086. --------V-1076------------------------------------
  8087. INT 10 - HUNTER 16 - LOOKING KEYS
  8088. AH = 76h
  8089. AL = action
  8090. 00h home the window
  8091. 01h move up one line
  8092. 02h move down one line
  8093. 03h move left one character
  8094. 04h move right one character
  8095. 05h flip window to other side of virtual screen
  8096. Return: nothing
  8097. Desc: moves the displayed screen around the virtual screen
  8098. SeeAlso: AH=74h,AH=75h
  8099. --------V-1077------------------------------------
  8100. INT 10 - HUNTER 16 - GET GRAPHICS FONT
  8101. AH = 77h
  8102. Return: AL = font number (see #00200)
  8103. SeeAlso: AH=60h"HUNTER",AH=73h"HUNTER"
  8104. (Table 00200)
  8105. Values for HUNTER 16 graphics font number:
  8106. 00h 7x7 in a 8x8 cell
  8107. 01h 5x7 in a 6x8 cell
  8108. 02h 7x9 in a 8x10 cell
  8109. 03h 14x9 in a 16x10 cell
  8110. 04h 7x18 in a 8x20 cell
  8111. 05h 14x18 in a 16x20 cell
  8112. 06h 3x5 in a 4x6 cell
  8113. Note: size is X * Y
  8114. --------V-1078------------------------------------
  8115. INT 10 - HUNTER 16 - TURN BACKLIGHT ON/OFF
  8116. AH = 78h
  8117. AL = new state of backlight (00h on, 01h off)
  8118. Return: nothing
  8119. SeeAlso: AH=64h,INT 15/AH=74h
  8120. --------V-107F-------------------------------
  8121. INT 10 - Paradise SVGA - WD90C24 INSTALLATION CHECK
  8122. AH = 7Fh
  8123. Return: AX = 1234h if WD90C24 chip installed
  8124. --------V-107F00-----------------------------
  8125. INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO
  8126. AX = 7F00h
  8127. Return: AL <> 7Fh if not supported
  8128. AL = 7Fh if supported
  8129. AH = status
  8130. 00h successful
  8131. ES:DI -> info structure (see #00201)
  8132. 01h failed
  8133. Program: the SOLLEX (Smos videO controLLer EXtensions) SuperVGA functions are
  8134. an extension to the VESA SuperVGA BIOS Extensions (see AX=4F00h) by
  8135. Seiko Epson Corporation intended to provided a standardized interface
  8136. to SuperVGA functionality not addressed by the VESA standard
  8137. SeeAlso: AX=4F00h
  8138. Format of SOLLEX SuperVGA info structure:
  8139. Offset Size Description (Table 00201)
  8140. 00h DWORD pointer to VESA function dispatch table
  8141. 04h DWORD pointer to SOLLEX function dispatch table
  8142. 08h DWORD pointer to VESA SuperVGA info (see #00077 at AX=4F00h)
  8143. 0Ch DWORD pointer to mode info structure table, consisting of
  8144. alternating ResInfo (see #00202) and VESA mode information
  8145. (see #00079 at AX=4F01h) blocks, terminated with an FFFFh word
  8146. 10h DWORD pointer to font info structure table (see #00203)
  8147. 14h WORD high resolution crystal frequency in Hz (0000h = not present)
  8148. 16h DWORD pointer to ASCIZ ID string
  8149. 1Ah DWORD pointer to timeout reset table
  8150. array of bytes, each a multiple of the minimum time increment
  8151. 1Eh WORD minimum time increment in timer ticks
  8152. 20h BYTE inverse options supported
  8153. bit 0: inverse supported
  8154. bits 1-7: reserved
  8155. 21h BYTE normal color value
  8156. 22h BYTE inverse color value
  8157. 23h WORD port to be accessed for normal/inverse settings
  8158. 25h WORD type of interface chip (currently undefined)
  8159. 27h WORD program operational mode
  8160. bits 1-0: 00 no preference
  8161. 01 terse (minimum detail in program messages)
  8162. 10 verbose
  8163. 11 use menus if supported, verbose mode otherwise
  8164. bits 7-2: reserved
  8165. 29h WORD SOLLEX specification version
  8166. 2Bh WORD version of VESA/SOLLEX implementation
  8167. 2Dh DWORD offset to relocatable portion of SOLLEX extensions (for CONFIG)
  8168. 2Eh DWORD offset to unused section of the extensions ROM
  8169. 31h 16 BYTEs reserved
  8170. Note: all DWORD pointers initially require segment fixups; if the segment
  8171. is 0000h, it should be changed to the returned ES, otherwise it
  8172. may be assumed to be correct
  8173. Format of SOLLEX SuperVGA ResInfo:
  8174. Offset Size Description (Table 00202)
  8175. 00h WORD 16-bit mode number
  8176. 02h WORD adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA)
  8177. 04h WORD display info (see #00206)
  8178. 06h DWORD pointer to video parameter table
  8179. 0Ah BYTE replacement entry in master Video Parameter
  8180. 0Bh BYTE mode requested for mode set by BIOS
  8181. 0Ch DWORD pointer to LoadReg table
  8182. 10h BYTE index into table of clock values (see #00204)
  8183. SeeAlso: #00201
  8184. Format of SOLLEX SuperVGA font info table [array] entry:
  8185. Offset Size Description (Table 00203)
  8186. 00h BYTE required font height
  8187. 01h BYTE parameter to load text mode font
  8188. 02h BYTE parameter to load graphics mode font
  8189. SeeAlso: #00201
  8190. (Table 00204)
  8191. Values for SOLLEX SuperVGA clock value index:
  8192. 00h 25 MHz
  8193. 01h 28 MHz
  8194. 02h PCLK
  8195. 03h 31.5 MHz (VESA 640x480)
  8196. 04h reserved
  8197. 05h 16 MHz (EGA)
  8198. 06h PCLK
  8199. 07h 24 MHz (EGA)
  8200. 08h 25 MHz
  8201. 09h 28 MHz
  8202. 0Ah 36 MHz
  8203. 0Bh 45 MHz (for 1024x768)
  8204. 0Ch 80 MHz
  8205. 0Dh 40 MHz
  8206. 0Eh 65 MHz
  8207. 0Fh 1 MHz (for powerdown)
  8208. SeeAlso: #00201
  8209. --------V-107F00BX4000-----------------------
  8210. INT 10 - Diamond Stealth 24 - GET S3 INFORMATION BLOCK
  8211. AX = 7F00h
  8212. BX = 4000h
  8213. Return: AX = 007Fh if supported
  8214. DX:BX -> DAC set mode routine
  8215. SeeAlso: AX=7F00h/BX=4001h,AX=7F00h/BX=4002h,#00732 at INT 1A/AX=B102h
  8216. --------V-107F00BX4001-----------------------
  8217. INT 10 - Diamond Stealth 24 - GET LINEAR ADDRESS
  8218. AX = 7F00h
  8219. BX = 4001h
  8220. Return: AX = 007Fh if supported
  8221. CX = current linear address base (high word)
  8222. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4002h
  8223. --------V-107F00BX4002-----------------------
  8224. INT 10 - Diamond Stealth 24 - SET LINEAR ADDRESS
  8225. AX = 7F00h
  8226. BX = 4002h
  8227. CX = new linear address base (high word)
  8228. Return: AX = 007Fh if supported
  8229. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4001h
  8230. --------V-107F01BL00-------------------------
  8231. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER
  8232. AX = 7F01h
  8233. BL = 00h
  8234. CX = adapter request (see #00205)
  8235. Return: AL <> 7Fh if not supported
  8236. AL = 7Fh if supported
  8237. AH = status
  8238. 00h successful
  8239. 01h failed
  8240. Note: initializes video hardware to a particular standard
  8241. SeeAlso: AX=7F00h"SOLLEX",AX=7F01h/BL=01h,AX=7F01h/BL=02h
  8242. Bitfields for SOLLEX SuperVGA adapter request:
  8243. Bit(s) Description (Table 00205)
  8244. 1-0 adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA)
  8245. 2 reserved
  8246. 4-3 change displays (00 none, 01 analog 10 digital 11 panel)
  8247. 6-5 desired monitor sense (01 color, 10 mono, 11=8514)
  8248. 7 lock override
  8249. 8 alternate adapter mode
  8250. 15-9 reserved
  8251. --------V-107F01BL01-------------------------
  8252. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER
  8253. AX = 7F01h
  8254. BL = 01h
  8255. Return: AL <> 7Fh if not supported
  8256. AL = 7Fh if supported
  8257. AH = status
  8258. 00h successful
  8259. 01h failed
  8260. BX = adapter type (see #00205)
  8261. DX = display type (see #00206)
  8262. SeeAlso: AX=7F00h"SOLLEX",AX=7F01h/BL=00h,AX=7F01h/BL=02h
  8263. Bitfields for SOLLEX SuperVGA display type:
  8264. Bit(s) Description (Table 00206)
  8265. 15-9 reserved
  8266. 8 alternate display active
  8267. 7 Enhanced Color Display monitor active
  8268. 6 multi-frequency digital monitor active
  8269. 5 PS/2-type monitor active
  8270. 4 plasma/electroluminescent panel active
  8271. 3 LCD panel active
  8272. 2 multi-frequency analog monitor active
  8273. 1-0 monitor sense (00 none, 01 color, 10 mono, 11=8514)
  8274. --------V-107F01BL02-------------------------
  8275. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT
  8276. AX = 7F01h
  8277. BL = 02h
  8278. CX = adapter request (see #00205)
  8279. Return: AL <> 7Fh if not supported
  8280. AL = 7Fh if supported
  8281. AH = status
  8282. 00h requested setting can successfully be made
  8283. 01h requested setting not available in this configuration
  8284. SeeAlso: AX=7F00h"SOLLEX",AX=7F01h/BL=00h
  8285. --------V-107F02BL00-------------------------
  8286. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT
  8287. AX = 7F02h
  8288. BL = 00h
  8289. CX = display output setting (see #00207)
  8290. Return: AL <> 7Fh if not supported
  8291. AL = 7Fh if supported
  8292. AH = status
  8293. 00h successful
  8294. 01h failed
  8295. SeeAlso: AX=7F00h"SOLLEX",AX=7F02h/BL=00h
  8296. Bitfields for SOLLEX SuperVGA display output setting:
  8297. Bit(s) Description (Table 00207)
  8298. 0 CRTC control in 2,1 valid
  8299. 1 enable digital output
  8300. 2 enable analog output
  8301. 3 panel control in 5,4 valid
  8302. 4 enable LCD output
  8303. 5 enable plasma/EL output
  8304. 6 inverse control in 7 valid
  8305. 7 0=normal, 1=inverse
  8306. 15-8 reserved
  8307. --------V-107F02BL01-------------------------
  8308. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT
  8309. AX = 7F02h
  8310. BL = 01h
  8311. Return: AL <> 7Fh if not supported
  8312. AL = 7Fh if supported
  8313. AH = status
  8314. 00h successful
  8315. BX = display output setting (see #00207)
  8316. CX = displays attached (see #00208)
  8317. 01h failed
  8318. SeeAlso: AX=7F00h"SOLLEX",AX=7F02h/BL=00h
  8319. Bitfields for SOLLEX SuperVGA displays attached:
  8320. Bit(s) Description (Table 00208)
  8321. 0 PS/2 display on analog output
  8322. 1 multi-frequency monitor on analog output
  8323. 2 LCD panel attached
  8324. 3 plasma/electroluminescent panel attached
  8325. 4 multi-frequency monitor on digital output
  8326. 5 Enhanced Color Display attached to digital outpt
  8327. 6 alternate display
  8328. 15-7 reserved
  8329. --------V-107F03BL00-------------------------
  8330. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO
  8331. AX = 7F03h
  8332. BL = 00h
  8333. CX = support type
  8334. 0000h VGA, 0001h EGA, 0002h CGA, 0003h MDA, 0004h extensions,
  8335. 0005h-0012h reserved for SOLLEX, 0013h Hercules,
  8336. 0014h-001Fh reserved for SOLLEX, 0020h-00FFh reserved for OEM
  8337. Return: AL <> 7Fh if not supported
  8338. AL = 7Fh if supported
  8339. AH = status
  8340. 00h successful
  8341. CX = size of video support code
  8342. DX = segment of physical video support (0000h if no ROM)
  8343. ES = segment of active video support
  8344. ES:DI -> information block (DI = 0000h if none available)
  8345. 01h failed
  8346. SeeAlso: AX=7F03h/BL=01h
  8347. --------V-107F03BL01-------------------------
  8348. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT
  8349. AX = 7F03h
  8350. BL = 01h
  8351. CX = support request
  8352. ES = segment of support code
  8353. Return: AL <> 7Fh if not supported
  8354. AL = 7Fh if supported
  8355. AH = status
  8356. 00h successful
  8357. 01h failed
  8358. Note: initializes the indicated video support by calling ES:0003h; this
  8359. function may be used to switch the active video support back to
  8360. ROM after AX=7F03h/BL=02h
  8361. SeeAlso: AX=7F03h/BL=00h
  8362. --------V-107F03BL02-------------------------
  8363. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT
  8364. AX = 7F03h
  8365. BL = 02h
  8366. CX = support request
  8367. ES = destination segment
  8368. Return: AL <> 7Fh if not supported
  8369. AL = 7Fh if supported
  8370. AH = status
  8371. 00h successful
  8372. 01h failed
  8373. SeeAlso: AX=7F00h"SOLLEX",AX=7F03h/BL=01h
  8374. --------V-107F04BL00-------------------------
  8375. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE
  8376. AX = 7F04h
  8377. BL = 00h
  8378. CX = new power state
  8379. Return: AL <> 7Fh if not supported
  8380. AL = 7Fh if supported
  8381. AH = status
  8382. 00h successful
  8383. 01h failed
  8384. Note: higher values progressively reduce the operations available on the
  8385. video adapter while yielding increasing power savings
  8386. SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=01h
  8387. --------V-107F04BL01-------------------------
  8388. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE
  8389. AX = 7F04h
  8390. BL = 01h
  8391. Return: AL <> 7Fh if not supported
  8392. AL = 7Fh if supported
  8393. AH = status
  8394. 00h successful
  8395. CX = current power state
  8396. DX = maximum state
  8397. 01h failed
  8398. SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=00h
  8399. --------V-107F04BL02-------------------------
  8400. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET
  8401. AX = 7F04h
  8402. BL = 02h
  8403. CX = timeout reset
  8404. Return: AL <> 7Fh if not supported
  8405. AL = 7Fh if supported
  8406. AH = status
  8407. 00h successful
  8408. 01h failed
  8409. SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=03h
  8410. --------V-107F04BL03-------------------------
  8411. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET
  8412. AX = 7F04h
  8413. BL = 03h
  8414. Return: AL <> 7Fh if not supported
  8415. AL = 7Fh if supported
  8416. AH = status
  8417. 00h successful
  8418. BX = time increment
  8419. CX = current timeout reset
  8420. DX = maximum timeout reset
  8421. ES:DI -> timeout reset table (array of bytes)
  8422. 01h failed
  8423. Note: the timeout period is computed as (BYTE ES:[DI+CX]) * BX timer ticks
  8424. SeeAlso: AX=7F00h"SOLLEX",AX=7F04h/BL=02h
  8425. --------V-107F05-----------------------------
  8426. INT 10 - SOLLEX SuperVGA - LOAD REGISTER
  8427. AX = 7F05h
  8428. ES:DI -> register value table (see #00209)
  8429. Return: AL <> 7Fh if not supported
  8430. AL = 7Fh if supported
  8431. AH = status
  8432. 00h successful
  8433. 01h failed
  8434. SeeAlso: AH=F1h,AH=F3h,AH=F5h
  8435. Format of SOLLEX SuperVGA register value table:
  8436. Offset Size Description (Table 00209)
  8437. 00h WORD base I/O register (FFFFh = end of list)
  8438. 02h 2N BYTEs pairs of values to be written to the base I/O register as an
  8439. index value and the following register as a data byte
  8440. 2N+2 WORD FFFFh (end of data list)
  8441. ... (repeats until FFFFh base address)
  8442. --------V-107F06-----------------------------
  8443. INT 10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL
  8444. AX = 7F06h
  8445. BL = subfunction
  8446. 00h set multiple font state
  8447. CX = new state (00h off, 01h on)
  8448. 01h get multiple font state
  8449. Return: BL = current state (00h off, 01h on)
  8450. Return: AL <> 7Fh if not supported
  8451. AL = 7Fh if supported
  8452. AH = status
  8453. 00h successful
  8454. 01h failed
  8455. SeeAlso: AX=1100h,AX=1103h
  8456. --------V-107F07-----------------------------
  8457. INT 10 - SOLLEX SuperVGA - FILL VIDEO RAM
  8458. AX = 7F07h
  8459. BL = how much to fill
  8460. 00h regen size
  8461. 01h all video memory
  8462. CX = pattern to write (normally 0720h for text modes and 0000h for gr)
  8463. Return: AL <> 7Fh if not supported
  8464. AL = 7Fh if supported
  8465. AH = status
  8466. 00h successful
  8467. 01h failed
  8468. SeeAlso: AH=06h
  8469. --------A-1080-------------------------------
  8470. INT 10 - CU Writer v1.4 - GET OPTION
  8471. AH = 80h
  8472. AL = desired option
  8473. Return: ???
  8474. Program: CU Writer is a public-domain Thai-English word processor from
  8475. Chulalongkorn University, Bangkok
  8476. SeeAlso: AH=81h"CU Writer"
  8477. --------Q-1080--DX4456-----------------------
  8478. INT 10 U - VIDEO - DESQview 2.0x only - internal - SET ??? HANDLER
  8479. AH = 80h
  8480. DX = 4456h ('DV')
  8481. ES:DI -> FAR subroutine to be called on ???
  8482. Return: DS = segment of DESQview data structure for video buffer
  8483. Note: this function is probably meant for internal use only, due to the magic
  8484. value required in DX
  8485. the subroutine seems to be called when the DESQview menu is accessed;
  8486. on entry, AL = 03h or 04h
  8487. --------A-1081-------------------------------
  8488. INT 10 - CU Writer v1.4 - SET OPTION
  8489. AH = 81h
  8490. ???
  8491. Return: ???
  8492. SeeAlso: AH=80h"CU Writer"
  8493. --------Q-1081--DX4456-----------------------
  8494. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET ???
  8495. AH = 81h
  8496. DX = 4456h ('DV')
  8497. Return: ES = segment of DESQview data structure for video buffer
  8498. BYTE ES:[0] = current window number in DV 2.0x
  8499. Note: this function is probably meant for internal use only, due to the magic
  8500. value required in DX
  8501. SeeAlso: AH=82h"DESQview"
  8502. --------Q-1082--DX4456-----------------------
  8503. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET CURRENT WINDOW INFO
  8504. AH = 82h
  8505. DX = 4456h ('DV')
  8506. Return: DS = segment in DESQview for data structure
  8507. in DV 2.00,
  8508. BYTE DS:[0] = window number
  8509. WORD DS:[1] = segment of other data structure
  8510. WORD DS:[3] = segment of window's object handle
  8511. ES = segment of DESQview data structure for video buffer
  8512. AL = current window number
  8513. AH = ???
  8514. BL = direct screen writes
  8515. 00h program does not do direct writes
  8516. 01h program does direct writes, so shadow buffer not usable
  8517. BH = ???
  8518. CL = current video mode
  8519. CH = ???
  8520. Note: this function is probably meant for internal use only, due to the magic
  8521. value required in DX
  8522. SeeAlso: AH=81h"DESQview"
  8523. --------J-108200-----------------------------
  8524. INT 10 - VIDEO - AX PC - GET/SET SCROLL MODE
  8525. AX = 8200h
  8526. BL = new scroll mode or FFh to get current mode
  8527. 00h dynamic, 01h software
  8528. Return: AL = scroll mode (current mode if BL=FFh, previous mode otherwise)
  8529. SeeAlso: AH=06h,AH=07h
  8530. --------J-108300-----------------------------
  8531. INT 10 - VIDEO - AX PC - GET VIDEO RAM ADDRESS
  8532. AX = 8300h
  8533. Return: AX = offset of video RAM
  8534. ES:BX -> virtual text RAM buffer
  8535. SeeAlso: AX=5201h
  8536. ----------1086-------------------------------
  8537. INT 10 - ???
  8538. AH = 86h
  8539. Note: called by Diamond Stealth64 Video STLTH64.VXD
  8540. SeeAlso: INT 2F/AX=4021h
  8541. --------N-108B-------------------------------
  8542. INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE
  8543. AH = 8Bh
  8544. Return: nothing
  8545. SeeAlso: AH=92h,AH=93h
  8546. --------N-1090-------------------------------
  8547. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE
  8548. AH = 90h
  8549. Return: AL = current video mode (see #00010 at AH=00h)
  8550. SeeAlso: AH=91h
  8551. --------N-1091-------------------------------
  8552. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE
  8553. AH = 91h
  8554. Return: AL = video adapter type (see #00210)
  8555. Note: types less than 80h do not imply that the current user is on the host
  8556. SeeAlso: AH=90h
  8557. (Table 00210)
  8558. Values for Alloy MW386 video adapter type:
  8559. 00h monochrome
  8560. 01h Hercules monochrome graphics
  8561. 02h CGA
  8562. 03h EGA
  8563. 04h VGA
  8564. 80h monochrome text terminal
  8565. 81h Hercules graphics terminal
  8566. 82h color graphics terminal
  8567. --------N-1092-------------------------------
  8568. INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES
  8569. AH = 92h
  8570. Return: nothing
  8571. Note: the terminal will be updated even when screen updates are inhibited if
  8572. TTY output is used
  8573. SeeAlso: AH=8Bh
  8574. --------N-1093-------------------------------
  8575. INT 10 - Alloy MW386 - REDRAW SCREEN
  8576. AH = 93h
  8577. Return: nothing
  8578. SeeAlso: AH=8Bh,AH=FFh
  8579. --------V-109508-----------------------------
  8580. INT 10 - VHRBIOS.SYS - ???
  8581. AX = 9508h
  8582. Return: ???
  8583. Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius"
  8584. black&white A4/portrait monitor
  8585. SeeAlso: AH=96h"VHRBIOS.SYS",AH=F0h"VHRBIOS.SYS"
  8586. --------V-1096-------------------------------
  8587. INT 10 - VHRBIOS.SYS - GET OTHER DISPLAY INFO
  8588. AH = 96h
  8589. Return: AL = display type (see AH=1Ah)
  8590. AH = ??? (possibly related to Micro Channel support)
  8591. Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius"
  8592. black&white A4/portrait monitor
  8593. Desc: returns info on any non-Genius video adapter in the system
  8594. SeeAlso: AX=9508h"VHRBIOS.SYS",AH=F0h"VHRBIOS.SYS"
  8595. --------A-10A0-------------------------------
  8596. INT 10 - CU Writer v1.4 - SET PIXEL WRITE MODE
  8597. AH = A0h
  8598. ???
  8599. Return: ???
  8600. Program: CU Writer is a public-domain Thai-English word processor from
  8601. Chulalongkorn University, Bangkok
  8602. SeeAlso: AH=80h"CU Writer",AH=B0h
  8603. --------p-10A000-----------------------------
  8604. INT 10 - ATI Mach64 BIOS - ???
  8605. AX = A000h
  8606. CL = ??? (bits 2-0 may not be 000)
  8607. CH = ??? (81h or ???)
  8608. DX = segment of ??? (if CH=81h)
  8609. ???
  8610. Return: AX = ???
  8611. SeeAlso: AX=4F10h/BL=00h,AX=A001h
  8612. ----------10A001-----------------------------
  8613. INT 10 - ATI Mach64 BIOS - ???
  8614. AX = A001h
  8615. CL = ??? flags
  8616. ???
  8617. Return: AH = status
  8618. 00h successful
  8619. 01h failed
  8620. ???
  8621. SeeAlso: AX=A000h,AX=A002h
  8622. ----------10A002-----------------------------
  8623. INT 10 - ATI Mach64 BIOS - ???
  8624. AX = A002h
  8625. CL = ??? (bits 2-0 may not be 000)
  8626. CH = ??? (81h or ???)
  8627. DX = segment of ??? (if CH=81h)
  8628. ???
  8629. Return: AH = status
  8630. 00h successful
  8631. 01h failed
  8632. ???
  8633. Note: executes AX=A000h, then AX=A001h if A000h was successful
  8634. SeeAlso: AX=A000h,AX=A001h
  8635. ----------10A003-----------------------------
  8636. INT 10 - ATI Mach64 BIOS - ???
  8637. AX = A003h
  8638. BX = ???
  8639. ???
  8640. Return: AH = status (00h successful)
  8641. ???
  8642. SeeAlso: AX=A000h,AX=A002h
  8643. --------V-10A004-----------------------------
  8644. INT 10 - PhoenixVIEW/LC - VIDEO DISPLAY TYPE
  8645. AX = A004h
  8646. ???
  8647. Return: ???
  8648. Desc: configure display parameters
  8649. SeeAlso: AX=A01Bh"PhoenixVIEW/LC"
  8650. ----------10A004-----------------------------
  8651. INT 10 - ATI Mach64 BIOS - ???
  8652. AX = A004h
  8653. BX = video mode??? (0000-00FFh)
  8654. DX = ??? (sent to some port [66ECh???] one bit at a time, high to low)
  8655. ???
  8656. Return: AH = status
  8657. 00h successful
  8658. 01h failed
  8659. ???
  8660. SeeAlso: AX=A000h,AX=A002h
  8661. ----------10A005-----------------------------
  8662. INT 10 - ATI Mach64 BIOS - ???
  8663. AX = A005h
  8664. CL = ??? flags (bits 0,2, others?)
  8665. ???
  8666. Return: AH = status
  8667. 00h successful
  8668. 01h failed
  8669. ???
  8670. SeeAlso: AX=A000h,AX=A002h
  8671. ----------10A006-----------------------------
  8672. INT 10 - ATI Mach64 BIOS - ???
  8673. AX = A006h
  8674. ???
  8675. Return: AH = status
  8676. 00h successful
  8677. 01h failed
  8678. ???
  8679. SeeAlso: AX=A000h,AX=A002h
  8680. ----------10A007-----------------------------
  8681. INT 10 - ATI Mach64 BIOS - GET ???
  8682. AX = A007h
  8683. Return: AH = 00h (successful)
  8684. AL = ??? (00h)
  8685. BX = ??? (15A0h in examined BIOS)
  8686. DX = segment of BIOS
  8687. SeeAlso: AX=A000h,AX=A002h
  8688. ----------10A008-----------------------------
  8689. INT 10 - ATI Mach64 BIOS - GET ??? SIZE
  8690. AX = A008h
  8691. CL = ??? flags
  8692. ???
  8693. Return: AH = 00h (successful)
  8694. BX = size of ??? (0046h if CL bit 0 clear on entry)
  8695. SeeAlso: AX=A000h,AX=A009h
  8696. ----------10A009-----------------------------
  8697. INT 10 - ATI Mach64 BIOS - GET ???
  8698. AX = A009h
  8699. DX:BX -> buffer for ???
  8700. CL = ??? flags
  8701. ???
  8702. Return: AH = status
  8703. 00h successful
  8704. DX:BX buffer filled
  8705. 01h failed
  8706. ???
  8707. SeeAlso: AX=A000h,AX=A008h
  8708. ----------10A00A-----------------------------
  8709. INT 10 - ATI Mach64 BIOS - GET ???
  8710. AX = A00Ah
  8711. Return: AH = 00h (successful)
  8712. AL = ??? (01h)
  8713. BX = ??? (5938h)
  8714. CX = ??? (595Eh)
  8715. DX = segment of BIOS
  8716. SeeAlso: AX=A000h,AX=A002h
  8717. ----------10A00B-----------------------------
  8718. INT 10 - ATI Mach64 BIOS - ???
  8719. AX = A00Bh
  8720. BX = ???
  8721. CL = ??? flags
  8722. ???
  8723. Return: AH = status
  8724. 00h successful
  8725. 01h failed
  8726. ???
  8727. SeeAlso: AX=A000h,AX=A002h
  8728. --------p-10A00C-----------------------------
  8729. INT 10 - ATI Mach64 BIOS - SET SLEEP MODE
  8730. AX = A00Ch
  8731. CL = new state
  8732. 00h normal operation
  8733. 01h standby
  8734. 02h suspend
  8735. 03h off
  8736. Return: AH = status
  8737. 00h successful
  8738. 01h failed
  8739. Note: CL bit 2 affects values written to video card's ports
  8740. SeeAlso: AX=A000h,AX=A00Dh,AX=4F00h,AX=4F10h/BL=01h
  8741. ----------10A00D-----------------------------
  8742. INT 10 - ATI Mach64 BIOS - GET SLEEP MODE
  8743. AX = A00Dh
  8744. Return: AH = 00h (successful)
  8745. CL = current power mode
  8746. 00h normal operation
  8747. 01h standby
  8748. 02h suspend
  8749. 03h off
  8750. SeeAlso: AX=A00Ch,AX=4F10h/BL=02h
  8751. ----------10A00E-----------------------------
  8752. INT 10 - ATI Mach64 BIOS - SET ???
  8753. AX = A00Eh
  8754. CL = ??? (00h-03h)
  8755. Return: AH = status
  8756. 00h successful
  8757. 01h failed
  8758. Note: CL zero/nonzero are treated differently
  8759. SeeAlso: AX=A000h,AX=A00Fh
  8760. ----------10A00F-----------------------------
  8761. INT 10 - ATI Mach64 BIOS - GET ???
  8762. AX = A00Fh
  8763. Return: AH = 00h (successful)
  8764. CL = ??? (00h-03h, read from PORT 42ECh)
  8765. SeeAlso: AX=A000h,AX=A00Eh
  8766. ----------10A010-----------------------------
  8767. INT 10 - ATI Mach64 BIOS - ???
  8768. AX = A010h
  8769. CL = ??? (80h/other)
  8770. ???
  8771. Return: AH = status
  8772. 00h successful
  8773. 01h failed
  8774. ???
  8775. SeeAlso: AX=A000h,AX=A002h
  8776. ----------10A011-----------------------------
  8777. INT 10 - ATI Mach64 BIOS - GET ???
  8778. AX = A011h
  8779. Return: AH = 00h (successful)
  8780. BL = ??? (1Fh)
  8781. BH = ??? (0Fh)
  8782. CL = ??? (00h)
  8783. CH = ??? (0Fh)
  8784. DX = ??? (00FFh)
  8785. SeeAlso: AX=A000h,AX=A010h
  8786. ----------10A012-----------------------------
  8787. INT 10 - ATI Mach64 BIOS - GET ???
  8788. AX = A012h
  8789. Return: AH = 00h (successful)
  8790. AL = ??? (00h)
  8791. BX = ??? (0000h)
  8792. CX = ??? (0000h)
  8793. DX = ??? (02ECh)
  8794. SeeAlso: AX=A000h,AX=A002h
  8795. ----------10A013-----------------------------
  8796. INT 10 - ATI Mach64 BIOS - ???
  8797. AX = A013h
  8798. ???
  8799. Return: AH = status
  8800. 00h successful
  8801. 01h failed
  8802. ???
  8803. Note: not implemented in examined BIOS, always returns AH=01h
  8804. SeeAlso: AX=A000h,AX=A002h
  8805. --------V-10A01B-----------------------------
  8806. INT 10 - PhoenixVIEW/LC - CRT MONITOR DETECTION
  8807. AX = A01Bh
  8808. ???
  8809. Return: ???
  8810. Desc: determine whether an external display is currently attached
  8811. SeeAlso: AX=A004h"PhoenixVIEW/LC"
  8812. --------U-10AA-------------------------------
  8813. INT 10 OU - Player's Tool 3.0 - UNINSTALL
  8814. AH = AAh
  8815. Return: ???
  8816. Note: this call has been removed in PT 3.996b
  8817. Program: Player's Tool is a game cheater by Dmitry Yakunin & Andy Robinson
  8818. SeeAlso: AH=ABh,INT 2F/AH=AAh
  8819. --------U-10AB-------------------------------
  8820. INT 10 OU - Player's Tool 3.0 - INSTALLATION CHECK
  8821. AH = ABh
  8822. Return: BH = FFh
  8823. ???
  8824. Note: this call has been removed in PT 3.996b
  8825. SeeAlso: AH=AAh,INT 2F/AH=ABh
  8826. --------A-10B0-------------------------------
  8827. INT 10 - CU Writer v1.4 - PUT PIXEL
  8828. AH = B0h
  8829. ???
  8830. Return: ???
  8831. SeeAlso: AH=A0h"CU Writer",AH=B1h,AH=B2h,AH=B3h,AH=B4h,AH=B5h,AH=D0h
  8832. --------A-10B1-------------------------------
  8833. INT 10 - CU Writer v1.4 - MOVE TO
  8834. AH = B1h
  8835. ???
  8836. Return: ???
  8837. SeeAlso: AH=B0h,AH=B2h,AH=C0h"CU Writer"
  8838. --------A-10B2-------------------------------
  8839. INT 10 - CU Writer v1.4 - DRAW LINE TO
  8840. AH = B2h
  8841. ???
  8842. Return: ???
  8843. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h,AH=B5h
  8844. --------A-10B3-------------------------------
  8845. INT 10 - CU Writer v1.4 - FLOOD FILL
  8846. AH = B3h
  8847. ???
  8848. Return: ???
  8849. SeeAlso: AH=B2h,AH=B5h
  8850. --------A-10B4-------------------------------
  8851. INT 10 - CU Writer v1.4 - DRAW RECTANGLE
  8852. AH = B4h
  8853. ???
  8854. Return: ???
  8855. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B5h
  8856. --------A-10B5-------------------------------
  8857. INT 10 - CU Writer v1.4 - DRAW FILLED RECTANGLE
  8858. AH = B5h
  8859. ???
  8860. Return: ???
  8861. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  8862. --------V-10BB-------------------------------
  8863. INT 10 U - Doorway - SET BIOS/DIRECT REDIRECTION
  8864. AH = BBh
  8865. AL = new redirection mode
  8866. 00h BIOS (hook and redirect INT 10h,etc.)
  8867. 01h DIRECT (scan video memory for changes)
  8868. Return: ???
  8869. SeeAlso: INT 16/AH=67h"Doorway"
  8870. --------V-10BD44-----------------------------
  8871. INT 10 U - Compaq QVision - ???
  8872. AX = BD44h
  8873. ???
  8874. Return: ???
  8875. Note: called by Compaq's MTX132.COM, which places the QVision in 132-column
  8876. mode
  8877. --------!---Section--------------------------
  8878. Interrupt List, part 2 of 18
  8879. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  8880. --------V-10BF--CX0000-----------------------
  8881. INT 10 - Athena Digital HGCIBM.COM - INSTALLATION CHECK
  8882. AH = BFh
  8883. CX = 0000h (???)
  8884. Return: CX = 0202h
  8885. DL = ??? (internal data, possibly version number)
  8886. --------b-10BF00-----------------------------
  8887. INT 10 - VIDEO - Compaq Extensions - SELECT EXTERNAL MONITOR
  8888. AX = BF00h
  8889. Return: nothing
  8890. Desc: specify that the external monitor become the active monitor
  8891. Note: all registers preserved and the internal monitor is blanked
  8892. SeeAlso: AX=BF01h,AX=BF12h,AH=12h/BL=35h
  8893. --------b-10BF01-----------------------------
  8894. INT 10 - VIDEO - Compaq Extensions - SELECT INTERNAL MONITOR
  8895. AX = BF01h
  8896. Return: nothing
  8897. Desc: specify that the internal monitor become the active monitor
  8898. Note: all registers preserved and the external monitor is blanked
  8899. SeeAlso: AX=BF00h,AX=BF12h,AH=12h/BL=35h
  8900. --------b-10BF02-----------------------------
  8901. INT 10 - VIDEO - Compaq Extensions - SET MASTER MODE OF CURRENT CONTROLLER
  8902. AX = BF02h
  8903. BH = master mode
  8904. 04h CGA
  8905. 05h EGA
  8906. 07h MDA
  8907. Return: nothing
  8908. SeeAlso: AX=BF03h
  8909. --------b-10BF03BX0000-----------------------
  8910. INT 10 - VIDEO - Compaq Extensions - GET ENVIRONMENT
  8911. AX = BF03h
  8912. BX = 0000h
  8913. Return: BH = active monitor
  8914. (00h = external, 01h = internal, 03h both, 04h neither)
  8915. BL = master mode (see #00211)
  8916. CH = ASIC type and version
  8917. 00h (reserved, very early Compaq VGCs)
  8918. 31h if QVision VGA
  8919. CL = switchable VDU modes supported (see #00212)
  8920. DH = internal monitor type (see #00213)
  8921. DL = external monitor type (see #00213)
  8922. SeeAlso: AX=1A00h,AX=BF00h,AX=BF01h,AX=BF02h,AX=BF11h
  8923. (Table 00211)
  8924. Values for Compaq video master mode:
  8925. 00h switchable VDU not present
  8926. 04h CGA
  8927. 05h EGA
  8928. 07h MDA
  8929. 08h switchable LCD controller present
  8930. 09h plasma VGA
  8931. 0Ah TFT (active-matrix) VGA
  8932. Bitfields for Compaq switchable VDU modes support:
  8933. Bit(s) Description (Table 00212)
  8934. 0 CGA supported
  8935. 1,2 reserved (1)
  8936. 3 MDA supported
  8937. 4 BitBLT engine available
  8938. 5 132-column support availble
  8939. 6 640x480x256 mode available
  8940. 7 8-bit DAC mode available
  8941. (Table 00213)
  8942. Values for Compaq monitor type:
  8943. 00h none
  8944. 01h dual-mode monitor
  8945. 02h 5153 RGB monitor (RGBI 16-color)
  8946. 03h Compaq Color monitor
  8947. 04h 640x400 flat panel (Plasma CGA)
  8948. 05h VGC monochrome
  8949. 06h VGC color
  8950. 07h 8-level mono LCD VGA (internal)
  8951. 1024x768 mono VGA (external)
  8952. 08h 16-level mono plasma VGA (internal)
  8953. 1024x768 color VGA (external)
  8954. 09h 4-level mono LCD CGA
  8955. 0Ah 16-level mono LCD VGA
  8956. 0Bh active-matrix color VGA
  8957. 0Ch active-matrix mono VGA
  8958. 0Dh STN color VGA
  8959. --------b-10BF04-----------------------------
  8960. INT 10 - VIDEO - Compaq Extensions - SET MODE SWITCH DELAY
  8961. AX = BF04h
  8962. BH = new state of delay (00h enabled, 01h disabled)
  8963. Return: nothing
  8964. Note: the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  8965. version of the list will provide more definite information
  8966. SeeAlso: AX=BF05h
  8967. --------b-10BF05-----------------------------
  8968. INT 10 - VIDEO - Compaq Extensions - ENABLE/DISABLE DISPLAY
  8969. AX = BF05h
  8970. BH = new state of video
  8971. 00h off
  8972. 01h on
  8973. Return: nothing
  8974. Note: the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  8975. version of the list will provide more definite information
  8976. SeeAlso: AH=12h/BL=36h,AX=BF04h
  8977. --------b-10BF06-----------------------------
  8978. INT 10 - VIDEO - Compaq SLT/286 - READ GRAY SCALE TABLE
  8979. AX = BF06h
  8980. CL = address to be read from gray scale table
  8981. Return: AL = bit 3-0 - Value read from gray scale table
  8982. CL = address to be read from gray scale table
  8983. SeeAlso: AH=12h/BL=33h,AX=BF07h
  8984. --------b-10BF07-----------------------------
  8985. INT 10 - VIDEO - Compaq SLT/286 - WRITE GRAY SCALE TABLE
  8986. AX = BF07h
  8987. CH = value to write to gray scale table
  8988. CL = address to be written to gray scale table
  8989. Return: nothing
  8990. SeeAlso: AX=BF06h,AX=BF08h
  8991. --------b-10BF08-----------------------------
  8992. INT 10 - VIDEO - Compaq SLT/286 - WRITE COLOR MIX REGISTERS
  8993. AX = BF08h
  8994. CH = bits 7-4 green weight
  8995. bits 3-0 blue weight
  8996. CL = bits 7-4 unused
  8997. bits 3-0 red weight
  8998. Return: nothing
  8999. SeeAlso: AH=12h/BL=33h,AX=BF07h
  9000. --------b-10BF09-----------------------------
  9001. INT 10 - VIDEO - Compaq Extensions - TURN ON REVERSE VIDEO
  9002. AX = BF09h
  9003. Return: CF clear
  9004. Notes: sets bit 6 of port 03CEh index 81h; in some cases also sets index 84h
  9005. to 6Fh and index 83h to 04h
  9006. supported by at least the QVision board and the LTE Lite ROM BIOS
  9007. SeeAlso: AX=BF0Ah,AX=BF0Bh
  9008. --------b-10BF0A-----------------------------
  9009. INT 10 - VIDEO - Compaq Extensions - TURN OFF REVERSE VIDEO
  9010. AX = BF0Ah
  9011. Return: CF clear
  9012. Notes: clears bit 6 of port 03CEh index 81h; in some cases also sets index 84h
  9013. to 80h and index 83h to FBh
  9014. supported by at least the QVision board and the LTE Lite ROM BIOS
  9015. SeeAlso: AX=BF09h,AX=BF0Bh
  9016. --------b-10BF0B-----------------------------
  9017. INT 10 - VIDEO - Compaq Extensions - CHECK WHETHER VIDEO REVERSED
  9018. AX = BF0Bh
  9019. Return: CF clear
  9020. AX = state (0000h normal video, 0001h reverse video)
  9021. Note: supported by at least the QVision board and the LTE Lite ROM BIOS
  9022. SeeAlso: AX=BF09h,AX=BF0Ah
  9023. --------b-10BF0C-----------------------------
  9024. INT 10 - VIDEO - Compaq Extensions - SET DAC 6-BIT MODE
  9025. AX = BF0Ch
  9026. Return: CF clear
  9027. Desc: specify that video DAC registers use only six bits of color info
  9028. Note: supported by at least the QVision board and the SystemPro XL ROM BIOS
  9029. SeeAlso: AX=BF0Dh,AX=BF0Eh
  9030. --------b-10BF0D-----------------------------
  9031. INT 10 - VIDEO - Compaq Extensions - SET DAC 8-BIT MODE
  9032. AX = BF0Dh
  9033. Return: CF clear
  9034. Desc: specify that video DAC registers use all eight bits of color info
  9035. Note: supported by at least the QVision board and the SystemPro XL ROM BIOS
  9036. SeeAlso: AX=BF0Ch,AX=BF0Eh
  9037. --------b-10BF0E-----------------------------
  9038. INT 10 - VIDEO - Compaq Extensions - CHECK DAC 6-BIT/8-BIT mode
  9039. AX = BF0Eh
  9040. Return: CF clear
  9041. AL = DAC mode
  9042. 00h in 6-bit mode
  9043. 01h in 8-bit mode
  9044. Note: supported by at least the QVision board and the SystemPro XL ROM BIOS
  9045. SeeAlso: AX=BF0Ch,AX=BF0Dh
  9046. --------b-10BF0F-----------------------------
  9047. INT 10 - VIDEO - Compaq Extensions - SET HIGH ADRESS MAP REGISTER
  9048. AX = BF0Fh
  9049. BX = high address map location in megabytes, or
  9050. 0000h to disable high address map, or
  9051. FFFFh to let ROM configure high address map
  9052. Return: CF clear
  9053. AX = previous value of high address map register
  9054. Notes: supported by at least the QVision board and the SystemPro XL and LTE
  9055. Lite ROM BIOSes
  9056. SeeAlso: AX=BF10h
  9057. --------b-10BF10-----------------------------
  9058. INT 10 - VIDEO - Compaq Extensions - GET HIGH ADDRESS MAP REGISTER
  9059. AX = BF10h
  9060. Return: CF clear
  9061. AX = current value of high address map register
  9062. Notes: supported by at least the QVision board and the SystemPro XL and LTE
  9063. Lite ROM BIOSes
  9064. the Compaq QVision documentation (October 1993) says the value is
  9065. returned in BX, but this appears to be one of many typos
  9066. SeeAlso: AX=BF0Fh
  9067. --------b-10BF11-----------------------------
  9068. INT 10 - VIDEO - Compaq Extensions - GET EXTENDED ENVIRONMENT
  9069. AX = BF11h
  9070. Return: AL = BFh if supported
  9071. CF clear
  9072. ES:DI -> ASCII signature "COMPAQ"
  9073. ES:SI -> advanced functionality table (see #00214)
  9074. Note: supported by at least the QVision board and the LTE Lite and ProSignia
  9075. ROM BIOSes
  9076. SeeAlso: AX=1A00h,AX=BF03h
  9077. Bitfields for Compaq advanced video functionality:
  9078. Bit(s) Description (Table 00214)
  9079. 31 future graphics extensions (reserved, set to 0)
  9080. 30-16 reserved
  9081. 15-12 available video memory in 256K blocks, less one (0000 = 256K, etc.)
  9082. 11-8 reserved
  9083. 7 QVision modes supported
  9084. 6 Advanced VGA modes supported
  9085. 5 Accelerated VGA modes supported
  9086. 4 standard VGA modes supported
  9087. 3-2 reserved
  9088. 1 132-column modes supported
  9089. 0 reserved
  9090. --------b-10BF12-----------------------------
  9091. INT 10 - VIDEO - Compaq Extensions - NEW ACTIVE MONITOR
  9092. AX = BF12h
  9093. BH reserved
  9094. BL = function mask (see #00215)
  9095. Return: CF clear
  9096. Notes: this function is a NOP if the VGA subsystem is inactive or the current
  9097. Display Combination Code is 10h or higher
  9098. supported by at least the QVision board and the LTE Lite and ProSignia
  9099. ROM BIOSes
  9100. SeeAlso: AX=BF01h,AX=BF02h,#00733
  9101. Bitfields for function mask:
  9102. Bit(s) Description (Table 00215)
  9103. 7 command mode
  9104. if set, bits 1 and 0 make the monitor active when set
  9105. if clear, bits 1 and 0 toggle the monitor's state when set
  9106. 6-2 reserved
  9107. 1 internal monitor
  9108. 0 external monitor
  9109. --------b-10BF13-----------------------------
  9110. INT 10 - VIDEO - Compaq QVision - GAMMA CORRECTION
  9111. AX = BF13h
  9112. BL = subfunction
  9113. 00h load gamma correction table for true-color mode
  9114. DS = BIOS data segment
  9115. 01h set palette RAM bypass
  9116. BH = 00h
  9117. Return: nothing
  9118. Note: these functions must be called after a video mode set, and are in
  9119. effect only for the current video mode
  9120. SeeAlso: #00733
  9121. --------V-10BFA0BXADAD-----------------------
  9122. INT 10 - VIDEO - Compaq ADAPT.COM - INSTALLATION CHECK
  9123. AX = BFA0h
  9124. BX = ADADh
  9125. Return: AX = BDBDh if newer ADAPT.COM installed
  9126. BX = BCD version (BH = major, BL = minor)
  9127. CL = ???
  9128. CH = ???
  9129. DL = ???
  9130. AX = ADADh if older version of ADAPT.COM installed
  9131. Program: ADAPT is Compaq's Advanced Display Attribute Programming Tool, an
  9132. optionally-resident utility for setting display colors and cursor
  9133. size; when resident, it also includes a screen blanker
  9134. SeeAlso: AX=BFA1h,AX=BFA2h,AX=DFA5h
  9135. Index: screen saver;ADAPT
  9136. --------V-10BFA1-----------------------------
  9137. INT 10 - VIDEO - Compaq ADAPT.COM - GET ???
  9138. AX = BFA1h
  9139. Return: AX = BDBEh if supported
  9140. CH = current value of ???
  9141. DL = current value of ???
  9142. SeeAlso: AX=BFA0h,AX=BFA2h
  9143. --------V-10BFA2-----------------------------
  9144. INT 10 - VIDEO - Compaq ADAPT.COM - SET ???
  9145. AX = BFA2h
  9146. CH = new value for ???
  9147. DL = new value for ???
  9148. Return: AX = BDBEh if supported
  9149. SeeAlso: AX=BFA0h,AX=BFA1h
  9150. --------A-10C0-------------------------------
  9151. INT 10 - CU Writer v1.4 - GO TO TEXT ROW AND COLUMN
  9152. AH = C0h
  9153. ???
  9154. Return: ???
  9155. SeeAlso: AH=B1h,AH=C1h,AH=C2h,AH=C3h,AH=C4h
  9156. --------V-10C000-----------------------------
  9157. INT 10 - S3 SpeedUp v3.00+ - INSTALLATION CHECK
  9158. AX = C000h
  9159. Return: AX = FFFFh if installed
  9160. DX = version number (binary, DH=major, DL=minor)
  9161. BX = resident code segment
  9162. Program: S3SPDUP is a freeware TSR by Dietmar Meschede to improve the speed
  9163. of chained video modes (both VESA and VGA Mode 13) on S3-chipset
  9164. video cards
  9165. SeeAlso: AX=C001h,AX=C002h,AX=C003h,AX=D000h"S3VBE"
  9166. --------V-10C001-----------------------------
  9167. INT 10 - S3 SpeedUp v3.00+ - GET ACTIVE OPTIONS
  9168. AX = C001h
  9169. Return: AX = FFFFh if function supported
  9170. BX = currently active options (see #00216)
  9171. SeeAlso: AX=C000h,AX=C002h,AX=C003h
  9172. Bitfields for S3SpeedUp options:
  9173. Bit(s) Description (Table 00216)
  9174. 0 speed up banked VESA modes
  9175. 1 speed up 320x200 VGA mode 13
  9176. SeeAlso: #00222
  9177. --------V-10C002-----------------------------
  9178. INT 10 - S3 SpeedUp v3.00+ - SET ACTIVE OPTIONS
  9179. AX = C002h
  9180. BX = new value for active options (see #00216)
  9181. Return: AX = FFFFh if function supported
  9182. SeeAlso: AX=C000h,AX=C001h,AX=C003h,AX=D003h"S3VBE"
  9183. --------V-10C003-----------------------------
  9184. INT 10 - S3 SpeedUp v3.10+ - GET FLAGS
  9185. AX = C003h
  9186. Return: AX = FFFFh if function supported
  9187. BX = flags
  9188. bit 0: SpeedUp is active
  9189. bit 1: Windows run after SpeedUp
  9190. SeeAlso: AX=C000h,AX=C001h,AX=C002h,AX=D005h"S3VBE"
  9191. --------V-10C004-----------------------------
  9192. INT 10 - S3 SpeedUp v3.10+ - RESERVED FUNCTIONS
  9193. AX = C004h-C0FFh
  9194. Return: AX = 5555h
  9195. SeeAlso: AX=C000h
  9196. --------A-10C1-------------------------------
  9197. INT 10 - CU Writer v1.4 - OUTPUT TEXT
  9198. AH = C1h
  9199. ???
  9200. Return: ???
  9201. SeeAlso: AH=C0h,AH=C2h,AH=C3h,AH=C4h
  9202. --------A-10C2-------------------------------
  9203. INT 10 - CU Writer v1.4 - REVERSE TEXT
  9204. AH = C2h
  9205. ???
  9206. Return: ???
  9207. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=C4h
  9208. --------A-10C3-------------------------------
  9209. INT 10 - CU Writer v1.4 - TEXT BAR
  9210. AH = C3h
  9211. ???
  9212. Return: ???
  9213. SeeAlso: AH=C0h,AH=C1h,AH=C4h
  9214. --------A-10C4-------------------------------
  9215. INT 10 - CU Writer v1.4 - TEXT MENU
  9216. AH = C4h
  9217. ???
  9218. Return: ???
  9219. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=D0h
  9220. --------V-10CB00-----------------------------
  9221. INT 10 - UNCHAIN - SAVE CURRENT VGA REGISTERS
  9222. AX = CB00h
  9223. Note: combined with AX=CB06h, this function permits the use of video mode
  9224. 13h together with the VGA's unchained mode
  9225. SeeAlso: AX=CB06h,AX=CBFFh
  9226. --------V-10CB01-----------------------------
  9227. INT 10 - UNCHAIN - UPDATE PAGE 1 OFFSET
  9228. AX = CB01h
  9229. BX = offset of page 1
  9230. Return: nothing
  9231. Desc: inform UNCHAIN of the location of video page 1 in video memory; the
  9232. default is 0000h
  9233. SeeAlso: AX=CB02h,AX=CB03h,AX=CB04h,AX=CBFFh
  9234. --------V-10CB02-----------------------------
  9235. INT 10 - UNCHAIN - UPDATE PAGE 2 OFFSET
  9236. AX = CB02h
  9237. BX = offset of page 2
  9238. Return: nothing
  9239. Desc: inform UNCHAIN of the location of video page 2 in video memory; the
  9240. default is 3E80h (16000, for 320x200)
  9241. SeeAlso: AX=CB00h,AX=CB01h,AX=CB03h,AX=CB04h
  9242. --------V-10CB03-----------------------------
  9243. INT 10 - UNCHAIN - UPDATE PAGE 3 OFFSET
  9244. AX = CB03h
  9245. BX = offset of page 3
  9246. Return: nothing
  9247. Desc: inform UNCHAIN of the location of video page 3 in video memory; the
  9248. default is 7D00h (32000, for 320x200)
  9249. SeeAlso: AX=CB01h,AX=CB02h,AX=CB04h
  9250. --------V-10CB04-----------------------------
  9251. INT 10 - UNCHAIN - UPDATE PAGE 4 OFFSET
  9252. AX = CB04h
  9253. BX = offset of page 4
  9254. Return: nothing
  9255. Desc: inform UNCHAIN of the location of video page 4 in video memory; the
  9256. default is BB80h (48000, for 320x200)
  9257. SeeAlso: AX=CB01h,AX=CB02h,AX=CB03h,AX=CB05h
  9258. --------V-10CB05-----------------------------
  9259. INT 10 - UNCHAIN - SAVE PALETTE
  9260. AX = CB05h
  9261. Return: nothing
  9262. SeeAlso: AX=CB00h,AX=CB06h
  9263. --------V-10CB06-----------------------------
  9264. INT 10 - UNCHAIN - RESTORE VGA REGISTERS
  9265. AX = CB06h
  9266. Return: nothing
  9267. SeeAlso: AX=CB00h,AX=CB05h,AX=CBFFh
  9268. --------V-10CBFF-----------------------------
  9269. INT 10 - UNCHAIN - INSTALLATION CHECK
  9270. AX = CBFFh
  9271. Return: AX = CCBBh if installed
  9272. Program: UNCHAIN is a TSR by Colin Buckley which permits use of Borland
  9273. development tools with Mode X video in the absence of a second
  9274. monitor
  9275. SeeAlso: AX=CB00h,AX=CB01h,AX=CB06h
  9276. --------V-10CC00-----------------------------
  9277. INT 10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK)
  9278. AX = CC00h
  9279. SI = magic value 0000h (if checking version)
  9280. Return: CX = product signature
  9281. ABCDh UltraVision
  9282. 5546h ('UF') UltraFont
  9283. AL = Ultravision extensions
  9284. 00h enabled
  9285. FFh disabled
  9286. AH = card designator
  9287. BX:00F0h -> palette values (for compatibility with NEWFONT)
  9288. DX = support for high resolution modes
  9289. 00h not active
  9290. 01h active
  9291. SI = UltraVision version number (v1.2+), high byte=major,low byte=minor
  9292. unchanged for versions <1.2
  9293. Note: UltraFont is a simplified version of UltraVision for Toshiba;
  9294. only the signature in CX and the status in AL will be returned
  9295. SeeAlso: AX=CC01h,AX=CC02h
  9296. --------V-10CC01-----------------------------
  9297. INT 10 - VIDEO - UltraVision - DISABLE EXTENSIONS
  9298. AX = CC01h
  9299. Return: nothing
  9300. Notes: subsequent BIOS calls will be passed through to previous handler
  9301. should be followed immediately by mode set to restore normal EGA/VGA
  9302. state
  9303. SeeAlso: AX=CC02h
  9304. --------V-10CC02-----------------------------
  9305. INT 10 - VIDEO - UltraVision - ENABLE EXTENSIONS
  9306. AX = CC02h
  9307. Return: nothing
  9308. Note: should be followed immediately by mode set to restore previous
  9309. UltraVision state
  9310. SeeAlso: AX=CC01h
  9311. --------U-10CCAB-----------------------------
  9312. INT 10 - HiFont - INSTALLATION CHECK
  9313. AX = CCABh
  9314. Return: AX = ABCCh
  9315. Program: HiFont is a 8x19 font driver for standard VGA by Solar Designer
  9316. --------V-10CD00-----------------------------
  9317. INT 10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA)
  9318. AX = CD00h
  9319. CL = palette table number (01h-07h for v1.x, 01h-0Fh for v2+)
  9320. DS:DX -> 16-byte palette register list (colors for registers 00h-0Fh)
  9321. Return: nothing
  9322. Notes: if palette locking is in effect for the current mode, the new colors
  9323. will be displayed immediately; otherwise, the system reverts to the
  9324. default palette
  9325. palette table 0 is reserved for the default palette and cannot be set
  9326. UltraVision always sets the border color to black
  9327. SeeAlso: AX=CD01h,AX=CD02h
  9328. --------V-10CD01-----------------------------
  9329. INT 10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA)
  9330. AX = CD01h
  9331. CL = palette locking value
  9332. 00h none
  9333. 01h text modes only (02h,03h)
  9334. FFh all modes (all standard color text and graphics modes)
  9335. Return: nothing
  9336. Notes: intended for video modes with 16 or fewer colors
  9337. SeeAlso: AX=1000h,AX=1002h,AX=CD00h,AX=CD03h
  9338. --------V-10CD02-----------------------------
  9339. INT 10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA)
  9340. AX = CD02h
  9341. Return: CL = palette table number
  9342. DS:DX -> 17-byte palette register list (see #00217)
  9343. DS:SI -> current font names table (see #00218,#00219)
  9344. Note: only the font names are valid on monochrome EGA systems
  9345. SeeAlso: AX=1009h,AX=CD00h
  9346. Format of UltraVision palette register list:
  9347. Offset Size Description (Table 00217)
  9348. 00h 16 BYTEs colors for palette registers 00h through 0Fh
  9349. 10h BYTE border color
  9350. Format of UltraVision v2+ current font names table:
  9351. Offset Size standard EGA HiRes EGA VGA (Table 00218)
  9352. 00h 8 BYTEs N/A F19 font F20 font
  9353. 08h 8 BYTEs F14 font F14 font F14 font
  9354. 10h 8 BYTEs N/A F11 font F10 font
  9355. 18h 8 BYTEs F8 font F8 font F8 font
  9356. Format of UltraVision v1.x current font names table:
  9357. Offset Size HiRes EGA (Table 00219)
  9358. 00h 8 BYTEs F19/F14 font
  9359. 08h 8 BYTEs F11/F8 font
  9360. --------V-10CD03-----------------------------
  9361. INT 10 - VIDEO - UltraVision - GET PALETTE LOCKING STATUS (color EGA,VGA)
  9362. AX = CD03h
  9363. Return: CL = palette locking value
  9364. 00h none
  9365. 01h text modes only
  9366. FFh all modes
  9367. SeeAlso: AX=CD01h
  9368. --------V-10CD04-----------------------------
  9369. INT 10 - VIDEO - UltraVision - GET UltraVision TEXT MODE (EGA,VGA)
  9370. AX = CD04h
  9371. Return: AL = mode number (see #00220)
  9372. SeeAlso: AH=0Fh,AX=CC00h,AH=CDh
  9373. (Table 00220)
  9374. Values for UltraVision video mode number:
  9375. 11h 80x25
  9376. 12h 80x43, 80x50
  9377. 13h 80x34, 80x36
  9378. 14h 80x60, 80x63
  9379. 19h 94x25
  9380. 1Ah 94x43, 94x50
  9381. 1Bh 94x36
  9382. 1Ch 94x63
  9383. 21h 108x25
  9384. 22h 108x43, 108x50
  9385. 23h 107x34, 108x36
  9386. 24h 108x60, 108x63
  9387. 31h 120x25
  9388. 32h 120x43, 120x50
  9389. 33h 132x25
  9390. 34h 132x44, 132x50
  9391. 39h 120x36
  9392. 3Ah 120x63
  9393. 3Bh 132x36
  9394. 3Ch 132x60
  9395. Index: video modes;UltraVision
  9396. --------V-10CD05-----------------------------
  9397. INT 10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA)
  9398. AX = CD05h
  9399. CL = type
  9400. 00h line cursor
  9401. FFh box cursor
  9402. Return: nothing
  9403. Note: sets default cursor type for text-based programs
  9404. SeeAlso: AH=01h,AX=CD06h
  9405. --------V-10CD06-----------------------------
  9406. INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA)
  9407. AX = CD06h
  9408. Return: CL = type
  9409. 00h line cursor
  9410. FFh box cursor
  9411. SeeAlso: AH=03h,AX=CD05h
  9412. --------V-10CD07-----------------------------
  9413. INT 10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA)
  9414. AX = CD07h
  9415. CL = hardware underline status (see #00221)
  9416. BL = foreground color for normal text (FFh = current)
  9417. BH = foreground color for bright text (FFh = current)
  9418. Return: CL = hardware underline status
  9419. BL = current foreground color for normal text
  9420. BH = current foreground color for bright text
  9421. Notes: when underline or strikeout is enabled in color text modes, the
  9422. specified colors will be assigned temporarily to colors 01h and 09h,
  9423. allowing affected text to match non-underlined text. The color
  9424. remapping uses values from the current onscreen palette regardless
  9425. of the palette locking status (see AX=CD01h)
  9426. specify the standard colors (BL=01h,BH=09h) to enable underline or
  9427. strikeout without color remapping
  9428. SeeAlso: AX=CD08h
  9429. (Table 00221)
  9430. Values for hardware underline status:
  9431. 00h off (color systems only)
  9432. 01h underline below characters
  9433. 02h strike through characters
  9434. --------V-10CD08-----------------------------
  9435. INT 10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA)
  9436. AX = CD08h
  9437. Return: CL = hardware underline status (see #00221)
  9438. BL = foreground color for normal text
  9439. BH = foreground color for bright text
  9440. Note: only CL is valid on monochrome EGA systems
  9441. SeeAlso: AX=CD07h
  9442. --------V-10CD10-----------------------------
  9443. INT 10 - VIDEO - UltraVision - LOAD USER FONT (EGA,VGA)
  9444. AX = CD10h
  9445. BH = bytes per character (08h,0Ah,0Bh,0Eh,13h,14h)
  9446. CX = ABCDh load 9xN alternate font (v2+)
  9447. else number of characters to load
  9448. DX = character offset into font table
  9449. DS:SI -> 8-byte ASCII font name
  9450. ES:BP -> font definitions
  9451. Return: AX = FFFFh if invalid font parameters
  9452. Notes: loads the designated characters into UltraVision's resident font area
  9453. should be followed by a video mode set to reload character generator
  9454. SeeAlso: AX=1100h,AX=1103h
  9455. --------V-10CD-------------------------------
  9456. INT 10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA)
  9457. AH = CDh
  9458. AL = text mode number (see #00220)
  9459. Return: AX = CDCDh if invalid mode
  9460. SeeAlso: AX=CD04h
  9461. --------A-10D0-------------------------------
  9462. INT 10 - CU Writer v1.4 - LOAD PICTURE
  9463. AH = D0h
  9464. ???
  9465. Return: ???
  9466. SeeAlso: AH=B0h"CU Writer",AH=C4h
  9467. --------V-10D0-------------------------------
  9468. INT 10 U - VIDEO - HP 100LX/200LX - SET ZOOM MODE
  9469. AH = D0h
  9470. AL = zoom mode
  9471. 02h 80x25 mono
  9472. 03h 80x25 color
  9473. 80h 64x18 mono
  9474. 81h 64x18 color
  9475. 82h 40x25 mono
  9476. 83h 40x25 color
  9477. 84h 40x16 mono
  9478. 85h 40x16 color
  9479. Return: nothing
  9480. Note: zoom mode can only be changed within zoom modes of the same color
  9481. scheme; if needed, set to mono/color with AH=00h,AL=02h/03h; with
  9482. mono video modes AL=07h or AL=21h only 80x25 and 40x16 will work
  9483. the current zoom mode is stored in the BIOS data area at 0040h:009Fh
  9484. SeeAlso: AH=D1h,AH=D4h
  9485. --------V-10D000-----------------------------
  9486. INT 10 - S3VBE/Core2.0 v3.00+ - INSTALLATION CHECK
  9487. AX = D000h
  9488. Return: AX = FFFFh if installed
  9489. BX = resident code segment
  9490. DX = version (binary, DH = major, DL = minor)
  9491. Program: S3VBE/Core2.0 is a freeware TSR by Dietmar Meschede to provide
  9492. VESA 2.0 services on S3-based video cards with VESA 1.2 BIOS
  9493. SeeAlso: AX=D001h"S3VBE",AX=D002h"S3VBE",AX=D003h"S3VBE",AX=D005h"S3VBE"
  9494. --------V-10D001-----------------------------
  9495. INT 10 - S3VBE/Core2.0 v3.00+ - GET ACTIVE OPTIONS
  9496. AX = D001h
  9497. Return: AX = FFFFh if supported
  9498. BX = currently active options (see #00222)
  9499. SeeAlso: AX=D000h"S3VBE",AX=D002h"S3VBE"
  9500. Bitfields for S3VBE options:
  9501. Bit(s) Description (Table 00222)
  9502. 0 VESA VBE v2.0 extensions enabled
  9503. 1 linear frame buffer enabled
  9504. 2 low-resolution video mode support enabled
  9505. 8 never clear video memory during VBE mode set (v3.10+)
  9506. ---debug options---
  9507. 12 report VBE version 1.2 (v3.10+)
  9508. 13 always fail AX=4F0Ah (v3.10+)
  9509. 14 don't copy video mode list (v3.12+)
  9510. SeeAlso: #00216
  9511. --------V-10D002-----------------------------
  9512. INT 10 - S3VBE/Core2.0 v3.00+ - SET ACTIVE OPTIONS
  9513. AX = D002h
  9514. BX = new active options (see #00222)
  9515. Return: AX = FFFFh if supported
  9516. SeeAlso: AX=D000h"S3VBE",AX=D001h"S3VBE"
  9517. --------V-10D003-----------------------------
  9518. INT 10 U - S3VBE/Core2.0 v3.10+ - GET VBE/Core CAPABILITIES
  9519. AX = D003h
  9520. Return: AX = FFFFh if supported
  9521. BX = capabilities
  9522. bit 0: SpeedUp = activate/deactivate linear addressing at
  9523. A0000h for VBE functions 04h/05h
  9524. SeeAlso: AX=D000h"S3VBE",AX=D001h"S3VBE",AX=D004h"S3VBE",AX=D005h"S3VBE"
  9525. --------V-10D004-----------------------------
  9526. INT 10 U - S3VBE/Core2.0 v3.10+ - ACTIVATE SPEED-UP
  9527. AX = D004h
  9528. Return: AX = FFFFh if supported
  9529. BX = status
  9530. 0000h SpeedUp activated
  9531. 0001h SpeedUp not possible (wrong memory organization for mode)
  9532. 0002h SpeedUp not possible (linear frame buffer active)
  9533. Note: called by S3 SpeedUp (see AX=C000h)
  9534. SeeAlso: AX=C000h"SpeedUp",AX=D000h"S3VBE",AX=D003h"S3VBE",AX=D005h"S3VBE"
  9535. --------V-10D005-----------------------------
  9536. INT 10 U - S3VBE/Core2.0 v3.10+ - DEACTIVATE SPEED-UP
  9537. AX = D005h
  9538. Return: AX = FFFFh if supported
  9539. BX = status
  9540. 0000h SpeedUp deactivated
  9541. 0001h SpeedUp not possible (wrong memory organization for mode)
  9542. 0002h SpeedUp not possible (linear frame buffer active)
  9543. Notes: called by S3 SpeedUp (see AX=C000h)
  9544. functions 06h-FFh (e.g. AX=D006h-D0FFh) are considered reserved by
  9545. v3.10+ and return AX=5555h
  9546. SeeAlso: AX=C000h"SpeedUp",AX=D000h"S3VBE",AX=D003h"S3VBE",AX=D004h"S3VBE"
  9547. --------V-10D1-------------------------------
  9548. INT 10 U - VIDEO - HP 100LX/200LX - INTERNAL - ???
  9549. AH = D1h
  9550. AL = 01h
  9551. Return: ???
  9552. Note: called by AH=D0h
  9553. SeeAlso: AH=D0h,AH=D4h
  9554. --------V-10D4-------------------------------
  9555. INT 10 U - VIDEO - HP 100LX/200LX - INTERNAL - ???
  9556. AH = D4h
  9557. AL = 29h
  9558. Return: ???
  9559. Note: called by AH=D0h
  9560. SeeAlso: AH=D0h,AH=D1h
  9561. --------V-10D5-------------------------------
  9562. INT 10 - Netroom SCRNCLK - ???
  9563. AH = D5h
  9564. ???
  9565. Return: ???
  9566. Program: SCRNCLK is a "cloaked" screen accelerator included with Netroom
  9567. --------t-10DAAD-----------------------------
  9568. INT 10 - TSRUNIT v1.10 - INSTALLATION CHECK
  9569. AX = DAADh
  9570. BX = check signature (different for each TSR)
  9571. CX = 0000h
  9572. Return: CX = return signature (nonzero) if installed
  9573. ES = program segment prefix
  9574. Program: TSRUNIT is a Turbo Pascal unit for creating TSRs by Nir Sofer
  9575. --------V-10DFA5-----------------------------
  9576. INT 10 U - VIDEO - Compaq ADAPT.COM - GET ??? DATA AREA
  9577. AX = DFA5h
  9578. Return: AX = BDBFh if supported
  9579. ES:DI -> ??? data area
  9580. BX = ES
  9581. SeeAlso: AX=BFA0h
  9582. --------V-10EE-------------------------------
  9583. INT 10 - VIDEO - IBM "Private" Function
  9584. AH = EEh
  9585. SeeAlso: INT 13/AH=FFh"IBM"
  9586. --------V-10EF-------------------------------
  9587. INT 10 - VIDEO - MSHERC.COM - GET VIDEO ADAPTER TYPE AND MODE
  9588. AH = EFh
  9589. Return: DL = video adapter type
  9590. 00h original Hercules
  9591. 01h Hercules Plus (port 03BAh reads x001xxxxx)
  9592. 02h Hercules InColor (port 03BAh reads x101xxxxx)
  9593. FFh not a Hercules-compatible card (port 03BAh bit 7 not pulsing)
  9594. DH = memory mode byte
  9595. 00h "half" mode
  9596. 01h "full" mode
  9597. FFh not a Hercules-compatible card
  9598. Program: MSHERC.COM/QBHERC.COM is a support program for the Microsoft Quick
  9599. languages which makes their graphics libraries compatible with a
  9600. Hercules card by adding video modes 08h and 88h, and supporting
  9601. text in the new graphics modes.
  9602. Notes: while in mode 08h or 88h, INT 10 supports the Hercules card much like
  9603. a CGA.
  9604. MSHERC performs an installation check by setting DL=FFh and testing
  9605. whether it has been changed on return, which causes it to reinstall
  9606. itself when no HGC is present (or HGC emulation has temporarily been
  9607. disabled); a better installation check would be to use DX=80FFh and
  9608. check whether DX has been changed
  9609. reportedly returns DH=00h on some not-entirely-Hercules-compatible
  9610. cards
  9611. Index: installation check;MSHERC
  9612. --------V-10F0-------------------------------
  9613. INT 10 - EGA Register Interface Library - READ ONE REGISTER
  9614. AH = F0h
  9615. BL = register number
  9616. BH = 00h
  9617. DX = group index (see #00223)
  9618. Return: BL = data
  9619. Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  9620. compatibility box, and others; it is used for software virtualization
  9621. of write-only registers on an EGA video adapter, so that multiple
  9622. programs may peacefully coexist without clobbering each other's
  9623. display settings
  9624. SeeAlso: AH=F1h"EGA",AH=F2h"EGA",AH=FAh"EGA",INT 2F/AX=BC00h
  9625. (Table 00223)
  9626. Values for group index:
  9627. Pointer/data chips
  9628. 00h CRT Controller (25 reg) 3B4h mono modes, 3D4h color modes
  9629. 08h Sequencer (5 registers) 3C4h
  9630. 10h Graphics Controller (9 registers) 3CEh
  9631. 18h Attribute Controller (20 registers) 3C0h
  9632. Single registers
  9633. 20h Miscellaneous Output register 3C2h
  9634. 28h Feature Control register (3BAh mono modes, 3DAh color modes)
  9635. 30h Graphics 1 Position register 3CCh
  9636. 38h Graphics 2 Position register 3CAh
  9637. --------V-10F0-------------------------------
  9638. INT 10 - VHRBIOS.SYS - INSTALLATION CHECK
  9639. AH = F0h
  9640. Return: BX = 4F4Bh ('OK')
  9641. Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius"
  9642. black&white A4/portrait monitor
  9643. SeeAlso: AH=F1h"VHRBIOS.SYS",AH=F2h"VHRBIOS.SYS",AH=F4h"VHRBIOS.SYS"
  9644. SeeAlso: AH=96h"VHRBIOS.SYS"
  9645. --------V-10F1-------------------------------
  9646. INT 10 - EGA Register Interface Library - WRITE ONE REGISTER
  9647. AH = F1h
  9648. DX = group index (see #00223)
  9649. if single register:
  9650. BL = value to write
  9651. otherwise
  9652. BL = register number
  9653. BH = value to write
  9654. Return: BL = data
  9655. Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  9656. compatibility box, and others
  9657. SeeAlso: AX=7F05h,AH=F0h"EGA",AH=F3h"EGA",AH=FAh"EGA"
  9658. --------V-10F1-------------------------------
  9659. INT 10 - VHRBIOS.SYS - SET REVERSE VIDEO
  9660. AH = F1h
  9661. AL = new video state
  9662. (bit 5 set for black text on white, clear for white on black)
  9663. Return: ???
  9664. Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius"
  9665. black&white A4/portrait monitor
  9666. SeeAlso: AH=F0h"VHRBIOS.SYS",AH=F3h"VHRBIOS.SYS"
  9667. --------V-10F2-------------------------------
  9668. INT 10 - EGA Register Interface Library - READ REGISTER RANGE
  9669. AH = F2h
  9670. CH = starting register number
  9671. CL = number of registers (>1)
  9672. DX = group index (00h,08h,10h,18h) (see #00223)
  9673. ES:BX -> buffer, CL bytes
  9674. Return: nothing
  9675. Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  9676. compatibility box, and others
  9677. SeeAlso: AH=F0h"EGA",AH=F3h"EGA",AH=FAh"EGA"
  9678. --------V-10F2-------------------------------
  9679. INT 10 - VHRBIOS.SYS - ???
  9680. AH = F2h
  9681. Return: ???
  9682. Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius"
  9683. black&white A4/portrait monitor
  9684. SeeAlso: AH=F0h"VHRBIOS.SYS",AH=F4h"VHRBIOS.SYS"
  9685. --------V-10F3-------------------------------
  9686. INT 10 - EGA Register Interface Library - WRITE REGISTER RANGE
  9687. AH = F3h
  9688. CH = starting register
  9689. CL = number of registers (>1)
  9690. DX = group index (00h,08h,10h,18h) (see #00223)
  9691. ES:BX -> buffer, CL bytes
  9692. Return: nothing
  9693. Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  9694. compatibility box, and others
  9695. SeeAlso: AX=7F05h,AH=F1h"EGA",AH=F2h"EGA",AH=F4h"EGA"
  9696. --------V-10F3-------------------------------
  9697. INT 10 - VHRBIOS.SYS - SWITCH BETWEEN DUAL MONITORS???
  9698. AH = F3h
  9699. Return: ???
  9700. Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius"
  9701. black&white A4/portrait monitor
  9702. SeeAlso: AH=F0h"VHRBIOS.SYS",AH=F4h"VHRBIOS.SYS",AH=F6h"VHRBIOS.SYS"
  9703. --------V-10F4-------------------------------
  9704. INT 10 - EGA Register Interface Library - READ REGISTER SET
  9705. AH = F4h
  9706. CX = number of registers to read (>1)
  9707. ES:BX -> table of register records (see #00224)
  9708. Return: register values in table filled in
  9709. Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  9710. compatibility box, and others
  9711. SeeAlso: AH=F0h"EGA",AH=F2h"EGA",AH=F5h"EGA"
  9712. Format of EGA RIL entries in table of register records:
  9713. Offset Size Description (Table 00224)
  9714. 00h WORD group index
  9715. Pointer/data chips
  9716. 00h CRTC (3B4h mono modes, 3D4h color modes)
  9717. 08h Sequencer 3C4h
  9718. 10h Graphics Controller 3CEh
  9719. 18h Attribute Controller 3C0h
  9720. Single registers
  9721. 20h Miscellaneous Output register 3C2h
  9722. 28h Feature Control register (3BAh mono modes, 3DAh color)
  9723. 30h Graphics 1 Position register 3CCh
  9724. 38h Graphics 2 Position register 3CAh
  9725. 02h BYTE register number (0 for single registers)
  9726. 03h BYTE register value
  9727. --------V-10F4-------------------------------
  9728. INT 10 - VHRBIOS.SYS - GET VERSION
  9729. AH = F4h
  9730. Return: AX = driver version (AH = major, AL = minor)
  9731. Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius"
  9732. black&white A4/portrait monitor
  9733. SeeAlso: AH=F0h"VHRBIOS.SYS",AH=F5h"VHRBIOS.SYS"
  9734. --------V-10F5-------------------------------
  9735. INT 10 - EGA Register Interface Library - WRITE REGISTER SET
  9736. AH = F5h
  9737. CX = number of registers to write (>1)
  9738. ES:BX -> table of records (see #00224)
  9739. Return: nothing
  9740. Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  9741. compatibility box, and others
  9742. SeeAlso: AX=7F05h,AH=F1h"EGA",AH=F3h"EGA",AH=F4h"EGA"
  9743. --------V-10F5-------------------------------
  9744. INT 10 - VHRBIOS.SYS - GET VENDOR ID
  9745. AH = F5h
  9746. Return: AXBX = vendor ID (4D44h:5349h = 'MDSI' for Micro Display Systems Inc.)
  9747. Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius"
  9748. black&white A4/portrait monitor
  9749. SeeAlso: AH=F0h"VHRBIOS.SYS",AH=F4h"VHRBIOS.SYS",AH=F6h"VHRBIOS.SYS"
  9750. --------V-10F6-------------------------------
  9751. INT 10 - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS
  9752. AH = F6h
  9753. Return: nothing
  9754. Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and
  9755. others
  9756. SeeAlso: AH=F5h"EGA",AH=F7h"EGA"
  9757. --------V-10F6-------------------------------
  9758. INT 10 - VHRBIOS.SYS - GET INFO
  9759. AH = F6h
  9760. AL = what to get
  9761. 00h device driver state
  9762. Return: AX = device driver state
  9763. 01h video mode info
  9764. Return: AL = video mode
  9765. DH = screen height in rows
  9766. DL = screen width in columns
  9767. Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius"
  9768. black&white A4/portrait monitor
  9769. SeeAlso: AH=F0h"VHRBIOS.SYS",AH=F4h"VHRBIOS.SYS",AH=96h"VHRBIOS.SYS
  9770. --------V-10F7-------------------------------
  9771. INT 10 - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE
  9772. AH = F7h
  9773. DX = port number
  9774. Pointer/data chips
  9775. 00h CRTC (3B4h mono modes, 3D4h color modes)
  9776. 08h Sequencer 3C4h
  9777. 10h Graphics Controller 3CEh
  9778. 18h Attribute Controller 3C0h
  9779. Single registers
  9780. 20h Miscellaneous Output register 3C2h
  9781. 28h Feature Control register (3BAh mono modes, 3DAh color modes)
  9782. 30h Graphics 1 Position register 3CCh
  9783. 38h Graphics 2 Position register 3CAh
  9784. ES:BX -> table of one-byte entries, one byte to be written to each
  9785. register
  9786. Return: nothing
  9787. Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  9788. compatibility box, and others
  9789. SeeAlso: AH=F0h"EGA",AH=F6h"EGA"
  9790. --------V-10FA--BX0000-----------------------
  9791. INT 10 - EGA Register Interface Library - INTERROGATE DRIVER
  9792. AH = FAh
  9793. BX = 0000h
  9794. Return: BX = 0000h if RIL driver not present
  9795. ES:BX -> EGA Register Interface version number, if present:
  9796. byte 0 = major release number
  9797. byte 1 = minor release number
  9798. Note: the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  9799. compatibility box, and others
  9800. SeeAlso: AH=F0h"EGA",AH=F6h"EGA",INT 2F/AX=BC00h
  9801. --------K-10FA-------------------------------
  9802. INT 10 - FASTBUFF.COM - INSTALLATION CHECK
  9803. AH = FAh
  9804. Return: AX = 00FAh if installed
  9805. ES = segment of resident code
  9806. Program: FASTBUFF.COM is a keyboard speedup/screen blanking utility by David
  9807. Steiner
  9808. Index: screen saver;FASTBUFF
  9809. --------V-10FE-------------------------------
  9810. INT 10 - TopView - GET SHADOW BUFFER
  9811. AH = FEh
  9812. ES:DI -> assumed video buffer
  9813. B800h:0000h color text/CGA graphics, B000h:0000h mono text,
  9814. or A000h:0000h EGA/VGA graphics (RSIS environments only)
  9815. Return: ES:DI -> actual video buffer for calling process
  9816. Desc: Determine the address of the virtual screen to which the program
  9817. should write instead of the actual video memory; this permits
  9818. programs to be multitasked without interfering with each other's
  9819. output, and allows memory managers to move the video memory to
  9820. permit larger programs to be loaded.
  9821. Notes: if no multitasker or RSIS-compliant environment is installed, ES:DI is
  9822. returned unchanged; RSIS is the Relocated Screen Interface
  9823. Specification
  9824. for display pages other than 0, use AH=05h and AH=0Fh to determine
  9825. whether a particular page exists
  9826. TopView requires a call to AH=FFh to notify it that the screen has
  9827. changed; DESQview will check for changes itself until the first call
  9828. to AH=FFh
  9829. SeeAlso: AH=05h,AX=5201h,AH=FFh,INT 15/AX=1024h,INT 21/AH=2Bh"DESQview"
  9830. SeeAlso: INT 21/AH=ECh"DoubleDOS"
  9831. --------V-10FF-------------------------------
  9832. INT 10 - TopView - UPDATE SCREEN FROM SHADOW BUFFER
  9833. AH = FFh
  9834. CX = number of consecutive changed characters
  9835. ES:DI -> first changed character in shadow buffer
  9836. Return: nothing
  9837. Notes: avoid CX=0000h
  9838. DESQview will discontinue the automatic screen updating initiated by
  9839. AH=FEh after this call
  9840. not supported (ignored) by DESQview/X 1.0x
  9841. SeeAlso: AH=93h,AH=FEh
  9842. --------E-10FF-------------------------------
  9843. INT 10 - DJ GO32.EXE 80386+ DOS extender - VIDEO EXTENSIONS
  9844. AH = FFh
  9845. AL = video mode (see #00225)
  9846. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  9847. GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  9848. SeeAlso: AH=00h,INT 21/AH=FFh"GO32"
  9849. (Table 00225)
  9850. Values for GO32 video mode number:
  9851. 00h 80x25 text
  9852. 01h default text
  9853. 02h CXxDX text
  9854. 03h biggest text
  9855. 04h 320x200 graphics
  9856. 05h default graphics
  9857. 06h CXxDX graphics
  9858. 07h biggest non-interlaced graphics
  9859. 08h biggest graphics
  9860. Index: video modes;GO32
  9861. --------V-10FF-------------------------------
  9862. INT 10 - VIDEO - Oak VGA BIOS v1.02+ - SET EMULATION
  9863. AH = FFh
  9864. AL = emulation
  9865. 43h ('C') CGA emulation
  9866. 45h ('E') EGA emulation
  9867. 4Dh ('M') Hercules emulation
  9868. 56h ('V') VGA emulation
  9869. ES:DI -> signature string "Calamity"
  9870. Return: VGA switched to suggested mode
  9871. SeeAlso: AH=00h,AX=007Fh/BH=00h,AX=007Fh/BH=02h,AX=5F01h
  9872. --------R-10FF00-----------------------------
  9873. INT 10 - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP
  9874. AX = FF00h
  9875. Return: BL = state
  9876. 00h not connected
  9877. 01h connected
  9878. SeeAlso: AX=FF01h,AX=FF02h
  9879. --------R-10FF01-----------------------------
  9880. INT 10 - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE
  9881. AX = FF01h
  9882. Return: nothing
  9883. SeeAlso: AX=FF00h,AX=FF02h
  9884. --------R-10FF02-----------------------------
  9885. INT 10 - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED
  9886. AX = FF02h
  9887. Return: ES:DI -> ASCIZ phone number
  9888. SeeAlso: AX=FF00h,AX=FF01h
  9889. --------C-11---------------------------------
  9890. INT 11 - CPU-generated (80486+) - ALIGNMENT CHECK
  9891. Desc: automatically generated by the CPU when the AC flag is set, the current
  9892. privilege level is 3, and a misaligned memory access (WORD not on an
  9893. even address or DWORD not on a multiple of 4) is made
  9894. Note: not all V86 monitors allow the AC flag to be set, such as Turbo
  9895. Debugger 386
  9896. SeeAlso: INT 12"CPU"
  9897. --------B-11---------------------------------
  9898. INT 11 - BIOS - GET EQUIPMENT LIST
  9899. Return: (E)AX = BIOS equipment list word (see #00226,#03215 at INT 4B"Tandy")
  9900. Note: since older BIOSes do not know of the existence of EAX, the high word
  9901. of EAX should be cleared before this call if any of the high bits
  9902. will be tested
  9903. SeeAlso: INT 4B"Tandy 2000",MEM 0040h:0010h
  9904. Bitfields for BIOS equipment list:
  9905. Bit(s) Description (Table 00226)
  9906. 0 floppy disk(s) installed (number specified by bits 7-6)
  9907. 1 80x87 coprocessor installed
  9908. 3-2 number of 16K banks of RAM on motherboard (PC only)
  9909. number of 64K banks of RAM on motherboard (XT only)
  9910. 2 pointing device installed (PS)
  9911. 3 unused (PS)
  9912. 5-4 initial video mode
  9913. 00 EGA, VGA, or PGA
  9914. 01 40x25 color
  9915. 10 80x25 color
  9916. 11 80x25 monochrome
  9917. 7-6 number of floppies installed less 1 (if bit 0 set)
  9918. 8 DMA support installed (PCjr, Tandy 1400LT)
  9919. DMA support *not* installed (Tandy 1000's)
  9920. 11-9 number of serial ports installed
  9921. 12 game port installed
  9922. 13 serial printer attached (PCjr)
  9923. internal modem installed (PC/Convertible)
  9924. 15-14 number of parallel ports installed
  9925. ---Compaq, Dell, and many other 386/486 machines--
  9926. 23 page tables set so that Weitek coprocessor addressable in real mode
  9927. 24 Weitek math coprocessor present
  9928. ---Compaq Systempro---
  9929. 25 internal DMA parallel port available
  9930. 26 IRQ for internal DMA parallel port (if bit 25 set)
  9931. 0 = IRQ5
  9932. 1 = IRQ7
  9933. 28-27 parallel port DMA channel
  9934. 00 DMA channel 0
  9935. 01 DMA channel 0 ???
  9936. 10 reserved
  9937. 11 DMA channel 3
  9938. BUG: Award BIOS v4.50G and v4.51PG erroneously set bit 0 even if there are
  9939. no floppy drives installed; use two calls to INT 13/AH=15h to
  9940. determine whether any floppies are actually installed
  9941. SeeAlso: INT 12"BIOS",#03215 at INT 4B"Tandy 2000"
  9942. --------d-11----SI6A6A-----------------------
  9943. INT 11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6
  9944. SI = 6A6Ah
  9945. AH = command (see #00227)
  9946. AL = SCSI Addressing (see #00228)
  9947. Return: CF clear if successful
  9948. DI = 6A6Ah if AH=01h on entry (maybe for all functions???)
  9949. AH = ??? for command 01h
  9950. CF set on error
  9951. AL = error code
  9952. SeeAlso: INT 21/AX=4402h"ASPI"
  9953. (Table 00227)
  9954. Values for SDLP command:
  9955. 00h SDLP initialization
  9956. 01h SDLP System Identify
  9957. 02h simple read sectors
  9958. 03h simple write sectors
  9959. 04h simple verify sectors/seek to sector
  9960. 05h get device size/type
  9961. 06h ready unit
  9962. 07h format unit
  9963. 08h diagnostics
  9964. 09h rewind
  9965. 0Ah erase
  9966. 0Bh write filemarks
  9967. 0Ch space
  9968. 0Dh prevent/allow media removal
  9969. 0Eh load/unload media
  9970. 0Fh reserved - returns good status
  9971. 10h set block size
  9972. 11h write setmark
  9973. 12h set error level
  9974. 13h get address of Request Sense Buffer
  9975. 14h get SDLP error via Request Sense
  9976. F0h Vendor Unique Function (WD7000-FASST2 only)
  9977. FDh reset current SCSI HAC
  9978. FEh get/set current SCSI HAC
  9979. FFh execute SCSI command
  9980. Bitfields for SDLP SCSI addressing:
  9981. Bit(s) Description (Table 00228)
  9982. 7-6 Host Adapter
  9983. 5-3 SCSI Target ID
  9984. 2-0 SCSI Target LUN (logical unit number)
  9985. --------V-110225BX6900-----------------------
  9986. INT 11 - Blank-It Screen Blanker - INSTALLATION CHECK
  9987. AX = 0225h
  9988. BX = 6900h
  9989. Return: BL = 23h
  9990. ES:DI -> ASCIZ "BLNKIT"
  9991. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  9992. Inc.
  9993. SeeAlso: AX=0225h/BX=6902h,AX=0225h/BX=6908h,AX=0225h/BX=6909h,INT 14/AX=AA01h
  9994. Index: screen saver;Blank-It
  9995. --------V-110225BX6901-----------------------
  9996. INT 11 - Blank-It Screen Blanker - SET TIMEOUT FOR SCREEN BLANKING
  9997. AX = 0225h
  9998. BX = 6901h
  9999. CX = timeout in timer ticks (18.2/second) or 0000h to disable timeout
  10000. largest value is 59 minutes (FBACh or 64428)
  10001. Return: CF clear if successful
  10002. DI = 6A6Ah (possibly also 6A6Ah for all following functions)
  10003. AH = ???
  10004. CF set on error
  10005. AL = error code
  10006. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6904h
  10007. Index: screen saver;Blank-It
  10008. --------V-110225BX6902-----------------------
  10009. INT 11 - Blank-It Screen Blanker - ENABLE THE SOFTWARE
  10010. AX = 0225h
  10011. BX = 6902h
  10012. Return: CF clear if successful
  10013. CF set on error
  10014. AL = error code
  10015. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6903h
  10016. Index: screen saver;Blank-It
  10017. --------V-110225BX6903-----------------------
  10018. INT 11 - Blank-It Screen Blanker - DISABLE THE SOFTWARE
  10019. AX = 0225h
  10020. BX = 6903h
  10021. Return: CF clear if successful
  10022. CF set on error
  10023. AL = error code
  10024. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6902h
  10025. Index: screen saver;Blank-It
  10026. --------V-110225BX6904-----------------------
  10027. INT 11 - Blank-It Screen Blanker - GET BLANKING TIMEOUT
  10028. AX = 0225h
  10029. BX = 6904h
  10030. Return: CF clear if successful
  10031. BX = timeout (see AX=0225h/BX=6901h)
  10032. CF set on error
  10033. AL = error code
  10034. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6901h
  10035. Index: screen saver;Blank-It
  10036. --------V-110225BX6905-----------------------
  10037. INT 11 - Blank-It Screen Blanker - ENABLE WINDOWS COMPATIBILITY MODE
  10038. AX = 0225h
  10039. BX = 6905h
  10040. Return: CF clear if successful
  10041. CF set on error
  10042. AL = error code
  10043. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6906h
  10044. Index: screen saver;Blank-It
  10045. --------V-110225BX6906-----------------------
  10046. INT 11 - Blank-It Screen Blanker - DISABLE WINDOWS COMPATIBILITY MODE
  10047. AX = 0225h
  10048. BX = 6906h
  10049. Return: CF clear if successful
  10050. CF set on error
  10051. AL = error code
  10052. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  10053. Inc.
  10054. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6905h
  10055. Index: screen saver;Blank-It
  10056. --------V-110225BX6907-----------------------
  10057. INT 11 - Blank-It Screen Blanker - UNBLANK THE SCREEN
  10058. AX = 0225h
  10059. BX = 6907h
  10060. Return: CF clear if successful
  10061. CF set on error
  10062. AL = error code
  10063. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6908h
  10064. Index: screen saver;Blank-It
  10065. --------V-110225BX6908-----------------------
  10066. INT 11 - Blank-It Screen Blanker - BLANK THE SCREEN
  10067. AX = 0225h
  10068. BX = 6908h
  10069. Return: CF clear if successful
  10070. CF set on error
  10071. AL = error code
  10072. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6907h
  10073. Index: screen saver;Blank-It
  10074. --------V-110225BX6909-----------------------
  10075. INT 11 - Blank-It Screen Blanker - SET HOTKEY FOR MANUAL BLANKING
  10076. AX = 0225h
  10077. BX = 6909h
  10078. CL = key scan code (see #00229)
  10079. Return: CF clear if successful
  10080. CF set on error
  10081. AL = error code
  10082. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  10083. Inc.
  10084. SeeAlso: AX=0225h/BX=6900h
  10085. Index: screen saver;Blank-It|hotkeys;Blank-It
  10086. (Table 00229)
  10087. Values for Blank-It hotkey scan code:
  10088. 00h No hot key
  10089. 1Dh Left CTRL
  10090. 2Ah Left Shift
  10091. 36h Right Shift
  10092. 57h F11
  10093. 58h F12
  10094. SeeAlso: #00006
  10095. --------G-1105D7-----------------------------
  10096. INT 11 CU - Borland C++ IDE - INSTALLED CALLOUT
  10097. AX = 05D7h
  10098. BX = product ID (0088h)
  10099. Note: called by the BC++ IDE when an application calls
  10100. INT 12/AX=05D7h/BX=05D7h
  10101. SeeAlso: INT 12/AX=05D7h/BX=05D7h
  10102. Index: installation check;Borland C++ IDE
  10103. --------F-1177-------------------------------
  10104. INT 11 - RainbowFAX v1.3 - SFENGINE API - OPERATIONAL CONTROL
  10105. AH = 77h
  10106. AL = subfunction
  10107. 01h request SFENGINE start
  10108. Return: AX = 0001h
  10109. 02h check if SFENGINE started
  10110. Return: AX = 0000h or 0001h
  10111. 03h request SFENGINE stop
  10112. Return: AX = 0001h
  10113. 04h check if SFENGINE stopped
  10114. Return: AX = 0000h or 0001h
  10115. 05h installation check
  10116. Return: AX = 0001h
  10117. 06h uninstall???
  10118. BX:DX -> return address for successful uninstall???
  10119. Return: (at caller's address)
  10120. AX = 0000h
  10121. else
  10122. Return: AX = FFFFh (invalid subfunction)
  10123. Return: ES:DX -> ASCIZ signature string "SFAX ENGINE V1.0"
  10124. followed by internal data area???
  10125. SeeAlso: AH=78h,AH=79h,AH=7Ah,AH=7Ch
  10126. Index: installation check;RainbowFAX|installation check;SFENGINE
  10127. Index: uninstall;RainbowFAX|uninstall;SFENGINE
  10128. --------F-1178-------------------------------
  10129. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  10130. AH = 78h
  10131. AL = subfunction
  10132. 01h set ???
  10133. BX = new state for ???
  10134. 0000h ???
  10135. else ???
  10136. Return: AX = 0001h
  10137. 02h set ???
  10138. BX = ???
  10139. CX = ???
  10140. Return: AX = 0001h
  10141. 03h set ???
  10142. BX = new state for ???
  10143. 0000h ???
  10144. else ???
  10145. Return: AX = 0001h
  10146. else
  10147. Return: AX = FFFFh (invalid subfunction)
  10148. SeeAlso: AH=77h,AH=79h,AH=7Ah,AH=7Ch
  10149. --------F-1179-------------------------------
  10150. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  10151. AH = 79h
  10152. AL = subfunction
  10153. 01h set ??? flag
  10154. Return: AX = previous state (0000h already set, 0001h clear)
  10155. 02h clear ??? flag (refer to subfunc 01h)
  10156. Return: AX = 0001h
  10157. 03h set ??? flag (different from subfn 02h or 04h)
  10158. Return: AX = 0001h
  10159. 04h clear ??? flag (different from subfn 02h or 03h)
  10160. Return: AX = 0001h
  10161. else
  10162. Return: AX = FFFFh (invalid subfunction)
  10163. SeeAlso: AH=77h,AH=78h,AH=7Ah,AH=7Ch
  10164. --------F-117A-------------------------------
  10165. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  10166. AH = 7Ah
  10167. AL = subfunction
  10168. 01h set ??? flag
  10169. Return: AX = previous state (0000h already set, 0001h clear)
  10170. 02h clear ??? flag
  10171. Return: AX = 0001h
  10172. 03h set ??? flag (different from subfn 02h)
  10173. Return: AX = 0001h
  10174. else
  10175. Return: AX = FFFFh (invalid subfunction)
  10176. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ch
  10177. --------F-117C01-----------------------------
  10178. INT 11 - RainbowFAX v1.3 - SFENGINE API - SET ??? FLAG
  10179. AX = 7C01h
  10180. Return: AX = 0001h
  10181. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah,AX=7C02h,AX=7C03h
  10182. --------F-117C02-----------------------------
  10183. INT 11 - RainbowFAX v1.3 - SFENGINE API - CLEAR ??? FLAG
  10184. AX = 7C02h
  10185. Return: AX = 0001h
  10186. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah,AX=7C01h,AX=7C03h
  10187. --------F-117C03-----------------------------
  10188. INT 11 - RainbowFAX v1.3 - SFENGINE API - UNSUPPORTED FUNCTIONS
  10189. AX = 7C03h-7CFFh
  10190. Return: AX = FFFFh
  10191. SeeAlso: AH=77h,AX=7C01h,AX=7C02h
  10192. --------S-11BC--DX1954-----------------------
  10193. INT 11 - BNU FOSSIL - INSTALLATION CHECK
  10194. AH = BCh
  10195. DX = 1954h
  10196. Return: AX = 1954h
  10197. ES:DX -> entry point of driver (instead of INT 14)
  10198. SeeAlso: INT 14/AH=04h"FOSSIL"
  10199. --------d-11FF--SI6A6A-----------------------
  10200. INT 11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND
  10201. AH = FFh
  10202. SI = 6A6Ah
  10203. AL = SCSI Addressing (see #00230)
  10204. CX = bytes of data to be transmitted (max FFF0h)
  10205. DH = 00h
  10206. DL = length of SCSI Command Descriptor Block
  10207. DS:DI -> SCSI Command Descriptor Block
  10208. ES:BX -> data buffer
  10209. Return: CF set on error
  10210. AL = error code
  10211. CF clear if successful
  10212. Note: because of busmaster operations with WD7000FASST avoid accessing
  10213. video memory directly; check 386 memory manager for VDS support.
  10214. The WD7000XTAT works with programmed IO and does not have this
  10215. limitation.
  10216. SeeAlso: INT 21/AX=4402h"ASPI",INT 2F/AX=7F01h
  10217. Bitfields for SDLP SCSI addressing:
  10218. Bit(s) Description (Table 00230)
  10219. 2-0 SCSI Target LUN (logical unit number)
  10220. 5-3 SCSI Target ID
  10221. 7 write flag, set for write operations, clear otherwise
  10222. --------T-11FFFECXFFFE-----------------------
  10223. INT 11 - BACK&FORTH (before v1.62) API
  10224. AX = FFFEh
  10225. CX = FFFEh
  10226. BX = function
  10227. 00h installation check
  10228. Return: AX = installation state
  10229. 0001h BNFHIGH and BNFLOW both loaded
  10230. 0003h only BNFHIGH loaded
  10231. else neither loaded
  10232. 01h ???
  10233. Return: DX:AX -> ???
  10234. 02h ???
  10235. 03h ???
  10236. 04h ???
  10237. 05h ??? switches current PSP segment and stack if BNFLOW has not
  10238. yet announced itself installed
  10239. 06h ???
  10240. Return: AX = ???
  10241. SeeAlso: INT 12/AX=FFFEh
  10242. Index: installation check;BACK&FORTH
  10243. --------B-12---------------------------------
  10244. INT 12 - BIOS - GET MEMORY SIZE
  10245. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  10246. Note: this call returns the contents of the word at 0040h:0013h; in PC and
  10247. XT, this value is set from the switches on the motherboard
  10248. SeeAlso: INT 11"BIOS",INT 2F/AX=4A06h,INT 4C"Tandy 2000",MEM 0040h:0013h
  10249. --------C-12---------------------------------
  10250. INT 12 - CPU-generated (Pentium) - MACHINE CHECK EXCEPTION
  10251. Notes: Intel documents this interrupt as CPU model-dependent; for current
  10252. Pentium processors, the reason for the machine check exception may
  10253. be read from model-specific registers 00h and 01h (described, for
  10254. example, in Christian Ludloff's 4P package)
  10255. this exception is enabled by bit 6 of CR4
  10256. SeeAlso: INT 11"CPU",MSR 00000000h,MSR 00000001h
  10257. --------K-12----CX1806-----------------------
  10258. INT 12 - KEYBUI v2.0+ - INSTALLATION CHECK
  10259. CX = 1806h
  10260. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  10261. CX = 1960h if installed
  10262. Program: KEYBUI is a resident keyboard driver by Johan Zwiekhorst which allows
  10263. accented characters and box drawing on standard QWERTY keyboards; it
  10264. also provides break-to-DOS and screen blanking capabilities
  10265. SeeAlso: INT 14/AX=AA01h
  10266. Index: screen saver;KEYBUI
  10267. --------d-12----CX1807-----------------------
  10268. INT 12 - PARKER v2.0+ - INSTALLATION CHECK
  10269. CX = 1807h
  10270. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  10271. CX = 1961h if installed
  10272. Program: PARKER is an optionally-resident hard disk parking program by Johan
  10273. Zwiekhorst
  10274. --------G-1205D7BX05D7-----------------------
  10275. INT 12 U - Borland C++ IDE - INSTALLATION CHECK
  10276. AX = 05D7h (1495d)
  10277. BX = 05D7h
  10278. Note: the BC++ IDE will call INT 11/AX=05D7h/BX=0088h if it is loaded
  10279. SeeAlso: INT 11/AX=05D7h
  10280. --------v-124350BX4920-----------------------
  10281. INT 12 C - CPI-standard virus - "FRIEND" CHECK
  10282. AX = 4350h
  10283. BX = 4920h
  10284. CX = AB46h
  10285. DX = 554Eh
  10286. Return: if friendly (not to be infected)
  10287. CX:DX -> ASCIZ identity code (changes yearly)
  10288. SeeAlso: INT 13/AX=EC00h"VIRUS",INT 13/AX=5001h,INT 21/AX=0B56h
  10289. --------T-12FFFECXFFFE-----------------------
  10290. INT 12 - Back&Forth v1.62+ - API
  10291. AX = FFFEh
  10292. CX = FFFEh
  10293. BX = function
  10294. 00h installation check
  10295. Return: AX = 0001h installed
  10296. else not loaded
  10297. 01h (reserved)
  10298. 02h build program ID list (shareware Back&Forth)
  10299. ES:DI -> buffer of at least 100 bytes, to be filled with words
  10300. Return: AX = number of programs defined
  10301. ES:DI buffer filled with AX words
  10302. 02h get memory statistics (Back&Forth Professional)
  10303. Return: AX = available swap memory, KBytes
  10304. BX = maximum task size, KBytes
  10305. DX = fixed overhead per task, excluding video/macro
  10306. storage
  10307. 03h switch to specified task (task need not be open yet)
  10308. DX = two-letter program ID
  10309. Return: AX = status
  10310. 0000h if task undefined
  10311. 0001h task switch will occur when safe
  10312. 04h (reserved)
  10313. 05h (reserved)
  10314. 06h get version (documented only for Back&Forth Professional)
  10315. Return: AX = version * 100 (v1.71 = 00ABh)
  10316. 07h spawn program (Back&Forth Professional only???)
  10317. ES:DI -> BF_SPAWN record (see #00232)
  10318. Return: AX = status
  10319. 0000h if no task handles free
  10320. 0001h spawn will occur when safe
  10321. 08h get open tasks (documented only for Back&Forth Professional)
  10322. ES:DI -> task info buffer (see #00231,#00233)
  10323. Return: AX = number of open tasks (max 20)
  10324. Note: the supplied buffer must be large enough to hold 21
  10325. task entries
  10326. 09h (reserved)
  10327. ---Back&Forth Professional---
  10328. 0Ah get active clipboard filename
  10329. Return: DX:AX -> ASCIZ clipboard filename
  10330. 0Bh get active task number
  10331. AX = active task number (00h-13h)
  10332. BX = number of tasks allocated
  10333. DX = maximum number of tasks
  10334. 0Ch (reserved)
  10335. 0Dh (reserved)
  10336. 0Eh (reserved)
  10337. 0Fh stuff string into keyboard buffer
  10338. ES:DI -> ASCIZ string to be stuffed
  10339. Return: nothing
  10340. 10h check if in graphics mode
  10341. Return: AX = state
  10342. 0000h color text mode
  10343. 0004h mono text mode
  10344. FFFFh graphics mode
  10345. 11h get Back&Forth Professional user number
  10346. Return: AX = user number (0000h-00FFh)
  10347. 12h switch task by task number
  10348. DX = task number
  10349. Return: AX = status
  10350. 0000h attempted to switch to active task
  10351. 0001h task switch will occur when safe
  10352. FFFFh invalid task number
  10353. 13h delete (kill) task
  10354. DX = task number
  10355. Return: AX = status
  10356. 0000h attempted to delete the active task
  10357. 0001h successfully deleted
  10358. FFFFh invalid task number
  10359. Note: the active task number will change if the deleted task
  10360. was lower in the task list than the active task
  10361. 14h get next available task handle
  10362. Return: AX = next available task handle
  10363. FFFFh if task table is full
  10364. Program: Back & Forth is a task switcher by Progressive Solutions, Inc.
  10365. SeeAlso: INT 11/AX=FFFEh
  10366. Index: installation check;BACK&FORTH
  10367. Format of Back&Forth task info buffer:
  10368. Offset Size Description (Table 00231)
  10369. 00h 21 BYTEs ASCIZ task name
  10370. 15h BYTE hotkey shift state (as for INT 16/AH=02h)
  10371. 16h WORD hotkey scan code (see also #00006)
  10372. 18h WORD program ID
  10373. Index: hotkeys;Back&Forth
  10374. SeeAlso: #00232,#00233
  10375. Format of Back&Forth Professional BF_SPAWN record:
  10376. Offset Size Description (Table 00232)
  10377. 00h 21 BYTEs task description
  10378. 15h BYTE flag: disable hotkeys
  10379. 16h WORD environment size in bytes
  10380. 18h BYTE hotkey shift flags
  10381. 19h WORD hotkey scancode
  10382. 1Bh WORD maximum number of EMS pages
  10383. 1Dh WORD required memory in KBytes
  10384. 1Fh 3 BYTEs DESQview-style two-letter program ID
  10385. 22h 13 BYTEs base name of program to be run (no path or extension)
  10386. 2Fh 66 BYTEs directory from which to start program
  10387. 71h 66 BYTEs initial current directory for program
  10388. SeeAlso: #00231,#00233
  10389. Format of Back&Forth Professional BF_TASK record:
  10390. Offset Size Description (Table 00233)
  10391. 00h DWORD Unix-style task start time (seconds since 1/1/1970)
  10392. 04h 21 BYTEs task description
  10393. 19h DWORD elapsed time in task (seconds)
  10394. 1Dh WORD task ID
  10395. 1Fh BYTE task hotkey keyboard flags
  10396. 20h WORD task hotkey scan code (see also #00006)
  10397. 22h DWORD time task was suspended/exited
  10398. 26h WORD task handle
  10399. SeeAlso: #00231,#00232
  10400. --------B-1300-------------------------------
  10401. INT 13 - DISK - RESET DISK SYSTEM
  10402. AH = 00h
  10403. DL = drive (if bit 7 is set both hard disks and floppy disks reset)
  10404. Return: AH = status (see #00234)
  10405. CF clear if successful (returned AH=00h)
  10406. CF set on error
  10407. Note: forces controller to recalibrate drive heads (seek to track 0)
  10408. for PS/2 35SX, 35LS, 40SX and L40SX, as well as many other systems,
  10409. both the master drive and the slave drive respond to the Reset
  10410. function that is issued to either drive
  10411. SeeAlso: AH=0Dh,AH=11h,INT 21/AH=0Dh,INT 4D/AH=00h"TI Professional"
  10412. SeeAlso: INT 56"Tandy 2000",MEM 0040h:003Eh
  10413. --------B-1301-------------------------------
  10414. INT 13 - DISK - GET STATUS OF LAST OPERATION
  10415. AH = 01h
  10416. DL = drive (bit 7 set for hard disk)
  10417. Return: CF clear if successful (returned status 00h)
  10418. CF set on error
  10419. AH = status of previous operation (see #00234)
  10420. Note: some BIOSes return the status in AL; the PS/2 Model 30/286 returns the
  10421. status in both AH and AL
  10422. SeeAlso: AH=00h,INT 4D/AH=01h,MEM 0040h:0041h,MEM 0040h:0074h
  10423. (Table 00234)
  10424. Values for disk operation status:
  10425. 00h successful completion
  10426. 01h invalid function in AH or invalid parameter
  10427. 02h address mark not found
  10428. 03h disk write-protected
  10429. 04h sector not found/read error
  10430. 05h reset failed (hard disk)
  10431. 05h data did not verify correctly (TI Professional PC)
  10432. 06h disk changed (floppy)
  10433. 07h drive parameter activity failed (hard disk)
  10434. 08h DMA overrun
  10435. 09h data boundary error (attempted DMA across 64K boundary or >80h sectors)
  10436. 0Ah bad sector detected (hard disk)
  10437. 0Bh bad track detected (hard disk)
  10438. 0Ch unsupported track or invalid media
  10439. 0Dh invalid number of sectors on format (PS/2 hard disk)
  10440. 0Eh control data address mark detected (hard disk)
  10441. 0Fh DMA arbitration level out of range (hard disk)
  10442. 10h uncorrectable CRC or ECC error on read
  10443. 11h data ECC corrected (hard disk)
  10444. 20h controller failure
  10445. 31h no media in drive (IBM/MS INT 13 extensions)
  10446. 32h incorrect drive type stored in CMOS (Compaq)
  10447. 40h seek failed
  10448. 80h timeout (not ready)
  10449. AAh drive not ready (hard disk)
  10450. B0h volume not locked in drive (INT 13 extensions)
  10451. B1h volume locked in drive (INT 13 extensions)
  10452. B2h volume not removable (INT 13 extensions)
  10453. B3h volume in use (INT 13 extensions)
  10454. B4h lock count exceeded (INT 13 extensions)
  10455. B5h valid eject request failed (INT 13 extensions)
  10456. BBh undefined error (hard disk)
  10457. CCh write fault (hard disk)
  10458. E0h status register error (hard disk)
  10459. FFh sense operation failed (hard disk)
  10460. SeeAlso: #M0022
  10461. --------B-1302-------------------------------
  10462. INT 13 - DISK - READ SECTOR(S) INTO MEMORY
  10463. AH = 02h
  10464. AL = number of sectors to read (must be nonzero)
  10465. CH = low eight bits of cylinder number
  10466. CL = sector number 1-63 (bits 0-5)
  10467. high two bits of cylinder (bits 6-7, hard disk only)
  10468. DH = head number
  10469. DL = drive number (bit 7 set for hard disk)
  10470. ES:BX -> data buffer
  10471. Return: CF set on error
  10472. if AH = 11h (corrected ECC error), AL = burst length
  10473. CF clear if successful
  10474. AH = status (see #00234)
  10475. AL = number of sectors transferred (only valid if CF set for some
  10476. BIOSes)
  10477. Notes: errors on a floppy may be due to the motor failing to spin up quickly
  10478. enough; the read should be retried at least three times, resetting
  10479. the disk with AH=00h between attempts
  10480. most BIOSes support "multitrack" reads, where the value in AL
  10481. exceeds the number of sectors remaining on the track, in which
  10482. case any additional sectors are read beginning at sector 1 on
  10483. the following head in the same cylinder; the MSDOS CONFIG.SYS command
  10484. MULTITRACK (or the Novell DOS DEBLOCK=) can be used to force DOS to
  10485. split disk accesses which would wrap across a track boundary into two
  10486. separate calls
  10487. the IBM AT BIOS and many other BIOSes use only the low four bits of
  10488. DH (head number) since the WD-1003 controller which is the standard
  10489. AT controller (and the controller that IDE emulates) only supports
  10490. 16 heads
  10491. AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  10492. than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  10493. into bits 6 and 7 of DH
  10494. under Windows95, a volume must be locked (see INT 21/AX=440Dh/CX=084Bh)
  10495. in order to perform direct accesses such as INT 13h reads and writes
  10496. all versions of MS-DOS (including v7 [Win95]) have a bug which prevents
  10497. booting on hard disks with 256 heads, so many modern BIOSes provide
  10498. mappings with at most 255 heads
  10499. SeeAlso: AH=03h,AH=0Ah,AH=06h"V10DISK.SYS",AH=21h"PS/1",AH=42h"IBM"
  10500. SeeAlso: INT 21/AX=440Dh/CX=084Bh,INT 4D/AH=02h
  10501. --------B-1303-------------------------------
  10502. INT 13 - DISK - WRITE DISK SECTOR(S)
  10503. AH = 03h
  10504. AL = number of sectors to write (must be nonzero)
  10505. CH = low eight bits of cylinder number
  10506. CL = sector number 1-63 (bits 0-5)
  10507. high two bits of cylinder (bits 6-7, hard disk only)
  10508. DH = head number
  10509. DL = drive number (bit 7 set for hard disk)
  10510. ES:BX -> data buffer
  10511. Return: CF set on error
  10512. CF clear if successful
  10513. AH = status (see #00234)
  10514. AL = number of sectors transferred
  10515. (only valid if CF set for some BIOSes)
  10516. Notes: errors on a floppy may be due to the motor failing to spin up quickly
  10517. enough; the write should be retried at least three times, resetting
  10518. the disk with AH=00h between attempts
  10519. most BIOSes support "multitrack" writes, where the value in AL
  10520. exceeds the number of sectors remaining on the track, in which
  10521. case any additional sectors are written beginning at sector 1 on
  10522. the following head in the same cylinder; the CONFIG.SYS command
  10523. MULTITRACK can be used to force DOS to split disk accesses which
  10524. would wrap across a track boundary into two separate calls
  10525. the IBM AT BIOS and many other BIOSes use only the low four bits of
  10526. DH (head number) since the WD-1003 controller which is the standard
  10527. AT controller (and the controller that IDE emulates) only supports
  10528. 16 heads
  10529. AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  10530. than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  10531. into bits 6 and 7 of DH
  10532. under Windows95, an application must issue a physical volume lock on
  10533. the drive via INT 21/AX=440Dh before it can successfully write to
  10534. the disk with this function
  10535. SeeAlso: AH=02h,AH=0Bh,AH=07h"V10DISK.SYS",AH=22h"PS/1",AH=43h"IBM"
  10536. SeeAlso: INT 21/AX=440Dh"DOS 3.2+",INT 4D/AH=03h
  10537. --------B-1304-------------------------------
  10538. INT 13 - DISK - VERIFY DISK SECTOR(S)
  10539. AH = 04h
  10540. AL = number of sectors to verify (must be nonzero)
  10541. CH = low eight bits of cylinder number
  10542. CL = sector number 1-63 (bits 0-5)
  10543. high two bits of cylinder (bits 6-7, hard disk only)
  10544. DH = head number
  10545. DL = drive number (bit 7 set for hard disk)
  10546. ES:BX -> data buffer (PC,XT,AT with BIOS prior to 11/15/85)
  10547. Return: CF set on error
  10548. CF clear if successful
  10549. AH = status (see #00234)
  10550. AL = number of sectors verified
  10551. Notes: errors on a floppy may be due to the motor failing to spin up quickly
  10552. enough; the write should be retried at least three times, resetting
  10553. the disk with AH=00h between attempts
  10554. this function does not compare the disk with memory, it merely
  10555. checks whether the sector's stored CRC matches the data's actual CRC
  10556. the IBM AT BIOS and many other BIOSes use only the low four bits of
  10557. DH (head number) since the WD-1003 controller which is the standard
  10558. AT controller (and the controller that IDE emulates) only supports
  10559. 16 heads
  10560. AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  10561. than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  10562. into bits 6 and 7 of DH
  10563. SeeAlso: AH=02h,AH=44h,INT 4D/AH=04h,INT 4D/AH=06h
  10564. --------B-1305-------------------------------
  10565. INT 13 - FLOPPY - FORMAT TRACK
  10566. AH = 05h
  10567. AL = number of sectors to format
  10568. CH = track number
  10569. DH = head number
  10570. DL = drive number
  10571. ES:BX -> address field buffer (see #00235)
  10572. Return: CF set on error
  10573. CF clear if successful
  10574. AH = status (see #00234)
  10575. Notes: on AT or higher, call AH=17h first
  10576. the number of sectors per track is read from the diskette parameter
  10577. table pointed at by INT 1E
  10578. SeeAlso: AH=05h"FIXED",AH=17h,AH=18h,INT 1E
  10579. Format of floppy format address field buffer entry (one per sector in track):
  10580. Offset Size Description (Table 00235)
  10581. 00h BYTE track number
  10582. 01h BYTE head number (0-based)
  10583. 02h BYTE sector number
  10584. 03h BYTE sector size (00h=128 bytes, 01h=256 bytes, 02h=512, 03h=1024)
  10585. --------B-1305-------------------------------
  10586. INT 13 - FIXED DISK - FORMAT TRACK
  10587. AH = 05h
  10588. AL = interleave value (XT-type controllers only)
  10589. ES:BX -> 512-byte format buffer
  10590. the first 2*(sectors/track) bytes contain F,N for each sector
  10591. F = sector type
  10592. 00h for good sector
  10593. 20h to unassign from alternate location
  10594. 40h to assign to alternate location
  10595. 80h for bad sector
  10596. N = sector number
  10597. CH = cylinder number (bits 8,9 in high bits of CL)
  10598. CL = high bits of cylinder number (bits 7,6)
  10599. DH = head
  10600. DL = drive
  10601. Return: CF set on error
  10602. CF clear if successful
  10603. AH = status code (see #00234)
  10604. Notes: AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  10605. than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  10606. into bits 6 and 7 of DH
  10607. for XT-type controllers on an AT or higher, AH=0Fh should be called
  10608. first
  10609. the IBM AT BIOS and many other BIOSes use only the low four bits of
  10610. DH (head number) since the WD-1003 controller which is the standard
  10611. AT controller (and the controller that IDE emulates) only supports
  10612. 16 heads
  10613. not all controller support sector types 20h and 40h
  10614. under Windows95, an application must issue a physical volume lock on
  10615. the drive via INT 21/AX=440Dh before it can successfully write to
  10616. the disk with this function
  10617. SeeAlso: AH=05h"FLOPPY",AH=06h"FIXED",AH=07h"FIXED",AH=0Fh,AH=18h,AH=1Ah
  10618. --------d-1305-------------------------------
  10619. INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND
  10620. AH = 05h
  10621. DL = hard drive ID
  10622. ES:BX -> mode select data (see #00236)
  10623. Return: CF set on error
  10624. CF clear if successful
  10625. AH = status code (see #00234)
  10626. Notes: this function can be called before AH=07h"SCSI" or AH=06h"SCSI" to
  10627. format a SCSI disk with the desired parameters
  10628. the mode select data below is from the SCSI-1 specification
  10629. the TMC-950 does not support any Future Domain BIOS calls; instead,
  10630. it provides a full CAM implementation (see INT 4F/AX=8100h)
  10631. SeeAlso: AH=06h"SCSI",AH=07h"SCSI",INT 4F/AX=8100h
  10632. Format of Future Domain SCSI mode select data:
  10633. Offset Size Description (Table 00236)
  10634. 00h BYTE number of bytes of remaining data (12 + vendor unique length)
  10635. 01h BYTE reserved (0)
  10636. 02h BYTE medium type (0 for hard disk)
  10637. 03h BYTE reserved (0)
  10638. 04h BYTE block descriptor length (8)
  10639. 05h BYTE density code (0 for hard disk)
  10640. 06h 3 BYTEs (big-endian) number of blocks (000000h for entire disk)
  10641. 09h BYTE reserved (0)
  10642. 0Ah 3 BYTEs (big-endian) block length (512 standard, or 256)
  10643. 0Dh ??? vendor-specific parameter bytes (optional)
  10644. --------d-13057FSI324D-----------------------
  10645. INT 13 - 2M - FORMAT TRACK
  10646. AX = 057Fh
  10647. SI = 324Dh ("2M")
  10648. CH = track number
  10649. DH = head number
  10650. DL = drive number
  10651. ES:BX -> boot sector of future 2M diskette
  10652. Return: CF set on error
  10653. CF clear if successful
  10654. AH = status (see #00234)
  10655. Program: 2M is a TSR developed by Ciriaco Garcia de Celis to support
  10656. non standard diskettes with 820-902/1476-1558K (5.25 DD/HD)
  10657. and 984-1066/1804-1886K/3608-3772K (3.5 DD/HD/ED)
  10658. InstallCheck: must search for a "CiriSOFT:2M:1.3" or "CiriSOFT:2MX:3.0" or
  10659. similar (recomended ":2M:", ":2MX:", or ":2MB:" substrings) in the
  10660. CiriSOFT TSR interface
  10661. Notes: it is not necessary to call AH=17h or AH=18h first (will be ignored)
  10662. the diskette format must always begin on cylinder 0 head 0
  10663. the boot sector can be obtained from an already-formatted 2M diskette
  10664. (by calling AH=02h with head number 00h in 2M v1.x and with head
  10665. number 80h for 2M v2+)
  10666. since 2M v2.0, the BOOT sector is emulated using the first physical
  10667. sector of FAT2; the second-sixth physical sectors of FAT2 in HD or ED
  10668. diskettes store the SuperBOOT code. To skip the FAT2 emulation (using
  10669. FAT1) of 2M, in order to read the SuperBOOT code, head number must be
  10670. 80h-81h instead 0-1 (bit 7 active) in standard read/write functions.
  10671. This lets diskcopy programs format 2M target diskettes copying
  10672. SuperBOOT code. If the target diskette is already 2MF formatted
  10673. (containing boot code) this trick it is not necessary.
  10674. when using STV technology (offset 65 of boot sector equal to 1) it is
  10675. necessary to write the full track before formatting (except track 0
  10676. side 0) to complete the format and skip future CRC errors on read; in
  10677. track 0 side 1 the head used must be 81h instead 1. Diskcopy programs
  10678. may do a format-write-verify sequential phases to improve performance
  10679. SeeAlso: AH=05h"FLOPPY",AH=18h/CX=5055h,INT 2F"CiriSOFT"
  10680. --------B-1306-------------------------------
  10681. INT 13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT)
  10682. AH = 06h
  10683. AL = interleave value
  10684. CH = cylinder number (bits 8,9 in high bits of CL)
  10685. CL = sector number
  10686. DH = head
  10687. DL = drive
  10688. Return: AH = status code (see #00234)
  10689. Note: AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  10690. than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  10691. into bits 6 and 7 of DH
  10692. SeeAlso: AH=05h"FIXED",AH=07h"FIXED"
  10693. --------d-1306-------------------------------
  10694. INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING
  10695. AH = 06h
  10696. AL = interleave
  10697. (0 = default, 1 = consecutive sectors, 2 - 255 = vendor unique)
  10698. DL = hard drive ID
  10699. DH = defect list info (see #00237)
  10700. ES:BX -> defect table A, B or C (see #00238,#00239,#00240)
  10701. Return: CF set on error
  10702. CF clear if successful
  10703. AH = status code (see #00234)
  10704. Notes: block addresses must be in ascending order (for table B, cylinder is
  10705. most significant, byte from index least significant; for table C,
  10706. cylinder is most significant, sector number least significant)
  10707. table B defect bytes from index of FFFFFFFFh indicates that the entire
  10708. track shall be reassigned
  10709. table C defect sector number of FFFFFFFFh indicates that the entire
  10710. track shall be reassigned
  10711. the TMC-950 does not support any Future Domain BIOS calls; instead,
  10712. it provides a full CAM implementation (see INT 4F/AX=8100h)
  10713. SeeAlso: AH=05h"SCSI",AH=06h"FIXED",AH=07h"SCSI"
  10714. Bitfields for Future Domain SCSI defect list info:
  10715. Bit(s) Description (Table 00237)
  10716. 7-5 drive LUN
  10717. 4 defect list is available
  10718. 3 defect list is complete (erase drive's defect list)
  10719. 2-0 defect table format
  10720. (000=use defect table A, 100=use defect table B,
  10721. 101=use defect table C)
  10722. Format of Future Domain SCSI defect table A:
  10723. Offset Size Description (Table 00238)
  10724. 00h WORD number of bytes remaining in table
  10725. 02h BYTE reserved (0)
  10726. 03h BYTE reserved (0)
  10727. 04h WORD (big-endian) defect list length (4*number of defects)
  10728. 06h 4 DWORDs (big-endian) defect block addresses
  10729. Format of Future Domain SCSI defect table B:
  10730. Offset Size Description (Table 00239)
  10731. 00h WORD number of bytes remaining in table
  10732. 02h BYTE reserved (0)
  10733. 03h BYTE reserved (0)
  10734. 04h WORD (big-endian) defect list length (8*number of defects)
  10735. 06h 8N BYTEs defect list [array] (see #00241)
  10736. Format of Future Domain SCSI defect table C:
  10737. Offset Size Description (Table 00240)
  10738. 00h WORD number of bytes remaining in table
  10739. 02h BYTE reserved (0)
  10740. 03h BYTE reserved (0)
  10741. 04h WORD (big-endian) defect list length (8*number of defects)
  10742. 06h 8N BYTEs defect list [array] (see #00241)
  10743. Format of Future Domain SCSI defect list entry:
  10744. Offset Size Description (Table 00241)
  10745. 00h 3 BYTEs (big-endian) cylinder number of defect
  10746. 03h BYTE head number of defect
  10747. 04h DWORD (big-endian) defect bytes from index
  10748. --------d-1306-------------------------------
  10749. INT 13 - Adaptec AHA-154xA/Bustek BT-542 BIOS - IDENTIFY SCSI DEVICES
  10750. AH = 06h
  10751. Return: AH = status code (see #00234)
  10752. CF clear if successful
  10753. AL = first drive supported
  10754. (80h nonconcurrent operation, 81h concurrent operation)
  10755. CF set on error
  10756. Desc: determine the number of the first supported SCSI drive
  10757. Note: the return value is 80h when two SCSI drives are supported, 81h if
  10758. only one SCSI drive is installed
  10759. SeeAlso: AH=08h"PC",#00732 at INT 1A/AX=B102h
  10760. --------d-1306-------------------------------
  10761. INT 13 - V10DISK.SYS - READ DELETED SECTORS
  10762. AH = 06h
  10763. AL = number of sectors
  10764. CH = cylinder number (bits 8,9 in high bits of CL)
  10765. CL = sector number
  10766. DH = head
  10767. DL = drive
  10768. ES:BX -> buffer
  10769. Return: AH = status code (see #00234)
  10770. Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies
  10771. SeeAlso: AH=02h,AH=07h"V10DISK.SYS"
  10772. --------B-1307-------------------------------
  10773. INT 13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT)
  10774. AH = 07h
  10775. AL = interleave value (XT only)
  10776. ES:BX = 512-byte format buffer (see AH=05h)
  10777. CH = cylinder number (bits 8,9 in high bits of CL)
  10778. CL = sector number
  10779. DH = head
  10780. DL = drive
  10781. Return: AH = status code (see #00234)
  10782. Note: AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  10783. than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  10784. into bits 6 and 7 of DH
  10785. SeeAlso: AH=05h"FIXED",AH=06h"FIXED",AH=1Ah
  10786. --------d-1307-------------------------------
  10787. INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE
  10788. AH = 07h
  10789. AL = interleave (0 = default, 1 = consecutive sectors,
  10790. 2 - 255 = vendor unique)
  10791. DL = hard drive ID
  10792. Return: CF set on error
  10793. CF clear if successful
  10794. AH = status code (see #00234)
  10795. SeeAlso: AH=05h"SCSI",AH=06h"SCSI",AH=07h"FIXED"
  10796. --------d-1307-------------------------------
  10797. INT 13 - V10DISK.SYS - WRITE DELETED SECTORS
  10798. AH = 07h
  10799. AL = number of sectors
  10800. CH = cylinder number (bits 8,9 in high bits of CL)
  10801. CL = sector number
  10802. DH = head
  10803. DL = drive
  10804. ES:BX -> buffer
  10805. Return: AH = status code (see #00234)
  10806. Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies
  10807. SeeAlso: AH=03h,AH=06h"V10DISK.SYS"
  10808. --------B-1308-------------------------------
  10809. INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)
  10810. AH = 08h
  10811. DL = drive (bit 7 set for hard disk)
  10812. Return: CF set on error
  10813. AH = status (07h) (see #00234)
  10814. CF clear if successful
  10815. AH = 00h
  10816. AL = 00h on at least some BIOSes
  10817. BL = drive type (AT/PS2 floppies only) (see #00242)
  10818. CH = low eight bits of maximum cylinder number
  10819. CL = maximum sector number (bits 5-0)
  10820. high two bits of maximum cylinder number (bits 7-6)
  10821. DH = maximum head number
  10822. DL = number of drives
  10823. ES:DI -> drive parameter table (floppies only)
  10824. Notes: may return successful even though specified drive is greater than the
  10825. number of attached drives of that type (floppy/hard); check DL to
  10826. ensure validity
  10827. for systems predating the IBM AT, this call is only valid for hard
  10828. disks, as it is implemented by the hard disk BIOS rather than the
  10829. ROM BIOS
  10830. Toshiba laptops with HardRAM return DL=02h when called with DL=80h,
  10831. but fail on DL=81h. The BIOS data at 40h:75h correctly reports 01h.
  10832. may indicate only two drives present even if more are attached; to
  10833. ensure a correct count, one can use AH=15h to scan through possible
  10834. drives
  10835. for BIOSes which reserve the last cylinder for testing purposes, the
  10836. cylinder count is automatically decremented
  10837. on PS/1s with IBM ROM DOS 4, nonexistent drives return CF clear,
  10838. BX=CX=0000h, and ES:DI = 0000h:0000h
  10839. the PC-Tools PCFORMAT program requires that AL=00h before it will
  10840. proceed with the formatting
  10841. BUG: several different Compaq BIOSes incorrectly report high-numbered
  10842. drives (such as 90h, B0h, D0h, and F0h) as present, giving them the
  10843. same geometry as drive 80h; as a workaround, scan through disk
  10844. numbers, stopping as soon as the number of valid drives encountered
  10845. equals the value in 0040h:0075h
  10846. SeeAlso: AH=06h"Adaptec",AH=13h"SyQuest",AH=48h,AH=15h,INT 1E
  10847. SeeAlso: INT 41"HARD DISK 0"
  10848. (Table 00242)
  10849. Values for diskette drive type:
  10850. 01h 360K
  10851. 02h 1.2M
  10852. 03h 720K
  10853. 04h 1.44M
  10854. 05h ??? (reportedly an obscure drive type shipped on some IBM machines)
  10855. 2.88M on some machines (at least AMI 486 BIOS)
  10856. 06h 2.88M
  10857. 10h ATAPI Removable Media Device
  10858. --------d-1308-------------------------------
  10859. INT 13 - V10DISK.SYS - SET FORMAT
  10860. AH = 08h
  10861. AL = number of sectors
  10862. CH = cylinder number (bits 8,9 in high bits of CL)
  10863. CL = sector number
  10864. DH = head
  10865. DL = drive
  10866. Return: AH = status code (see #00234)
  10867. Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies
  10868. Note: details not available
  10869. SeeAlso: AH=03h,AH=06h"V10DISK.SYS"
  10870. --------y-130800DLF0-------------------------
  10871. INT 13 - SecureDrive - INSTALLATION CHECK
  10872. AX = 08000h
  10873. DL = F0h
  10874. Return: AX = EDCBh for version 1.0-1.2
  10875. AX = EDCCh for version 1.3
  10876. CX = code segment
  10877. DX = data address within code segment
  10878. Program: SecureDrive by Mike Ingle <mikeingle@delphi.com> allows you to create
  10879. an encrypted partition on your harddisk.
  10880. --------B-1309-------------------------------
  10881. INT 13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS)
  10882. AH = 09h
  10883. DL = drive (80h for first, 81h for second)
  10884. Return: CF clear if successful
  10885. CF set on error
  10886. AH = status (see #00234)
  10887. Notes: on the PC and XT, this function uses the parameter table pointed at by
  10888. INT 41
  10889. on the AT and later, this function uses the parameter table pointed at
  10890. by INT 41 if DL=80h, and the parameter table pointed at by INT 46 if
  10891. DL=81h
  10892. SeeAlso: INT 41"HARD DISK 0",INT 46"HARD DISK 1"
  10893. --------B-130A-------------------------------
  10894. INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later)
  10895. AH = 0Ah
  10896. AL = number of sectors (01h may be only value supported)
  10897. CH = low eight bits of cylinder number
  10898. CL = sector number (bits 5-0)
  10899. high two bits of cylinder number (bits 7-6)
  10900. DH = head number
  10901. DL = drive number (80h = first, 81h = second)
  10902. ES:BX -> data buffer
  10903. Return: CF clear if successful
  10904. CF set on error
  10905. AH = status (see #00234)
  10906. AL = number of sectors transferred
  10907. Notes: this function reads in four to seven bytes of error-correcting code
  10908. along with each sector's worth of information
  10909. data errors are not automatically corrected, and the read is aborted
  10910. after the first sector with an ECC error
  10911. used for diagnostics only on PS/2 systems; IBM officially classifies
  10912. this function as optional
  10913. SeeAlso: AH=02h,AH=0Bh,MEM 0040h:0074h
  10914. --------B-130B-------------------------------
  10915. INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)
  10916. AH = 0Bh
  10917. AL = number of sectors (01h may be only value supported)
  10918. CH = low eight bits of cylinder number
  10919. CL = sector number (bits 5-0)
  10920. high two bits of cylinder number (bits 7-6)
  10921. DH = head number
  10922. DL = drive number (80h = first, 81h = second)
  10923. ES:BX -> data buffer
  10924. Return: CF clear if successful
  10925. CF set on error
  10926. AH = status (see #00234)
  10927. AL = number of sectors transferred
  10928. Notes: each sector's worth of data must be followed by four to seven bytes of
  10929. error-correction information
  10930. used for diagnostics only on PS/2 systems; IBM officially classifies
  10931. this function as optional
  10932. SeeAlso: AH=03h,AH=0Ah,MEM 0040h:0074h
  10933. --------B-130C-------------------------------
  10934. INT 13 - HARD DISK - SEEK TO CYLINDER
  10935. AH = 0Ch
  10936. CH = low eight bits of cylinder number
  10937. CL = sector number (bits 5-0)
  10938. high two bits of cylinder number (bits 7-6)
  10939. DH = head number
  10940. DL = drive number (80h = first, 81h = second hard disk)
  10941. Return: CF set on error
  10942. CF clear if successful
  10943. AH = status (see #00234)
  10944. SeeAlso: AH=00h,AH=02h,AH=0Ah,AH=47h
  10945. --------B-130D-------------------------------
  10946. INT 13 - HARD DISK - RESET HARD DISKS
  10947. AH = 0Dh
  10948. DL = drive number (80h = first, 81h = second hard disk)
  10949. Return: CF set on error
  10950. CF clear if successful
  10951. AH = status (see #00234)
  10952. Notes: reinitializes the hard disk controller, resets the specified drive's
  10953. parameters, and recalibrates the drive's heads (seek to track 0)
  10954. for PS/2 35SX, 35LS, 40SX and L40SX, as well as many other systems,
  10955. both the master drive and the slave drive respond to the Reset
  10956. function that is issued to either drive
  10957. not for PS/2 ESDI drives
  10958. SeeAlso: AH=00h,INT 21/AH=0Dh
  10959. --------B-130E-------------------------------
  10960. INT 13 - HARD DISK - READ SECTOR BUFFER (XT only)
  10961. AH = 0Eh
  10962. DL = drive number (80h = first, 81h = second hard disk)
  10963. ES:BX -> buffer
  10964. Return: CF set on error
  10965. CF clear if successful
  10966. AH = status code (see #00234)
  10967. Notes: transfers controller's sector buffer. No data is read from the drive
  10968. used for diagnostics only on PS/2 systems
  10969. SeeAlso: AH=0Ah
  10970. --------B-130F-------------------------------
  10971. INT 13 - HARD DISK - WRITE SECTOR BUFFER (XT only)
  10972. AH = 0Fh
  10973. DL = drive number (80h = first, 81h = second hard disk)
  10974. ES:BX -> buffer
  10975. Return: CF set on error
  10976. CF clear if successful
  10977. AH = status code (see #00234)
  10978. Notes: does not write data to the drive
  10979. should be called before formatting to initialize an XT-type
  10980. controller's sector buffer
  10981. used for diagnostics only on PS/2 systems
  10982. SeeAlso: AH=0Bh
  10983. --------B-1310-------------------------------
  10984. INT 13 - HARD DISK - CHECK IF DRIVE READY
  10985. AH = 10h
  10986. DL = drive number (80h = first, 81h = second hard disk)
  10987. Return: CF set on error
  10988. CF clear if successful
  10989. AH = status (see #00234 at AH=01h)
  10990. SeeAlso: AH=11h
  10991. --------B-1311-------------------------------
  10992. INT 13 - HARD DISK - RECALIBRATE DRIVE
  10993. AH = 11h
  10994. DL = drive number (80h = first, 81h = second hard disk)
  10995. Return: CF set on error
  10996. CF clear if successful
  10997. AH = status (see #00234 at AH=01h)
  10998. Note: causes hard disk controller to seek the specified drive to cylinder 0
  10999. SeeAlso: AH=00h,AH=0Ch,AH=10h,AH=19h"FIXED DISK",MEM 0040h:003Eh
  11000. --------B-1312-------------------------------
  11001. INT 13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS)
  11002. AH = 12h
  11003. DL = drive number (80h = first, 81h = second hard disk)
  11004. Return: CF set on error
  11005. CF clear if successful
  11006. AH = status code (see #00234 at AH=01h)
  11007. AL = 00h
  11008. SeeAlso: AH=13h,AH=14h
  11009. --------d-1312-------------------------------
  11010. INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK
  11011. AH = 12h
  11012. DL = hard drive ID
  11013. Return: CF set on error
  11014. CF clear if successful
  11015. AH = status code (see #00234 at AH=01h)
  11016. Notes: available at least on the TMC-870 8-bit SCSI controller BIOS v6.0A
  11017. if the given drive is a SCSI device, the SCSI Stop Unit command is sent
  11018. and either "Disk prepared for shipping" or "Disk Stop command failed"
  11019. is displayed
  11020. the TMC-950 does not support any Future Domain BIOS calls; instead,
  11021. it provides a full CAM implementation (see INT 4F/AX=8100h)
  11022. --------d-1312-------------------------------
  11023. INT 13 - SyQuest - START/STOP SCSI DISK
  11024. AH = 12h
  11025. AL = subfunction
  11026. 00h start disk
  11027. 01h stop disk
  11028. CX = wait flag
  11029. 00h wait for ready
  11030. 01h don't wait for ready
  11031. DL = hard drive ID (bit 7 for hard disks must be set)
  11032. Return: CF set on error
  11033. CF clear if successful
  11034. AH = status
  11035. 00h successful
  11036. 01h invalid function request
  11037. 80h timeout
  11038. SeeAlso: AH=12h"Future Domain",AH=13h"SyQuest"
  11039. --------B-1313-------------------------------
  11040. INT 13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS)
  11041. AH = 13h
  11042. DL = drive number (80h = first, 81h = second hard disk)
  11043. Return: CF set on error
  11044. CF clear if successful
  11045. AH = status code (see #00234 at AH=01h)
  11046. AL = 00h
  11047. SeeAlso: AH=12h"HARD DISK",AH=14h"HARD DISK"
  11048. --------d-1313-------------------------------
  11049. INT 13 - SyQuest - READ DRIVE PARAMATERS (for DOS 5+)
  11050. AH = 13h
  11051. DL = drive ID (bit 7 set for hard disks)
  11052. Return: CF set on error
  11053. AH = status (07h) (see #00234 at AH=01h)
  11054. CF clear if successful
  11055. AH = 00h
  11056. BL = drive type (AT/PS2 floppies only) (see #00242)
  11057. CH = low eight bits of maximum cylinder number
  11058. CL = maximum sector number (bits 5-0)
  11059. high two bits of maximum cylinder number (bits 7-6)
  11060. DH = maximum head number
  11061. DL = number of drives
  11062. ES:DI -> drive parameter table (floppies only)
  11063. Notes: the return values are identical to the standard INT 13/AH=08h, but the
  11064. number of drives is not limited to 2, so
  11065. scanning all possible drive numbers with the Read DASD Type call
  11066. (AH=15h) should generally be preferred to determine the number of
  11067. drives attached to the system.
  11068. SeeAlso: AH=08h"PC",AH=12h"SyQuest",AH=15h,AH=59h"SyQuest"
  11069. --------B-1314-------------------------------
  11070. INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC
  11071. AH = 14h
  11072. Return: CF set on error
  11073. CF clear if successful
  11074. AH = status code (see #00234 at AH=01h)
  11075. AL = 00h
  11076. SeeAlso: AH=12h,AH=13h
  11077. --------B-1315-------------------------------
  11078. INT 13 - DISK - GET DISK TYPE (XT 1/10/86 or later,XT286,AT,PS)
  11079. AH = 15h
  11080. DL = drive number (bit 7 set for hard disk)
  11081. Return: CF clear if successful
  11082. AH = type code
  11083. 00h no such drive
  11084. 01h floppy without change-line support
  11085. 02h floppy (or other removable drive) with change-line support
  11086. 03h hard disk
  11087. CX:DX = number of 512-byte sectors
  11088. CF set on error
  11089. AH = status (see #00234 at AH=01h)
  11090. Note: SyQuest can report type 01h or 02h for 'hard disks', since its media
  11091. is removable
  11092. BUGS: many versions of the Award 486 BIOS do not return the sector count
  11093. because the BIOS exit code restores CX and DX to their original
  11094. values after the function had already set them to correct values
  11095. several different Compaq BIOSes incorrectly report high-numbered
  11096. drives (such as 90h, B0h, D0h, and F0h) as present, giving them the
  11097. same geometry as drive 80h; as a workaround, scan through disk
  11098. numbers, stopping as soon as the number of valid drives encountered
  11099. equals the value in 0040h:0075h
  11100. SeeAlso: AH=08h,AH=16h,AH=17h,AH=19h"SCSI",MEM 0040h:0075h
  11101. --------B-1316-------------------------------
  11102. INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1/10/86 or later,XT286,AT,PS)
  11103. AH = 16h
  11104. DL = drive number (00h-7Fh)
  11105. Return: CF clear if change line inactive
  11106. AH = 00h (disk not changed)
  11107. CF set if change line active
  11108. AH = status
  11109. 01h invalid command (SyQuest)
  11110. 06h change line active or not supported
  11111. 80h drive not ready or not present
  11112. Notes: call AH=15h first to determine whether the drive supports a change
  11113. line
  11114. this call also clears the media-change status, so that a disk change
  11115. is only reported once
  11116. BUG: some versions of Award 386 Modular BIOS and AMI BIOS fail to clear
  11117. the media-change status
  11118. SeeAlso: AH=15h,AH=49h
  11119. --------B-1317-------------------------------
  11120. INT 13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS)
  11121. AH = 17h
  11122. AL = format type
  11123. 01h = 320/360K disk in 360K drive
  11124. 02h = 320/360K disk in 1.2M drive
  11125. 03h = 1.2M disk in 1.2M drive
  11126. 04h = 720K disk in 720K or 1.44M drive
  11127. DL = drive number
  11128. Return: CF set on error
  11129. CF clear if successful
  11130. AH = status (see #00234 at AH=01h)
  11131. Note: this function does not handle 1.44M drives; use AH=18h instead
  11132. SeeAlso: AH=15h,AH=18h
  11133. --------d-131700-----------------------------
  11134. INT 13 - Future Domain SCSI CONTROLLER - GET INQUIRY INFO FROM SCSI DEVICE
  11135. AX = 1700h
  11136. CL = length of buffer
  11137. DL = hard drive ID
  11138. ES:BX -> buffer for info (see #00243)
  11139. Return: CF clear if successful
  11140. CH = number of bytes returned in buffer???
  11141. CF set on error
  11142. AH = status code (see #00234 at AH=01h)
  11143. Notes: this function is not available with 8-bit controller ROM versions < 7.0
  11144. information block bytes 5-n are vendor-specific in older SCSI devices
  11145. the TMC-950 does not support any Future Domain BIOS calls; instead,
  11146. it provides a full CAM implementation (see INT 4F/AX=8100h)
  11147. SeeAlso: AH=18h"SCSI",AH=1Bh"SCSI"
  11148. Format of Future Domain SCSI inquiry information block:
  11149. Offset Size Description (Table 00243)
  11150. 00h BYTE device type
  11151. bits 0-4: peripheral device type (see #00244)
  11152. bits 5-7: peripheral qualifier (see #00245)
  11153. 01h BYTE device type modifier
  11154. bits 0-6: device type modifier
  11155. bit 7: removable medium
  11156. 02h BYTE SCSI version (see #00246)
  11157. 03h BYTE data format/capabilities (see #00247)
  11158. 04h BYTE additional data length (total remaining bytes)
  11159. 05h 2 BYTEs reserved
  11160. 07h BYTE device capabilities (see #00248)
  11161. 08h 8 BYTEs vendor identification (space-padded ASCII)
  11162. 10h 8 BYTEs product identification (space-padded ASCII)
  11163. 20h 4 BYTEs product revision level (space-padded ASCII)
  11164. 24h 20 BYTEs vendor specific
  11165. 38h 40 BYTEs reserved
  11166. 60h var vendor specific parameters
  11167. (Table 00244)
  11168. Values for Future Domain SCSI peripheral device type:
  11169. 00h direct-access device (e.g., magnetic disk)
  11170. 01h sequential-access device (e.g., magnetic tape)
  11171. 02h printer device
  11172. 03h processor device
  11173. 04h write-once device (e.g., some optical disks)
  11174. 05h CD-ROM device
  11175. 06h scanner device
  11176. 07h optical memory device (e.g., some optical disks)
  11177. 08h medium changer device (e.g., jukeboxes)
  11178. 09h communications device
  11179. 0Ah (defined by ASC IT8)
  11180. 0Bh (defined by ASC IT8)
  11181. 0Ch-1Eh reserved
  11182. 1Fh unknown or no device type
  11183. (Table 00245)
  11184. Values for Future Domain SCSI peripheral qualifier:
  11185. 000b device is currently connected to this logical unit and available
  11186. 001b target is capable of supporting the specified peripheral, but the
  11187. physical device is not currently connected to this logical unit
  11188. 010b reserved
  11189. 011b target can't support a physical device on this logical unit
  11190. 1xxb vendor specific
  11191. Bitfields for Future Domain SCSI version:
  11192. Bit(s) Description (Table 00246)
  11193. 0-2 ANSI-approved version
  11194. 000 device might or might not comply to ANSI standard
  11195. 001 device complies to ANSI SCSI-1
  11196. 010 device complies to ANSI SCSI-2
  11197. other reserved
  11198. 3-5 ECMA version
  11199. 6-7 ISO version
  11200. Bitfields for Future Domain SCSI data format/capabilities:
  11201. Bit(s) Description (Table 00247)
  11202. 0-2 response data format
  11203. 000 information block is as specified in SCSI-1
  11204. 001 information block is as specified in CCS
  11205. 010 information block is as specified in SCSI-2
  11206. other reserved
  11207. 4-5 reserved
  11208. 6 terminate I/O process supported
  11209. 7 asynchronous event notification supported
  11210. Bitfields for Future Domain SCSI device capabilities:
  11211. Bit(s) Description (Table 00248)
  11212. 0 device responds to RESET with a hard RESET
  11213. 1 tagged command queuing supported
  11214. 2 reserved
  11215. 3 linked commands supported
  11216. 4 synchronous data transfer supported
  11217. 5 16-transfers supported
  11218. 6 32-transfers supported
  11219. 7 relative addressing supported
  11220. --------B-1318-------------------------------
  11221. INT 13 - DISK - SET MEDIA TYPE FOR FORMAT (AT model 3x9,XT2,XT286,PS)
  11222. AH = 18h
  11223. DL = drive number
  11224. CH = lower 8 bits of highest cylinder number (number of cylinders - 1)
  11225. CL = sectors per track (bits 0-5)
  11226. top 2 bits of highest cylinder number (bits 6,7)
  11227. Return: AH = status
  11228. 00h requested combination supported
  11229. 01h function not available
  11230. 0Ch not supported or drive type unknown
  11231. 80h there is no disk in the drive
  11232. ES:DI -> 11-byte parameter table (see #01264 at INT 1E)
  11233. Note: this function does not set the INT 1E vector to point at the returned
  11234. parameter table; it is the caller's responsibility to do so
  11235. SeeAlso: AH=05h,AH=07h,AH=17h,INT 1E
  11236. --------d-1318-------------------------------
  11237. INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION
  11238. AH = 18h
  11239. DL = hard drive ID
  11240. Return: CF set on error
  11241. AH = status code (see #00234 at AH=01h)
  11242. CF clear if successful
  11243. AX = 4321h (magic number)
  11244. CX = controller family code (see #00249)
  11245. ---if family code=0200h
  11246. DH = number of exclusively ROM-controlled SCSI devices
  11247. DL = canonical SCSI device number for specified drive
  11248. ---if family code <> 0200h
  11249. BH = number of exclusively ROM-controlled SCSI devices
  11250. BL = canonical SCSI device number for specified drive
  11251. Notes: also sets an internal flag (non-resettable) which prevents some
  11252. controller messages from being displayed, allows writes to
  11253. removable devices (use caution!), and enables the INT 13 interface
  11254. for more than one drive (i.e. DL >= 81h) in at least some ROM
  11255. versions
  11256. the TMC-950 does not support any Future Domain BIOS calls; instead,
  11257. it provides a full CAM implementation (see INT 4F/AX=8100h)
  11258. SeeAlso: AH=05h"SCSI",AX=1700h"SCSI",AH=1Bh"SCSI",INT 4F/AX=8100h
  11259. (Table 00249)
  11260. Values for Future Domain SCSI controller family code:
  11261. 0200h TMC-1680/? (ROM 3.0)
  11262. 0203h TMC-1650/1660/1670/1680 (ROM 2.0)
  11263. 040Ah TMC-820/830/840/850/860/870/875/880/885 (ROM <= 6.0A)
  11264. 050Dh TMC-840/841/880/881 (ROM 5.2D)
  11265. 0700h TMC-830/850/860/875/885 (ROM 7.0)
  11266. --------d-1318--CX5055-----------------------
  11267. INT 13 - PU_1700.COM - INSTALLATION CHECK
  11268. AH = 18h
  11269. CX = 5055h ('PU')
  11270. DL = 00h
  11271. Return: AX = 7570h ('up') if PU_1700 is installed
  11272. Program: PU_1700 is a BIOS enhancer from PU Service Systems which permits
  11273. formatting diskettes at higher capacity (1.78M instead of 1.44M)
  11274. SeeAlso: AX=057Fh/SI=324Dh"2M"
  11275. --------d-1318--CXD2C9-----------------------
  11276. INT 13 - XDF.COM - API
  11277. AH = 18h
  11278. CX = D2C9h ("R"+80h, "I"+80h = Roger Ivey)
  11279. DX = 0000h
  11280. BX = function
  11281. 0000h installation check
  11282. Return: AH = 0Ch
  11283. CX = 7269h ("ri" = Roger Ivey)
  11284. ES = segment of driver
  11285. CF set
  11286. 2F64h ("/d") disable the driver
  11287. Return: AH = 0Ch
  11288. ES:BX = pointer to activation flag (it is set to 0:
  11289. set it to 1 to enable the driver again)
  11290. CX = 7269h
  11291. CF set
  11292. 2F75h ("/u") unload the driver (restore interrupts & free memory)
  11293. Return: AH = 0Ch
  11294. DL = 55h ("U") if successful
  11295. = 00h if fails
  11296. CX = 7269h
  11297. ES = segment of driver
  11298. CF set
  11299. AL, BX, DH, and DI destroyed
  11300. Program: XDF is a TSR provided with PC-DOS 7.0 to support XDF 1.84M disks,
  11301. developed by Roger D. Ivey
  11302. Note: After disabling or enabling the driver, a disk change must be performed
  11303. or simulated to reset the driver.
  11304. --------B-1319-------------------------------
  11305. INT 13 - FIXED DISK - PARK HEADS ON ESDI DRIVE (XT286,PS)
  11306. AH = 19h
  11307. DL = drive
  11308. Return: CF set on error
  11309. CF clear if successful
  11310. AH = status (see #00234 at AH=01h)
  11311. SeeAlso: AH=11h
  11312. --------d-1319-------------------------------
  11313. INT 13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE
  11314. AH = 19h
  11315. DL = hard drive ID
  11316. Return: CF set on error
  11317. AH = status code (see #00234 at AH=01h)
  11318. CF clear if successful
  11319. AH = disk type (03h = fixed disk)
  11320. CX:DX = number of 512-byte sectors
  11321. Notes: sends SCSI Read Capacity command to get number of logical blocks and
  11322. adjusts the result for 512-byte sectors
  11323. displays either "Error in Read Capacity Command" or "nnn Bytes per
  11324. sector" (nnn=256 or 512, the only sizes supported in the translation
  11325. code)
  11326. should probably be called when a removable device has its media changed
  11327. returns the same values as AH=15h
  11328. the TMC-950 does not support any Future Domain BIOS calls; instead,
  11329. it provides a full CAM implementation (see INT 4F/AX=8100h)
  11330. SeeAlso: AH=15h,AH=1Ah,INT 4F/AX=8100h
  11331. --------d-131A-------------------------------
  11332. INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS)
  11333. AH = 1Ah
  11334. AL = defect table entry count
  11335. CL = format modifiers (see #00250)
  11336. DL = drive (80h,81h)
  11337. ES:BX -> defect table (see #00251), ignored if AL=00h
  11338. Return: CF set on error
  11339. CF clear if successful
  11340. AH = status (see #00234 at AH=01h)
  11341. Note: if periodic interrupt selected, INT 15/AH=0Fh is called after each
  11342. cylinder is formatted
  11343. SeeAlso: AH=07h,INT 15/AH=0Fh
  11344. Bitfields for ESDI format modifiers:
  11345. Bit(s) Description (Table 00250)
  11346. 4 generate periodic interrupt
  11347. 3 perform surface analysis
  11348. 2 update secondary defect map
  11349. 1 ignore secondary defect map
  11350. 0 ignore primary defect map
  11351. Format of defect table entry [array]:
  11352. Offset Size Description (Table 00251)
  11353. 00h 3 BYTEs relative sector address (little-endian)
  11354. 03h BYTE flags and defect count
  11355. bit 7: last logical sector on track
  11356. bit 6: first logical sector on track
  11357. bit 5: last logical sector on cylinder
  11358. bit 4: logical sectors are pushed onto next track
  11359. bits 3-0: number of defects pushed from previous cylinder
  11360. --------d-131A-------------------------------
  11361. INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY
  11362. AH = 1Ah
  11363. CH = track (bits 8,9 in high bits of CL)
  11364. CL = sector (01h to number of sectors/track for drive)
  11365. DH = head
  11366. DL = hard drive ID
  11367. Return: CF set on error
  11368. AH = status code (see #00234 at AH=01h)
  11369. CX:DX = logical block number of last quickly-accessible block after
  11370. given block
  11371. Notes: sends SCSI Read Capacity command with the PMI bit set to obtain the
  11372. logical block address of the last block after which a substantial
  11373. delay in data transfer will be encountered (usually the last block
  11374. on the current cylinder). No translation to 512 byte sectors is
  11375. performed on the result if data is stored on the disk in other than
  11376. 512 byte sectors.
  11377. the TMC-950 does not support any Future Domain BIOS calls; instead,
  11378. it provides a full CAM implementation (see INT 4F/AX=8100h)
  11379. SeeAlso: AH=15h,AH=19h"SCSI"
  11380. --------d-131B-------------------------------
  11381. INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER
  11382. AH = 1Bh
  11383. AL = number of sectors to read
  11384. DL = drive
  11385. ES:BX -> buffer for manufacturing header (defect list)
  11386. Return: CF set on error
  11387. CF clear if successful
  11388. AH = status
  11389. Note: manufacturing header format (Defect Map Record format) can be found
  11390. in IBM 70MB, 115MB Fixed Disk Drives Technical Reference
  11391. the first sector read contains the manufacturing header with the number
  11392. of defect entries and the beginning of the defect map; the remaining
  11393. sectors contain the remainder of the defect map
  11394. --------d-131B-------------------------------
  11395. INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK
  11396. AH = 1Bh
  11397. DL = hard drive ID
  11398. Return: CF set on error
  11399. AH = status code (see #00234 at AH=01h)
  11400. CF clear if successful
  11401. ES:BX -> SCSI disk information block (see #00252)
  11402. Notes: also sets a non-resettable flag which prevents some controller messages
  11403. from being displayed
  11404. the TMC-950 does not support any Future Domain BIOS calls; instead,
  11405. it provides a full CAM implementation (see INT 4F/AX=8100h)
  11406. SeeAlso: AH=18h"SCSI",AH=1Ch"SCSI"
  11407. Format of Future Domain SCSI disk information block:
  11408. Offset Size Description (Table 00252)
  11409. 00h BYTE drive physical information (see #00253)
  11410. 01h WORD translated number of cylinders
  11411. 03h BYTE translated number of heads
  11412. 04h BYTE translated number of sectors per track (17, 34, or 63)
  11413. 05h BYTE drive address
  11414. bits 0-2: logical unit number
  11415. bits 3-5: device number
  11416. 06h BYTE 01h at initialization
  11417. 07h BYTE sense code byte 00h, or extended sense code byte 0Ch
  11418. 08h BYTE 00h
  11419. 09h BYTE 00h or extended sense code byte 02h (sense key)
  11420. 0Ah BYTE 00h
  11421. 0Bh 10 BYTEs copy of Command Descriptor Block (CDB) (see #03236,#03237)
  11422. 15h DWORD translated number of sectors on device
  11423. Bitfields for Future Domain SCSI device physical information:
  11424. Bit(s) Description (Table 00253)
  11425. 0 ???
  11426. 1 device uses parity
  11427. 2 256 bytes per sector instead of 512
  11428. 3 don't have capacity yet???
  11429. 4 disk is removable
  11430. 5 logical unit number is not present
  11431. --------d-131C-------------------------------
  11432. INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM
  11433. AH = 1Ch
  11434. DL = hard drive ID (any valid SCSI hard disk)
  11435. Return: CF set on error
  11436. AH = status code (see #00234 at AH=01h)
  11437. CF clear if successful
  11438. ES:BX -> first byte of free RAM on controller
  11439. Notes: the Future Domain TMC-870 contains 1024 bytes of RAM at offsets 1800h
  11440. to 1BFFh on-board the controller for storing drive information and
  11441. controller status; ES:BX points to the first byte available for other
  11442. uses
  11443. ES contains the segment at which the controller resides; the
  11444. controller's two memory-mapped I/O ports are at offsets 1C00h, 1E00h
  11445. SeeAlso: AH=1Bh"SCSI"
  11446. --------d-131C-------------------------------
  11447. INT 13 U - ESDI FIXED DISK - ???
  11448. AH = 1Ch
  11449. AL = subfunction (01h-06h)
  11450. DL = drive (80h,81h)
  11451. ???
  11452. Return: ???
  11453. Note: these functions perform a controller command 0612h without DMA
  11454. SeeAlso: AX=1C08h,PORT 3510h"ESDI"
  11455. --------d-131C08-----------------------------
  11456. INT 13 U - ESDI FIXED DISK - GET COMMAND COMPLETION STATUS
  11457. AX = 1C08h
  11458. DL = drive (80h,81h)
  11459. ES:BX -> buffer for Command Complete Status Block (see #00254)
  11460. Return: CF set on error
  11461. CF clear if successful
  11462. AH = status (see #00234 at AH=01h)
  11463. SeeAlso: AX=1C09h,AX=1C0Ah,PORT 3510h"ESDI"
  11464. Format of ESDI Command Complete Status Block:
  11465. Offset Size Description (Table 00254)
  11466. 00h BYTE 07h
  11467. 01h BYTE size of block in words (07h)
  11468. 02h BYTE command error code (see #00255)
  11469. 03h BYTE command status code (see #00256)
  11470. 04h BYTE device error code, group 1 (see #00257)
  11471. 05h BYTE device error flags, group 2 (see #00258)
  11472. 06h WORD number of unprocessed sectors due to abnormal termination
  11473. 08h DWORD last Relative Sector Address processed by command
  11474. 0Ch WORD number of sectors corrected by ECC codes
  11475. (Table 00255)
  11476. Values for ESDI command error code:
  11477. 00h successful
  11478. 01h parameter invalid
  11479. 02h unknown function
  11480. 03h unsupported command
  11481. 04h command cancelled
  11482. 05h unknown function
  11483. 06h controller diagnostics failed
  11484. 07h formatting failed
  11485. 08h format error in primary map
  11486. 09h format error in secondary map
  11487. 0Ah diagnostic failure during formatting
  11488. 0Bh warning: secondary map too large during formatting
  11489. 0Ch warning: non-zero defect
  11490. 0Dh system checksum error during formatting
  11491. 0Eh warning: incompatible device
  11492. 0Fh warning: push table overflowed
  11493. 10h warning: more than 15 sectors pushed to next cylinder
  11494. 11h internal hardware error
  11495. 12h warning: errors found while verifying sectors
  11496. 13h invalid device
  11497. FFh device error
  11498. (Table 00256)
  11499. Values for ESDI command status code:
  11500. 01h successful
  11501. 03h successful after ECC
  11502. 05h successful after retries
  11503. 06h format partially completed
  11504. 07h successful after ECC and retries
  11505. 08h command completed with warning (see #00255)
  11506. 09h abort complete
  11507. 0Ah reset complete
  11508. 0Bh data transfer ready (no status block)
  11509. 0Ch command completed with failure (see #00257,#00258)
  11510. 0Dh DMA error
  11511. 0Eh command block error (see #00255)
  11512. 0Fh bad attention code
  11513. SeeAlso: #00257
  11514. (Table 00257)
  11515. Values for ESDI device error code, group 1:
  11516. 00h successful
  11517. 01h seek fault detected by device
  11518. 02h interface fault
  11519. 03h sector ID not found
  11520. 04h disk not formatted
  11521. 05h unrecoverable ECC error
  11522. 06h ECC error in sector ID
  11523. 07h invalid relative sector address
  11524. 08h timeout
  11525. 09h sector defective
  11526. 0Ah disk changed (removable media)
  11527. 0Bh selection error
  11528. 0Ch write protected (removable media)
  11529. 0Dh write fault
  11530. 0Eh read fault
  11531. 0Fh no index or sector pulse
  11532. 10h device not ready
  11533. 11h seek error detected by adapter
  11534. 12h bad format
  11535. 13h volume overflow
  11536. 14h data address mark not found
  11537. 15h sector ID not found
  11538. 16h missing device configuration data
  11539. 17h first/last relative sector flags missing
  11540. 18h track empty
  11541. 81h timeout while waiting for stop
  11542. 82h timeout while waiting for end of data transfer
  11543. 84h stopped awaiting data transfer during formatting
  11544. 85h timeout while waiting for head switch
  11545. 86h timeout while awaiting DMA completion
  11546. SeeAlso: #00256,#00258
  11547. Bitfields for ESDI device error flags, group 2:
  11548. Bit(s) Description (Table 00258)
  11549. 7-5 unused
  11550. 4 ready
  11551. 3 selected
  11552. 2 write fault
  11553. 1 on track 0
  11554. 0 seek/command complete
  11555. SeeAlso: #00257
  11556. --------d-131C09-----------------------------
  11557. INT 13 U - ESDI FIXED DISK - GET DEVICE STATUS
  11558. AX = 1C09h
  11559. DL = drive (80h,81h)
  11560. ES:BX -> buffer for Device Status Block (see #00259)
  11561. Return: CF set on error
  11562. CF clear if successful
  11563. AH = status (see #00234 at AH=01h)
  11564. SeeAlso: AX=1C08h,AX=1C0Ah,PORT 3510h"ESDI"
  11565. Format of ESDI Device Status Block:
  11566. Offset Size Description (Table 00259)
  11567. 00h BYTE 08h
  11568. 01h BYTE number of words in block (09h)
  11569. 02h BYTE error flags
  11570. 03h BYTE unused
  11571. 04h BYTE command error code (see #00255)
  11572. 05h BYTE command status code (see #00256)
  11573. 06h WORD ESDI standard status
  11574. 08h 5 WORDs ESDI vendor-specific status codes
  11575. --------d-131C0A-----------------------------
  11576. INT 13 U - ESDI FIXED DISK - GET DEVICE CONFIGURATION
  11577. AX = 1C0Ah
  11578. DL = drive (80h,81h)
  11579. ES:BX -> buffer for Drive Configuration Status Block (see #00260)
  11580. Return: CF set on error
  11581. CF clear if successful
  11582. AH = status (see #00234 at AH=01h)
  11583. Note: device configuration format can be found in IBM ESDI Fixed Disk Drive
  11584. Adapter/A Technical Reference
  11585. SeeAlso: AX=1C08h,AX=1C0Bh,AX=1C0Ch
  11586. Format of ESDI Drive Configuration Status Block:
  11587. Offset Size Description (Table 00260)
  11588. 00h BYTE 09h
  11589. 01h BYTE number of words in block (06h)
  11590. 02h BYTE flags
  11591. 03h BYTE number of spare sectors per cylinder
  11592. 04h DWORD total number of usable sectors
  11593. 08h WORD total number of cylinders
  11594. 0Ah BYTE tracks per cylinder
  11595. 0Bh BYTE sectors per track
  11596. --------d-131C0B-----------------------------
  11597. INT 13 U - ESDI FIXED DISK - GET ADAPTER CONFIGURATION
  11598. AX = 1C0Bh
  11599. ES:BX -> buffer for Controller Configuration Status Block (see #00261)
  11600. Return: CF set on error
  11601. CF clear if successful
  11602. AH = status (see #00234 at AH=01h)
  11603. SeeAlso: AX=1C0Ch
  11604. Format of ESDI Controller Configuration Status Block:
  11605. Offset Size Description (Table 00261)
  11606. 00h BYTE E9h
  11607. 01h BYTE number of words in block (06h)
  11608. 02h WORD unused (0000h)
  11609. 04h DWORD controller microcode revision level
  11610. 08h 2 WORDs unused (0000h)
  11611. --------d-131C0C-----------------------------
  11612. INT 13 U - ESDI FIXED DISK - GET POS INFORMATION
  11613. AX = 1C0Ch
  11614. ES:BX -> buffer for POS Information Status Block (see #00262)
  11615. Return: CF set on error
  11616. CF clear if successful
  11617. AH = status (see #00234 at AH=01h)
  11618. SeeAlso: AX=1C0Bh
  11619. Format of ESDI POS Information Status Block:
  11620. Offset Size Description (Table 00262)
  11621. 00h BYTE EAh
  11622. 01h BYTE number of words in block (05h)
  11623. 02h WORD magic value FFDDh
  11624. 04h BYTE POS register 3
  11625. 05h BYTE POS register 2
  11626. 06h BYTE POS register 5 (unused, FFh)
  11627. 07h BYTE POS register 4 (unused, FFh)
  11628. 08h BYTE POS register 7 (unused, FFh)
  11629. 09h BYTE POS register 6 (unused, FFh)
  11630. --------d-131C0D-----------------------------
  11631. INT 13 U - ESDI FIXED DISK - ???
  11632. AX = 1C0Dh
  11633. DL = drive (80h,81h)
  11634. ???
  11635. Return: ???
  11636. Note: invokes controller command 0614h without DMA
  11637. SeeAlso: AH=1Ch"ESDI",AX=1C0Fh,PORT 3510h"ESDI"
  11638. --------d-131C0E-----------------------------
  11639. INT 13 U - ESDI FIXED DISK - TRANSLATE RBA TO ABA
  11640. AX = 1C0Eh
  11641. CH = low 8 bits of cylinder number
  11642. CL = sector number, high two bits of cylinder number in bits 6 and 7
  11643. DH = head number
  11644. DL = drive number (80h,81h)
  11645. ES:BX -> ABA number
  11646. Return: CF set on error
  11647. CF clear if successful
  11648. AH = status (see #00234 at AH=01h)
  11649. Note: ABA (absolute block address) format can be found in IBM ESDI Adapter
  11650. Technical Reference by using its Device Configuration Status Block
  11651. SeeAlso: AX=1C08h,AX=1C0Fh,PORT 3510h"ESDI"
  11652. --------d-131C0F-----------------------------
  11653. INT 13 U - ESDI FIXED DISK - ???
  11654. AX = 1C0Fh
  11655. DL = drive (80h,81h)
  11656. ???
  11657. Return: ???
  11658. Note: invokes controller command 0614h without DMA
  11659. SeeAlso: AH=1Ch"ESDI",AX=1C0Dh,AX=1C12h,PORT 3510h"ESDI"
  11660. --------d-131C12-----------------------------
  11661. INT 13 U - ESDI FIXED DISK - ???
  11662. AX = 1C12h
  11663. DL = drive (80h,81h)
  11664. ???
  11665. Return: ???
  11666. Note: invokes controller command 0612h without DMA
  11667. SeeAlso: AH=1Ch"ESDI",AX=1C0Fh,PORT 3510h"ESDI"
  11668. --------c-131D-------------------------------
  11669. INT 13 - IBMCACHE.SYS - CACHE STATUS
  11670. AH = 1Dh
  11671. AL = subfunction
  11672. 01h get status record
  11673. DL = drive???
  11674. Return: ES:BX -> status record (see #00263)
  11675. CF set on error
  11676. AH = error code
  11677. 02h set cache status
  11678. ES:BX -> status record (see #00263)
  11679. DL = drive???
  11680. Return: CF set on error
  11681. Format of IBMCACHE.SYS status record:
  11682. Offset Size Description (Table 00263)
  11683. 00h DWORD total number of read requests
  11684. 04h DWORD total number of hits
  11685. 08h DWORD number of physical disk reads
  11686. 0Ch DWORD total number of sectors requested by physical disk reads
  11687. 10h 6 BYTEs ???
  11688. 16h DWORD pointer to start of error list (see #00264)
  11689. 1Ah DWORD pointer to end of error list
  11690. 1Eh WORD ???
  11691. 20h BYTE using extended memory if nonzero
  11692. 21h BYTE ???
  11693. 22h 4 BYTEs ASCII version number
  11694. 26h WORD cache size in KB
  11695. 28h WORD sectors per page
  11696. Format of IBMCACHE.SYS error list:
  11697. Offset Size Description (Table 00264)
  11698. 00h DWORD relative block address of bad page
  11699. 04h BYTE drive
  11700. 05h BYTE sector bit-map
  11701. 06h WORD next error
  11702. --------d-131F-------------------------------
  11703. INT 13 - SyQuest - DOOR LATCH/DOOR BUTTON DETECT
  11704. AH = 1Fh
  11705. AL = subfunction
  11706. 00h allow media removal
  11707. 01h prevent media removal (lock door)
  11708. DL = drive ID (bit 7 set for hard disks)
  11709. Return: CF clear if successful
  11710. AH = 00h
  11711. CF set on error
  11712. AH = error code
  11713. 00h successful
  11714. 01h invalid function request
  11715. 80h timeout
  11716. DDh media change requested
  11717. SeeAlso: AH=12h"SyQuest",AH=13h"SyQuest",AH=59h"SyQuest"
  11718. --------d-1320-------------------------------
  11719. INT 13 - DISK - ??? (Western Digital "Super BIOS")
  11720. AH = 20h
  11721. ???
  11722. Return: ???
  11723. Notes: returns some kind of status related to whether the drive contains its
  11724. default media type
  11725. QEMM v6.00 calls INT 13/AX=2000h/DL=81h in some cases
  11726. --------b-1320-------------------------------
  11727. INT 13 U - Compaq, ATAPI Removable Media Device - GET CURRENT MEDIA FORMAT
  11728. AH = 20h
  11729. DL = drive number (00h,01h)
  11730. Return: CF clear if successful
  11731. AL = media type (see #00265)
  11732. AH = 00h
  11733. CF set on error
  11734. AH = error code
  11735. 01h invalid request
  11736. 30h drive does not support media sense
  11737. 31h no such drive / media not present
  11738. 32h non-default media / drive does not supporte media type
  11739. Notes: this function is supported by the 3/8/93 ROM BIOS, but only partially
  11740. (AL is always 00h when successful) by the 8/3/93 version
  11741. this function is also supported by some recent versions of the Phoenix
  11742. 486 BIOS
  11743. (Table 00265)
  11744. Values for Compaq/ATAPI diskette media type:
  11745. 03h 720K (1M unformatted)
  11746. 04h 1.44M (2M unformatted)
  11747. 06h 2.88M (4M unformatted)
  11748. 0Ch 360K
  11749. 0Dh 1.2M
  11750. 0Eh Toshiba 3mode
  11751. 0Fh NEC 3mode (1024-byte sectors)
  11752. 10h ATAPI Removable Media Device
  11753. --------c-1320-------------------------------
  11754. INT 13 u - QUICKCACHE II v4.20 - DISMOUNT
  11755. AH = 20h
  11756. AL = drive (00h = A:, etc. or 7Fh for all removable drives???
  11757. or FFh for all drives)
  11758. Return: AX = status (0000h successful)
  11759. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  11760. Associates, Inc.
  11761. Desc: flush any dirty buffers for the specified drive(s) and then discard
  11762. those sector buffers
  11763. SeeAlso: AH=21h"QUICKCACHE",AH=22h"QUICKCACHE",AH=28h
  11764. --------d-1321-------------------------------
  11765. INT 13 - HARD DISK - PS/1 and newer PS/2 - READ MULTIPLE DISK SECTORS
  11766. AH = 21h
  11767. AL = number of sectors to write
  11768. CH = low byte of 12-bit cylinder number
  11769. CL = starting sector (bits 0-5) and bits 8-9 of cylinder (bits 6-7)
  11770. DH = head number (bits 0-5) and bits 10-11 of cylinder (bits 6-7)
  11771. DL = drive number (80h,81h)
  11772. ES:BX -> buffer for data to be read
  11773. Return: CF clear if successful
  11774. ES:BX buffer filled
  11775. CF set on error
  11776. AH = status (see #00234 at AH=01h)
  11777. Desc: read from the disk using the Multiple Block mode available on newer
  11778. IDE drives and some hard disk controllers, which generates an
  11779. interrupt only after the end of transferring a group of sectors
  11780. rather than after each sector
  11781. Notes: must call AH=24h"PS/1" before using this function
  11782. input values in CL and DH are not range-checked
  11783. the byte at address 0040h:0074h is set to the status of the operation
  11784. SeeAlso: AH=02h,AH=22h"PS/1",AH=23h"PS/1",AH=24h"PS/1"
  11785. --------c-1321-------------------------------
  11786. INT 13 u - QUICKCACHE II v4.20 - FLUSH CACHE
  11787. AH = 21h
  11788. Return: AX = status (0000h successful)
  11789. Desc: immediately write all dirty sectors back to disk
  11790. SeeAlso: AH=25h"QUICKCACHE",AH=2Eh,AH=2Fh
  11791. --------d-1322-------------------------------
  11792. INT 13 - HARD DISK - PS/1 and newer PS/2 - WRITE MULTIPLE DISK SECTORS
  11793. AH = 22h
  11794. AL = number of sectors to write
  11795. CH = low byte of 12-bit cylinder number
  11796. CL = starting sector (bits 0-5) and bits 8-9 of cylinder (bits 6-7)
  11797. DH = head number (bits 0-5) and bits 10-11 of cylinder (bits 6-7)
  11798. DL = drive number (80h,81h)
  11799. ES:BX -> buffer containing data to be written
  11800. Return: CF clear if successful
  11801. CF set on error
  11802. AH = status (see #00234 at AH=01h)
  11803. Desc: write to the disk using the Multiple Block mode available on newer
  11804. IDE drives and some hard disk controllers, which generates an
  11805. interrupt only after the end of transferring a group of sectors
  11806. rather than after each sector
  11807. Notes: must call AH=24h"PS/1" before using this function
  11808. input values in CL and DH are not range-checked
  11809. the byte at address 0040h:0074h is set to the status of the operation
  11810. SeeAlso: AH=03h,AH=21h"PS/1",AH=23h"PS/1",AH=24h"PS/1"
  11811. --------c-1322-------------------------------
  11812. INT 13 u - QUICKCACHE II v4.20 - ENABLE/DISABLE CACHE
  11813. AH = 22h
  11814. AL = new state (00h disabled, 01h enabled)
  11815. Return: AX = status (0000h successful)
  11816. Note: enables/disables caching of all drives
  11817. SeeAlso: AH=2Ch,AH=2Dh,AH=32h,AH=33h,AH=A3h,AH=A4h
  11818. --------d-1323-------------------------------
  11819. INT 13 U - HARD DISK - PS/1 and newer PS/2 - SET CONTROLLER FEATURES REGISTER
  11820. AH = 23h
  11821. AL = feature number (see #00266)
  11822. DL = drive number (80h,81h)
  11823. ???
  11824. Return: CF clear if successful
  11825. CF set on error
  11826. AH = status (see #00234 at AH=01h)
  11827. SeeAlso: AH=21h"PS/1",AH=22h"PS/1",AH=24h"PS/1",AH=25h"PS/1"
  11828. (Table 00266)
  11829. Values for PS/1 hard disk feature number:
  11830. 01h select 8-bit data transfers instead of 16-bit
  11831. 02h enable write cache
  11832. 22h Write Same, user-specified area
  11833. 33h disable retries
  11834. 44h set number of ECC bytes for read long/write long (see AH=0Ah,AH=0Bh)
  11835. 54h set cache segments
  11836. 55h disable lookahead
  11837. 66h disable reverting to power-on defaults
  11838. 77h disable error correctioni
  11839. 81h select 16-bit data transfers (default)
  11840. 82h disable write cache
  11841. 88h enable error correction (default)
  11842. 99h enable retries (default)
  11843. AAh enable lookahead
  11844. BBh set ECC length for read long/write long to four bytes
  11845. CCh enable reverting to power-on defaults
  11846. DDh Write Same, entire disk
  11847. SeeAlso: #P0535
  11848. --------c-1323-------------------------------
  11849. INT 13 U - QUICKCACHE II v4.20 - GET ??? ADDRESS
  11850. AH = 23h
  11851. Return: AX = status (0000h successful)
  11852. ES = segment of ??? data
  11853. --------d-1324-------------------------------
  11854. INT 13 - HARD DISK - PS/1 and newer PS/2 - SET MULTIPLE MODE
  11855. AH = 24h
  11856. AL = number of sectors per block (2,4,8,16)
  11857. DL = drive number (80h,81h)
  11858. Return: CF clear if successful
  11859. CF set onerror
  11860. AH = status (see #00234 at AH=01h)
  11861. Desc: specify how many sectors the controller should transfer as a group
  11862. between operation-complete interrupts when using the Read Multiple
  11863. and Write Multiple functions (AH=21h,AH=22h)
  11864. Notes: set the number of sectors to 0 to disable multiple-transfer mode
  11865. the maximum value for the block size depends on the fixed disk
  11866. drive type. The value is stored in byte 15h of the fixed disk
  11867. drive parameter table that is created by POST.
  11868. the byte at address 0040h:0074h is set to status of operation.
  11869. SeeAlso: AH=21h"PS/1",AH=22h"PS/1",AH=23h"PS/1",AH=25h"PS/1"
  11870. --------c-1324-------------------------------
  11871. INT 13 u - QUICKCACHE II v4.20 - SET SECTORS
  11872. AH = 24h
  11873. BX = new number of sector buffers in cache
  11874. Return: AX = status
  11875. 0000h successful
  11876. 0001h failed--size adjusted
  11877. 8000h cache cannot be resized while enabled
  11878. SeeAlso: AH=36h
  11879. --------d-1325-------------------------------
  11880. INT 13 - HARD DISK - PS/1 and newer PS/2 - IDENTIFY DRIVE
  11881. AH = 25h
  11882. DL = drive number (80h,81h)
  11883. ES:BX-> 512 byte buffer for reply packet
  11884. Return: CF clear if successful
  11885. CF set on error
  11886. AH = status (see #00234 at AH=01h)
  11887. buffer filled with ATA/IDE-style drive information block (see #00267)
  11888. Desc: retrieves the 256 words of drive data stored on an IDE hard disk
  11889. Notes: the byte at address 0040h:0074h is set to the status of the operation
  11890. IBM officially classifies this function as optional
  11891. SeeAlso: AH=23h"PS/1"
  11892. Format of drive information block:
  11893. Offset Size Description (Table 00267)
  11894. 00h WORD general drive configuration (see #00268)
  11895. 02h WORD number of cylinders
  11896. 04h WORD reserved
  11897. 06h WORD number of heads
  11898. 08h WORD number of unformatted bytes per track
  11899. 0Ah WORD number of unformatted bytes per sector
  11900. 0Ch WORD number of sectors per track
  11901. 0Eh 6 BYTEs vendor unique
  11902. 14h 20 BYTEs serial number in ASCII, 0000h=not specified)
  11903. 28h WORD buffer type
  11904. 2Ah WORD buffer size in 512 byte increments (0000h=not specified)
  11905. 2Ch WORD number of ECC bytes passed on Read/Write Long cmds
  11906. 0000h = not specified
  11907. 2Eh 8 BYTEs firmware revision in ASCII, 0000h=not specified
  11908. 36h 40 BYTEs model number in ASCII, 0000h=not specified
  11909. 5Eh WORD bits 15-8 Vendor Unique
  11910. bits 7-0 00h = Read/Write Multiple commands not implemented
  11911. xxh = Maximum number of sectors that can be
  11912. transferred per interrupt on Read and Write
  11913. Multiple commands
  11914. 60h WORD 0000h = cannot perform doubleword I/O
  11915. 0001h = can perform doubleword I/O
  11916. 62h WORD capabilities
  11917. bit 15-9 0=reserved
  11918. bit 8 1=DMA Supported
  11919. bit 7-0 Vendor Unique
  11920. 64h WORD reserved
  11921. 66h WORD bits 15-8 PIO data transfer cycle timing mode
  11922. bits 7-0 Vendor Unique
  11923. 68h WORD bits 15-8 DMA data transfer cycle timing mode
  11924. bits 7-0 Vendor Unique
  11925. 6Ah WORD bits 15-1 reserved
  11926. bit 0 1=the fields reported in tranlation mode are valid
  11927. 0=the fields reported in translation mode may be valid
  11928. 6Ch WORD number of current cylinders
  11929. 6Eh WORD number of current heads
  11930. 70h WORD number of current sectors per track
  11931. 72h DWORD current capacity in sectors
  11932. 76h WORD reserved
  11933. 78h 136 BYTEs not defined by ATA spec 2.6
  11934. 100h 64 BYTEs vendor unique
  11935. 140h 96 BYTEs reserved
  11936. Note: the above description is as in the ATA (AT Attachment) Specification.
  11937. SeeAlso: #P0516
  11938. Bitfields for general drive configuration:
  11939. Bit(s) Description (Table 00268)
  11940. 15 0 reserved for non-magnetic drives
  11941. 14 format speed tolerance gap required
  11942. 13 track offset option available
  11943. 12 data strobe offset option available
  11944. 11 rotational speed tolerance is > 0.5%
  11945. 10 disk transfer rate > 10 Mbs
  11946. 9 disk transfer rate > 5Mbs but <= 10Mbs
  11947. 8 disk transfer rate <= 5Mbs
  11948. 7 removable cartridge drive
  11949. 6 fixed drive
  11950. 5 spindle motor control option implemented
  11951. 4 head switch time > 15 usec
  11952. 3 not MFM encoded
  11953. 2 soft sectored
  11954. 1 hard sectored
  11955. 0 reserved (0)
  11956. --------c-1325-------------------------------
  11957. INT 13 u - QUICKCACHE II v4.20 - SET FLUSH INTERVAL
  11958. AH = 25h
  11959. BX = interval
  11960. Return: AX = status (0000h successful)
  11961. Desc: specify how often the cache should write dirty buffers to disk when
  11962. buffered writes are enabled
  11963. SeeAlso: AH=21h"QUICKCACHE",AH=2Ch,AH=2Eh
  11964. --------c-1326-------------------------------
  11965. INT 13 U - QUICKCACHE II v4.20 - UNINSTALL
  11966. AH = 26h
  11967. Return: AX = status
  11968. 0000h successful
  11969. 0001h-00FFh interrupt vector which was hooked by another TSR
  11970. SeeAlso: AH=27h
  11971. --------c-1327--BX0000-----------------------
  11972. INT 13 u - QUICKCACHE II v4.20 - INSTALLATION CHECK
  11973. AH = 27h
  11974. BX = 0000h
  11975. Return: AX = 0000h if installed
  11976. BX nonzero if installed
  11977. BH = major version
  11978. BL = binary minor version
  11979. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  11980. Associates, Inc.
  11981. SeeAlso: AH=26h,AH=A0h,INT 16/AX=FFA5h/CX=1111h
  11982. --------c-1328-------------------------------
  11983. INT 13 U - QUICKCACHE II v4.20 - SET AUTOMATIC DISMOUNT
  11984. AH = 28h
  11985. AL = new state (00h disabled, 01h enabled)
  11986. Return: AX = status (0000h successful)
  11987. SeeAlso: AH=20h"QUICKCACHE"
  11988. --------c-1329-------------------------------
  11989. INT 13 U - QUICKCACHE II v4.20 - NOP
  11990. AH = 29h
  11991. Return: AX = 0000h
  11992. --------c-132A-------------------------------
  11993. INT 13 u - QUICKCACHE II v4.20 - SET BUFFER SIZE
  11994. AH = 2Ah
  11995. AL = buffer size (1-30)
  11996. Return: AX = status (0000h successful)
  11997. Desc: specify the number of cache sector buffers to dedicate to buffered read
  11998. and write operations
  11999. SeeAlso: AH=2Ch,AH=2Dh,AH=39h,AH=3Ah
  12000. --------c-132B-------------------------------
  12001. INT 13 U - QUICKCACHE II v4.20 - DRIVE ACCESS SOUNDS
  12002. AH = 2Bh
  12003. AL = new state (00h disabled, 01h enabled)
  12004. Return: AX = status (0000h successful)
  12005. --------c-132C-------------------------------
  12006. INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED WRITES
  12007. AH = 2Ch
  12008. AL = new state (00h disabled, 01h enabled)
  12009. Return: AX = status (0000h successful)
  12010. Desc: specify whether the cache should delay disk writes
  12011. Note: this function enables or disables delayed writes for all drives; use
  12012. AH=38h to change a single drive
  12013. SeeAlso: AH=25h"QUICKCACHE",AH=2Dh,AH=2Eh,AH=38h
  12014. --------c-132D-------------------------------
  12015. INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED READ
  12016. AH = 2Dh
  12017. AL = new state (00h disabled, 01h enabled)
  12018. Return: AX = status (0000h successful)
  12019. Desc: specify whether the cache should attempt to read ahead of actual
  12020. requests
  12021. Note: this function enables or disables read-ahead for all drives; use AH=37h
  12022. to change a single drive
  12023. SeeAlso: AH=2Ch,AH=37h
  12024. --------c-132E-------------------------------
  12025. INT 13 u - QUICKCACHE II v4.20 - SET FLUSH COUNT
  12026. AH = 2Eh
  12027. BX = flush count
  12028. Return: AX = status (0000h successful)
  12029. Desc: specify how many dirty sectors the cache should write after each flush
  12030. interval (see AH=25h"QUICKCACHE") when buffered writes are enabled
  12031. SeeAlso: AH=21h"QUICKCACHE",AH=25h"QUICKCACHE",AH=2Ch
  12032. --------c-132F-------------------------------
  12033. INT 13 - QUICKCACHE II v4.20 - FORCE IMMEDIATE INCREMENTAL FLUSH
  12034. AH = 2Fh
  12035. Return: AX = status (0000h successful)
  12036. Desc: immediately flush up to "flushcount" dirty sectors to disk as if the
  12037. flush interval had expired
  12038. SeeAlso: AH=21h"QUICKCACHE"
  12039. --------c-1330-------------------------------
  12040. INT 13 u - QUICKCACHE II v4.20 - GET INFO
  12041. AH = 30h
  12042. AL = what to get
  12043. 00h system info (see #00269)
  12044. 01h drive info (see #00270)
  12045. 02h access frequency (array of 30 words)
  12046. 03h drive index
  12047. (array of 32 bytes indicating BIOS drive for DOS drive)
  12048. DS:DX -> buffer for info
  12049. Return: AX = status (0000h successful, 8000h invalid info specifier)
  12050. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  12051. Associates, Inc.
  12052. Format of QUICKCACHE II system info:
  12053. Offset Size Description (Table 00269)
  12054. 00h BYTE flag: cache enabled
  12055. 01h BYTE flag: buffered writes enabled
  12056. 02h BYTE flag: buffered reads enabled
  12057. 03h BYTE flag: sounds enabled
  12058. 04h BYTE flag: autodismount enabled
  12059. 05h BYTE ???
  12060. 06h BYTE flag: ???
  12061. 07h BYTE flag: ???
  12062. 08h BYTE flag: "em_assigned"
  12063. 09h BYTE flag: emulated EMS
  12064. 0Ah BYTE single sector bonus
  12065. 0Bh BYTE "sticky_max"
  12066. 0Ch BYTE write sector bonus
  12067. 0Dh BYTE bonus threshold
  12068. 0Eh WORD flush interval
  12069. 10h WORD flush count
  12070. 12h WORD reserve pool size
  12071. 14h WORD remaining space in reserve pool
  12072. 16h WORD required free memory
  12073. 18h WORD total cache sectors
  12074. 1Ah WORD dirty cache sectors
  12075. 1Ch BYTE trace buffer size
  12076. 1Dh BYTE reserved (padding)
  12077. SeeAlso: #00270
  12078. Format of QUICKCACHE II drive info [16-element array, one element]:
  12079. Offset Size Description (Table 00270)
  12080. 00h BYTE DOS drive number
  12081. 01h BYTE BIOS drive number
  12082. 02h BYTE maximum sector number
  12083. 03h BYTE maximum head number
  12084. 04h BYTE read buffer size
  12085. 05h BYTE write buffer size
  12086. 06h BYTE last status
  12087. 07h BYTE flag: enabled
  12088. 08h BYTE flag: buffered write enabled
  12089. 09h BYTE flag: buffered read enabled
  12090. 0Ah BYTE flag: in use (drive info is valid)
  12091. 0Bh BYTE flag: cylinder flush
  12092. 0Ch BYTE reserved (padding)
  12093. 0Dh BYTE sectors per track
  12094. 0Eh WORD sector size
  12095. 10h WORD sectors assigned
  12096. 12h WORD dirty sectors
  12097. 14h WORD reserved sectors
  12098. 16h WORD number of read errors
  12099. 18h WORD number of write errors
  12100. 1Ah DWORD "rio_count"
  12101. 1Eh DWORD number of cache misses
  12102. 22h DWORD "wio_count"
  12103. 26h DWORD "dio_count"
  12104. SeeAlso: #00269
  12105. --------c-1331-------------------------------
  12106. INT 13 U - QUICKCACHE II v4.20 - RESERVE MEMORY
  12107. AH = 31h
  12108. BX = number of paragraphs of conventional memory to reserve for apps
  12109. Return: AX = status (0000h successful)
  12110. --------c-1332-------------------------------
  12111. INT 13 U - QUICKCACHE II v4.20 - ENABLE CACHING FOR SPECIFIC DRIVE
  12112. AH = 32h
  12113. AL = drive number (00h=A:)
  12114. Return: AX = status (0000h successful)
  12115. SeeAlso: AH=22h"QUICKCACHE",AH=33h
  12116. --------c-1333-------------------------------
  12117. INT 13 U - QUICKCACHE II v4.20 - DISABLE CACHING FOR SPECIFIC DRIVE
  12118. AH = 33h
  12119. AL = drive number (00h=A:)
  12120. Return: AX = status (0000h successful)
  12121. SeeAlso: AH=22h"QUICKCACHE",AH=32h
  12122. --------c-1334-------------------------------
  12123. INT 13 U - QUICKCACHE II v4.20 - SECTOR LOCKING
  12124. AH = 34h
  12125. AL = function
  12126. 00h end sector locking/unlocking
  12127. 01h lock all accessed sectors into cache
  12128. 02h unlock all accessed sectors and discard from cache
  12129. Return: AX = status (0000h successful)
  12130. SeeAlso: AH=20h"QUICKCACHE",AH=35h
  12131. --------c-1335-------------------------------
  12132. INT 13 U - QUICKCACHE II v4.20 - SET LOCK POOL SIZE
  12133. AH = 35h
  12134. BX = number of sectors in lock pool
  12135. Return: AX = status (0000h successful)
  12136. Desc: specify the number of cache sector buffers which may be dedicated to
  12137. data locked into the cache
  12138. SeeAlso: AH=34h
  12139. --------c-1336-------------------------------
  12140. INT 13 U - QUICKCACHE II v4.20 - SET TRACE BUFFER SIZE
  12141. AH = 36h
  12142. AL = new size of trace buffer
  12143. Return: AX = status (0000h successful)
  12144. Note: called with AL=05h during an INT 13/AH=24h"QUICKCACHE" call
  12145. SeeAlso: AH=24h"QUICKCACHE"
  12146. --------c-1337-------------------------------
  12147. INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED READS FOR SPECIFIC DRIVE
  12148. AH = 37h
  12149. AL = new state (00h disabled, else enabled)
  12150. DL = drive number (00h = A:)
  12151. Return: AX = status (0000h successful)
  12152. SeeAlso: AH=2Dh,AH=38h
  12153. --------c-1338-------------------------------
  12154. INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED WRITES FOR SPECIFIC DRIVE
  12155. AH = 38h
  12156. AL = new state (00h disabled, else enabled)
  12157. DL = drive number (00h = A:)
  12158. Return: AX = status (0000h successful)
  12159. SeeAlso: AH=2Ch,AH=37h
  12160. --------c-1339-------------------------------
  12161. INT 13 U - QUICKCACHE II v4.20 - SET READ BUFFER SIZE FOR SPECIFIC DRIVE
  12162. AH = 39h
  12163. AL = new size of read buffer
  12164. DL = drive number (00h = A:)
  12165. Return: AX = status (0000h successful)
  12166. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  12167. Associates, Inc.
  12168. SeeAlso: AH=2Ah,AH=3Ah
  12169. --------c-133A-------------------------------
  12170. INT 13 U - QUICKCACHE II v4.20 - SET WRITE BUFFER SIZE FOR SPECIFIC DRIVE
  12171. AH = 3Ah
  12172. AL = new size of write buffer
  12173. DL = drive number (00h = A:)
  12174. Return: AX = status (0000h successful)
  12175. SeeAlso: AH=2Ah,AH=39h
  12176. --------c-133B-------------------------------
  12177. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
  12178. AH = 3Bh
  12179. AL = new state of ??? (01h enabled, else disabled)
  12180. Return: AX = status (0000h successful)
  12181. Note: is affected by the flag reported at offset 05h of the system info
  12182. returned by AH=30h, and sets the flag at offset 06h
  12183. SeeAlso: AH=3Ch
  12184. --------c-133C-------------------------------
  12185. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
  12186. AH = 3Ch
  12187. AL = new state of ??? (01h enabled, else disabled)
  12188. Return: AX = status (0000h successful)
  12189. Note: is affected by the flag reported at offset 05h of the system info
  12190. returned by AH=30h, and sets the flag at offset 07h
  12191. SeeAlso: AH=3Bh
  12192. --------c-133D-------------------------------
  12193. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE CYLINDER FLUSH FOR DRIVE
  12194. AH = 3Dh
  12195. AL = new state (01h enabled, else disabled)
  12196. DL = drive number (00h = A:)
  12197. Return: AX = status (0000h successful)
  12198. --------c-133E-------------------------------
  12199. INT 13 U - QUICKCACHE II v4.20 - SET SINGLE-SECTOR BONUS
  12200. AH = 3Eh
  12201. AL = new value for bonus
  12202. Return: AX = status (0000h successful)
  12203. Desc: specify the bonus score to give to single-sector transfers in order to
  12204. keep those sectors in the cache longer
  12205. --------c-133F-------------------------------
  12206. INT 13 U - QUICKCACHE II v4.20 - SET BONUS THRESHOLD
  12207. AH = 3Fh
  12208. AL = new value for bonus threshold
  12209. Return: AX = status (0000h successful)
  12210. --------c-1340-------------------------------
  12211. INT 13 U - QUICKCACHE II v4.20 - SET "sticky_max"
  12212. AH = 40h
  12213. AL = new value for "sticky_max"
  12214. Return: AX = status (0000h successful)
  12215. SeeAlso: AH=41h"QUICKCACHE"
  12216. --------d-1341--BX55AA-----------------------
  12217. INT 13 - IBM/MS INT 13 Extensions - INSTALLATION CHECK
  12218. AH = 41h
  12219. BX = 55AAh
  12220. DL = drive (80h-FFh)
  12221. Return: CF set on error (extensions not supported)
  12222. AH = 01h (invalid function)
  12223. CF clear if successful
  12224. BX = AA55h if installed
  12225. AH = major version of extensions
  12226. 01h = 1.x
  12227. 20h = 2.0 / EDD-1.0
  12228. 21h = 2.1 / EDD-1.1
  12229. 30h = EDD-3.0
  12230. AL = internal use
  12231. CX = API subset support bitmap (see #00271)
  12232. DH = extension version (v2.0+ ??? -- not present in 1.x)
  12233. Note: the Phoenix Enhanced Disk Drive Specification v1.0 uses version 2.0 of
  12234. the INT 13 Extensions API
  12235. SeeAlso: AH=42h"INT 13 Ext",AH=48h"INT 13 Ext"
  12236. Bitfields for IBM/MS INT 13 Extensions API support bitmap:
  12237. Bit(s) Description (Table 00271)
  12238. 0 extended disk access functions (AH=42h-44h,47h,48h) supported
  12239. 1 removable drive controller functions (AH=45h,46h,48h,49h,INT 15/AH=52h)
  12240. supported
  12241. 2 enhanced disk drive (EDD) functions (AH=48h,AH=4Eh) supported
  12242. extended drive parameter table is valid (see #00273,#00278)
  12243. 3-15 reserved (0)
  12244. --------c-1341-------------------------------
  12245. INT 13 U - QUICKCACHE II v4.20 - SAVE/RESTORE ???
  12246. AH = 41h
  12247. AL = direction
  12248. 01h save to file
  12249. else restore from file
  12250. ES:DI -> 1024-byte buffer for ???
  12251. Return: AX = status (0000h successful, 8000h failed)
  12252. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  12253. Associates, Inc.
  12254. SeeAlso: AH=40h"QUICKCACHE"
  12255. --------d-1342-------------------------------
  12256. INT 13 - IBM/MS INT 13 Extensions - EXTENDED READ
  12257. AH = 42h
  12258. DL = drive number
  12259. DS:SI -> disk address packet (see #00272)
  12260. Return: CF clear if successful
  12261. AH = 00h
  12262. CF set on error
  12263. AH = error code (see #00234)
  12264. disk address packet's block count field set to number of blocks
  12265. successfully transferred
  12266. SeeAlso: AH=02h,AH=41h"INT 13 Ext",AH=43h"INT 13 Ext"
  12267. Format of disk address packet:
  12268. Offset Size Description (Table 00272)
  12269. 00h BYTE 10h (size of packet)
  12270. 01h BYTE reserved (0)
  12271. 02h WORD number of blocks to transfer (max 007Fh for Phoenix EDD)
  12272. 04h DWORD -> transfer buffer
  12273. 08h QWORD starting absolute block number
  12274. (for non-LBA devices, compute as
  12275. (Cylinder*NumHeads + SelectedHead) * SectorPerTrack +
  12276. SelectedSector - 1
  12277. --------N-134257DX1234-----------------------
  12278. INT 13 U - Beame&Whiteside BWLPD - INSTALLATION CHECK
  12279. AX = 4257h ("BW")
  12280. DX = 1234h
  12281. Return: BX = 414Ch if installed
  12282. Program: BWLPD is the printer daemon from the BW-NFS package
  12283. SeeAlso: INT 62/AH=00h"ETHDEV"
  12284. --------d-1343-------------------------------
  12285. INT 13 - IBM/MS INT 13 Extensions - EXTENDED WRITE
  12286. AH = 43h
  12287. AL = write flags
  12288. ---v1.0,2.0---
  12289. bit 0: verify write
  12290. bits 7-1 reserved (0)
  12291. ---v2.1+ ---
  12292. 00h,01h write without verify
  12293. 02h write with verify
  12294. DL = drive number
  12295. DS:SI -> disk address packet (see #00272)
  12296. Return: CF clear if successful
  12297. AH = 00h
  12298. CF set on error
  12299. AH = error code (see #00234)
  12300. disk address packet's block count field set to number of blocks
  12301. successfully transferred
  12302. Note: the BIOS returns CF set/AH=01h (invalid function) if verify is
  12303. requested but not supported
  12304. SeeAlso: AH=03h,AH=41h"INT 13 Ext",AH=42h"INT 13 Ext",AH=44h
  12305. --------d-1344-------------------------------
  12306. INT 13 - IBM/MS INT 13 Extensions - VERIFY SECTORS
  12307. AH = 44h
  12308. DL = drive number
  12309. DS:SI -> disk address packet (see #00272)
  12310. Return: CF clear if successful
  12311. AH = 00h
  12312. CF set on error
  12313. AH = error code (see #00234)
  12314. disk address packet's block count field set to number of blocks
  12315. successfully verified
  12316. SeeAlso: AH=04h,AH=41h"INT 13 Ext",AH=42h"INT 13 Ext",AH=47h
  12317. --------d-1345-------------------------------
  12318. INT 13 - IBM/MS INT 13 Extensions - LOCK/UNLOCK DRIVE
  12319. AH = 45h
  12320. AL = operation
  12321. 00h lock media in drive
  12322. 01h unlock media
  12323. 02h check lock status
  12324. DL = drive number
  12325. Return: CF clear if successful
  12326. AH = 00h
  12327. AL = lock state (00h = unlocked)
  12328. CF set on error
  12329. AH = error code (see #00234)
  12330. Notes: this function is required to be supported for any removable drives
  12331. numbered 80h or higher
  12332. up to 255 locks may be placed on a drive, and the media will not
  12333. be physically unlocked until all locks have been removed
  12334. SeeAlso: AH=41h"INT 13 Ext",AH=46h,AH=49h,INT 15/AH=52h"INT 13 Extensions"
  12335. --------d-1346-------------------------------
  12336. INT 13 - IBM/MS INT 13 Extensions - EJECT MEDIA
  12337. AH = 46h
  12338. AL = 00h (reserved)
  12339. DL = drive number
  12340. Return: CF clear if successful
  12341. AH = 00h
  12342. CF set on error
  12343. AH = error code (see #00234)
  12344. SeeAlso: AH=49h,INT 15/AH=52h"INT 13 Extensions"
  12345. --------d-1347-------------------------------
  12346. INT 13 - IBM/MS INT 13 Extensions - EXTENDED SEEK
  12347. AH = 47h
  12348. DL = drive number
  12349. DS:SI -> disk address packet (see #00272)
  12350. Return: CF clear if successful
  12351. AH = 00h
  12352. CF set on error
  12353. AH = error code (see #00234)
  12354. SeeAlso: AH=0Ch,AH=42h"INT 13 Ext"
  12355. --------d-1348-------------------------------
  12356. INT 13 - IBM/MS INT 13 Extensions - GET DRIVE PARAMETERS
  12357. AH = 48h
  12358. DL = drive (80h-FFh)
  12359. DS:SI -> buffer for drive parameters (see #00273)
  12360. Return: CF clear if successful
  12361. AH = 00h
  12362. DS:SI buffer filled
  12363. CF set on error
  12364. AH = error code (see #00234)
  12365. BUG: several different Compaq BIOSes incorrectly report high-numbered
  12366. drives (such as 90h, B0h, D0h, and F0h) as present, giving them the
  12367. same geometry as drive 80h; as a workaround, scan through disk
  12368. numbers, stopping as soon as the number of valid drives encountered
  12369. equals the value in 0040h:0075h
  12370. SeeAlso: AH=08h,AH=41h,AH=49h,MEM 0040h:0075h
  12371. Format of IBM/MS INT 13 Extensions drive parameters:
  12372. Offset Size Description (Table 00273)
  12373. 00h WORD (call) size of buffer
  12374. (001Ah for v1.x, 001Eh for v2.x, 42h for v3.0)
  12375. (ret) size of returned data
  12376. 02h WORD information flags (see #00274)
  12377. 04h DWORD number of physical cylinders on drive
  12378. 08h DWORD number of physical heads on drive
  12379. 0Ch DWORD number of physical sectors per track
  12380. 10h QWORD total number of sectors on drive
  12381. 18h WORD bytes per sector
  12382. ---v2.0+ ---
  12383. 1Ah DWORD -> EDD configuration parameters (see #00278)
  12384. FFFFh:FFFFh if not available
  12385. ---v3.0 ---
  12386. 1Eh WORD signature BEDDh to indicate presence of Device Path info
  12387. 20h BYTE length of Device Path information, including signature and this
  12388. byte (24h for v3.0)
  12389. 21h 3 BYTEs reserved (0)
  12390. 24h 4 BYTEs ASCIZ name of host bus ("ISA" or "PCI")
  12391. 28h 8 BYTEs ASCIZ name of interface type
  12392. "ATA"
  12393. "ATAPI"
  12394. "SCSI"
  12395. "USB"
  12396. "1394" IEEE 1394 (FireWire)
  12397. "FIBRE" Fibre Channel
  12398. 30h 8 BYTEs Interface Path (see #00275)
  12399. 38h 8 BYTEs Device Path (see #00276)
  12400. 40h BYTE reserved (0)
  12401. 41h BYTE checksum of bytes 1Eh-40h (two's complement of sum, which makes
  12402. the 8-bit sum of bytes 1Eh-41h equal 00h)
  12403. Note: if the size is less than 30 on call, the final DWORD will not be
  12404. returned by a v2.x implementation; similarly for the Device Path info
  12405. SeeAlso: #00277,#03196
  12406. Bitfields for IBM/MS INT 13 Extensions information flags:
  12407. Bit(s) Description (Table 00274)
  12408. 0 DMA boundary errors handled transparently
  12409. 1 cylinder/head/sectors-per-track information is valid
  12410. 2 removable drive
  12411. 3 write with verify supported
  12412. 4 drive has change-line support (required if drive >= 80h is removable)
  12413. 5 drive can be locked (required if drive >= 80h is removable)
  12414. 6 CHS information set to maximum supported values, not current media
  12415. 15-7 reserved (0)
  12416. SeeAlso: #00273
  12417. Format of EDD v3.0 Interface Path:
  12418. Offset Size Description (Table 00275)
  12419. ---ISA---
  12420. 00h WORD 16-bit base address
  12421. 02h 6 BYTEs reserved (0)
  12422. ---PCI---
  12423. 00h BYTE PCI bus number
  12424. 01h BYTE PCI device number
  12425. 02h BYTE PCI function number
  12426. 03h 5 BYTEs reserved (0)
  12427. SeeAlso: #00273,#00276
  12428. Format of EDD v3.0 Device Path:
  12429. Offset Size Description (Table 00276)
  12430. ---ATA---
  12431. 00h BYTE flag: 00h = master, 01h = slave
  12432. 01h 7 BYTEs reserved (0)
  12433. ---ATAPI---
  12434. 00h BYTE flag: 00h = master, 01h = slave
  12435. 01h BYTE logical unit number
  12436. 02h 6 BYTEs reserved (0)
  12437. ---SCSI---
  12438. 00h BYTE logical unit number
  12439. 01h 7 BYTEs reserved (0)
  12440. ---USB---
  12441. 00h BYTE to be determined
  12442. 01h 7 BYTEs reserved (0)
  12443. ---IEEE1394---
  12444. 00h QWORD 64-bit FireWire General Unique Identifier (GUID)
  12445. ---FibreChannel---
  12446. 00h QWORD Word Wide Number (WWN)
  12447. SeeAlso: #00273,#00275
  12448. Format of Phoenix Enhanced Disk Drive Spec translated drive parameter table:
  12449. Offset Size Description (Table 00277)
  12450. 00h WORD number of cylinders
  12451. 02h BYTE number of heads
  12452. 03h BYTE A0h (signature indicating translated table)
  12453. 04h BYTE number of physical sectors per track
  12454. 05h WORD starting write precompensation cylinder number
  12455. 07h BYTE reserved
  12456. 08h BYTE control byte (see #03198 at INT 41"DISK 0")
  12457. 09h WORD number of physical cylinders
  12458. 0Bh BYTE number of physical heads
  12459. 0Ch WORD cylinder number of landing zone
  12460. 0Eh BYTE number of logical sectors per track
  12461. 0Fh BYTE checksum
  12462. Program: the Phoenix Enhanced Disk Drive Specification is an addition to the
  12463. IBM/MS INT 13 extensions
  12464. SeeAlso: #00278,#03196
  12465. Format of Phoenix Enhanced Disk Drive Spec Fixed Disk Parameter Table:
  12466. Offset Size Description (Table 00278)
  12467. 00h WORD physical I/O port base address
  12468. 02h WORD disk-drive control port address
  12469. 04h BYTE drive flags (see #00279)
  12470. 05h BYTE proprietary information
  12471. bits 7-4 reserved (0)
  12472. bits 3-0: Phoenix proprietary (used by BIOS)
  12473. 06h BYTE IRQ for drive (bits 3-0; bits 7-4 reserved and must be 0)
  12474. 07h BYTE sector count for multi-sector transfers
  12475. 08h BYTE DMA control
  12476. bits 7-4: DMA type (0-2) as per ATA-2 specification
  12477. bits 3-0: DMA channel
  12478. 09h BYTE programmed I/O control
  12479. bits 7-4: reserved (0)
  12480. bits 3-0: PIO type (1-4) as per ATA-2 specification
  12481. 0Ah WORD drive options (see #00280)
  12482. 0Ch 2 BYTEs reserved (0)
  12483. 0Eh BYTE extension revision level (high nybble=major, low nybble=minor)
  12484. (currently 10h for v1.0 and 11h for v1.1-3.0)
  12485. 0Fh BYTE 2's complement checksum of bytes 00h-0Eh
  12486. 8-bit sum of all bytes 00h-0Fh should equal 00h
  12487. SeeAlso: #00277
  12488. Bitfields for Phoenix Enhanced Disk Drive Spec drive flags:
  12489. Bit(s) Description (Table 00279)
  12490. 7 reserved (1)
  12491. 6 LBA enabled
  12492. 5 reserved (1)
  12493. 4 drive is slave
  12494. 3-0 reserved (0)
  12495. SeeAlso: #00278,#00280
  12496. Bitfields for Phoenix Enhanced Disk Drive Spec drive options:
  12497. Bit(s) Description (Table 00280)
  12498. 0 fast PIO enabled
  12499. 1 fast DMA access enabled
  12500. 2 block PIO (multi-sector transfers) enabled
  12501. 3 CHS translation enabled
  12502. 4 LBA translation enabled
  12503. 5 removable media
  12504. 6 ATAPI device (CD-ROM)
  12505. 7 32-bit transfer mode
  12506. ---v1.1+ ---
  12507. 8 ATAPI device uses DRQ to signal readiness for packet command
  12508. (must be 0 if bit 6 is 0)
  12509. 10-9 translation type (must be 00 if bit 3 is 0)
  12510. 00 Phoenix bit-shifting translation
  12511. 01 LBA-assisted translation
  12512. 10 reserved
  12513. 11 proprietary translation
  12514. ---v3.0---
  12515. 11 Ultra DMA access enabled
  12516. 15-12 reserved
  12517. SeeAlso: #00278,#00279
  12518. --------d-1349-------------------------------
  12519. INT 13 - IBM/MS INT 13 Extensions - EXTENDED MEDIA CHANGE
  12520. AH = 49h
  12521. DL = drive number
  12522. Return: CF clear if media has not changed
  12523. AH = 00h
  12524. CF set if media may have changed
  12525. AH = 06h (see #00234)
  12526. Note: unlike AH=16h, any drive number may be specified
  12527. SeeAlso: AH=16h,AH=41h"INT 13 Ext",AH=46h
  12528. --------d-134A-------------------------------
  12529. INT 13 - Bootable CD-ROM - INITIATE DISK EMULATION
  12530. AH = 4Ah
  12531. AL = 00h
  12532. DS:SI -> specification packet (see #00281)
  12533. Return: CF clear if successful
  12534. CF set on error (drive will not be in emulation mode)
  12535. AX = return codes
  12536. SeeAlso: AH=48h,AX=4B00h,AH=4Ch,AH=4Dh
  12537. Format of Bootable CD-ROM Specification Packet:
  12538. Offset Size Description (Table 00281)
  12539. 00h BYTE size of packet in bytes (13h)
  12540. 01h BYTE boot media type (see #00282)
  12541. 02h BYTE drive number
  12542. 00h floppy image
  12543. 80h bootable hard disk
  12544. 81h-FFh nonbootable or no emulation
  12545. 03h BYTE CD-ROM controller number
  12546. 04h DWORD Logical Block Address of disk image to emulate
  12547. 08h WORD device specification (see also #00282)
  12548. (IDE) bit 0: drive is slave instead of master
  12549. (SCSI) bits 7-0: LUN and PUN
  12550. bits 15-8: bus number
  12551. 0Ah WORD segment of 3K buffer for caching CD-ROM reads
  12552. 0Ch WORD load segment for initial boot image
  12553. if 0000h, load at segment 07C0h
  12554. 0Eh WORD number of 512-byte virtual sectors to load
  12555. (only valid for AH=4Ch)
  12556. 10h BYTE low byte of cylinder count (for INT 13/AH=08h)
  12557. 11h BYTE sector count, high bits of cylinder count (for INT 13/AH=08h)
  12558. 12h BYTE head count (for INT 13/AH=08h)
  12559. SeeAlso: #00283,AH=08h
  12560. Bitfields for Bootable CD-ROM boot media type:
  12561. Bit(s) Description (Table 00282)
  12562. 3-0 media type
  12563. 0000 no emulation
  12564. 0001 1.2M diskette
  12565. 0010 1.44M diskette
  12566. 0011 2.88M diskette
  12567. 0100 hard disk (drive C:)
  12568. other reserved
  12569. 5-4 reserved (0)
  12570. 6 image contains ATAPI driver
  12571. 7 image contains SCSI driver(s)
  12572. SeeAlso: #00281
  12573. --------d-134B00-----------------------------
  12574. INT 13 - Bootable CD-ROM - TERMINATE DISK EMULATION
  12575. AX = 4B00h
  12576. DL = drive number or 7Fh to terminate all emulations
  12577. DS:SI -> empty specification packet (see #00281)
  12578. Return: CF clear if successful
  12579. CF set on error (drive will still be in emulation mode)
  12580. AX = return codes
  12581. DS:SI specification packet filled
  12582. SeeAlso: AH=48h,AH=4Ah,AX=4B00h,AH=4Ch,AH=4Dh
  12583. --------d-134B01-----------------------------
  12584. INT 13 - Bootable CD-ROM - GET STATUS
  12585. AX = 4B01h
  12586. DL = drive number
  12587. DS:SI -> empty specification packet (see #00281)
  12588. Return: CF clear if successful
  12589. CF set on error
  12590. AX = return codes
  12591. DS:SI specification packet filled
  12592. Note: same as AX=4B00h, but does not terminate emulation
  12593. SeeAlso: AH=48h,AH=4Ah,AX=4B00h,AH=4Ch,AH=4Dh
  12594. --------d-134C-------------------------------
  12595. INT 13 - Bootable CD-ROM - INITIATE DISK EMULATION AND BOOT
  12596. AH = 4Ch
  12597. AL = 00h
  12598. DS:SI -> specification packet (see #00281)
  12599. Return: never, if successful
  12600. CF set (error while attempting to boot)
  12601. AX = error codes
  12602. SeeAlso: AH=48h,AH=4Ah,AX=4B00h,AH=4Dh
  12603. --------d-134D00-----------------------------
  12604. INT 13 - Bootable CD-ROM - RETURN BOOT CATALOG
  12605. AX = 4D00h
  12606. DS:SI -> command packet (see #00283)
  12607. Return: CF clear if successful
  12608. CF set on error
  12609. AX = return codes
  12610. SeeAlso: AH=48h,AH=4Ah,AX=4B00h,AH=4Ch
  12611. Format of Bootable CD-ROM "get boot catalog" command packet:
  12612. Offset Size Description (Table 00283)
  12613. 00h BYTE size of packet in bytes (08h)
  12614. 01h BYTE number of sectors of boot catalog to read
  12615. 02h DWORD -> buffer for boot catalog
  12616. 06h WORD first sector in boot catalog to transfer
  12617. SeeAlso: #00281
  12618. --------d-134E-------------------------------
  12619. INT 13 - IBM/MS INT 13 Extensions v2.1 - SET HARDWARE CONFIGURATION
  12620. AH = 4Eh
  12621. AL = function
  12622. 00h enable prefetch
  12623. 01h disable prefetch
  12624. 02h set maximum PIO transfer mode
  12625. 03h set PIO mode 0
  12626. 04h set default PIO transfer mode
  12627. 05h enable INT 13 DMA maximum mode
  12628. 06h disable INT 13 DMA
  12629. DL = drive number
  12630. Return: CF clear if successful
  12631. AH = 00h
  12632. AL = status
  12633. 00h command was safe (only affected specified drive)
  12634. 01h other devices are affected
  12635. CF set on error
  12636. AH = error code (see #00234)
  12637. Note: DMA and PIO modes are mutually exclusive, so selecting DMA disables
  12638. PIO (for either the specified device or all devices on that
  12639. controller), and selecting PIO disables DMA
  12640. SeeAlso: AH=41h"INT 13 Extensions",AX=5001h"Enhanced Disk Drive"
  12641. --------d-135001-----------------------------
  12642. INT 13 - Enhanced Disk Drive Spec v3.0 - SEND PACKET COMMAND
  12643. AX = 5001h
  12644. DL = drive number
  12645. ES:BX -> command packet (see #00284)
  12646. Return: CF clear if successful
  12647. AH = 00h
  12648. CF set on error
  12649. AH = error code
  12650. Desc: send data to and from a serial packet-oriented device, such as IEEE1394
  12651. and USB
  12652. SeeAlso: AH=41h"INT 13 Extensions",AH=4Eh
  12653. Format of Enhanced Disk Drive Spec v3.0 command packet:
  12654. Offset Size Description (Table 00284)
  12655. 00h WORD signature B055h
  12656. 02h BYTE length of packet in bytes
  12657. 03h BYTE reserved (0)
  12658. 04h N BYTEs formatted packet data
  12659. --------v-135001------------------------
  12660. INT 13 - VIRUS - "Andropinis" - INSTALLATION CHECK
  12661. AX = 5001h
  12662. Return: AX = 0150h if resident
  12663. SeeAlso: AX=FD50h"VIRUS",INT 21/AX=0B56h
  12664. --------v-135342CX0001-----------------------
  12665. INT 13 - ScanBoot - INSTALLATION CHECK
  12666. AX = 5342h ("SB")
  12667. CX = 0001h
  12668. DX = 0000h
  12669. Return: CF clear if ScanBoot installed
  12670. AX = 0000h
  12671. CX = serial number ("SW" if shareware release)
  12672. DX = version
  12673. BX,SI,ES destroyed
  12674. Program: ScanBoot is a virus-detection TSR by PanSoft
  12675. --------d-135501-----------------------------
  12676. INT 13 - Seagate ST01/ST02 - Inquiry
  12677. AX = 5501h
  12678. DH = number of bytes to transfer
  12679. DL = drive ID (80h, 81h, ...)
  12680. ES:BX -> buffer for results
  12681. Return: ES:BX buffer filled with the Inquiry results
  12682. Notes: the ST01/ST02 BIOS does not return any success/failure indication,
  12683. so all commands must be assumed to have been successful
  12684. the ST01/ST02 BIOS always maps its drives after the previous BIOS
  12685. drives without changing the BIOS drive count at 0040h:0075h
  12686. this command is identical to the SCSI Inquiry command
  12687. --------d-135502-----------------------------
  12688. INT 13 - Seagate ST01/ST02 - RESERVED
  12689. AX = 5502h
  12690. --------d-135503-----------------------------
  12691. INT 13 - Seagate ST01/ST01 - Set Device Type Qualifier (DTQ)
  12692. AX = 5503h
  12693. DH = DTQ byte (see #00285)
  12694. DL = drive ID (80h, 81h, ...)
  12695. Return: nothing
  12696. Bitfields for DTQ byte:
  12697. Bit(s) Description (Table 00285)
  12698. 7 reserved
  12699. 6 SCSI drive attached
  12700. 5 reserved
  12701. 4 selected drive is ST225N/NP (Paired)
  12702. 3 selected drive is ST225N
  12703. 2 Host Adapter checks parity on the selected drive
  12704. 1 selected drive has been installed
  12705. 0 Seagate installation software present
  12706. --------d-135504-----------------------------
  12707. INT 13 U - Seagate - ??? - RETURN IDENTIFICATION
  12708. AX = 5504h
  12709. DX = drive (bit 7 set for hard disk)
  12710. Return: CF clear if successful
  12711. AX = 4321h if ST01/ST02h
  12712. AX = 4322h if ??? Seagate controller
  12713. CF set on error
  12714. SeeAlso: AX=5505h,AX=5514h
  12715. --------d-135504-----------------------------
  12716. INT 13 - Seagate ST01/ST02 - RETURN IDENTIFICATION
  12717. AX = 5504h
  12718. DL = drive ID (80h, 81h, ...)
  12719. Return: AX = 4321h
  12720. BL = selected drive number (00h, 01h)
  12721. BH = number of drives attached to Host Adapter (max. 2)
  12722. --------d-135505-----------------------------
  12723. INT 13 - Seagate - ??? - PARK HEADS
  12724. AX = 5505h
  12725. DX = drive (bit 7 set for hard disk)
  12726. Return: CF clear if successful
  12727. CF set on error
  12728. SeeAlso: AX=5504h,AX=5515h
  12729. --------d-135505-----------------------------
  12730. INT 13 - Seagate ST01/ST02 - PARK HEADS
  12731. AX = 5505h
  12732. DL = drive ID (80h, 81h, ...)
  12733. DH = subfunction
  12734. 00h park heads (SCSI Stop command)
  12735. 01h un-park heads (SCSI Start command)
  12736. Return: nothing
  12737. --------d-135506-----------------------------
  12738. INT 13 - Seagate ST01/ST02 - SCSI Bus Parity
  12739. AX = 5506h
  12740. DL = drive ID (80h, 81h, ...)
  12741. DH = subfunction
  12742. 00h disable parity check
  12743. 01h enable parity check
  12744. 02h return current parity setting
  12745. Return: AL = status
  12746. 00h parity checking disabled
  12747. 01h parity checking enabled
  12748. --------d-135507-----------------------------
  12749. INT 13 - Seagate ST01/ST02 - RESERVED FUNCTIONS
  12750. AX = 5507h to 550Dh
  12751. Note: officially listed as "reserved"
  12752. --------d-135514-----------------------------
  12753. INT 13 U - Seagate - ???
  12754. AX = 5514h
  12755. DX = drive (bit 7 set for hard disk)
  12756. Return: CF clear if successful
  12757. CF set on error
  12758. AX = return value (FEBEh,FEBFh,FEDAh,FEDBh)
  12759. SeeAlso: AX=5504h,AX=5515h
  12760. --------d-135515-----------------------------
  12761. INT 13 U - Seagate - PARK HEADS???
  12762. AX = 5515h
  12763. DX = drive (bit 7 set for hard disk)
  12764. Return: CF clear if successful
  12765. CF set on error
  12766. Note: appears to be identical to AX=5505h
  12767. SeeAlso: AX=5504h,AX=5505h
  12768. --------d-1359-------------------------------
  12769. INT 13 - SyQuest - Generic SCSI pass through
  12770. AH = 59h
  12771. CX = HOST_ID, 0-based
  12772. DX = 80h
  12773. ES:BX pointer to SCSI structure (see #00286)
  12774. Return: CF clear
  12775. AH = 95h
  12776. SeeAlso: AH=12h"SyQuest",AH=13h"SyQuest",AH=1Fh"SyQuest"
  12777. Format of SyQuest SCSI structure:
  12778. Offset Size Description (Table 00286)
  12779. 00h WORD opcode (see #00287)
  12780. 02h BYTE target's SCSI ID
  12781. 03h BYTE target's logical unit number
  12782. 04h BYTE data direction (00h no data xfer, 01h data in, FFh data out)
  12783. 05h BYTE host status
  12784. 00h successful
  12785. 01h selection time out
  12786. 02h data over-run or under-run
  12787. 06h BYTE target status at command completion
  12788. 00h successful
  12789. 02h check status
  12790. 08h busy
  12791. 07h BYTE command data block length
  12792. 08h DWORD request data length
  12793. 0Ch DWORD result data length (actual length of data transferred)
  12794. 10h DWORD -> CDB (see #03236,#03237,#03238)
  12795. 14h DWORD -> data buffer
  12796. Note: The handler does not perform a 'Request Sense' command if there was an
  12797. error
  12798. (Table 00287)
  12799. Values for SCSI opcode:
  12800. 00h verify interface
  12801. clears carry flag and returns if function is available
  12802. 01h returns the ID of the INT 13h Handler in a NULL terminated string of
  12803. length less than 40 byte including the terminator.
  12804. The string is stored in the buffer pointed by p_buf.
  12805. 02h device mapping info. The caller provides a one byte buffer.
  12806. The handler stores the Int 13h Device ID (80h or above) in the buffer.
  12807. It stores 0 if that target does not exists.
  12808. 03h execute SCSI command
  12809. 04h device reset
  12810. 05h SCSI bus reset
  12811. SeeAlso: #00286
  12812. --------d-1370-------------------------------
  12813. INT 13 - Priam EDVR.SYS DISK PARTITIONING SOFTWARE???
  12814. AH = 70h
  12815. ???
  12816. Return: ???
  12817. Note: Priam's EDISK.EXE (FDISK replacement) and EFMT.EXE (low-level
  12818. formatting program) make this call, presumably to EDVR.SYS (the
  12819. partitioning driver)
  12820. SeeAlso: AH=ADh
  12821. ----------1375-------------------------------
  12822. INT 13 - ???
  12823. AH = 75h
  12824. ???
  12825. Return: AH = ???
  12826. ???
  12827. Note: intercepted by PC-Cache (v5.1 only)
  12828. ----------1376-------------------------------
  12829. INT 13 - ???
  12830. AH = 76h
  12831. ???
  12832. Return: AH = ???
  12833. ???
  12834. Note: intercepted by PC-Cache (v5.1 only)
  12835. --------c-137B00-----------------------------
  12836. INT 13 - NOW! v3.05 - GET INFORMATION
  12837. AX = 7B00h
  12838. CX:DX -> 1F8h-byte buffer for information record (see #00288)
  12839. Return: AX = 0000h
  12840. BX = segment of main resident code
  12841. ES = ???
  12842. Program: NOW! is a disk cache by Vertisoft Systems, Inc.
  12843. SeeAlso: AX=7B02h,AH=EFh
  12844. Format of NOW! information record:
  12845. Offset Size Description (Table 00288)
  12846. 00h 80 BYTEs name of directory from which NOW! was started
  12847. 50h 424 BYTEs ???
  12848. 81h ? BYTEs array of bytes for ???
  12849. F7h 250 BYTEs array of 25 entries, one per drive???
  12850. Offset Size Description
  12851. 00h 2 BYTEs ???
  12852. 02h WORD ???
  12853. 04h WORD ???
  12854. 06h 4 BYTEs ???
  12855. 1F1h 7 BYTEs ???
  12856. --------c-137B01-----------------------------
  12857. INT 13 - NOW! v3.05 - ???
  12858. AX = 7B01h
  12859. Return: DX = segment of ???
  12860. SeeAlso: AX=7B00h
  12861. --------c-137B02-----------------------------
  12862. INT 13 - NOW! v3.05 - SET INFORMATION
  12863. AX = 7B02h
  12864. BX = segment of ??? (10h above a PSP)
  12865. CX:DX -> 1F8h-byte information record (see #00288)
  12866. Return: ???
  12867. Program: NOW! is a disk cache by Vertisoft Systems, Inc.
  12868. Note: NOW! grabs the INT 24h value from the PSP reached via the segment in
  12869. BX
  12870. SeeAlso: AX=7B00h
  12871. --------c-137B03-----------------------------
  12872. INT 13 - NOW! v3.05 - ???
  12873. AX = 7B03h
  12874. ???
  12875. Return: ???
  12876. SeeAlso: AX=7B00h,AX=7B04h
  12877. --------c-137B04-----------------------------
  12878. INT 13 - NOW! v3.05 - ???
  12879. AX = 7B04h
  12880. ???
  12881. Return: ???
  12882. SeeAlso: AX=7B03h
  12883. --------c-137B05-----------------------------
  12884. INT 13 - NOW! v3.05 - GET DISK ACCESSES???
  12885. AX = 7B05h
  12886. Return: BX:AX = number of physical accesses???
  12887. DX:CX = total disk accesses???
  12888. SeeAlso: AX=7B00h,AX=7B06h
  12889. --------c-137B06-----------------------------
  12890. INT 13 - NOW! v3.05 - GET ???
  12891. AX = 7B06h
  12892. BX = ???
  12893. Return: AX = 0000h
  12894. BX = ???
  12895. SeeAlso: AX=7B05h,AX=7B07h
  12896. --------c-137B07-----------------------------
  12897. INT 13 - NOW! v3.05 - GET ???
  12898. AX = 7B07h
  12899. Return: AX = ???
  12900. BX = ???
  12901. CX = ???
  12902. DX = ???
  12903. SeeAlso: AX=7B06h
  12904. --------c-137B08-----------------------------
  12905. INT 13 - NOW! v3.05 - ???
  12906. AX = 7B08h
  12907. CX = ??? (default 00h)
  12908. Return: ???
  12909. SeeAlso: AX=7B00h
  12910. --------c-1380--CX6572-----------------------
  12911. INT 13 - FAST! v4.02+ - API
  12912. AH = 80h
  12913. CX = 6572h
  12914. DX = 1970h
  12915. ES:BX -> request packet (see #00290)
  12916. AL = function number (see #00289)
  12917. Return: AH = status (except function 06h)
  12918. 00h if successful
  12919. 01h invalid function
  12920. 05h not supported by the installed variant
  12921. CF clear if successful
  12922. CF set on error
  12923. AL may be destroyed
  12924. Program: FAST! is a disk cache by Future Computing Systems and marketed by
  12925. BLOC Publishing Corp.
  12926. SeeAlso: AX=8001h,AX=8006h,AX=8007h
  12927. Index: hotkeys;FAST!
  12928. (Table 00289)
  12929. Values for FAST! function:
  12930. 01h get cache information (see AX=8001h)
  12931. 04h disable cache
  12932. 05h enable cache and reset statistics
  12933. 06h installation check (see AX=8006h)
  12934. 07h unhook interrupts (see AX=8007h)
  12935. 09h flush cache
  12936. 0Ah (v4.02+) enable staged writes
  12937. 0Bh (v4.02+) disable staged writes
  12938. 0Ch (v4.02+) enable beep on flush
  12939. 0Dh (v4.02+) disable beep on flush
  12940. 0Eh ???
  12941. 0Fh ???
  12942. 10h (v4.12+) enable hotkeys
  12943. 11h (v4.12+) disable hotkeys
  12944. 12h (v4.13+) set idle delay
  12945. 13h (v4.13+) set flush dirty percentage
  12946. 14h (v5.00+) enable mouse checks
  12947. 15h (v5.00+) disable mouse checks
  12948. 16h (v5.00d+) reduce cache size to minimum
  12949. 17h (v5.00d+) increase cache size to maximum
  12950. Format of FAST! request packet:
  12951. Offset Size Description (Table 00290)
  12952. 00h DWORD pointer to 19-byte signature string (see #00291)
  12953. 04h DWORD pointer to buffer for data (if needed by function)
  12954. (Table 00291)
  12955. Values for FAST! v4.04-v5.03 signature string:
  12956. 13h 07h 06h 08h 11h 18h 0Fh 0Eh 02h 18h 13h 08h 0Bh 08h 01h 00h 04h 08h 15h
  12957. --------c-138001CX6572-----------------------
  12958. INT 13 - FAST! v4.02+ - GET CACHE INFORMATION
  12959. AX = 8001h
  12960. CX = 6572h
  12961. DX = 1970h
  12962. ES:BX -> request packet (see #00292)
  12963. Return: AH = 00h if successful
  12964. SeeAlso: AH=80h,AX=8006h
  12965. Format of FAST! request packet:
  12966. Offset Size Description (Table 00292)
  12967. 00h DWORD -> 19-byte signature string (see #00291)
  12968. 04h DWORD -> buffer for cache information (see #00293)
  12969. Format of FAST! cache information (v5.00-5.03):
  12970. Offset Size Description (Table 00293)
  12971. 00h WORD binary version number of FAST! (v5.00 = 01F4h)
  12972. 02h BYTE revision letter (61h = X.XXa, 62h = X.XXb, etc.)
  12973. 03h BYTE FAST! variant
  12974. (01h = FASTE, 02h = FASTX BIOS, 04h = FASTC, 20h = FASTX XMS)
  12975. 04h DWORD total number of read requests
  12976. 08h DWORD number of physical disk reads
  12977. 0Ch DWORD grabbed hash buckets
  12978. 10h DWORD "st_386mem"
  12979. 14h DWORD total number of writes (only counted when staging enabled)
  12980. 18h DWORD number of physical disk writes (only when staging enabled)
  12981. 1Ch DWORD number of write errors while flushing cache
  12982. 20h WORD flags1 (see #00294)
  12983. 22h WORD flags
  12984. bit 0: ???
  12985. bit 1: staged writes enabled
  12986. 24h WORD ???
  12987. 26h WORD maximum cache size in KB
  12988. 28h WORD minimum cache size in KB
  12989. 2Ah WORD segment of first cache buffer (FASTC)
  12990. segment of EMS page frame (FASTE)
  12991. XMS handle (FASTX XMS)
  12992. 2Ch WORD number of hash buckets containing no entries
  12993. 2Eh WORD number of hash buckets containing one entry
  12994. 30h WORD number of hash buckets containing two entries
  12995. 32h WORD number of hash buckets containing three entries
  12996. 34h WORD number of hash buckets containing four entries
  12997. 36h WORD number of hash buckets containing five entries
  12998. 38h WORD maximum contiguous sectors
  12999. 3Ah WORD hash factor
  13000. 3Ch WORD number of paragraphs of memory used below 1M
  13001. 3Eh WORD entries per hash bucket
  13002. 40h WORD idle delay in seconds
  13003. 42h 2 BYTEs ???
  13004. 44h WORD staged write threshold percentage
  13005. 46h 2 BYTEs ???
  13006. 48h WORD number of dirty sectors
  13007. 4Ah WORD number of staged write buffers
  13008. 4Ch WORD current cache size in KB
  13009. 4Eh WORD beep frequency in Hz
  13010. 50h WORD ???
  13011. 52h WORD ???
  13012. Bitfields for FAST! flags1:
  13013. Bit(s) Description (Table 00294)
  13014. 0 beep on flush
  13015. 3 hotkeys enabled
  13016. 4 mouse idle check enabled
  13017. 8 caching enabled
  13018. 13 ???
  13019. --------c-138006CX6572-----------------------
  13020. INT 13 - FAST! v4.02+ - INSTALLATION CHECK
  13021. AX = 8006h
  13022. CX = 6572h
  13023. DX = 1970h
  13024. ES:BX -> request packet (see #00295)
  13025. Return: AX = 1965h if installed
  13026. SeeAlso: AH=80h,AX=8001h,AX=8007h
  13027. Format of FAST! request packet:
  13028. Offset Size Description (Table 00295)
  13029. 00h DWORD -> 19-byte signature string (see #00291)
  13030. --------c-138007CX6572-----------------------
  13031. INT 13 - FAST! v4.02+ - UNHOOK INTERRUPTS
  13032. AX = 8007h
  13033. CX = 6572h
  13034. DX = 1970h
  13035. ES:BX -> request packet (see #00296)
  13036. Return: AX = 1965h if installed
  13037. SeeAlso: AH=80h,AX=8006h
  13038. Index: uninstall;FAST!
  13039. Format of FAST! request packet:
  13040. Offset Size Description (Table 00296)
  13041. 00h DWORD -> 19-byte signature string (see #00291)
  13042. --------c-1381--SI4358-----------------------
  13043. INT 13 - Super PC-Kwik v3.20+ - ???
  13044. AH = 81h
  13045. SI = 4358h
  13046. ???
  13047. Return: ???
  13048. Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  13049. Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds
  13050. to PC-Kwik v3.20 and PC-Cache v5.5 to PC-Kwik v3.27)
  13051. returns immediately in PC-Cache v5.x
  13052. Index: PC-Cache|Qualitas Qcache
  13053. --------c-1382--SI4358-----------------------
  13054. INT 13 - Super PC-Kwik v3.20+ - ???
  13055. AH = 82h
  13056. SI = 4358h
  13057. ???
  13058. Return: AL = ???
  13059. Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  13060. Super PC-Kwik, and thus support this call
  13061. SeeAlso: AH=84h
  13062. Index: PC-Cache|Qualitas Qcache
  13063. --------c-1383--SI4358-----------------------
  13064. INT 13 - Super PC-Kwik v3.20+ - ???
  13065. AH = 83h
  13066. SI = 4358h
  13067. AL = ???
  13068. ES:BX -> ???
  13069. ???
  13070. Return: ???
  13071. Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  13072. Super PC-Kwik, and thus support this call
  13073. SeeAlso: AH=85h
  13074. Index: PC-Cache|Qualitas Qcache
  13075. --------c-1384--SI4358-----------------------
  13076. INT 13 - Super PC-Kwik v3.20+ - ???
  13077. AH = 84h
  13078. SI = 4358h
  13079. AL = ???
  13080. ???
  13081. Return: AL = ???
  13082. Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  13083. Super PC-Kwik, and thus support this call
  13084. SeeAlso: AH=82h
  13085. Index: PC-Cache|Qualitas Qcache
  13086. --------c-1385--SI4358-----------------------
  13087. INT 13 - Super PC-Kwik v3.20+ - ???
  13088. AH = 85h
  13089. SI = 4358h
  13090. AL = ???
  13091. DL = ???
  13092. ???
  13093. Return: ???
  13094. Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  13095. Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds
  13096. to PC-Kwik v3.20)
  13097. SeeAlso: AH=83h
  13098. Index: PC-Cache|Qualitas Qcache
  13099. --------c-1386--SI4358-----------------------
  13100. INT 13 - Super PC-Kwik v4.00+ - ???
  13101. AH = 86h
  13102. SI = 4358h
  13103. ???
  13104. Return: ???
  13105. Note: Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  13106. thus supports this call
  13107. Index: Qualitas Qcache
  13108. --------c-1387--SI4358-----------------------
  13109. INT 13 - Super PC-Kwik v4.00+ - ???
  13110. AH = 87h
  13111. SI = 4358h
  13112. ???
  13113. Return: AH = status??? (00h)
  13114. CX = ???
  13115. DX = ??? (0000h)
  13116. Note: Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  13117. thus supports this call
  13118. Index: Qualitas Qcache
  13119. --------c-1388--SI4358-----------------------
  13120. INT 13 - Super PC-Kwik v4.00+ - ???
  13121. AH = 88h
  13122. SI = 4358h
  13123. ???
  13124. Return: AH = status??? (00h)
  13125. CX = ???
  13126. DX = ??? (0000h)
  13127. Note: Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  13128. thus supports this call
  13129. Index: Qualitas Qcache
  13130. --------c-1389--SI4358-----------------------
  13131. INT 13 - Super PC-Kwik v5.10+ - ???
  13132. AH = 89h
  13133. SI = 4358h
  13134. ???
  13135. Return: ???
  13136. --------c-138A--SI4358-----------------------
  13137. INT 13 - Super PC-Kwik v5.10+ - ???
  13138. AH = 8Ah
  13139. SI = 4358h
  13140. ???
  13141. Return: ???
  13142. --------c-138EED-----------------------------
  13143. INT 13 - HyperDisk v4.01+ - ???
  13144. AX = 8EEDh
  13145. ???
  13146. Return: ???
  13147. Program: HyperDisk is a shareware disk cache by HyperWare (Roger Cross)
  13148. SeeAlso: AX=8EEEh,AX=8EEFh,AH=EEh,INT 2F/AX=DF00h
  13149. --------c-138EEE-----------------------------
  13150. INT 13 - HyperDisk v4.01+ - ???
  13151. AX = 8EEEh
  13152. Return: CF set
  13153. AX = CS of HyperDisk resident code
  13154. ???
  13155. Note: identical to AX=8EEFh in HYPERDKX v4.21-4.30
  13156. SeeAlso: AX=8EEDh,AX=8EEFh,AH=EEh
  13157. --------c-138EEF-----------------------------
  13158. INT 13 - HyperDisk v4.01+ - ???
  13159. AX = 8EEFh
  13160. Return: CF set
  13161. AX = CS of HyperDisk resident code
  13162. ???
  13163. Note: identical to AX=8EEEh in HYPERDKX v4.21-4.30
  13164. SeeAlso: AX=8EEDh,AX=8EEEh,AH=EEh
  13165. --------c-1392--SI4358-----------------------
  13166. INT 13 - Super PC-Kwik v5.10+ - ???
  13167. AH = 92h
  13168. SI = 4358h
  13169. ???
  13170. Return: AH = status??? (00h)
  13171. DL = ???
  13172. SeeAlso: AH=93h
  13173. --------c-1393--SI4358-----------------------
  13174. INT 13 - Super PC-Kwik v5.10+ - ???
  13175. AH = 93h
  13176. SI = 4358h
  13177. ???
  13178. Return: AH = status??? (00h)
  13179. AL = ???
  13180. SeeAlso: AH=92h
  13181. --------c-1394--SI4358-----------------------
  13182. INT 13 - Super PC-Kwik v5.10+ - ???
  13183. AH = 94h
  13184. SI = 4358h
  13185. ???
  13186. Return: ???
  13187. --------c-1395--SI4358-----------------------
  13188. INT 13 - Super PC-Kwik v5.10+ - ???
  13189. AH = 95h
  13190. SI = 4358h
  13191. ???
  13192. Return: AH = status??? (00h)
  13193. DX = ???
  13194. --------c-1396--SI4358-----------------------
  13195. INT 13 - Super PC-Kwik v5.10+ - ???
  13196. AH = 96h
  13197. SI = 4358h
  13198. AL = ??? (01h)
  13199. BX = ??? (0790h)
  13200. DL = ???
  13201. Return: AH = status??? (00h)
  13202. DX = ???
  13203. --------c-1397--SI4358-----------------------
  13204. INT 13 - Super PC-Kwik v5.10+ - ???
  13205. AH = 97h
  13206. SI = 4358h
  13207. ???
  13208. Return: ???
  13209. --------c-1398--SI4358-----------------------
  13210. INT 13 - Super PC-Kwik v5.10+ - ???
  13211. AH = 98h
  13212. SI = 4358h
  13213. ???
  13214. Return: ???
  13215. --------c-1399--SI4358-----------------------
  13216. INT 13 - Super PC-Kwik v5.10+ - ???
  13217. AH = 99h
  13218. SI = 4358h
  13219. ???
  13220. Return: ???
  13221. --------c-139A--SI4358-----------------------
  13222. INT 13 - Super PC-Kwik v5.10+ - ???
  13223. AH = 9Ah
  13224. SI = 4358h
  13225. ???
  13226. Return: ???
  13227. --------c-139B--SI4358-----------------------
  13228. INT 13 - Super PC-Kwik v5.10+ - ???
  13229. AH = 9Bh
  13230. SI = 4358h
  13231. ???
  13232. Return: ???
  13233. --------c-139C--SI4358-----------------------
  13234. INT 13 - Super PC-Kwik v5.10+ - ???
  13235. AH = 9Ch
  13236. SI = 4358h
  13237. ???
  13238. Return: ???
  13239. Note: functions 9Ch and 9Dh are the only ones which are fully reentrant; all
  13240. other PC-Kwik API calls (INT 13/81h-B0h) return AX=0200h and CF clear
  13241. if a previous call is still in progress
  13242. --------c-139D--SI4358-----------------------
  13243. INT 13 - Super PC-Kwik v5.10+ - ???
  13244. AH = 9Dh
  13245. SI = 4358h
  13246. ???
  13247. Return: ???
  13248. --------c-13A0--SI4358-----------------------
  13249. INT 13 - Super PC-Kwik v3.20+ - GET RESIDENT CODE SEGMENT
  13250. AH = A0h
  13251. SI = 4358h
  13252. Return: AX = segment of resident code
  13253. Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  13254. Super PC-Kwik, and thus support this call (note that PC-Cache v5.5
  13255. corresponds to PC-Kwik v3.27)
  13256. SeeAlso: INT 16/AX=FFA5h/CX=1111h
  13257. Index: PC-Cache|Qualitas Qcache
  13258. --------c-13A1--SI4358-----------------------
  13259. INT 13 - Super PC-Kwik v3.20+ - FLUSH CACHE
  13260. AH = A1h
  13261. SI = 4358h
  13262. Return: CF clear
  13263. AH = 00h (v5.10)
  13264. Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  13265. Super PC-Kwik, and thus support this call (note that PC-Cache v5.1
  13266. corresponds to PC-Kwik v3.20)
  13267. SeeAlso: INT 16/AX=FFA5h/CX=FFFFh
  13268. Index: PC-Cache|Qualitas Qcache
  13269. --------c-13A2--SI4358-----------------------
  13270. INT 13 - Super PC-Kwik v3.20+ - ???
  13271. AH = A2h
  13272. SI = 4358h
  13273. ???
  13274. Return: ???
  13275. Note: PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  13276. Super PC-Kwik, and thus support this call (note that PC-Cache v5.1
  13277. corresponds to PC-Kwik v3.20)
  13278. Index: PC-Cache|Qualitas Qcache
  13279. --------c-13A3--SI4358-----------------------
  13280. INT 13 U - Super PC-Kwik v5.10+ - DISABLE CACHE
  13281. AH = A3h
  13282. SI = 4358h
  13283. Return: CF clear
  13284. SeeAlso: AH=A4h
  13285. --------c-13A4--SI4358-----------------------
  13286. INT 13 U - Super PC-Kwik v5.10+ - ENABLE CACHE
  13287. AH = A4h
  13288. SI = 4358h
  13289. Return: CF clear
  13290. SeeAlso: AH=A3h
  13291. --------c-13A5--SI4358-----------------------
  13292. INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM TERMINATION NOTIFICATION
  13293. AH = A5h
  13294. SI = 4358h
  13295. Return: AX = ???
  13296. SI = ???
  13297. Notes: called and used internally by Super PC-Kwik when a program terminates
  13298. via INT 21/AH=00h, INT 21/AH=31h, or INT 21/AH=4Ch
  13299. this call is not supported by Qualitas Qcache 4.00
  13300. Index: PC-Cache
  13301. SeeAlso: AH=A6h,AH=A9h,INT 21/AH=00h,INT 21/AH=31h,INT 21/AH=4Ch
  13302. --------c-13A6--SI4358-----------------------
  13303. INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM LOAD NOTIFICATION
  13304. AH = A6h
  13305. SI = 4358h
  13306. DS:DX -> ASCIZ program name
  13307. ES:BX -> EXEC data block (see #01590 at INT 21/AH=4Bh)
  13308. Return: ???
  13309. Note: called and used internally by Super PC-Kwik when a program is loaded
  13310. with INT 21/AX=4B00h
  13311. SeeAlso: AH=A5h,AH=A9h,INT 21/AH=4Bh
  13312. --------c-13A7--SI4358-----------------------
  13313. INT 13 CU - Super PC-Kwik 5.1 - ???
  13314. AH = A7h
  13315. SI = 4358h
  13316. Return: ???
  13317. Note: called and used internally by Super PC-Kwik on some INT 21 calls
  13318. SeeAlso: AH=A5h,AH=A6h,AH=A8h
  13319. --------v-13A759-----------------------------
  13320. INT 13 U - Novell DOS 7 - SDRes v27.03 - ???
  13321. AX = A759h
  13322. Return: AX = 59A7h if installed
  13323. DX:BX -> ??? data
  13324. Program: SDRes is the resident portion of the Search&Destroy antiviral by
  13325. Fifth Generation Systems, as bundled with Novell DOS 7
  13326. SeeAlso: INT 21/AH=0Eh/DL=ADh
  13327. --------c-13A8--SI4358-----------------------
  13328. INT 13 CU - Super PC-Kwik 5.1 - ???
  13329. AH = A8h
  13330. SI = 4358h
  13331. Return: ???
  13332. Note: called and used internally by Super PC-Kwik on some INT 21 calls
  13333. SeeAlso: AH=A5h,AH=A6h,AH=A7h
  13334. --------c-13A9--SI4358-----------------------
  13335. INT 13 CU - Super PC-Kwik 5.1 - EXITCODE RETRIEVAL NOTIFICATION
  13336. AH = A9h
  13337. SI = 4358h
  13338. Return: ???
  13339. Note: called and used internally by Super PC-Kwik when an application issues
  13340. INT 21/AH=4Dh
  13341. SeeAlso: AH=A5h,AH=A6h,INT 21/AH=4Dh
  13342. --------c-13AA--SI4358-----------------------
  13343. INT 13 - Super PC-Kwik v4+ - ???
  13344. AH = AAh
  13345. SI = 4358h
  13346. ???
  13347. Return: ???
  13348. Note: Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  13349. this call
  13350. --------c-13AB--SI4358-----------------------
  13351. INT 13 - Super PC-Kwik v4+ - ???
  13352. AH = ABh
  13353. SI = 4358h
  13354. ???
  13355. Return: ???
  13356. Note: Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  13357. this call
  13358. --------c-13AC--SI4358-----------------------
  13359. INT 13 - Super PC-Kwik v4+ - ???
  13360. AH = ACh
  13361. SI = 4358h
  13362. ???
  13363. Return: ???
  13364. Note: Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  13365. this call
  13366. --------d-13AD-------------------------------
  13367. INT 13 - Priam HARD DISK CONTROLLER???
  13368. AH = ADh
  13369. ???
  13370. Return: ???
  13371. Note: this call is made from Priam's EFMT.EXE (low-level formatter), probably
  13372. to check the ROM type on the controller for their hard disk kits
  13373. SeeAlso: AH=70h
  13374. --------c-13AD--SI4358-----------------------
  13375. INT 13 - Super PC-Kwik v4+ - ???
  13376. AH = ADh
  13377. SI = 4358h
  13378. ???
  13379. Return: ???
  13380. Note: Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  13381. this call
  13382. --------c-13AE--SI4358-----------------------
  13383. INT 13 - Super PC-Kwik v5.10+ - ???
  13384. AH = AEh
  13385. SI = 4358h
  13386. ???
  13387. Return: ???
  13388. --------c-13B0--SI4358-----------------------
  13389. INT 13 - Super PC-Kwik v3.20+ - ???
  13390. AH = B0h
  13391. SI = 4358h
  13392. ???
  13393. Return: ???
  13394. Note: PC Tools PC-Cache 5.x is an OEM version of Super PC-Kwik, and thus
  13395. supports this call; Qualitas Qcache does not support it
  13396. Index: PC-Cache
  13397. --------d-13E000-----------------------------
  13398. INT 13 - XBIOS - COMMAND
  13399. AX = E000h
  13400. CX = 0
  13401. DL = drive number (80h,81h,82h,83h)
  13402. ES:BX = pointer to XBIOS Command Block (see #00297)
  13403. Return: CF clear if successful
  13404. CX = 1234h XBIOS Signature
  13405. CF set on error
  13406. Program: XBIOS is a driver in some versions of Disk Manager that is
  13407. loaded from the disk MBR, replacing the ROM BIOS disk support
  13408. e.g. adding LBA mode support, and read/write multiple.
  13409. SeeAlso: AH=F9h"SWBIOS"
  13410. Format of XBIOS Command Block:
  13411. Offset Size Description (Table 00297)
  13412. 00h BYTE function
  13413. 0Eh Get XBIOS Configuration Information
  13414. Return: buffer points to Ontrackr_Ref_Data structure
  13415. (see #00298)
  13416. 01h BYTE reserved (must be zero before function call)
  13417. 02h DWORD buffer pointer - Input or output depending on opcode
  13418. SeeAlso: #00298,#00299
  13419. Format of Ontrackr_Ref_Data structure:
  13420. Offset Size Description (Table 00298)
  13421. 00h WORD Size of structure (33h)
  13422. 02h BYTE VxD Chain mode
  13423. 03h 12 BYTEs Drive 1: Ontrackr_VxD_Data structure (see #00299)
  13424. 0Fh 12 BYTEs Drive 2: Ontrackr_VxD_Data structure
  13425. 1Bh 12 BYTEs Drive 3: Ontrackr_VxD_Data structure
  13426. 27h 12 BYTEs Drive 4: Ontrackr_VxD_Data structure (see #00299)
  13427. SeeAlso: #00297,#00299
  13428. Format of Ontrackr_VxD_Data structure:
  13429. Offset Size Description (Table 00299)
  13430. 00h BYTE INT13 drive number
  13431. 01h DWORD Delta skew value
  13432. 05h BYTE Physical heads (Word 3 of Identify Data)
  13433. 06h BYTE Physical sectors per track (Word 6 of Identify Data)
  13434. 07h BYTE Multiple Block Size (Blocking factor)
  13435. 08h BYTE Read/Write Multiple disable flags
  13436. 00001000b drive supports r/w multiple
  13437. 00000100b do not use read multiple
  13438. 00000010b do not use write multiple
  13439. 09h WORD Base port address (1F0/170)
  13440. 0Bh BYTE Hardware interrupt channel (14/15)
  13441. SeeAlso: #00298
  13442. --------v-13EC00-----------------------------
  13443. INT 13 - VIRUS - "Tiso" - INSTALLATION CHECK
  13444. AX = EC00h
  13445. Return: CF clear if installed
  13446. SeeAlso: AH=F2h,INT 12/AX=4350h/BX=4920h
  13447. --------d-13EE-------------------------------
  13448. INT 13 - SWBIOS - SET 1024-CYLINDER FLAG
  13449. AH = EEh
  13450. DL = drive number (80h, 81h)
  13451. Return: CF clear
  13452. AH = 00h
  13453. Program: SWBIOS is a TSR by Ontrack Computer Systems
  13454. Desc: the following INT 13 call will add 1024 to the specified cylinder
  13455. number to get the actual cylinder number desired
  13456. Notes: the flag is cleared by all INT 13 calls except AH=EEh and AH=EFh
  13457. Disk Manager also supports these calls
  13458. this function is also supported by HyperDisk v4.01+ and PC-Cache v5.5+,
  13459. in order to allow caching of drives using SWBIOS to access more than
  13460. 1024 cylinders
  13461. for software which supports that call, this function is equivalent to
  13462. calling AH=EFh with CX=0400h
  13463. SeeAlso: AH=F9h,AH=FEh,INT 16/AX=FFA5h/CX=1111h,INT 2F/AX=DF00h
  13464. Index: PC-Cache;huge disks|Disk Manager
  13465. --------c-13EF-------------------------------
  13466. INT 13 - Ontrack Drive Rocket - SET CYLINDER OFFSET
  13467. AH = EFh
  13468. CX = cylinder offset for next INT 13 call
  13469. DL = drive number (80h, 81h)
  13470. Return: CF clear
  13471. AH = 00h
  13472. Program: Drive Rocket is a drive accelerator by Ontrack Computer Systems for
  13473. IDE drives supporting the read multiple and write multiple commands
  13474. Desc: the following INT 13 call will add the number given by this call to
  13475. the specified cylinder to get the actual cylinder number, then reset
  13476. the offset to zero
  13477. Note: this function is also supported by the NOW! disk cache, and presumably
  13478. newer versions of SWBIOS and Disk Manager
  13479. for software which supports this call, AH=EEh is equivalent to calling
  13480. this function with CX=0400h
  13481. the cylinder offset is reset to 0 by all INT 13 called except AH=EEh
  13482. and AH=EFh
  13483. SeeAlso: AX=7B00h
  13484. --------v-13F2-------------------------------
  13485. INT 13 - VIRUS - "Neuroquila" - INSTALLATION CHECK
  13486. AH = F2h
  13487. Return: CF ??? if installed
  13488. SeeAlso: AX=EC00h,INT 12/AX=4350h/BX=4920h,INT 21/AX=0B56h
  13489. --------d-13F9-------------------------------
  13490. INT 13 - SWBIOS - INSTALLATION CHECK
  13491. AH = F9h
  13492. DL = drive number (80h,81h)
  13493. Return: CF clear
  13494. DX = configuration word
  13495. bit 15 set if other SWBIOS extensions available
  13496. CF set on error
  13497. Program: SWBIOS is a TSR by Ontrack Computer Systems
  13498. XBIOS is a driver in some versions of Disk Manager that is
  13499. loaded from the disk MBR, replacing the ROM BIOS disk support
  13500. eg adding LBA mode support, and read/write multiple.
  13501. Note: Disk Manager also supports these calls
  13502. SeeAlso: AH=EEh,AX=E000h"XBIOS",AH=FFh"EZ-Drive"
  13503. Index: Disk Manager
  13504. --------v-13FA--DX5945-----------------------
  13505. INT 13 - PC Tools v8+ VSAFE, VWATCH - API
  13506. AH = FAh
  13507. DX = 5945h
  13508. AL = function (00h-07h)
  13509. Return: varies by function
  13510. if not installed:
  13511. CF set
  13512. AH = 01h
  13513. Note: this API is identical to the ones on INT 16/AH=FAh and INT 21/AH=FAh,
  13514. so it is listed in its entirety under INT 16/AX=FA00h and following
  13515. SeeAlso: INT 16/AX=FA00h
  13516. --------v-13FD50------------------------
  13517. INT 13 - VIRUS - "Predator" - INSTALLATION CHECK
  13518. AX = FD50h
  13519. Return: AX = 50FDh if resident
  13520. SeeAlso: AX=5001h"VIRUS",INT 16/AH=DDh"VIRUS"
  13521. --------d-13FE-------------------------------
  13522. INT 13 - SWBIOS - GET EXTENDED CYLINDER COUNT
  13523. AH = FEh
  13524. DL = drive number (80h, 81h)
  13525. Return: CF clear
  13526. DX = number of cylinders beyond 1024 on drive
  13527. Program: SWBIOS is a TSR by Ontrack Computer Systems
  13528. Notes: standard INT 13/AH=08h will return a cylinder count truncated to 1024
  13529. BIOS without this extension would return count modulo 1024
  13530. Disk Manager also supports these calls
  13531. SeeAlso: AH=EEh
  13532. ----------13FF-------------------------------
  13533. INT 13 - EZ-Drive - INSTALLATION CHECK
  13534. AH = FFh
  13535. DL = drive number (80h)
  13536. Return: CF clear
  13537. AX = AA55h
  13538. ES:BX -> string "AERMH13Vxx", where xx is the version number of
  13539. the EZ-Drive driver
  13540. CF set on error
  13541. Program: EZ-Drive is a driver by Micro House that is loaded from the
  13542. hard disk MBR, replacing the ROM BIOS disk support, eg adding
  13543. LBA mode support, and read/write multiple.
  13544. Note: this function is called by the Windows95 Master Boot Record
  13545. SeeAlso: AX=E000h"XBIOS",AH=F9h"SWBIOS"
  13546. --------B-13FF-------------------------------
  13547. INT 13 - IBM SurePath BIOS - Officially "Private" Function
  13548. AH = FFh
  13549. --------U-13FFFFBHAA-------------------------
  13550. INT 13 - UNIQUE UX Turbo Utility - SET TURBO MODE
  13551. AX = FFFFh
  13552. BH = AAh
  13553. BL = subfunction
  13554. 00h installation check
  13555. Return: AX = 1234h if installed
  13556. 01h turn on Turbo mode
  13557. 02h turn off Turbo mode
  13558. 03h set Turbo mode according to hardware switch
  13559. 04h set disk access to Turbo mode
  13560. 05h set disk access to Normal mode
  13561. Return: nothing
  13562. SeeAlso: INT 15/AH=DFh
  13563. Index: installation check;UNIQUE UX Turbo Utility
  13564. --------S-14---------------------------------
  13565. INT 14 - SERIAL - Digiboard DigiCHANNEL PC/X* Extender INT 14 (XAPCM232.SYS)
  13566. InstallCheck: determine whether the "~DOSXAM~" character device exists
  13567. Index: installation check;Digiboard DigiCHANNEL
  13568. --------S-1400-------------------------------
  13569. INT 14 - SERIAL - INITIALIZE PORT
  13570. AH = 00h
  13571. AL = port parameters (see #00300)
  13572. DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)
  13573. Return: AH = line status (see #00304)
  13574. FFh if error on Digiboard XAPCM232.SYS
  13575. AL = modem status (see #00305)
  13576. Notes: default handler is at F000h:E739h in IBM PC and 100% compatible BIOSes
  13577. since the PCjr supports a maximum of 4800 bps, attempting to set 9600
  13578. bps will result in 4800 bps
  13579. various network and serial-port drivers support the standard BIOS
  13580. functions with interrupt-driven I/O instead of the BIOS's polled I/O
  13581. the 04/08/93 Compaq system ROM uses only the low two bits of DX
  13582. SeeAlso: AH=04h"SERIAL",AH=04h"MultiDOS",AH=05h"SERIAL",AH=57h
  13583. SeeAlso: AX=8000h"ARTICOM",AH=81h"COMM-DRV",AH=82h"COURIERS",AH=8Ch
  13584. SeeAlso: MEM 0040h:0000h,PORT 03F8h"Serial"
  13585. Bitfields for serial port parameters:
  13586. Bit(s) Description (Table 00300)
  13587. 7-5 data rate (110,150,300,600,1200,2400,4800,9600 bps)
  13588. 4-3 parity (00 or 10 = none, 01 = odd, 11 = even)
  13589. 2 stop bits (set = 2, clear = 1)
  13590. 1-0 data bits (00 = 5, 01 = 6, 10 = 7, 11 = 8)
  13591. SeeAlso: #00302,#00307,#00308,#00309
  13592. --------S-1400-------------------------------
  13593. INT 14 - FOSSIL (Fido/Opus/Seadog Standard Interface Level) - INITIALIZE
  13594. AH = 00h
  13595. AL = initializing parameters
  13596. 7 - 6 - 5 4 - 3 2 1 - 0
  13597. -BAUD RATE- PARITY STOP WORD
  13598. BITS LENGTH
  13599. 000 19200 bd 00 none 0: 1 00: 5
  13600. 001 38400 bd 01 odd 1: 2 01: 6
  13601. 010 300 bd 11 even 10: 7
  13602. 011 600 bd 11: 8
  13603. 100 1200 bd
  13604. 101 2400 bd
  13605. 110 4800 bd
  13606. 111 9600 bd (4800 on PCjr)
  13607. DX = port number (0-3 or FFh if only performing non-I/O setup)
  13608. Return: AH = RS-232 status code bits (see #00301)
  13609. AL = modem status bits
  13610. bit 3: always 1
  13611. bit 7: DCD - carrier detect
  13612. SeeAlso: #00300,AH=05h"FOSSIL",AH=81h"COMM-DRV",AH=82h"COURIERS"
  13613. Bitfields for FOSSIL RS-232 status:
  13614. Bit(s) Description (Table 00301)
  13615. 0 RDA - input data is available in buffer
  13616. 1 OVRN - data has been lost
  13617. 5 THRE - room is available in output buffer
  13618. 6 TSRE - output buffer empty
  13619. --------S-1400-------------------------------
  13620. INT 14 - Tandy 2000 - SERIAL - RESET COMM PORT
  13621. AH = 00h
  13622. AL = RS-232C parameters (see #00302)
  13623. DL = port number
  13624. DH = protocol
  13625. bit 0: use XON/XOFF on received data
  13626. bit 1: use XON/XOFF when transmitting
  13627. Return: AH = line status (see #00304)
  13628. AL = modem status (see #00305)
  13629. Note: this interrupt is identical to INT 53 on the Tandy 2000
  13630. SeeAlso: AH=04h"Tandy 2000",INT 53"Tandy 2000"
  13631. --------S-1400-------------------------------
  13632. INT 14 - MBBIOS - INITIALIZE PORT
  13633. AH = 00h
  13634. AL = port parameters (see #00302)
  13635. DX = port number
  13636. Return: AH = line status (see #00304)
  13637. AL = modem status (see #00305)
  13638. Note: MBBIOS was written by H. Roy Engehausen
  13639. SeeAlso: AH=04h"MBBIOS",AH=05h"MBBIOS",AH=09h"MBBIOS"
  13640. Bitfields for MBBIOS port parameters:
  13641. Bit(s) Description (Table 00302)
  13642. 7-5 data rate
  13643. (normally 110,150,300,600,1200,2400,4800,9600 bps;
  13644. 9600,14400,19200,28800,38400,57600,115200,330400 bps
  13645. if the high-speed option is set)
  13646. 4-3 parity (00 or 10 = none, 01 = odd, 11 = even)
  13647. 2 stop bits (set = 2, clear = 1)
  13648. 1-0 data bits (00 = 5, 01 = 6, 10 = 7, 11 = 8)
  13649. SeeAlso: #00300
  13650. --------N-1400--DXFFFF-----------------------
  13651. INT 14 - Connection Manager - MODIFY DEFAULT CONNECTION PARAMETERS
  13652. AH = 00h
  13653. DX = FFFFh
  13654. ES:DI -> vector string specifying new parameters
  13655. Return: AH = return code (00h,03h) (see #00303)
  13656. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  13657. serial ports over an IPX or NetBIOS-based network
  13658. Note: if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
  13659. function, but redirects the port over the network; if DX is any other
  13660. value, the call is chained
  13661. SeeAlso: AH=04h/DX=FFFFh,AH=08h/DX=FFFFh,AH=0Ah/DX=FFFFh
  13662. (Table 00303)
  13663. Values for Connection Manager return code:
  13664. 00h successful
  13665. 01h no such connection
  13666. 02h invalid connection ID
  13667. 03h invalid subvector found
  13668. 04h communication error (check BH)
  13669. 06h insufficient resources, retry later
  13670. FFh no data available
  13671. --------S-1401-------------------------------
  13672. INT 14 - SERIAL - WRITE CHARACTER TO PORT
  13673. AH = 01h
  13674. AL = character to write
  13675. DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)
  13676. Return: AH bit 7 clear if successful
  13677. AH bit 7 set on error
  13678. AH bits 6-0 = port status (see #00304)
  13679. Notes: various network and serial-port drivers support the standard BIOS
  13680. functions with interrupt-driven I/O instead of the BIOS's polled I/O
  13681. the 04/08/93 Compaq system ROM uses only the low two bits of DX
  13682. SeeAlso: AH=02h,AH=0Bh"FOSSIL",AX=8000h"ARTICOM",AH=89h,MEM 0040h:007Ch
  13683. --------N-1401--DXFFFF-----------------------
  13684. INT 14 - Connection Manager - SEND CHARACTER
  13685. AH = 01h
  13686. DX = FFFFh
  13687. BH = character to send
  13688. Return: AH = return code (00h-02h,06h) (see #00303)
  13689. Notes: if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
  13690. function, but redirects the port over the network; if DX is any other
  13691. value, the call is chained
  13692. this function is provided primarily for compatibility; AH=06h/DX=FFFFh
  13693. is the preferred function because it provides better performance
  13694. SeeAlso: AH=02h/DX=FFFFh,AH=06h/DX=FFFFh,AH=09h/DX=FFFFh
  13695. --------S-1402-------------------------------
  13696. INT 14 - SERIAL - READ CHARACTER FROM PORT
  13697. AH = 02h
  13698. AL = 00h (ArtiCom)
  13699. DX = port number (00h-03h (04h-43h for Digiboard XAPCM232.SYS))
  13700. Return: AH = line status (see #00304)
  13701. AL = received character if AH bit 7 clear
  13702. Notes: will timeout if DSR is not asserted, even if function 03h returns
  13703. data ready
  13704. various network and serial-port drivers support the standard BIOS
  13705. functions with interrupt-driven I/O instead of the BIOS's polled I/O
  13706. the 04/08/93 Compaq system ROM uses only the low two bits of DX
  13707. SeeAlso: AH=01h,AH=02h"FOSSIL",AH=84h,AH=FCh
  13708. --------S-1402-------------------------------
  13709. INT 14 - FOSSIL - RECEIVE CHARACTER WITH WAIT
  13710. AH = 02h
  13711. DX = port number (0-3)
  13712. Return: AL = character received
  13713. AH = 00h
  13714. SeeAlso: AH=01h,AH=02h"SERIAL"
  13715. --------N-1402--DXFFFF-----------------------
  13716. INT 14 - Connection Manager - RECEIVE CHARACTER
  13717. AH = 02h
  13718. DX = FFFFh
  13719. BH = character to send
  13720. Return: AH = return code (00h-02h,04h,FFh) (see #00303)
  13721. BH = line status (see #00304)
  13722. AL = received character (if any)
  13723. Notes: if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
  13724. function, but redirects the port over the network; if DX is any other
  13725. value, the call is chained
  13726. this function is provided primarily for compatibility; AH=07h/DX=FFFFh
  13727. is the preferred function because it provides better performance
  13728. SeeAlso: AH=02h/DX=FFFFh,AH=03h/DX=FFFFh,AH=06h/DX=FFFFh
  13729. --------S-1403-------------------------------
  13730. INT 14 - SERIAL - GET PORT STATUS
  13731. AH = 03h
  13732. AL = 00h (ArtiCom)
  13733. DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)
  13734. Return: AH = line status (see #00304)
  13735. AL = modem status (see #00305)
  13736. AX = 9E00h if disconnected (ArtiCom)
  13737. Note: the 04/08/93 Compaq system ROM uses only the low two bits of DX
  13738. SeeAlso: AH=00h,AH=07h"MultiDOS",AX=8000h"ARTICOM",AH=81h"COURIERS",AX=FD02h
  13739. Bitfields for serial line status:
  13740. Bit(s) Description (Table 00304)
  13741. 7 timeout
  13742. 6 transmit shift register empty
  13743. 5 transmit holding register empty
  13744. 4 break detected
  13745. 3 framing error
  13746. 2 parity error
  13747. 1 overrun error
  13748. 0 receive data ready
  13749. Note: for COMM-DRV, if bit 7 is set, an error occurred, and may be retrieved
  13750. through a separate call (see AX=8000h"COMM-DRV")
  13751. Bitfields for modem status:
  13752. Bit(s) Description (Table 00305)
  13753. 7 carrier detect
  13754. 6 ring indicator
  13755. 5 data set ready
  13756. 4 clear to send
  13757. 3 delta carrier detect
  13758. 2 trailing edge of ring indicator
  13759. 1 delta data set ready
  13760. 0 delta clear to send
  13761. --------N-1403--DXFFFF-----------------------
  13762. INT 14 - Connection Manager - RETURN COMMUNICATION PORT STATUS
  13763. AH = 03h
  13764. DX = FFFFh
  13765. AL = connection ID
  13766. Return: AH = return code (00h-02h) (see #00303)
  13767. BH = line status (see #00306)
  13768. BL = modem status (see #00305) (only bits 4,5,7; all others zero)
  13769. Notes: if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
  13770. function, but redirects the port over the network; if DX is any other
  13771. value, the call is chained
  13772. SeeAlso: AH=00h/DX=FFFFh,AH=04h/DX=FFFFh,AH=0Ah/DX=FFFFh
  13773. Bitfields for Connection Manager line status:
  13774. Bit(s) Description (Table 00306)
  13775. 7 CTS changed
  13776. 6 current CTS state
  13777. 5 timeout
  13778. 4 break
  13779. 3 framing error
  13780. 2 parity error
  13781. 1 overrun
  13782. 0 current carrier state (0 active, 1 no carrier)
  13783. --------S-1404-------------------------------
  13784. INT 14 - SERIAL - EXTENDED INITIALIZE (CONVERTIBLE,PS)
  13785. AH = 04h
  13786. AL = break status
  13787. 00h if break
  13788. 01h if no break
  13789. BH = parity (see #00307)
  13790. BL = number of stop bits
  13791. 00h one stop bit
  13792. 01h two stop bits (1.5 if 5 bit word length)
  13793. CH = word length (see #00308)
  13794. CL = bps rate (see #00309)
  13795. DX = port number
  13796. Return: AX = port status code (see #00304,#00305)
  13797. SeeAlso: AH=00h,AH=1Eh,AX=8000h"ARTICOM"
  13798. (Table 00307)
  13799. Values for serial port parity:
  13800. 00h no parity
  13801. 01h odd parity
  13802. 02h even parity
  13803. 03h stick parity odd
  13804. 04h stick parity even
  13805. SeeAlso: #00300,#00308,#00309,#00310
  13806. (Table 00308)
  13807. Values for serial port word length:
  13808. 00h 5 bits
  13809. 01h 6 bits
  13810. 02h 7 bits
  13811. 03h 8 bits
  13812. SeeAlso: #00300,#00307,#00309,#00345
  13813. (Table 00309)
  13814. Values for serial port bps rate:
  13815. 00h 110 (19200 if ComShare installed)
  13816. 01h 150 (38400 if ComShare installed)
  13817. 02h 300
  13818. 03h 600 (14400 if ComShare installed)
  13819. 04h 1200
  13820. 05h 2400
  13821. 06h 4800 (28800 if ComShare installed)
  13822. 07h 9600
  13823. 08h 19200
  13824. ---ComShare---
  13825. 09h 38400
  13826. 0Ah 57600
  13827. 0Bh 115200
  13828. SeeAlso: #00300,#00307,#00309,#00346,#00353,AH=36h,#00364,#00606,#02923
  13829. --------S-1404-------------------------------
  13830. INT 14 - Tandy 2000 - SERIAL - FLUSH COMM BUFFER
  13831. AH = 04h
  13832. DL = port number
  13833. DH = protocol
  13834. bit 0: use XON/XOFF on received data
  13835. bit 1: use XON/XOFF when transmitting
  13836. Return: nothing
  13837. Desc: clears the serial interface buffer
  13838. Note: this interrupt is identical to INT 53 on the Tandy 2000
  13839. SeeAlso: AH=00h"Tandy 2000",INT 53"Tandy 2000"
  13840. --------S-1404-------------------------------
  13841. INT 14 - FOSSIL - INITIALIZE DRIVER
  13842. AH = 04h
  13843. DX = port number
  13844. optionally BX=4F50h
  13845. ES:CX -> byte to be set upon ^C
  13846. Return: AX = 1954h (if successful)
  13847. BL = maximum function number supported (excluding 7Eh and above)
  13848. BH = revision of FOSSIL specification supported
  13849. DTR is raised
  13850. Note: the word at offset 6 in the interrupt handler contains 1954h, and the
  13851. following byte contains the maximum function number supported; this
  13852. can serve as an installation check
  13853. SeeAlso: AH=05h"FOSSIL",AH=1Ch,INT 11/AH=BCh
  13854. Index: installation check;FOSSIL
  13855. --------S-1404-------------------------------
  13856. INT 14 - MultiDOS Plus IODRV - INITIALIZE PORT
  13857. AH = 04h
  13858. Return: port initialized; if Hayes-compatible modem, a connection has been
  13859. established
  13860. Note: the port number is stored at offset BEh in the Task Control Block
  13861. (see #00456 at INT 15/AH=13h"MultiDOS")
  13862. SeeAlso: AH=00h,AH=05h"MultiDOS",AH=20h"MultiDOS",INT 15/AH=13h"MultiDOS"
  13863. --------S-1404-------------------------------
  13864. INT 14 - Digiboard DigiCHANNEL PC/X* - CHANGE BAUD RATE
  13865. AH = 04h
  13866. AL = initializing parameters (see #00310)
  13867. BX = baud rate
  13868. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  13869. Return: AH = status
  13870. 00h successful
  13871. FFh error
  13872. SeeAlso: AH=05h"Digiboard"
  13873. Bitfields for Digiboard initializing parameters:
  13874. Bit(s) Description (Table 00310)
  13875. 7-5 unused
  13876. 4-3 parity (00 none, 01 odd, 11 even)
  13877. 2 stop bits (0 = one, 1 = two)
  13878. 1-0 data bits (00 = five, 01 = six, 10 = seven, 11 = eight)
  13879. SeeAlso: #00307,#00308
  13880. --------S-1404-------------------------------
  13881. INT 14 - MBBIOS - INSTALLATION CHECK
  13882. AH = 04h
  13883. DX = port number
  13884. Return: AX = AA55h if installed on specified port
  13885. SeeAlso: AH=00h"MBBIOS",AH=09h"MBBIOS"
  13886. --------N-1404--DXFFFF-----------------------
  13887. INT 14 - Connection Manager - OPEN COMMUNICATION
  13888. AH = 04h
  13889. DX = FFFFh
  13890. ES:DI -> Connection Request protocol vector (see #00311)
  13891. Return: AH = return code
  13892. 00h successful
  13893. AL = connection ID
  13894. BH = connection type
  13895. 00h direct connection or no dialing
  13896. 01h Connection Server dialed phone
  13897. 01h no response from Connection Server
  13898. 03h invalid request
  13899. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  13900. serial ports over an IPX or NetBIOS-based network
  13901. Desc: initiate a connection to the Connection Server listed in the current
  13902. Client parameter set
  13903. Notes: if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
  13904. function, but redirects the port over the network; if DX is any other
  13905. value, the call is chained
  13906. all subvectors of the Connection Request vector are optional; if
  13907. missing, default values are provided by the default connection
  13908. parameter set
  13909. SeeAlso: AH=00h/DX=FFFFh,AH=05h/DX=FFFFh,AH=06h/DX=FFFFh,AH=07h/DX=FFFFh
  13910. SeeAlso: AH=0Ah/DX=FFFFh,AH=0Ch/DX=FFFFh
  13911. Format of Connection Manager protocol command vector:
  13912. Offset Size Description (Table 00311)
  13913. 00h WORD (big-endian) total length of command (including this word)
  13914. 02h WORD (big-endian) command code
  13915. EF01h Connection Request
  13916. EF06h Modify Connection Parameters
  13917. 04h N BYTEs list of subvectors (see #00313)
  13918. allowable subvector types are 01h-04h,17h,18h for command code
  13919. EF01h; 03h,04h for command code EF06h (see #00312)
  13920. (Table 00312)
  13921. Values for Connection Manager subvector type code:
  13922. 01h Connection ID
  13923. 02h Destination ID
  13924. 03h Asynchronous line parameters
  13925. 04h Data transfer parameters
  13926. 09h Line speed
  13927. 0Ah Serial coding
  13928. 0Bh Packet size
  13929. 0Ch Timers
  13930. 0Dh Special characters
  13931. 0Eh Target ID
  13932. 0Fh Telephone number
  13933. 10h ASCII destination ID
  13934. 11h Parity
  13935. 12h Bits per character
  13936. 13h Number of stop bits
  13937. 14h Packet timer
  13938. 15h Intercharacter timer
  13939. 17h Flags
  13940. 18h Parameter ranges
  13941. 19h Flow control
  13942. Format of Connection Manager subvector:
  13943. Offset Size Description (Table 00313)
  13944. 00h BYTE length of subvector
  13945. 01h BYTE type code (see #00312)
  13946. 02h N-2 BYTEs data, which may include subvectors
  13947. SeeAlso: #00314,#00315,#00316,#00317,#00318,#00319,#00320,#00321,#00322,#00323,#00324
  13948. SeeAlso: #00325,#00326,#00328,#00329,#00330,#00331,#00332,#00333,#00311
  13949. Format of Connection ID subvector:
  13950. Offset Size Description (Table 00314)
  13951. 00h BYTE 03h (length)
  13952. 01h BYTE 01h (subvector "Connection ID")
  13953. 02h BYTE connection ID
  13954. SeeAlso: #00313
  13955. Format of Destination ID subvector:
  13956. Offset Size Description (Table 00315)
  13957. 00h BYTE length
  13958. 01h BYTE 02h (subvector "Destination ID")
  13959. 02h N BYTEs subvector(s) of type 0Eh, 0Fh, or 10h
  13960. SeeAlso: #00313
  13961. Format of Asynchronous line parameters subvector:
  13962. Offset Size Description (Table 00316)
  13963. 00h BYTE length
  13964. 01h BYTE 03h (subvector "Asynchronous line parameters")
  13965. 02h N BYTEs subvector(s) of type 09h, 0Ah, or 19h
  13966. SeeAlso: #00313
  13967. Format of Data transfer parameters subvector:
  13968. Offset Size Description (Table 00317)
  13969. 00h BYTE length
  13970. 01h BYTE 04h (subvector "Data transfer parameters")
  13971. 02h N BYTEs subvector(s) of type 0Bh, 0Ch, or 0Dh
  13972. SeeAlso: #00313
  13973. Format of Line speed subvector:
  13974. Offset Size Description (Table 00318)
  13975. 00h BYTE 04h (length)
  13976. 01h BYTE 09h (subvector "Line speed")
  13977. 02h WORD bit map, highest set bit selects speed
  13978. bit 0: 2400
  13979. bits 1-7: 1800, 1200, 600, 300, 115200, 150, 110 bps
  13980. bits 8-15: 57600, 38400, 19200, 14400, 9600, 7200, 4800, 3600
  13981. SeeAlso: #00313
  13982. Format of Serial coding subvector:
  13983. Offset Size Description (Table 00319)
  13984. 00h BYTE length
  13985. 01h BYTE 0Ah (subvector "Serial coding")
  13986. 02h N BYTEs subvector(s) of type 11h, 12h, or 13h
  13987. SeeAlso: #00313
  13988. Format of Packet size subvector:
  13989. Offset Size Description (Table 00320)
  13990. 00h BYTE 04h (length)
  13991. 01h BYTE 0Bh (subvector "Packet size")
  13992. 02h WORD (big-endian) packet size, 1 to 1024
  13993. SeeAlso: #00313
  13994. Format of Timers subvector:
  13995. Offset Size Description (Table 00321)
  13996. 00h BYTE length
  13997. 01h BYTE 0Ch (subvector "Timers")
  13998. 02h 8 BYTEs subvector of type 14h or 15h
  13999. SeeAlso: #00313
  14000. Format of Special characters subvector:
  14001. Offset Size Description (Table 00322)
  14002. 00h BYTE length
  14003. 01h BYTE 0Dh (subvector "Special characters")
  14004. 02h N BYTEs list of ASCII characters to be used as EOM or EOB
  14005. SeeAlso: #00313
  14006. Format of Target ID:
  14007. Offset Size Description (Table 00323)
  14008. 00h BYTE length
  14009. 01h BYTE 0Eh (subvector "Target ID")
  14010. 02h N BYTEs target ID, 1-16 bytes
  14011. SeeAlso: #00313
  14012. Format of Telephone number subvector:
  14013. Offset Size Description (Table 00324)
  14014. 00h BYTE length
  14015. 01h BYTE 0Fh (subvector "Telephone number")
  14016. 02h N BYTEs telephone number
  14017. SeeAlso: #00313
  14018. Format of ASCII destination ID subvector:
  14019. Offset Size Description (Table 00325)
  14020. 00h BYTE length
  14021. 01h BYTE 10h (subvector "ASCII destination ID")
  14022. 02h N BYTEs destination ID
  14023. SeeAlso: #00313
  14024. Format of Parity subvector:
  14025. Offset Size Description (Table 00326)
  14026. 00h BYTE 03h (length)
  14027. 01h BYTE 11h (subvector "Parity")
  14028. 02h BYTE parity type (see #00327)
  14029. SeeAlso: #00313
  14030. Bitfields for Connection Manager parity type:
  14031. Bit(s) Description (Table 00327)
  14032. 7 odd
  14033. 6 even
  14034. 5 mark
  14035. 4 space
  14036. 3 none
  14037. SeeAlso: #00326
  14038. Format of Bits per character subvector:
  14039. Offset Size Description (Table 00328)
  14040. 00h BYTE 03h (length)
  14041. 01h BYTE 12h (subvector "Bits per character")
  14042. 02h BYTE bits per character
  14043. bit 7: seven
  14044. bit 6: eight
  14045. SeeAlso: #00313
  14046. Format of Number of stop bits subvector:
  14047. Offset Size Description (Table 00329)
  14048. 00h BYTE 03h (length)
  14049. 01h BYTE 13h (subvector "Number of stop bits")
  14050. 02h BYTE stop bits
  14051. bit 7: one
  14052. bit 6: 1.5
  14053. bit 5: two
  14054. SeeAlso: #00313
  14055. Format of Packet timer and Intercharacter timer subvectors:
  14056. Offset Size Description (Table 00330)
  14057. 00h BYTE 04h (length)
  14058. 01h BYTE subvector type
  14059. 14h Packet timer
  14060. 15h Intercharacter timer
  14061. 02h WORD (big-endian) unit of value representing 20ms
  14062. SeeAlso: #00313
  14063. Format of Flags subvector:
  14064. Offset Size Description (Table 00331)
  14065. 00h BYTE 03h (length)
  14066. 01h BYTE 17h (subvector "Flags")
  14067. 02h BYTE flags
  14068. bit 7: queueing requested
  14069. SeeAlso: #00313
  14070. Format of Parameter ranges subvector:
  14071. Offset Size Description (Table 00332)
  14072. 00h BYTE length
  14073. 01h BYTE 18h (subvector "Parameter ranges")
  14074. 02h N BYTEs subvector(s) of type 09h, 11h, 12h, or 13h
  14075. SeeAlso: #00313
  14076. Format of Flow control subvector:
  14077. Offset Size Description (Table 00333)
  14078. 00h BYTE length (02h-04h)
  14079. 01h BYTE 19h (subvector "Flow control")
  14080. 02h BYTE XOFF character
  14081. 03h BYTE XON character
  14082. Note: if length is 02h, flow control is disabled; if length is 03h, any
  14083. character will be accepted as XON after an XOFF
  14084. SeeAlso: #00313
  14085. --------S-140400-----------------------------
  14086. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - INSTALLATION CHECK
  14087. AX = 0400h
  14088. Return: AX = 0FF0h
  14089. SeeAlso: AX=0401h,AX=0408h
  14090. --------S-140401-----------------------------
  14091. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - INITIALIZE MODE
  14092. AX = 0401h
  14093. CX = mode
  14094. Return: nothing
  14095. SeeAlso: AX=0400h,AX=0402h
  14096. --------S-140402-----------------------------
  14097. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - EXTENDED INITIALIZE
  14098. AX = 0402h
  14099. CL = parameters
  14100. Return: nothing
  14101. SeeAlso: AX=0400h,AX=0401h
  14102. --------S-140403-----------------------------
  14103. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - SET TIMEOUT
  14104. AX = 0403h
  14105. CX = timeout
  14106. Return: nothing
  14107. SeeAlso: AX=0400h
  14108. --------S-140404-----------------------------
  14109. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - CLEAR THE RECEIVE BUFFER
  14110. AX = 0404h
  14111. Return: nothing
  14112. SeeAlso: AX=0400h,AX=0405h,AX=0406h
  14113. --------S-140405-----------------------------
  14114. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - GET RECEIVE BUFFER COUNT
  14115. AX = 0405h
  14116. Return: AX = number of characters in buffer
  14117. SeeAlso: AX=0400h,AX=0404h,AX=0407h
  14118. --------S-140406-----------------------------
  14119. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - CLEAR THE TRANSMIT BUFFER
  14120. AX = 0406h
  14121. Return: nothing
  14122. SeeAlso: AX=0400h,AX=0404h,AX=0407h
  14123. --------S-140407-----------------------------
  14124. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - GET TRANSMIT BUFFER COUNT
  14125. AX = 0407h
  14126. Return: AX = number of characters in the buffer
  14127. SeeAlso: AX=0400h,AX=0405h,AX=0406h
  14128. --------S-140408-----------------------------
  14129. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - UNINSTALL
  14130. AX = 0408h
  14131. Return: nothing
  14132. SeeAlso: AX=0400h
  14133. --------S-1405-------------------------------
  14134. INT 14 - SERIAL - EXTENDED COMMUNICATION PORT CONTROL (CONVERTIBLE,PS)
  14135. AH = 05h
  14136. AL = function
  14137. 00h read modem control register
  14138. Return: BL = modem control register (see #00334)
  14139. AH = status
  14140. 01h write modem control register
  14141. BL = modem control register (see #00334)
  14142. Return: AX = status
  14143. DX = port number
  14144. Note: also supported by ArtiCom
  14145. SeeAlso: AH=00h,AH=1Fh,AX=8000h"ARTICOM",AH=FBh
  14146. Bitfields for modem control register:
  14147. Bit(s) Description (Table 00334)
  14148. 0 data terminal ready
  14149. 1 request to send
  14150. 2 OUT1
  14151. 3 OUT2
  14152. 4 LOOP
  14153. 5-7 reserved
  14154. --------S-1405-------------------------------
  14155. INT 14 - FOSSIL - DEINITIALIZE DRIVER
  14156. AH = 05h
  14157. DX = port number
  14158. Return: none
  14159. DTR is not affected
  14160. SeeAlso: AH=00h,AH=04h"FOSSIL",AH=1Dh,AH=8Dh
  14161. --------S-1405-------------------------------
  14162. INT 14 - MultiDOS Plus IODRV - READ CHARACTER FROM PORT
  14163. AH = 05h
  14164. AL = timeout in seconds (00h = never)
  14165. Return: AL = status
  14166. 00h successful
  14167. AH = character read
  14168. 01h read error
  14169. 02h timed out
  14170. other modem status (CTS, DSR) changed
  14171. Note: the port number is stored at offset BEh in the Task Control Block
  14172. SeeAlso: AH=02h,AH=04h"MultiDOS",AH=06h"MultiDOS",AH=22h"MultiDOS"
  14173. SeeAlso: INT 15/AH=13h"MultiDOS"
  14174. --------S-1405-------------------------------
  14175. INT 14 - Digiboard DigiCHANNEL PC/X* - CHANGE PROTOCOL
  14176. AH = 05h
  14177. AL = protocol (see #00335)
  14178. BH = new XOFF character (00h = current)
  14179. BL = new XON character (00h = current)
  14180. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  14181. Return: AH = status
  14182. 00h successful
  14183. FFh error
  14184. SeeAlso: AH=04h"Digiboard"
  14185. Bitfields for Digiboard protocol:
  14186. Bit(s) Description (Table 00335)
  14187. 7-4 unused
  14188. 3 RTS/CTS
  14189. 2 DSR
  14190. 1,0 XON/XOFF
  14191. --------S-1405-------------------------------
  14192. INT 14 - MBBIOS - DROP DTR AND RTS
  14193. AH = 05h
  14194. DX = port number
  14195. Return: none
  14196. SeeAlso: AH=00h"MBBIOS",AH=06h"MBBIOS",AH=06h"FOSSIL"
  14197. --------S-1405-------------------------------
  14198. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - CHANGE PORT PROTOCOL
  14199. AH = 05h
  14200. AL = new port protocol (see #00336)
  14201. BH = new XOFF character
  14202. BL = new XON character
  14203. DX = port number
  14204. Return: AH = FFh if invalid protocol
  14205. SeeAlso: AH=00h,AH=04h"SERIAL",AH=06h"PC-MOS"
  14206. Bitfields for PC-MOS/386 serial port protocol:
  14207. Bit(s) Description (Table 00336)
  14208. 7 set to enable/disable CD monitoring, clear to set protocol
  14209. ---bit 7 set---
  14210. 4 CD monitoring enabled
  14211. 5 automatic restart enabled
  14212. ---bit 7 clear---
  14213. 0 receive XON/XOFF
  14214. 1 transmit XON/XOFF
  14215. 2 DTR/DSR
  14216. 3 RTS/CTS
  14217. --------N-1405--DXFFFF-----------------------
  14218. INT 14 - Connection Manager - CLOSE COMMUNICATION
  14219. AH = 05h
  14220. DX = FFFFh
  14221. AL = connection ID
  14222. Return: AH = return code
  14223. 00h successful
  14224. 01h no such connection
  14225. 02h invalid connection ID
  14226. AL = correct connection ID
  14227. Desc: terminate existing connection to allow another one to be established
  14228. Note: if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
  14229. function, but redirects the port over the network; if DX is any other
  14230. value, the call is chained
  14231. SeeAlso: AH=04h/DX=FFFFh,AH=0Dh/DX=FFFFh
  14232. --------S-1406-------------------------------
  14233. INT 14 - FOSSIL - RAISE/LOWER DTR
  14234. AH = 06h
  14235. DX = port
  14236. AL = DTR state to be set
  14237. 00h = lower
  14238. 01h = raise
  14239. Return: nothing
  14240. SeeAlso: AH=05h"MBBIOS",AH=1Ah
  14241. --------S-1406-------------------------------
  14242. INT 14 - MultiDOS Plus IODRV - WRITE CHARACTER TO PORT
  14243. AH = 06h
  14244. AL = character
  14245. Return: AL = status
  14246. 00h successful
  14247. Notes: the port number is stored at offset BEh in the Task Control Block
  14248. if output queue is full, the calling task is blocked until the
  14249. character can be stored
  14250. SeeAlso: AH=01h,AH=04h"MultiDOS",AH=05h"MultiDOS",AH=21h"MultiDOS"
  14251. SeeAlso: INT 15/AH=13h"MultiDOS"
  14252. --------S-1406-------------------------------
  14253. INT 14 - MBBIOS - RAISE DTR AND RTS
  14254. AH = 06h
  14255. DX = port number
  14256. Return: none
  14257. SeeAlso: AH=05h"MBBIOS",AH=07h"MBBIOS"
  14258. --------S-1406-------------------------------
  14259. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - DRIVER 'ID' FUNCTION
  14260. AH = 06h
  14261. DX = port number
  14262. Return: AH bit 7 set
  14263. AL = number of highest function supported by driver
  14264. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  14265. operating system by The Software Link, Inc.
  14266. SeeAlso: AH=18h"PC-MOS"
  14267. --------N-1406-------------------------------
  14268. INT 14 - TelAPI - WRITE BLOCK
  14269. AH = 06h
  14270. CX = number of characters to write
  14271. DX = port number
  14272. ES:DI -> buffer containing data
  14273. Return: AX = number of characters actually sent (negative on error)
  14274. CX = ???
  14275. SeeAlso: AH=07h"TelAPI",AH=E0h"TelAPI",AH=E3h"TelAPI"
  14276. --------N-1406--DXFFFF-----------------------
  14277. INT 14 - Connection Manager - SEND CHARACTER BLOCK
  14278. AH = 06h
  14279. DX = FFFFh
  14280. AL = connection ID
  14281. CX = number of characters to send
  14282. ES:DI -> buffer containing data to be sent
  14283. Return: AH = return code (see #00303)
  14284. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  14285. serial ports over an IPX or NetBIOS-based network
  14286. SeeAlso: AH=04h/DX=FFFFh,AH=07h/DX=FFFFh,AH=09h/DX=FFFFh
  14287. --------S-1407-------------------------------
  14288. INT 14 - FOSSIL - RETURN TIMER TICK PARAMETERS
  14289. AH = 07h
  14290. Return: AL = timer tick interrupt number
  14291. AH = ticks per second on interrupt number in AL
  14292. DX = approximate number of milliseconds per tick
  14293. SeeAlso: AH=16h
  14294. --------S-1407-------------------------------
  14295. INT 14 - MultiDOS Plus IODRV - GET PORT STATUS
  14296. AH = 07h
  14297. Return: CL = modem status (see #00305)
  14298. CH = character at head of input queue (if any)
  14299. DX = number of characters in input queue
  14300. Note: the port number is stored at offset BEh in the Task Control Block
  14301. SeeAlso: AH=03h,AH=05h"MultiDOS",AH=08h"MultiDOS",AH=09h"MultiDOS"
  14302. SeeAlso: AH=23h"MultiDOS",INT 15/AH=13h"MultiDOS"
  14303. --------S-1407-------------------------------
  14304. INT 14 - MBBIOS - SEND BREAK
  14305. AH = 07h
  14306. DX = port number
  14307. Return: none
  14308. SeeAlso: AH=06h"MBBIOS",AH=FAh"EBIOS"
  14309. --------S-1407-------------------------------
  14310. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - SEND RS-232 BREAK
  14311. AH = 07h
  14312. BX = duration of break in clock ticks
  14313. DX = port number
  14314. Return: nothing
  14315. --------N-1407-------------------------------
  14316. INT 14 - TelAPI - READ BLOCK
  14317. AH = 07h
  14318. CX = length of buffer in bytes
  14319. DX = port number
  14320. ES:DI -> buffer for data
  14321. Return: AX > 0000h number of characters actually read
  14322. AX = 0000h host has closed connection
  14323. AX < 0000h error code (see #00397)
  14324. CX = ???
  14325. Note: translates CRLF into local EOL if the connection is in ASCII mode,
  14326. negotiates various Telnet options, and immediately executes several
  14327. different Telnet action commands
  14328. SeeAlso: AH=06h"TelAPI",AH=E0h"TelAPI",AH=E2h"TelAPI"
  14329. --------N-1407--DXFFFF-----------------------
  14330. INT 14 - Connection Manager - RECEIVE CHARACTER BLOCK
  14331. AH = 07h
  14332. DX = FFFFh
  14333. AL = connection ID
  14334. BL = flag
  14335. 00h wait for data
  14336. nonzero do not wait if no data avaiable
  14337. CX = size of receive buffer
  14338. ES:DI -> buffer for received characters
  14339. Return: AH = return code (00h-02h,04h,FFh) (see #00303)
  14340. BH = line status (see #00306)
  14341. CX = number of characters received
  14342. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  14343. serial ports over an IPX or NetBIOS-based network
  14344. SeeAlso: AH=01h/DX=FFFFh,AH=04h/DX=FFFFh,AH=06h/DX=FFFFh
  14345. --------S-1408-------------------------------
  14346. INT 14 - FOSSIL - FLUSH OUTPUT BUFFER WAITING TILL ALL OUTPUT IS DONE
  14347. AH = 08h
  14348. DX = port number
  14349. Return: nothing
  14350. SeeAlso: AH=09h"FOSSIL"
  14351. --------S-1408-------------------------------
  14352. INT 14 - MultiDOS Plus 4.0 IODRV - GET AND RESET PORT LINE STATUS
  14353. AH = 08h
  14354. Return: AL = line status (see #00304)
  14355. AH destroyed
  14356. Notes: the port number is stored at offset BEh in the Task Control Block
  14357. on every line status change, the line status is ORed with the line
  14358. status accumulator; this function returns the accumulator and clears
  14359. it
  14360. SeeAlso: AH=03h,AH=04h"MultiDOS",AH=07h"MultiDOS",INT 15/AH=13h"MultiDOS"
  14361. --------S-1408-------------------------------
  14362. INT 14 - Digiboard DigiCHANNEL PC/X* - ALTERNATE STATUS CHECK
  14363. AH = 08h
  14364. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  14365. Return: AH = RS232 status bits (see #00304 at AH=03h)
  14366. ZF set if no characters queued
  14367. ZF clear if character available
  14368. AL = next character
  14369. SeeAlso: AH=03h,AH=08h"PC-MOS",AH=09h"Digiboard",AH=14h"Digiboard"
  14370. --------S-1408-------------------------------
  14371. INT 14 - MBBIOS - NON-DESTRUCTIVE READ
  14372. AH = 08h
  14373. DX = port number
  14374. Return: AL = character (if AH bit 0 set)
  14375. AH = status (see #00304)
  14376. SeeAlso: AH=0Bh"MBBIOS",AH=0Ch"FOSSIL"
  14377. --------S-1408-------------------------------
  14378. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - INPUT STATUS CHECK
  14379. AH = 08h
  14380. DX = port number
  14381. Return: CF set if carrier loss detected
  14382. ZF set if input buffer empty
  14383. ZF clear if characters available
  14384. AL = next character dequeued
  14385. --------N-1408--DXFFFF-----------------------
  14386. INT 14 - Connection Manager - RETURN DEFAULT CONNECTION PARAMETERS
  14387. AH = 08h
  14388. DX = FFFFh
  14389. CX = size of buffer for parameters or 0000h to get length
  14390. ES:DI -> buffer for parameter vector (see #00311)
  14391. Return: AH = return code
  14392. 00h successful
  14393. CX = number of bytes required (if CX=0000h on entry)
  14394. CX = number of bytes omitted for lack of space (if CX nonzero)
  14395. nonzero invalid request
  14396. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  14397. serial ports over an IPX or NetBIOS-based network
  14398. SeeAlso: AH=00h/DX=FFFFh,AH=0Fh/DX=FFFFh
  14399. --------S-1409-------------------------------
  14400. INT 14 - FOSSIL - PURGE OUTPUT BUFFER THROWING AWAY ALL PENDING OUTPUT
  14401. AH = 09h
  14402. DX = port number
  14403. Return: nothing
  14404. SeeAlso: AH=08h"FOSSIL",AH=0Ah"FOSSIL",AH=88h
  14405. --------S-1409-------------------------------
  14406. INT 14 - MultiDOS Plus IODRV - RESET PORT STATUS
  14407. AH = 09h
  14408. Return: modem status byte cleared
  14409. Note: the port number is stored at offset BEh in the Task Control Block
  14410. SeeAlso: AH=04h"MultiDOS",AH=07h"MultiDOS",INT 15/AH=13h"MultiDOS"
  14411. --------S-1409-------------------------------
  14412. INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR BUFFERS
  14413. AH = 09h
  14414. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  14415. Return: AH = status
  14416. 00h successful
  14417. FFh error
  14418. SeeAlso: AH=08h"Digiboard",AH=0Ah"Digiboard",AH=10h"Digiboard"
  14419. --------S-1409-------------------------------
  14420. INT 14 - MBBIOS - GET/SET OPTIONS
  14421. AH = 09h
  14422. AL = option byte (see #00337)
  14423. DX = port number???
  14424. Return: AL = old option byte
  14425. SeeAlso: AH=00h"MBBIOS",AH=04h"MBBIOS",AH=10h"FOSSIL"
  14426. Bitfields for MBBIOS option byte:
  14427. Bit(s) Description (Table 00337)
  14428. 0 transmit buffering enabled
  14429. 2 hardware handshaking enabled
  14430. 5 high-speed option enabled (see AH=00h"MBBIOS",#00302)
  14431. other reserved
  14432. --------S-1409-------------------------------
  14433. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - RESET I/O BUFFER POINTERS
  14434. AH = 09h
  14435. DX = port number
  14436. Return: nothing
  14437. SeeAlso: AH=13h"PC-MOS"
  14438. --------N-1409--DXFFFF-----------------------
  14439. INT 14 - Connection Manager - SEND BREAK
  14440. AH = 09h
  14441. DX = FFFFh
  14442. AL = connection ID
  14443. Return: AH = return code (00h-02h) (see #00303 at AH=00h/DX=FFFFh)
  14444. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  14445. serial ports over an IPX or NetBIOS-based network
  14446. SeeAlso: AH=02h/DX=FFFFh,AH=03h/DX=FFFFh
  14447. --------S-140A-------------------------------
  14448. INT 14 - FOSSIL - PURGE INPUT BUFFER THROWING AWAY ALL PENDING INPUT
  14449. AH = 0Ah
  14450. DX = port number
  14451. Return: nothing
  14452. SeeAlso: AH=09h"FOSSIL",AH=85h
  14453. --------S-140A-------------------------------
  14454. INT 14 - Digiboard DigiCHANNEL PC/X* - INPUT QUEUE CHECK
  14455. AH = 0Ah
  14456. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  14457. Return: AX = number of characters available in buffer
  14458. Note: this function is also supported by the PC-MOS/386 v5.01 $serial.sys
  14459. SeeAlso: AH=09h"Digiboard",AH=0Dh"Digiboard"
  14460. --------S-140A-------------------------------
  14461. INT 14 - MBBIOS - WRITE BUFFER
  14462. AH = 0Ah
  14463. CX = count
  14464. ES:DI -> buffer (see #00338)
  14465. Return: AX = status (see #00304,#00305)
  14466. CX = unsent character count
  14467. DI updated
  14468. Note: the PACCOM version of MBBIOS does not use CX or ES:DI; instead, ES
  14469. contains the segment of a buffer containing the packet to be sent,
  14470. which by default will be freed once the packet has been sent. Use
  14471. AH=0Ch"MBBIOS" to allocate the buffer.
  14472. SeeAlso: AH=01h,AH=0Bh"MBBIOS",AH=0Ch"MBBIOS",AH=19h"FOSSIL"
  14473. Format of MBBIOS PACCOM buffer:
  14474. Offset Size Description (Table 00338)
  14475. 00h 504 BYTEs data area
  14476. 1F8h WORD length of data in data area
  14477. 1FAh BYTE flags/status
  14478. bit 7: don't discard buffer after transmitting data
  14479. bit 6: buffer has been transmitted
  14480. 1FBh BYTE reserved (0) for additional flags/status
  14481. 1FCh WORD user data
  14482. 1FEh WORD MBBIOS-internal pointer to next buffer
  14483. --------N-140A--DXFFFF-----------------------
  14484. INT 14 - Connection Manager - MODIFY ACTIVE CONNECTION PARAMETERS
  14485. AH = 0Ah
  14486. DX = FFFFh
  14487. ES:DI -> vector string containing new parameters (see #00311)
  14488. Return: AH = return code (00h-03h,06h) (see #00303)
  14489. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  14490. serial ports over an IPX or NetBIOS-based network
  14491. Note: any subvectors valid for the Change Parameters command replace the
  14492. existing values in the current set
  14493. SeeAlso: AH=00h/DX=FFFFh,AH=0Fh/DX=FFFFh
  14494. --------S-140B-------------------------------
  14495. INT 14 - FOSSIL - TRANSMIT NO WAIT
  14496. AH = 0Bh
  14497. AL = character
  14498. DX = port number
  14499. Return: AX = result
  14500. 0000h character not accepted
  14501. 0001h character accepted
  14502. SeeAlso: AH=01h
  14503. --------S-140B-------------------------------
  14504. INT 14 - MBBIOS - READ BUFFER
  14505. AH = 0Bh
  14506. CX = size of buffer
  14507. ES:DI -> buffer
  14508. Return: AH = composite line status (see #00304) formed by ORing all statuses
  14509. on receive interrupts; bit 0 set if additional characters
  14510. available
  14511. AL = composite modem status (see #00305) formed by ORing all statuses
  14512. CX = number of characters actually read
  14513. DI updated
  14514. Note: the PACCOM version of MBBIOS does not use CX or ES:DI on call,
  14515. instead returning ES set to the segment of the buffer containing a
  14516. received packet, or 0000h if no packets available; the buffer may
  14517. be freed with AH=0Ch"MBBIOS"
  14518. SeeAlso: AH=02h,AH=08h"MBBIOS",AH=0Ah"MBBIOS",AH=0Ch"MBBIOS",AH=18h"FOSSIL"
  14519. --------N-140B--DXFFFF-----------------------
  14520. INT 14 - Connection Manager - PREPARE FOR INBOUND CONNECTION
  14521. AH = 0Bh
  14522. DX = FFFFh
  14523. AL = service name
  14524. 00h use parameter file or default
  14525. 01h use specified name
  14526. ES:DI -> 16-byte blank-padded name
  14527. BH = connection notification
  14528. 00h program awaiting connection, don't notify user
  14529. 01h notify user on connecting
  14530. BL = connection type
  14531. 00h connection will use Connection Manager API
  14532. Return: AH = return code (00h-02h) (see #00303 at AH=00h/DX=FFFFh)
  14533. AL = connection ID if AH=00h
  14534. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  14535. serial ports over an IPX or NetBIOS-based network
  14536. SeeAlso: AH=04h/DX=FFFFh,AH=0Ch/DX=FFFFh,AH=10h/DX=FFFFh
  14537. --------S-140C-------------------------------
  14538. INT 14 - FOSSIL - NON-DESTRUCTIVE READ AHEAD
  14539. AH = 0Ch
  14540. DX = port number
  14541. Return: AX = FFFFh character not available
  14542. AX = 00xxh character xx available
  14543. SeeAlso: AH=08h"MBBIOS",AH=20h"FOSSIL"
  14544. --------S-140C-------------------------------
  14545. INT 14 - MBBIOS PACCOM support - BUFFER MANAGEMENT
  14546. AH = 0Ch
  14547. ES = segment of buffer to free, or 0000h to allocate new buffer
  14548. Return: ES = segment of allocated buffer (if ES=0000h on entry)
  14549. Note: the PACCOM version of MBBIOS uses only ES as buffer address for
  14550. AH=0Ah and AH=0Bh
  14551. SeeAlso: AH=0Ah"MBBIOS",AH=0Bh"MBBIOS"
  14552. --------N-140C--DXFFFF-----------------------
  14553. INT 14 - Connection Manager - TEST FOR INBOUND CONNECTION REQUEST
  14554. AH = 0Ch
  14555. DX = FFFFh
  14556. AL = connection ID from AH=0Bh/DX=FFFFh
  14557. Return: AH = return code (00h-03h) (see also #00303 at AH=00h/DX=FFFFh)
  14558. 03h not prepared for inbound connection
  14559. AL = connection ID (if AH=00h) or correct connection ID (if AH=02h)
  14560. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  14561. serial ports over an IPX or NetBIOS-based network
  14562. SeeAlso: AH=03h/DX=FFFFh,AH=04h/DX=FFFFh,AH=0Bh/DX=FFFFh
  14563. --------S-140D-------------------------------
  14564. INT 14 - FOSSIL - KEYBOARD READ WITHOUT WAIT
  14565. AH = 0Dh
  14566. Return: AX = result
  14567. FFFFh character not available
  14568. xxyyh standard IBM-style scan code
  14569. SeeAlso: AH=0Eh
  14570. --------S-140D-------------------------------
  14571. INT 14 - Digiboard DigiCHANNEL PC/X* - GET POINTER TO CH_KEY_RDY FLAG
  14572. AH = 0Dh
  14573. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  14574. Return: ES:BX -> CH_KEY_RDY flag (see #00339)
  14575. SeeAlso: AH=0Ah"Digiboard"
  14576. (Table 00339)
  14577. Values for Digiboard CH_KEY_RDY flag:
  14578. 00h receive buffer empty
  14579. FFh characters available
  14580. --------S-140D-------------------------------
  14581. INT 14 - MBBIOS PACCOM support - SET TXD
  14582. AH = 0Dh
  14583. AL = new setting (FFh = 1.0)
  14584. Return: nothing
  14585. Desc: specify the time from RTS to start or packet
  14586. SeeAlso: AX=0D00h,AH=0Eh"MBBIOS",AH=0Fh"MBBIOS"
  14587. --------N-140D--DXFFFF-----------------------
  14588. INT 14 - Connection Manager - TERMINATE CONNECTION CLIENT ACTIVITY
  14589. AH = 0Dh
  14590. DX = FFFFh
  14591. Return: AH = return code
  14592. 00h successful
  14593. nonzero operation not terminated
  14594. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  14595. serial ports over an IPX or NetBIOS-based network
  14596. Desc: end all Connection Client TSR activity to allow it to be removed from
  14597. memory
  14598. SeeAlso: AH=05h/DX=FFFFh,AH=6Fh/BX=FFFFh
  14599. --------S-140D00-----------------------------
  14600. INT 14 - MBBIOS - GET AVAILABLE BYTES
  14601. AX = 0D00h
  14602. Return: AX = bytes in transmit buffer
  14603. CX = bytes in receive buffer
  14604. SeeAlso: AH=0Ah"MBBIOS",AH=0Bh"MBBIOS"
  14605. --------S-140D01-----------------------------
  14606. INT 14 - MBBIOS - LOWER ALL MODEM CONTROL SIGNALS
  14607. AX = 0D01h
  14608. Return: nothing
  14609. Note: this function lowers DTR, RTS, etc.
  14610. SeeAlso: AX=0D02h
  14611. --------S-140D02-----------------------------
  14612. INT 14 - MBBIOS - RAISE ALL MODEM CONTROL SIGNALS
  14613. AX = 0D02h
  14614. Return: nothing
  14615. Note: this function raises DTR, RTS, etc.
  14616. SeeAlso: AX=0D01h
  14617. --------S-140D03-----------------------------
  14618. INT 14 - MBBIOS - SET HANDSHAKE BYTE
  14619. AX = 0D03h
  14620. CL = new handshake byte
  14621. Return: CL = previous handshake byte
  14622. Note: this function lowers DTR, RTS, etc.
  14623. --------S-140E-------------------------------
  14624. INT 14 - FOSSIL - KEYBOARD READ WITH WAIT
  14625. AH = 0Eh
  14626. Return: AX = xxyyh standard IBM-style scan code
  14627. SeeAlso: AH=0Dh"FOSSIL"
  14628. --------S-140E-------------------------------
  14629. INT 14 - Digiboard DigiCHANNEL PC/X* - WRITE STRING
  14630. AH = 0Eh
  14631. CX = number of characters to write
  14632. ES:BX -> string
  14633. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  14634. Return: AX = number of characters actually written
  14635. ZF clear if successful
  14636. ZF set on error
  14637. SeeAlso: AH=0Fh"Digiboard"
  14638. --------S-140E-------------------------------
  14639. INT 14 - MBBIOS PACCOM support - SET PERSISTENCE
  14640. AH = 0Eh
  14641. AL = new setting (FFh = 1.0)
  14642. Return: nothing
  14643. Desc: specify the time from end of DCD to RTS
  14644. SeeAlso: AH=0Dh"MBBIOS",AH=0Fh"MBBIOS"
  14645. --------N-140E--DXFFFF-----------------------
  14646. INT 14 - Connection Manager - SET HARDWARE FLOW STATE
  14647. AH = 0Eh
  14648. DX = FFFFh
  14649. AL = connection ID from AH=04h/DX=FFFFh
  14650. BL = RTS state (00h off, 01h on)
  14651. Return: AH = return code (00h-03h) (see also #00303 at AH=00h/DX=FFFFh)
  14652. 03h invalid request (BL not 00h or 01h)
  14653. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  14654. serial ports over an IPX or NetBIOS-based network
  14655. SeeAlso: AH=03h/DX=FFFFh,AH=0Ah/DX=FFFFh
  14656. --------S-140F-------------------------------
  14657. INT 14 - FOSSIL - ENABLE/DISABLE FLOW CONTROL
  14658. AH = 0Fh
  14659. AL = bit mask describing requested flow control (see #00340)
  14660. DX = port number
  14661. Return: nothing
  14662. SeeAlso: AH=09h"MBBIOS",AH=10h"FOSSIL"
  14663. Bitfields for FOSSIL requested flow control:
  14664. Bit(s) Description (Table 00340)
  14665. 0 XON/XOFF on transmit (watch for XOFF while sending)
  14666. 1 CTS/RTS (CTS on transmit/RTS on receive)
  14667. 2 reserved
  14668. 3 XON/XOFF on receive (send XOFF when buffer near full)
  14669. 4-7 all 1
  14670. --------S-140F-------------------------------
  14671. INT 14 - Digiboard DigiCHANNEL PC/X* - READ STRING
  14672. AH = 0Fh
  14673. CX = number of characters to read
  14674. ES:BX -> buffer
  14675. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  14676. Return: AX = number of characters read
  14677. ZF clear if successful
  14678. ZF set on error (line status or wrong number of characters)
  14679. SeeAlso: AH=0Eh"Digiboard"
  14680. --------S-140F-------------------------------
  14681. INT 14 - MBBIOS PACCOM support - SET SLOT TIME
  14682. AH = 0Fh
  14683. AL = new setting in clock ticks
  14684. Return: nothing
  14685. Desc: specify the time from end of DCD to RTS
  14686. SeeAlso: AH=0Dh"MBBIOS",AH=0Eh"MBBIOS",AH=10h"MBBIOS"
  14687. --------N-140F--DXFFFF-----------------------
  14688. INT 14 - Connection Manager - RETURN ACTIVE CONNECTION PARAMETERS
  14689. AH = 0Fh
  14690. DX = FFFFh
  14691. AL = connection ID
  14692. CX = size of buffer or 0000h to get length of returned vector
  14693. ES:DI -> buffer for connection parameter vector (see #00311)
  14694. Return: AH = return code (00h-02h,06h) (see #00303 at AH=00h/DX=FFFFh)
  14695. CX = number of bytes which could not be returned because the given
  14696. buffer was too small
  14697. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  14698. serial ports over an IPX or NetBIOS-based network
  14699. SeeAlso: AH=08h/DX=FFFFh,AH=0Ah/DX=FFFFh
  14700. --------S-1410-------------------------------
  14701. INT 14 - FOSSIL - EXTENDED ^C/^K CHECKING AND TRANSMIT ON/OFF
  14702. AH = 10h
  14703. AL = bit mask
  14704. bit 0: enable/disable ^C/^K checking
  14705. bit 1: enable/disable the transmitter
  14706. DX = port number
  14707. Return: nothing
  14708. SeeAlso: AH=0Fh"FOSSIL"
  14709. --------S-1410-------------------------------
  14710. INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR RECEIVE BUFFER
  14711. AH = 10h
  14712. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  14713. Return: AH = status
  14714. 00h successful
  14715. FFh error
  14716. SeeAlso: AH=09h"Digiboard",AH=11h"Digiboard"
  14717. --------S-1410-------------------------------
  14718. INT 14 - MBBIOS PACCOM support - SET CRC WAIT
  14719. AH = 10h
  14720. AL = new setting in clock ticks (should be at least 5 character times)
  14721. Return: nothing
  14722. Desc: specify the time from start of last character to dropping RTS
  14723. SeeAlso: AH=0Dh"MBBIOS",AH=0Fh"MBBIOS"
  14724. --------N-1410--DXFFFF-----------------------
  14725. INT 14 - Connection Manager - QUERY SERVICE NAMES
  14726. AH = 10h
  14727. DX = FFFFh
  14728. CL = subfunction
  14729. 00h search first
  14730. 01h search next
  14731. ES:DI -> pattern buffer (see #00341)
  14732. Return: AH = return code (00h,01h,03h,06h) (see also #00303 at AH=00h/DX=FFFFh)
  14733. 01h no (more) matching names
  14734. 03h invalid request
  14735. ES:DI buffer filled with reply buffer (see #00341) containing matched
  14736. name if AH=00h
  14737. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  14738. serial ports over an IPX or NetBIOS-based network
  14739. Desc: obtain the names of groups and lines available for connection requests,
  14740. and the names of active Connection Servers
  14741. SeeAlso: AH=04h/DX=FFFFh,AH=0Bh/DX=FFFFh
  14742. Format of Connection Manager pattern/reply buffer:
  14743. Offset Size Description (Table 00341)
  14744. 00h WORD length of pattern (30h or 32h)
  14745. 02h 16 BYTEs server pattern or name
  14746. 12h 16 BYTEs group pattern or name
  14747. 22h 16 BYTEs line pattern or name
  14748. 23h BYTE (optional) ???
  14749. 24h BYTE (optional, returned) current line status
  14750. 00h available
  14751. 01h out of service
  14752. 02h currently allocated to a connection
  14753. Note: pattern may include '?' wildcard to match any character
  14754. --------S-1411-------------------------------
  14755. INT 14 - FOSSIL - SET CURRENT CURSOR LOCATION
  14756. AH = 11h
  14757. DH = row
  14758. DL = column
  14759. Return: nothing
  14760. Note: this is the same as INT 10/AH=02h
  14761. SeeAlso: AH=12h"FOSSIL"
  14762. --------S-1411-------------------------------
  14763. INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR TRANSMIT BUFFER
  14764. AH = 11h
  14765. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  14766. Return: AH = status
  14767. 00h successful
  14768. FFh error
  14769. SeeAlso: AH=09h"Digiboard",AH=10h"Digiboard"
  14770. --------S-1411-------------------------------
  14771. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - DISABLE PORT
  14772. AH = 11h
  14773. DX = port number
  14774. Return: AL = status
  14775. 00h successful
  14776. 01h IRQ for port is shared
  14777. 02h IRQ was reserved
  14778. SeeAlso: AH=04h"SERIAL",AH=05h"SERIAL",AH=12h"PC-MOS"
  14779. --------S-1412-------------------------------
  14780. INT 14 - FOSSIL - READ CURRENT CURSOR LOCATION
  14781. AH = 12h
  14782. Return: DH = row
  14783. DL = column
  14784. Note: this is the same as INT 10/AH=03h
  14785. SeeAlso: AH=11h"FOSSIL"
  14786. --------S-1412-------------------------------
  14787. INT 14 - Digiboard DigiCHANNEL PC/X* - GET TRANSMIT BUFFER FREE SPACE
  14788. AH = 12h
  14789. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  14790. Return: AX = number of bytes free
  14791. SeeAlso: AH=0Ah"Digiboard",AH=14h"Digiboard"
  14792. --------S-1412-------------------------------
  14793. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - GET CURRENT PORT PARAMETERS
  14794. AH = 12h
  14795. DX = port number
  14796. Return: AH = status
  14797. FFh port number invalid
  14798. AL = line parameters (see #00304)
  14799. AH = flow control configuration (see #00336 at AH=05h"PC-MOS")
  14800. CX:BX = bps rate
  14801. DL = XOFF character or 00h for none
  14802. DH = XON character or 00h for none
  14803. --------S-1413-------------------------------
  14804. INT 14 - FOSSIL - SINGLE CHARACTER ANSI WRITE TO SCREEN
  14805. AH = 13h
  14806. AL = character
  14807. Return: nothing
  14808. Note: should not be called if it is unsafe to call DOS
  14809. SeeAlso: AH=15h
  14810. --------S-1413-------------------------------
  14811. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - REGISTER A PORT WITH A TERMINAL
  14812. AH = 13h
  14813. DX = port number
  14814. Return: AH = status
  14815. FFh port number invalid
  14816. else
  14817. ES:BX -> BYTE flag (00h buffer empty, FFh buffer contains data)
  14818. SeeAlso: AH=17h"PC-MOS"
  14819. --------S-1414-------------------------------
  14820. INT 14 - FOSSIL - ENABLE OR DISABLE WATCHDOG PROCESSING
  14821. AH = 14h
  14822. AL = 01h enable watchdog
  14823. 00h disable watchdog
  14824. DX = port number
  14825. Return: nothing
  14826. SeeAlso: INT 21/AH=2Bh/CX=6269h"WDTSR"
  14827. --------S-1414-------------------------------
  14828. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - OUTPUT STRING
  14829. AH = 14h
  14830. CX = number of characters in string
  14831. DX = port number
  14832. ES:BX -> string to be sent
  14833. SI = timeout in timer ticks or 0000h for default
  14834. Return: AX = number of bytes actually sent
  14835. ZF clear if successful
  14836. ZF set on timeout
  14837. SeeAlso: AH=01h,AH=15h"PC-MOS"
  14838. --------S-1414-------------------------------
  14839. INT 14 - Digiboard - GET NUMBER OF BOARDS INSTALLED
  14840. AH = 14h
  14841. Return: AX = number of boards installed
  14842. SeeAlso: AH=08h"Digiboard",AH=15h"Digiboard"
  14843. --------S-1415-------------------------------
  14844. INT 14 - FOSSIL - WRITE CHARACTER TO SCREEN USING BIOS SUPPORT ROUTINES
  14845. AH = 15h
  14846. AL = character
  14847. Return: nothing
  14848. SeeAlso: AH=13h"FOSSIL"
  14849. --------S-1415-------------------------------
  14850. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - INPUT STRING
  14851. AH = 15h
  14852. CX = size of buffer
  14853. DX = port number
  14854. ES:BX -> buffer for received characters
  14855. SI = timeout in clock ticks or 0000h for default
  14856. Return: AX = number of characters actually read
  14857. ZF set on timeout (no data available)
  14858. SeeAlso: AH=02h,AH=14h"PC-MOS",AH=16h"PC-MOS"
  14859. --------S-1415-------------------------------
  14860. INT 14 - Digiboard - ENABLE/DISABLE MEMORY
  14861. AH = 15h
  14862. AL = new state (00h disabled, 01h enabled)
  14863. Return: AH = status
  14864. 00h successful
  14865. 80h error
  14866. FFh error
  14867. SeeAlso: AH=14h"Digiboard",AH=16h"Digiboard"
  14868. --------S-1416-------------------------------
  14869. INT 14 - FOSSIL - INSERT/DELETE FUNCTION FROM TIMER TICK CHAIN
  14870. AH = 16h
  14871. AL = function
  14872. 00h = delete
  14873. 01h = add
  14874. ES:DX -> routine to call
  14875. Return: AX = status
  14876. 0000h successful
  14877. 0001h unsuccessful
  14878. SeeAlso: AH=07h"FOSSIL"
  14879. --------S-1416-------------------------------
  14880. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - LINK TO ANOTHER SERIAL DRIVER
  14881. AH = 16h
  14882. ES:BX -> calling driver's INT 14 entry point
  14883. Return: nothing
  14884. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  14885. operating system by The Software Link, Inc.
  14886. --------S-1416-------------------------------
  14887. INT 14 - Digiboard DigiCHANNEL PC/X* - CCB COMMAND
  14888. AH = 16h
  14889. AL = CCB command number (see #00342) (see also following entries)
  14890. BL = byte 2
  14891. BH = byte 3
  14892. CL = byte 1 (for all channel functions except 4Eh and 4Fh)
  14893. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  14894. Return: AH = status
  14895. 00h successful
  14896. 80h error
  14897. FFh error
  14898. SeeAlso: AX=1646h,AH=18h"Digiboard"
  14899. (Table 00342)
  14900. Values for Digiboard CCB command number:
  14901. 40h Set Receive Mid Water Mark
  14902. 41h Set Receive High Water Mark
  14903. 42h Flush Receive Buffer
  14904. 43h Flush Transmit Buffer
  14905. 44h Transmit Pause
  14906. 45h Transmit Resume
  14907. 46h Set Interrupt to Host Mask
  14908. 47h Set Baud, Data, Stop and Parity
  14909. 48h Send Break
  14910. 49h Set Modem Lines
  14911. 4Ah Set Break Count
  14912. 4Bh Set Handshake
  14913. 4Ch Set Xon/Xoff Characters
  14914. 4Dh Set Transmit Mid Water Mark
  14915. 4Eh IRQ Polling Timer to Host
  14916. 4Fh Buffer Set All
  14917. 50h Port On
  14918. 51h Port Off
  14919. 52h Receive Pause
  14920. 53h Special Character Interrupt
  14921. 54h RS-422 Enable
  14922. --------S-141646-----------------------------
  14923. INT 14 - Digiboard - CCB COMMAND - SET INTERRUPT TO HOST MASK
  14924. AX = 1646h
  14925. BL = bits to set
  14926. BH = bits to clear
  14927. CL = byte 1
  14928. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  14929. Return: AH = status
  14930. 00h successful
  14931. 80h error
  14932. FFh error
  14933. SeeAlso: AH=16h"Digiboard",AX=1647h
  14934. --------S-141647-----------------------------
  14935. INT 14 - Digiboard - CCB COMMAND - SET BAUD/DATABITS/STOPBITS/PARITY
  14936. AX = 1647h
  14937. BL = baud
  14938. BH = datatype
  14939. CL = byte 1
  14940. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  14941. Return: AH = status
  14942. 00h successful
  14943. 80h error
  14944. FFh error
  14945. SeeAlso: AH=16h"Digiboard",AX=1646h,AX=1649h
  14946. --------S-141649-----------------------------
  14947. INT 14 - Digiboard - CCB COMMAND - SET MODEM LINES
  14948. AX = 1649h
  14949. BL = bits to set
  14950. BH = bits to clear
  14951. CL = byte 1
  14952. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  14953. Return: AH = status
  14954. 00h successful
  14955. 80h error
  14956. FFh error
  14957. SeeAlso: AH=16h"Digiboard",AX=1647h
  14958. --------S-14164A-----------------------------
  14959. INT 14 - Digiboard - CCB COMMAND - SET BREAK COUNT
  14960. AX = 164Ah
  14961. BL = break count
  14962. CL = byte 1
  14963. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  14964. Return: AH = status
  14965. 00h successful
  14966. 80h error
  14967. FFh error
  14968. SeeAlso: AH=16h"Digiboard",AX=1649h,AX=164Bh
  14969. --------S-14164B-----------------------------
  14970. INT 14 - Digiboard - CCB COMMAND - SET HANDSHAKE
  14971. AX = 164Bh
  14972. BL = bits to set
  14973. BH = bits to clear
  14974. CL = byte 1
  14975. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  14976. Return: AH = status
  14977. 00h successful
  14978. 80h error
  14979. FFh error
  14980. SeeAlso: AH=16h"Digiboard",AX=1649h,AX=164Ch
  14981. --------S-14164C-----------------------------
  14982. INT 14 - Digiboard - CCB COMMAND - SET XON/XOFF CHARACTERS
  14983. AX = 164Ch
  14984. BL = XON character
  14985. BH = XOFF character
  14986. CL = byte 1
  14987. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  14988. Return: AH = status
  14989. 00h successful
  14990. 80h error
  14991. FFh error
  14992. SeeAlso: AH=16h"Digiboard",AX=164Bh,AX=164Dh
  14993. --------S-14164D-----------------------------
  14994. INT 14 - Digiboard - CCB COMMAND - SET TRANSMIT MID-WATER MARK
  14995. AX = 164Dh
  14996. BX = new mid-water mark
  14997. CL = byte 1
  14998. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  14999. Return: AH = status
  15000. 00h successful
  15001. 80h error
  15002. FFh error
  15003. SeeAlso: AH=16h"Digiboard",AX=164Ch,AX=164Eh,AX=164Fh
  15004. --------S-14164E-----------------------------
  15005. INT 14 - Digiboard - CCB COMMAND - IRQ POLLING TIMER TO HOST
  15006. AX = 164Eh
  15007. BL = ticks
  15008. BH = ???
  15009. CL = mode
  15010. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  15011. Return: AH = status
  15012. 00h successful
  15013. 80h error
  15014. FFh error
  15015. SeeAlso: AH=16h"Digiboard",AX=164Dh
  15016. --------S-14164F-----------------------------
  15017. INT 14 - Digiboard - CCB COMMAND - BUFFER SET ALL
  15018. AX = 164Fh
  15019. BL = size
  15020. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  15021. Return: AH = status
  15022. 00h successful
  15023. 80h error
  15024. FFh error
  15025. SeeAlso: AH=16h"Digiboard",AX=164Dh
  15026. --------S-141653-----------------------------
  15027. INT 14 - Digiboard - CCB COMMAND - SPECIAL CHARACTER INTERRUPT
  15028. AX = 1653h
  15029. BL = enable/disable
  15030. BH = special character
  15031. CL = byte 1
  15032. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  15033. Return: AH = status
  15034. 00h successful
  15035. 80h error
  15036. FFh error
  15037. SeeAlso: AH=16h"Digiboard",AX=1646h
  15038. --------S-1417-------------------------------
  15039. INT 14 - FOSSIL - REBOOT SYSTEM
  15040. AH = 17h
  15041. AL = method
  15042. 00h = cold boot
  15043. 01h = warm boot
  15044. SeeAlso: INT 16/AX=E0FFh,INT 19,INT 60/DI=0606h
  15045. --------S-1417-------------------------------
  15046. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - WRITE MODEM CONTROL REGISTER
  15047. AH = 17h
  15048. AL = new value for UART's modem control register
  15049. DX = port number
  15050. Return: nothing
  15051. --------S-1418-------------------------------
  15052. INT 14 - FOSSIL - READ BLOCK
  15053. AH = 18h
  15054. CX = maximum number of characters to transfer
  15055. DX = port number
  15056. ES:DI -> user buffer
  15057. Return: AX = number of characters transferred
  15058. SeeAlso: AH=19h"FOSSIL",AH=83h"COURIERS",AX=FF02h,INT 6B/AX=0100h
  15059. --------S-1418-------------------------------
  15060. INT 14 - Digiboard DigiCHANNEL PC/X* - SEND BIOS COMMAND
  15061. AH = 18h
  15062. ES:BX -> 16-byte command string
  15063. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  15064. Return: AH = status
  15065. 00h successful
  15066. 80h timeout
  15067. AL = mailbox status
  15068. 00h no errors
  15069. 8Xh BIOS error
  15070. ES:BX buffer filled in with mailbox string
  15071. ZF clear if no errors
  15072. ZF set if either status byte contains an error code
  15073. SeeAlso: AH=16h"Digiboard"
  15074. --------S-1418-------------------------------
  15075. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - GET DRIVER DESCRIPTION
  15076. AH = 18h
  15077. DX = port number
  15078. Return: DS:BX -> 40-byte buffer containing a string identifying the serial
  15079. driver
  15080. SeeAlso: AH=06h"PC-MOS"
  15081. --------S-1419-------------------------------
  15082. INT 14 - FOSSIL - WRITE BLOCK
  15083. AH = 19h
  15084. CX = maximum number of characters to transfer
  15085. DX = port number
  15086. ES:DI -> user buffer
  15087. Return: AX = number of characters transferred
  15088. SeeAlso: AH=18h"FOSSIL",AH=86h,INT 6B/AX=0000h
  15089. --------S-1419-------------------------------
  15090. INT 14 - Digiboard DigiCHANNEL PC/X* - SPECIAL CHARACTER INTERRUPT
  15091. AH = 19h
  15092. BL = flag
  15093. 00h disable special character interrupt
  15094. FFh enable interrupt
  15095. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  15096. Return: AH = status
  15097. 00h successful
  15098. FFh failed
  15099. SeeAlso: AH=1Ah"Digiboard"
  15100. --------S-1419-------------------------------
  15101. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - SELECTIVE BUFFER FLUSH
  15102. AH = 19h
  15103. AL = what to flush
  15104. bit 0: input buffer
  15105. bit 1: output buffer
  15106. DX = port number
  15107. Return: nothing
  15108. SeeAlso: AH=09h"PC-MOS"
  15109. --------S-141A-------------------------------
  15110. INT 14 - FOSSIL - BREAK BEGIN OR END
  15111. AH = 1Ah
  15112. AL = 00h stop sending 'break'
  15113. 01h start sending 'break'
  15114. DX = port number
  15115. Return: nothing
  15116. SeeAlso: AH=06h"FOSSIL",AH=8Ah,AH=FAh
  15117. --------S-141A-------------------------------
  15118. INT 14 - Digiboard DigiCHANNEL PC/X - SPECIAL CHARACTER FLAG/COUNTER
  15119. AH = 1Ah
  15120. BX = subfunction
  15121. 00h return pointer to special character flag byte
  15122. 01h return pointer to special character counter word
  15123. DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  15124. Return: ES:BX -> special character flag or counter
  15125. Notes: flag is FFh if one or more special characters are in the receive
  15126. buffer; it is 00h and the counter is invalid if no special characters
  15127. are in the receive buffer
  15128. counter (if valid) contains the number of characters in the receive
  15129. buffer up to and including the last-received special character
  15130. --------S-141B-------------------------------
  15131. INT 14 - FOSSIL - RETURN INFORMATION ABOUT THE DRIVER
  15132. AH = 1Bh
  15133. DX = port number
  15134. CX = size of user buffer
  15135. ES:DI -> user buffer for driver info (see #00343)
  15136. Return: AX = number of characters transferred
  15137. CX = 3058h ("0X") (X00 FOSSIL only)
  15138. DX = 2030h (" 0") (X00 FOSSIL only)
  15139. Format of FOSSIL driver info:
  15140. Offset Size Description (Table 00343)
  15141. 00h WORD size of structure in bytes
  15142. 02h BYTE FOSSIL spec driver conforms to
  15143. 03h BYTE revision level of this specific driver
  15144. 04h DWORD pointer to ASCIZ identification string
  15145. 08h WORD size of the input buffer
  15146. 0Ah WORD number of bytes left in buffer
  15147. 0Ch WORD size of the output buffer
  15148. 0Eh WORD number of bytes left in buffer
  15149. 10h BYTE width of screen
  15150. 11h BYTE length of screen
  15151. 12h BYTE actual baud rate, computer to modem
  15152. --------S-141C-------------------------------
  15153. INT 14 - X00 FOSSIL - ACTIVATE PORT
  15154. AH = 1Ch
  15155. DX = port number
  15156. Return: AX = 1954h if successful
  15157. BL = maximum function number supported (not including 7Eh and above)
  15158. BH = revision of FOSSIL specification supported
  15159. Note: this is a duplicate of AH=04h, so that AH=04h may be made compatible
  15160. with the PS/2 BIOS in a future release
  15161. SeeAlso: AH=04h"FOSSIL",AH=1Dh
  15162. --------S-141D-------------------------------
  15163. INT 14 - X00 FOSSIL - DEACTIVATE PORT
  15164. AH = 1Dh
  15165. DX = port number
  15166. Return: none
  15167. Notes: this is a duplicate of AH=05h, so that AH=05h may be made compatible
  15168. with the PS/2 BIOS in a future release
  15169. ignored if the port was never activated with AH=04h or AH=1Ch
  15170. SeeAlso: AH=05h"FOSSIL",AH=1Ch
  15171. --------S-141E-------------------------------
  15172. INT 14 - X00 FOSSIL - EXTENDED LINE CONTROL INITIALIZATION
  15173. AH = 1Eh
  15174. AL = break status
  15175. 00h if break
  15176. 01h if no break
  15177. BH = parity (see #00344)
  15178. BL = number of stop bits
  15179. 00h one stop bit
  15180. 01h two stop bits (1.5 if 5 bit word length)
  15181. CH = word length (see #00345)
  15182. CL = bps rate (see #00346)
  15183. DX = port number
  15184. Return: AX = port status code (see #00304,#00305)
  15185. Notes: this function is intended to exactly emulate the PS/2 BIOS AH=04h call
  15186. if the port was locked at X00 load time, the appropriate parameters are
  15187. ignored
  15188. SeeAlso: AH=00h,AH=04h"SERIAL"
  15189. (Table 00344)
  15190. Values for X00 FOSSIL parity:
  15191. 00h no parity
  15192. 01h odd parity
  15193. 02h even parity
  15194. 03h stick parity odd
  15195. 04h stick parity even
  15196. SeeAlso: #00307,#00345,#00346
  15197. (Table 00345)
  15198. Values for X00 FOSSIL word length:
  15199. 00h 5 bits
  15200. 01h 6 bits
  15201. 02h 7 bits
  15202. 03h 8 bits
  15203. SeeAlso: #00308,#00344,#00346
  15204. (Table 00346)
  15205. Values for X00 FOSSIL bps rate:
  15206. 00h 110
  15207. 01h 150
  15208. 02h 300
  15209. 03h 600
  15210. 04h 1200
  15211. 05h 2400
  15212. 06h 4800
  15213. 07h 9600
  15214. 08h 19200
  15215. SeeAlso: #00309,#00344,#00345
  15216. --------S-141E------------------------------------
  15217. INT 14 - HUNTER 16 - READ COMMS PARAMETERS
  15218. AH = 1Eh
  15219. CX = channel number (00h COM1, 01h COM2, ...)
  15220. DS:BX -> buffer for communications parameters (see #00347)
  15221. Return: DS:BX buffer filled
  15222. Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
  15223. members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  15224. SeeAlso: AH=20h"HUNTER"
  15225. Format of HUNTER 16 communications parameters:
  15226. Offset Size Description (Table 00347)
  15227. 00h BYTE communications type (00h IBM, nonzero Husky)
  15228. 01h BYTE port number (00h COM1, 01h COM2)
  15229. 02h BYTE baud rate (00h 110 bps, 01h 150, 02h 300, 03h 600, 04h 1200,
  15230. 05h 2400, 06h 4800, 07h 9600, 08h 19200, 09h 38400)
  15231. 03h BYTE data bits (01h seven, 02h eight)
  15232. 04h BYTE parity (00h none, 01h odd, 02h even)
  15233. 05h BYTE stop bits (00h one, 01h two)
  15234. 06h BYTE handshake (see #00348)
  15235. 07h BYTE handshake protocol (00h none, 01h Xon/Xoff, 02h HWK3780)
  15236. 08h BYTE Nulls after CR (0-20)
  15237. 09h BYTE LF (00h off, 01h on)
  15238. 0Ah BYTE Serig. 0..7Fh: Ignore this character
  15239. 80h: Serig off
  15240. 0Bh BYTE echo (00h off, 01h on)
  15241. 0Ch BYTE transmit timeout in seconds (1-60) or 00h to disable
  15242. 0Dh BYTE receive timeout in seconds (1-60) or 00h to disable
  15243. 0Eh 5 BYTEs reserved
  15244. Bitfields for HUNTER 16 handshake:
  15245. Bit(s) Description (Table 00348)
  15246. 0-1 0: RTS off, 1: RTS hold, 2: RTS true
  15247. 2 DTR enabled
  15248. 4 CTS enabled
  15249. 5 DSR enabled
  15250. 6 DCD enabled
  15251. --------S-141F-------------------------------
  15252. INT 14 - X00 FOSSIL - EXTENDED SERIAL PORT STATUS/CONTROL
  15253. AH = 1Fh
  15254. DX = port number
  15255. AL = direction
  15256. 00h read modem control register
  15257. Return: BL = modem control register (see #00349)
  15258. AH = status
  15259. 01h write modem control register
  15260. BL = modem control register (see #00349)
  15261. Return: AX = status
  15262. Notes: this function is intended to exactly emulate the PS/2 BIOS AH=05h call
  15263. X00 forces BL bit 3 set (interrupts cannot be disabled)
  15264. SeeAlso: AH=00h,AH=05h"SERIAL"
  15265. Bitfields for X00 FOSSIL modem control register:
  15266. Bit(s) Description (Table 00349)
  15267. 0 data terminal ready
  15268. 1 request to send
  15269. 2 OUT1
  15270. 3 OUT2 (interrupts) enabled
  15271. 4 LOOP
  15272. 5-7 reserved
  15273. --------S-1420-------------------------------
  15274. INT 14 - X00 FOSSIL - DESTRUCTIVE READ WITH NO WAIT
  15275. AH = 20h
  15276. DX = port number
  15277. Return: AH = 00h if character was available
  15278. AL = next character (removed from receive buffer)
  15279. AX = FFFFh if no character available
  15280. SeeAlso: AH=0Ch,AH=21h"X00"
  15281. --------S-1420-------------------------------
  15282. INT 14 - Alloy MW386 - ATTACH LOGICAL COMMUNICATIONS PORT TO PHYSICAL PORT
  15283. AH = 20h
  15284. AL = logical port (01h COM1, 02h COM2)
  15285. DX = physical port number
  15286. Return: AX = status
  15287. 0000h successful
  15288. FFFFh failed
  15289. SeeAlso: AH=21h"Alloy",AH=22h"Alloy",AH=23h"Alloy",INT 17/AH=8Bh"Alloy"
  15290. --------S-1420-------------------------------
  15291. INT 14 - MultiDOS Plus - INITIALIZE PORT
  15292. AH = 20h
  15293. AL = port parameters (see #00300 at AH=00h"SERIAL")
  15294. DX = port number (0-3)
  15295. Return: AH = status
  15296. 00h successful
  15297. 41h no such port
  15298. 64h monitor mode already active
  15299. SeeAlso: AH=00h"SERIAL",AH=04h"MultiDOS",AH=21h"MultiDOS",AH=23h"MultiDOS"
  15300. --------S-1420-------------------------------
  15301. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - CHECK OUTPUT QUEUE
  15302. AH = 20h
  15303. DX = port number
  15304. Return: AX = number of bytes in output buffer
  15305. SeeAlso: AH=0Ah"Digiboard"
  15306. --------S-1420------------------------------------
  15307. INT 14 - HUNTER 16 - SELECT COMMS PARAMETERS
  15308. AH = 20h
  15309. CX = channel number (00h COM1, 01h COM2, ...)
  15310. DS:BX -> buffer with communications parameter (see #00347)
  15311. Return: AX = status
  15312. 0000h successful
  15313. 0001h invalid parameter
  15314. SeeAlso: AH=1Eh"HUNTER",AH=21h"HUNTER"
  15315. --------S-1421-------------------------------
  15316. INT 14 - X00 FOSSIL - STUFF RECEIVE BUFFER
  15317. AH = 21h
  15318. AL = character
  15319. DX = port number
  15320. Return: nothing
  15321. Notes: the given character is inserted at the end of the receive buffer as if
  15322. it had just arrived from the serial port; all normal receive
  15323. processing (XON/XOFF, ^C/^K) is performed on the character
  15324. fully re-entrant
  15325. SeeAlso: AH=20h"X00"
  15326. --------S-1421-------------------------------
  15327. INT 14 - Alloy MW386 v1.x only - RELEASE PHYSICAL COMMUNICATIONS PORT
  15328. AH = 21h
  15329. DX = physical port number
  15330. Return: AX = status
  15331. 0000h successful
  15332. FFFFh failed
  15333. SeeAlso: AH=20h"Alloy",AH=22h"Alloy"
  15334. --------S-1421-------------------------------
  15335. INT 14 - MultiDOS Plus - TRANSMIT CHARACTER
  15336. AH = 21h
  15337. AL = character to send
  15338. DX = port number
  15339. Return: AH = status (see #00350)
  15340. Note: monitor mode must have been turned on with AH=24h before calling
  15341. SeeAlso: AH=20h"MultiDOS",AH=22h"MultiDOS",AH=24h"MultiDOS"
  15342. (Table 00350)
  15343. Values for MultiDOS Plus status:
  15344. 00h successful
  15345. 39h no DSR or CTS
  15346. 3Ch no DSR
  15347. 3Bh no CTS
  15348. 41h no such port
  15349. 42h monitor mode not active
  15350. 97h timed out
  15351. --------S-1421-------------------------------
  15352. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - OUTPUT CHARACTER, WITH TIMEOUT
  15353. AH = 21h
  15354. AL = char to send
  15355. DX = port number
  15356. SI = timeout in timer ticks (0000h = default)
  15357. Return: after character is sent or timeout expires
  15358. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  15359. operating system by The Software Link, Inc.
  15360. SeeAlso: AH=01h,AH=0Eh"Digiboard",AH=22h"PC-MOS"
  15361. --------S-1421------------------------------------
  15362. INT 14 - HUNTER 16 - EXTENDED CONTROL
  15363. AH = 21h
  15364. AL = command
  15365. 01h force transmission of buffer
  15366. 02h clear transmit buffer
  15367. 03h clear receive buffer
  15368. DX = port (00h COM1, 01h COM2)
  15369. Return: AH = extended status
  15370. Desc: executes the command on the selected port
  15371. SeeAlso: AH=1Eh"HUNTER",AH=20h"HUNTER",AH=22h"HUNTER",AH=24h"HUNTER"
  15372. --------S-1422-------------------------------
  15373. INT 14 - Alloy MW386 v2+ - RELEASE LOGICAL COMMUNICATIONS PORT
  15374. AH = 22h
  15375. AL = logical port (01h COM1, 02h COM2)
  15376. Return: AX = status (0000h successful)
  15377. SeeAlso: AH=20h"Alloy",AH=21h"Alloy"
  15378. --------S-1422-------------------------------
  15379. INT 14 - MultiDOS Plus - RECEIVE CHARACTER
  15380. AH = 22h
  15381. DX = port number
  15382. Return: AH = status (see also AH=21h"MultiDOS")
  15383. 00h successful
  15384. AL = character
  15385. 3Dh framing and parity error
  15386. 3Eh overrun error
  15387. 3Fh framing error
  15388. 40h parity error
  15389. 96h ring buffer overflow
  15390. Note: if no character is available, this function waits until a character
  15391. arrives or an implementation-dependent timeout elapses
  15392. SeeAlso: AH=20h"MultiDOS",AH=21h"MultiDOS",AH=27h
  15393. --------S-1422-------------------------------
  15394. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - RECEIVE CHARACTER, WITH TIMEOUT
  15395. AH = 22h
  15396. DX = port number
  15397. SI = timeout in timer ticks (0000h = default)
  15398. Return: AH = port status (see also #00304 at AH=03h)
  15399. bit 7 = 1 indicates time-out
  15400. AL = character received
  15401. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  15402. operating system by The Software Link, Inc.
  15403. SeeAlso: AH=02h,AH=0Fh"Digiboard",AH=21h"PC-MOS"
  15404. --------S-1422------------------------------------
  15405. INT 14 - HUNTER 16 - EXTENDED STATUS
  15406. AH = 22h
  15407. DX = port (00h COM1, 01h COM2)
  15408. Return: AH = extended status
  15409. BX = number of characters in input buffer
  15410. CX = number of characters in output buffer
  15411. Desc: returns the most recent Extended Status code for the port
  15412. SeeAlso: AH=21h"HUNTER"
  15413. --------S-1423-------------------------------
  15414. INT 14 - Alloy MW386 v2+ - GET PORT NUMBER FROM LOGICAL PORT ID
  15415. AH = 23h
  15416. AL = logical port (01h COM1, 02h COM2)
  15417. DH = user ID
  15418. DL = process ID (DH,DL both FFh for current task)
  15419. Return: AL = MW386 port mode (see #00351)
  15420. CX = MW386 port number
  15421. DH = owner's user ID
  15422. DL = owner's task ID
  15423. SeeAlso: AH=20h"Alloy",INT 17/AH=8Bh"Alloy"
  15424. Bitfields for MW386 port mode:
  15425. Bit(s) Description (Table 00351)
  15426. 0 port is shared (spooler only)
  15427. 1 port is spooled instead of direct (spooler only)
  15428. 2 port is assigned as logical COM device, not in spooler
  15429. 3 port is free
  15430. --------S-1423-------------------------------
  15431. INT 14 - MultiDOS Plus - GET PORT STATUS
  15432. AH = 23h
  15433. DX = port number
  15434. Return: AH = line status (see #00304 at AH=03h)
  15435. AL = modem status (see #00305 at AH=03h)
  15436. SeeAlso: AH=03h,AH=07h"MultiDOS",AH=20h"MultiDOS"
  15437. --------S-1423-------------------------------
  15438. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - DECLARE PORT OWNERSHIP
  15439. AH = 23h
  15440. DX = port number
  15441. BX = TCB segment/selector address of owner task
  15442. Return: nothing
  15443. SeeAlso: AH=0Dh"Digiboard",AH=21h"PC-MOS",AH=22h"PC-MOS"
  15444. --------S-1423------------------------------------
  15445. INT 14 - HUNTER 16 - CONTROL HANDSHAKE LINES
  15446. AH = 23h
  15447. BH = handshake line to set (00h RTS, 01h DTR)
  15448. BL = new level (00h low, 01h high)
  15449. Return: nothing
  15450. Desc: sets the handshake lines of COM1 to the desired level
  15451. SeeAlso: AH=21h"HUNTER",AH=24h"HUNTER"
  15452. --------S-1424-------------------------------
  15453. INT 14 - Alloy MW386 v2+ - CHANGE PHYSICAL PORT PARAMETERS
  15454. AH = 24h
  15455. CX = physical I/O port number
  15456. DS:DX -> configuration table (see #00352)
  15457. Return: AH = 00h
  15458. Note: invalid port numbers are merely ignored
  15459. SeeAlso: INT 17/AH=96h
  15460. Format of Alloy MW386 configuration table:
  15461. Offset Size Description (Table 00352)
  15462. 00h BYTE baud rate (see #00353)
  15463. 01h BYTE data bits (00h=5, 01h=6, 02h=7, 03h=8)
  15464. 02h BYTE parity (00h none, 01h odd, 02h even)
  15465. 03h BYTE stop bits (00h=1, 01h=2)
  15466. 04h BYTE receive flow control
  15467. 00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC, 04h RTS/CTS
  15468. 05h BYTE transmit flow control (as for receive)
  15469. (Table 00353)
  15470. Values for Alloy MW386 baud rate:
  15471. 00h 38400
  15472. 01h 19200
  15473. 02h 9600
  15474. 03h 7200
  15475. 04h 4800
  15476. 05h 3600
  15477. 06h 2400
  15478. 07h 2000
  15479. 08h 1200
  15480. 09h 600
  15481. 0Ah 300
  15482. 0Bh 150
  15483. 0Ch 134.5
  15484. SeeAlso: #00309
  15485. --------S-1424-------------------------------
  15486. INT 14 - MultiDOS Plus - SET MONITOR MODE
  15487. AH = 24h
  15488. AL = port status storage
  15489. 00h single status for entire receive buffer
  15490. 01h separate status kept for each byte in receive buffer
  15491. DX = port number
  15492. Return: AH = status
  15493. 00h successful
  15494. 3Ah invalid status storage specified
  15495. 41h no such port
  15496. 64h monitor mode already active
  15497. Note: in monitor mode, MultiDOS redirects all BIOS video output to a serial
  15498. port
  15499. SeeAlso: AH=20h"MultiDOS",AH=25h
  15500. --------S-1424-------------------------------
  15501. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - ???
  15502. AH = 24h
  15503. Return: ???
  15504. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  15505. operating system by The Software Link, Inc.
  15506. --------S-1424------------------------------------
  15507. INT 14 - HUNTER 16 - CONTROL CTS HANDSHAKING
  15508. AH = 24h
  15509. AL = new CTS handshake state for COM1 (00h disabled, 01h enabled)
  15510. Return: nothing
  15511. SeeAlso: AH=23h"HUNTER",AH=25h"HUNTER",AH=26h"HUNTER"
  15512. --------S-1425-------------------------------
  15513. INT 14 - MultiDOS Plus - CLEAR BUFFERS
  15514. AH = 25h
  15515. AL = function
  15516. 00h only clear buffers
  15517. 01h clear buffers and deactivate
  15518. DX = port number
  15519. Return: AH = status
  15520. 00h successful
  15521. 3Ah invalid function
  15522. 41h no such port
  15523. 42h monitor mode not active
  15524. SeeAlso: AH=20h"MultiDOS",AH=24h"MultiDOS"
  15525. --------S-1425------------------------------------
  15526. INT 14 - HUNTER 16 - CONTROL RS232 DRIVERS
  15527. AH = 25h
  15528. AL = new state of RS232 drivers (00h off, 01h on)
  15529. Return: nothing
  15530. Note: this function can be used to save power by turning off the RS232
  15531. drivers. It can also be used to turn on the RS232 drivers before
  15532. connecting to a remote system to avoid "garbage" while the drivers
  15533. turn on.
  15534. SeeAlso: AH=23h"HUNTER",AH=24h"HUNTER",AH=26h"HUNTER"
  15535. --------S-1426------------------------------------
  15536. INT 14 - HUNTER 16 - CONTROL RI POWER UP
  15537. AH = 26h
  15538. AL = 00h enable RI power up
  15539. else disable RI power up
  15540. Return: nothing
  15541. Desc: control whether the Ring Indicator handshake can power up the Hunter
  15542. --------S-1427-------------------------------
  15543. INT 14 - MultiDOS Plus - GET BUFFER CHARACTER COUNT
  15544. AH = 27h
  15545. DX = port number
  15546. Return: AH = status
  15547. 00h successful
  15548. 41h no such port
  15549. 42h monitor mode not active
  15550. AL = number of characters in receive buffer
  15551. --------S-1427------------------------------------
  15552. INT 14 - HUNTER 16 - GET INSTALLED PROTOCOLS COUNT
  15553. AH = 27h
  15554. AL = number of extended protocols installed (since last call)
  15555. Return: AL = total number installed, including new ones
  15556. Desc: Returns the number of extended communication protocols installed
  15557. SeeAlso: AH=25h"HUNTER",AH=28h"HUNTER"
  15558. --------S-1428------------------------------------
  15559. INT 14 - HUNTER 16 - GET PROTOCOL NAME
  15560. AH = 28h
  15561. AL = protocol handle
  15562. DS:BX -> 8 character buffer for protocol name
  15563. Return: AH = status
  15564. 00h successful
  15565. DS:BX buffer filled with the protocol name
  15566. FFh failed
  15567. SeeAlso: AH=27h"HUNTER",AH=29h"HUNTER"
  15568. --------S-1429------------------------------------
  15569. INT 14 - HUNTER 16 - GET PROTOCOL HANDLE
  15570. AH = 29h
  15571. DS:BX -> buffer containing the protocol name
  15572. Return: AH = status
  15573. 00h successful
  15574. AL = handle
  15575. FFh failed
  15576. SeeAlso: AH=28h"HUNTER",AH=2Ah"HUNTER"
  15577. --------S-142A------------------------------------
  15578. INT 14 - HUNTER 16 - EXTENDED PROTOCOL MENU
  15579. AH = 2Ah
  15580. AL = protocol handle
  15581. Return: AH = status
  15582. 00h successful
  15583. FFh failed
  15584. AL = menu handle
  15585. SeeAlso: AH=29h"HUNTER",AH=2Bh"HUNTER"
  15586. --------S-142B------------------------------------
  15587. INT 14 - HUNTER 16 - GET EXTENDED PROTOCOL PARAMETERS
  15588. AH = 2Bh
  15589. AL = protocol handle
  15590. DS:BX -> buffer for extended protocol parameters
  15591. Return: AH = status
  15592. 00h successful
  15593. DS:BX buffer filled with extended parameters
  15594. FFh failed
  15595. SeeAlso: AH=2Ah"HUNTER"
  15596. --------S-142C00----------------------------------
  15597. INT 14 - HUNTER 16 - GET DTR
  15598. AX = 2C00h
  15599. Return: AH = 00h
  15600. BL = current state
  15601. 00h normal DTR operation
  15602. else DTR is forced high
  15603. Desc: Indicates whether the DTR signal on COM1 is forced high
  15604. Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
  15605. members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  15606. SeeAlso: AH=2Ch"SET DTR"
  15607. --------S-142C------------------------------------
  15608. INT 14 - HUNTER 16 - SET DTR
  15609. AH = 2Ch
  15610. AL nonzero
  15611. BL = new state
  15612. 00h normal operation
  15613. else force DTR high
  15614. Return: AH = 00h
  15615. Desc: determine whether the DTR signal on COM1 should be forced high
  15616. SeeAlso: AX=2C00h
  15617. --------N-1436-------------------------------
  15618. INT 14 - ComShare - INSTALLATION CHECK
  15619. AH = 36h
  15620. Return: AX = 4353h ('CS') if installed
  15621. BX = bitmap of installed ports (bit 0: COM1 is gateway, etc.)
  15622. CX reserved for future use
  15623. WORD DX:[0100h] = ComShare version number
  15624. Program: The ComShare System is a modem-sharing program for NetBIOS and
  15625. NetWare-based networks by NashaKala Corporation
  15626. Note: ComShare supports the standard BIOS INT 14h calls with a slight
  15627. change in the interpretation of speed values
  15628. (see #00309 at AH=04h"SERIAL")
  15629. SeeAlso: AH=00h"SERIAL",AH=04h"SERIAL",AX=F4FFh
  15630. --------t-144000-----------------------------
  15631. INT 14 - I1541 - INSTALLATION CHECK
  15632. AX = 4000h
  15633. Return: AX = 1541h if installed
  15634. BH = I1541 major version (BCD)
  15635. BL = I1541 minor version (BCD)
  15636. CX = 0000h
  15637. --------t-144001-----------------------------
  15638. INT 14 - I1541 - TEST IF 1541 CABLE CONNECTED
  15639. AX = 4001h
  15640. Return: CF clear if connected
  15641. BL = LPT number where 1541 cable is connected (1..3)
  15642. CF set if cable not connected
  15643. Desc: scan all the LPT ports searching for the adapter cable
  15644. SeeAlso: AX=4000h
  15645. --------t-144002-----------------------------
  15646. INT 14 - I1541 - SELECT LPT PORT FOR OUTPUT
  15647. AX = 4002h
  15648. BL = LPT number (1..3)
  15649. Return: CF clear if successful
  15650. CF set otherwise
  15651. Desc: force the input output routines to work on the cable placed on LPT BL
  15652. SeeAlso: AX=4001h
  15653. --------t-144003-----------------------------
  15654. INT 14 - I1541 - RESET ALL DEVICES
  15655. AX = 4003h
  15656. Return: nothing
  15657. Desc: send a reset pulse of 100ms to all CBM devices
  15658. Note: it is necessary to wait about 2 seconds after reset before executing
  15659. other instructions
  15660. SeeAlso: AX=4000h,AX=4004h
  15661. --------t-144004-----------------------------
  15662. INT 14 - I1541 - SEND LISTEN SIGNAL
  15663. AX = 4004h
  15664. BH = device number (0..15)
  15665. Return: CF clear if successful
  15666. CF set on error
  15667. AL = error number (see #00354)
  15668. SeeAlso: AX=4005h,AX=4006h
  15669. (Table 00354)
  15670. Values for I1541 error number:
  15671. 00h device not present
  15672. 01h listener not ready
  15673. 02h missing EOI time-out
  15674. 03h EOI not completed
  15675. 04h data not released
  15676. 05h frame error
  15677. --------t-144005-----------------------------
  15678. INT 14 - I1541 - SEND SECONDARY ADDRESS FOR LISTEN
  15679. AX = 4005h
  15680. BL = channel number and mode (see #00355)
  15681. Return: CF clear if successful
  15682. CF set on error
  15683. AL = error number (see #00354)
  15684. SeeAlso: AX=4004h,AX=4006h
  15685. Bitfields for I1541 channel number and mode:
  15686. Bit(s) Description (Table 00355)
  15687. 7-4 mode
  15688. 0110 read/write
  15689. 1110 close channel
  15690. 1111 open channel
  15691. 3-0 channel number
  15692. --------t-144006-----------------------------
  15693. INT 14 - I1541 - SEND UNLISTEN SIGNAL
  15694. AX = 4006h
  15695. Return: CF clear if successful
  15696. CF set on error
  15697. AL = error number (see #00354)
  15698. SeeAlso: AX=4004h,AX=4005h
  15699. --------t-144007-----------------------------
  15700. INT 14 - I1541 - SEND TALK SIGNAL
  15701. AX = 4007h
  15702. BH = device number (0-15)
  15703. Return: CF clear if successful
  15704. CF set on error
  15705. AL = error number (see #00354)
  15706. SeeAlso: AX=4008h,AX=4009h
  15707. --------t-144008-----------------------------
  15708. INT 14 - I1541 - SEND SECONDARY ADDRESS FOR TALK
  15709. AX = 4008h
  15710. BL = channel number and mode (see #00355)
  15711. Return: CF clear if successful
  15712. CF set on error
  15713. AL = error number (see also #00354)
  15714. 40h turn around time-out
  15715. SeeAlso: AX=4007h,AX=4009h
  15716. --------t-144009-----------------------------
  15717. INT 14 - I1541 - SEND UNTALK SIGNAL
  15718. AX = 4009h
  15719. Return: CF clear if successful
  15720. CF set on error
  15721. AL = error number (see #00354)
  15722. SeeAlso: AX=4007h,AX=4008h
  15723. --------t-14400A-----------------------------
  15724. INT 14 - I1541 - SEND A BYTE TO A DEVICE
  15725. AX = 400Ah
  15726. BL = byte to send
  15727. CL = last-byte flag
  15728. 00h more bytes follow
  15729. 01h this is the last byte to be sent
  15730. Return: CF clear if successful
  15731. CF set on error
  15732. AL = error number (see #00354)
  15733. SeeAlso: AX=4000h,AX=400Bh
  15734. --------t-14400B-----------------------------
  15735. INT 14 - I1541 - RECEIVE A BYTE FROM A DEVICE
  15736. AX = 400Bh
  15737. Return: CF clear if successful
  15738. AL = byte received
  15739. CL = last-byte flag
  15740. 00h more bytes to follow
  15741. 01h received byte is the last
  15742. CF set on error
  15743. AL = error number
  15744. 80h EOI response required
  15745. 81h talker not ready
  15746. 82h clock not set
  15747. 83h clock not released
  15748. CL = 00h
  15749. SeeAlso: AX=4000h,AX=400Ah
  15750. --------t-14400C-----------------------------
  15751. INT 14 - I1541 - WAIT
  15752. AX = 400Ch
  15753. CX = number of 838ns microticks to wait (0000h means 65536, ~55ms)
  15754. Return: after wait period elapses
  15755. SeeAlso: AX=4000h,AX=400Dh
  15756. --------t-14400D-----------------------------
  15757. INT 14 - I1541 - LONGWAIT
  15758. AX = 400Dh
  15759. DX:CX = number of 838ns microticks to wait
  15760. (0000h:0000h means 4294967296, about one hour)
  15761. Example: To wait 1s you must set DX:CX=(1s/838ns)=1193180
  15762. SeeAlso: AX=4000h,AX=400Ch
  15763. --------t-14400E-----------------------------
  15764. INT 14 - I1541 - GET INFO
  15765. AX = 400Eh
  15766. Return: AX = LPT port I/O address in use (0000h if no cable in use)
  15767. BL = LPT number (1..3) in use (00h if no cable in use)
  15768. CF set if the cable is auto-detectable
  15769. CF clear if cable could not be auto-detected or is not present
  15770. SeeAlso: AX=4000h
  15771. --------S-1456-------------------------------
  15772. INT 14 U - BWCOM14 - INSTALLATION CHECK
  15773. AH = 56h
  15774. Return: CX = 0001h if installed
  15775. Program: BWCOM14 is a network serial port emulator (simulating a Hayes modem
  15776. connected to the serial port) distributed as part of the
  15777. Beame&Whiteside BW-NFS package
  15778. SeeAlso: AH=57h,AH=58h,INT 2F/AX=DF00h/BX=5445h
  15779. --------S-1457-------------------------------
  15780. INT 14 U - BWCOM14 - INITIALIZE
  15781. AH = 57h
  15782. DL = port number
  15783. Return: AL = initialization status (00h successful, 01h already initialized)
  15784. CX = port status (0001h port redirected, 0002h and FFFFh failed)
  15785. Note: after this call, all invocations of INT 14/AH=00h-03h for the specified
  15786. port will be handled by BWCOM14 until AH=58h is called
  15787. SeeAlso: AH=00h"SERIAL",AH=56h,AH=58h
  15788. --------S-1458-------------------------------
  15789. INT 14 U - BWCOM14 - SHUTDOWN
  15790. AH = 58h
  15791. Return: CX = status (0001h successful, 0002h not initialized)
  15792. Note: after this call, BWCOM14 will no longer redirect the COM port
  15793. SeeAlso: AH=56h,AH=57h
  15794. --------N-146F--BXFFFE-----------------------
  15795. INT 14 U - Connection Manager - ???
  15796. AH = 6Fh
  15797. BX = FFFEh
  15798. ???
  15799. Return: ???
  15800. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  15801. serial ports over an IPX or NetBIOS-based network
  15802. --------N-146F--BXFFFF-----------------------
  15803. INT 14 - Connection Manager - INSTALLATION CHECK
  15804. AH = 6Fh
  15805. BX = FFFFh
  15806. Return: DX:BX -> Connection Manager Communication Table if installed
  15807. BX = FFFFh if not installed
  15808. SeeAlso: AH=0Dh/DX=FFFFh
  15809. --------S-146F00-----------------------------
  15810. INT 14 - HP Vectra EX-BIOS - "F14_INQUIRE" - INSTALLATION CHECK
  15811. AX = 6F00h
  15812. BX <> 4850h (usually set to 0000h for simplicity)
  15813. Return: BX = 4850h ("HP") if HP Extended BIOS serial port extensions available
  15814. AX destroyed
  15815. Note: supported by original HP Vectra AT and by ES/QS/RS series Vectras
  15816. SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,INT 10/AX=6F00h,INT 14/AX=6F00h
  15817. SeeAlso: INT 17/AX=6F00h,INT 33/AX=6F00h
  15818. --------S-146F01-----------------------------
  15819. INT 14 - HP Vectra EX-BIOS - "F14_EXINIT" - INITIALIZE SERIAL PORT
  15820. AX = 6F01h
  15821. BX = port attributes (see #00356)
  15822. DX = port number (0-3)
  15823. Return: AH = line status (see #00304)
  15824. AL = modem status (see #00305)
  15825. Note: supported by original HP Vectra AT and by ES/QS/RS series Vectras
  15826. SeeAlso: AX=6F00h
  15827. Bitfields for HP Vectra Extended BIOS serial port attributes:
  15828. Bit(s) Description (Table 00356)
  15829. 8-5 data rate (110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200)
  15830. 4-3 parity
  15831. 00 none
  15832. 01 odd
  15833. 10 none
  15834. 11 even
  15835. 2 stop bits (0 = one, 1 = two)
  15836. 1-0 bits per character
  15837. 10 seven-bit characters
  15838. 11 eight-bit characters
  15839. 0x undefined
  15840. --------S-146F02-----------------------------
  15841. INT 14 - HP Vectra EX-BIOS - "F14_PUT_BUFFER" - TRANSMIT BUFFER
  15842. AX = 6F02h
  15843. CX = number of characters in buffer
  15844. DX = port number (0-3)
  15845. ES:DI -> buffer containing characters
  15846. Return: AH = line status (see #00304)
  15847. AL = modem status (see #00305)
  15848. CX = number of bytes actually sent
  15849. ES:DI -> next byte to be transferred (unchanged if all bytes sent)
  15850. Desc: send characters from the specified buffer until all characters have
  15851. been sent or an error/timeout is encountered
  15852. Note: supported by original HP Vectra AT and by ES/QS/RS series Vectras
  15853. SeeAlso: AX=6F00h,AX=6F03h,AX=6F04h,INT 17/AX=6F02h
  15854. --------S-146F03-----------------------------
  15855. INT 14 - HP Vectra EX-BIOS - "F14_GET_BUFFER" - READ DATA INTO BUFFER
  15856. AX = 6F03h
  15857. CX = size of buffer
  15858. DX = port number (0-3)
  15859. ES:DI -> buffer for received characters
  15860. Return: AH = line status (see #00304)
  15861. ---on error (AH bit 7 set)---
  15862. AL = 00h
  15863. ES:DI -> next byte to be transferred
  15864. ---if successful---
  15865. AL = last byte read
  15866. ES:DI unchanged
  15867. CX = number of bytes read
  15868. Desc: read characters into the specified buffer until the buffer is filled
  15869. or a timeout occurs
  15870. Notes: supported by original HP Vectra AT and by ES/QS/RS series Vectras
  15871. polls the Data Set Ready modem status and Data Ready line status bits
  15872. to determine when characters are available
  15873. SeeAlso: AX=6F00h,AX=6F02h,AX=6F04h
  15874. --------S-146F04-----------------------------
  15875. INT 14 - HP Vectra EX-BIOS - "F14_TRM_BUFFER" - READ UNTIL TERMINATOR
  15876. AX = 6F04h
  15877. BL = lowest termination character
  15878. BH = highest termination character
  15879. CX = size of buffer
  15880. DX = port number (0-3)
  15881. ES:DI -> buffer for received characters
  15882. Return: AH = line status (see #00304)
  15883. ---on error (AH bit 7 set)---
  15884. AL = 00h
  15885. ES:DI -> next byte to be transferred
  15886. ---if successful---
  15887. AL = last byte read
  15888. ES:DI unchanged
  15889. CX = number of bytes read
  15890. Desc: read characters into the specified buffer until the buffer is filled,
  15891. a character in the specified range is received, or a timeout occurs
  15892. Notes: supported by original HP Vectra AT and by ES/QS/RS series Vectras
  15893. polls the Data Set Ready modem status and Data Ready line status bits
  15894. to determine when characters are available
  15895. SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h
  15896. --------U-147000-----------------------------
  15897. INT 14 - NEWCOM - INSTALLATION CHECK
  15898. AX = 7000h
  15899. Return: AX = 4E43h ('NC') if installed
  15900. BX = 4F4Dh ('OM') if installed
  15901. CH = major version number
  15902. CL = minor version number
  15903. DH = patch level
  15904. DL = language (currently: 00h English, 01h French)
  15905. Program: Newcom is a DOS commandline-enhancer by kilobug@kali.isicom.fr
  15906. SeeAlso: INT 2F/AX=D44Dh
  15907. --------S-147E-------------------------------
  15908. INT 14 - FOSSIL - INSTALL AN EXTERNAL APPLICATION FUNCTION
  15909. AH = 7Eh
  15910. AL = code assigned to external application (80h-BFh)
  15911. 80h reserved for communications FOSSIL
  15912. 81h video FOSSIL
  15913. 82h reserved for keyboard FOSSIL
  15914. 83h reserved for system FOSSIL
  15915. ES:DX -> entry point
  15916. Return: AX = 1954h
  15917. BL = code assigned to application (same as input AL)
  15918. DH = status
  15919. 00h failed
  15920. 01h successful
  15921. SeeAlso: AH=7Fh,AH=80h"FOSSIL",AX=8100h,AH=82h"FOSSIL",AH=83h"FOSSIL"
  15922. --------S-147F-------------------------------
  15923. INT 14 - FOSSIL - REMOVE AN EXTERNAL APPLICATION FUNCTION
  15924. AH = 7Fh
  15925. AL = code assigned to external application
  15926. ES:DX -> entry point
  15927. Return: AX = 1954h
  15928. BL = code assigned to application (same as input AL)
  15929. DH = status
  15930. 00h failed
  15931. 01h successful
  15932. SeeAlso: AH=7Eh
  15933. --------S-1480-------------------------------
  15934. INT 14 - COMMUNICATIONS FOSSIL
  15935. AH = 80h
  15936. SeeAlso: AH=7Eh
  15937. --------S-1480-------------------------------
  15938. INT 14 - COURIERS.COM - INSTALLATION CHECK
  15939. AH = 80h
  15940. Return: AH = E8h if loaded
  15941. Program: COURIERS is a TSR utility by PC Magazine
  15942. --------S-148000-----------------------------
  15943. INT 14 - ARTICOM - INSTALLATION CHECK
  15944. AX = 8000h
  15945. Return: AL = FFh if installed
  15946. BH = major version
  15947. BL = minor version
  15948. Program: ArtiCom is an asynchronous communications driver by Artisoft which
  15949. works on top of NetBIOS and allows modem/serial-port sharing by
  15950. programs using INT 14 for serial I/O.
  15951. Note: ArtiCom supports 32 simultaneous COM ports using multiport cards and
  15952. drivers
  15953. SeeAlso: AH=00h"SERIAL",AH=01h,AH=02h,AH=03h,AH=04h"SERIAL",AH=05h"SERIAL"
  15954. SeeAlso: AX=8001h,AX=8002h
  15955. --------S-148000-----------------------------
  15956. INT 14 - COMM-DRV v14.0 - READ PORT METRICS - GET ERROR CODE AND BUFFER STATUS
  15957. AX = 8000h
  15958. DX = port number
  15959. Return: AX = code for last error (see #00357)
  15960. BX = number of characters in output buffer
  15961. CX = nubmer of characters in input buffer
  15962. DX = state flag (see #00358)
  15963. Program: COMM-DRV is a universal serial communications driver by Willies'
  15964. Computer Software Company, which supports standard INT 14 and
  15965. FOSSIL calls as well as its own interfaces
  15966. SeeAlso: AX=8001h"COMM-DRV",AX=8002h"COMM-DRV",AX=8003h"COMM-DRV"
  15967. (Table 00357)
  15968. Values for COMM-DRV error code:
  15969. 00h no error
  15970. 01h buffer not set or attempted to change buffer for active port
  15971. 02h port not active
  15972. 03h transmit buffer full
  15973. 04h receive buffer full
  15974. 05h syntax error
  15975. 06h invalid buffer size
  15976. 07h invalid port
  15977. 08h handler changed
  15978. 09h invalid baud rate
  15979. 0Ah invalid parity setting
  15980. 0Bh invalid data length
  15981. 0Ch invalid number of stop bits
  15982. 0Dh invalid protocol number
  15983. 0Eh IRQ changed
  15984. 0Fh port changged
  15985. 10h invalid threshold setting
  15986. 11h invalid IRQ number
  15987. 12h interrupts not enabled
  15988. 13h invalid break syntax
  15989. 14h fatal error
  15990. 15h CTS error
  15991. 16h invalid RS232 I/O port address
  15992. 17h environment variable not set
  15993. 18h error on IOCTL call
  15994. 19h error during atexit cleanup
  15995. 1Ah error mapping for direct calls
  15996. 1Bh error opening device
  15997. 1Ch unable to allocate memory
  15998. 1Dh error on external micro card
  15999. 1Eh card changed error
  16000. 1Fh card type error
  16001. 20h not supported
  16002. 21h parent port error
  16003. 22h card command buffer full
  16004. 23h no subdevice for this port
  16005. 24h unknown error
  16006. 25h external card busy
  16007. 26h no more timers available
  16008. 27h INT 14 vector changed
  16009. 28h INT 08 vector changed
  16010. 29h DPMI error
  16011. 2Ah TSR buffer too small (or nonexistent)
  16012. 2Bh out of asynchronous resources
  16013. 2Ch out of timer resources
  16014. 2Dh out of "other" timer resources
  16015. 2Eh file I/O error
  16016. 2Fh hardware memory > 64K
  16017. Bitfields for state flag :
  16018. Bit(s) Description (Table 00358)
  16019. 0 port is active
  16020. 1 output throttled (XOFF received, or DSR or CTS reset)
  16021. 2 input throttled (XOFF sent, or DTR or RTS reset)
  16022. --------S-148001-----------------------------
  16023. INT 14 - ARTICOM - UNLOAD ASYNCHRONOUS REDIRECTOR FROM MEMORY
  16024. AX = 8001h
  16025. Return: AX = error code, if error (see #00360)
  16026. SeeAlso: AX=8000h"ARTICOM",AX=8002h"ARTICOM",AX=8003h"ARTICOM"
  16027. Index: uninstall;ARTICOM
  16028. --------S-148001-----------------------------
  16029. INT 14 - COMM-DRV v14.0 - READ PORT METRICS - GET PORT PARAMETERS
  16030. AX = 8001h
  16031. DX = port number
  16032. Return: BX:DI -> Port Control Block (see #00367)
  16033. SeeAlso: AX=8000h"COMM-DRV",AX=8002h"COMM-DRV",AX=8003h"COMM-DRV"
  16034. --------S-148002-----------------------------
  16035. INT 14 - ARTICOM - GET ASYNCHRONOUS REDIRECTOR STATUS
  16036. AX = 8002h
  16037. ES:DI -> buffer for redirector status structure (see #00359)
  16038. Return: AX = error code, if error (see #00360)
  16039. SeeAlso: AX=8000h"ARTICOM",AX=8003h"ARTICOM"
  16040. Format of ARTICOM redirector status:
  16041. Offset Size Description (Table 00359)
  16042. 00h WORD redirector major and minor version numbers
  16043. 02h WORD redirectable ports found
  16044. 04h WORD redirectable ports + local ports found
  16045. 06h WORD redirector internal buffer size
  16046. 08h WORD maximum servers maintained
  16047. 0Ah WORD number of adapters found
  16048. --------S-148002-----------------------------
  16049. INT 14 - COMM-DRV v14.0 - READ PORT METRICS - GET PORT PARAMETERS
  16050. AX = 8002h
  16051. DX = port number
  16052. Return: AH bit 7 set on error
  16053. AH bit 7 clear if successful
  16054. BX:DI -> Port Control Block (see #00367) (modifyable portion only)
  16055. SeeAlso: AX=8000h"COMM-DRV",AX=8001h"COMM-DRV",AX=8003h"COMM-DRV"
  16056. --------S-148003-----------------------------
  16057. INT 14 - ARTICOM - TRANSLATE ERROR CODE TO ERROR STRING
  16058. AX = 8003h
  16059. CX = error number to translate (see #00360)
  16060. Return: ES:DI -> ASCIZ error text or 0000h:0000h if unable to translate
  16061. SeeAlso: AX=8000h
  16062. (Table 00360)
  16063. Values for ARTICOM error codes:
  16064. 00h "No error"
  16065. 01h "An invalid port number was specified"
  16066. 02h "Port is already redirected"
  16067. 03h "Too many ports redirected"
  16068. 04h "Cannot locate the server"
  16069. 05h "Server is busy"
  16070. 06h "Access denied"
  16071. 07h "Resource in use"
  16072. 08h "Resource in use - request queued"
  16073. 09h "No such resource"
  16074. 0Ah "Invalid username/password pair"
  16075. 0Bh "Noncompatible version number"
  16076. 0Ch "Can't remove from memory"
  16077. 0Dh "Bad NETBIOS adapter number"
  16078. 0Eh "No more entries in list"
  16079. 0Fh "Resource is not available at this time"
  16080. 10h "Invalid value to INT 14 call"
  16081. --------S-148003-----------------------------
  16082. INT 14 - COMM-DRV v14.0 - READ PORT METRICS - GET I/O BUFFER SIZES
  16083. AX = 8003h
  16084. DX = port number
  16085. Return: AX = number of characters in input buffer
  16086. BX = input buffer size
  16087. CX = number of characters in output buffer
  16088. DX = output buffer size
  16089. SeeAlso: AX=8000h"COMM-DRV",AX=8001h"COMM-DRV",AX=8002h"COMM-DRV"
  16090. --------S-148004-----------------------------
  16091. INT 14 - ARTICOM - ATTACH ASYNCHRONOUS RESOURCE
  16092. AX = 8004h
  16093. DX = port to redirect (COM1=0, COM2=1, ...)
  16094. CH = attach type
  16095. CL = adapter to use for attach, 0FFh to search all
  16096. ES:DI -> attachment structure (see #00361)
  16097. Return: AX = error code, if error (see #00360)
  16098. Note: The wildcard '*' is supported in the server and resource fields. If
  16099. wild cards are used then the first matching available server is
  16100. attached.
  16101. SeeAlso: AX=8000h,AX=8003h,AX=8005h
  16102. Format of ARTICOM attachment structure:
  16103. Offset Size Description (Table 00361)
  16104. 00h 16 BYTEs server to look for attach
  16105. 10h 16 BYTEs attach to resource name
  16106. 20h 16 BYTEs username for attach
  16107. 30h 16 BYTEs password for username or resource
  16108. 40h BYTE attach type
  16109. 00h normal
  16110. 01h queue if resource is in use (not yet supported in v1.00)
  16111. --------S-148005-----------------------------
  16112. INT 14 - ARTICOM - DETACH ASYNCHRONOUS RESOURCE
  16113. AX = 8005h
  16114. DX = port to detach (COM1=0, COM2=1, ...)
  16115. Return: AX = error code, if error (see #00360)
  16116. Note: only a previously attached resource can be detached
  16117. SeeAlso: AX=8000h,AX=8003h,AX=8004h
  16118. --------S-148006-----------------------------
  16119. INT 14 - ARTICOM - GET RESOURCE INFORMATION
  16120. AX = 8006h
  16121. BX = remote port (COM1=0, COM2=1, ...)
  16122. CL = adapter number, FFh to try all adapters
  16123. ES:DI -> resource information structure (see #00362)
  16124. DS:SI -> 16 byte server name. See note.
  16125. Return: AX = error code, if error (see #00360)
  16126. BX = next remote port, recall to get next resource info
  16127. Note: Wild cards supported in both the resource field and server name
  16128. string DS:SI. If wild cards used then first matching available
  16129. resource information is searched. Set the resource field to FFh to
  16130. return all resources.
  16131. SeeAlso: AX=8000h,AX=8002h,AX=8003h,AX=8007h
  16132. Format of ARTICOM resource information structure:
  16133. Offset Size Description (Table 00362)
  16134. 00h BYTE 00h = free, else used
  16135. 01h 16 BYTEs resource name
  16136. 11h 16 BYTEs username of resource user
  16137. 21h WORD amount of time used
  16138. 23h WORD amount of time remaining
  16139. 53h 48 BYTEs description of resource
  16140. 93h 64 BYTEs initialization string for modem
  16141. B3h 32 BYTEs dial string for modem
  16142. D3h 32 BYTEs hang-up string for modem
  16143. --------S-148007-----------------------------
  16144. INT 14 - ARTICOM - GET REDIRECTED PORT INFORMATION
  16145. AX = 8007h
  16146. DX = port index (COM1=0, COM2=1, ...)
  16147. ES:DI -> buffer for port information structure (see #00363)
  16148. Return: CF clear if redirection info returned and port is redirected
  16149. CF set if not a redirected port
  16150. AX = error code, if error (see #00360)
  16151. SeeAlso: AX=8000h,AX=8003h,AX=8006h,AX=8008h
  16152. Format of ARTICOM port information structure:
  16153. Offset Size Description (Table 00363)
  16154. 00h 16 BYTEs server name resource is on
  16155. 10h BYTE adapter number server is on
  16156. 11h 16 BYTEs resource name
  16157. 21h WORD remote port index, use to get additional information
  16158. 23h WORD buffer size
  16159. 25h WORD baud rate (see #00364)
  16160. 26h BYTE modem status register
  16161. 27h BYTE modem control register
  16162. 28h BYTE line status register
  16163. 29h BYTE line control register
  16164. 2Ah BYTE flow control in use: 0 - NONE, 1 - XON/XOFF, 2 - RTS/CTS
  16165. 2Bh WORD send timeout in ticks
  16166. 2Dh WORD receive timeout in ticks
  16167. 2Fh WORD time used on remote port
  16168. 31h WORD time left before timeout
  16169. 33h BYTE if server changes allowed?
  16170. 34h WORD FFFFh (-1) if connection ok, else old port index
  16171. (Table 00364)
  16172. Values for ARTICOM baud rate:
  16173. 00h 110
  16174. 01h 150
  16175. 02h 300
  16176. 03h 600
  16177. 04h 1200
  16178. 05h 2400
  16179. 06h 4800
  16180. 07h 9600
  16181. 08h 19200
  16182. 09h 38400
  16183. 0Ah 57600
  16184. 0Bh 115200
  16185. 0Ch 134.5
  16186. 0Dh 1800
  16187. 0Eh 2000
  16188. 0Fh 3600
  16189. 10h 7200
  16190. SeeAlso: #00309
  16191. --------S-148008-----------------------------
  16192. INT 14 - ARTICOM - GET AVAILABLE SERVER NAME
  16193. AX = 8008h
  16194. BX = server index (0,1,...)
  16195. ES:DI -> server name structure (see #00365)
  16196. Return: AX = error code, if error (see #00360)
  16197. BX = next remote port, repeat call to get next available server
  16198. Note: the wildcard '*' is supported in the server name field. Set the
  16199. server name to FFh to search for all servers.
  16200. SeeAlso: AX=8000h,AX=8003h,AX=8007h
  16201. Format of ARTICOM server name structure:
  16202. Offset Size Description (Table 00365)
  16203. 00h 16 BYTEs (call) ASCIZ server name
  16204. 10h BYTE (ret) the adapter server is found
  16205. --------S-148009-----------------------------
  16206. INT 14 - ARTICOM - SET SEND AND RECEIVE TIMEOUTS
  16207. AX = 8009h
  16208. BX = send timeout in ticks
  16209. CX = receive timeout in ticks
  16210. DX = port index (COM1=0, COM2=1, ...)
  16211. Return: nothing
  16212. SeeAlso: AX=8000h,AX=800Ah
  16213. --------S-14800A-----------------------------
  16214. INT 14 - ARTICOM - MODIFY FLOW CONTROL
  16215. AX = 800Ah
  16216. BL = flow control type (00h none, 01h XON/XOFF, 02h RTS/CTS)
  16217. DX = port index (COM1=0, COM2=1, ...)
  16218. Return: AX = error code, if error (see #00360)
  16219. Note: for attached ports only!
  16220. SeeAlso: AX=8000h,AX=8003h,AX=8009h
  16221. --------S-148025-----------------------------
  16222. INT 14 - ARTICOM - SET INTERNAL SEND/RECEIVE VECTOR
  16223. AX = 8025h
  16224. DS:DX -> address of trap function (see #00366) to call on read/write
  16225. Return: nothing
  16226. Note: setting the vector to a user function allows the redirector's activity
  16227. to be monitored.
  16228. SeeAlso: AX=8000h,AX=8035h,INT 21/AH=25h
  16229. (Table 00366)
  16230. Values ARTICOM trap function is called with:
  16231. AH = operation
  16232. 80h reading character
  16233. 81h writing character
  16234. AL = character
  16235. Return: AX must be preserved
  16236. far JUMP to old trap function (see AX=8035h)
  16237. --------S-148035-----------------------------
  16238. INT 14 - ARTICOM - GET INTERNAL SEND/RECEIVE VECTOR
  16239. AX = 8035h
  16240. Return: ES:BX -> address of current send/receive routine
  16241. Note: this function returns the address of the routine which is called
  16242. inside A-REDIR.EXE each time a character is received or sent on the
  16243. active COM port.
  16244. SeeAlso: AX=8000h,AX=8025h,INT 21/AH=35h
  16245. --------S-1481-------------------------------
  16246. INT 14 - COURIERS.COM - CHECK IF PORT BUSY
  16247. AH = 81h
  16248. AL = port number (1-4)
  16249. Return: AH = status
  16250. 00h port available
  16251. 01h port exists but already in use
  16252. 02h port nonexistent
  16253. Program: COURIERS is a TSR utility by PC Magazine
  16254. SeeAlso: AH=83h,AH=8Dh
  16255. --------S-1481-------------------------------
  16256. INT 14 - COMM-DRV - EXTENDED INITIALIZATION
  16257. AH = 81h
  16258. BX:DI -> port control block (see #00367)
  16259. DX = port number
  16260. Return: AH = line status register (see #00304)
  16261. error if bit 7 set
  16262. AL = modem status register (see #00305)
  16263. Program: COMM-DRV is a universal serial communications driver by Willies'
  16264. Computer Software Company, which supports standard INT 14 and
  16265. FOSSIL calls as well as its own interfaces
  16266. Note: AX=8001h should be called first to fill in the port control block
  16267. SeeAlso: AH=00h,AX=8001h,AH=82h"COMM-DRV",AH=86h"COMM-DRV"
  16268. Format of COMM-DRV port control block:
  16269. Offset Type Description (Table 00367)
  16270. 00h WORD port IO address
  16271. 02h WORD port IRQ
  16272. 04h WORD baud rate
  16273. 06h WORD parity
  16274. 08h WORD data bits
  16275. 0Ah WORD stop bits
  16276. 0Ch WORD break status (0000h off)
  16277. 0Eh WORD flow control protocol
  16278. 10h BYTE input block
  16279. 11h BYTE output block
  16280. 12h WORD low threshold
  16281. 14h WORD high threshold
  16282. 16h WORD segment of buffer
  16283. 18h WORD offset of buffer
  16284. 1Ah WORD input buffer length
  16285. 1Ch WORD output buffer length
  16286. 1Eh BYTE auxiliary address
  16287. 1Fh BYTE spare
  16288. 20h 4 WORDs spares
  16289. --------V-148100-----------------------------
  16290. INT 14 - VIDEO FOSSIL - RETURN VFOSSIL INFORMATION
  16291. AX = 8100h
  16292. ES:DI -> buffer for VFOSSIL information (see #00368)
  16293. Return: AX = 1954h if installed
  16294. SeeAlso: AH=7Eh,AX=8101h
  16295. Format of VFOSSIL information:
  16296. Offset Size Description (Table 00368)
  16297. 00h WORD size of information in bytes, including this field
  16298. 02h WORD VFOSSIL major version
  16299. 04h WORD VFOSSIL revision level
  16300. 06h WORD highest VFOSSIL application function supported
  16301. --------V-148101-----------------------------
  16302. INT 14 - VIDEO FOSSIL - OPEN VFOSSIL
  16303. AX = 8101h
  16304. ES:DI -> buffer for application function table (see #00369)
  16305. CX = length of buffer in bytes
  16306. Return: AX = 1954h if installed
  16307. BH = highest VFOSSIL application function supported
  16308. Note: the number of initialized pointers in the application function table
  16309. will never exceed CX/4; if the buffer is large enough, BH+1 pointers
  16310. will be initialized
  16311. SeeAlso: AX=8102h
  16312. Format of VFOSSIL application function table:
  16313. Offset Size Description (Table 00369)
  16314. 00h DWORD -> function to query current video mode (VioGetMode)(see #00374)
  16315. 04h DWORD -> function to set video mode (VioSetMode) (see #00375)
  16316. 08h DWORD -> function to query hardware config (VioGetConfig) (see #00376)
  16317. 0Ch DWORD -> function to write data in TTY mode (VioWrtTTY) (see #00377)
  16318. 10h DWORD -> function to get current ANSI state (VioGetANSI) (see #00378)
  16319. 14h DWORD -> function to set new ANSI state (VioSetANSI) (see #00379)
  16320. 18h DWORD -> function to get curr cursor position (VioGetCurPos)
  16321. (see #00380)
  16322. 1Ch DWORD -> function to set cursor position (VioSetCurPos) (see #00381)
  16323. 20h DWORD -> function to get cursor shape (VioGetCurType) (see #00382)
  16324. 24h DWORD -> function to set cursor shape (VioSetCurType) (see #00383)
  16325. 28h DWORD -> function to scroll screen up (VioScrollUp) (see #00384)
  16326. 2Ch DWORD -> function to scroll screen down (VioScrollDn) (see #00385)
  16327. 30h DWORD -> function to read cell string from screen (VioReadCellStr)
  16328. (see #00386)
  16329. 34h DWORD -> function to read char string from screen (VioReadCharStr)
  16330. (see #00387)
  16331. 38h DWORD -> function to write a cell string (VioWrtCellStr)
  16332. (see #00388)
  16333. 3Ch DWORD -> function to write char string, leaving attr (VioWrtCharStr)
  16334. (see #00389)
  16335. 40h DWORD -> function to write char string,const attr (VioWrtCharStrAttr)
  16336. (see #00390)
  16337. 44h DWORD -> function to replicate an attribute (VioWrtNAttr)
  16338. (see #00391)
  16339. 48h DWORD -> function to replicate a cell (VioWrtNCell)
  16340. (see #00392)
  16341. 4Ch DWORD -> function to replicate a character (VioWrtNChar)
  16342. (see #00393)
  16343. Format of VFOSSIL video mode data structure:
  16344. Offset Size Description (Table 00370)
  16345. 00h WORD length of structure including this field
  16346. 02h BYTE mode characteristics
  16347. bit 0: clear if MDA, set otherwise
  16348. bit 1: graphics mode
  16349. bit 2: color disabled (black-and-white)
  16350. 03h BYTE number of colors supported (1=2 colors, 4=16 colors, etc)
  16351. 04h WORD number of text columns
  16352. 06h WORD number of text rows
  16353. 08h WORD reserved
  16354. 0Ah WORD reserved
  16355. 0Ch DWORD reserved
  16356. SeeAlso: #00374,#00375
  16357. Format of VFOSSIL video configuration data:
  16358. Offset Size Description (Table 00371)
  16359. 00h WORD structure length including this field
  16360. 02h WORD adapter type
  16361. 00h monochrome/printer
  16362. 01h CGA
  16363. 02h EGA
  16364. 03h VGA
  16365. 07h 8514/A
  16366. 04h WORD display type
  16367. 00h monochrome
  16368. 01h color
  16369. 02h enhanced color
  16370. 09h 8514
  16371. 06h DWORD adapter memory size
  16372. SeeAlso: #00376
  16373. Format of VFOSSIL cursor type record:
  16374. Offset Size Description (Table 00372)
  16375. 00h WORD cursor start line
  16376. 02h WORD cursor end line
  16377. 04h WORD cursor width (always 01h)
  16378. 06h WORD cursor attribute (FFFFh = hidden)
  16379. (Table 00373)
  16380. Values for VFOSSIL error code:
  16381. 0000h successful
  16382. 0074h internal VIO failure
  16383. 0163h unsupported mode
  16384. 0166h invalid row value
  16385. 0167h invalid column value
  16386. 017Eh buffer too small
  16387. 01A5h invalid VIO parameter
  16388. 01B4h invalid VIO handle
  16389. (Table 00374)
  16390. Call VioGetMode with:
  16391. STACK: WORD VIO handle (must be 00h)
  16392. DWORD pointer to video mode data structure (see #00370)
  16393. Return: AX = error code (00h, 74h, 17Eh, 1B4h) (see #00373)
  16394. SeeAlso: #00375
  16395. (Table 00375)
  16396. Call VioSetMode with:
  16397. STACK: WORD VIO handle (must be 00h)
  16398. DWORD pointer to video mode data structure (see #00370)
  16399. Return: AX = error code (00h, 74h, 163h, 17Eh, 1A5h, 1B4h) (see #00373)
  16400. SeeAlso: #00374
  16401. (Table 00376)
  16402. Call VioGetConfig with:
  16403. STACK: WORD VIO handle (must be 00h)
  16404. DWORD pointer to video configuration data buffer (see #00371)
  16405. Return: AX = error code (00h, 74h, 17Eh, 1B4h) (see #00373)
  16406. (Table 00377)
  16407. Call VioWrtTTY with:
  16408. STACK: WORD VIO handle (must be 00h)
  16409. WORD length of string
  16410. DWORD pointer to character string to be written to screen
  16411. Return: AX = error code (00h, 74h, 1B4h) (see #00373)
  16412. Notes: write wraps at end of line and terminates if it reaches end of screen
  16413. in ANSI mode, ANSI control sequences are interpreted, and this func is
  16414. not required to be reentrant; in non-ANSI mode, the function is
  16415. reentrant and may be called from within an MS-DOS function call
  16416. (Table 00378)
  16417. Call VioGetANSI with:
  16418. STACK: WORD VIO handle (must be 00h)
  16419. DWORD pointer to WORD which will be set to 00h if ANSI is off
  16420. or 01h if ANSI is on
  16421. Return: AX = error code (00h, 74h, 1B4h) (see #00373)
  16422. SeeAlso: #00379
  16423. (Table 00379)
  16424. Call VioSetANSI with:
  16425. STACK: WORD VIO handle (must be 00h)
  16426. DWORD pointer to WORD indicating new state of ANSI
  16427. 00h off, 01h on
  16428. Return: AX = error code (00h, 74h, 1A4h, 1B4h) (see #00373)
  16429. SeeAlso: #00378
  16430. (Table 00380)
  16431. Call VioGetCurPos with:
  16432. STACK: WORD VIO handle (must be 00h)
  16433. DWORD pointer to WORD to hold current cursor column (0-based)
  16434. DWORD pointer to WORD to hold current cursor row (0-based)
  16435. Return: AX = error code (00h, 74h, 1B4h) (see #00373)
  16436. SeeAlso: #00381
  16437. (Table 00381)
  16438. Call VioSetCurPos with:
  16439. STACK: WORD VIO handle (must be 00h)
  16440. WORD cursor column
  16441. WORD cursor row
  16442. Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #00373)
  16443. Note: if either coordinate is invalid, the cursor is not moved
  16444. SeeAlso: #00380
  16445. (Table 00382)
  16446. Call VioGetCurType with:
  16447. STACK: WORD VIO handle (must be 00h)
  16448. DWORD pointer to cursor type record (see #00372)
  16449. Return: AX = error code (00h, 74h, 1B4h) (see #00373)
  16450. SeeAlso: #00383
  16451. (Table 00383)
  16452. Call VioSetCurType with:
  16453. STACK: WORD VIO handle (must be 00h)
  16454. DWORD pointer to cursor type record (see #00372)
  16455. Return: AX = error code (00h, 74h, 1A4h, 1B4h) (see #00373)
  16456. SeeAlso: #00384
  16457. (Table 00384)
  16458. Call VioScrollUp with:
  16459. STACK: WORD VIO handle (must be 00h)
  16460. DWORD pointer to char/attr cell for filling emptied rows
  16461. WORD number or rows to scroll (FFFFh = clear area)
  16462. WORD right column of scroll area
  16463. WORD bottom row of scroll area
  16464. WORD left column of scroll area
  16465. WORD top row of scroll area
  16466. Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #00373)
  16467. SeeAlso: #00385,INT 10/AH=06h
  16468. (Table 00385)
  16469. Call VioScrollDn with:
  16470. STACK: WORD VIO handle (must be 00h)
  16471. DWORD pointer to char/attr cell for filling emptied rows
  16472. WORD number or rows to scroll (FFFFh = clear area)
  16473. WORD right column of scroll area
  16474. WORD bottom row of scroll area
  16475. WORD left column of scroll area
  16476. WORD top row of scroll area
  16477. Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #00373)
  16478. SeeAlso: #00384,INT 10/AH=07h
  16479. (Table 00386)
  16480. Call VioReadCellStr with:
  16481. STACK: WORD VIO handle (must be 00h)
  16482. WORD column at which to start reading
  16483. WORD row at which to start reading
  16484. DWORD pointer to WORD containing length of buffer in bytes
  16485. on return, WORD contains number of bytes actually read
  16486. DWORD pointer to buffer for cell string
  16487. Return: AX = error code (00h, 74h, 166h ,167h, 1B4h) (see #00373)
  16488. (Table 00387)
  16489. Call VioReadCharStr with:
  16490. STACK: WORD VIO handle (must be 00h)
  16491. WORD column at which to start reading
  16492. WORD row at which to start reading
  16493. DWORD pointer to WORD containing length of buffer in bytes
  16494. on return, WORD contains number of bytes actually read
  16495. DWORD pointer to buffer for character string
  16496. Return: AX = error code (00h, 74h, 166h ,167h, 1B4h) (see #00373)
  16497. (Table 00388)
  16498. Call VioWrtCellStr with:
  16499. STACK: WORD VIO handle (must be 00h)
  16500. WORD column at which to start writing
  16501. WORD row at which to start writing
  16502. WORD length of cell string in bytes
  16503. DWORD pointer to cell string to write
  16504. Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #00373)
  16505. Note: write wraps at end of line and terminates if it reaches end of screen
  16506. (Table 00389)
  16507. Call VioWrtCharStr with:
  16508. STACK: WORD VIO handle (must be 00h)
  16509. WORD column at which to start writing
  16510. WORD row at which to start writing
  16511. WORD length of character string
  16512. DWORD pointer to character string to write
  16513. Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #00373)
  16514. Note: write wraps at end of line and terminates if it reaches end of screen
  16515. (Table 00390)
  16516. Call VioWrtCharStrAttr with:
  16517. STACK: WORD VIO handle (must be 00h)
  16518. DWORD pointer to attribute to be applied to each character
  16519. WORD column at which to start writing
  16520. WORD row at which to start writing
  16521. WORD length of character string
  16522. DWORD pointer to character string to write
  16523. Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #00373)
  16524. Note: write wraps at end of line and terminates if it reaches end of screen
  16525. (Table 00391)
  16526. Call VioWrtNAttr with:
  16527. STACK: WORD VIO handle (must be 00h)
  16528. WORD column at which to start writing
  16529. WORD row at which to start writing
  16530. WORD number of times to write attribute
  16531. DWORD pointer to display attribute to replicate
  16532. Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #00373)
  16533. Note: write wraps at end of line and terminates if it reaches end of screen
  16534. (Table 00392)
  16535. Call VioWrtNCell with:
  16536. STACK: WORD VIO handle (must be 00h)
  16537. WORD column at which to start writing
  16538. WORD row at which to start writing
  16539. WORD number of times to write cell
  16540. DWORD pointer to cell to replicate
  16541. Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #00373)
  16542. Note: write wraps at end of line and terminates if it reaches end of screen
  16543. (Table 00393)
  16544. Call VioWrtNChar with:
  16545. STACK: WORD VIO handle (must be 00h)
  16546. WORD column at which to start writing
  16547. WORD row at which to start writing
  16548. WORD number of times to write character
  16549. DWORD pointer to character to replicate
  16550. Return: AX = error code (00h, 74h, 166h, 167h, 1B4h) (see #00373)
  16551. Note: write wraps at end of line and terminates if it reaches end of screen
  16552. --------V-148102-----------------------------
  16553. INT 14 - VIDEO FOSSIL - CLOSE VFOSSIL
  16554. AX = 8102h
  16555. Return: AX = 1954h
  16556. Note: terminates all operations; after this call, the video FOSSIL may either
  16557. be removed from memory or reinitialized
  16558. SeeAlso: AX=8101h,AX=8103h
  16559. --------V-148103-----------------------------
  16560. INT 14 - VIDEO FOSSIL - UNINSTALL
  16561. AX = 8103h
  16562. Return: AX = 1954h
  16563. Note: this is an extension to the VFOSSIL spec by Bob Hartman's VFOS_IBM
  16564. --------K-1482-------------------------------
  16565. INT 14 - KEYBOARD FOSSIL
  16566. AH = 82h
  16567. SeeAlso: AH=7Eh
  16568. --------S-1482-------------------------------
  16569. INT 14 - COURIERS.COM - CONFIGURE PORT
  16570. AH = 82h
  16571. AL = port number (1-4)
  16572. BX = speed (bps)
  16573. CX = bit flags
  16574. bit 0: enable input flow control
  16575. bit 1: enable output flow control
  16576. bit 2: use X.PC protocol (not yet implemented)
  16577. Return: nothing
  16578. SeeAlso: AH=00h,AH=8Ch,INT 7A"X.PC"
  16579. --------S-1482-------------------------------
  16580. INT 14 - COMM-DRV v14.0 - PORT CLEANUP
  16581. AH = 82h
  16582. DX = port number
  16583. Return: AH bit 7 set on error
  16584. AH bit 7 clear if successful
  16585. Desc: reset the port to its state before the AH=81h initialization and unhook
  16586. any interrupts used by the port
  16587. SeeAlso: AH=81h"COMM-DRV",AH=83h"COMM-DRV"
  16588. ----------1483-------------------------------
  16589. INT 14 - SYSTEM FOSSIL
  16590. AH = 83h
  16591. SeeAlso: AH=7Eh
  16592. --------S-1483-------------------------------
  16593. INT 14 - COURIERS.COM - START INPUT
  16594. AH = 83h
  16595. ES:BX -> circular input buffer
  16596. CX = length of buffer
  16597. (should be at least 128 bytes if input flow control enabled)
  16598. Return: nothing
  16599. SeeAlso: AH=18h,AH=87h,AH=8Dh,AH=A5h"BAPI"
  16600. --------S-1483-------------------------------
  16601. INT 14 - COMM-DRV v14.0 - FLUSH COMMUNICATION BUFFERS
  16602. AH = 83h
  16603. DX = port number
  16604. AL = subfunction
  16605. 00h flush input buffer
  16606. 01h flush output buffer
  16607. 02h flush both buffers
  16608. Return: AH bit 7 set on error
  16609. AH bit 7 clear if successful
  16610. SeeAlso: AH=81h"COMM-DRV",AH=84h"COMM-DRV"
  16611. --------S-1484-------------------------------
  16612. INT 14 - COURIERS.COM - READ CHARACTER
  16613. AH = 84h
  16614. Return: ZF set if no characters available
  16615. ZF clear
  16616. AL = character
  16617. AH = modem status bits
  16618. bit 7: set on input buffer overflow
  16619. SeeAlso: AH=02h,AH=86h,AH=89h
  16620. --------S-1484-------------------------------
  16621. INT 14 - COMM-DRV v14.0 - SEND PACKET
  16622. AH = 84h
  16623. CX = packet length in bytes
  16624. DX = port number
  16625. ES:DI -> packet to be sent
  16626. Return: AH = line status (see #00304)
  16627. bit 7 set on error
  16628. AL destroyed
  16629. SeeAlso: AH=83h"COMM-DRV",AH=85h"COMM-DRV",AH=86h"COMM-DRV"
  16630. --------S-1485-------------------------------
  16631. INT 14 - COURIERS.COM - FLUSH PENDING INPUT
  16632. AH = 85h
  16633. Return: nothing
  16634. SeeAlso: AH=0Ah,AH=88h"COURIERS"
  16635. --------S-1485-------------------------------
  16636. INT 14 - COMM-DRV v14.0 - RECEIVE PACKET
  16637. AH = 85h
  16638. CX = length of packet in bytes
  16639. DX = port number
  16640. ES:DI -> buffer for packet
  16641. Return: AH = line status (see #00304)
  16642. bit 7 set on error
  16643. AL destroyed
  16644. Note: this call requires that at least the requested number of bytes are
  16645. already present in the input buffer, and will fail if there are
  16646. fewer bytes available
  16647. SeeAlso: AH=84h"COMM-DRV",AH=86h"COMM-DRV",AH=8Eh"COMM-DRV"
  16648. --------S-1486-------------------------------
  16649. INT 14 - COURIERS.COM - START OUTPUT
  16650. AH = 86h
  16651. ES:BX -> output buffer
  16652. CX = length of output buffer
  16653. Return: nothing
  16654. SeeAlso: AH=19h,AH=83h"COURIERS",AH=A4h"BAPI"
  16655. --------S-1486-------------------------------
  16656. INT 14 - COMM-DRV v14.0 - SET INPUT/OUTPUT TIMEOUTS
  16657. AH = 86h
  16658. BL = maximum clock ticks to wait before signalling error on input func
  16659. BH = maximum clock ticks to wait before signalling error on output
  16660. DX = port number
  16661. SI = input timeout in clock ticks if BL=FFh and BH=FFh
  16662. DI = output timeout in clock ticks if BL=FFh and BH=FFh
  16663. Return: AH bit 7 set on error
  16664. AH bit 7 clear if successful
  16665. Note: functions 02h, 85h, and 8Eh will wait for the input timeout before
  16666. returning an error when no data is available; functions 01h and 84h
  16667. will wait for the output timeout before returning an error if there
  16668. is no space to output the data
  16669. SeeAlso: AH=01h,AH=02h,AH=84h"COMM-DRV",AH=85h"COMM-DRV",AH=8Eh"COMM-DRV"
  16670. --------S-1487-------------------------------
  16671. INT 14 - COURIERS.COM - OUTPUT STATUS
  16672. AH = 87h
  16673. Return: AX = number of unsent characters
  16674. SeeAlso: AH=88h"COURIERS"
  16675. --------S-1487-------------------------------
  16676. INT 14 - COMM-DRV v14.0 - TURN ON DTR
  16677. AH = 87h
  16678. DX = port number
  16679. Return: AH bit 7 set on error
  16680. AH bit 7 clear if successful
  16681. SeeAlso: AX=8000h"COMM-DRV",AH=88h"COMM-DRV",AH=89h"COMM-DRV"
  16682. --------S-1488-------------------------------
  16683. INT 14 - COURIERS.COM - ABORT OUTPUT
  16684. AH = 88h
  16685. SeeAlso: AH=09h"FOSSIL",AH=85h"COURIERS"
  16686. --------S-1488-------------------------------
  16687. INT 14 - COMM-DRV v14.0 - TURN OFF DTR
  16688. AH = 88h
  16689. DX = port number
  16690. Return: AH bit 7 set on error
  16691. AH bit 7 clear if successful
  16692. Program: COMM-DRV is a universal serial communications driver by Willies'
  16693. Computer Software Company, which supports standard INT 14 and
  16694. FOSSIL calls as well as its own interfaces
  16695. SeeAlso: AX=8000h"COMM-DRV",AH=87h"COMM-DRV",AH=8Ah"COMM-DRV"
  16696. --------S-1489-------------------------------
  16697. INT 14 - COURIERS.COM - SEND SINGLE CHARACTER
  16698. AH = 89h
  16699. CL = character to send
  16700. Return: nothing
  16701. SeeAlso: AH=01h,AH=84h"COURIERS"
  16702. --------S-1489-------------------------------
  16703. INT 14 - COMM-DRV v14.0 - TURN ON RTS
  16704. AH = 89h
  16705. DX = port number
  16706. Return: AH bit 7 set on error
  16707. AH bit 7 clear if successful
  16708. SeeAlso: AX=8000h"COMM-DRV",AH=87h"COMM-DRV",AH=8Ah"COMM-DRV"
  16709. --------S-148A-------------------------------
  16710. INT 14 - COURIERS.COM - SEND BREAK
  16711. AH = 8Ah
  16712. Return: nothing
  16713. SeeAlso: AH=89h"COURIERS",AH=FAh
  16714. --------S-148A-------------------------------
  16715. INT 14 - COMM-DRV v14.0 - TURN OFF RTS
  16716. AH = 8Ah
  16717. DX = port number
  16718. Return: AH bit 7 set on error
  16719. AH bit 7 clear if successful
  16720. SeeAlso: AX=8000h"COMM-DRV",AH=88h"COMM-DRV",AH=89h"COMM-DRV"
  16721. --------S-148B-------------------------------
  16722. INT 14 - COMM-DRV v14.0 - SET USER INTERRUPT ROUTINE
  16723. AH = 8Bh
  16724. CX = bitmask of interrupt to process
  16725. 00h = deinstall
  16726. BX:DI -> DWORD containing address of function to be called
  16727. Return: AH bit 7 clear if successful
  16728. AH bit 7 set on error
  16729. --------S-148C-------------------------------
  16730. INT 14 - COURIERS.COM - SET SPEED
  16731. AH = 8Ch
  16732. BX = speed in bps
  16733. Return: nothing
  16734. SeeAlso: AH=00h,AH=82h"COURIERS"
  16735. --------S-148C-------------------------------
  16736. INT 14 - COMM-DRV v14.0 - READ UART REGISTER
  16737. AH = 8Ch
  16738. AL = register offset
  16739. DX = port number
  16740. Return: AH bit 7 set on error
  16741. AH bit 7 clear if successful
  16742. AL = contents of UART register
  16743. SeeAlso: AH=8Dh"COMM-DRV"
  16744. --------S-148D-------------------------------
  16745. INT 14 - COURIERS.COM - DECONFIGURE PORT
  16746. AH = 8Dh
  16747. Return: nothing
  16748. SeeAlso: AH=82h"COURIERS"
  16749. --------S-148D-------------------------------
  16750. INT 14 - COMM-DRV v14.0 - WRITE UART REGISTER
  16751. AH = 8Dh
  16752. AL = register offset
  16753. BL = new value for UART register
  16754. DX = port number
  16755. Return: AH bit 7 set on error
  16756. AH bit 7 clear if successful
  16757. SeeAlso: AH=8Ch"COMM-DRV"
  16758. --------S-148E-------------------------------
  16759. INT 14 - COMM-DRV v14.0 - READ PACKET NONDESTRUCTIVELY
  16760. AH = 8Eh
  16761. CX = length of packet in bytes
  16762. DX = port number
  16763. ES:DI -> buffer for packet
  16764. Return: AH = line status (see #00304)
  16765. bit 7 set on error (see AX=8000h"COMM-DRV")
  16766. AL destroyed
  16767. Program: COMM-DRV is a universal serial communications driver by Willies'
  16768. Computer Software Company, which supports standard INT 14 and
  16769. FOSSIL calls as well as its own interfaces
  16770. Desc: retrieve a packet from the input buffer without removing it from the
  16771. buffer
  16772. Note: this call requires that at least the requested number of bytes are
  16773. already present in the input buffer, and will fail if there are
  16774. fewer bytes available
  16775. SeeAlso: AX=8000h"COMM-DRV",AH=84h"COMM-DRV",AH=85h"COMM-DRV",AH=86h"COMM-DRV"
  16776. --------S-14A0-------------------------------
  16777. INT 14 - 3com BAPI SERIAL I/O - CONNECT TO PORT
  16778. AH = A0h
  16779. ES:BX -> ASCIZ internet host name
  16780. CX = length of name
  16781. Return: AH = return code (00h,04h-06h,08h,0Ah-0Ch) (see #00394)
  16782. CL = session ID
  16783. Program: the Bridge Application Program Interface is a set of functions which
  16784. makes many of the details of LAN communications transparent
  16785. Note: Novell TELAPI.EXE returns AH=09h (not supported) and CL=00h
  16786. SeeAlso: AH=A1h"BAPI",AH=A2h"BAPI",AH=A5h"BAPI",AX=AF00h
  16787. (Table 00394)
  16788. Values for 3com BAPI return code:
  16789. 00h successful
  16790. 01h no characters written
  16791. 02h no characters read
  16792. 03h no such session
  16793. 04h clearinghouse name not found
  16794. 05h no response from host
  16795. 06h no more sessions available
  16796. 07h session aborted
  16797. 08h invalid clearinghouse name
  16798. 09h not supported
  16799. 0Ah internal (general) network error
  16800. 0Bh out of memory
  16801. 0Ch invalid IP address
  16802. --------S-14A0--CXFFFF-----------------------
  16803. INT 14 - Interconnections Inc. TES - INSTALLATION CHECK/STATUS REPORT
  16804. AH = A0h
  16805. CX = FFFFh
  16806. Return: CF clear if successful
  16807. AX = 5445h ('TE')
  16808. CX <> FFFFh
  16809. DX = port number
  16810. CF set on error
  16811. Program: TES is a network serial port emulation program
  16812. SeeAlso: AH=A1h"TES"
  16813. --------S-14A1-------------------------------
  16814. INT 14 - 3com BAPI SERIAL I/O - DISCONNECT FROM PORT
  16815. AH = A1h
  16816. DH = session ID (00h for external session managment)
  16817. Return: AH = return code (00h,03h,07h,0Ah,0Bh) (see #00394)
  16818. AL destroyed (Novell TELAPI.EXE)
  16819. SeeAlso: AH=A0h"BAPI"
  16820. --------S-14A1-------------------------------
  16821. INT 14 - Interconnections Inc. TES - GET LIST OF SESSIONS WITH STATUS
  16822. AH = A1h
  16823. Return: CX = number of active sessions
  16824. ES:SI -> status array (see #00395)
  16825. SeeAlso: AH=A2h"TES",AH=A3h"TES"
  16826. Format of Interconnections TES status array entry:
  16827. Offset Size Description (Table 00395)
  16828. 00h BYTE status
  16829. 01h WORD offset of name
  16830. --------S-14A2-------------------------------
  16831. INT 14 - 3com BAPI SERIAL I/O - WRITE CHARACTER
  16832. AH = A2h
  16833. AL = character
  16834. DH = session ID (00h for external session managment)
  16835. Return: AH = return code (00h,01h,03h,07h,0Ah,0Bh) (see #00394)
  16836. SeeAlso: AH=A0h"BAPI",AH=A3h"BAPI",AH=A4h"BAPI"
  16837. --------S-14A2-------------------------------
  16838. INT 14 - Interconnections Inc. TES - GET LIST OF SERVER NAMES
  16839. AH = A2h
  16840. Return: CX = number of servers
  16841. ES:SI -> array of offsets from ES for server names
  16842. SeeAlso: AH=A1h"TES"
  16843. --------S-14A3-------------------------------
  16844. INT 14 - 3com BAPI SERIAL I/O - READ CHARACTER
  16845. AH = A3h
  16846. DH = session ID (00h for external session managment)
  16847. Return: AH = return code (00h,02h,03h,07h,0Ah,0Bh) (see #00394)
  16848. AL = character read or 00h if none available
  16849. SeeAlso: AH=A0h"BAPI",AH=A2h"BAPI",AH=A5h"BAPI",AH=A7h"BAPI"
  16850. --------S-14A3-------------------------------
  16851. INT 14 - Interconnections Inc. TES - START A NEW SESSION
  16852. AH = A3h
  16853. ES:SI -> ???
  16854. Return: CF clear if successful
  16855. AX = 5445h ('TE')
  16856. CX <> FFFFh
  16857. DX = port number
  16858. CF set on error
  16859. SeeAlso: AH=A1h"TES",AH=A4h"TES",AH=A6h"TES"
  16860. --------S-14A4-------------------------------
  16861. INT 14 - 3com BAPI SERIAL I/O - WRITE BLOCK
  16862. AH = A4h
  16863. CX = length of buffer in bytes
  16864. DH = session ID (00h for external session managment)
  16865. ES:BX -> buffer containing data
  16866. Return: AH = return code (00h,01h,03h,07h,0Ah,0Bh) (see #00394)
  16867. CX = number of bytes actually sent
  16868. SeeAlso: AH=19h,AH=86h,AH=A0h"BAPI",AH=A5h"BAPI"
  16869. --------S-14A4-------------------------------
  16870. INT 14 - Interconnections Inc. TES - HOLD CURRENTLY ACTIVE SESSION
  16871. AH = A4h
  16872. ???
  16873. Return: ???
  16874. SeeAlso: AH=A3h"TES",AH=A5h"TES"
  16875. --------S-14A5-------------------------------
  16876. INT 14 - 3com BAPI SERIAL I/O - READ BLOCK
  16877. AH = A5h
  16878. CX = length of buffer
  16879. DH = session ID (00h for external session managment)
  16880. ES:BX -> buffer for data
  16881. Return: AH = return code (00h,02h,03h,07h,0Ah,0Bh) (see #00394)
  16882. CX = number of bytes actually read
  16883. SeeAlso: AH=18h,AH=83h"COURIERS",AH=A0h"BAPI",AH=A3h"BAPI",AH=A4h"BAPI"
  16884. SeeAlso: AH=A7h"BAPI",AX=FF02h
  16885. --------S-14A5-------------------------------
  16886. INT 14 - Interconnections Inc. TES - RESUME A SESSION
  16887. AH = A5h
  16888. AL = session number
  16889. Return: ???
  16890. SeeAlso: AH=A4h"TES",AH=A6h"TES"
  16891. --------S-14A6-------------------------------
  16892. INT 14 - 3com BAPI SERIAL I/O - SEND SHORT BREAK
  16893. AH = A6h
  16894. DH = session ID (00h for external session managment)
  16895. Return: AH = return code (00h,03h,07h,0Ah,0Bh) (see #00394)
  16896. Desc: generate a short break signal; if data delivery was turned off by the
  16897. break, wait for the host to turn it on again
  16898. SeeAlso: AH=1Ah,AH=8Ah,AH=FAh,AH=A0h"BAPI"
  16899. --------S-14A6-------------------------------
  16900. INT 14 - Interconnections Inc. TES - DROP A SESSION
  16901. AH = A6h
  16902. AL = session number
  16903. Return: AH = status
  16904. 00h successful
  16905. else error
  16906. SeeAlso: AH=A3h"TES",AH=A5h"TES"
  16907. --------S-14A7-------------------------------
  16908. INT 14 - 3com BAPI SERIAL I/O - READ STATUS
  16909. AH = A7h
  16910. DH = session ID (00h for external session managment)
  16911. Return: AH = return code (00h,03h,07h,0Ah,0Bh) (see #00394)
  16912. CX = number of bytes available for reading
  16913. Note: Novell TELAPI.EXE v4.01 always returns either 0 or 1 bytes available
  16914. SeeAlso: AH=A5h"BAPI"
  16915. --------S-14A7-------------------------------
  16916. INT 14 - Interconnections Inc. TES - SWITCH TO NEXT ACTIVE SESSION
  16917. AH = A7h
  16918. ???
  16919. Return: ???
  16920. SeeAlso: AH=A3h"TES",AH=A5h"TES"
  16921. --------S-14A8-------------------------------
  16922. INT 14 - Interconnections Inc. TES - SEND STRING TO COMMAND INTERPRETER
  16923. AH = A8h
  16924. AL = 00h no visible response
  16925. ES:SI -> ASCIZ command
  16926. Return: ???
  16927. --------N-14A8-------------------------------
  16928. INT 14 - Novell TelAPI v4.01 - CONNECTION INFORMATION???
  16929. AH = A8h
  16930. DH = session ID???
  16931. CH = subfunction
  16932. 02h ???
  16933. 0Dh ???
  16934. 0Fh ???
  16935. 10h ???
  16936. 11h ???
  16937. 28h ???
  16938. else
  16939. Return: AH = 09h (not supported)
  16940. Return: AH = return code (see #00394)
  16941. 00h successful
  16942. CL = ??? (0/1/8) (subfunctions 02h,0Dh,0Fh,10h)
  16943. CL = ??? (7Fh/FFh) (subfunction 28h)
  16944. CX = ??? (subfunction 11h)
  16945. SeeAlso: AH=A9h"TelAPI"
  16946. --------N-14A9-------------------------------
  16947. INT 14 - Novell TelAPI v4.01 - CONNECTION CONTROL???
  16948. AH = A9h
  16949. DH = session ID???
  16950. CH = subfunction
  16951. 02h ???
  16952. 0Dh ???
  16953. 0Fh ???
  16954. 10h ???
  16955. 11h ???
  16956. 28h ???
  16957. else
  16958. Return: AH = 09h (not supported)
  16959. ???
  16960. Return: AH = return code (see #00394)
  16961. ???
  16962. SeeAlso: AH=A8h"TelAPI",AH=E4h,INT 6B/AX=0600h
  16963. --------V-14AA01-----------------------------
  16964. INT 14 - DimVGA v2.0+ - INSTALLATION CHECK
  16965. AX = AA01h
  16966. Return: AX = FFFFh if installed, unchanged
  16967. BX = version (v1.5+ only), BH = major, BL = minor (v1.5 = 0105h)
  16968. CX = resident segment (v3.1+)
  16969. Program: DimVGA is a public domain screen saver by Menno Pieters
  16970. SeeAlso: AX=AA02h,AX=AA03h,AX=AA06h,INT 11/AX=0225h/BX=6900h,INT 12"KEYBUI"
  16971. SeeAlso: INT 2D/AL=10h"Burnout Plus",INT 2F/AX=6400h,INT 2F/AH=93h
  16972. SeeAlso: INT 2F/AX=C000h"VGAsave",INT 2F/AX=C000h"AD-DOS",INT 2F/AX=C050h
  16973. SeeAlso: INT 2F/AX=E300h
  16974. Index: screen saver;DimVGA
  16975. --------V-14AA02-----------------------------
  16976. INT 14 - DimVGA v2.0+ - SET TIME-OUT (DIMMING/BLANKING) PERIOD
  16977. AX = AA02h
  16978. BX = number of clock ticks
  16979. Return: AX = FFFFh
  16980. Note: on screen modes with 256 or less colors DimVGA will dim the screen,
  16981. when more than 256 colors can be used DimVGA will blank the screen.
  16982. SeeAlso: AX=AA01h,AX=AA03h,AX=AA04h,AX=AA06h
  16983. Index: screen saver;DimVGA
  16984. --------V-14AA03-----------------------------
  16985. INT 14 - DimVGA v2.0+ - SET DIMMING FACTOR
  16986. AX = AA03h
  16987. BX = percentage remaining visible (1-99)
  16988. Return: AX = FFFFh
  16989. SeeAlso: AX=AA02h,AX=AA05h,AX=AA06h
  16990. Index: screen saver;DimVGA
  16991. --------V-14AA04-----------------------------
  16992. INT 14 - DimVGA v2.0+ - GET TIME-OUT PERIOD
  16993. AX = AA04h
  16994. Return: AX = FFFFh
  16995. BX = current time-out in clock ticks
  16996. SeeAlso: AX=AA02h,AX=AA05h,AX=AA0Ah
  16997. Index: screen saver;DimVGA
  16998. --------V-14AA05-----------------------------
  16999. INT 14 - DimVGA v2.0+ - GET DIMMING FACTOR
  17000. AX = AA05h
  17001. Return: AX = FFFFh
  17002. BX = current dimming factor
  17003. SeeAlso: AX=AA03h,AX=AA04h,AX=AA0Ah
  17004. Index: screen saver;DimVGA
  17005. --------V-14AA06-----------------------------
  17006. INT 14 - DimVGA v2.0+ - DISABLE
  17007. AX = AA06h
  17008. Return: AX = FFFFh
  17009. SeeAlso: AX=AA01h,AX=AA07h,AX=AA0Ah
  17010. Index: screen saver;DimVGA
  17011. --------V-14AA07-----------------------------
  17012. INT 14 - DimVGA v2.0+ - ENABLE
  17013. AX = AA07h
  17014. Return: AX = FFFFh
  17015. SeeAlso: AX=AA01h,AX=AA06h,AX=AA0Ah
  17016. Index: screen saver;DimVGA
  17017. --------V-14AA08-----------------------------
  17018. INT 14 - DimVGA v2.0+ - DIM SCREEN 'MANUALLY'
  17019. AX = AA08h
  17020. Return: AX = FFFFh
  17021. Note: this function will dim the screen immediately, even if DimVGA is
  17022. currently disabled
  17023. SeeAlso: AX=AA01h,AX=AA02h,AX=AA09h
  17024. Index: screen saver;DimVGA
  17025. --------V-14AA09-----------------------------
  17026. INT 14 - DimVGA v2.0+ - UNDIM SCREEN 'MANUALLY'
  17027. AX = AA09h
  17028. Return: AX = FFFFh
  17029. Note: this function will undim the screen immediately, even if DimVGA is
  17030. currently disabled
  17031. SeeAlso: AX=AA01h,AX=AA08h
  17032. Index: screen saver;DimVGA
  17033. --------V-14AA0A-----------------------------
  17034. INT 14 - DimVGA v2.0+ - CHECK WHETHER ENABLED
  17035. AX = AA0Ah
  17036. Return: AX = FFFFh
  17037. BX = current state (0000h disabled, 0001h enabled)
  17038. SeeAlso: AX=AA01h,AX=AA06h,AX=AA07h
  17039. Index: screen saver;DimVGA
  17040. --------V-14AA0B-----------------------------
  17041. INT 14 - DimVGA v2.1+ - SET HOTKEY
  17042. AX = AA0Bh
  17043. BH = shift state (see #00396)
  17044. BL = keyboard scancode
  17045. Return: AX = FFFFh
  17046. SeeAlso: AX=AA01h,AX=AA0Ch
  17047. Index: screen saver;DimVGA
  17048. Bitfields for DimVGA hotkey shift state:
  17049. Bit(s) Description (Table 00396)
  17050. 7-4 unused
  17051. 3 Alt key pressed
  17052. 2 Ctrl key pressed
  17053. 1 Left shift key pressed
  17054. 0 Right shift key pressed
  17055. --------V-14AA0C-----------------------------
  17056. INT 14 - DimVGA v2.1+ - GET HOTKEY
  17057. AX = AA0Ch
  17058. Return: AX = FFFFh
  17059. BH = shift state (see #00396)
  17060. BL = keyboard scancode
  17061. SeeAlso: AX=AA01h,AX=AA0Bh
  17062. Index: screen saver;DimVGA
  17063. --------V-14AA0D-----------------------------
  17064. INT 14 - DimVGA v3.0+ - SET MOUSE CHECK STATUS
  17065. AX = AA0Dh
  17066. BX = new mouse check status
  17067. 0000h mouse checking off
  17068. 0001h mouse checking on
  17069. Return: AX = FFFFh
  17070. Note: before switching mouse checking on, a mouse driver should be
  17071. found in memory. If no mouse driver is found, mouse checking
  17072. should be switched off (resident DimVGA does not check by itself).
  17073. SeeAlso: AX=AA01h,AX=AA0Eh
  17074. Index: screen saver;DimVGA
  17075. --------V-14AA0E-----------------------------
  17076. INT 14 - DimVGA v3.0+ - GET MOUSE CHECK STATUS
  17077. AX = AA0Eh
  17078. Return: BX = mouse check status (0000h disabled, 0001h enabled)
  17079. SeeAlso: AX=AA01h,AX=AA0Dh
  17080. Index: screen saver;DimVGA
  17081. --------V-14AA0F-----------------------------
  17082. INT 14 - DimVGA v3.4 - SET LOCKING STATUS
  17083. AX = AA0Fh
  17084. BX = locking status
  17085. 0000h disabled
  17086. 0001h enabled
  17087. Return: AX = FFFFh
  17088. SeeAlso: AX=AA01h,AX=AA0Dh,AX=AA10h
  17089. Index: screen saver;DimVGA
  17090. --------V-14AA10-----------------------------
  17091. INT 14 - DimVGA v3.4 - GET MOUSE CHECK STATUS
  17092. AX = AA10h
  17093. Return: BX = locking status (0000h disabled, 0001h enabled)
  17094. SeeAlso: AX=AA01h,AX=AA0Dh,AX=AA0Fh
  17095. Index: screen saver;DimVGA
  17096. ----------14AD-------------------------------
  17097. INT 14 - IBM SurePath BIOS - Officially "Private" Function
  17098. AH = ADh
  17099. SeeAlso: AH=AEh"IBM",AH=AFh"IBM"
  17100. ----------14AE-------------------------------
  17101. INT 14 - IBM SurePath BIOS - Officially "Private" Function
  17102. AH = AEh
  17103. SeeAlso: AH=ADh"IBM",AH=AFh"IBM"
  17104. ----------14AF-------------------------------
  17105. INT 14 - IBM SurePath BIOS - Officially "Private" Function
  17106. AH = AFh
  17107. SeeAlso: AH=ADh"IBM",AH=AEh"IBM"
  17108. --------S-14AF00BXAAAA-----------------------
  17109. INT 14 - 3com BAPI SERIAL I/O - INSTALLATION CHECK
  17110. AX = AF00h
  17111. BX = AAAAh
  17112. Return: AX = AF01h if installed
  17113. BH = protocol type (if BX=AAAAh on entry)
  17114. 01h NetManage TCP/IP
  17115. BL = version for protocol type (if BX=AAAAh on entry)
  17116. Note: early versions of the BAPI and the ROM BIOS simply destroy AX; this
  17117. behavior is used to determine whether the newer functions (AH=B0h,
  17118. AH=B1h,etc) are available
  17119. SeeAlso: AH=A0h"BAPI"
  17120. --------S-14B0-------------------------------
  17121. INT 14 - 3com BAPI SERIAL I/O - EN/DISABLE "ENTER COMMAND MODE" (ECM) CHARACTER
  17122. AH = B0h
  17123. AL = new state (00h disabled, 01h enabled)
  17124. Return: AH = return code (00h,07h,0Ah) (see #00394)
  17125. Note: disabling the ECM character allows applications to send data which
  17126. includes the ECM character
  17127. SeeAlso: AX=AF00h"BAPI",AH=B1h,AH=B2h
  17128. --------S-14B1-------------------------------
  17129. INT 14 - 3com BAPI SERIAL I/O - ENTER COMMAND MODE
  17130. AH = B1h
  17131. Return: AH = return code (00h,07h,0Ah) (see #00394)
  17132. Desc: provide a means for the application or terminal emulator to perform
  17133. the same action normally caused by the ECM character
  17134. SeeAlso: AH=B0h,AH=B2h
  17135. --------S-14B2-------------------------------
  17136. INT 14 - 3com BAPI SERIAL I/O - GET ECM WATCH STATE
  17137. AH = B2h
  17138. Return: AH = return code (00h,07h,0Ah) (see #00394)
  17139. AL = watch flag (00h disabled, 01h enabled)
  17140. Desc: determine whether the ECM character is enabled
  17141. SeeAlso: AH=B0h,AH=B1h
  17142. --------S-14B3-------------------------------
  17143. INT 14 - 3com BAPI SERIAL I/O - GET/SET CONFIGURATION INFO
  17144. AH = B3h
  17145. AL = direction (00h get, 01h set)
  17146. DH = session ID (00h for external session managment)
  17147. DL = configuration item (00h = end-of-line mapping)
  17148. CX = new configuration item value (if AL=01h)
  17149. ---if DL=00h---
  17150. CH = application EOL type (app to Telnet client)
  17151. 01h application will send lone CR
  17152. 02h application will send CR-? pair
  17153. CL = driver EOL type (Telnet client to Telnet server)
  17154. 01h driver should send CR-NUL pair
  17155. 02h driver should send CR-LF pair
  17156. Return: AH = return code (00h,03h,09h-0Bh) (see #00394)
  17157. ---if AL=00h---
  17158. CX = configuration item value (above)
  17159. SeeAlso: AH=B2h
  17160. --------N-14E0-------------------------------
  17161. INT 14 - TelAPI - "telopen" - CREATE TELNET CONNECTION (BLOCKING)
  17162. AH = E0h
  17163. BX = port number to connect with (default 0017h used if <= 0)
  17164. CX:DX = Internet address of remote host
  17165. DS:DI -> 2-byte remote host (session) identifier
  17166. ES:SI -> 1700-byte buffer for Telnet state record
  17167. 0000h:0000h to use TelAPI internally-allocated space
  17168. Return: AX = status (0000h-0009h,FED3h,FF37h,FFBDh,FFC0h,FFCDh) (see #00397)
  17169. ES:SI buffer filled with state record
  17170. ES:SI -> internally-allocated state record in some versions
  17171. Note: the remote host identifier may be used to refer to this connection
  17172. SeeAlso: AH=E1h,AH=ECh,AX=FF00h
  17173. (Table 00397)
  17174. Values for TelAPI status:
  17175. 0000h-7FFFh successful (session number)
  17176. FED3h (-301) no session allocated, or out of TelAPI data space
  17177. FF37h (-201) all sessions in use
  17178. FFBDh (-67) unknown hostname
  17179. FFC0h (-64) host not functioning
  17180. FFC3h (-61) connection attempt refused
  17181. FFC4h (-60) connection attempt timed out
  17182. FFC8h (-56) socket already connected
  17183. FFCDh (-51) network is unreachable
  17184. FFDDh (-35) operation would block
  17185. --------S-14E000-----------------------------
  17186. INT 14 - MX5 Extended FOSSIL - GET MNP STATUS BLOCK
  17187. AX = E000h
  17188. DX = port number (0-3)
  17189. Return: ES:BX -> status block (see #00398)
  17190. Program: MX5 is a FOSSIL driver by MagicSoft which emulates MNP Level 5, and
  17191. ships with the METZ terminal program as MTEMNP.DRV (a TSR despite
  17192. the .DRV extension)
  17193. SeeAlso: AX=E006h
  17194. Format of MX5 Extended FOSSIL status block:
  17195. Offset Size Description (Table 00398)
  17196. 00h BYTE flag: active (00h no, 01h yes)
  17197. 01h BYTE MNP level (2,4,5)
  17198. 02h BYTE series ID from remote MNP
  17199. 03h DWORD total packets transmitted
  17200. 07h DWORD duplicate packets transmitted
  17201. 0Bh DWORD maximum speed
  17202. 0Fh DWORD total packets received
  17203. 13h DWORD duplicate packets received
  17204. 17h DWORD maximum speed
  17205. --------S-14E001-----------------------------
  17206. INT 14 - MX5 Extended FOSSIL - GET/SET MNP LEVEL
  17207. AX = E001h
  17208. BH = function
  17209. 00h get MNP level
  17210. 01h set MNP level
  17211. BL = new level (00h none, 02h/04h/05h MNP level N)
  17212. DX = port number (0-3)
  17213. Return: BL = MNP level
  17214. SeeAlso: AX=E002h,AX=E003h,AX=E004h,AX=E006h
  17215. --------S-14E002-----------------------------
  17216. INT 14 - MX5 Extended FOSSIL - GET/SET MNP ANSWER/ORIGINATE MODE
  17217. AX = E002h
  17218. BH = function
  17219. 00h get answer/originate mode
  17220. 01h set mode
  17221. BL = new mode (00h originate [default], 01h answer)
  17222. DX = port number (0-3)
  17223. Return: BL = answer/originate mode
  17224. SeeAlso: AX=E001h,AX=E003h,AX=E006h
  17225. --------S-14E003-----------------------------
  17226. INT 14 - MX5 Extended FOSSIL - GET/SET MNP WAIT TICKS
  17227. AX = E003h
  17228. BH = function
  17229. 00h get wait ticks
  17230. 01h set wait ticks
  17231. BL = MNP wait ticks (default 0Eh)
  17232. DX = port number (0-3)
  17233. Return: BL = wait ticks
  17234. SeeAlso: AX=E001h,AX=E002h,AX=E006h
  17235. --------S-14E004-----------------------------
  17236. INT 14 - MX5 Extended FOSSIL - GET/SET MNP CONNECT SOUND LEVEL
  17237. AX = E004h
  17238. BH = function
  17239. 00h get sound level
  17240. 01h set sound level
  17241. BL = new sound level (00h off, 01h on [default])
  17242. DX = port number
  17243. Return: BL = sound state
  17244. Desc: specify whether MX5 should generate beeps after an MNP connection
  17245. (three high beeps if successful, high then low on connection failure)
  17246. SeeAlso: AX=E002h,AX=E006h
  17247. --------S-14E005-----------------------------
  17248. INT 14 - MX5 Extended FOSSIL - UNINSTALL
  17249. AX = E005h
  17250. Return: BX = segment of MX5's memory block or 0000h on failure
  17251. Note: caller must free the returned memory block to complete the uninstall
  17252. SeeAlso: AX=E006h
  17253. --------S-14E006BX0000-----------------------
  17254. INT 14 - MX5 Extended FOSSIL - INSTALLATION CHECK
  17255. AX = E006h
  17256. BX = 0000h
  17257. Return: BX = 4D58h ('MX') if installed
  17258. AH = major version
  17259. AL = minor version
  17260. SeeAlso: AX=E000h,AX=E001h,AX=E005h,AX=E007h
  17261. --------S-14E007-----------------------------
  17262. INT 14 - MX5 Extended FOSSIL - WAIT SPECIFIED NUMBER OF TICKS
  17263. AX = E007h
  17264. CX = number of ticks to wait
  17265. Return: nothing
  17266. SeeAlso: AX=E006h
  17267. --------N-14E1-------------------------------
  17268. INT 14 - TelAPI - "telclose" - TERMINATE TELNET CONNECTION
  17269. AH = E1h
  17270. BX = connection ID
  17271. Return: AX = status (0000h,FFF7h,maybe others) (see #00397)
  17272. Note: flushes and releases all buffers and data space used by the connection
  17273. SeeAlso: AH=E0h,AH=E6h,AX=FF00h
  17274. --------N-14E2-------------------------------
  17275. INT 14 - TelAPI - "telread" - BUFFERED READ
  17276. AH = E2h
  17277. BX = connection ID (see AH=E0h"TelAPI")
  17278. CX = length of buffer in bytes
  17279. ES:SI -> buffer for data
  17280. Return: AX > 0000h number of characters actually read
  17281. AX = 0000h host has closed connection
  17282. AX < 0000h error code (see #00397)
  17283. Note: translates CRLF into local EOL if the connection is in ASCII mode,
  17284. negotiates various Telnet options, and immediately executes several
  17285. different Telnet action commands
  17286. SeeAlso: AH=07h"TelAPI",AH=E3h,AH=E6h,AX=FF00h,INT 6B/AH=01h
  17287. --------N-14E3-------------------------------
  17288. INT 14 - TelAPI - "telwrite" - BUFFERED WRITE
  17289. AH = E3h
  17290. BX = connection ID
  17291. CX = length of buffer in bytes
  17292. ES:SI -> buffer containing data
  17293. Return: AX > 0000h number of characters actually written
  17294. AX < 0000h error code (see #00397)
  17295. Note: translates local EOL into CRLF if the connection is in ASCII mode,
  17296. sends the appropriate Telnet commands for the characters selected
  17297. for IP, AYT, AO, EC, EL, and Break
  17298. SeeAlso: AH=06h"TelAPI",AH=E2h,AH=E6h,AX=FF00h,INT 6B/AH=00h
  17299. --------N-14E4-------------------------------
  17300. INT 14 - TelAPI - "telioctl" - CONNECTION CONTROL
  17301. AH = E4h
  17302. BX = connection ID (see AH=E0h"TelAPI")
  17303. CX = Telnet command/option identifier (see #00400)
  17304. ES:SI -> buffer containing command/option argument (see #00399)
  17305. Return: AX = status (0000h, etc.) (see #00397)
  17306. Desc: start filter control, initiate Telnet option negotiation, or get filter
  17307. control status
  17308. SeeAlso: AH=A9h,AH=E6h,AX=FF00h,INT 6B/AX=0600h
  17309. Format of TelAPI Telnet command/option argument:
  17310. Offset Size Description (Table 00399)
  17311. 00h 5 WORD numeric arguments
  17312. 0Ah DWORD -> ASCIZ string
  17313. SeeAlso: #00400
  17314. (Table 00400)
  17315. Values for TelAPI Telnet command/option identifier:
  17316. 01h ASCII args: none
  17317. 02h BINARY args: none
  17318. 03h LOCALECHO args: none client echos data
  17319. 04h REMOTEECHO args: none server echos data
  17320. 05h SGA args: none Suppress Go-Ahead signal
  17321. 07h CHARMODE args: none no line-buffering
  17322. 08h LINEMODE args: -> erase-line ch perform line-buffering
  17323. 09h RECVEOL args: EOL type
  17324. 0Ah SENDEOL args: EOL type
  17325. 0Bh EOR args: none enable end-of-record sequence
  17326. 0Dh BREAK args: -> break char
  17327. 0Eh VERBOSE args: verbosity display Telnet negotiations?
  17328. 0Fh AYT args: -> AYT escape ch
  17329. 10h AO args: -> AO escape char
  17330. 11h IP args: -> IP escape char
  17331. 12h EC args: -> escape char
  17332. 13h EL args: -> escape char
  17333. 14h STATUS args: type; returns data in structure
  17334. 18h TERMTYPE args: -> terminal type
  17335. 19h ATTACHPORT args: port number ; returns session number
  17336. 1Bh TRANSMIT_EOR args: EOR enabled append EOR to every telwrite?
  17337. SeeAlso: #00399
  17338. --------N-14E5-------------------------------
  17339. INT 14 - TelAPI - "telreset" - RESET ALL CONNECTIONS
  17340. AH = E5h
  17341. Return: AX = status (0000h,other) (see also #00397)
  17342. FFFFh unable to reset
  17343. Desc: close all sessions and reset TelAPI to defaults
  17344. SeeAlso: AH=E1h,AH=E6h,AX=FF00h
  17345. --------N-14E6-------------------------------
  17346. INT 14 - TelAPI - "telunload" - UNINSTALL
  17347. AH = E6h
  17348. Return: AX = status
  17349. 0000h successful
  17350. FFFFh unable to uninstall
  17351. Notes: TelAPI also supports the NASI/NACS and NCSI APIs on INT 6B
  17352. this function invokes AH=E5h internally
  17353. SeeAlso: AH=E5h,AX=FF00h,INT 6B/AH=00h,INT 6B/AH=10h
  17354. --------N-14E7-------------------------------
  17355. INT 14 - TelAPI - "tellist" - GET TELNET SESSION LIST
  17356. AH = E7h
  17357. ES:SI -> 10-word buffer for session list
  17358. Return: AX = 0000h (successful)
  17359. ES:SI buffer filled
  17360. Desc: determine, for each of the ten allowable sessions, whether the session
  17361. is currently available
  17362. Note: each word in the buffer is filled with either 0000h to indicate that
  17363. the corresponding sesion is unavailable, or 0001h if available
  17364. SeeAlso: AH=E0h,AH=E5h,AX=FF00h
  17365. --------N-14E8-------------------------------
  17366. INT 14 - TelAPI - "telattach" - ATTACH COM PORT TO/FROM TELNET SESSION
  17367. AH = E8h
  17368. BX = connection ID (see AH=E0h"TelAPI")
  17369. CX = serial port number (0000h-0003h = COM1-COM4)
  17370. Return: AX = status
  17371. 0000h successful
  17372. FFFFh failed
  17373. SeeAlso: AH=E0h,AH=E9h,AX=FF00h
  17374. --------N-14E9-------------------------------
  17375. INT 14 - TelAPI - "telportosn" - GET SESSION NUMBER FOR COM PORT
  17376. AH = E9h
  17377. DX = serial port number (0000h-0003h = COM1-COM4)
  17378. Return: AX >= 0000h session number
  17379. AX < 0000h error code (see #00397)
  17380. SeeAlso: AH=E0h,AH=E8h,AH=EAh,AX=FF00h
  17381. --------N-14EA-------------------------------
  17382. INT 14 - TelAPI - "telstatus" - GET TELNET CONNECTION STATUS INFORMATION
  17383. AH = EAh
  17384. BX = connection ID (see AH=E0h"TelAPI")
  17385. ES:SI -> buffer for status info (see #00401)
  17386. Return: AX = status (0000h,FFFFh,etc.)
  17387. SeeAlso: AH=E9h,AH=EBh,AX=FF00h
  17388. Format of TelAPI Telnet connection status information:
  17389. Offset Size Description (Table 00401)
  17390. 00h 4 BYTEs remote host IP address
  17391. 04h 20 BYTEs reserved
  17392. 18h WORD local port number
  17393. 1Ah BYTE connection mode (00h = ASCII, 01h = Binary)
  17394. 1Bh BYTE echo flag (00h local, 01h remote)
  17395. 1Ch BYTE SGA flag (00h will, 01h won't)
  17396. 1Dh BYTE EOR negotation flag (00h do negotiate, 01h don't)
  17397. 1Eh BYTE buffering (00h line mode, 01h character mode)
  17398. 1Fh BYTE reserved
  17399. 20h BYTE verbose flag (00h no, 01h verbose mode)
  17400. 21h BYTE received EOL (00h no xlat, 01h CR, 02h LF, 03h CRLF)
  17401. 22h BYTE sent EOL (00h no translation, 01h CR, 02h LF)
  17402. 23h BYTE break character
  17403. 24h BYTE IP escape character
  17404. 25h BYTE AO escape character
  17405. 26h BYTE AYT escape character
  17406. 27h BYTE EC escape character
  17407. 28h BYTE EL escape character
  17408. 29h 41 BYTEs ASCIZ Telnet-negotiated terminal type
  17409. 52h 9 BYTEs session ID
  17410. SeeAlso: #00402
  17411. --------N-14EB-------------------------------
  17412. INT 14 - TelAPI - "telname" - GET AVAILABLE/INUSE STATUS FOR ALL SESSIONS
  17413. AH = EBh
  17414. ES:SI -> buffer for session statuses (see #00402)
  17415. Return: ES:SI buffer filled
  17416. SeeAlso: AH=E9h,AH=EAh,AX=FF00h
  17417. Format of TelAPI session status information [array]:
  17418. Offset Size Description (Table 00402)
  17419. 00h BYTE session state (00h available, 01h connected)
  17420. 01h 9 BYTEs session ID if connected
  17421. 0Ah WORD attached COM port if connected, FFFFh if not
  17422. SeeAlso: #00401
  17423. --------N-14EC-------------------------------
  17424. INT 14 - TelAPI - "telnblkopen" - CREATE TELNET CONNECTION (NON-BLOCKING)
  17425. AH = ECh
  17426. BX = port number to connect with (default 0017h used if <= 0)
  17427. CX:DX = Internet address of remote host
  17428. DS:DI -> 2-byte remote host (connection) identifier
  17429. ES:SI -> 1700-byte buffer for Telnet state record
  17430. 0000h:0000h to use TelAPI internally-allocated space
  17431. Return: AX = status (0000h-0009h,FED3h,FF37h,FFBDh,FFC0h,FFCDh) (see #00397)
  17432. ES:SI buffer filled with state record
  17433. ES:SI -> internally-allocated state record in some versions
  17434. Notes: the remote host identifier may be used to refer to this connection
  17435. this function returns immediately; use AH=EDh to check whether the
  17436. connection has been established yet
  17437. this function is not supported by the Microdyne TelAPI v3.7
  17438. SeeAlso: AH=E0h"TelAPI",AH=EDh,AX=FF00h
  17439. --------N-14ED-------------------------------
  17440. INT 14 - TelAPI - "telpoll" - POLL TELNET SESSION FOR CONNECTION COMPLETION
  17441. AH = EDh
  17442. BX = connection ID (see AH=ECh)
  17443. Return: AX = status (0000h,0001h,FFFFh,etc.) (see also #00397)
  17444. 0000h session now connected
  17445. 0001h connection still in progress
  17446. Note: this function is not supported by the Microdyne TelAPI v3.7
  17447. SeeAlso: AH=EDh,AX=FF00h
  17448. --------a-14F0F0-----------------------------
  17449. INT 14 - ASAP v1.0 - ???
  17450. AX = F0F0h
  17451. DX = ???
  17452. ???
  17453. Return: ???
  17454. Program: ASAP (Automatic Screen Access Program) is a shareware screen reader
  17455. by MicroTalk
  17456. SeeAlso: AX=F0F1h
  17457. --------a-14F0F1DX0000-----------------------
  17458. INT 14 - ASAP v1.0 - INSTALLATION CHECK
  17459. AX = F0F1h
  17460. DX = 0000h
  17461. Return: DX = segment of resident code
  17462. 0000h if not installed
  17463. Program: ASAP (Automatic Screen Access Program) is a shareware screen reader
  17464. by MicroTalk
  17465. SeeAlso: AX=F0F0h,INT 10/AX=3800h
  17466. --------S-14F4FF-----------------------------
  17467. INT 14 - IBM/Yale EBIOS SERIAL I/O - INSTALLATION CHECK
  17468. AX = F4FFh
  17469. DX = port (00h-03h)
  17470. Return: CF clear if present
  17471. AX = 0000h
  17472. CF set if not present
  17473. AX <> 0000h
  17474. SeeAlso: AH=36h"ComShare",AH=F9h,AH=FCh
  17475. --------S-14F9-------------------------------
  17476. INT 14 - IBM/Yale EBIOS SERIAL I/O - REGAIN CONTROL
  17477. AH = F9h
  17478. DX = port (00h-03h)
  17479. Return: nothing
  17480. SeeAlso: AX=F4FFh
  17481. --------S-14FA-------------------------------
  17482. INT 14 - IBM/Yale EBIOS SERIAL I/O - SEND BREAK
  17483. AH = FAh
  17484. DX = port (00h-03h)
  17485. Return: nothing
  17486. SeeAlso: AH=07h"MBBIOS",AH=1Ah,AH=8Ah
  17487. --------S-14FB-------------------------------
  17488. INT 14 - IBM/Yale EBIOS SERIAL I/O - SET OUTGOING MODEM SIGNALS
  17489. AH = FBh
  17490. AL = modem control register (see #00334 at AH=05h"SERIAL")
  17491. DX = port (00h-03h)
  17492. Return: nothing
  17493. SeeAlso: AH=05h"SERIAL"
  17494. --------S-14FC-------------------------------
  17495. INT 14 - IBM/Yale EBIOS SERIAL I/O - READ CHARACTER, NO WAIT
  17496. AH = FCh
  17497. DX = port (00h-03h)
  17498. Return: AH = RS232 status bits (see #00304 at AH=03h)
  17499. AL = character
  17500. SeeAlso: AH=02h,AH=0Ch,AX=FF02h
  17501. --------S-14FD02-----------------------------
  17502. INT 14 - IBM/Yale EBIOS SERIAL I/O - READ STATUS
  17503. AX = FD02h
  17504. Return: CX = number of characters available
  17505. --------N-14FF00-----------------------------
  17506. INT 14 - TelAPI - "telcheck" - INSTALLATION CHECK
  17507. AX = FF00h
  17508. Return: AX = 00FFh if installed
  17509. BX = version number * 100 (decimal)
  17510. SeeAlso: AH=E6h,AX=F4FFh
  17511. --------S-14FF01-----------------------------
  17512. INT 14 - IBM/Yale EBIOS SERIAL I/O - SET SEND BUFFER
  17513. AX = FF01h
  17514. CX = length of buffer (0000h to cancel buffer assignment)
  17515. DX = port (00h-03h)
  17516. ES:BX -> send buffer
  17517. Return: nothing
  17518. SeeAlso: AH=18h,AH=83h"COURIERS",AH=A5h"BAPI",AH=FCh,AX=FF02h
  17519. --------S-14FF02-----------------------------
  17520. INT 14 - IBM/Yale EBIOS SERIAL I/O - SET RECEIVE BUFFER
  17521. AX = FF02h
  17522. CX = length of buffer (0000h to cancel buffer assignment)
  17523. DX = port (00h-03h)
  17524. ES:BX -> receive buffer
  17525. Return: nothing
  17526. SeeAlso: AH=18h,AH=83h"COURIERS",AH=A5h"BAPI",AH=FCh,AX=FF01h
  17527. --------S-14FFF8-----------------------------
  17528. INT 14 - COMM-DRV v14.0 - SET BAUD RATE DIVISOR
  17529. AX = FFF8h
  17530. BX = card type (sub-device number)
  17531. CX = new baudrate divisor
  17532. DX = index to baud rate
  17533. Return: AH bit 7 set on error
  17534. AH bit 7 clear if successful
  17535. Program: COMM-DRV is a universal serial communications driver by Willies'
  17536. Computer Software Company, which supports standard INT 14 and
  17537. FOSSIL calls as well as its own interfaces
  17538. SeeAlso: AX=8000h"COMM-DRV"
  17539. --------S-14FFFB-----------------------------
  17540. INT 14 - COMM-DRV v14.0 - GET HIGHEST ALLOWED PORT NUMBER
  17541. AX = FFFBh
  17542. DX = port number
  17543. Return: AH bit 7 set on error
  17544. AH bit 7 clear if successful
  17545. BX = highest port number
  17546. --------S-14FFFC-----------------------------
  17547. INT 14 - COMM-DRV v14.0 - GET INT 14 FLAGS
  17548. AX = FFFCh
  17549. DX = port number
  17550. Return: AH bit 7 set on error
  17551. AH bit 7 clear if successful
  17552. BX = flags (see #00403)
  17553. SeeAlso: AX=FFFDh
  17554. Bitfields for INT 14h flags:
  17555. Bit(s) Description (Table 00403)
  17556. 0 port active for INT 14h
  17557. 1 interface behaving like a FOSSIL driver
  17558. --------S-14FFFD-----------------------------
  17559. INT 14 - COMM-DRV v14.0 - SET INT 14 FLAGS
  17560. AX = FFFDh
  17561. BX = flags (see #00403)
  17562. DX = port number
  17563. Return: AH bit 7 set on error
  17564. AH bit 7 clear if successful
  17565. SeeAlso: AX=FFFCh
  17566. --------S-14FFFE-----------------------------
  17567. INT 14 - COMM-DRV v14.0 - RESTORE INT 14 VECTOR TO ORIGINAL
  17568. AX = FFFEh
  17569. Return: AH bit 7 set on error
  17570. AH bit 7 clear if successful
  17571. --------S-14FFFF-----------------------------
  17572. INT 14 - COMM-DRV v14.0 - GET INT 14 INFORMATION AREA
  17573. AX = FFFFh
  17574. BX:SI -> DWORD buffer for address of information area (see #00404)
  17575. (initialized to zeros)
  17576. Return: BX:SI buffer filled with nonzero value if installed
  17577. Program: COMM-DRV is a universal serial communications driver by Willies'
  17578. Computer Software Company, which supports standard INT 14 and
  17579. FOSSIL calls as well as its own interfaces
  17580. Index: installation check;COMM-DRV
  17581. Format of COMM-DRV information area:
  17582. Offset Size Description (Table 00404)
  17583. 00h 8 BYTEs signature "COMM-DRV"
  17584. 08h 2 BYTEs 00h,00h
  17585. 0Ah DWORD -> direct address mapping table
  17586. 0Eh DWORD previous INT 14 vector
  17587. --------t-15---------------------------------
  17588. INT 15 - Microsoft TSR Specification
  17589. No additional information available at this time.
  17590. --------B-1500-------------------------------
  17591. INT 15 - CASSETTE - TURN ON TAPE DRIVE'S MOTOR (PC and PCjr only)
  17592. AH = 00h
  17593. Return: CF set on error
  17594. AH = 86h no cassette present
  17595. CF clear if successful
  17596. SeeAlso: AH=01h"CASSETTE",MEM 0040h:0067h"PC"
  17597. --------M-1500-------------------------------
  17598. INT 15 - Amstrad PC1512 - GET AND RESET MOUSE COUNTS
  17599. AH = 00h
  17600. Return: CX = signed X count
  17601. DX = signed Y count
  17602. --------O-1500-------------------------------
  17603. INT 15 - VMiX v2+ - INSTALLATION CHECK
  17604. AH = 00h
  17605. Return: DX = 0798h if installed
  17606. AX = version (AH = major, AL = minor)
  17607. --------T-1500-------------------------------
  17608. INT 15 - MultiDOS Plus - GIVE UP TIME SLICE
  17609. AH = 00h
  17610. Return: nothing
  17611. Note: if issued by the highest-priority task while MultiDOS is using
  17612. priority-based rather than round-robin scheduling, control will be
  17613. returned to the caller immediately
  17614. SeeAlso: AH=03h"MultiDOS",AX=1000h
  17615. --------B-1501-------------------------------
  17616. INT 15 - CASSETTE - TURN OFF TAPE DRIVE'S MOTOR (PC and PCjr only)
  17617. AH = 01h
  17618. Return: CF set on error
  17619. AH = 86h no cassette present
  17620. CF clear if successful
  17621. SeeAlso: AH=00h"CASSETTE"
  17622. --------b-1501-------------------------------
  17623. INT 15 - Amstrad PC1512 - WRITE DATA TO NON-VOLATILE RAM
  17624. AH = 01h
  17625. AL = NVRAM location (00h to 3Fh) (see #00405)
  17626. BL = NVRAM data value
  17627. Return: AH = return code
  17628. 00h OK
  17629. 01h address bad
  17630. 02h write error
  17631. SeeAlso: AH=02h"Amstrad"
  17632. Format of Amstrad NVRAM:
  17633. Offset Size Description (Table 00405)
  17634. 00h BYTE time of day: seconds
  17635. 01h BYTE alarm time: seconds
  17636. 02h BYTE time of day: minutes
  17637. 03h BYTE alarm time: minutes
  17638. 04h BYTE time of day: hours
  17639. 05h BYTE alarm time: hours
  17640. 06h BYTE day of week, 1 = Sunday
  17641. 07h BYTE day of month
  17642. 08h BYTE month
  17643. 09h BYTE year mod 100
  17644. 0Ah BYTE RTC status register A (see #00406)
  17645. 0Bh BYTE RTC status register B (see #00407)
  17646. 0Ch BYTE RTC status register C (read-only) (see #00408)
  17647. 0Dh BYTE RTC status register D
  17648. bit 7: battery good
  17649. 0Eh 6 BYTEs time and date machine last used
  17650. 14h BYTE user RAM checksum
  17651. 15h WORD Enter key scancode/ASCII code
  17652. 17h WORD Forward delete key scancode/ASCII code
  17653. 19h WORD Joystick fire button 1 scancode/ASCII code
  17654. 1Bh WORD Joystick fire button 2 scancode/ASCII code
  17655. 1Dh WORD mouse button 1 scancode/ASCII code
  17656. 1Fh WORD mouse button 2 scancode/ASCII code
  17657. 21h BYTE mouse X scaling factor
  17658. 22h BYTE mouse Y scaling factor
  17659. 23h BYTE initial VDU mode and drive count
  17660. 24h BYTE initial VDU character attribute
  17661. 25h BYTE size of RAM disk in 2K blocks
  17662. 26h BYTE initial system UART setup byte
  17663. 27h BYTE initial external UART setup byte
  17664. 28h 24 BYTEs available for user application
  17665. Note: bytes 00h-0Dh are the same on the IBM AT as they are used/updated by
  17666. the clock chip
  17667. Bitfields for RTC status register A:
  17668. Bit(s) Description (Table 00406)
  17669. 7 set if date/time being updated
  17670. 6-4 time base speed, default 010 = 32768 Hz
  17671. 3-0 interrupt rate selection, default 0110 = 1024 Hz
  17672. SeeAlso: #00405
  17673. Bitfields for RTC status register B:
  17674. Bit(s) Description (Table 00407)
  17675. 7 clear if normal update, set if abort update
  17676. 6 periodic interrupt enable
  17677. 5 alarm interrupt enable
  17678. 4 update end interrupt enable
  17679. 3 square wave enable
  17680. 2 date mode (clear = BCD, set = binary)
  17681. 1 24-hour format
  17682. 0 daylight saving time enable
  17683. SeeAlso: #00405
  17684. Bitfields for RTC status register C:
  17685. Bit(s) Description (Table 00408)
  17686. 7 IRQF flag
  17687. 6 PF flag
  17688. 5 AF flag
  17689. 4 UF flag
  17690. SeeAlso: #00405
  17691. --------O-1501-------------------------------
  17692. INT 15 - VMiX - "sys_chanreq" - I/O CHANNEL OBJECT MANAGER
  17693. AH = 01h
  17694. STACK: WORD object ID of requestor
  17695. DWORD pointer to ASCIZ name of requested method
  17696. "assign" assign channel to object
  17697. "deassign" deassign channel
  17698. "cursor" set cursor on/off
  17699. "init" initialize comm port
  17700. "open" open I/O channel
  17701. "position" set cursor position
  17702. "receive" get buffered packet from comm port
  17703. "send" send buffered packet to comm port
  17704. "vio" set current virtual I/O to specified channel
  17705. "window" make window at cursor position
  17706. ---if "assign"---
  17707. WORD object UID
  17708. WORD caller UID/PID
  17709. DWORD CSL with port
  17710. ---if "deassign"---
  17711. WORD channel ID
  17712. ---if "cursor"---
  17713. WORD channel ID (must be a SRCSINK)
  17714. WORD new state (0000h off, 0001h on)
  17715. ---if "init"---
  17716. WORD channel ID (must be a SRCSINK)
  17717. WORD comm port number (00h-03h)
  17718. WORD UART init code
  17719. ---if "open"---
  17720. WORD channel ID
  17721. ---if "position"---
  17722. WORD channel ID (must be a SRCSINK)
  17723. WORD position (high byte = row, low byte = column)
  17724. ---if "receive"---
  17725. DWORD pointer to buffer
  17726. ---if "send"---
  17727. WORD length of buffer
  17728. DWORD pointer to buffer
  17729. ---if "vio"---
  17730. WORD channel ID (must be a SRCSINK)
  17731. ---if "window"---
  17732. WORD top left (high byte = row, low byte = column)
  17733. WORD bottom right (high byte = row, low byte = column)
  17734. Return: DX:AX -> IRP structure or 0000h:0000h
  17735. SeeAlso: AH=00h"VMiX",AH=02h"VMiX"
  17736. --------T-1501-------------------------------
  17737. INT 15 - MultiDOS Plus - REQUEST RESOURCE SEMAPHORE
  17738. AH = 01h
  17739. AL = semaphore number (00h-3Fh)
  17740. Return: AH = status
  17741. 00h successful
  17742. 02h invalid semaphore number
  17743. Notes: if the semaphore is not owned, ownership is assigned to the calling
  17744. task and the call returns immediately
  17745. if the semaphore is already owned by another task, the calling task
  17746. is placed on a queue for the semaphore and suspended until it can
  17747. become owner of the semaphore
  17748. semaphore 0 is used internally by MultiDOS to synchronize DOS access
  17749. SeeAlso: AH=02h"MultiDOS",AH=10h"MultiDOS",AH=1Bh"MultiDOS"
  17750. --------B-1502-------------------------------
  17751. INT 15 - CASSETTE - READ DATA (PC and PCjr only)
  17752. AH = 02h
  17753. CX = number of bytes to read
  17754. ES:BX -> buffer
  17755. Return: CF clear if successful
  17756. DX = number of bytes read
  17757. ES:BX -> byte following last byte read
  17758. CF set on error
  17759. AH = status (see #00409)
  17760. SeeAlso: AH=00h"CASSETTE",AH=03h"CASSETTE",MEM 0040h:0069h,MEM 0040h:006Bh"PC"
  17761. (Table 00409)
  17762. Values for Cassette status:
  17763. 00h successful
  17764. 01h CRC error
  17765. 02h bad tape signals
  17766. 04h no data
  17767. 80h invalid command
  17768. 86h no cassette present
  17769. --------b-1502-------------------------------
  17770. INT 15 - Amstrad PC1512 - READ DATA FROM NON-VOLATILE RAM
  17771. AH = 02h
  17772. AL = NVRAM location (00h to 3Fh)
  17773. Return: AH = return code
  17774. 00h OK
  17775. 01h address bad
  17776. 02h checksum error
  17777. AL = NVRAM data value
  17778. SeeAlso: AH=01h"Amstrad"
  17779. --------O-1502-------------------------------
  17780. INT 15 - VMiX - "sys_memreq" - MEMORY OBJECT MANAGER
  17781. AH = 02h
  17782. STACK: WORD object ID of requestor
  17783. DWORD pointer to ASCIZ name of requested method
  17784. "assign" allocate low memory block
  17785. "assign extended" allocate extended memory pages
  17786. "assign gdt" allocate GDT selector
  17787. "paged" allocate low paged memory
  17788. "paged extended" alllocate extended memory pages
  17789. "deassign" free memory block
  17790. "deassign gdt" free GDT selector
  17791. "getvpage" get physical address for virtual page
  17792. "setvpage" set physical address for virtual page
  17793. "info" get VMiX memory usage info block
  17794. "move" move contents of 32-bit memory
  17795. "newmcb" make new DOS memory control block
  17796. "owner" get process ID of MCB or PSP owner
  17797. "umb" allocate upper memory block
  17798. "video" toggle system use of video memory and get stat
  17799. ---if "assign"---
  17800. WORD number of objects
  17801. WORD size in bytes (multiple of 512 bytes)
  17802. ---if "assign extended"---
  17803. WORD number of objects
  17804. WORD size in bytes (multiple of 4K)
  17805. ---if "assign gdt"---
  17806. WORD access type (low byte)
  17807. WORD segment size in paragraphs
  17808. DWORD pointer to start of physical segment
  17809. ---if "paged"---
  17810. WORD number of 512-byte pages
  17811. ---if "paged extended"
  17812. WORD number of 4K pages
  17813. ---if "deassign"---
  17814. DWORD pointer returned by previous allocation call
  17815. ---if "deassign gdt"---
  17816. WORD GDT selector
  17817. ---if "getvpage"---
  17818. WORD owner's process ID
  17819. DWORD pointer to buffer for page structure (struct VPGE)
  17820. ---if "setvpage"---
  17821. WORD owner's process ID
  17822. DWORD pointer to new page structure (struct VPGE)
  17823. ---if "info"---
  17824. no additional arguments
  17825. ---if "move"
  17826. DWORD 32-bit source address
  17827. DWORD 32-bit destination address
  17828. WORD number of words to move
  17829. ---if "newmcb"---
  17830. DWORD pointer to new MCB's location
  17831. WORD size of memory block
  17832. DWORD pointer to ASCIZ name string (max 8 chars)
  17833. ---if "owner"---
  17834. WORD MCB or PSP segment
  17835. ---if "umb"---
  17836. WORD size in paragraphs
  17837. ---if "video"---
  17838. no additional arguments
  17839. Return: DX:AX -> memory block or VPGE struct or 0000h:0000h
  17840. SeeAlso: AH=00h"VMiX",AH=01h"VMiX"
  17841. --------T-1502-------------------------------
  17842. INT 15 - MultiDOS Plus - RELEASE RESOURCE SEMAPHORE
  17843. AH = 02h
  17844. AL = semaphore number (00h-3Fh)
  17845. Return: AH = status
  17846. 00h successful
  17847. 01h not semaphore owner
  17848. 02h invalid semaphore number
  17849. Notes: if any tasks are waiting for the semaphore, the first task on the wait
  17850. queue will become the new owner and be reawakened
  17851. do not use within an interrupt handler
  17852. SeeAlso: AH=01h"MultiDOS",AH=10h"MultiDOS",AH=1Ch"MultiDOS"
  17853. --------B-1503-------------------------------
  17854. INT 15 - CASSETTE - WRITE DATA (PC and PCjr only)
  17855. AH = 03h
  17856. CX = number of bytes to write
  17857. ES:BX -> data buffer
  17858. Return: CF clear if successful
  17859. ES:BX -> byte following last byte written
  17860. CF set on error
  17861. AH = status (see #00409)
  17862. CX = 0000h
  17863. SeeAlso: AH=00h"CASSETTE",AH=02h"CASSETTE"
  17864. --------V-1503-------------------------------
  17865. INT 15 - Amstrad PC1512 - WRITE VDU COLOR PLANE WRITE REGISTER
  17866. AH = 03h
  17867. AL = value (I,R,G,B bits)
  17868. Return: nothing
  17869. SeeAlso: AH=04h"Amstrad"
  17870. --------O-1503-------------------------------
  17871. INT 15 - VMiX - "sys_pinput" - PROMPTED CONSOLE INPUT
  17872. AH = 03h
  17873. STACK: DWORD pointer to ASCII prompt
  17874. WORD field outline character
  17875. WORD length of input field (max 7Fh)
  17876. DWORD address of pointer to input buffer
  17877. Return: AX = length of input (input buffer is padded with blanks)
  17878. SeeAlso: AH=04h"VMiX"
  17879. --------T-1503-------------------------------
  17880. INT 15 - MultiDOS Plus - SUSPEND TASK FOR INTERVAL
  17881. AH = 03h
  17882. DX = number of time slices to remain suspended
  17883. Return: after specified interval has elapsed
  17884. Note: when priority-based scheduling is in use, high-priority tasks should
  17885. use this function to yield the processor
  17886. SeeAlso: AH=00h"MultiDOS",AH=0Ah"MultiDOS"
  17887. --------B-1504-------------------------------
  17888. INT 15 - SYSTEM - BUILD ABIOS SYSTEM PARAMETER TABLE (PS)
  17889. AH = 04h
  17890. ES:DI -> 32-byte results buffer for System Parameter Table (see #00410)
  17891. DS = segment containing ABIOS RAM extensions (zero if none)
  17892. Return: CF clear if successful
  17893. AH = 00h success
  17894. ES:DI buffer filled
  17895. AL destroyed
  17896. CF set on failure
  17897. AX destroyed
  17898. AH = 80h/86h if not supported
  17899. SeeAlso: AH=05h"ABIOS",AH=C1h
  17900. Format of ABIOS System Parameter Table:
  17901. Offset Size Description (Table 00410)
  17902. 00h DWORD FAR address of ABIOS Common Start Routine
  17903. 04h DWORD FAR address of ABIOS Interrupt Routine
  17904. 08h DWORD FAR address of ABIOS Time-out Routine
  17905. 0Ch WORD number of bytes of stack required by this ABIOS implementation
  17906. 0Eh 16 BYTEs reserved
  17907. 1Eh WORD number of entries in initialization table
  17908. --------V-1504-------------------------------
  17909. INT 15 - Amstrad PC1512 - WRITE VDU COLOR PLANE READ REGISTER
  17910. AH = 04h
  17911. AL = value (RDSEL1 and RDSEL0)
  17912. Return: nothing
  17913. SeeAlso: AH=03h"Amstrad",AH=05h"Amstrad"
  17914. --------O-1504-------------------------------
  17915. INT 15 - VMiX - "sys_vprintf" - FORMATTED OUTPUT TO STREAM
  17916. AH = 04h
  17917. STACK: DWORD control string
  17918. DWORD array of arguments
  17919. Return: nothing
  17920. SeeAlso: AH=03h"VMiX"
  17921. --------T-1504-------------------------------
  17922. INT 15 - MultiDOS Plus - SEND MESSAGE TO ANOTHER TASK
  17923. AH = 04h
  17924. AL = mailbox number (00h-3Fh)
  17925. CX = message length in bytes
  17926. DS:SI -> message
  17927. Return: AH = status
  17928. 00h successful
  17929. 01h out of message memory
  17930. 02h invalid mailbox number
  17931. Note: the message is copied into a system buffer; the caller may immediately
  17932. reuse its buffer
  17933. SeeAlso: AH=05h"MultiDOS"
  17934. --------B-1505-------------------------------
  17935. INT 15 - SYSTEM - BUILD ABIOS INITIALIZATION TABLE (PS)
  17936. AH = 05h
  17937. ES:DI -> results buffer of length 18h * Number_of_Entries (see #00411)
  17938. DS = segment containing ABIOS RAM extensions (zero if none)
  17939. Return: CF clear if successful
  17940. AH = 00h success
  17941. ES:DI buffer filled
  17942. AL destroyed
  17943. CF set on failure
  17944. AX destroyed
  17945. AH = 80h/86h if not supported
  17946. SeeAlso: AH=04h"ABIOS",AH=C1h
  17947. Format of one entry of ABIOS Initialization Table:
  17948. Offset Size Description (Table 00411)
  17949. 00h WORD device ID (see #00412)
  17950. 02h WORD number of Logical IDs
  17951. 04h WORD Device Block length (zero for ABIOS patch or extension)
  17952. 06h DWORD -> init routine for Device Block and Function Transfer Table
  17953. 0Ah WORD request block length
  17954. 0Ch WORD Function Transfer Table length (zero for a patch)
  17955. 0Eh WORD Data Pointers length (in Common Data Area)
  17956. 10h BYTE secondary device ID (hardware level this ABIOS ver supports)
  17957. 11h BYTE revision (device driver revision level this ABIOS supports)
  17958. 12h 6 BYTEs reserved
  17959. (Table 00412)
  17960. Values for ABIOS device ID:
  17961. 00h ABIOS internal calls
  17962. 01h floppy disk
  17963. 02h hard disk
  17964. 03h video
  17965. 04h keyboard
  17966. 05h parallel port
  17967. 06h serial port
  17968. 07h system timer
  17969. 08h real-time clock
  17970. 09h system services
  17971. 0Ah NMI
  17972. 0Bh mouse
  17973. 0Eh CMOS RAM
  17974. 0Fh DMA
  17975. 10h Programmable Option Select (POS)
  17976. 16h keyboard password
  17977. --------V-1505-------------------------------
  17978. INT 15 - Amstrad PC1512 - WRITE VDU GRAPHICS BORDER REGISTER
  17979. AH = 05h
  17980. AL = value (I,R,G,B bits)
  17981. Return: nothing
  17982. SeeAlso: AH=04h"Amstrad"
  17983. --------O-1505-------------------------------
  17984. INT 15 - VMiX - "sys_getpid" - GET PROCESS ID OF CURRENT PROCESS
  17985. AH = 05h
  17986. Return: AX = process ID
  17987. SeeAlso: AH=06h"VMiX",AH=0Bh"VMiX"
  17988. --------T-1505-------------------------------
  17989. INT 15 - MultiDOS Plus - CHECK MAILBOX
  17990. AH = 05h
  17991. AL = mailbox number (00h-3Fh)
  17992. Return: AH = status
  17993. 00h successful
  17994. DX = length of first message in queue, 0000h if no message
  17995. 02h invalid mailbox number
  17996. SeeAlso: AH=04h"MultiDOS",AH=06h"MultiDOS"
  17997. --------b-1506-------------------------------
  17998. INT 15 - Amstrad PC1512 - GET ROS VERSION NUMBER
  17999. AH = 06h
  18000. Return: BX = version number
  18001. --------O-1506-------------------------------
  18002. INT 15 - VMiX - "sys_getpcb" - GET POINTER TO PROCESS CONTROL BLOCK
  18003. AH = 06h
  18004. STACK: WORD process ID
  18005. Return: DX:AX -> process control block
  18006. SeeAlso: AH=05h"VMiX",AH=07h"VMiX",AH=08h"VMiX"
  18007. --------T-1506-------------------------------
  18008. INT 15 - MultiDOS Plus - READ MAILBOX
  18009. AH = 06h
  18010. AL = mailbox number (00h-3Fh)
  18011. CX = size of buffer in bytes
  18012. ES:DI -> buffer for message
  18013. Return: AH = status
  18014. 00h successful
  18015. CX = number of bytes copied
  18016. DX = actual length of message
  18017. 02h invalid mailbox number
  18018. Note: if the caller's buffer is not large enough, the message is truncated
  18019. and the remainder is lost
  18020. SeeAlso: AH=04h"MultiDOS",AH=05h"MultiDOS"
  18021. --------O-1507-------------------------------
  18022. INT 15 - VMiX - "sys_getocb" - GET POINTER TO OBJECT CONTROL BLOCK
  18023. AH = 07h
  18024. STACK: WORD object type
  18025. Return: DX:AX -> object control block
  18026. SeeAlso: AH=06h"VMiX",AH=08h"VMiX"
  18027. ----------1507-------------------------------
  18028. INT 15 - IBM SurePath BIOS - Officially "Private" Function
  18029. AH = 07h
  18030. SeeAlso: AH=08h"IBM"
  18031. --------T-1507-------------------------------
  18032. INT 15 - MultiDOS Plus - SPAWN INTERNAL TASK (CREATE NEW THREAD)
  18033. AH = 07h
  18034. BX:CX = entry point of new task
  18035. DX = stack size in paragraphs
  18036. Return: AH = status
  18037. 00h successful
  18038. 01h no free task control blocks
  18039. 02h no free memory for task's stack
  18040. Note: execution returns immediately to calling task
  18041. SeeAlso: AH=08h"MultiDOS",AH=09h"MultiDOS",AH=13h"MultiDOS"
  18042. --------O-1508-------------------------------
  18043. INT 15 - VMiX - "sys_getccb" - GET CHANNEL CONTROL BLOCK
  18044. AH = 08h
  18045. STACK: WORD channel ID
  18046. Return: DX:AX -> channel control block
  18047. SeeAlso: AH=06h"VMiX",AH=07h"VMiX"
  18048. --------B-1508-------------------------------
  18049. INT 15 - IBM SurePath BIOS - WAIT REQUESTED TIME PERIOD
  18050. AH = 08h
  18051. AL = function
  18052. 00h wait in increments of 15.025 microseconds
  18053. CX = number of time increments to wait (0000h = maximum)
  18054. 80h wait in increments of 840 ns
  18055. ECX = number of time increments to wait
  18056. 81h I/O event wait
  18057. BH = bitmask of bits to check
  18058. BL = expected pattern
  18059. DX = I/O port address
  18060. ECX = number of 840 ns microticks to wait
  18061. Return: ECX = 00000000h if expected pattern did not occur
  18062. 82h memory event wait
  18063. BH = bitmask of bits to check
  18064. BL = expected pattern
  18065. ES:SI -> BYTE to check
  18066. ECX = number of 840 ns microticks to wait
  18067. Return: ECX = 00000000h if expected pattern did not occur
  18068. other reserved
  18069. Return: CF clear if successful
  18070. CF set on error
  18071. AH = status
  18072. 00h successful
  18073. 01h used 15.025 microsecond interval, time rounded up
  18074. 08h reserved subfunction
  18075. 86h function not supported
  18076. Notes: IBM classifies this function as optional
  18077. if the POST determines that the timer is nonfunctional, this function
  18078. uses the 15.025 microsecond refresh timer instead of the
  18079. full-resolution timer
  18080. SeeAlso: AH=07h"IBM",AH=09h"IBM",AH=86h
  18081. --------T-1508-------------------------------
  18082. INT 15 - MultiDOS Plus - TERMINATE INTERNAL TASK (KILL THREAD)
  18083. AH = 08h
  18084. Return: calling task terminated, so execution never returns to caller
  18085. Notes: an internal task must be terminated with this function rather than a
  18086. DOS termination function
  18087. task's stack space is returned to parent task's memory pool
  18088. SeeAlso: AH=07h"MultiDOS"
  18089. --------O-1509-------------------------------
  18090. INT 15 - VMiX - "sys_getqueue" - GET ID OF QUEUED ELEMENT
  18091. AH = 09h
  18092. STACK: WORD queue ID (0 = process queue, 1 = object, 3 = type)
  18093. WORD subqueue ID
  18094. Return: AX = queue ID
  18095. SeeAlso: AH=0Ah"VMiX"
  18096. ----------1509-------------------------------
  18097. INT 15 - IBM BIOS - RESERVED FOR PCMCIA SYSTEM RESOURCE TABLE ACCESS
  18098. AH = 09h
  18099. no further details available
  18100. SeeAlso: AH=08h"IBM"
  18101. --------T-1509-------------------------------
  18102. INT 15 - MultiDOS Plus - CHANGE TASK'S PRIORITY
  18103. AH = 09h
  18104. AL = new priority
  18105. Return: nothing
  18106. Note: the priority has different meanings depending on whether priority-
  18107. based or round-robin scheduling is used
  18108. SeeAlso: AH=07h"MultiDOS"
  18109. --------O-150A-------------------------------
  18110. INT 15 - VMiX - "sys_qetqnext" - GET ID OF NEXT QUEUED ELEMENT
  18111. AH = 0Ah
  18112. STACK: WORD queue ID (0 = process queue, 1 = object, 3 = type)
  18113. WORD ID of current element in queue chain
  18114. Return: AX = ID of next element
  18115. SeeAlso: AH=09h"VMiX",AH=0Fh"VMiX"
  18116. --------T-150A-------------------------------
  18117. INT 15 - MultiDOS Plus - CHANGE TIME SLICE INTERVAL
  18118. AH = 0Ah
  18119. AL = new interval
  18120. 00h = 55.0 ms (default)
  18121. 80h = 27.5 ms
  18122. 40h = 13.75 ms
  18123. 20h = 6.88 ms
  18124. 10h = 3.44 ms
  18125. 08h = 1.72 ms
  18126. SeeAlso: AH=03h"MultiDOS"
  18127. --------O-150B-------------------------------
  18128. INT 15 - VMiX - "sys_sysreq" - SYSTEM CONFIGURATION MANAGER
  18129. AH = 0Bh
  18130. STACK: WORD caller's UID
  18131. DWORD pointer to ASCIZ name of requested method
  18132. "abort" abort current send/receive on comm port
  18133. "block" start/end critical section
  18134. "close" terminate interrupt-drive comm I/O
  18135. "open" prepare comm port for interrupt-driven I/O
  18136. "delay" set delay timer and wait
  18137. "hibernate" put process to sleep
  18138. "ints" enable/disable interrupt-driven INT 14h
  18139. "length" get current send/receive buffer offsets
  18140. "kswitch" switch stacks
  18141. "numproc" get number of active processes
  18142. "protocol" set protocol function for comm interrupts
  18143. "relocate" set/reset VMiX flag for relocating to himem
  18144. "status" get current open comm port status
  18145. "wake" awaken a process
  18146. "xport" get comm port polled for logins
  18147. ---if "abort"---
  18148. no additional arguments
  18149. ---if "block"---
  18150. WORD 0000h end, 0001h start
  18151. ---if "close"---
  18152. no additional arguments
  18153. ---if "open"---
  18154. WORD comm port (00h-03h)
  18155. WORD BIOS parameter byte (see #00300 at INT 14/AH=00h),
  18156. except bits 7-5: 000 = 19200, 001 = 38400, 011 = 115200
  18157. ---if "delay"---
  18158. WORD time in seconds
  18159. ---if "hibernate"---
  18160. WORD process ID
  18161. ---if "ints"---
  18162. WORD 0000h if no, 0001h if yes
  18163. ---if "length","numproc","relocate","status","xport"---
  18164. no additional arguments
  18165. ---if "kswitch"---
  18166. DWORD pointer to new stack
  18167. ---if "protocol"---
  18168. DWORD pointer to function (must be in low "assign"ed memory
  18169. when in 386 mode)
  18170. ---if "wake"---
  18171. WORD process ID
  18172. Return: DX:AX -> result or 0000h:0000h
  18173. ---if "length"---
  18174. BYTE receive offset
  18175. BYTE send offset
  18176. ---if "kswitch"---
  18177. DWORD old stack pointer
  18178. ---if "numproc"---
  18179. WORD number of active processes
  18180. ---if "status"---
  18181. current open comm port status
  18182. ---if "xport"---
  18183. current comm port being polled for logins
  18184. Note: the "delay" command reportedly disables the keyboard until the delay
  18185. completes
  18186. SeeAlso: AH=05h"VMiX",AH=0Eh"VMiX"
  18187. --------T-150B-------------------------------
  18188. INT 15 - MultiDOS Plus - FORCE DISPLAY OUTPUT TO PHYSICAL SCREEN MEMORY
  18189. AH = 0Bh
  18190. Return: nothing
  18191. Notes: sets calling task's screen pointer to actual screen memory; the pointer
  18192. may be restored with AH=0Ch
  18193. caller's video mode must be same as foreground task's video mode
  18194. any text written while in the background will be saved to the
  18195. foreground task's virtual screen when it switches to the background
  18196. useful if a background task wants to display a message on the
  18197. foreground screen
  18198. SeeAlso: AH=0Ch"MultiDOS"
  18199. --------O-150C-------------------------------
  18200. INT 15 - VMiX - "sys_getstack" - GET POINTER TO PROCESS TSS STACK
  18201. AH = 0Ch
  18202. STACK: WORD process ID
  18203. Return: DX:AX -> TSS stack store
  18204. SeeAlso: AH=00h"VMiX"
  18205. --------T-150C-------------------------------
  18206. INT 15 - MultiDOS Plus - RESTORE OLD VIDEO DISPLAY MEMORY
  18207. AH = 0Ch
  18208. Return: nothing
  18209. Note: restores task's screen pointer saved by AH=0Bh; must not be called
  18210. unless AH=0Bh has been called first
  18211. SeeAlso: AH=0Bh"MultiDOS"
  18212. --------O-150D-------------------------------
  18213. INT 15 - VMiX - "sys_spawn" - START A CHILD PROCESS JOB SHELL
  18214. AH = 0Dh
  18215. STACK: DWORD ASCIZ string starting with requested I/O channel and
  18216. followed by standard VMiX shell command string
  18217. Return: AX = process ID or error code "SYS_ERROR"
  18218. Note: the maximum string length is 7Fh characters
  18219. SeeAlso: AH=0Eh"VMIX",AH=11h"VMiX",INT 21/AH=4Bh
  18220. --------T-150D-------------------------------
  18221. INT 15 - MultiDOS Plus - DISABLE MULTITASKING
  18222. AH = 0Dh
  18223. Return: nothing
  18224. Note: calling task receives all time slices until AH=0Eh is called; this
  18225. allows time-critical events or nonreentrant code to be processed
  18226. SeeAlso: AH=0Eh"MultiDOS",AH=10h"MultiDOS",AX=101Bh,AH=20h"MultiDOS"
  18227. --------O-150E-------------------------------
  18228. INT 15 - VMiX - "sys_kill" - HARD TERMINATE PROCESS
  18229. AH = 0Eh
  18230. STACK: WORD process ID
  18231. Return: AX = status (SYS_OK or SYS_ERROR)
  18232. SeeAlso: AH=0Bh"VMiX",AH=0Dh"VMIX"
  18233. --------T-150E-------------------------------
  18234. INT 15 - MultiDOS Plus - ENABLE MULTITASKING
  18235. AH = 0Eh
  18236. Return: nothing
  18237. SeeAlso: AH=0Dh"MultiDOS",AX=101Ch,AH=20h"MultiDOS"
  18238. --------d-150F-------------------------------
  18239. INT 15 C - SYSTEM - FORMAT UNIT PERIODIC INTERRUPT (PS ESDI drives only)
  18240. AH = 0Fh
  18241. AL = phase code
  18242. 00h reserved
  18243. 01h surface analysis
  18244. 02h formatting
  18245. Return: CF clear if formatting should continue
  18246. CF set if formatting should terminate
  18247. Note: called during ESDI drive formatting after each cylinder is completed
  18248. SeeAlso: INT 13/AH=1Ah
  18249. --------O-150F-------------------------------
  18250. INT 15 - VMiX - "sys_getqkey" - GET KEY FIELD OF QUEUED ELEMENT
  18251. AH = 0Fh
  18252. STACK: WORD queue ID (0 = process queue, 1 = object q, 3 = type q)
  18253. WORD ID of element in queue chain
  18254. Return: AX = key
  18255. SeeAlso: AH=0Ah"VMiX"
  18256. --------T-150F-------------------------------
  18257. INT 15 - MultiDOS Plus - EXECUTE A MULTIDOS PLUS COMMAND
  18258. AH = 0Fh
  18259. DS:BX -> ASCIZ command
  18260. Return: after command has been processed
  18261. Notes: specified string is executed as if it had been typed at the MultiDOS
  18262. command prompt
  18263. the task is placed on a queue which MultiDOS examines periodically and
  18264. is suspended until MultiDOS has processed the command
  18265. all lowercase characters up to the first blank are converted to upper
  18266. case within the given buffer
  18267. --------!---Section--------------------------
  18268. Interrupt List, part 3 of 18
  18269. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  18270. --------O-1510-------------------------------
  18271. INT 15 - VMiX - "sys_virtual" - EXECUTE CONFORMING FUNCTION IN PROTECTED MODE
  18272. AH = 10h
  18273. STACK: DWORD pointer to function
  18274. N WORDs function args
  18275. Return: AX = function's return value??? (not specified in documentation)
  18276. Note: while the function is executing, the following global descriptors are
  18277. available:
  18278. 20h stack segment
  18279. 38h code segment of function
  18280. 40h data alias for function's code segment
  18281. additional GDT descriptors can be allocated using AH=02h with
  18282. function "assign gdt"
  18283. SeeAlso: AH=02h"VMiX",AH=51h"VMiX"
  18284. --------T-1510-------------------------------
  18285. INT 15 - MultiDOS Plus - TEST RESOURCE SEMAPHORE
  18286. AH = 10h
  18287. AL = semaphore number (00h-3Fh)
  18288. Return: AH = status
  18289. 00h semaphore not in use
  18290. 01h semaphore owned by another task
  18291. 02h invalid semaphore number
  18292. 03h semaphore owned by caller
  18293. SeeAlso: AH=02h"MultiDOS",AH=0Dh"MultiDOS",AH=1Dh"MultiDOS"
  18294. --------Q-151000-----------------------------
  18295. INT 15 - TopView - "PAUSE" - GIVE UP CPU TIME
  18296. AX = 1000h
  18297. Return: after other processes run
  18298. Note: under DESQview, if the process issuing this call has hooked INT 08h,
  18299. the current time-slice is set to expire at the next clock tick rather
  18300. than immediately
  18301. SeeAlso: AH=00h"MultiDOS",AX=5305h,INT 21/AH=89h,INT 21/AH=EEh"DoubleDOS"
  18302. SeeAlso: INT 2F/AX=1680h,INT 60/DI=0106h,INT 62/AH=01h,INT 6F/AH=2Ah"F_YIELD"
  18303. SeeAlso: INT 7A/BX=000Ah,INT 7F/AH=02h"MultiLink",INT 7F/AH=E8h
  18304. --------Q-151001-----------------------------
  18305. INT 15 - TopView - "GETMEM" - ALLOCATE "SYSTEM" MEMORY
  18306. AX = 1001h
  18307. BX = number of bytes to allocate
  18308. Return: ES:DI -> block of memory or 0000h:0000h (DV v2.26+)
  18309. AX = status (DV v2.42)
  18310. 0000h successful
  18311. 0001h failed
  18312. Note: use SETERROR (AX=DE15h) to avoid a user prompt if there is insufficient
  18313. common memory. Under DV v2.42, this call never generates a user
  18314. prompt regardless of the SETERROR value; instead, it always returns
  18315. AX=0001h and ES:DI=0000h:0000h if out of memory
  18316. SeeAlso: AX=1002h,AX=102Eh,AX=DE0Ch,AX=DE15h
  18317. --------Q-151002-----------------------------
  18318. INT 15 - TopView - "PUTMEM" - DEALLOCATE "SYSTEM" MEMORY
  18319. AX = 1002h
  18320. ES:DI -> previously allocated block
  18321. Return: block freed
  18322. SeeAlso: AX=1001h,AX=DE0Dh
  18323. --------Q-151003-----------------------------
  18324. INT 15 - TopView - "PRINTC" - DISPLAY CHARACTER/ATTRIBUTE ON SCREEN
  18325. AX = 1003h
  18326. BH = attribute
  18327. BL = character
  18328. DX = segment of object handle for window
  18329. Return: nothing
  18330. Note: BX=0000h does not display anything, it only positions the hardware
  18331. cursor to the logical cursor's current position
  18332. --------Q-1510-------------------------------
  18333. INT 15 - TopView - UNIMPLEMENTED IN DV 2.x
  18334. AH = 10h
  18335. AL = 04h thru 12h
  18336. Return: pops up "Programming error" window in DV 2.x
  18337. --------Q-151013-----------------------------
  18338. INT 15 - TopView - "GETBIT" - DEFINE A 2ND-LEVEL INTERRUPT HANDLER
  18339. AX = 1013h
  18340. ES:DI -> FAR service routine
  18341. Return: BX = bit mask indicating which bit was allocated
  18342. 0000h if no more bits available
  18343. SeeAlso: AX=1014h,AX=1015h
  18344. Note: only a few TopView/DESQview API calls are allowed during a hardware
  18345. interrupt; if other calls need to be made, the interrupt handler
  18346. must schedule a 2nd-level interrupt with "SETBIT" (AX=1015h)
  18347. --------Q-151014-----------------------------
  18348. INT 15 - TopView - "FREEBIT" - UNDEFINE A 2ND-LEVEL INTERRUPT HANDLER
  18349. AX = 1014h
  18350. BX = bit mask from INT 15/AX=1013h
  18351. Return: nothing
  18352. SeeAlso: AX=1013h,AX=1015h
  18353. --------Q-151015-----------------------------
  18354. INT 15 - TopView - "SETBIT" - SCHEDULE ONE OR MORE 2ND-LEVEL INTERRUPTS
  18355. AX = 1015h
  18356. BX = bit mask for interrupts to post
  18357. Return: indicated routines will be called: (DV 2.0x) at next task switch
  18358. (DV 2.2x) immediately on return from
  18359. hardware interrupt
  18360. Notes: this is one of the few TopView calls which are allowed from a hardware
  18361. interrupt handler
  18362. the handler will be called with ES containing the segment of the handle
  18363. of the next task to be executed; on return, ES must be the segment of
  18364. a task handle
  18365. SeeAlso: AX=1013h,AX=1014h
  18366. --------Q-151016-----------------------------
  18367. INT 15 - TopView - "ISOBJ" - VERIFY OBJECT HANDLE
  18368. AX = 1016h
  18369. ES:DI = possible object handle
  18370. Return: BX = status
  18371. FFFFh if ES:DI is a valid object handle (see #00414)
  18372. 0000h if ES:DI is not
  18373. Note: under DESQview versions prior to 2.50, an object handle is always a
  18374. pointer to the object; for versions 2.50 and up, only task handles
  18375. are always pointers--other handles may consist of a unique object
  18376. number and offset into DESQview's common memory (see #00423)
  18377. SeeAlso: AX=DE14h,AX=DE2Bh,AX=DE2Ch
  18378. (Table 00413)
  18379. Values for DESQview object type:
  18380. 00h window/task
  18381. 01h mailbox
  18382. 02h keyboard
  18383. 03h timer
  18384. 04h pointer
  18385. 05h panel
  18386. 06h objectq
  18387. Format of DESQview object:
  18388. Offset Size Description (Table 00414)
  18389. 00h WORD offset in common memory of previous object of same type
  18390. 02h WORD offset in common memory of next object of same type
  18391. 04h WORD signature FEDCh (DV 2.42-)
  18392. signature FEDCh or object number (DV 2.50+)
  18393. 06h WORD object type (see #00413)
  18394. 08h DWORD object handle to return to caller
  18395. 0Ch DWORD canonicalized object address (segment = common memory)
  18396. 10h WORD offset in common memory of owning task
  18397. (0000h for unowned OBJECTQs)
  18398. 12h WORD mapping context
  18399. offset in common memory of mapping context record (see #00416)
  18400. remainder varies by object type and DESQview version
  18401. ---v2.42 keyboard object---
  18402. 14h WORD flag bits (see also AH=12h/BH=0Ah"OBJECT")
  18403. bit 15: keyboard opened
  18404. 16h 4 BYTEs ???
  18405. 1Ah WORD priority in OBJECTQ???
  18406. 1Ch ...
  18407. 25h WORD offset in common memory of ??? task
  18408. 27h 4 BYTEs ???
  18409. ---v2.42 objectq object---
  18410. 14h WORD flag bits (see also AH=12h/BH=0Ah"OBJECT")
  18411. bit 15: OBJECTQ opened
  18412. 16h 2 BYTEs ???
  18413. 18h WORD offset in common memory of ??? task
  18414. 1Ah 6 BYTEs ???
  18415. ---v2.42 mailbox object---
  18416. 14h WORD flag bits (see also AH=12h/BH=0Ah"OBJECT")
  18417. bit 15: mailbox opened
  18418. 1Ah WORD priority in OBJECTQ???
  18419. 1Ch 6 BYTEs ???
  18420. 22h WORD offset in common memory of mailbox name (counted string)
  18421. 0000h if no name
  18422. <= 5 BYTEs ???
  18423. ---v2.22-2.42,2.52,2.60 window/task object---
  18424. 14h BYTE 00h window, 01h task
  18425. 15h BYTE internal (not Switch menu) window number???
  18426. 16h BYTE internal (not Switch menu) window number???
  18427. 17h WORD segment of internal window record (see #00417)
  18428. 19h 2 BYTEs ???
  18429. 1Bh BYTE cursor row
  18430. 1Ch BYTE cursor column
  18431. 1Dh BYTE visible window origin, row
  18432. 1Eh BYTE visible window origin, column
  18433. 1Fh BYTE window height (logical)
  18434. 20h BYTE window width (logical)
  18435. 21h BYTE window position, row
  18436. 22h BYTE window position, column
  18437. 23h BYTE window height (visible)
  18438. 24h BYTE window width (visible)
  18439. 25h BYTE row of top of frame (or window if unframed)
  18440. 26h BYTE column of left of frame (or window if unframed)
  18441. 27h BYTE window height (physical, including frame)
  18442. 28h BYTE window width (physical, including frame)
  18443. 29h BYTE unzoomed visible origin, row (00h before first zoom)
  18444. 2Ah BYTE unzoomed visible origin, column (00h before first zoom)
  18445. 2Bh BYTE unzoomed window position, row (00h before first zoom)
  18446. 2Ch BYTE unzoomed window position, column (00h before first zoom)
  18447. 2Dh BYTE unzoomed window height (00h before first zoom)
  18448. 2Eh BYTE unzoomed window width (00h before first zoom)
  18449. unzoomed parameters above are updated when window is zoomed
  18450. to full screen
  18451. 2Fh BYTE ??? initially logical window height
  18452. 30h BYTE ??? initially logical window width
  18453. 31h 2 BYTEs ???
  18454. 33h BYTE minimum height of window
  18455. 34h BYTE minimum width of window
  18456. 35h BYTE maximum height of window
  18457. 36h BYTE maximum width of window
  18458. 37h 3 BYTEs ???
  18459. 3Ah 8 BYTEs window frame characters: ul,ur,ll,lr,t,b,l,r
  18460. 42h 24 BYTEs attributes???
  18461. 5Ah 8 BYTEs window frame characters: ul,ur,ll,lr,t,b,l,r
  18462. 62h 3 BYTEs ???
  18463. 65h BYTE ??? bitflags
  18464. 66h BYTE bit 0: window is zoomed
  18465. 67h BYTE ???
  18466. 68h WORD offset in common memory of window name or 0000h if untitled
  18467. 6Ah WORD length of window name
  18468. 6Ch 2 BYTEs ???
  18469. 6Eh WORD offset of logical cursor in window (in character cells)
  18470. 70h DWORD pointer to field table for window
  18471. 74h BYTE ???
  18472. 75h 2 BYTEs ???
  18473. 77h BYTE number of last-visited field
  18474. 78h DWORD pointer to field table entry for last-visited field
  18475. 7Ch 3 BYTEs ???
  18476. 7Fh BYTE select field marker character
  18477. 80h BYTE ??? bit flags
  18478. bit 0: allow ECh window stream opcode to change reverse logattr
  18479. bit 1: alternate field processing mode selected
  18480. 81h BYTE ???
  18481. 82h DWORD notification function (manager stream opcode 8Ah)
  18482. no notification if segment = 0000h
  18483. 86h DWORD notification argument (manager stream opcode 8Bh)
  18484. 8Ah WORD offset in common memory of ??? window object or 0000h
  18485. 8Ch WORD offset in common memory of ??? window object or 0000h
  18486. 8Eh WORD offset in common memory of ??? window object or 0000h
  18487. 90h BYTE ??? bitflags
  18488. 91h BYTE ???
  18489. ---task object only
  18490. 92h BYTE bit flags (bits 0-4)
  18491. 93h BYTE character for ??? (default 20h)
  18492. 94h BYTE ??? flag
  18493. 95h WORD offset in common memory of ???
  18494. 97h 2 BYTEs ???
  18495. 99h WORD ???
  18496. 9Bh BYTE ??? bit flags
  18497. bit 3: ???
  18498. bit 6: perform protected-attribute processing on select fields
  18499. 9Ch BYTE ???
  18500. 9Dh WORD offset in common memory of current register save record
  18501. (see #00415). No register save record in use if < 01C0h
  18502. 9Fh WORD offset in common memory of task's keyboard object
  18503. A1h WORD offset in common memory of task's OBJECTQ object
  18504. A3h WORD offset in common memory of task's mailbox object
  18505. A5h WORD semaphore: FFFFh if on user stack, else on task's private stack
  18506. A7h DWORD user's SS:SP
  18507. ABh WORD task's private SP (SS read from offset 0Ah)
  18508. ADh 6 BYTEs ???
  18509. B3h BYTE ??? bit flags
  18510. bit 0: run in foreground only
  18511. B4h BYTE ???
  18512. B5h BYTE ??? bitflags
  18513. B6h BYTE task status (see #00555 at AX=DE2Ch)
  18514. B7h 9 BYTEs ???
  18515. C0h WORD head pointer for keyboard buffer (wraps back to 00h after 80h)
  18516. C2h WORD tail pointer for keyboard buffer (wraps back to 00h after 80h)
  18517. C4h 2 BYTEs ??? (0000h)
  18518. C6h WORD segment of keyboard buffer for task
  18519. C8h WORD offset in common memory of ??? keyboard object
  18520. CAh BYTE ???
  18521. ---v2.22-2.42
  18522. CBh WORD offset in common memory of ??? object
  18523. CEh BYTE ??? flag
  18524. CFh WORD offset in common memory of default notify window for task
  18525. or 0000h if none
  18526. D1h 4 BYTEs ???
  18527. D5h BYTE window number on Switch Window menu
  18528. D6h 5 BYTEs ???
  18529. DBh WORD offset in common memory of ??? object
  18530. DDh 2 BYTEs ???
  18531. DFh WORD API level for task
  18532. E1h WORD offset in common memory of object task is waiting on if task
  18533. status is 'waiting', else 0000h
  18534. E7h WORD segment of ???
  18535. E9h 4 BYTEs ???
  18536. EDh WORD EMS handle of virtualization buffer, 0000h if no virtualization
  18537. F1h 12 BYTEs ???
  18538. FBh WORD ???
  18539. FDh BYTE ???
  18540. FFh 12 BYTEs ???
  18541. 10Bh DWORD pointer to process record (see #00418,#00419)
  18542. 10Dh 10 BYTEs ???
  18543. 119h DWORD SS:SP for ???
  18544. 11Dh 4 BYTEs ???
  18545. 121h DWORD pointer to ???
  18546. 125h 25 BYTEs ???
  18547. 13Eh DWORD pointer to ??? in system memory
  18548. ---v2.22
  18549. 142h 3 BYTEs ???
  18550. 145h task's default keyboard object
  18551. ---v2.42
  18552. 142h DWORD pointer to first task instance data record in system memory
  18553. 148h DWORD pointer to last task instance data record in system memory
  18554. (see #00420)
  18555. 14Ah BYTE ???
  18556. 14Dh 42 BYTEs task's default keyboard object
  18557. 177h 32 BYTEs task's ObjectQ object
  18558. 197h 41 BYTEs task's default mailbox object
  18559. 1C0h 24 BYTEs first register save record
  18560. 450h -- default top of private stack
  18561. ---v2.52 (probably all DV/X)
  18562. Same as v2.60 below except there is an extra 29 bytes inserted somewhere
  18563. before offset 9Fh, but not yet known exactly where. Also, for the WAIT_ON
  18564. field (v2.60 offset E3h), some X apps (probably waiting on a socket) have
  18565. 0000h even when waiting.
  18566. ---v2.60
  18567. CBh WORD ??? (added in 2.50 - rest is same as 2.42)
  18568. CDh WORD offset in common memory of ??? object
  18569. D0h BYTE ??? flag
  18570. D1h WORD offset in common memory of default notify window for task
  18571. or 0000h if none
  18572. D3h 4 BYTEs ???
  18573. D7h BYTE window number on Switch Window menu
  18574. D8h 5 BYTEs ???
  18575. DDh WORD offset in common memory of ??? object
  18576. DFh 2 BYTEs ???
  18577. E1h WORD API level for task
  18578. E3h WORD If status at B6h=waiting, offset in common memory of object
  18579. that task is waiting on, else 0000h. (Task with CPU also
  18580. has 0000h here)
  18581. E9h WORD segment of ???
  18582. EBh 4 BYTEs ???
  18583. EFh WORD EMS handle of virtualization buffer, 0 if no virtualization
  18584. F3h 12 BYTEs ???
  18585. FDh WORD ???
  18586. FFh BYTE ???
  18587. 101h 8 BYTEs ???
  18588. 109h DWORD pointer to process record in system memory
  18589. 10Dh 14 BYTEs ???
  18590. 11Bh DWORD SS:SP for ???
  18591. 11Fh 4 BYTEs ???
  18592. 123h DWORD pointer to ???
  18593. 127h 25 BYTEs ???
  18594. 140h DWORD pointer to ??? in system memory
  18595. 144h DWORD pointer to first task instance data record in system memory
  18596. 148h DWORD pointer to last task instance data record in system memory
  18597. (from INT 15/AX=DE27h) (see #00420)
  18598. 14Ch BYTE ???
  18599. 14Eh 42 BYTEs task's default keyboard object
  18600. 179h 32 BYTEs task's ObjectQ object
  18601. 199h 41 BYTEs task's default mailbox object
  18602. 1C2h 24 BYTEs first register save record
  18603. 452h -- default top of private stack
  18604. Format of DESQview Register Save Record:
  18605. Offset Size Description (Table 00415)
  18606. 00h WORD AX
  18607. 02h WORD BX
  18608. 04h WORD CX
  18609. 06h WORD DX
  18610. 08h WORD DI
  18611. 0Ah WORD SI
  18612. 0Eh WORD DS
  18613. 10h WORD ES
  18614. 12h DWORD return address
  18615. 16h WORD original flags
  18616. Format of DESQview mapping context record:
  18617. Offset Size Description (Table 00416)
  18618. 00h WORD lowest segment in process's memory
  18619. (often start of system memory chain)
  18620. 02h WORD size of process's memory in paragraphs
  18621. 04h BYTE flag: 00h if process swapped out, 01h otherwise
  18622. 05h BYTE flag: 00h if allocated in conventional memory, 01h if EMS
  18623. 06h 2 BYTEs ???
  18624. 08h WORD EMS handle if in EMS, else 0
  18625. 0Ah 2 BYTEs ??? (nonzero if system memory resides in shared mem???)
  18626. 0Ch WORD segment of system memory block that contains process record,
  18627. referenced from segment of start of system memory chain
  18628. 0Eh BYTE ???
  18629. 0Fh WORD size of system memory block that contains process record
  18630. and DOS memory in paragraphs
  18631. 11h BYTE bit flags
  18632. Bit 0: Swapped out???
  18633. Bit 1: ???
  18634. Bit 2: Swapped out???
  18635. 12h BYTE ???
  18636. 13h BYTE reference count
  18637. ---v2.31
  18638. 14h 10 BYTEs ???
  18639. 1Eh WORD segment of process record
  18640. 20h 2 BYTEs ???
  18641. 22h WORD segment of ??? (in first free system memory block???)
  18642. 24h WORD segment of end of system memory chain
  18643. 26h WORD segment of start of system memory chain
  18644. 28h 8 BYTEs ???
  18645. 2Ah DWORD pointer to ??? (process record???)
  18646. 2Dh 10 BYTEs ???
  18647. 37h BYTE lowest interrupt vector to save on context switch
  18648. 38h BYTE highest interrupt vector to save on context switch
  18649. 39h WORD offset in common memory of main task with this context
  18650. 3Ah 12 BYTEs ???
  18651. 46h BYTE internal mapping context number
  18652. 47h 12 BYTEs ???
  18653. ---v2.5x-2.60
  18654. 14h 6 BYTEs ???
  18655. 1Ah WORD segment of process record
  18656. 1Ch 2 BYTEs ???
  18657. 1Eh WORD segment of first free system memory block
  18658. 20h WORD segment of start of system memory chain
  18659. 22h WORD segment of end of system memory chain
  18660. 24h 8 BYTEs ???
  18661. 2Ch DWORD pointer to ??? (1 segment into process record???)
  18662. 30h 3 BYTEs ???
  18663. 33h WORD Offset in common memory of main task with this context
  18664. 35h 7 BYTEs ???
  18665. 3Ch BYTE internal mapping context number
  18666. 3Dh 14 BYTEs ???
  18667. 4Bh WORD first DOS memory segment (first MCB segment+1)
  18668. 4Dh BYTE ??? (flag???)
  18669. ---v2.53 (2.5x???)
  18670. 4Eh 12 BYTEs ???
  18671. ---v2.60
  18672. 4Eh WORD segment of script buffer (see #00421)
  18673. 50h 6 BYTEs ???
  18674. Format of DESQview Internal Window Record (v2.31-2.60):
  18675. Offset Size Description (Table 00417)
  18676. 00h BYTE internal window number???
  18677. 01h BYTE display page???
  18678. 02h BYTE video mode
  18679. 03h 3 BYTEs ???
  18680. 06h BYTE logical window height
  18681. 07h BYTE logical window width
  18682. 08h DWORD pointer to text video buffer
  18683. 0Ch 116 BYTEs ???
  18684. Format of DESQview process record (v2.31):
  18685. Offset Size Description (Table 00418)
  18686. -470h 13 BYTEs filename of ??? Script
  18687. -463h 1117 BYTEs ??? (script buffer???)
  18688. -6h 6 BYTEs ???
  18689. 00h WORD segment of parent PSP in process
  18690. 02h 5 BYTEs ???
  18691. 07h WORD segment of current PSP in process
  18692. 09h WORD segment of first MCB in process
  18693. 0Bh 13 BYTEs ???
  18694. 18h 1024 BYTEs process's interrupt vector table
  18695. 418h 376 BYTEs ???
  18696. 590h first MCB in process
  18697. SeeAlso: #00419
  18698. Format of DESQview process record (v2.52-v2.60) (probably also 2.5x):
  18699. Offset Size Description (Table 00419)
  18700. 00h 28 BYTEs EXE header of last EXE, ??? if last program run was COM
  18701. 1Ch ??? BYTEs overwritten with ASCIZ filename of last program run (EXE/COM)
  18702. 11Ch WORD segment of parent PSP in process
  18703. 11Eh 4 BYTEs ???
  18704. 122h WORD segment of current PSP
  18705. 124h WORD segment of current PSP
  18706. 126h WORD segment of first MCB in process
  18707. 128h 4 BYTEs ???
  18708. 12Ch DWORD pointer to first process instance data record in system memory
  18709. 130h DWORD pointer to last process instance data record in system memory
  18710. (from INT 15/AX=DE27h) (see #00420)
  18711. 134h 8 BYTEs ???
  18712. 13Ch WORD size of current environment
  18713. 13Eh WORD segment of current environment
  18714. 140h WORD segment of current PSP
  18715. 142h DWORD entry point of current program
  18716. 146h 10 BYTEs ???
  18717. ---v2.52 (v2.5x???)
  18718. 150h BYTE ???
  18719. 151h WORD segment of parent PSP in process
  18720. 153h WORD ???
  18721. 155h WORD ???
  18722. 157h WORD ???
  18723. 159h 4 BYTEs ???
  18724. 15Dh WORD segment of current environment
  18725. 15Fh WORD segment of current PSP
  18726. 161h WORD segment of ???
  18727. 162h WORD ???
  18728. 164h 3 BYTEs ???
  18729. 168h 1024 BYTEs process's interrupt vector table
  18730. 568h 120 BYTEs ???
  18731. 5E0h first MCB in process
  18732. ---v2.60
  18733. 150h WORD segment of parent PSP in process
  18734. 152h WORD ???
  18735. 154h WORD ???
  18736. 156h WORD ???
  18737. 158h 4 BYTEs ???
  18738. 15Ch WORD segment of current environment
  18739. 15Eh WORD segment of current PSP
  18740. 160h WORD segment of ???
  18741. 162h WORD ???
  18742. 164h 1024 BYTEs process's interrupt vector table
  18743. 564h 108 BYTEs ???
  18744. 5D0h first MCB in process
  18745. SeeAlso: #00418
  18746. Format of DESQview task or process instance data record (v2.5x???, v2.60):
  18747. Offset Size Description (Table 00420)
  18748. 00h DWORD pointer to next record of same type or 00000000
  18749. 04h DWORD pointer to previous record of same type or 00000000
  18750. 08h DWORD pointer to source area of memory during restore state
  18751. 0Ch WORD number of bytes to save/restore
  18752. 0Eh DWORD pointer to destination area of memory during restore state
  18753. 12h WORD ??? (0)
  18754. 14h N BYTEs source memory buffer during restore state
  18755. Format of DESQview script buffer (v2.60):
  18756. Offset Size Description (Table 00421)
  18757. 00h 13 BYTEs ASCIZ Script filename
  18758. 0Dh 80 BYTEs ???
  18759. 5Eh N BYTEs script records (see #00422)
  18760. Format of one DESQview script record (v2.60):
  18761. Offset Size Description (Table 00422)
  18762. 00h BYTE signature 12h
  18763. 01h 18 BYTEs blank-padded script name
  18764. 13h BYTE ASCII code of key attached to script or 0 if non-ASCII key
  18765. 14h BYTE scan code of key attached to script if non-ASCII, else 0
  18766. 15h BYTE ???
  18767. 16h WORD size of script in bytes
  18768. 18h N BYTEs script (ASCII code of each keystroke; if 0, next byte is
  18769. scan code of non-ASCII key)
  18770. SeeAlso: #00421
  18771. Format of DESQview Common Memory Header (v2.31-2.60):
  18772. Offset Size Description (Table 00423)
  18773. 00h WORD offset of lowest used block
  18774. 02h WORD bytes of commom memory, including header
  18775. 04h WORD offset of first free block
  18776. 06h N BYTEs size depends of DV version, ??? (DVP buffer???)
  18777. Note: the above is located at the beginning of the commom memory segment
  18778. SeeAlso: #00424,#00425,#00433
  18779. Format of DESQview Free block header:
  18780. Offset Size Description (Table 00424)
  18781. 00h WORD size of block in bytes including header
  18782. 02h WORD offset of next free block
  18783. 04h N BYTEs free block
  18784. SeeAlso: #00423,#00425
  18785. Format of DESQview Used block header:
  18786. Offset Size Description (Table 00425)
  18787. 00h WORD size of block in bytes including header
  18788. 02h N BYTEs used block
  18789. SeeAlso: #00423,#00424
  18790. --------Q-151017-----------------------------
  18791. INT 15 - TopView - UNIMPLEMENTED IN DV 2.x
  18792. AX = 1017h
  18793. Return: pops up "Programming error" window in DV 2.x
  18794. --------Q-151018-----------------------------
  18795. INT 15 - TopView - "LOCATE" - FIND WINDOW AT A GIVEN SCREEN LOCATION
  18796. AX = 1018h
  18797. BH = column
  18798. BL = row
  18799. ES = segment of object handle for window below which to search
  18800. 0000h = start search with topmost window
  18801. Return: ES = segment of object handle for window which is visible at the
  18802. indicated position, or covered by indicated window
  18803. 0000h if no window
  18804. SeeAlso: AX=1023h,AX=1024h
  18805. --------Q-151019-----------------------------
  18806. INT 15 - TopView - "SOUND" - MAKE TONE
  18807. AX = 1019h
  18808. BX = frequency in Hertz (0000h = silence)
  18809. CX = duration in clock ticks (18.2 ticks/sec)
  18810. Return: immediately, tone continues to completion
  18811. Notes: if another tone is already playing, the new tone does not start until
  18812. completion of the previous one. Up to 32 tones may be queued before
  18813. the process is blocked until a note completes.
  18814. in DV 2.00, the lowest tone allowed is 20 Hz
  18815. if CX = 0, the current note is cancelled; if BX = 0 as well, all queued
  18816. notes are also cancelled
  18817. SeeAlso: AH=82h"HUNTER",INT 16/AH=73h
  18818. --------Q-15101A-----------------------------
  18819. INT 15 - TopView - "OSTACK" - SWITCH TO TASK'S INTERNAL STACK
  18820. AX = 101Ah
  18821. Return: stack switched
  18822. Notes: this call may not be nested; a second call must be preceded by a call
  18823. to "USTACK" (AX=1025h)
  18824. while TopView requires many API calls to be executed while on the
  18825. task's internal stack, DESQview allows those calls to be executed
  18826. regardless of the current stack
  18827. SeeAlso: AX=1025h
  18828. --------Q-15101B-----------------------------
  18829. INT 15 - TopView - "BEGINC" - BEGIN CRITICAL REGION
  18830. AX = 101Bh
  18831. Return: task-switching temporarily disabled
  18832. Notes: will not task-switch until "ENDC" (AX = 101Ch) called unless task
  18833. voluntarily releases the CPU (upon regaining the CPU, task-switching
  18834. will again be disabled)
  18835. suspends the caller until DOS is free
  18836. SeeAlso: AH=0Dh"MultiDOS",AX=101Ch,AX=DE13h,AX=DE1Ch,INT 2F/AX=1681h
  18837. SeeAlso: INT 60/DI=0602h
  18838. --------Q-15101C-----------------------------
  18839. INT 15 - TopView - "ENDC" - END CRITICAL REGION
  18840. AX = 101Ch
  18841. Return: task-switching enabled
  18842. Note: this API call may be made from within a hardware interrupt handler
  18843. SeeAlso: AX=101Bh,AX=DE13h,AX=DE1Bh,INT 2F/AX=1682h,INT 60/DI=0603h
  18844. --------Q-15101D-----------------------------
  18845. INT 15 - TopView - "STOP" - STOP TASK
  18846. AX = 101Dh
  18847. ES = segment of object handle for task to be stopped
  18848. (== handle of main window for that task)
  18849. Return: indicated task will not get any CPU time until restarted with AX=101Eh
  18850. Note: once a task has been stopped, additional "STOP"s are ignored
  18851. BUG: in DV 2.00, this function is ignored unless the indicated task is the
  18852. current task
  18853. SeeAlso: AX=101Eh,AX=102Bh,AH=12h"VMiX",INT 21/AH=81h
  18854. --------Q-15101E-----------------------------
  18855. INT 15 - TopView - "START" - START TASK
  18856. AX = 101Eh
  18857. ES = segment of object handle for task to be started
  18858. (== handle of main window for that task)
  18859. Return: indicated task is started up again
  18860. Note: once a task has been started, additional "START"s are ignored
  18861. SeeAlso: AX=101Dh,AX=102Bh,INT 21/AH=82h
  18862. --------Q-15101F-----------------------------
  18863. INT 15 - TopView - "DISPEROR" - POP-UP ERROR WINDOW
  18864. AX = 101Fh
  18865. BX = bit fields
  18866. bits 0-12: number of characters to display
  18867. bits 13,14: which mouse button may be pressed to remove window
  18868. 00 = either
  18869. 01 = left
  18870. 10 = right
  18871. 11 = either
  18872. bit 15: beep if 1
  18873. ES:DI -> text of message
  18874. CH = width of error window (0 = default)
  18875. CL = height of error window (0 = default)
  18876. DX = segment of object handle
  18877. Return: BX = status: 1 = left button, 2 = right, 27 = ESC pressed
  18878. Note: window remains on-screen until ESC or indicated mouse button is pressed
  18879. --------Q-151020-----------------------------
  18880. INT 15 - TopView - UNIMPLEMENTED IN DV v2.00+
  18881. AX = 1020h
  18882. Return: pops up "Programming error" window in DV v2.00+
  18883. --------Q-151021-----------------------------
  18884. INT 15 - TopView - "PGMINT" - INTERRUPT ANOTHER TASK
  18885. AX = 1021h
  18886. BX = segment of object handle for task to interrupt (not self)
  18887. DX:CX -> FAR routine to jump to next time task is run
  18888. Return: nothing
  18889. Notes: the FAR routine is entered with the current ES, DS, SI, DI, and BP
  18890. values, using the task's internal stack (see AX=101Ah); only SS:SP
  18891. needs to be preserved
  18892. multiple PGMINTs to a single task are processed last-in first-out
  18893. if the other task is in a DOS or DV API call, the interruption will
  18894. occur on return from that call
  18895. --------Q-151022BX0000-----------------------
  18896. INT 15 - TopView - "GETVER" - GET VERSION
  18897. AX = 1022h
  18898. BX = 0000h
  18899. Return: BX nonzero, TopView or compatible loaded
  18900. (BL = major version, BH = minor version)
  18901. Notes: TaskView returns BX = 0001h, DESQview v2.00+ returns BX = 0A01h
  18902. --------Q-151023-----------------------------
  18903. INT 15 - TopView - "POSWIN" - POSITION WINDOW
  18904. AX = 1023h
  18905. BX = segment of object handle for parent window within which to
  18906. position the window (0 = full screen)
  18907. ES = segment of object handle for window to be positioned
  18908. DL = general window position (see #00426)
  18909. CH = number of columns to offset from position specified by DL
  18910. CL = number of rows to offset from position specified by DL
  18911. Return: nothing
  18912. Bitfields for TopView general window position:
  18913. Bit(s) Description (Table 00426)
  18914. 0,1 horizontal position
  18915. 00 = current, 01 = center, 10 = left, 11 = right
  18916. 2,3 vertical position
  18917. 00 = current, 01 = center, 10 = top, 11 = bottom
  18918. 4 don't redraw screen if set
  18919. 5-7 not used
  18920. --------Q-151024-----------------------------
  18921. INT 15 - TopView - "GETBUF" - GET VIRTUAL SCREEN INFO
  18922. AX = 1024h
  18923. BX = segment of object handle for window (0000h = use default)
  18924. Return: ES:DI -> virtual screen
  18925. CX = size of virtual screen in bytes
  18926. DL = screen type
  18927. 00h text screen
  18928. 01h graphics screen
  18929. SeeAlso: INT 10/AH=FEh,INT 21/AH=2Bh/CX=4445h
  18930. --------Q-151025-----------------------------
  18931. INT 15 - TopView - "USTACK" - SWITCH BACK TO USER'S STACK
  18932. AX = 1025h
  18933. Return: stack switched back
  18934. Notes: call only after having switched to internal stack with AX=101Ah
  18935. while TopView requires many API calls to be executed while on the
  18936. task's private stack, DESQview allows those calls to be executed
  18937. regardless of the current stack
  18938. SeeAlso: AX=101Ah
  18939. --------Q-1510-------------------------------
  18940. INT 15 - DESQview (TopView???) - UNIMPLEMENTED IN DV 2.x
  18941. AH = 10h
  18942. AL = 26h thru 2Ah
  18943. Return: pops up "Programming error" window in DV 2.x
  18944. --------Q-15102B-----------------------------
  18945. INT 15 - DESQview v2.00+ (TopView???) - "POSTTASK" - AWAKEN TASK
  18946. AX = 102Bh
  18947. BX = segment of object handle for task
  18948. Return: nothing
  18949. Note: forces a task which is waiting on its objectq to continue by placing
  18950. the handle for the task on the objectq
  18951. SeeAlso: AX=101Dh,AX=101Eh,INT 21/AH=82h
  18952. --------Q-15102C-----------------------------
  18953. INT 15 - DESQview v2.00+ - "NEWPROC" - START NEW APPLICATION IN NEW PROCESS
  18954. AX = 102Ch
  18955. ES:DI -> contents of .PIF/.DVP file (see #00427)
  18956. BX = size of .PIF/.DVP info
  18957. Return: BX = segment of object handle for new task
  18958. 0000h on error
  18959. SeeAlso: AX=DE24h,INT 21/AH=4Bh
  18960. Format of .PIF/.DVP file:
  18961. Offset Size Description (Table 00427)
  18962. 00h BYTE reserved (0)
  18963. 01h BYTE checksum of bytes 02h through 170h
  18964. 02h 30 BYTEs blank-padded program title
  18965. 20h WORD maximum memory to allocate to partition in KB
  18966. 22h WORD minimum memory required in KB
  18967. 24h 64 BYTEs ASCIZ program pathname
  18968. 64h BYTE default drive letter ('A',...)
  18969. 65h 64 BYTEs ASCIZ default directory name
  18970. A5h 64 BYTEs ASCIZ program parameters
  18971. E5h BYTE initial screen mode (0-7) (also see offset 189h)
  18972. E6h BYTE number of text pages used
  18973. E7h BYTE number of first interrupt to save
  18974. E8h BYTE number of last interrupt to save
  18975. E9h BYTE rows in virtual screen buffer
  18976. EAh BYTE columns in virtual screen buffer
  18977. EBh BYTE initial window position, row
  18978. ECh BYTE initial window position, column
  18979. EDh WORD system memory in KB
  18980. EFh 64 BYTEs ASCIZ shared program name
  18981. 12Fh 64 BYTEs ASCIZ shared program data file
  18982. 16Fh BYTE program flags 1 (see #00428)
  18983. 170h BYTE flags2
  18984. bit 6: uses command-line parameters in field at A5h
  18985. bit 5: swaps interrupt vectors
  18986. ---information unique to .DVP files---
  18987. 171h 2 BYTEs keys to use on open menu
  18988. 173h WORD size of script buffer in bytes
  18989. 175h WORD automatically give up CPU after this many tests for keyboard
  18990. input in one clock tick (default 0 = never)
  18991. 177h BYTE nonzero = "uses own colors"
  18992. 178h BYTE nonzero if application swappable
  18993. 179h 3 BYTEs reserved (0) according to Quarterdeck documentation
  18994. in actual .DVP files, frequently 01h
  18995. 17Ch BYTE nonzero to automatically close on exit (see also #00430)
  18996. 17Dh BYTE nonzero if copy-protect floppy is required
  18997. ---information unique to DESQview 2.0+---
  18998. 17Eh BYTE .DVP version number
  18999. 00h DESQview v1.2+
  19000. 01h DESQview v2.0+
  19001. 02h DESQview v2.2+
  19002. 17Fh BYTE reserved (0)
  19003. 180h BYTE initial number of rows in physical window
  19004. 181h BYTE initial number of columns in physical window
  19005. 182h WORD maximum expanded memory to allow, in KB
  19006. 184h BYTE DVP program flags 3 (see #00429)
  19007. 185h BYTE keyboard conflict level (0-4 for DV<2.26, 00h-0Fh for DV2.26+)
  19008. (see #00431)
  19009. 186h BYTE number of graphics pages used
  19010. 187h WORD extra system memory size
  19011. 189h BYTE initial screen mode (FFh = default) (overrides offset E5h)
  19012. ---information unique to DESQview 2.2+---
  19013. 18Ah BYTE serial port usage
  19014. FFh uses all serial ports
  19015. 00h no serial ports
  19016. 01h only COM1
  19017. 02h only COM2
  19018. 18Bh BYTE DVP program flags 4 (see #00430)
  19019. 18Ch BYTE protection level for 386 machines
  19020. 18Dh 19 BYTEs reserved (0) for regular DESQview
  19021. ---information unique to DESQview/X 1.0---
  19022. 18Dh BYTE X flags
  19023. bits 3-7: unused (0)
  19024. bit 2: don't display wait message when opening window
  19025. bit 1: don't display DOS window
  19026. bit 0: (XNEWPROC) use DOS client layer (DOS-to-X)
  19027. (NEWPROC) inherit DOS client layer usage
  19028. 18Eh BYTE X keyboard behavior (0-3)
  19029. 18Fh BYTE font scaling
  19030. 00h fixed fonts
  19031. 01h scalable fonts
  19032. 190h 10 BYTEs reserved (0)
  19033. 19Ah WORD length of data follownig XDVP signature
  19034. 19Ch 4 BYTEs signature "XDVP"
  19035. 1A0h N BYTEs list of variable length records (see #00432)
  19036. Bitfields for .PIF/.DVP program flags 1:
  19037. Bit(s) Description (Table 00428)
  19038. 7 writes text directly to screen
  19039. 6 runs in foreground only (see also #00427 offset 184h)
  19040. 5 uses math coprocessor
  19041. 4 accesses system keyboard buffer directly
  19042. 3-1 reserved (0)
  19043. 0 swappable
  19044. SeeAlso: #00427,#00429,#00430
  19045. Bitfields for .DVP program flags 3:
  19046. Bit(s) Description (Table 00429)
  19047. 7 automatically assign window position
  19048. 5 maximum memory value has been specified
  19049. 4 disallow "Close" command
  19050. 3 foreground-only when doing graphics
  19051. set by DV 2.3+ when "Runs in Background" = "D" (undoc)
  19052. 2 don't virtualize (see also #00430)
  19053. 1 foreground-only during DOS calls
  19054. set by DV 2.3+ when "Runs in Background" = "D" (undoc)
  19055. SeeAlso: #00427,#00428,#00430
  19056. Bitfields for .DVP program flags 4:
  19057. Bit(s) Description (Table 00430)
  19058. 7 automatically close application on exit if .COM or .EXE specified
  19059. (see also #00427 offset 17Ch)
  19060. 6 swappable if not using serial ports
  19061. 5 start program with window hidden (v2.26+)
  19062. 4 start program in background (v2.26+)
  19063. 3 virtualize text (see also #00429)
  19064. 2 virtualize graphics (see also #00429)
  19065. 1 share CPU when foreground
  19066. 0 share EGA when foreground and zoomed
  19067. SeeAlso: #00427,#00428,#00429
  19068. Bitfields for DESQview keyboard conflict level:
  19069. Bit(s) Description (Table 00431)
  19070. 3 save/restore entire INT 09 handler state every taskswtch
  19071. 2 take special precautions for programs which read the BIOS keyboard
  19072. buffer directly from memory
  19073. 1 never indicate keystroke available during scripts/xfers
  19074. 0 only indicate keystroke available every sixth poll
  19075. SeeAlso: #00427
  19076. Format of DESQview/X variable length record:
  19077. Offset Size Description (Table 00432)
  19078. 00h WORD length of following record, 0000h if end of record list
  19079. 02h BYTE record type
  19080. 01h script filename, up to 64 characters
  19081. 02h command-line parameters (allows >64 characters on cmdline)
  19082. 03h environment inheritance
  19083. 04h environment string
  19084. 05h starting window position
  19085. ---types 01h,02h,04h---
  19086. 03h N BYTEs ASCII data
  19087. ---type 03h---
  19088. 03h BYTE inheritance
  19089. 00h do not inherit
  19090. 01h inherit environment
  19091. ---type 05h---
  19092. 03h N BYTEs ASCII copy of fields as typed into DVPMAN, separated by commas:
  19093. starting row, starting column, starting height, starting width
  19094. Note: if there are multiple occurrences of record types 01h, 02h, or 03h,
  19095. only the last instance of each type is used; multiple occurrences of
  19096. type 04h are concatenated
  19097. SeeAlso: #00427
  19098. --------Q-15102D-----------------------------
  19099. INT 15 - DESQview v2.00+ - "KMOUSE" - KEYBOARD MOUSE CONTROL
  19100. AX = 102Dh
  19101. BL = subfunction
  19102. 00h determine whether using keyboard mouse
  19103. Return: BL = 00h using real mouse
  19104. 01h using keyboard mouse
  19105. 01h turn keyboard mouse on
  19106. 02h turn keyboard mouse off
  19107. SeeAlso: INT 33/AX=0024h
  19108. --------Q-15102E-----------------------------
  19109. INT 15 - DESQview v2.40+ - ALLOCATE SYSTEM MEMORY
  19110. AX = 102Eh
  19111. BX = number of bytes
  19112. Return: AX = status
  19113. 0000h successful
  19114. ES:DI -> allocated system memory (see #00433)
  19115. 0001h failed
  19116. ES:DI = 0000h:0000h
  19117. Note: under DV 2.42, this call is identical to AX=1001h
  19118. SeeAlso: AX=1001h,AX=1002h,AX=DE0Ch
  19119. Format of DESQview system memory block header:
  19120. Offset Size Description (Table 00433)
  19121. 00h WORD segment of next header or 0000h
  19122. 02h WORD segment of previous header or 0000h
  19123. 04h WORD size of block in paragraphs, including header
  19124. 06h BYTE availability flag (00h in use, 01h free)
  19125. Note: this header is located one paragraph before the memory block proper
  19126. SeeAlso: #00423
  19127. --------Q-1511-------------------------------
  19128. INT 15 - TopView commands
  19129. AH = 11h
  19130. AL = various (except 17h)
  19131. Return: varies by function
  19132. Note: in DESQview 2.x, these function calls are identical to AH=DEh, so
  19133. see those below
  19134. SeeAlso: AX=DE00h,AX=DE22h,AX=DE30h
  19135. --------T-1511-------------------------------
  19136. INT 15 - VMiX - "sys_system" - EXECUTE SHELL SYSTEM COMMANDS
  19137. AH = 11h
  19138. STACK: DWORD pointer to ASCIZ string containing a VMiX shell
  19139. request (max len = 127)
  19140. Return: AX = status (SYS_OK or SYS_ERROR)
  19141. SeeAlso: AH=0Ch"VMiX"
  19142. --------T-1511-------------------------------
  19143. INT 15 - MultiDOS Plus - TURN OFF AltZ TOGGLE
  19144. AH = 11h
  19145. Note: disables the Alt-Z MultiDOS command/program-selection hotkey
  19146. SeeAlso: AH=12h"MultiDOS"
  19147. Index: hotkeys;MultiDOS Plus
  19148. --------Q-151117BX0000-----------------------
  19149. INT 15 - DESQview v2.20+ - "ASSERTMAP" - GET/SET MAPPING CONTEXT
  19150. AX = 1117h
  19151. BX = 0000h get current mapping context without setting
  19152. nonzero set new mapping context
  19153. Return: BX = mapping context in effect before call
  19154. interrupts enabled
  19155. Notes: this function differs from AX = DE17h for DESQview v2.20 through 2.25
  19156. mapping contexts determine conventional-memory addressability; setting
  19157. a mapping context ensures that the associated program and data areas
  19158. are in memory for access. Usable by drivers, TSRs and shared
  19159. programs.
  19160. caller need not be running under DESQview, but must ensure that the
  19161. stack in use will not be mapped out by the call
  19162. SeeAlso: AX=DE17h,INT 2F/AX=1685h
  19163. --------m-1511DE-----------------------------
  19164. INT 15 - DESQview - QEXT.SYS - INSTALLATION CHECK
  19165. AX = 11DEh
  19166. Return: CF clear if installed
  19167. AX = segment at which QEXT.SYS is located
  19168. Desc: QEXT.SYS is Quarterdeck's HMA manager for DESQview; more recent
  19169. versions also implement the XMS standard
  19170. Note: a private entry point (see #00434) may be found by searching the
  19171. beginning of the returned segment for the signature string
  19172. "QUARTERDECK EXTENDED MEMORY MANAGER 286"; the word immediately
  19173. prior to the signature contains the QEXT version number in BCD,
  19174. and the word prior to that contains the offset within the QEXT
  19175. code segment of the private entry point
  19176. SeeAlso: INT 2F/AX=4310h"XMS",INT 67/AH=3Fh
  19177. (Table 00434)
  19178. Call QEXT.SYS private entry point with:
  19179. AH = 00h ???
  19180. AH = nonzero ???
  19181. --------T-1512-------------------------------
  19182. INT 15 - VMiX - "sys_sleep" - PUT PROCESS TO SLEEP
  19183. AH = 12h
  19184. STACK: WORD process ID
  19185. Return: AX = status (SYS_OK or SYS_ERROR)
  19186. SeeAlso: AH=03h"MultiDOS",AX=101Dh,AH=13h"VMiX"
  19187. --------T-1512-------------------------------
  19188. INT 15 - MultiDOS Plus - TURN ON AltZ TOGGLE
  19189. AH = 12h
  19190. Note: enables the Alt-Z MultiDOS command/program-selection hotkey
  19191. SeeAlso: AH=11h"MultiDOS"
  19192. Index: hotkeys;MultiDOS Plus
  19193. --------Q-1512--BH00-------------------------
  19194. INT 15 - TopView - SEND MESSAGE - "HANDLE" - RETURN OBJECT HANDLE
  19195. AH = 12h
  19196. BH = 00h
  19197. BL = which handle to return
  19198. 00h handle in DWORD on top of stack
  19199. 01h current task's window handle
  19200. 02h given task's mailbox handle (task's handle on stack)
  19201. 03h current task's mailbox handle
  19202. 04h given task's keyboard handle (task's handle on stack)
  19203. 05h current task's keyboard object handle
  19204. 06h given task's OBJECTQ handle (task's handle on stack)
  19205. 07h current task's OBJECTQ handle
  19206. 08h \
  19207. thru > return 0000:0000 under DV < 2.26
  19208. 10h /
  19209. 0Ch (2.26+) task owning object with handle in DWORD on top of stack
  19210. 0Dh (2.26+) task handle of owner (parent) of current task
  19211. Return: DWORD on top of stack is object handle
  19212. Note: BL=0Ch,0Dh returns 00000000h if the object is not open (keyboard,
  19213. mailbox, panel, pointer, and timer objects) or is an orphan (task,
  19214. window)
  19215. SeeAlso: AH=12h/BH=02h,AH=12h/BH=80h
  19216. --------Q-1512--BH01-------------------------
  19217. INT 15 - TopView - SEND MESSAGE - "NEW" - CREATE NEW OBJECT
  19218. AH = 12h
  19219. BH = 01h
  19220. BL = object type to create (see #00435)
  19221. STACK: (only if window object or WINDOW class)
  19222. DWORD address to jump to (no new task if high word == 0)
  19223. DWORD (reserved) 0 = non-task window, FFFFh = task window
  19224. DWORD bytes for task's private stack (FFFFh == default of 0100h)
  19225. DWORD bytes system memory for input buffer for READ/READN
  19226. (0 == none, -1 == default--same as logical window size)
  19227. DWORD window size, columns
  19228. DWORD window size, rows
  19229. DWORD length of window title
  19230. DWORD address of window title
  19231. Return: DWORD on top of stack is new object handle
  19232. Notes: if a new task is created, it is started with
  19233. AX = BX = SI = DI = BP = 0
  19234. DX:CX = handle of parent task
  19235. DS = ES = SS = segment of private stack (and new task's handle)
  19236. new windows are orphans, inherit the colors/hidden status of the
  19237. creating task's window, and are placed in the upper left hand corner
  19238. of the screen but not automatically redrawn
  19239. new keyboards are closed, and have all object bits cleared except for
  19240. the hardware cursor bit
  19241. SeeAlso: AH=12h/BH=02h,AH=12h/BH=81h
  19242. (Table 00435)
  19243. Values for TopView/DESQview object type (for creation):
  19244. 00h (DV 2.0x only) handle is DWORD on top of stack
  19245. 01h (DV 2.0x only) use task's window handle
  19246. 02h (DV 2.0x only) given task's mailbox (task's handle on stack)
  19247. 03h (DV 2.0x only) current task's mailbox
  19248. 04h (DV 2.0x only) given task's keyboard (task's handle on stack)
  19249. 05h (DV 2.0x only) current task's keyboard object
  19250. 08h WINDOW class
  19251. 09h MAILBOX class
  19252. 0Ah KEYBOARD class
  19253. 0Bh TIMER object (counts down 32-bit time in 10ms increments)
  19254. 0Fh POINTER object
  19255. 10h PANEL object
  19256. --------Q-1512--BH02-------------------------
  19257. INT 15 - TopView - SEND MESSAGE - "FREE" - FREE AN OBJECT
  19258. AH = 12h
  19259. BH = 02h
  19260. BL = object
  19261. 00h handle in DWORD on top of stack
  19262. window: close window and free
  19263. timer: free timer
  19264. panel: free panel object
  19265. pointer: free pointer
  19266. 01h task's window handle - kills task, never returns
  19267. 02h given task's mailbox (task's handle on top of stack)
  19268. 03h current task's mailbox
  19269. 04h given task's keyboard (task's handle on top of stack)
  19270. 05h current task's keyboard object
  19271. Return: STACK popped if handle passed on stack
  19272. Notes: when a window is freed, its keyboard and pointer objects are freed;
  19273. task windows also free any mailbox, objectq, and panel objects held
  19274. by the task and any child tasks
  19275. if the keyboard being freed is the default keyboard for a task, this
  19276. call is equivalent to CLOSE
  19277. panel and pointer objects are automatically closed if open
  19278. SeeAlso: AH=12h/BH=01h,AH=12h/BH=0Dh,AH=12h/BH=82h
  19279. --------Q-1512--BH03-------------------------
  19280. INT 15 - TopView - SEND MESSAGE - "ADDR" - GET HANDLE OF MESSAGE SENDER
  19281. AH = 12h
  19282. BH = 03h
  19283. BL = object
  19284. 00h mailbox handle in DWORD on top of stack
  19285. 02h sender of last msg read from mailbox (task's handle on stack)
  19286. 03h sender of last msg read from current task's mailbox
  19287. Return: DWORD on stack is task handle of message sender
  19288. SeeAlso: AH=12h/BH=00h,AH=12h/BH=83h
  19289. --------Q-1512--BH03-------------------------
  19290. INT 15 - DESQview v2.26+ - "CONNECT" - CONNECT TWO WINDOWS
  19291. AH = 12h
  19292. BH = 03h
  19293. BL = window to be connected
  19294. 00h handle of window to be attached in DWORD on top of stack
  19295. 01h attach current task's main window
  19296. STACK: DWORD handle of window to attach to or 00000000h to detach
  19297. Return: STACK popped
  19298. Notes: when two windows are connected, both will move if the user moves either
  19299. multiple windows may be attached to a single window, but each window
  19300. may only be attached to one window at a time
  19301. SeeAlso: AH=12h/BH=83h
  19302. --------Q-1512--BX0300-----------------------
  19303. INT 15 - TopView - SEND MESSAGE - "DIR" - GET PANEL FILE DIRECTORY
  19304. AH = 12h
  19305. BX = 0300h
  19306. STACK: DWORD handle of panel object (see #00436)
  19307. Return: STACK: DWORD length of directory (always multiple of 14 bytes)
  19308. DWORD address of directory
  19309. Note: a null string is returned if the object is not open
  19310. SeeAlso: AH=12h/BX=0400h"APPLY",AH=12h/BH=83h
  19311. Format of TopView panel file:
  19312. Offset Size Description (Table 00436)
  19313. 00h 2 BYTEs C0h C3h
  19314. 02h BYTE number of panels in file
  19315. 03h for each panel in file:
  19316. 8 BYTEs blank-padded panel name
  19317. DWORD panel offset in file
  19318. WORD panel length
  19319. data for panels (each consists of one or more window/query/manager
  19320. streams); first byte of each panel must be 1Bh, fifth byte must be
  19321. E5h
  19322. --------Q-1512--BH04-------------------------
  19323. INT 15 - TopView - SEND MESSAGE - "READ" - READ NEXT LOGICAL LINE OF WINDOW
  19324. AH = 12h
  19325. BH = 04h
  19326. BL = window to read from
  19327. 00h handle is DWORD on top of stack
  19328. 01h use calling task's default window
  19329. 0Ch (DV 2.26+) default window of task owning handle on top of stack
  19330. 0Dh (DV 2.26+) default window of parent task of current task
  19331. Return: STACK: DWORD number of bytes read
  19332. DWORD address of buffer
  19333. Notes: reading starts at the current logical cursor position; the cursor is
  19334. updated to point at the character following the last one read
  19335. any translucent blanks (FFh) which are visible on screen are changed
  19336. to the character which is seen through them
  19337. the string produced by the read is placed in an input buffer which may
  19338. be reused by the next READ or READN of a window
  19339. window stream opcodes D8h and D9h determine whether the read returns
  19340. characters or attributes
  19341. SeeAlso: AH=12h/BH=05h"WINDOW",AH=12h/BH=12h,AH=12h/BH=84h
  19342. --------Q-1512--BH04-------------------------
  19343. INT 15 - TopView - SEND MESSAGE - "READ" - GET NEXT RECORD FROM OBJECT
  19344. AH = 12h
  19345. BH = 04h
  19346. BL = object
  19347. 00h handle is DWORD on top of stack
  19348. mailbox: wait for and get next message
  19349. keyboard: wait for and get pointer to next input buffer
  19350. pointer: wait for and get next message
  19351. 02h get next message from mailbox (task's handle on top of stack)
  19352. 03h get next message from current task's mailbox
  19353. 04h get the next input from keyboard (handle on top of stack)
  19354. 05h get the next input from task's default keyboard
  19355. 06h wait for input from any object in OBJECTQ (handle on stack)
  19356. 07h wait for input from any object in task's default OBJECTQ
  19357. Return: STACK: (if objectq) DWORD handle of object with input
  19358. (otherwise) DWORD number of bytes
  19359. DWORD address of pointer message (see #00437)
  19360. Notes: for a keyboard in keystroke mode, the input buffer is a single byte
  19361. containing the character code as returned by the BIOS; the BIOS scan
  19362. code is available via the STATUS call if the character is zero
  19363. for a keyboard in field mode, the input buffer format is determined
  19364. by the field table header for the window the keyboard is attached to
  19365. keyboard input buffers and mailbox message buffers may be invalidated
  19366. by the next READ, ERASE, CLOSE, or FREE message to the same object
  19367. SeeAlso: AH=12h/BH=05h"OBJECT",AH=12h/BH=84h
  19368. Format of DESQview pointer message:
  19369. Offset Size Description (Table 00437)
  19370. 00h WORD row
  19371. 02h WORD column
  19372. 04h BYTE status (see #00438)
  19373. 05h BYTE field number or zero (APILEVEL >= 2.00 only)
  19374. Bitfields for DESQview pointer status:
  19375. Bit(s) Description (Table 00438)
  19376. 7-2 number of clicks-1 if multiple-click mode active
  19377. 7 set when press/release mode active and button pressed
  19378. 6 set when press/release mode active and button released
  19379. 1-0 button pressed (00=none,01=button1,10=button2)
  19380. SeeAlso: #00437
  19381. --------Q-1512--BX0400-----------------------
  19382. INT 15 - TopView - SEND MESSAGE - "READ" - WAIT FOR TIMER TO EXPIRE
  19383. AH = 12h
  19384. BX = 0400h
  19385. STACK: DWORD timer's handle
  19386. Return: after timer expires
  19387. STACK: DWORD time in 1/100 sec after midnight when timer expired
  19388. SeeAlso: AH=12h/BH=0Ah,AH=12h/BH=84h
  19389. --------Q-1512--BX0400-----------------------
  19390. INT 15 - TopView - SEND MESSAGE - "APPLY" - WRITE PANEL TO WINDOW
  19391. AH = 12h
  19392. BX = 0400h
  19393. STACK: DWORD handle of panel object
  19394. DWORD window's handle (or 0 for current task's window)
  19395. DWORD length of panel name
  19396. DWORD pointer to panel name
  19397. Return: STACK: DWORD handle of window which was used
  19398. DWORD handle of keyboard or 0
  19399. Notes: status of APPLY may be checked with STATUS message
  19400. panel MUST have the following format
  19401. first byte must be 1Bh (i.e. must start with a stream)
  19402. first opcode in stream must be E5h
  19403. single byte arg of opcode is interpreted thus:
  19404. bits 7,6 11 means create new window
  19405. 10 means create new field table for existing window
  19406. 01 means use existing window and field table
  19407. bit 5 if set, panel contains a field table
  19408. (creates a new keyboard and puts it in field mode)
  19409. bit 4 if set, panel contains input fields
  19410. bit 3 if set, panel contains select fields but no input fields
  19411. if the panel contains input or select fields, a keyboard handle is
  19412. returned; either the window's current open keyboard or a
  19413. newly-created keyboard object. The caller should read that keyboard
  19414. to obtain input from the panel.
  19415. SeeAlso: AH=12h/BH=84h
  19416. --------Q-1512--BH05------------------------
  19417. INT 15 - TopView - SEND MESSAGE - "WRITE" - WRITE TO OBJECT
  19418. AH = 12h
  19419. BH = 05h
  19420. BL = object
  19421. 00h handle is DWORD on top of stack
  19422. timer: start timer to end at a specified time
  19423. keyboard: add input buffer to queue
  19424. pointer: move pointer icon to specified position
  19425. 02h send message by value/status=0 to mbox (task's handle on stack)
  19426. 03h send message by value/status=0 to current task's mailbox
  19427. 04h add input buffer to KEYBOARD queue (handle on top of stack)
  19428. 05h add input buffer to task's default KEYBOARD queue
  19429. 06h add an object to OBJECTQ (handle on top of stack)
  19430. 07h add an object to task's default OBJECTQ
  19431. STACK: (if mailbox) DWORD length
  19432. DWORD address
  19433. (if keyboard) DWORD status (scan code in keystroke mode)
  19434. DWORD length (should be 1 in keystroke mode)
  19435. DWORD address
  19436. (if objectq) DWORD handle of object to add
  19437. (if timer) DWORD 1/100ths seconds since midnight (actually
  19438. only accurate to 1/18 sec)
  19439. (if pointer) DWORD column relative to origin of window
  19440. DWORD row relative to origin of window
  19441. Return: STACK popped
  19442. Notes: under DV 2.2+, failed mailbox writes may return CF set (see AX=DE15h)
  19443. the data and status written to a keyboard object must match the format
  19444. returned by the keyboard object in the current mode
  19445. the pointer position is scaled according to the current scaling factors
  19446. SeeAlso: AH=12h/BH=04h,AH=12h/BH=85h
  19447. --------Q-1512--BH05-------------------------
  19448. INT 15 - TopView - SEND MESSAGE - "WRITE" - WRITE STRING TO WINDOW
  19449. AH = 12h
  19450. BH = 05h
  19451. BL = window to write to
  19452. 00h DWORD on top of stack is window handle
  19453. 01h write string to task's default window
  19454. 0Ch (DV 2.26+) default window of task owning handle on top of stack
  19455. 0Dh (DV 2.26+) default window of parent of current task
  19456. STACK: DWORD object handle if handle passed on stack
  19457. DWORD total length of string (high word == 0)
  19458. DWORD address of string to display (see #00439)
  19459. Return: indicated actions performed
  19460. a. non-control characters are displayed (opcodes DEh and DFh control
  19461. whether the attributes are left or changed to the current attrib)
  19462. b. CR/LF/BS/Tab cause the usual cursor movement
  19463. c. ESC starts a data structure with additional commands if following
  19464. byte is less than 20h; otherwise, it is written to the window
  19465. STACK: DWORD handle of new window if window stream opcode E6h
  19466. else nothing (arguments have been popped)
  19467. SeeAlso: AH=12h/BH=04h,AH=12h/BH=85h
  19468. Format of stream data structure:
  19469. Offset Size Description (Table 00439)
  19470. 00h BYTE 1Bh magic value identifying start of stream
  19471. 01h BYTE stream type (00h, 01h, 10h, 14h-1Fh legal)
  19472. (see #00440,#00446,#00447,#00448)
  19473. 02h WORD length of remainder of stream in bytes
  19474. var-length fields follow, each an OPCODE followed by
  19475. zero or more args
  19476. (Table 00440)
  19477. Values for MODE 00h (set or display values) "WINDOW STREAM" opcodes:
  19478. Opcodes:args
  19479. 00h display 20h blanks with the default attribute
  19480. 01h-1Fh display OPCODE blanks with the default attribute
  19481. 20h display char with default attribute 20h times
  19482. BYTE char to repeat
  19483. 21h-3Fh display char with default attribute OPCODE-20h times
  19484. BYTE char to repeat
  19485. 40h display 20h blanks with specified attribute
  19486. BYTE attribute of blanks
  19487. 41h-5Fh display OPCODE-40h blanks with specified attribute
  19488. BYTE attribute of blanks
  19489. 60h display next 20h characters
  19490. 20h BYTEs characters to display
  19491. 61h-7Fh display next OPCODE-60h characters
  19492. N BYTEs characters to display
  19493. 80h-87h display N blanks with default attribute
  19494. BYTE low 8 bits of 11-bit count (high 3 in low 3 bits of OPCODE)
  19495. [000h means 800h]
  19496. 88h-8Fh display N copies of the character
  19497. BYTE low 8 bits of 11-bit count (high 3 in low 3 bits of OPCODE)
  19498. [000h means 800h]
  19499. BYTE character to repeat
  19500. 90h-97h display N blanks with specified attribute
  19501. BYTE low 8 bits of 11-bit length (high 3 in low 3 bits of OPCODE)
  19502. [000h means 800h]
  19503. BYTE attribute
  19504. 98h-9Fh display string at logical cursor pos
  19505. BYTE low 8 bits of 11-bit length (high 3 in low 3 bits of OPCODE)
  19506. [000h means 800h]
  19507. N BYTEs string to display
  19508. A0h set logical cursor row
  19509. BYTE row number (0 is top)
  19510. A1h set logical cursor column
  19511. BYTE column number (0 is leftmost)
  19512. A2h set top edge of scrolling region
  19513. BYTE row
  19514. A3h set left edge of scrolling region
  19515. BYTE column
  19516. A4h set row of physical window position
  19517. BYTE line
  19518. A5h set column of physical window position
  19519. BYTE column
  19520. A6h set height of physical window
  19521. BYTE number of rows
  19522. A7h set width of physical window
  19523. BYTE number of columns
  19524. A8h set viewport row
  19525. BYTE row
  19526. A9h set viewport column
  19527. BYTE column
  19528. AAh set virtual screen height [contents of window unpredictable after]
  19529. BYTE rows
  19530. ABh set virtual screen width [contents of window unpredictable after]
  19531. BYTE columns
  19532. ACh-AEh unused
  19533. AFh set compatible/preferred video modes
  19534. BYTE compatibility/preference mask
  19535. bit 7 compatible with monochrome
  19536. bit 6 compatible with color text, EGA/VGA graphics
  19537. bit 5 compatible with medium-resolution CGA graphics
  19538. bit 4 compatible with high-resolution CGA graphics
  19539. bit 3 prefer monochrome
  19540. bit 2 prefer color text, EGA/VGA graphics
  19541. bit 1 prefer medium-resolution CGA graphics
  19542. bit 0 prefer high-resolution CGA graphics
  19543. B0h move logical cursor down
  19544. BYTE number of rows (signed, negative values move up)
  19545. [if rows=0 and hardware cursor owner, update hardware cursor]
  19546. B1h move logical cursor right
  19547. BYTE number of columns (signed, negative values move left)
  19548. [if cols=0 and hardware cursor owner, update hardware cursor]
  19549. B2h shift top edge of scrolling region
  19550. BYTE number of rows (signed)
  19551. B3h shift left edge of scrolling region
  19552. BYTE number of columns (signed)
  19553. B4h shift physical window down
  19554. BYTE number of lines (signed)
  19555. B5h shift physical window right
  19556. BYTE number of columns (signed)
  19557. B6h expand physical window vertically
  19558. BYTE number of lines (signed)
  19559. B7h expand physical window horizontally
  19560. BYTE number of columns (signed)
  19561. B8h adjust viewport row
  19562. BYTE number of rows (signed)
  19563. B9h adjust viewport column
  19564. BYTE number of columns (signed)
  19565. BAh adjust virtual screen height [contents of window unpredict after]
  19566. BYTE number of rows to increase (signed)
  19567. BBh adjust virtual screen width [contents of window unpredictbl after]
  19568. BYTE number of columns to increase (signed)
  19569. BCh-BFh reserved (currently unused)
  19570. C0h set logical cursor position
  19571. BYTE row number (0 is top border)
  19572. BYTE column number (0 is left border)
  19573. C1h set top left corner of scrolling region
  19574. BYTE row
  19575. BYTE column
  19576. C2h set physical window pos
  19577. BYTE upper left row (no top border if 0)
  19578. BYTE upper left column (no left border if 0)
  19579. C3h set current window size
  19580. BYTE number of rows
  19581. BYTE number of columns
  19582. C4h set upper left corner of viewport (portion of virtual screen displayed
  19583. in window)
  19584. BYTE row
  19585. BYTE column
  19586. C5h set size of virtual screen [contents unpredictable afterwards]
  19587. BYTE number of rows
  19588. BYTE number of columns
  19589. C6h unused
  19590. C7h unused
  19591. C8h set logical cursor relative to current position
  19592. BYTE number of rows to move down (signed)
  19593. BYTE number of columns to move right (signed)
  19594. [if rows=cols=0 and hardware cursor owner, update hardw cursor]
  19595. C9h shift top left corner of scrolling region
  19596. BYTE number of rows (signed)
  19597. BYTE number of columns (signed)
  19598. CAh set window pos relative to current position
  19599. BYTE number of rows to shift down (signed)
  19600. BYTE number of columns to shift right (signed)
  19601. CBh set window size relative to current size
  19602. BYTE number of rows to expand (signed)
  19603. BYTE number of cols to expand (signed)
  19604. CCh shift viewport relative to current position
  19605. BYTE rows to shift (signed)
  19606. BYTE cols to shift (signed)
  19607. CDh resize virtual screen
  19608. BYTE number of rows to expand (signed)
  19609. BYTE number of columns to expand (signed)
  19610. CEh scroll text when using E8h-EBh/F8h-FBh opcodes (default)
  19611. CFh scroll attributes when using E8h-EBh/F8h-FBh opcodes
  19612. D0h allow window frame to extend beyond screen
  19613. D1h always display a complete frame, even if window extends beyond edge of
  19614. screen
  19615. D2h allow DV to change logical colors on video mode switch (default)
  19616. D3h application changes logical attributes
  19617. D4h window is visible [must redraw to actually make visible]
  19618. D5h window is hidden [must redraw to actually remove]
  19619. D6h window has frame (default)
  19620. D7h window unframed [must redraw to actually remove frame]
  19621. D8h READ/READN will read characters from window (default)
  19622. D9h READ/READN will read attributes from window
  19623. DAh use logical attributes, which may be remapped (see #00441)
  19624. DBh use physical attributes for characters
  19625. DCh enable special actions for control characters (default)
  19626. DDh disable special control char handling, all chars displayable by BIOS TTY
  19627. call
  19628. DEh write both character and attribute (default)
  19629. DFh write character only, leave attribute untouched
  19630. E0h repeat following commands through E1h opcode
  19631. BYTE number of times to repeat (00h means 256 times)
  19632. E1h end of commands to repeat, start repeating them
  19633. E2h set current output color
  19634. BYTE color
  19635. E3h clear virtual screen from scroll origin to end using current color
  19636. E4h redraw window
  19637. E5h select menu style
  19638. BYTE style (normally 18h)
  19639. bits 5,4 = 01 use two-letter menu entries for remainder of
  19640. this stream
  19641. E5h (panel file only)
  19642. BYTE modifier
  19643. bits 7,6 = 11 panel stream creates new window
  19644. = 10 panel defines new field table for existing window
  19645. = 01 panel stream uses existing window & field table
  19646. bit 5 = 1 stream contains a field table (create kyboard object)
  19647. bit 4 = 1 stream defines input fields (create keyboard object)
  19648. bit 3 = 1 stream defines select fields but not input fields
  19649. bit 2 = 1 stream defines exclusive input window (DV 2.2)
  19650. bit 1 reserved
  19651. bit 0 reserved
  19652. E6h create new window and perform rest of manipulations in new window
  19653. BYTE number of rows
  19654. BYTE number of columns
  19655. Return: DWORD object handle of new window returned on stack at end
  19656. Note: the window is created with a physical size of 0x0 at the
  19657. same position as the window to which this stream was sent
  19658. E7h no operation
  19659. E8h scroll area up (top left corner defined by opcode C1h)
  19660. BYTE height
  19661. BYTE width
  19662. E9h scroll area down (top left corner defined by opcode C1h)
  19663. BYTE height
  19664. BYTE width
  19665. EAh scroll area left (top left corner defined by opcode C1h)
  19666. BYTE height
  19667. BYTE width
  19668. EBh scroll area right (top left corner defined by opcode C1h)
  19669. BYTE height
  19670. BYTE width
  19671. ECh set logical attributes for window contents
  19672. BYTE video modes command applies to
  19673. bit 7 monochrome
  19674. bit 6 color text, EGA/VGA graphics
  19675. bit 5 medium-resolution CGA graphics
  19676. bit 4 high-resolution CGA graphics
  19677. BYTE which attributes to set
  19678. bit 7 if set, copy single following byte to indicated attribs
  19679. bits 4-6 number of first attribute to change - 1
  19680. bits 0-3 number of consecutive attributes to change
  19681. N BYTEs new attributes
  19682. EDh set logical attributes for window frame
  19683. BYTE video modes command applies to (also see opcode ECh)
  19684. BYTE which attributes to set
  19685. bit 7 if set, copy single following byte to indicated attrs
  19686. bits 4-6 number of first attribute to change - 1
  19687. bits 0-3 number of consecutive attributes to change
  19688. N BYTEs new attributes
  19689. attributes
  19690. 1 = top left corner
  19691. 2 = top right corner
  19692. 3 = bottom left corner
  19693. 4 = bottom right corner
  19694. 5 = top edge
  19695. 6 = bottom edge
  19696. 7 = left edge
  19697. 8 = right edge
  19698. EEh set characters for window frame
  19699. BYTE video modes command applies to (also see opcode ECh)
  19700. BYTE which characters to set
  19701. bit 7 if set, copy single following byte to indicated chars
  19702. bits 4-6 number of first character to change - 1
  19703. bits 0-3 number of consecutive characters to change
  19704. N BYTEs new chars (same relative position as attributes above)
  19705. EFh set window name
  19706. BYTE length of name (should be in range 0 to logical screen width)
  19707. N BYTEs name
  19708. F0h clear input field to blanks
  19709. BYTE field number
  19710. F1h fill input field with character
  19711. BYTE field number
  19712. BYTE char
  19713. F2h set color of input field
  19714. BYTE field number (1-N)
  19715. BYTE attribute
  19716. F3h set initial contents of input field
  19717. BYTE field number (1-N)
  19718. N BYTEs enough chars to exactly fill field as defined by op FFh
  19719. F4h position cursor to start of specific input field
  19720. BYTE field number (1-N)
  19721. F5h change field table entry
  19722. BYTE field number
  19723. 7-8 BYTEs field table entry (also see opcode FFh below)
  19724. F6h set field type
  19725. BYTE field number
  19726. BYTE type
  19727. 00h inactive
  19728. 40h output field
  19729. 80h input field
  19730. C0h deselected field
  19731. C2h selected field
  19732. F7h "broadcast write" write data to fields with program output bit set in
  19733. the field table entry, in field number order
  19734. N BYTEs (total length of all program output fields)
  19735. F8h scroll field up a line
  19736. BYTE field number
  19737. F9h scroll field down a line
  19738. BYTE field number
  19739. FAh scroll field left
  19740. BYTE field number
  19741. FBh scroll field right
  19742. BYTE field number
  19743. FCh set field table header
  19744. 6 BYTEs field table header (see #00442)
  19745. FDh reset modified bit for all fields
  19746. FEh reset selected and modified bits for all fields
  19747. FFh set up input fields
  19748. 6 BYTEs table header (see #00442)
  19749. 7/8N BYTEs the field table entries, one for each field (see #00444)
  19750. Note: DESQview uses and updates the actual copy of the information
  19751. which is contained in the stream. Thus this info must remain
  19752. intact until after the data entry is complete.
  19753. SeeAlso: #00439,#00446
  19754. (Table 00441)
  19755. Values for TopView logical attributes:
  19756. 01h normal text
  19757. 02h highlighted normal text
  19758. 03h help text
  19759. 04h highlighted help text
  19760. 05h error message
  19761. 06h highlighted error message
  19762. 07h emphasized text
  19763. 08h marked text
  19764. 9-16 reverse video versions of 1-8
  19765. SeeAlso: #00440
  19766. Format of TopView field table header:
  19767. Offset Size Description (Table 00442)
  19768. 00h BYTE number of fields (must be <= existing number of fields)
  19769. 01h BYTE screen behavior bits (see #00443)
  19770. 02h BYTE current input field (updated by DESQview)
  19771. 03h BYTE current select field (updated by DESQview)
  19772. 04h BYTE attribute for select fields when they are pointed at
  19773. 05h BYTE attribute for select fields which have been selected
  19774. SeeAlso: #00440,#00444
  19775. Bitfields for TopView screen behavior bits:
  19776. Bit(s) Description (Table 00443)
  19777. 7 reserved
  19778. 6 menu items may be selected via keyboard
  19779. 5 left mouse button in "status" mode (press anywhere in window
  19780. immediately returns control to application)
  19781. 4 right mouse button in "status" mode
  19782. 3 select fields return contents or blanks rather than 'Y' or 'N'
  19783. 2 modified bits reset on return to application
  19784. 1-0 type of data returned
  19785. 00 no data returned on read of keyboard
  19786. 01 data returned as array of characters containing all fields packed
  19787. together, with no field numbers
  19788. 10 data returned as numbered variable-length records for all fields
  19789. 11 data returned as numbered variable-length records for the fields
  19790. which were modified
  19791. SeeAlso: #00440
  19792. Format of TopView field table entry:
  19793. Offset Size Description (Table 00444)
  19794. 00h BYTE start row \
  19795. 01h BYTE start column \ if menu selection and start is to
  19796. 02h BYTE end row / right or below end, select from kbd only
  19797. 03h BYTE end column /
  19798. 04h BYTE field type (see #00445)
  19799. 05h BYTE modifier
  19800. if type is fill-in, then bit flags to determine behavior
  19801. bit 7 automatically enter CR when field full
  19802. bit 6 move to next field when current field is full
  19803. bit 5 enter text from right end (for numbers)
  19804. bit 4 force input to uppercase
  19805. bit 3 clear old contents on first keystroke
  19806. bit 2 input returned when cursor moves out of
  19807. modified field ("validate", API level 2.02+)
  19808. bit 1 reserved
  19809. bit 0 reserved
  19810. if select field, first key to press to activate
  19811. 00h if have to point-&-click or is an extended-ASCII
  19812. keystroke (only if two-key menus enabled)
  19813. 06h BYTE (select field only) normal color of field
  19814. 07h BYTE second key for select field. This byte is present iff
  19815. two-letter menu entries selected with opcode E5h, and in that
  19816. case is present regardless of field type
  19817. SeeAlso: #00442
  19818. Bitfields for TopView field type:
  19819. Bit(s) Description (Table 00445)
  19820. 7,6 field class
  19821. 00 inactive (non-entry) field
  19822. 01 echos keystrokes input to make menu selection
  19823. 10 fill-in field
  19824. 11 select field
  19825. 5 field can be filled by broadcast write (F7h opcode)
  19826. 4 reserved
  19827. 3 reserved
  19828. 2 reserved
  19829. 1 set if field selected
  19830. 0 set if field modified
  19831. SeeAlso: #00444
  19832. (Table 00446)
  19833. Values for MODE 01h "QUERY STREAM" opcodes:
  19834. (valid only for those opcodes listed here)
  19835. A0h return logical cursor row in next byte
  19836. A1h return logical cursor column in next byte
  19837. A2h return top row of scrolling region in next byte
  19838. A3h return left column of scrolling region in next byte
  19839. A4h return row of physical window origin in next byte
  19840. A5h return column of physical window origin in next byte
  19841. A6h return height of physcial window in next byte
  19842. A7h return width of physical window in next byte
  19843. A8h return row of viewport origin in next byte
  19844. A9h return column of viewport origin in next byte
  19845. AAh return height of virtual screen in next byte
  19846. ABh return width of virtual screen in next byte
  19847. AFh return current video mode in next byte
  19848. C0h return current logical cursor position in next two bytes
  19849. C1h return top left corner of scrolling region in next two bytes
  19850. C2h return current window position in next two bytes
  19851. C3h return current window size in next two bytes
  19852. C4h return current viewport origin in next two bytes
  19853. C5h return current virtual screen size in next two bytes
  19854. D0h \ overwritten with D0h if frames may fall off screen edge
  19855. D1h / D1h if frames always displayed entirely
  19856. D2h \ overwritten with D2h if DESQview controls color palette
  19857. D3h / D3h if application changes color palette
  19858. D4h \ overwritten with D4h if window visible
  19859. D5h / D5h if window hidden
  19860. D6h \ overwritten with D6h if window has frame
  19861. D7h / D7h if window unframed
  19862. D8h \ overwritten with D8h if reading characters from window
  19863. D9h / D9h if reading attributes from window
  19864. DAh \ overwritten with DAh if using logical attributes
  19865. DBh / DBh if using physical attributes
  19866. DCh \ overwritten with DCh if TTY control char interpretation on
  19867. DDh / DDh if TTY control char interpretation off
  19868. DEh \ overwritten with DEh if writing both characters and attributes
  19869. DFh / DFh if leaving attributes untouched
  19870. E2h return current color in next byte
  19871. ECh get logical attributes for window contents
  19872. BYTE execute call if currently in specified video mode
  19873. bit 7 monochrome
  19874. bit 6 color text, EGA/VGA graphics
  19875. bit 5 medium-resolution CGA graphics
  19876. bit 4 high-resolution CGA graphics
  19877. BYTE which attributes to get
  19878. bit 7 unused???
  19879. bits 4-6 first attribute to get - 1
  19880. bits 0-3 number of consecutive attributes
  19881. N BYTEs buffer to hold attributes
  19882. EDh get logical attributes for window frame
  19883. BYTE execute call if currently in video mode (also see opcode ECh)
  19884. BYTE which attributes to get
  19885. bit 7 unused???
  19886. bits 4-6 first attribute to get - 1
  19887. bits 0-3 number of consecutive attributes
  19888. N BYTEs buffer to hold attributes
  19889. EEh get characters for window frame
  19890. BYTE execute call if currently in video mode (also see opcode ECh)
  19891. BYTE which attributes to get
  19892. bit 7 unused???
  19893. bits 4-6 first char to get - 1
  19894. bits 0-3 number of consecutive chars
  19895. N BYTEs buffer to hold chars
  19896. EFh return first N characters of current window name
  19897. BYTE max length of returned name
  19898. N BYTEs buffer to hold window name
  19899. F3h return contents of specified field
  19900. BYTE field number
  19901. N BYTEs buffer to hold field contents (size equal to field size)
  19902. F5h get field table entry
  19903. BYTE field number
  19904. 7-8 BYTEs buffer to hold field table entry (see #00444)
  19905. Notes: DV < 2.26 always returns 7 bytes
  19906. DV 2.26+ w/ APILEVEL < 2.26 returns 8 bytes iff field table
  19907. is using 8-byte entries and eighth byte after F5h is E7h
  19908. (NOP); otherwise, 7 bytes are returned
  19909. DV 2.26+ w/ APILEVEL > 2.26 returns 7 or 8 bytes depending
  19910. on the field table entry size
  19911. F6h get type of a field
  19912. BYTE field number
  19913. BYTE type
  19914. FCh get field table header
  19915. 6 BYTEs buffer to store field table header (see #00442)
  19916. SeeAlso: #00439,#00447
  19917. (Table 00447)
  19918. Values for MODE 10h "MANAGER STREAM" opcodes (valid only for those listed):
  19919. 00h allow window to be moved horizontally
  19920. 01h allow window to be moved vertically
  19921. 02h allow window to change width
  19922. 03h allow window to change height
  19923. 04h allow window to be scrolled horizontally
  19924. 05h allow window to be scrolled vertically
  19925. 06h allow "Close Window" menu selection for application
  19926. 07h allow "Hide Window" menu selection for application
  19927. 08h allow application to be suspended ("Rearrange/Freeze")
  19928. 0Eh allow "Scissors" menu
  19929. 10h allow DESQview main menu to be popped up
  19930. 11h allow "Switch Windows" menu
  19931. 12h allow "Open Window" menu
  19932. 13h allow "Quit" menu selection
  19933. 20h-33h opposite of 00h-13h, disallow specified action
  19934. 40h notify if horizontal position of window changes
  19935. 41h notify if vertical position of window changes
  19936. 42h notify if width of window changes
  19937. 43h notify if height of window changes
  19938. 44h notify if window scrolled horizontally
  19939. 45h notify if window scrolled vertically
  19940. 46h notify if window is closed--program has to clean up and exit itself
  19941. 47h notify if window is hidden
  19942. 48h notify if "?" on main menu selected
  19943. 49h notify if pointer message sent to window
  19944. 4Ah notify if window is placed in foreground
  19945. 4Bh notify if window is placed in background
  19946. 4Ch notify if video mode changes
  19947. 4Dh notify if "Scissors" menu "Cut" option selected
  19948. 4Eh notify if "Scissors" menu "Copy" option selected
  19949. 4Fh notify if "Scissors" menu "Paste" option selected
  19950. 50h notify if DESQview main menu about to pop up
  19951. 51h notify if DESQview main menu popped down
  19952. 60h-71h opposite of 40h-51h: don't notify on specified event
  19953. 84h attach window to parent task's window (both move together)
  19954. 85h detach window from parent task's window (may move independently)
  19955. 86h disable background operation for application
  19956. 87h enable running in background
  19957. 88h set minimum size of physical window
  19958. BYTE rows
  19959. BYTE columns
  19960. 89h set maximum size of physical window
  19961. BYTE rows
  19962. BYTE cols
  19963. 8Ah set primary asynchronous notification routine (see #00449)
  19964. DWORD address of routine, 0000h:0000h means none (see also below)
  19965. 8Bh set async notification parameter
  19966. DWORD 32-bit value passed to 8Ah async routine in DS:SI
  19967. ACh (DV2.2+) perform regular select field attribute processing
  19968. ADh (DV2.2+) protect attributes in selected field from being lost
  19969. AEh make window default notify window for owning app (API level 2.00+)
  19970. AFh set selected field marker character
  19971. BYTE character to display at left edge of selected fields
  19972. BCh set standard field processing mode
  19973. BDh set alternate field processing mode (enables cursor pad for menus)
  19974. BEh disables changing reverse logical attributes with ECh opcode
  19975. BFh enables changing reverse logical attributes with ECh opcode
  19976. C0h make current window topmost in system
  19977. C1h force current process into foreground
  19978. C2h make current window topmost in process
  19979. C3h position mouse pointer relative to origin of current field
  19980. BYTE rows below upper left corner of field
  19981. BYTE columns to right of upper left corner of field
  19982. C4h position mouse pointer relative to origin of given field
  19983. BYTE field number
  19984. BYTE rows below upper left corner of field
  19985. BYTE columns to right of upper left corner of field
  19986. C5h orphan current window (also hides it)
  19987. Note: must be last in stream; all subsequent commands ignored
  19988. C6h show all windows for this process
  19989. C7h hide all windows for this process
  19990. C8h suspend process and hide all its windows
  19991. C9h force current process into background
  19992. CAh make current window bottom-most in process
  19993. CBh cancel current window manager operation, remove DV menu, give control
  19994. to topmost application
  19995. CCh orphan window and give it to the system for use as paste data
  19996. CEh reorder windows
  19997. DWORD pointer to null-terminated list of words; each word is segment
  19998. of object handle for a window
  19999. FFh no operation
  20000. SeeAlso: #00439,#00446,#00448
  20001. (Table 00448)
  20002. Values for MODES 14h to 1Fh "USER STREAMS":
  20003. normally NOPs, but may be defined by SETESC message to invoke FAR
  20004. routines, one for each mode number
  20005. on entry to handler,
  20006. DS:SI -> first byte of actual stream (not header)
  20007. CX = number of bytes in stream
  20008. ES:DI = window's handle
  20009. SeeAlso: #00446,#00447
  20010. (Table 00449)
  20011. Values asynchronous notification routine defined by man.stream 8Ah called with:
  20012. ES:DI = handle of window
  20013. DS:SI is 32-bit value set by 8Bh manager stream opcode
  20014. mailbox contains message indicating event
  20015. Opcode
  20016. 40h horizontal movement
  20017. DWORD object handle of window
  20018. BYTE new row
  20019. BYTE new col
  20020. 41h vertical movement
  20021. DWORD object handle of window
  20022. BYTE new row
  20023. BYTE new col
  20024. 42h horizontal size change
  20025. DWORD object handle of window
  20026. BYTE new rows
  20027. BYTE new cols
  20028. 43h vertical size change
  20029. DWORD object handle of window
  20030. BYTE new rows
  20031. BYTE new cols
  20032. 44h scrolled horizontally
  20033. DWORD object handle of window
  20034. BYTE mouse row within window
  20035. BYTE mouse column within window
  20036. BYTE field mouse is on, 0 if none
  20037. BYTE amount moved: >0 right, <0 left, 0 done
  20038. 45h scrolled vertically
  20039. DWORD object hande of window
  20040. BYTE mouse row within window
  20041. BYTE mouse column within window
  20042. BYTE field mouse is on, 0 if none
  20043. BYTE amount moved: >0 down, <0 up, 0 done
  20044. 46h window close request
  20045. DWORD object handle of window
  20046. BYTE mouse pointer row
  20047. BYTE mouse pointer column
  20048. BYTE field mouse is on, 0 if none
  20049. 47h application's windows hidden
  20050. 48h Help for Program selected
  20051. DWORD object handle of window
  20052. BYTE mouse pointer row
  20053. BYTE mouse pointer column
  20054. BYTE field mouse is on, 0 if none
  20055. 49h pointer message sent to window
  20056. DWORD pointer handle which received message
  20057. 4Ah switched to window from another ("raise")
  20058. 4Bh switched away from the window ("lower")
  20059. 4Ch video mode changed
  20060. BYTE new BIOS video mode
  20061. 4Dh Scissors/cUt selected
  20062. DWORD object handle of window
  20063. BYTE row of upper left corner
  20064. BYTE column of upper left corner
  20065. BYTE field number ul corner is in, 0=none
  20066. DWORD handle of orphaned window created with
  20067. copy of data from specified region
  20068. BYTE height of region
  20069. BYTE width of region
  20070. 4Eh Scissors/Copy selected
  20071. DWORD object handle of window
  20072. BYTE row of upper left corner
  20073. BYTE column of upper left corner
  20074. BYTE field number ul corner is in, 0=none
  20075. DWORD handle of orphaned window created with
  20076. copy of data from specified region
  20077. BYTE height of region
  20078. BYTE width of region
  20079. 4Fh Scissors/Paste selected
  20080. DWORD object handle of window
  20081. BYTE row of upper left corner
  20082. BYTE column of upper left corner
  20083. BYTE field number ul corner is in, 0=none
  20084. DWORD handle of orphaned window with data
  20085. BYTE height of region
  20086. BYTE width of region
  20087. Note: orphaned data window should be adopted or freed
  20088. when done
  20089. 50h main menu about to pop up
  20090. 51h main menu popped down
  20091. Return: all registers unchanged
  20092. --------Q-1512--BH06-------------------------
  20093. INT 15 - DESQview 2.20+ - SEND MESSAGE - "SETPRI" - SET PRIORITY WITHIN OBJECTQ
  20094. AH = 12h
  20095. BH = 06h
  20096. BL = object
  20097. 00h object handle in DWORD on top of stack
  20098. mailbox, keyboard, pointer, or timer
  20099. (DV 2.50+) window
  20100. 01h (DV 2.50+) current task's window
  20101. 04h given task's keyboard (task's handle on top of stack)
  20102. 05h current task's default keyboard
  20103. STACK: DWORD new priority of object in task's OBJECTQ
  20104. (new priority of task if window handle)
  20105. Return: STACK popped
  20106. Notes: initially all objects have the same default value. Should only make
  20107. relative adjustments to this default value.
  20108. when changing priorities, all objects already on the objectq are
  20109. reordered
  20110. for window handles, only the non-blocked task(s) with the highest
  20111. priority receive CPU time under DESQview 2.50-2.52; the default
  20112. priority is 0Ah
  20113. SeeAlso: AH=12h/BH=07h,AH=12h/BH=87h
  20114. --------Q-1512--BH07-------------------------
  20115. INT 15 - DESQview 2.20+ - SEND MESSAGE - "GETPRI" - GET PRIORITY WITHIN OBJECTQ
  20116. AH = 12h
  20117. BH = 07h
  20118. BL = object
  20119. 00h object handle in DWORD on top of stack
  20120. mailbox, keyboard, pointer, or timer
  20121. (DV 2.50+) window
  20122. 01h (DV 2.50+) current task's window
  20123. 04h given task's keyboard (task's handle on top of stack)
  20124. 05h current task's default keyboard
  20125. Return: STACK: DWORD object priority
  20126. Note: initially all objects have the same default value. Should only make
  20127. relative adjustments to this default value.
  20128. SeeAlso: AH=12h/BH=06h
  20129. --------Q-1512--BH08-------------------------
  20130. INT 15 - TopView - SEND MESSAGE - "SIZEOF" - GET OBJECT SIZE
  20131. AH = 12h
  20132. BH = 08h
  20133. BL = object
  20134. 00h handle in DWORD on top of stack
  20135. window: total character positions in window
  20136. timer: elapsed time since timer started
  20137. pointer: number of messages queued to pointer object
  20138. panel: number of panels in panel file
  20139. keyboard: number of input buffers queued
  20140. 01h total chars in current task's default window
  20141. 02h number of messages in task's mailbox (task's handle on stack)
  20142. 03h number of messages in current task's mailbox
  20143. 04h number of input buffers queued in task's kbd (handle on stack)
  20144. 05h number of input buffers queued for current task's default kbd
  20145. 06h number of objects queued in OBJECTQ (task's handle on stack)
  20146. 07h number of objects queued in current task's OBJECTQ
  20147. 0Ch (DV 2.26+) total chars in window owning handle on top of stack
  20148. 0Dh (DV 2.26+) total chars in parent task's window
  20149. Return: DWORD on top of stack is result (any handle on stack has been popped)
  20150. Note: for panel objects, a count of zero is returned if no panel file is open
  20151. for the object
  20152. SeeAlso: AH=12h/BH=04h,AH=12h/BH=09h
  20153. --------Q-1512--BH09-------------------------
  20154. INT 15 - TopView - SEND MESSAGE - "LEN" - GET OBJECT LENGTH
  20155. AH = 12h
  20156. BH = 09h
  20157. BL = object
  20158. 00h handle in DWORD on top of stack
  20159. window: get chars/line
  20160. timer: get 1/100 seconds remaining before timer expires
  20161. mailbox: (DV/X) get number of bytes queued to mailbox
  20162. 01h get number of chars/line in current task's default window
  20163. 0Ch (DV 2.26+) get chars/line in window owning handle on top of stk
  20164. 0Dh (DV 2.26+) get chars/line in parent task's window
  20165. Return: DWORD on top of stack is length (any handle on stack has been popped)
  20166. SeeAlso: AH=12h/BH=08h
  20167. --------Q-1512--BH0A-------------------------
  20168. INT 15 - TopView - SEND MESSAGE - "ADDTO" - WRITE CHARS AND ATTRIBS TO WINDOW
  20169. AH = 12h
  20170. BH = 0Ah
  20171. BL = window to write to
  20172. 00h window handle is DWORD on top of stack
  20173. 01h current task's default window
  20174. 0Ch (DV 2.26+) default window of task owning handle on top of stack
  20175. 0Dh (DV 2.26+) default window of parent of current task
  20176. STACK: DWORD count of attributes
  20177. DWORD address of attribute string
  20178. DWORD count of characters
  20179. DWORD address of character string
  20180. Return: STACK popped
  20181. Notes: if one string is longer than the other, the shorter one will be reused
  20182. until the longer one is exhausted
  20183. the cursor is left just after the last character written
  20184. SeeAlso: AH=12h/BH=0Bh"WINDOW"
  20185. --------Q-1512--BH0A-------------------------
  20186. INT 15 - TopView - SEND MESSAGE - "ADDTO" - SEND MAILBOX MESSAGE/STAT BY VALUE
  20187. AH = 12h
  20188. BH = 0Ah
  20189. BL = mailbox to write to
  20190. 00h handle is DWORD on top of stack
  20191. 02h default mailbox of task whose handle is on top of stack
  20192. 03h current task's default mailbox
  20193. STACK: DWORD status (low byte)
  20194. DWORD length of message
  20195. DWORD address of message
  20196. Return: STACK popped
  20197. Notes: the message is copied into either system or common memory
  20198. insufficient memory normally causes the process to be aborted; under
  20199. DESQview 2.2+, failed writes may return CF set instead (see AX=DE15h)
  20200. SeeAlso: AH=12h/BH=0Bh"MAILBOX"
  20201. --------Q-1512--BH0A-------------------------
  20202. INT 15 - TopView - SEND MESSAGE - "ADDTO" - SET OBJECT BITS
  20203. AH = 12h
  20204. BH = 0Ah
  20205. BL = object
  20206. 00h handle is DWORD on top of stack
  20207. timer: start timer for specified interval
  20208. pointer: set control flags (see #00451)
  20209. keyboard: set control flags (see #00450)
  20210. 04h set control flags on KEYBOARD object (handle on top of stack)
  20211. 05h set control flags on task's default KEYBOARD object
  20212. STACK: (if timer) DWORD duration in 1/100 seconds
  20213. (otherwise) DWORD bits to set
  20214. Return: STACK popped
  20215. SeeAlso: AH=12h/BH=0Bh"OBJECT"
  20216. Bitfields for DESQview keyboard object bits:
  20217. Bit(s) Description (Table 00450)
  20218. 15 reserved, can't be set
  20219. 14 unused
  20220. 13 reserved, can't be set
  20221. 12-6 unused
  20222. 5 (DV 2.2+) exclusive input
  20223. 4 filter all keys (used with handler established by SETESC)
  20224. if 0, only keys that would normally be displayed are filtered
  20225. 3 program continues executing while input in progress
  20226. 2 insert mode active for field mode
  20227. 1 hardware cursor displayed when task is hardware cursor owner
  20228. must be set if keyboard in field mode and field table includes input
  20229. fields
  20230. 0 keyboard is in field mode rather than keystroke mode
  20231. Bitfields for DESQview pointer object bits:
  20232. Bit(s) Description (Table 00451)
  20233. 15 reserved, can't be set
  20234. 14-8 unused
  20235. 7 mouse pointer is hidden while in window
  20236. 6 get messages even if window not topmost
  20237. 5 get messages even if window not foreground
  20238. 4 multiple clicks separated by less than 1/3 second are counted and
  20239. returned in a single message
  20240. 3 pointer position is relative to screen origin, not window origin
  20241. 2 send message on button release as well as button press
  20242. 1 (DV 2.23+) send message with row=FFFFh and col=FFFFh whenever the
  20243. pointer leaves the window
  20244. 0 send message only on button activity, not movement
  20245. DV-specific, and INT 15/AX=DE0Fh must have been called first
  20246. --------Q-1512--BH0B-------------------------
  20247. INT 15 - TopView - SEND MESSAGE - "SUBFROM" - WRITE ATTRIBUTES TO WINDOW
  20248. AH = 12h
  20249. BH = 0Bh
  20250. BL = window to write attributes to
  20251. 00h handle is DWORD on top of stack
  20252. 01h current task's default window
  20253. 0Ch (DV 2.26+) default window of task owning handle on top of stack
  20254. 0Dh (DV 2.26+) default window of parent of current task
  20255. STACK: DWORD number of attributes to write
  20256. DWORD address of attributes
  20257. Return: STACK popped
  20258. Note: the attributes are written starting at the current cursor position; the
  20259. cursor is left just after the last position written
  20260. SeeAlso: AH=12h/BH=0Ah"WINDOW"
  20261. --------Q-1512--BH0B-------------------------
  20262. INT 15 - TopView - SEND MESSAGE - "SUBFROM" - SEND MAILBOX MESSAGE/STAT BY REF
  20263. AH = 12h
  20264. BH = 0Bh
  20265. BL = mailbox to write to
  20266. 00h handle is DWORD on top of stack
  20267. 02h default mailbox of task whose handle is on top of stack
  20268. 03h current task's default mailbox
  20269. STACK: DWORD status (low byte)
  20270. DWORD length of message
  20271. DWORD address of message
  20272. Return: STACK popped
  20273. Notes: only a pointer to the message is stored, but the write may still fail
  20274. due to insufficient memory
  20275. under DV 2.2+, failed mailbox writes may return CF set (see AX=DE15h)
  20276. SeeAlso: AH=12h/BH=0Ah"MAILBOX"
  20277. --------Q-1512--BH0B-------------------------
  20278. INT 15 - TopView - SEND MESSAGE - "SUBFROM" - REMOVE OBJECT FROM OBJECTQ
  20279. AH = 12h
  20280. BH = 0Bh
  20281. BL = OBJECTQ from which to remove all copies of a particular object
  20282. 06h OBJECTQ of task whose handle is on top of stack
  20283. 07h task's default OBJECTQ
  20284. STACK: DWORD handle of object to remove
  20285. Return: STACK popped
  20286. Note: should be sent whenever an object is erased or closed
  20287. --------Q-1512--BH0B-------------------------
  20288. INT 15 - TopView - SEND MESSAGE - "SUBFROM" - RESET OBJECT BITS
  20289. AH = 12h
  20290. BH = 0Bh
  20291. BL = object
  20292. 00h handle is DWORD on top of stack
  20293. pointer: reset control flags
  20294. keyboard: reset control flags
  20295. 04h clear control flags on KEYBOARD object (handle on top of stack)
  20296. 05h clear control flags on task's default KEYBOARD object
  20297. STACK: DWORD which bits to clear (see #00450,#00451)
  20298. Return: STACK popped
  20299. SeeAlso: AH=12h/BH=0Ah"OBJECT"
  20300. --------Q-1512--BH0C-------------------------
  20301. INT 15 - TopView - SEND MESSAGE - "OPEN" - OPEN OBJECT
  20302. AH = 12h
  20303. BH = 0Ch
  20304. BL = object
  20305. 00h handle is DWORD on top of stack
  20306. window: fill with given character from scroll origin to end
  20307. keyboard: attach to a window
  20308. timer: open
  20309. pointer: start taking input for window
  20310. panel: associate with a panel file
  20311. 01h fill task's default window with given char from scrl org to end
  20312. 02h open given task's mailbox for input (task's handle on stack)
  20313. 03h open current task's mailbox
  20314. 04h attach a KEYBOARD to a window (handle on top of stack)
  20315. 05h attach task's default KEYBOARD to a window
  20316. 06h open a task's OBJECTQ (task's handle on top of stack)
  20317. 07h open current task's OBJECTQ
  20318. 0Ch (DV 2.26+) fill def window of task owning handle on top of stck
  20319. 0Dh (DV 2.26+) fill default window of parent of current task
  20320. STACK: (if window) DWORD character to fill with
  20321. (if keyboard) DWORD handle of window to attach to
  20322. (if pointer) DWORD handle of window to attach to
  20323. (if panel) DWORD length of filename or resident panel
  20324. DWORD address of filename or resident panel
  20325. (otherwise) nothing
  20326. Return: STACK popped
  20327. Notes: if first byte of panel file name is 1Bh, then the "name" IS a panel
  20328. if first two bytes of panel file "name" are C0hC3h, then the "name" IS
  20329. the panel file
  20330. result code of open may be retrieved with STATUS message
  20331. logical cursor is left at scroll origin after filling window
  20332. the task opening a mailbox becomes its owner, and the only task allowed
  20333. to read the mailbox
  20334. messages are only sent to a pointer object when the mouse is positioned
  20335. in the window to which the pointer has been attached
  20336. there is no need to explicitly open a timer object, as ADDTO and WRITE
  20337. messages automatically open the timer
  20338. SeeAlso: AH=12h/BH=0Dh,AH=12h/BH=14h"LOCK"
  20339. --------Q-1512--BH0D-------------------------
  20340. INT 15 - TopView - SEND MESSAGE - "CLOSE" - CLOSE OBJECT
  20341. AH = 12h
  20342. BH = 0Dh
  20343. BL = object
  20344. 00h handle is DWORD on top of stack
  20345. timer: close
  20346. keyboard: detach from window and discard queued input
  20347. pointer: stop taking input
  20348. panel: close
  20349. mailbox: close, unlock, and discard any pending messages
  20350. 02h close given task's mailbox (task's handle on top of stack)
  20351. 03h close task's default mailbox
  20352. 04h close KEYBOARD object (handle on top of stack)
  20353. 05h close task's default KEYBOARD
  20354. 06h close given task's OBJECTQ (task's handle on top of stack)
  20355. 07h close current task's OBJECTQ
  20356. Return: STACK popped if handle passed on stack
  20357. Notes: when an OBJECTQ is closed, each object in the OBJECTQ is sent an
  20358. ERASE message (AH=12h/BH=0Eh)
  20359. when a panel object is closed, the panel file and any panels currently
  20360. in use are freed; window and keyboard objects created by APPLY are
  20361. not affected, but field mode input ceases
  20362. open but idle timer objects consume a small amount of CPU time
  20363. SeeAlso: AH=12h/BH=0Ch,AH=12h/BH=0Eh,AH=12h/BH=14h"LOCK"
  20364. --------Q-1512--BH0E-------------------------
  20365. INT 15 - TopView - SEND MESSAGE - "ERASE" - ERASE OBJECT
  20366. AH = 12h
  20367. BH = 0Eh
  20368. BL = object
  20369. 00h handle is DWORD on top of stack
  20370. window: clear from scroll origin to end of window
  20371. keyboard: discard input
  20372. timer: cancel current interval
  20373. pointer: discard all pending messages
  20374. mailbox: discard all pending messages
  20375. 01h clear task's default window from scroll origin to end
  20376. 02h discard all queued messages in mailbox (handle on top of stack)
  20377. 03h discard all queued messages in current task's default mailbox
  20378. 04h discard all input queued to KEYBOARD (handle on top of stack)
  20379. 05h discard all input queued to task's default KEYBOARD
  20380. 06h remove all objects from OBJECTQ (task's handle on top of stack)
  20381. 07h remove all objects from current task's OBJECTQ
  20382. 0Ch (DV 2.26+) clear window of task owning handle on top of stack
  20383. 0Dh (DV 2.26+) clear default window of parent of current task
  20384. Return: STACK popped if handle passed on stack
  20385. Note: when an OBJECTQ is erased, each object in the OBJECTQ is also erased
  20386. SeeAlso: AH=12h/BH=02h
  20387. --------Q-1512--BH0F-------------------------
  20388. INT 15 - TopView - SEND MESSAGE - "STATUS" - GET OBJECT STATUS
  20389. AH = 12h
  20390. BH = 0Fh
  20391. BL = object
  20392. 00h handle is DWORD on top of stack
  20393. timer: is it running?
  20394. pointer: return status of last message
  20395. panel: verify success of last OPEN or APPLY
  20396. 02h return status of last msg READ from mailbox (handle on stack)
  20397. 03h return status of last msg READ from task's default mailbox
  20398. 04h get stat of last msg from task's KEYBOARD (task handle on stk)
  20399. 05h get status of last msg from task's default KEYBOARD
  20400. 06h return whether OBJECTQ is open or not (handle on top of stack)
  20401. 07h return whether task's default OBJECTQ is open or not
  20402. Return: DWORD on top of stack is status (any handle passed on stack popped)
  20403. Notes: if object is a panel object, the status indicates the error code:
  20404. 00h successful
  20405. 14h panel name not in panel directory
  20406. 15h not enough memory to apply panel
  20407. 16h invalid panel format
  20408. 17h panel file already open
  20409. 81h-92h DOS error codes+80h \ codes > 80h indicate
  20410. 95h not enough memory to open panel file > that the panel was
  20411. 98h null panel file name / not opened
  20412. if object is a timer, the status is:
  20413. 00000000h open but not running
  20414. 40000000h open and running
  20415. 80000000h closed
  20416. if object is an OBJECTQ, the status is:
  20417. 00000000h open
  20418. 80000000h closed
  20419. if object is a keyboard in keystroke mode, the status is the extended
  20420. character code (scan code) of the last keystroke
  20421. if object is a keyboard in field mode, the status indicates the reason
  20422. for the last return from the field manager
  20423. 00h Enter key pressed
  20424. 01h Button 1 or keystroke selection
  20425. 02h Button 2
  20426. 03h validation
  20427. 04h auto Enter on field
  20428. 1Bh Escape pressed
  20429. 46h ^Break pressed
  20430. other: extended code for key terminating input
  20431. the status of mailbox messages sent by the window manager is always 80h
  20432. the status of a pointer message is the same as the status field in the
  20433. message
  20434. SeeAlso: AH=12h/BH=04h"READ"
  20435. --------Q-1512--BH10-------------------------
  20436. INT 15 - TopView - SEND MESSAGE - "EOF" - GET OBJECT EOF STATUS
  20437. AH = 12h
  20438. BH = 10h
  20439. BL = object
  20440. 00h handle is DWORD on top of stack
  20441. window: return TRUE if logical cursor past end of window
  20442. mailbox: ???
  20443. 01h returns TRUE if logical cursor past end of task's def window
  20444. 02h return ??? for task's mailbox (task's handle on top of stack)
  20445. 03h return ??? for current task's mailbox
  20446. 0Ch (DV 2.26+) check log crsr of window owning handle on top of stk
  20447. 0Dh (DV 2.26+) check log cursor of window of parent task
  20448. Return: DWORD on top of stack is status (any handle on stack has been popped)
  20449. --------Q-1512--BH11-------------------------
  20450. INT 15 - TopView - SEND MESSAGE - "AT" - POSITION OBJECT CURSOR
  20451. AH = 12h
  20452. BH = 11h
  20453. BL = window for which to move cursor
  20454. 00h window's handle is DWORD on top of stack
  20455. 01h task's default window
  20456. 0Ch (DV 2.26+) default window of task owning handle on top of stack
  20457. 0Dh (DV 2.26+) default window of parent of current task
  20458. STACK: DWORD column
  20459. DWORD row
  20460. Return: STACK popped
  20461. --------Q-1512--BH11-------------------------
  20462. INT 15 - TopView - SEND MESSAGE - "SETNAME" - ASSIGN NAME TO MAILBOX
  20463. AH = 12h
  20464. BH = 11h
  20465. BL = mailbox to name
  20466. 00h DWORD on top of stack is mailbox handle
  20467. 02h use given task's mailbox (task's handle on top of stack)
  20468. 03h use current task's default mailbox
  20469. STACK: DWORD length of name
  20470. DWORD address of name
  20471. Return: STACK popped
  20472. SeeAlso: AH=12h/BH=12h"GETNAME",AX=DE0Eh
  20473. --------Q-1512--BX1100-----------------------
  20474. INT 15 - TopView - SEND MESSAGE - "SETSCALE" - SET POINTER SCALE FACTOR
  20475. AH = 12h
  20476. BX = 1100h
  20477. STACK: DWORD object handle for pointer object
  20478. DWORD number of colums to scale pointer position to
  20479. DWORD number of rows to scale pointer position to
  20480. Return: STACK popped
  20481. SeeAlso: AH=12h/BX=1200h
  20482. --------Q-1512--BH12-------------------------
  20483. INT 15 - TopView - SEND MESSAGE - "READN" - GET NEXT N OBJECT BYTES
  20484. AH = 12h
  20485. BH = 12h
  20486. BL = window to read from
  20487. 00h handle is DWORD on top of stack
  20488. 01h read next N chars or attributes on task's default window
  20489. 0Ch (DV 2.26+) read window of task owning handle on top of stack
  20490. 0Dh (DV 2.26+) read default window of parent of current task
  20491. STACK: DWORD count
  20492. Return: STACK: DWORD number of bytes actually read
  20493. DWORD address of buffer containing data
  20494. Notes: reading starts at the current logical cursor position; the cursor is
  20495. updated to point at the character following the last one read
  20496. any translucent blanks (FFh) which are visible on screen are changed
  20497. to the character which is seen through them
  20498. the string produced by the read is placed in an input buffer which may
  20499. be reused by the next READ or READN of a window
  20500. window stream opcodes D8h and D9h determine whether the read returns
  20501. characters or attributes
  20502. SeeAlso: AH=12h/BH=04h"WINDOW",AH=12h/BH=05h"WINDOW"
  20503. --------Q-1512--BH12-------------------------
  20504. INT 15 - DESQview 2.50+ - SEND MESSAGE - "GETNAME" - GET NAME OF MAILBOX
  20505. AH = 12h
  20506. BH = 12h
  20507. BL = mailbox for which to retrieve name
  20508. 00h DWORD on top of stack is mailbox handle
  20509. 02h use given task's mailbox (task's handle on top of stack)
  20510. 03h use current task's default mailbox
  20511. STACK: DWORD length of buffer for name
  20512. DWORD pointer to buffer
  20513. Return: STACK: DWORD length of returned name (or size of buffer, if less)
  20514. Program: DESQview 2.5x is distributed as part of DESQview/X 1.0x
  20515. Note: the returned name is not NUL-terminated
  20516. SeeAlso: AH=12h/BH=11h"SETNAME",AX=DE0Eh
  20517. --------Q-1512--BX1200-----------------------
  20518. INT 15 - TopView - SEND MESSAGE - "GETSCALE" - GET POINTER SCALE FACTOR
  20519. AH = 12h
  20520. BX = 1200h
  20521. STACK: DWORD object handle for pointer
  20522. Return: STACK: DWORD pointer pos scaled as if window were this many colums wide
  20523. DWORD pointer pos scaled as if window were this many rows high
  20524. SeeAlso: AH=12h/BX=1100h
  20525. --------Q-1512--BH13-------------------------
  20526. INT 15 - TopView - SEND MESSAGE - "REDRAW" - REDRAW WINDOW
  20527. AH = 12h
  20528. BH = 13h
  20529. BL = window object
  20530. 00h DWORD on top of stack is handle for window to redraw
  20531. 01h redraw task's default window
  20532. 0Ch (DV 2.26+) redraw window of task owning handle on top of stack
  20533. 0Dh (DV 2.26+) redraw default window of parent of current task
  20534. Return: STACK popped if handle was passed on stack
  20535. SeeAlso: AH=12h/BH=05h"WINDOW",AH=12h/BH=0Eh
  20536. --------Q-1512--BH13-------------------------
  20537. INT 15 - DESQview 2.50+ - SEND MESSAGE - "READINTO" - GET NEXT MAIL MESSAGE
  20538. AH = 12h
  20539. BH = 13h
  20540. BL = mailbox from which to read
  20541. 00h DWORD on top of stack is mailbox handle
  20542. 02h use given task's mailbox (task's handle on top of stack)
  20543. 03h use current task's default mailbox
  20544. STACK: DWORD size of buffer in bytes
  20545. DWORD pointer to buffer
  20546. Return: STACK: DWORD number of bytes read
  20547. Program: DESQview 2.5x is distributed as part of DESQview/X 1.0x
  20548. Notes: this call blocks if no input is available, but will return less than
  20549. the requested number of bytes if some (but insufficient) data is
  20550. available
  20551. use this call instead of AH=12h/BH=04h if the mailbox has flag bits
  20552. 4 or 5 set, as common memory may be exhausted by that call when
  20553. attempting to read the next message
  20554. SeeAlso: AH=12h/BH=04h"READ",AH=12h/BH=05h,AH=12h/BH=16h
  20555. --------Q-1512--BX1300-----------------------
  20556. INT 15 - TopView - SEND MESSAGE - "SETICON" - SPECIFY POINTER ICON
  20557. AH = 12h
  20558. BX = 1300h
  20559. STACK: DWORD object handle for pointer
  20560. DWORD character to use for pointer
  20561. Return: STACK popped
  20562. --------Q-1512--BH14-------------------------
  20563. INT 15 - TopView - SEND MESSAGE - "SETESC" - SET ESCAPE ROUTINE ADDRESS
  20564. AH = 12h
  20565. BH = 14h
  20566. BL = message modifier
  20567. 00h handle is DWORD on top of stack
  20568. 01h define user stream
  20569. 04h intercept keystrokes from KEYBOARD to window (handle on stack)
  20570. 05h intercept keystrokes from task's default KEYBOARD to a window
  20571. STACK: (if window) DWORD user stream number (14h-1Fh)
  20572. DWORD address of FAR user stream handler
  20573. (if keyboard) DWORD address of FAR filter function (see #00452)
  20574. Return: STACK popped
  20575. (Table 00452)
  20576. Values keyboard filter function is called with when keyboard is in field mode:
  20577. AL = character
  20578. AH = 00h or extended ASCII code if AL = 00h
  20579. BL = field number
  20580. CH = cursor column
  20581. CL = cursor row
  20582. DL = field type modifier (sixth item in field table entry)
  20583. DH = seventh item in field table entry
  20584. ES:SI = window's handle
  20585. DS:DI -> field table entry for field containing the cursor
  20586. Return: AH = action to take
  20587. 00h use keystroke
  20588. 01h ignore keystroke
  20589. FFh beep and ignore keystroke
  20590. Note: the filter function is not allowed to make INT 15, DOS, or BIOS calls
  20591. --------Q-1512--BH14-------------------------
  20592. INT 15 - TopView - SEND MESSAGE - "LOCK" - REQUEST EXCLUSIVE ACCESS TO RESOURCE
  20593. AH = 12h
  20594. BH = 14h
  20595. BL = object
  20596. 00h mailbox handle is DWORD on top of stack
  20597. 02h use given task's mailbox (task's handle on top of stack)
  20598. 03h use current task's default mailbox
  20599. Return: STACK popped if BL=00h
  20600. Note: release exclusive access by sending CLOSE message to mailbox
  20601. access may be requested multiple times, and requires multiple CLOSEs
  20602. SeeAlso: AH=12h/BH=0Dh
  20603. --------Q-1512--BH15-------------------------
  20604. INT 15 - DESQview v2.20+ - SEND MESSAGE - "SETFLAGS" - SET OBJECT FLAGS
  20605. AH = 12h
  20606. BH = 15h
  20607. BL = object
  20608. 00h DWORD on top of stack
  20609. mailbox, keyboard, or pointer only
  20610. 02h mailbox for task whose handle is on top of stack
  20611. 03h mailbox for current task
  20612. 04h keyboard for task whose handle is on top of stack
  20613. 05h keyboard for current task
  20614. STACK: DWORD flags (see #00453,#00454)
  20615. Return: STACK popped
  20616. Notes: only available if the API level has been set to at least 2.20
  20617. equivalent to performing SUBFROM and ADDTO calls on the object
  20618. if a mailbox has bits 4 or 5 set, you must use "READINTO" rather than
  20619. "READ" (see AH=12h/BH=13h"READINTO") to retrieve messages
  20620. SeeAlso: AH=12h/BH=0Ah,AH=12h/BH=0Bh,AH=12h/BH=16h
  20621. Bitfields for DESQview mailbox object flags:
  20622. Bit(s) Description (Table 00453)
  20623. 0 all mail messages in common memory
  20624. 1 allow write even if closed
  20625. 2 don't erase messages when mailbox closed
  20626. 4 (DV/X) append messages with like status and sender (stream-oriented
  20627. mail)
  20628. 5 (DV/X) store mail in expanded memory (pool grows as needed)
  20629. 6 (DV/X) make mailbox into non-owned mailbox
  20630. Bitfields for DESQview keyboard object flags:
  20631. Bit(s) Description (Table 00454)
  20632. 5 exclusive input when keyboard in use for input
  20633. --------Q-1512--BH16-------------------------
  20634. INT 15 - DESQview v2.20+ - SEND MESSAGE - "GETFLAGS" - GET OBJECT FLAGS
  20635. AH = 12h
  20636. BH = 16h
  20637. BL = object
  20638. 00h DWORD on top of stack
  20639. mailbox, keyboard, or pointer only
  20640. 02h mailbox for task whose handle is on top of stack
  20641. 03h mailbox for current task
  20642. 04h keyboard for task whose handle is on top of stack
  20643. 05h keyboard for current task
  20644. Return: STACK: DWORD current control flags (see #00453,#00454)
  20645. Notes: only available if the API level has been set to at least 2.20
  20646. if a mailbox has bits 4 or 5 set, you must use "READINTO" rather than
  20647. "READ" (see AH=12h/BH=13h"READINTO") to retrieve messages
  20648. SeeAlso: AH=12h/BH=0Ah,AH=12h/BH=0Bh,AH=12h/BH=13h"READINTO",AH=12h/BH=15h
  20649. --------Q-1512--BH17-------------------------
  20650. INT 15 - DESQview v2.42-2.52 - BUG
  20651. AH = 12h
  20652. BH = 17h
  20653. BL = object
  20654. 00h DWORD on top of stack
  20655. mailbox, keyboard, or pointer only
  20656. 02h mailbox for task whose handle is on top of stack
  20657. 03h mailbox for current task
  20658. 04h keyboard for task whose handle is on top of stack
  20659. 05h keyboard for current task
  20660. Return: STACK popped if handle passed on stack
  20661. Notes: due to a fencepost error, message 17h is accepted for mailboxes,
  20662. keyboards, and pointers, but causes a random branch
  20663. DESQview v2.50-2.52 are distributed as part of DESQview/X v1.02
  20664. --------Q-1512--BH80-------------------------
  20665. INT 15 - DESQview v2.50+ - SEND MESSAGE 00h WITH ERROR RECOVERY
  20666. AH = 12h
  20667. BH = 80h
  20668. Note: this function is identical to AH=12h/BH=00h, except that DESQview will
  20669. not pop up a "Programming Error" window, instead returning an error
  20670. code in AL (see #00455)
  20671. SeeAlso: AH=12h/BH=00h
  20672. (Table 00455)
  20673. Values for DESQview error code:
  20674. 00h no error
  20675. 01h invalid values
  20676. 02h alias invalid
  20677. 03h handle valid but wrong type
  20678. 04h invalid handle
  20679. --------Q-1512--BH81-------------------------
  20680. INT 15 - DESQview v2.50+ - SEND MESSAGE 01h WITH ERROR RECOVERY
  20681. AH = 12h
  20682. BH = 81h
  20683. Note: this function is identical to AH=12h/BH=01h, except that DESQview will
  20684. not pop up a "Programming Error" window, instead returning an error
  20685. code in AL (see #00455)
  20686. SeeAlso: AH=12h/BH=01h
  20687. --------Q-1512--BH82-------------------------
  20688. INT 15 - DESQview v2.50+ - SEND MESSAGE 02h WITH ERROR RECOVERY
  20689. AH = 12h
  20690. BH = 82h
  20691. Note: this function is identical to AH=12h/BH=02h, except that DESQview will
  20692. not pop up a "Programming Error" window, instead returning an error
  20693. code in AL (see #00455)
  20694. SeeAlso: AH=12h/BH=02h
  20695. --------Q-1512--BH83-------------------------
  20696. INT 15 - DESQview v2.50+ - SEND MESSAGE 03h WITH ERROR RECOVERY
  20697. AH = 12h
  20698. BH = 83h
  20699. Note: this function is identical to AH=12h/BH=03h, except that DESQview will
  20700. not pop up a "Programming Error" window, instead returning an error
  20701. code in AL (see #00455)
  20702. SeeAlso: AH=12h/BH=03h,AH=12h/BX=0300h
  20703. --------Q-1512--BH84-------------------------
  20704. INT 15 - DESQview v2.50+ - SEND MESSAGE 04h WITH ERROR RECOVERY
  20705. AH = 12h
  20706. BH = 84h
  20707. Note: this function is identical to AH=12h/BH=04h, except that DESQview will
  20708. not pop up a "Programming Error" window, instead returning an error
  20709. code in AL (see #00455)
  20710. SeeAlso: AH=12h/BH=04h,AH=12h/BX=0400h
  20711. --------Q-1512--BH85-------------------------
  20712. INT 15 - DESQview v2.50+ - SEND MESSAGE 05h WITH ERROR RECOVERY
  20713. AH = 12h
  20714. BH = 85h
  20715. Note: this function is identical to AH=12h/BH=05h, except that DESQview will
  20716. not pop up a "Programming Error" window, instead returning an error
  20717. code in AL (see #00455)
  20718. SeeAlso: AH=12h/BH=05h
  20719. --------Q-1512--BH86-------------------------
  20720. INT 15 - DESQview v2.50+ - SEND MESSAGE 06h WITH ERROR RECOVERY
  20721. AH = 12h
  20722. BH = 86h
  20723. Note: this function is identical to AH=12h/BH=06h, except that DESQview will
  20724. not pop up a "Programming Error" window, instead returning an error
  20725. code in AL (see #00455)
  20726. SeeAlso: AH=12h/BH=06h
  20727. --------Q-1512--BH87-------------------------
  20728. INT 15 - DESQview v2.50+ - SEND MESSAGE 07h WITH ERROR RECOVERY
  20729. AH = 12h
  20730. BH = 87h
  20731. Note: this function is identical to AH=12h/BH=07h, except that DESQview will
  20732. not pop up a "Programming Error" window, instead returning an error
  20733. code in AL (see #00455)
  20734. SeeAlso: AH=12h/BH=07h
  20735. --------Q-1512--BH88-------------------------
  20736. INT 15 - DESQview v2.50+ - SEND MESSAGE 08h WITH ERROR RECOVERY
  20737. AH = 12h
  20738. BH = 88h
  20739. Note: this function is identical to AH=12h/BH=08h, except that DESQview will
  20740. not pop up a "Programming Error" window, instead returning an error
  20741. code in AL (see #00455)
  20742. SeeAlso: AH=12h/BH=08h
  20743. --------Q-1512--BH89-------------------------
  20744. INT 15 - DESQview v2.50+ - SEND MESSAGE 09h WITH ERROR RECOVERY
  20745. AH = 12h
  20746. BH = 89h
  20747. Note: this function is identical to AH=12h/BH=09h, except that DESQview will
  20748. not pop up a "Programming Error" window, instead returning an error
  20749. code in AL (see #00455)
  20750. SeeAlso: AH=12h/BH=09h
  20751. --------Q-1512--BH8A-------------------------
  20752. INT 15 - DESQview v2.50+ - SEND MESSAGE 0Ah WITH ERROR RECOVERY
  20753. AH = 12h
  20754. BH = 8Ah
  20755. Note: this function is identical to AH=12h/BH=0Ah, except that DESQview will
  20756. not pop up a "Programming Error" window, instead returning an error
  20757. code in AL (see #00455)
  20758. SeeAlso: AH=12h/BH=0Ah
  20759. --------Q-1512--BH8B-------------------------
  20760. INT 15 - DESQview v2.50+ - SEND MESSAGE 0Bh WITH ERROR RECOVERY
  20761. AH = 12h
  20762. BH = 8Bh
  20763. Note: this function is identical to AH=12h/BH=0Bh, except that DESQview will
  20764. not pop up a "Programming Error" window, instead returning an error
  20765. code in AL (see #00455)
  20766. SeeAlso: AH=12h/BH=0Bh
  20767. --------Q-1512--BH8C-------------------------
  20768. INT 15 - DESQview v2.50+ - SEND MESSAGE 0Ch WITH ERROR RECOVERY
  20769. AH = 12h
  20770. BH = 8Ch
  20771. Note: this function is identical to AH=12h/BH=0Ch, except that DESQview will
  20772. not pop up a "Programming Error" window, instead returning an error
  20773. code in AL (see #00455)
  20774. SeeAlso: AH=12h/BH=0Ch
  20775. --------Q-1512--BH8D-------------------------
  20776. INT 15 - DESQview v2.50+ - SEND MESSAGE 0Dh WITH ERROR RECOVERY
  20777. AH = 12h
  20778. BH = 8Dh
  20779. Note: this function is identical to AH=12h/BH=0Dh, except that DESQview will
  20780. not pop up a "Programming Error" window, instead returning an error
  20781. code in AL (see #00455)
  20782. SeeAlso: AH=12h/BH=0Dh
  20783. --------Q-1512--BH8E-------------------------
  20784. INT 15 - DESQview v2.50+ - SEND MESSAGE 0Eh WITH ERROR RECOVERY
  20785. AH = 12h
  20786. BH = 8Eh
  20787. Note: this function is identical to AH=12h/BH=0Eh, except that DESQview will
  20788. not pop up a "Programming Error" window, instead returning an error
  20789. code in AL (see #00455)
  20790. SeeAlso: AH=12h/BH=0Eh
  20791. --------Q-1512--BH8F-------------------------
  20792. INT 15 - DESQview v2.50+ - SEND MESSAGE 0Fh WITH ERROR RECOVERY
  20793. AH = 12h
  20794. BH = 8Fh
  20795. Note: this function is identical to AH=12h/BH=0Fh, except that DESQview will
  20796. not pop up a "Programming Error" window, instead returning an error
  20797. code in AL (see #00455)
  20798. SeeAlso: AH=12h/BH=0Fh
  20799. --------Q-1512--BH90-------------------------
  20800. INT 15 - DESQview v2.50+ - SEND MESSAGE 10h WITH ERROR RECOVERY
  20801. AH = 12h
  20802. BH = 90h
  20803. Note: this function is identical to AH=12h/BH=10h, except that DESQview will
  20804. not pop up a "Programming Error" window, instead returning an error
  20805. code in AL (see #00455)
  20806. SeeAlso: AH=12h/BH=10h
  20807. --------Q-1512--BH91-------------------------
  20808. INT 15 - DESQview v2.50+ - SEND MESSAGE 11h WITH ERROR RECOVERY
  20809. AH = 12h
  20810. BH = 91h
  20811. Note: this function is identical to AH=12h/BH=11h, except that DESQview will
  20812. not pop up a "Programming Error" window, instead returning an error
  20813. code in AL (see #00455)
  20814. SeeAlso: AH=12h/BH=11h,AH=12h/BX=1100h
  20815. --------Q-1512--BH92-------------------------
  20816. INT 15 - DESQview v2.50+ - SEND MESSAGE 12h WITH ERROR RECOVERY
  20817. AH = 12h
  20818. BH = 92h
  20819. Note: this function is identical to AH=12h/BH=12h, except that DESQview will
  20820. not pop up a "Programming Error" window, instead returning an error
  20821. code in AL (see #00455)
  20822. SeeAlso: AH=12h/BH=12h,AH=12h/BX=1200h
  20823. --------Q-1512--BH93-------------------------
  20824. INT 15 - DESQview v2.50+ - SEND MESSAGE 13h WITH ERROR RECOVERY
  20825. AH = 12h
  20826. BH = 93h
  20827. Note: this function is identical to AH=12h/BH=13h, except that DESQview will
  20828. not pop up a "Programming Error" window, instead returning an error
  20829. code in AL (see #00455)
  20830. SeeAlso: AH=12h/BH=13h
  20831. --------Q-1512--BH94-------------------------
  20832. INT 15 - DESQview v2.50+ - SEND MESSAGE 14h WITH ERROR RECOVERY
  20833. AH = 12h
  20834. BH = 94h
  20835. Note: this function is identical to AH=12h/BH=14h, except that DESQview will
  20836. not pop up a "Programming Error" window, instead returning an error
  20837. code in AL (see #00455)
  20838. SeeAlso: AH=12h/BH=14h
  20839. --------Q-1512--BH95-------------------------
  20840. INT 15 - DESQview v2.50+ - SEND MESSAGE 15h WITH ERROR RECOVERY
  20841. AH = 12h
  20842. BH = 95h
  20843. Note: this function is identical to AH=12h/BH=15h, except that DESQview will
  20844. not pop up a "Programming Error" window, instead returning an error
  20845. code in AL (see #00455)
  20846. SeeAlso: AH=12h/BH=15h
  20847. --------Q-1512--BH96-------------------------
  20848. INT 15 - DESQview v2.50+ - SEND MESSAGE 16h WITH ERROR RECOVERY
  20849. AH = 12h
  20850. BH = 96h
  20851. Note: this function is identical to AH=12h/BH=16h, except that DESQview will
  20852. not pop up a "Programming Error" window, instead returning an error
  20853. code in AL (see #00455)
  20854. SeeAlso: AH=12h/BH=16h
  20855. --------T-1513-------------------------------
  20856. INT 15 - VMiX - "sys_wake" - WAKE SLEEPING PROCESS
  20857. AH = 13h
  20858. STACK: WORD process ID
  20859. Return: AX = status (SYS_OK or SYS_ERROR)
  20860. SeeAlso: AH=12h"VMiX"
  20861. --------T-1513-------------------------------
  20862. INT 15 - MultiDOS Plus - GET TASK CONTROL BLOCK
  20863. AH = 13h
  20864. Return: BX:AX -> task control block (see #00456)
  20865. SeeAlso: AH=15h"MultiDOS"
  20866. Format of MultiDOS Plus v4.0 task control block:
  20867. Offset Size Description (Table 00456)
  20868. 00h DWORD pointer to next TCB
  20869. 04h 8 BYTEs ASCIZ task name
  20870. 0Ch 2 BYTEs ???
  20871. 0Eh WORD task PSP segment
  20872. 10h WORD abort/suspend flags
  20873. 12h WORD current screen segment (see AH=0Bh,AH=0Ch)
  20874. 14h WORD priority level (0000h-FFFEh)
  20875. 16h WORD time slice counter
  20876. 18h 2 BYTEs ???
  20877. 1Ah WORD suspend timer value
  20878. 1Ch WORD stack segment
  20879. 1Eh WORD stack pointer
  20880. 20h WORD display type
  20881. 22h WORD display memory
  20882. 24h 2 BYTEs ???
  20883. 26h WORD termination count
  20884. 28h WORD equipment flag for BIO10 driver
  20885. 2Ah BYTE background CRT mode
  20886. 2Bh WORD screen width in columns
  20887. 2Dh WORD screen size in bytes
  20888. 2Fh WORD segment of physical screen memory
  20889. 31h 16 BYTEs eight cursor positions
  20890. 41h WORD current cursor shape
  20891. 43h BYTE active display page
  20892. 44h WORD CRT controller I/O port base
  20893. 46h 2 BYTEs ???
  20894. 48h WORD foreground task flag
  20895. 4Ah 6 BYTEs ???
  20896. 50h WORD saved video segment (see AH=0Bh,AH=0Ch)
  20897. 52h DWORD old INT 22
  20898. 56h DWORD old INT 23
  20899. 5Ah DWORD old INT 24
  20900. 5Eh WORD top of memory for task
  20901. 60h 4 BYTEs ???
  20902. 64h WORD DTA segment (see INT 21/AH=1Ah)
  20903. 66h WORD DTA offset
  20904. 68h 4 BYTEs ???
  20905. 6Ch BYTE current ANSI.SYS attribute
  20906. 6Dh BYTE current ANSI.SYS column
  20907. 6Eh BYTE current ANSI.SYS row
  20908. 6Fh BYTE current ANSI.SYS display state
  20909. 70h BYTE maximum ANSI.SYS columns
  20910. 71h BYTE current ANSI.SYS page
  20911. 72h WORD saved ANSI.SYS cursor position
  20912. 74h BYTE ANSI.SYS parameter buffer index
  20913. 75h BYTE current ANSI.SYS screen mode
  20914. 76h BYTE ANSI.SYS wrap flag
  20915. 77h 6 BYTEs ANSI.SYS parameter buffer
  20916. 7Dh BYTE ANSI.SYS keyboard DSR state
  20917. 7Eh 7 BYTEs ANSI.SYS keyboard DSR buffer
  20918. 85h 3 BYTEs ???
  20919. 88h 16 BYTEs request header for DOS driver calls
  20920. 98h 14 BYTEs ???
  20921. A6h WORD segment of EMS map if EMS task
  20922. A8h WORD flag: task makes EMS calls
  20923. AAh WORD EMS handle for task
  20924. ACh WORD keyboard shift state
  20925. AEh 12 BYTEs ???
  20926. BAh WORD TCB of parent if child task
  20927. BCh WORD termination code
  20928. BEh WORD COM port number
  20929. C0h 4 BYTEs ???
  20930. C4h WORD current IRQ number
  20931. C6h 2 BYTEs ???
  20932. C8h WORD miscellaneous flag word
  20933. CAh 2 BYTEs ???
  20934. CCh DWORD old INT 10
  20935. D0h WORD EMS alternate map set number
  20936. D2h 414 BYTEs DOS current disk and directory context (optional)
  20937. --------T-1514-------------------------------
  20938. INT 15 - VMiX - "sys_clrwindow" - CLEAR WINDOW
  20939. AH = 14h
  20940. STACK: WORD top left corner of window (high byte = row, low = col)
  20941. WORD bottom right corner of window (high = row, low = col)
  20942. Return: AX = status (SYS_OK)
  20943. Note: clears window to color set with "sys_setcolors" (AH=18h)
  20944. SeeAlso: AH=15h"VMiX",AH=16h"VMiX",AH=18h"VMiX",AH=1Fh"VMiX"
  20945. --------T-1514-------------------------------
  20946. INT 15 - MultiDOS Plus - CHECK IF MultiDOS FOREGROUND OR BACKGROUND
  20947. AH = 14h
  20948. Return: AX = current state
  20949. 0000h MultiDOS Plus command prompt is background task
  20950. 0001h command prompt is foreground task
  20951. SeeAlso: AH=0Bh"MultiDOS"
  20952. --------T-1515-------------------------------
  20953. INT 15 - VMiX - "sys_setbwindow" - SET BANNER WINDOW MESSAGE
  20954. AH = 15h
  20955. STACK: DWORD pointer to ASCIZ banner message for top of screen
  20956. Return: AX = status (SYS_OK)
  20957. SeeAlso: AH=14h"VMiX",AH=16h"VMiX"
  20958. --------T-1515-------------------------------
  20959. INT 15 - MultiDOS Plus - GET SYSTEM BLOCK
  20960. AH = 15h
  20961. Return: BX:AX -> system block (see #00457)
  20962. SeeAlso: AH=13h"MultiDOS"
  20963. Format of MultiDOS Plus 4.0 system block:
  20964. Offset Size Description (Table 00457)
  20965. 00h WORD segment of system control block
  20966. 02h WORD redirection flag set by /NOREDIRECT
  20967. 04h WORD no-INT 10 flag set by /NO10
  20968. 06h DWORD old INT 10
  20969. 0Ah DWORD new INT 10
  20970. 0Eh DWORD pointer to WORD with current TCB offset (see #00456)
  20971. 12h DWORD pointer to WORD with idle task TCB offset
  20972. 16h DWORD pointer to WORD with foreground TCB offset (see #00456)
  20973. 1Ah DWORD pointer to WORD with MultiDOS TCB offset (see #00456)
  20974. 1Eh WORD Task Control Block size
  20975. 20h WORD number of TCBs
  20976. 22h WORD flag: EMS present
  20977. 24h WORD EMS page frame base segment
  20978. 26h WORD 16K pages in EMS page frame
  20979. 28h WORD base segment for conventional memory tasks
  20980. 2Ah WORD conventional memory size in paragraphs
  20981. 2Ch DWORD pointer to list of queue pointers
  20982. --------T-1516-------------------------------
  20983. INT 15 - VMiX - "sys_setwindow" - SET ROOT WINDOW SIZE AND HOME CURSOR
  20984. AH = 16h
  20985. STACK: DWORD pointer to I/O Request Packet
  20986. WORD top left corner of window (high byte = row, low = col)
  20987. WORD bottom right corner of window (high = row, low = col)
  20988. Return: AX = status (SYS_OK or SYS_ERROR)
  20989. SeeAlso: AH=14h"VMiX",AH=17h"VMiX"
  20990. --------T-1516-------------------------------
  20991. INT 15 - MultiDOS Plus - INITIALIZATION
  20992. AH = 16h
  20993. Note: used internally during initialization; any other calls will cause
  20994. unpredictable results
  20995. --------T-1517-------------------------------
  20996. INT 15 - VMiX - "sys_getcolors" - GET CONSOLE WINDOW COLORS
  20997. AH = 17h
  20998. Return: AH = foreground color
  20999. AL = background color
  21000. SeeAlso: AH=16h"VMiX",AH=18h"VMiX"
  21001. --------T-1517-------------------------------
  21002. INT 15 - MultiDOS Plus - MAP IRQ
  21003. AH = 17h
  21004. AL = IRQ to map (01h-0Fh)
  21005. BX = offset of task control block (see #00456) to associate with IRQ
  21006. Return: AX = status
  21007. 0000h successful
  21008. other invalid IRQ
  21009. Note: the EMS map of the specified TCB is associated with the given interrupt
  21010. SeeAlso: AH=18h"MultiDOS",AH=19h"MultiDOS"
  21011. --------T-1518-------------------------------
  21012. INT 15 - VMiX - "sys_setcolors" - SET CONSOLE COLORS
  21013. AH = 18h
  21014. STACK: WORD new background/foreground colors
  21015. bits 3-0: foreground
  21016. bits 7-4: background
  21017. bits 15-8: unused
  21018. Return: AX = color
  21019. SeeAlso: AH=14h"VMiX",AH=17h"VMiX",AH=19h"VMiX"
  21020. --------T-1518-------------------------------
  21021. INT 15 - MultiDOS Plus - UNMAP IRQ
  21022. AH = 18h
  21023. AL = IRQ to unmap (01h-0Fh)
  21024. Return: AX = status
  21025. 0000h successful
  21026. 0001h invalid IRQ
  21027. Note: results are unpredictable if the IRQ has not been mapped
  21028. SeeAlso: AH=17h"MultiDOS",AH=19h"MultiDOS"
  21029. --------T-1519-------------------------------
  21030. INT 15 - VMiX v2+ - "sys_setconwn" - SET WINDOW COLORS
  21031. AH = 19h
  21032. STACK: WORD new background/foreground colors
  21033. bits 3-0: foreground
  21034. bits 7-4: background
  21035. bits 15-8: unused
  21036. Return: AX = color
  21037. SeeAlso: AH=18h"VMiX"
  21038. --------T-1519-------------------------------
  21039. INT 15 - MultiDOS Plus - UNMAP ALL IRQs
  21040. AH = 19h
  21041. Return: AX destroyed
  21042. Note: for MultiDOS internal use only
  21043. SeeAlso: AH=17h"MultiDOS",AH=18h"MultiDOS"
  21044. --------T-151A-------------------------------
  21045. INT 15 - VMiX v2+ - "sys_sint" - INVOKE SOFTWARE INTERRUPT
  21046. AH = 1Ah
  21047. STACK: WORD interrupt number
  21048. DWORD pointer to register structure
  21049. Return: AX = returned flags
  21050. --------T-151A-------------------------------
  21051. INT 15 - MultiDOS Plus - MAP SEMAPHORE NAME TO NUMBER
  21052. AH = 1Ah
  21053. DS:SI -> 8-byte name
  21054. Return: AL = status
  21055. 00h successful
  21056. AH = semaphore number (20h-3Fh)
  21057. 04h out of string space
  21058. Notes: all eight bytes of the name are significant
  21059. if the name does not already exist, it is added to the name table and
  21060. associated with a free semaphore number
  21061. names cannot be destroyed
  21062. SeeAlso: AH=1Bh"MultiDOS",AH=1Ch"MultiDOS",AH=1Dh"MultiDOS"
  21063. --------T-151B-------------------------------
  21064. INT 15 - VMiX v2+ - "sys_blkmov" - MOVE MEMORY BLOCK
  21065. AH = 1Bh
  21066. STACK: DWORD source address
  21067. DWORD destination address
  21068. WORD number of words to move
  21069. Return: nothing
  21070. --------T-151B-------------------------------
  21071. INT 15 - MultiDOS Plus - REQUEST RESOURCE SEMAPHORE BY NAME
  21072. AH = 1Bh
  21073. DS:SI -> 8-byte name
  21074. Return: AH = status
  21075. 00h successful
  21076. 02h invalid semaphore number
  21077. 03h caller already owns semaphore
  21078. 04h out of string space
  21079. Notes: (see AH=01h"MultiDOS")
  21080. equivalent to AH=1Ah followed by AH=01h
  21081. SeeAlso: AH=01h"MultiDOS",AH=1Ah"MultiDOS",AH=1Ch"MultiDOS",AH=1Dh"MultiDOS"
  21082. --------T-151C-------------------------------
  21083. INT 15 - VMiX v2+ - "sys_bitblt" - PUT GRAPHICAL OBJECT AT CURSOR POSITION
  21084. AH = 1Ch
  21085. STACK: WORD AND/OR pixel with background (00h = OR, 01h = AND)
  21086. DWORD pointer to object bitmap
  21087. WORD object width in pixels
  21088. WORD object height in pixels
  21089. Return: nothing
  21090. SeeAlso: AH=1Dh"VMiX"
  21091. --------T-151C-------------------------------
  21092. INT 15 - MultiDOS Plus - RELEASE RESOURCE SEMAPHORE BY NAME
  21093. AH = 1Ch
  21094. DS:SI -> 8-byte name
  21095. Return: AH = status
  21096. 00h successful
  21097. 01h not semaphore owner
  21098. 02h invalid semaphore number
  21099. 04h out of string space
  21100. Notes: (see AH=02h"MultiDOS")
  21101. equivalent to AH=1Ah followed by AH=02h
  21102. SeeAlso: AH=02h"MultiDOS",AH=1Ah"MultiDOS",AH=1Bh"MultiDOS",AH=1Dh"MultiDOS"
  21103. --------T-151D-------------------------------
  21104. INT 15 - VMiX v2+ - "sys_getfont" - GET CURRENT CONSOLE GRAPHICS FONT
  21105. AH = 1Dh
  21106. Return: AX = current font number (00h-03h)
  21107. SeeAlso: AH=1Ch"VMiX",AH=1Eh"VMiX"
  21108. --------T-151D-------------------------------
  21109. INT 15 - MultiDOS Plus - TEST RESOURCE SEMAPHORE BY NAME
  21110. AH = 1Dh
  21111. DS:SI -> 8-byte name
  21112. Return: AH = status
  21113. 00h semaphore not in use
  21114. 01h semaphore owned by another task
  21115. 02h invalid semaphore number
  21116. 03h caller owns semaphore
  21117. 04h out of string space
  21118. Notes: (see AH=10h"MultiDOS")
  21119. equivalent to AH=1Ah followed by AH=10h
  21120. SeeAlso: AH=10h"MultiDOS",AH=1Ah"MultiDOS",AH=1Bh"MultiDOS",AH=1Ch"MultiDOS"
  21121. --------T-151E-------------------------------
  21122. INT 15 - VMiX v2+ - "sys_setfont" - SET CONSOLE GRAPHICS FONT
  21123. AH = 1Eh
  21124. STACK: WORD new font number (00h-03h)
  21125. Return: AX = current font number (00h-03h)
  21126. SeeAlso: AH=1Dh"VMiX"
  21127. --------T-151E00-----------------------------
  21128. INT 15 - MultiDOS Plus - CLEAR EVENT COUNTER
  21129. AX = 1E00h
  21130. DX = event/trigger number (00h-3Fh)
  21131. Return: AH = status
  21132. 00h successful
  21133. SeeAlso: AX=1E01h,AX=1E02h
  21134. --------T-151E01-----------------------------
  21135. INT 15 - MultiDOS Plus - TRIGGER EVENT
  21136. AX = 1E01h
  21137. DX = event/trigger number (00h-3Fh)
  21138. Return: AH = status
  21139. 00h successful
  21140. 01h invalid event/trigger number
  21141. Notes: schedules any task waiting for event; if no task is waiting, the event
  21142. counter is incremented (and will roll over if it was 65535)
  21143. may be invoked by interrupt handler
  21144. SeeAlso: AX=1E00h,AX=1E02h
  21145. --------T-151E02-----------------------------
  21146. INT 15 - MultiDOS Plus - WAIT FOR EVENT
  21147. AX = 1E02h
  21148. DX = event/trigger number (00h-3Fh)
  21149. Return: AH = status
  21150. 00h successful
  21151. 01h invalid event/trigger number
  21152. Note: if the event counter is zero, the task is suspended until the event is
  21153. triggered with AX=1E01h; else, the counter is decremented and the
  21154. call returns immediately
  21155. SeeAlso: AX=1E00h,AX=1E01h
  21156. --------T-151E08-----------------------------
  21157. INT 15 - MultiDOS Plus 4.01 - SET CONTEXT-SWITCH FUNCTIONS
  21158. AX = 1E08h
  21159. DX:BX -> context save handler (see #00458)
  21160. DX:CX -> context restore handler (see #00458)
  21161. Return: nothing
  21162. Note: handlers may be removed by setting addresses to 0000h:0000h
  21163. (Table 00458)
  21164. Values MultiDOS Plus context-switch handlers are called with:
  21165. ES:BX -> task's TCB
  21166. Return: all registers preserved
  21167. --------T-151F-------------------------------
  21168. INT 15 - VMiX v2.???+ - "sys_scrollwin" - SCROLL WINDOW
  21169. AH = 1Fh
  21170. STACK: WORD top left corner of window (high byte = row, low = col)
  21171. WORD bottom right corner of window
  21172. Return: AX = status (SYS_OK)
  21173. SeeAlso: AH=14h"VMiX",AH=18h"VMiX"
  21174. --------T-151F-------------------------------
  21175. INT 15 - MultiDOS Plus v4.01 - GET MEMORY PARAMETERS
  21176. AH = 1Fh
  21177. Return: BX = first segment of conventional memory
  21178. DX = first segment of EMS swap frame into which MultiDOS will load
  21179. programs
  21180. --------T-1520-------------------------------
  21181. INT 15 - MultiDOS Plus v4.01 - CHECK IF MULTITASKING ENABLED
  21182. AH = 20h
  21183. Return: AX = current state
  21184. 0000h multitasking enabled
  21185. other TCB of task that disabled multitasking
  21186. SeeAlso: AH=0Dh"MultiDOS",AH=13h"MultiDOS"
  21187. --------c-152000-----------------------------
  21188. INT 15 U - DOS 3.0+ PRINT.COM - DISABLE CRITICAL REGION FLAG
  21189. AX = 2000h
  21190. Return: nothing
  21191. Desc: stop setting user flag on entry to PRINT critical region
  21192. Note: also supported by PC Network v1.00 RECEIVER.COM
  21193. SeeAlso: AX=2001h
  21194. --------c-152001-----------------------------
  21195. INT 15 U - DOS 3.0+ PRINT.COM - SET CRITICAL REGION FLAG
  21196. AX = 2001h
  21197. ES:BX -> byte which is to be incremented while in a DOS call
  21198. Return: nothing
  21199. Desc: specify a user flag which PRINT should set to let an interested
  21200. application know it is in a critical region
  21201. Note: also supported by PC Network v1.00 RECEIVER.COM
  21202. SeeAlso: AX=2000h
  21203. --------O-152010-----------------------------
  21204. INT 15 - OS HOOK - SETUP SYSREQ ROUTINE (AT,XT286,PS50+)
  21205. AX = 2010h
  21206. ???
  21207. Return: ???
  21208. SeeAlso: AX=2011h
  21209. --------O-152011-----------------------------
  21210. INT 15 - OS HOOK - COMPLETION OF SYSREQ FUNCTION (AT,XT286,PS50+)
  21211. AX = 2011h
  21212. ???
  21213. Return: ???
  21214. SeeAlso: AX=2010h
  21215. --------B-1521-------------------------------
  21216. INT 15 - SYSTEM - POWER-ON SELF-TEST ERROR LOG (PS50+)
  21217. AH = 21h
  21218. AL = subfunction
  21219. 00h read POST log
  21220. 01h write POST log
  21221. BH = device ID
  21222. BL = error code
  21223. Return: CF clear if successful
  21224. CF set on error
  21225. AH = status
  21226. 00h OK
  21227. 01h list full
  21228. 02h unsupported subfunction
  21229. 80h invalid command
  21230. 86h unsupported function
  21231. if function 00h:
  21232. BX = number of error codes stored
  21233. ES:DI -> error log
  21234. Notes: the log is a series of words, the first byte of which identifies the
  21235. error code and the second the device.
  21236. supported by AMI PCI BIOS
  21237. IBM considers this a required BIOS function
  21238. if the device ID is FFh, the "error code" is the actual device number
  21239. minus 255 (thus these devices have no specific error codes)
  21240. SeeAlso: AH=23h"SYSTEM",AH=24h"SYSTEM"
  21241. --------B-1522-------------------------------
  21242. INT 15 - SYSTEM - later PS/2s - LOCATE ROM BASIC
  21243. AH = 22h
  21244. Return: CF set on error
  21245. AH = status (86h if function not supported)
  21246. CF clear on success
  21247. AH = 00h
  21248. ES:BX -> ROM BASIC
  21249. Notes: if this function is not supported, ROM BASIC is at F600h:0000h
  21250. IBM classifies this function as optional
  21251. SeeAlso: INT 86"BASIC",INT F0"BASIC"
  21252. --------B-152300-----------------------------
  21253. INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - GET ??? CMOS DATA
  21254. AX = 2300h
  21255. Return: CF clear if successful
  21256. CL = value of CMOS location 2Dh
  21257. CH = value of CMOS location 2Eh
  21258. CF set on error
  21259. AH = error code (80h,86h)
  21260. Note: IBM classifies this function as optional
  21261. SeeAlso: AX=2301h,AX=2304h,AX=2305h
  21262. --------B-152301-----------------------------
  21263. INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - SET ??? CMOS DATA
  21264. AX = 2301h
  21265. CL = new value for CMOS location 2Dh
  21266. CH = new value for CMOS location 2Eh
  21267. Return: CF clear if successful
  21268. CF set on error
  21269. AH = error code (80h,86h)
  21270. Notes: sets the contents of CMOS locations 2Dh and 2Eh
  21271. IBM classifies this function as optional
  21272. SeeAlso: AX=2300h,AX=2304h,AX=2305h
  21273. --------B-152302-----------------------------
  21274. INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - GET ROM STARTUP VIDEO REG TABLES
  21275. AX = 2302h
  21276. BL = data index (00h-0Dh) (see #00459)
  21277. Return: ES:BX -> table for register (see #00460,#00461)
  21278. CX = size of table in bytes (may be 0000h)
  21279. Note: IBM classifies this function as optional
  21280. SeeAlso: AX=2300h,AX=2301h,AX=2303h
  21281. (Table 00459)
  21282. Values for PS/1 ROM startup video register tables:
  21283. 00h DAC registers
  21284. 01h ???
  21285. 02h Palette registers
  21286. 03h-0Dh ???
  21287. Format of PS/1 ROM startup DAC register table:
  21288. Offset Size Description (Table 00460)
  21289. 00h WORD number of DAC registers in table
  21290. 02h var array of 3-byte DAC register values, starting at register 00h
  21291. SeeAlso: #00459
  21292. Format of PS/1 ROM startup Palette register table:
  21293. Offset Size Description (Table 00461)
  21294. 00h 16 BYTEs colors for palette registers 00h through 0Fh
  21295. 10h BYTE border color
  21296. SeeAlso: #00459,#00018
  21297. --------B-152303-----------------------------
  21298. INT 15 U - IBM BIOS - SMART ENERGY SYSTEM - ???
  21299. AX = 2303h
  21300. BX = ??? ('x')
  21301. DX = 'y' and 'z'
  21302. bits 15-7 = 'y'
  21303. bits 6-3 unused
  21304. bits 2-0 = 'z'
  21305. DI = ??? (0352h)
  21306. Return: ???
  21307. Notes: performs graphics functions, writes to segment A000h and VGA I/O ports
  21308. IBM classifies this function as optional
  21309. --------B-152304-----------------------------
  21310. INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - SYSTEM SETUP
  21311. AX = 2304h
  21312. DX = segment of 32K buffer
  21313. Return: CF clear if successful
  21314. AX = 0003h (left over from setting video mode 3)
  21315. BX,CX,DX,BP,DS,ES destroyed
  21316. CF set on error
  21317. AH = error code (80h,86h)
  21318. Desc: run system setup utility, and optionally save any changed settings to
  21319. CMOS RAM
  21320. Note: IBM classifies this function as optional
  21321. SeeAlso: AX=2301h,AX=2305h
  21322. --------B-152305-----------------------------
  21323. INT 15 u - IBM BIOS - SMART ENERGY SYSTEM - GET PROCESSOR SPEED
  21324. AX = 2305h
  21325. Return: CF clear if successful
  21326. AL = processor speed in MHz
  21327. CF set on error
  21328. AL = FFh (speed unknown or >80 MHz)
  21329. AL = error code (80h,86h = unsupported function)
  21330. Note: IBM classifies this function as optional
  21331. SeeAlso: AX=2301h,AX=2304h,AH=BCh
  21332. --------b-152400-----------------------------
  21333. INT 15 - SYSTEM - later PS/2s - DISABLE A20 GATE
  21334. AX = 2400h
  21335. Return: CF clear if successful
  21336. AH = 00h
  21337. CF set on error
  21338. AH = status
  21339. 01h keyboard controller is in secure mode
  21340. 86h function not supported
  21341. Notes: also supported by AMI PCI BIOS and Qualitas 386MAX v6.01+
  21342. IBM classifies this function as optional
  21343. BUG: AMI BIOS v1.00.03.AV0M never reports an error on failure to disable
  21344. the A20 gate; it simply writes 0 to PORT 0092h
  21345. SeeAlso: AX=2401h,AX=2402h,AX=2403h,PORT 0092h
  21346. --------b-152401-----------------------------
  21347. INT 15 - SYSTEM - later PS/2s - ENABLE A20 GATE
  21348. AX = 2401h
  21349. Return: CF clear if successful
  21350. AH = 00h
  21351. CF set on error
  21352. AH = status
  21353. 01h keyboard controller is in secure mode
  21354. 86h function not supported
  21355. Notes: also supported by AMI PCI BIOS and Qualitas 386MAX v6.01+
  21356. IBM classifies this function as optional
  21357. SeeAlso: AX=2400h,AX=2402h,PORT 0092h
  21358. --------b-152402-----------------------------
  21359. INT 15 - SYSTEM - later PS/2s - GET A20 GATE STATUS
  21360. AX = 2402h
  21361. Return: CF clear if successful
  21362. AH = 00h
  21363. AL = current state (00h disabled, 01h enabled)
  21364. CX = ??? (set to 0000h-000Bh or FFFFh by AMI BIOS v1.00.03.AV0M)
  21365. FFFFh if keyboard controller does not become ready within C000h
  21366. read attempts
  21367. CF set on error
  21368. AH = status
  21369. 01h keyboard controller is in secure mode
  21370. 86h function not supported
  21371. Notes: also supported by AMI PCI BIOS and Qualitas 386MAX v6.01+
  21372. IBM classifies this function as optional
  21373. SeeAlso: AX=2400h,AX=2401h
  21374. --------b-152403-----------------------------
  21375. INT 15 - SYSTEM - later PS/2s - QUERY A20 GATE SUPPORT
  21376. AX = 2403h
  21377. Return: CF clear if successful
  21378. AH = 00h
  21379. BX = status of A20 gate support (see #00462)
  21380. CF set on error
  21381. AH = status
  21382. 01h keyboard controller is in secure mode
  21383. 86h function not supported
  21384. Notes: also supported by AMI PCI BIOS and Qualitas 386MAX v6.01+
  21385. IBM classifies this function as optional
  21386. BUG: at one point early in processing INT 15/AH=24h, the AMI PCI BIOS
  21387. version 1.00.05.AX1 compares whether AL==03h instead of AL>=03h,
  21388. thus causing a random branch on any value of AL greater than 3.
  21389. SeeAlso: AX=2402h
  21390. Bitfields for A20 gate support status:
  21391. Bit(s) Description (Table 00462)
  21392. 0 supported on keyboard controller
  21393. 1 supported with bit 1 of I/O port 92h
  21394. 14-2 reserved
  21395. 15 additional data is available (location not yet defined)
  21396. --------T-153000-----------------------------
  21397. INT 15 - Object Kernel for DOS - INSTALLATION CHECK
  21398. AX = 3000h
  21399. Return: AX:BX = 4F42h:4A21h ('OBJ!') if installed
  21400. CX = resident segment
  21401. Program: the Object Kernel is a program by M.W. Pieters which is currently
  21402. under development
  21403. Note: Central Point's CPBACKUP v9 calls INT 15/AX=3000h at startup, but it
  21404. may be checking for a different program's presence
  21405. SeeAlso: AX=3001h,AX=3008h
  21406. --------T-153001-----------------------------
  21407. INT 15 - Object Kernel for DOS - GET STATUS BLOCK
  21408. AX = 3001h
  21409. Return: AX = FFFFh
  21410. ES:DI -> status block
  21411. SeeAlso: AX=3000h,AX=3008h
  21412. --------T-153002-----------------------------
  21413. INT 15 - Object Kernel for DOS - KILL PROCESS
  21414. AX = 3002h
  21415. (not yet implemented)
  21416. SeeAlso: AX=3000h
  21417. --------T-153003-----------------------------
  21418. INT 15 - Object Kernel for DOS - STOP PROCESS
  21419. AX = 3003h
  21420. (not yet implemented)
  21421. SeeAlso: AX=3000h
  21422. --------T-153004-----------------------------
  21423. INT 15 - Object Kernel for DOS - START PROCESS
  21424. AX = 3004h
  21425. (not yet implemented)
  21426. SeeAlso: AX=3000h
  21427. --------T-153005-----------------------------
  21428. INT 15 - Object Kernel for DOS - RESTART PROCESS
  21429. AX = 3005h
  21430. (not yet implemented)
  21431. SeeAlso: AX=3000h
  21432. --------T-153006-----------------------------
  21433. INT 15 - Object Kernel for DOS - EXECUTE PROCESS
  21434. AX = 3006h
  21435. (not yet implemented)
  21436. SeeAlso: AX=3000h
  21437. --------T-153007-----------------------------
  21438. INT 15 - Object Kernel for DOS - LIST PROCESSES
  21439. AX = 3007h
  21440. (not yet implemented)
  21441. SeeAlso: AX=3000h
  21442. --------T-153008-----------------------------
  21443. INT 15 - Object Kernel for DOS - SWITCH ObjectKernel ON/OFF
  21444. AX = 3008h
  21445. BH = new state (00h disabled, 01h enabled)
  21446. Return: AX = FFFFh
  21447. SeeAlso: AX=3000h,AX=3009h
  21448. --------T-153009-----------------------------
  21449. INT 15 - Object Kernel for DOS - RESERVED FOR FUTURE USE
  21450. AX = 3009h to 30FFh
  21451. SeeAlso: AX=3000h
  21452. Program: the Object Kernel is a program by M.W. Pieters which is currently
  21453. under development
  21454. ----------153D-------------------------------
  21455. INT 15 - IBM SurePath BIOS - Officially "Private" Function
  21456. AH = 3Dh
  21457. SeeAlso: AH=07h"IBM",AH=3Eh"IBM"
  21458. ----------153E-------------------------------
  21459. INT 15 - IBM SurePath BIOS - Officially "Private" Function
  21460. AH = 3Eh
  21461. SeeAlso: AH=3Dh"IBM",AH=3Fh"IBM"
  21462. ----------153F-------------------------------
  21463. INT 15 - IBM SurePath BIOS - Officially "Private" Function
  21464. AH = 3Fh
  21465. SeeAlso: AH=07h"IBM",AH=3Eh"IBM"
  21466. --------B-1540-------------------------------
  21467. INT 15 - SYSTEM - READ/MODIFY PROFILES (CONVERTIBLE)
  21468. AH = 40h
  21469. AL = subfunction
  21470. 00h get system profile in CX and BX
  21471. 01h set system profile from CX and BX
  21472. 02h get internal modem profile in BX
  21473. 03h set internal modem profile from BX
  21474. Return: CF clear if successful
  21475. AH = 00h
  21476. CF set on error
  21477. AH = status (80h = profile execution failed)
  21478. --------V-154000-----------------------------
  21479. INT 15 - Compaq SLT/286 or Portable 386 - READ LCD/PLASMA TIMEOUT
  21480. AX = 4000h
  21481. Return: AX = 4000h
  21482. CL = timeout in minutes, 00h if disabled
  21483. SeeAlso: AX=4001h,AX=4600h
  21484. --------V-154001-----------------------------
  21485. INT 15 - Compaq SLT/286 or Portable 386 - SET LCD/PLASMA TIMEOUT
  21486. AX = 4001h
  21487. CL = timeout in minutes, 00h to disable
  21488. Return: AL = status
  21489. 00h timeout modified
  21490. 01h timeout cannot be modified
  21491. 40h timeout cannot be modified
  21492. CL = timeout in minutes, 00h if disabled
  21493. SeeAlso: AX=4000h,AX=4601h
  21494. --------B-1541-------------------------------
  21495. INT 15 - SYSTEM - WAIT ON EXTERNAL EVENT (CONVERTIBLE and some others)
  21496. AH = 41h
  21497. AL = condition type (see #00463)
  21498. BH = condition compare or mask value
  21499. BL = timeout value times 55 milliseconds
  21500. 00h means no timeout
  21501. DX = I/O port address if AL bit 4 set
  21502. ES:DI -> user byte if AL bit 4 clear
  21503. Return: after event or timeout occurs
  21504. Note: call AH=C0h and examine bit 3 of feature byte 1 to determine whether
  21505. this function is supported
  21506. SeeAlso: AH=83h,AH=86h,AH=C0h
  21507. Bitfields for external event wait condition type:
  21508. Bit(s) Description (Table 00463)
  21509. 0-2 condition to wait for
  21510. 0 any external event
  21511. 1 compare and return if equal
  21512. 2 compare and return if not equal
  21513. 3 test and return if not zero
  21514. 4 test and return if zero
  21515. 3 reserved
  21516. 4 1=port address, 0=user byte
  21517. 5-7 reserved
  21518. --------B-1542-------------------------------
  21519. INT 15 - SYSTEM - REQUEST POWER OFF (CONVERTIBLE,HP 95LX)
  21520. AH = 42h
  21521. AL = suspend type
  21522. 00h to use system profile
  21523. 01h to force suspend regardless of system profile
  21524. Return: nothing
  21525. Note: the HP 95LX apparently suspends regardless of the value in AL; on
  21526. power-up, execution will resume following the instruction calling
  21527. this function
  21528. SeeAlso: AH=44h
  21529. --------b-154280-----------------------------
  21530. INT 15 - Compaq SLT/286 - ENTER STANDBY
  21531. AX = 4280h
  21532. Return: AH = 42h
  21533. CF clear if successful
  21534. CF set if unable to enter standby
  21535. SeeAlso: AX=4600h,AX=5307h/CX=0001h"STAND-BY"
  21536. --------B-1543-------------------------------
  21537. INT 15 - SYSTEM - READ SYSTEM STATUS (CONVERTIBLE)
  21538. AH = 43h
  21539. Return: AL = status bits (see #00464)
  21540. Bitfields for Convertible system status:
  21541. Bit(s) Description (Table 00464)
  21542. 7 power low
  21543. 6 external power in use
  21544. 5 standby power lost
  21545. 4 power activated by alarm
  21546. 3 internal modem powered on
  21547. 2 RS232/parallel adapter powered on
  21548. 1 reserved
  21549. 0 LCD detached
  21550. --------B-1544-------------------------------
  21551. INT 15 - SYSTEM - (DE)ACTIVATE INTERNAL MODEM POWER (CONVERTIBLE)
  21552. AH = 44h
  21553. AL = new modem power state (00h power off, 01h power on)
  21554. Return: nothing
  21555. SeeAlso: AH=42h
  21556. --------b-1544C0-----------------------------
  21557. INT 15 - Olivetti Quaderno - INITIALIZE DIGITAL SIGNAL PROCESSING???
  21558. AX = 44C0h
  21559. ES:DI -> new DSP procedure (exchanged with CMOS[28h])
  21560. ES:SI -> ??? buffer
  21561. Return: ES:DI -> old DSP procedure
  21562. ES:SI buffer filled with ten bytes from CMOS (addresses 14h-1Ch)
  21563. followed by 00h (addresses 15h-1Ch copied only if less than 21h)
  21564. Note: this function is also supported by XBIOS.COM
  21565. SeeAlso: AX=44C9h
  21566. --------b-1544C1-----------------------------
  21567. INT 15 - Olivetti Quaderno - ???
  21568. AX = 44C1h
  21569. ???
  21570. Return: ???
  21571. Note: this function is also supported by XBIOS.COM
  21572. SeeAlso: AX=44C9h
  21573. --------b-1544C2-----------------------------
  21574. INT 15 - Olivetti Quaderno - ???
  21575. AX = 44C2h
  21576. DL = byte to be written to I/O port 350h
  21577. Note: this function is also supported by XBIOS.COM
  21578. SeeAlso: AX=44C3h,AX=44C9h
  21579. --------b-1544C3-----------------------------
  21580. INT 15 - Olivetti Quaderno - GET ???
  21581. AX = 44C3h
  21582. Return: DH = bitfields (see #00465)
  21583. DL = value read from I/O port 350h
  21584. Note: this function is also supported by XBIOS.COM
  21585. SeeAlso: AX=44C2h,AX=44C9h
  21586. Bitfields for Olivetti Quaderno ???:
  21587. Bit(s) Description (Table 00465)
  21588. 5-7 5-7 read from I/O port 351h
  21589. 2-4 zero
  21590. 1-0 "tres complique"
  21591. --------b-1544C4-----------------------------
  21592. INT 15 - Olivetti Quaderno - ???
  21593. AX = 44C4h and 44C5h
  21594. ???
  21595. Return: ???
  21596. Note: this function is also supported by XBIOS.COM
  21597. SeeAlso: AX=44C9h
  21598. --------b-1544C6-----------------------------
  21599. INT 15 - Olivetti Quaderno - READ LCD
  21600. AX = 44C6h
  21601. Return: DX = FFFFh clock is displayed on LCD display
  21602. DX = other: hex number displayed in first four positions of display
  21603. BH = left alphanumeric character on display (see #00466)
  21604. BL = right alphanumeric character on display (see #00466)
  21605. CL = colon flags (see #00467)
  21606. Notes: the LCD display has the format HH:HH:AA, where H is a hex digit and A
  21607. is an alphanumeric character
  21608. this function is also supported by XBIOS.COM
  21609. SeeAlso: AX=44C7h,AX=44C9h
  21610. (Table 00466)
  21611. Values for Olivetti Quaderno LCD alphanumeric characters:
  21612. 00h-0Fh hex digit
  21613. 2Bh "+"
  21614. 2Dh "-"
  21615. 30h-39h "0" to "9"
  21616. 41h-5Ah "A" to "Z"
  21617. 61h-6Ah "a" to "z"
  21618. else blank
  21619. Bitfields for Olivetti Quaderno LCD colon flags:
  21620. Bit(s) Description (Table 00467)
  21621. 0 left colon on
  21622. 1 right colon on
  21623. 2-7 unused
  21624. --------b-1544C7-----------------------------
  21625. INT 15 - Olivetti Quaderno - WRITE LCD
  21626. AX = 44C7h
  21627. DX = hex display
  21628. FFFFh display clock and "HI", "Md", or "Lo"
  21629. BH,BL,CL unused
  21630. other: display specified hex number in first four positions
  21631. BH = left alphanumeric character on display (see #00466)
  21632. BL = right alphanumeric character on display (see #00466)
  21633. CL = colon flags (see #00467)
  21634. Return: nothing
  21635. Note: this function is also supported by XBIOS.COM
  21636. SeeAlso: AX=44C6h
  21637. --------b-1544C8-----------------------------
  21638. INT 15 - Olivetti Quaderno - ???
  21639. AX = 44C8h
  21640. CL = ??? (00h,02h,21h)
  21641. CH = ???
  21642. ???
  21643. Return: ???
  21644. Note: this function is also supported by XBIOS.COM
  21645. SeeAlso: AX=44C9h
  21646. --------b-1544C9-----------------------------
  21647. INT 15 - Olivetti Quaderno - GET XBIOS VERSION
  21648. AX = 44C9h
  21649. Return: AL = major version
  21650. AH = minor version
  21651. Note: this function is also supported by XBIOS.COM
  21652. --------B-1544F1-----------------------------
  21653. INT 15 U - Toshiba laptops - SECURITY LEVEL CHECK
  21654. AX = 44F1h
  21655. DS:DX -> byte with 00h ???
  21656. Return: ???
  21657. Note: used by Toshiba BIOS setup utility TSETUP.EXE to distinguish
  21658. between USER and SUPERVISOR security level
  21659. SeeAlso: AX=44F2h,AX=44F3h
  21660. --------B-1544F2BX0604-----------------------
  21661. INT 15 U - Toshiba laptops - SECURITY LEVEL CHECK
  21662. AX = 44F2h
  21663. BX = 0604h ???
  21664. Return: CF = ???
  21665. AH = ???
  21666. DX = ???
  21667. Note: used by Toshiba BIOS setup utility TSETUP.EXE to distinguish
  21668. between USER and SUPERVISOR security level
  21669. SeeAlso: AX=44F1h,AX=44F3h
  21670. --------B-1544F3-----------------------------
  21671. INT 15 U - Toshiba laptops - SECURITY LEVEL CHECK
  21672. AX = 44F3h
  21673. DS:DX -> byte with 00h or 01h ???
  21674. Return: DS:DX -> changed ???
  21675. Note: used by Toshiba BIOS setup utility TSETUP.EXE to distinguish
  21676. between USER and SUPERVISOR security level
  21677. SeeAlso: AX=44F1h,AX=44F2h
  21678. --------b-1545-------------------------------
  21679. INT 15 U - HP 100LX/200LX - SET DISPLAY CONTROL STATUS
  21680. AH = 45h
  21681. AL = new display control status
  21682. bit 0: DISPCTL flag +C instead of -C
  21683. bit 1: DISPCTL flag +K instead of -K
  21684. SeeAlso: AH=46h"HP",AH=47h"HP"
  21685. --------b-1546-------------------------------
  21686. INT 15 U - HP 100LX/200LX - SET POWER OFF TIMEOUT
  21687. AH = 46h
  21688. BX = timeout value in ticks
  21689. 0000h inhibit auto power off
  21690. Note: the 200LX default timeout is 0CCDh = 3277 ticks = approx. 3 min.
  21691. SeeAlso: AH=45h"HP",AH=47h"HP"
  21692. --------b-154600-----------------------------
  21693. INT 15 - Compaq SLT/286 - READ POWER CONSERVATION/MODEM CONFIGURATION
  21694. AX = 4600h
  21695. Return: AH = modem configuration information (see #00468)
  21696. AL = power conservation status information (see #00469)
  21697. BH = default system inactivity timeout (1-21 minutes)
  21698. BL = current system inactivity timeout (1-21 minutes)
  21699. CH = default video display inactivity timeout (1-63 minutes)
  21700. CL = current video display inactivity timeout (1-63 minutes)
  21701. DH = default fixed disk drive inactivity timeout (1-21 minutes)
  21702. DL = current fixed disk drive inactivity timeout (1-21 minutes)
  21703. SeeAlso: AX=4280h,AX=4601h,INT 77
  21704. Bitfields for Compaq SLT/286 modem configuration information:
  21705. Bit(s) Description (Table 00468)
  21706. 0 powerup state (0 off, 1 on)
  21707. 1 modem installed
  21708. 2 IRQ line assignment (0 IRQ 4, 1 IRQ 3)
  21709. 3 COM port assignment (0 = COM 2, 1 = COM 1)
  21710. 4 modem state (0 not assigned, 1 assigned)
  21711. 5 modem is on
  21712. Bitfields for Compaq SLT/286 power conservation status:
  21713. Bit(s) Description (Table 00469)
  21714. 0 power source (0 internal, 1 external)
  21715. 1-2 low battery state
  21716. 00 no low battery condition
  21717. 01 low battery 1
  21718. 10 reserved
  21719. 11 low battery 2
  21720. 3-4 power conservation mode
  21721. 00 automatic, 01 on, 10 off, 11 reserved
  21722. --------b-154601-----------------------------
  21723. INT 15 - Compaq SLT/286 - MODIFY POWER CONSERVATION/MODEM CONFIGURATION
  21724. AX = 4601h
  21725. BL = system inactivity timeout (1-21 minutes)
  21726. FFh do not change
  21727. CL = video display inactivity timeout (1-63 minutes)
  21728. FFh do not change
  21729. DL = current fixed disk drive inactivity timeout (1-21 minutes)
  21730. FFh do not change
  21731. DH = new modem state (00h turn off, 01h turn on, FFh don't change)
  21732. Return: CF clear if successful
  21733. AH = 00h
  21734. BL = current system inactivity timeout (1-21 minutes)
  21735. CL = current video display inactivity timeout (1-63 minutes)
  21736. DL = current fixed disk drive inactivity timeout (1-21 minutes)
  21737. DH = modem state (FFh unchanged, 00h turned off, 01h turned on)
  21738. CF set on error
  21739. AH = error code
  21740. 01h input is out of range
  21741. 02h no modem present
  21742. SeeAlso: AX=4600h,INT 77
  21743. --------b-154604-----------------------------
  21744. INT 15 - Compaq Contura 486 and "Alladin" 08/05/93 ROMs - GET ???
  21745. AX = 4604h
  21746. Return: CF clear if successful
  21747. AL = byte read from I/O port 03F8h
  21748. CF set on error (not supported)
  21749. AH = 86h (unsupported function)
  21750. Note: also supported by 7/26/93 LTE Lite 386 ROM
  21751. --------b-154605-----------------------------
  21752. INT 15 - Compaq Contura 486 and "Alladin" 08/05/93 ROMs - ???
  21753. AX = 4605h
  21754. Return: CF clear if successful
  21755. CF set on error (not supported)
  21756. AH = 86h (unsupported function)
  21757. Note: this function is a NOP (other than clearing CF) in the 08/05/93 version
  21758. of the Contura 486/486c/486cx and "Aladdin" ROM, and the 7/26/93
  21759. LTE Lite 386 ROM
  21760. --------b-1547-------------------------------
  21761. INT 15 U - HP 100LX/200LX - GET/SET DISPLAY CONTRAST
  21762. AH = 47h
  21763. AL = subfunction
  21764. 00h set contrast
  21765. BL = new contrast
  21766. (00h-0Fh, 0Fh is darkest, 10h-FFh are same as 0Fh)
  21767. other get current contrast
  21768. Return: AL = contrast (00h-0Fh, 0Fh is darkest)
  21769. Note: may be for backward compatibility with HP95LX, as INT 15/AH=62h does
  21770. substantially the same thing as this function
  21771. SeeAlso: AH=45h"HP",AH=48h"HP",AH=62h"HP"
  21772. --------b-1548-------------------------------
  21773. INT 15 U - HP 100LX/200LX - SET BUZZER VOLUME
  21774. AH = 48h
  21775. AL = volume (00h-03h; 03h is loudest, 04h-FFh are same as 03h)
  21776. SeeAlso: AH=47h"HP"
  21777. --------S-1549-------------------------------
  21778. INT 15 U - HP 100LX/200LX - SERIAL INTERFACE SELECT
  21779. AH = 49h
  21780. AL = serial interface
  21781. 00h wired (COM1)
  21782. 01h infrared
  21783. Note: interface should only be changed in deactivated state (see AH=4Ah)
  21784. SeeAlso: AH=4Ah"HP"
  21785. --------J-154900-----------------------------
  21786. INT 15 - Far East MS-DOS - GET BIOS TYPE
  21787. AX = 4900h
  21788. Return: CF clear if successful
  21789. AH = 00h
  21790. BL = BIOS mode
  21791. 00h DOS/V
  21792. 01h standard DBCS DOS (hardware DBCS support)
  21793. CF set on error
  21794. AH = 86h (function not supported)
  21795. Note: in practice, DOS/J returns AH=86h; AX DOS does not support this call
  21796. SeeAlso: AH=50h,INT 21/AH=30h
  21797. --------S-154A-------------------------------
  21798. INT 15 U - HP 100LX/200LX - SERIAL INTERFACE CONTROL
  21799. AH = 4Ah
  21800. AL = control
  21801. 00h deactivate
  21802. 01h activate
  21803. Note: interface selected with AH=49h will be (de)activated
  21804. SeeAlso: AH=49h"HP",AH=4Bh"HP"
  21805. --------b-154B-------------------------------
  21806. INT 15 U - HP 100LX/200LX - ADJUST SYSTEM TIME
  21807. AH = 4Bh
  21808. Desc: adjust system time based on real-time clock
  21809. SeeAlso: AH=4Ah"HP",INT 1A/AH=02h,INT 21/AH=2Ch
  21810. --------b-154DD4-----------------------------
  21811. INT 15 - HP 95LX/100LX/200LX - INSTALLATION CHECK
  21812. AX = 4DD4h
  21813. Return: BX = 4850h ("HP") if HP 95LX/100LX/200LX
  21814. CX = model
  21815. 0101h HP 95LX
  21816. 0102h HP 100LX/200LX
  21817. DH = ???
  21818. 02h HP 200LX 2MB BIOS 1.01 A D german
  21819. DL = ???
  21820. 00h HP 95LX
  21821. 01h HP 200LX 2MB BIOS 1.01 A D german
  21822. SeeAlso: INT 0B"HP 95LX",INT 0F"HP 95LX",INT 5F/AH=00h,INT 60/DI=0100h
  21823. SeeAlso: INT 61"HP 95LX"
  21824. --------b-154E-------------------------------
  21825. INT 15 - HP 95LX - ENABLE/DISABLE LIGHT SLEEP
  21826. AH = 4Eh
  21827. AL = light sleep
  21828. 00h disabled
  21829. 01h enabled
  21830. Note: when light sleep is disabled, the system will continue running at full
  21831. speed; when enabled, it may automatically slow to conserve batteries
  21832. SeeAlso: INT 06"HP 95LX",INT 60/DI=0100h
  21833. ----------154E-------------------------------
  21834. INT 15 - IBM SurePath BIOS - Officially "Private" Function
  21835. AH = 4Eh
  21836. SeeAlso: AH=07h"IBM",AH=3Eh"IBM"
  21837. --------B-154F-------------------------------
  21838. INT 15 C - KEYBOARD - KEYBOARD INTERCEPT (AT model 3x9,XT2,XT286,CONV,PS)
  21839. AH = 4Fh
  21840. AL = hardware scan code (see #00006)
  21841. CF set
  21842. Return: CF set to continue processing scan code
  21843. AL = possibly-altered hardware scan code (see #00006)
  21844. CF clear
  21845. scan code should be ignored
  21846. Notes: called by INT 09 handler to translate scan codes; the INT 09 code does
  21847. not examine the scan code it reads from the keyboard until after
  21848. this function returns. This permits software to rearrange the
  21849. keyboard; for example, swapping the CapsLock and Control keys, or
  21850. turning the right Shift key into Enter.
  21851. DOS 6 KEYB.COM will not pass through this function if Ctrl-Alt-Del is
  21852. pressed and a SmartDrive v4-compatible cache is installed which has
  21853. dirty cache buffers; some other disk caches such as HyperDisk
  21854. operate similarly in order to prevent loss of cached data which has
  21855. not yet been written to disk
  21856. IBM classifies this function as required
  21857. SeeAlso: INT 09,INT 15/AH=C0h
  21858. --------J-1550-------------------------------
  21859. INT 15 - DOS/V - FONT SUBSYSTEM ACCESS
  21860. AH = 50h
  21861. AL = which function address to retrieve
  21862. 00h "read font" function
  21863. 01h "write font" function
  21864. BL = 00h
  21865. BH = character size (00h single-byte, 01h double-byte)
  21866. DH = width of character cell
  21867. DL = height of character cell
  21868. BP = code page (see #00470)
  21869. Return: CF clear if successful
  21870. AH = 00h
  21871. ES:BX -> requested function's address
  21872. CF set on error
  21873. AH = error code (see #00471)
  21874. SeeAlso: AH=49h
  21875. (Table 00470)
  21876. Values for DOS/V code page:
  21877. 0 default
  21878. 437 US English
  21879. 932 Japanese
  21880. 934 Korea
  21881. 936 China
  21882. 938 Taiwan
  21883. SeeAlso: #01757
  21884. (Table 00471)
  21885. Values for DOS/V error code:
  21886. 01h invalid font type in BH
  21887. 02h BL not zero
  21888. 03h invalid font size
  21889. 04h invalid code page
  21890. 80h unsupported function (PC)
  21891. 86h unsupported function (XT)
  21892. SeeAlso: #01680
  21893. --------T-1550-------------------------------
  21894. INT 15 - VMIX v2.???+ - "sys_vm_page" - SET NEW VIRTUAL PAGE TABLE
  21895. AH = 50h
  21896. BX = segment of page directory table
  21897. CX = page number of page table
  21898. SeeAlso: AH=10h"VMiX",AH=51h"VMiX",AH=52h"VMiX"
  21899. --------T-1551-------------------------------
  21900. INT 15 - VMiX v2.???+ - "sys_vm_func" - EXECUTE FUNCTION IN PROTECTED MODE
  21901. AH = 51h
  21902. STACK: DWORD selector:offset of function
  21903. Return: registers as returned by function
  21904. Note: executes function with privilege level 0 (highest privilege)
  21905. SeeAlso: AH=10h"VMiX",AH=52h"VMiX"
  21906. --------B-155101-----------------------------
  21907. INT 15 - SYSTEM - later PS/2s - EXPANSION UNIT, RETURN CONFIGURATION NUMBER
  21908. AX = 5101h
  21909. Return: CF set if successful
  21910. AH = 00h
  21911. AL = current configuration number
  21912. 00h system unit only
  21913. FFh configuration not recognized
  21914. BX = status flag
  21915. bits 0-14: reserved
  21916. bit 15: additional data is available (location TBD)
  21917. CF clear on error
  21918. AH = status
  21919. 01h expansion unit is not present
  21920. 86h function not supported
  21921. Note: CF convention is the reverse of the standard convention for this
  21922. interrupt. (Perhaps a typo in the IBM BIOS Tech Ref?)
  21923. --------T-1552-------------------------------
  21924. INT 15 - VMiX v2.???+ - "sys_vm_init" - INITIALIZE PROTECTED-MODE ENVIRONMENT
  21925. AH = 52h
  21926. SeeAlso: AH=50h"VMiX",AH=51h"VMiX"
  21927. --------d-1552-------------------------------
  21928. INT 15 C - IBM/MS INT 13 Extensions - MEDIA EJECT INTERCEPT
  21929. AH = 52h
  21930. DL = drive number
  21931. Return: CF clear if OK to eject media
  21932. AH = 00h
  21933. CF set if ejection disallowed
  21934. AH = error code (B1h,B3h) (see #00234)
  21935. Note: called by the IBM/MS INT 13 Extensions driver/BIOS when an ejection
  21936. request is made
  21937. SeeAlso: INT 13/AH=46h"INT 13 Extensions"
  21938. --------p-155300-----------------------------
  21939. INT 15 - Advanced Power Management v1.0+ - INSTALLATION CHECK
  21940. AX = 5300h
  21941. BX = device ID of system BIOS (0000h)
  21942. Return: CF clear if successful
  21943. AH = major version (BCD)
  21944. AL = minor version (BCD)
  21945. BX = 504Dh ("PM")
  21946. CX = flags (see #00472)
  21947. CF set on error
  21948. AH = error code (06h,09h,86h) (see #00473)
  21949. BUG: early versions of the Award Modular BIOS with built-in APM support
  21950. reportedly do not set BX on return
  21951. Bitfields for APM flags:
  21952. Bit(s) Description (Table 00472)
  21953. 0 16-bit protected mode interface supported
  21954. 1 32-bit protected mode interface supported
  21955. 2 CPU idle call reduces processor speed
  21956. 3 BIOS power management disabled
  21957. 4 BIOS power management disengaged (APM v1.1)
  21958. 5-7 reserved
  21959. (Table 00473)
  21960. Values for APM error code:
  21961. 01h power management functionality disabled
  21962. 02h interface connection already in effect
  21963. 03h interface not connected
  21964. 04h real-mode interface not connected
  21965. 05h 16-bit protected-mode interface already connected
  21966. 06h 16-bit protected-mode interface not supported
  21967. 07h 32-bit protected-mode interface already connected
  21968. 08h 32-bit protected-mode interface not supported
  21969. 09h unrecognized device ID
  21970. 0Ah invalid parameter value in CX
  21971. 0Bh (APM v1.1) interface not engaged
  21972. 0Ch (APM v1.2) function not supported
  21973. 0Dh (APM v1.2) Resume Timer disabled
  21974. 0Eh-1Fh reserved for other interface and general errors
  21975. 20h-3Fh reserved for CPU errors
  21976. 40h-5Fh reserved for device errors
  21977. 60h can't enter requested state
  21978. 61h-7Fh reserved for other system errors
  21979. 80h no power management events pending
  21980. 81h-85h reserved for other power management event errors
  21981. 86h APM not present
  21982. 87h-9Fh reserved for other power management event errors
  21983. A0h-FEh reserved
  21984. FFh undefined
  21985. --------p-155301-----------------------------
  21986. INT 15 - Advanced Power Management v1.0+ - CONNECT REAL-MODE INTERFACE
  21987. AX = 5301h
  21988. BX = device ID of system BIOS (0000h)
  21989. Return: CF clear if successful
  21990. CF set on error
  21991. AH = error code (02h,05h,07h,09h) (see #00473)
  21992. Note: on connection, an APM v1.1 or v1.2 BIOS switches to APM v1.0
  21993. compatibility mode until it is informed that the user supports a
  21994. newer version of APM (see AX=530Eh)
  21995. SeeAlso: AX=5302h,AX=5303h,AX=5304h
  21996. --------p-155302-----------------------------
  21997. INT 15 R - Advanced Power Management v1.0+ - CONNECT 16-BIT PROTMODE INTERFACE
  21998. AX = 5302h
  21999. BX = device ID of system BIOS (0000h)
  22000. Return: CF clear if successful
  22001. AX = real-mode segment base address of protected-mode 16-bit code
  22002. segment
  22003. BX = offset of entry point
  22004. CX = real-mode segment base address of protected-mode 16-bit data
  22005. segment
  22006. ---APM v1.1---
  22007. SI = APM BIOS code segment length
  22008. DI = APM BIOS data segment length
  22009. CF set on error
  22010. AH = error code (02h,05h,06h,07h,09h) (see #00473)
  22011. Notes: the caller must initialize two consecutive descriptors with the
  22012. returned segment base addresses; these descriptors must be valid
  22013. whenever the protected-mode interface is called, and will have
  22014. their limits arbitrarily set to 64K.
  22015. the protected mode interface is invoked by making a far call with the
  22016. same register values as for INT 15; it must be invoked while CPL=0,
  22017. the code segment descriptor must have a DPL of 0, the stack must be
  22018. in a 16-bit segment and have enough room for BIOS use and possible
  22019. interrupts, and the current I/O permission bit map must allow access
  22020. to the I/O ports used for power management.
  22021. functions 00h-03h are not available from protected mode
  22022. on connection, an APM v1.1 or v1.2 BIOS switches to APM v1.0
  22023. compatibility mode until it is informed that the user supports a
  22024. newer version of APM (see AX=530Eh)
  22025. SeeAlso: AX=5301h,AX=5303h,AX=5304h
  22026. --------p-155303-----------------------------
  22027. INT 15 - Advanced Power Management v1.0+ - CONNECT 32-BIT PROTMODE INTERFACE
  22028. AX = 5303h
  22029. BX = device ID of system BIOS (0000h)
  22030. Return: CF clear if successful
  22031. AX = real-mode segment base address of protected-mode 32-bit code
  22032. segment
  22033. EBX = offset of entry point
  22034. CX = real-mode segment base address of protected-mode 16-bit code
  22035. segment
  22036. DX = real-mode segment base address of protected-mode 16-bit data
  22037. segment
  22038. ---APM v1.1---
  22039. SI = APM BIOS code segment length
  22040. DI = APM BIOS data segment length
  22041. CF set on error
  22042. AH = error code (02h,05h,07h,08h,09h) (see #00473)
  22043. Notes: the caller must initialize three consecutive descriptors with the
  22044. returned segment base addresses for 32-bit code, 16-bit code, and
  22045. 16-bit data, respectively; these descriptors must be valid whenever
  22046. the protected-mode interface is called, and will have their limits
  22047. arbitrarily set to 64K.
  22048. the protected mode interface is invoked by making a far call to the
  22049. 32-bit code segment with the same register values as for INT 15; it
  22050. must be invoked while CPL=0, the code segment descriptor must have a
  22051. DPL of 0, the stack must be in a 32-bit segment and have enough room
  22052. for BIOS use and possible interrupts, and the current I/O permission
  22053. bit map must allow access to the I/O ports used for power management.
  22054. functions 00h-03h are not available from protected mode
  22055. on connection, an APM v1.1 or v1.2 BIOS switches to APM v1.0
  22056. compatibility mode until it is informed that the user supports a
  22057. newer version of APM (see AX=530Eh)
  22058. SeeAlso: AX=5301h,AX=5302h,AX=5304h
  22059. --------p-155304-----------------------------
  22060. INT 15 - Advanced Power Management v1.0+ - DISCONNECT INTERFACE
  22061. AX = 5304h
  22062. BX = device ID of system BIOS (0000h)
  22063. Return: CF clear if successful
  22064. CF set on error
  22065. AH = error code (03h,09h) (see #00473)
  22066. SeeAlso: AX=5301h,AX=5302h,AX=5303h
  22067. --------p-155305-----------------------------
  22068. INT 15 - Advanced Power Management v1.0+ - CPU IDLE
  22069. AX = 5305h
  22070. Return: CF clear if successful (after system leaves idle state)
  22071. CF set on error
  22072. AH = error code (03h,0Bh) (see #00473)
  22073. Notes: call when the system is idle and should be suspended until the next
  22074. system event or interrupt
  22075. should not be called from within a hardware interrupt handler to avoid
  22076. reentrance problems
  22077. if an interrupt causes the system to resume normal processing, the
  22078. interrupt may or may not have been handled when the BIOS returns
  22079. from this call; thus, the caller should allow interrupts on return
  22080. interrupt handlers may not retain control if the BIOS allows
  22081. interrupts while in idle mode even if they are able to determine
  22082. that they were called from idle mode
  22083. the caller should issue this call continuously in a loop until it needs
  22084. to perform some processing of its own
  22085. SeeAlso: AX=1000h,AX=5306h,INT 2F/AX=1680h
  22086. --------p-155306-----------------------------
  22087. INT 15 - Advanced Power Management v1.0+ - CPU BUSY
  22088. AX = 5306h
  22089. Return: CF clear if successful
  22090. CF set on error
  22091. AH = error code (03h,0Bh) (see #00473)
  22092. Notes: called to ensure that the system runs at full speed even on systems
  22093. where the BIOS is unable to recognize increased activity (especially
  22094. if interrupts are hooked by other programs and not chained to the
  22095. BIOS)
  22096. this call may be made even when the system is already running at full
  22097. speed, but it will create unnecessary overhead
  22098. should not be called from within a hardware interrupt handler to avoid
  22099. reentrance problems
  22100. SeeAlso: AX=5305h
  22101. --------p-155307-----------------------------
  22102. INT 15 - Advanced Power Management v1.0+ - SET POWER STATE
  22103. AX = 5307h
  22104. BX = device ID (see #00474)
  22105. CX = system state ID (see #00475)
  22106. Return: CF clear if successful
  22107. CF set on error
  22108. AH = error code (01h,03h,09h,0Ah,0Bh,60h) (see #00473)
  22109. Note: should not be called from within a hardware interrupt handler to avoid
  22110. reentrance problems
  22111. SeeAlso: AX=530Ch
  22112. (Table 00474)
  22113. Values for APM device IDs:
  22114. 0000h system BIOS
  22115. 0001h all devices for which the system BIOS manages power
  22116. 01xxh display (01FFh for all attached display devices)
  22117. 02xxh secondary storage (02FFh for all attached secondary storage devices)
  22118. 03xxh parallel ports (03FFh for all attached parallel ports)
  22119. 04xxh serial ports (04FFh for all attached serial ports)
  22120. ---APM v1.1+ ---
  22121. 05xxh network adapters (05FFh for all attached network adapters)
  22122. 06xxh PCMCIA sockets (06FFh for all)
  22123. 0700h-7FFFh reserved
  22124. 80xxh system battery devices (APM v1.2)
  22125. 8100h-DFFFh reserved
  22126. Exxxh OEM-defined power device IDs
  22127. F000h-FFFFh reserved
  22128. (Table 00475)
  22129. Values for system state ID:
  22130. 0000h ready (not supported for device ID 0001h)
  22131. 0001h stand-by
  22132. 0002h suspend
  22133. 0003h off (not supported for device ID 0001h in APM v1.0)
  22134. ---APM v1.1---
  22135. 0004h last request processing notification (only for device ID 0001h)
  22136. 0005h last request rejected (only for device ID 0001h)
  22137. 0006h-001Fh reserved system states
  22138. 0020h-003Fh OEM-defined system states
  22139. 0040h-007Fh OEM-defined device states
  22140. 0080h-FFFFh reserved device states
  22141. --------p-155307CX0001-----------------------
  22142. INT 15 - Advanced Power Management v1.0+ - SYSTEM STAND-BY
  22143. AX = 5307h
  22144. CX = 0001h
  22145. BX = 0001h (device ID for all power-managed devices)
  22146. Return: CF clear
  22147. Notes: puts the entire system into stand-by mode; normally called in response
  22148. to a System Stand-by Request notification after any necessary
  22149. processing, but may also be invoked at the caller's discretion
  22150. should not be called from within a hardware interrupt handler to avoid
  22151. reentrance problems
  22152. the stand-by state is typically exited on an interrupt
  22153. SeeAlso: AX=4280h,AX=5307h/CX=0002h"SUSPEND",AX=5307h/CX=0003h,AX=530Bh
  22154. --------p-155307CX0002-----------------------
  22155. INT 15 - Advanced Power Management v1.0+ - SUSPEND SYSTEM
  22156. AX = 5307h
  22157. CX = 0002h
  22158. BX = 0001h (device ID for all power-managed devices)
  22159. Return: after system is resumed
  22160. CF clear
  22161. Notes: puts the entire system into a low-power suspended state; normally
  22162. called in response to a Suspend System Request notification after
  22163. any necessary processing, but may also be invoked at the caller's
  22164. discretion
  22165. should not be called from within a hardware interrupt handler to avoid
  22166. reentrance problems
  22167. the caller may need to update its date and time values because the
  22168. system could have been suspended for a long period of time
  22169. SeeAlso: AX=5307h/CX=0001h"STAND-BY",AX=530Bh
  22170. --------p-155307CX0003-----------------------
  22171. INT 15 - Advanced Power Management v1.2 - TURN OFF SYSTEM
  22172. AX = 5307h
  22173. CX = 0003h
  22174. BX = 0001h (device ID for all power-managed devices)
  22175. Return: after system is resumed
  22176. CF clear
  22177. Notes: if supported by the system's power supply, turns off the system power
  22178. SeeAlso: AX=5307h/CX=0001h"STAND-BY",AX=530Bh
  22179. --------p-155308-----------------------------
  22180. INT 15 - Advanced Power Management v1.0+ - ENABLE/DISABLE POWER MANAGEMENT
  22181. AX = 5308h
  22182. BX = device ID for all devices power-managed by APM
  22183. 0001h (APM v1.1+)
  22184. FFFFh (APM v1.0)
  22185. CX = new state
  22186. 0000h disabled
  22187. 0001h enabled
  22188. Return: CF clear if successful
  22189. CF set on error
  22190. AH = error code (01h,03h,09h,0Ah,0Bh) (see #00473)
  22191. Notes: when power management is disabled, the system BIOS will not
  22192. automatically power down devices, enter stand-by or suspended mode,
  22193. or perform any power-saving actions in response to AX=5305h calls
  22194. should not be called from within a hardware interrupt handler to avoid
  22195. reentrance problems
  22196. the APM BIOS should never be both disabled and disengaged at the same
  22197. time
  22198. SeeAlso: AX=5309h,AX=530Dh,AX=530Fh
  22199. --------p-155309-----------------------------
  22200. INT 15 - Advanced Power Management v1.0+ - RESTORE POWER-ON DEFAULTS
  22201. AX = 5309h
  22202. BX = device ID for all devices power-managed by APM
  22203. 0001h (APM v1.1)
  22204. FFFFh (APM v1.0)
  22205. Return: CF clear if successful
  22206. CF set on error
  22207. AH = error code (03h,09h,0Bh) (see #00473)
  22208. Note: should not be called from within a hardware interrupt handler to avoid
  22209. reentrance problems
  22210. SeeAlso: AX=5308h
  22211. --------p-15530A-----------------------------
  22212. INT 15 - Advanced Power Management v1.0+ - GET POWER STATUS
  22213. AX = 530Ah
  22214. BX = device ID
  22215. 0001h all devices power-managed by APM
  22216. 80xxh specific battery unit number XXh (01h-FFh) (APM v1.2)
  22217. Return: CF clear if successful
  22218. BH = AC line status
  22219. 00h off-line
  22220. 01h on-line
  22221. 02h on backup power (APM v1.1)
  22222. FFh unknown
  22223. other reserved
  22224. BL = battery status (see #00476)
  22225. CH = battery flag (APM v1.1+) (see #00477)
  22226. CL = remaining battery life, percentage
  22227. 00h-64h (0-100) percentage of full charge
  22228. FFh unknown
  22229. DX = remaining battery life, time (APM v1.1) (see #00478)
  22230. ---if specific battery unit specified---
  22231. SI = number of battery units currently installed
  22232. CF set on error
  22233. AH = error code (09h,0Ah) (see #00473)
  22234. Notes: should not be called from within a hardware interrupt handler to avoid
  22235. reentrance problems
  22236. supported in real mode (INT 15) and both 16-bit and 32-bit protected
  22237. mode
  22238. (Table 00476)
  22239. Values for APM v1.0+ battery status:
  22240. 00h high
  22241. 01h low
  22242. 02h critical
  22243. 03h charging
  22244. FFh unknown
  22245. other reserved
  22246. SeeAlso: #00477,#00478
  22247. Bitfields for APM v1.1+ battery flag:
  22248. Bit(s) Description (Table 00477)
  22249. 0 high
  22250. 1 low
  22251. 2 critical
  22252. 3 charging
  22253. 4 selected battery not present (APM v1.2)
  22254. 5-6 reserved (0)
  22255. 7 no system battery
  22256. Note: all bits set (FFh) if unknown
  22257. SeeAlso: #00476,#00478
  22258. Bitfields for APM v1.1+ remaining battery life:
  22259. Bit(s) Description (Table 00478)
  22260. 15 time units: 0=seconds, 1=minutes
  22261. 14-0 battery life in minutes or seconds
  22262. Note: all bits set (FFFFh) if unknown
  22263. SeeAlso: #00476,#00477
  22264. --------p-15530B-----------------------------
  22265. INT 15 - Advanced Power Management v1.0+ - GET POWER MANAGEMENT EVENT
  22266. AX = 530Bh
  22267. Return: CF clear if successful
  22268. BX = event code (see #00479)
  22269. CX = event information (APM v1.2) if BX=0003h or BX=0004h
  22270. bit 0: PCMCIA socket was powered down in suspend state
  22271. CF set on error
  22272. AH = error code (03h,0Bh,80h) (see #00473)
  22273. Notes: although power management events are often asynchronous, notification
  22274. will not be made until polled via this call to permit software to
  22275. only receive event notification when it is prepared to process
  22276. power management events; since these events are not very time-
  22277. critical, it should be sufficient to poll once or twice per second
  22278. the critical resume notification is made after the system resumes
  22279. from an emergency suspension; normally, the system BIOS only notifies
  22280. its partner that it wishes to suspend and relies on the partner to
  22281. actually request the suspension, but no notification is made on an
  22282. emergency suspension
  22283. should not be called from within a hardware interrupt handler to avoid
  22284. reentrance problems
  22285. SeeAlso: AX=5307h,AX=5307h/CX=0001h"STAND-BY",AX=5307h/CX=0002h"SUSPEND"
  22286. (Table 00479)
  22287. Values for APM event code:
  22288. 0001h system stand-by request
  22289. 0002h system suspend request
  22290. 0003h normal resume system notification
  22291. 0004h critical resume system notification
  22292. 0005h battery low notification
  22293. ---APM v1.1---
  22294. 0006h power status change notification
  22295. 0007h update time notification
  22296. 0008h critical system suspend notification
  22297. 0009h user system standby request notification
  22298. 000Ah user system suspend request notification
  22299. 000Bh system standby resume notification
  22300. ---APM v1.2---
  22301. 000Ch capabilities change notification (see AX=5310h)
  22302. ------
  22303. 000Dh-00FFh reserved system events
  22304. 01xxh reserved device events
  22305. 02xxh OEM-defined APM events
  22306. 0300h-FFFFh reserved
  22307. --------p-15530C-----------------------------
  22308. INT 15 - Advanced Power Management v1.1+ - GET POWER STATE
  22309. AX = 530Ch
  22310. BX = device ID (see #00474)
  22311. Return: CF clear if successful
  22312. CX = system state ID (see #00475)
  22313. CF set on error
  22314. AH = error code (01h,09h) (see #00473)
  22315. SeeAlso: AX=5307h
  22316. --------p-15530D-----------------------------
  22317. INT 15 - Advanced Power Management v1.1+ - EN/DISABLE DEVICE POWER MANAGEMENT
  22318. AX = 530Dh
  22319. BX = device ID (see #00474)
  22320. CX = function
  22321. 0000h disable power management
  22322. 0001h enable power management
  22323. Return: CF clear if successful
  22324. CF set on error
  22325. AH = error code (01h,03h,09h,0Ah,0Bh) (see #00473)
  22326. Desc: specify whether automatic power management should be active for a
  22327. given device
  22328. SeeAlso: AX=5308h,AX=530Fh
  22329. --------p-15530E-----------------------------
  22330. INT 15 - Advanced Power Management v1.1+ - DRIVER VERSION
  22331. AX = 530Eh
  22332. BX = device ID of system BIOS (0000h)
  22333. CH = APM driver major version (BCD)
  22334. CL = APM driver minor version (BCD) (02h for APM v1.2)
  22335. Return: CF clear if successful
  22336. AH = APM connection major version (BCD)
  22337. AL = APM connection minor version (BCD)
  22338. CF set on error
  22339. AH = error code (03h,09h,0Bh) (see #00473)
  22340. SeeAlso: AX=5300h,AX=5303h
  22341. --------p-15530F-----------------------------
  22342. INT 15 - Advanced Power Management v1.1+ - ENGAGE/DISENGAGE POWER MANAGEMENT
  22343. AX = 530Fh
  22344. BX = device ID (see #00474)
  22345. CX = function
  22346. 0000h disengage power management
  22347. 0001h engage power management
  22348. Return: CF clear if successful
  22349. CF set on error
  22350. AH = error code (01h,09h) (see #00473)
  22351. Notes: unlike AX=5308h, this call does not affect the functioning of the APM
  22352. BIOS
  22353. when cooperative power management is disengaged, the APM BIOS performs
  22354. automatic power management of the system or device
  22355. SeeAlso: AX=5308h,AX=530Dh
  22356. --------p-155310-----------------------------
  22357. INT 15 - Advanced Power Management v1.2 - GET CAPABILITIES
  22358. AX = 5310h
  22359. BX = device ID (see #00474)
  22360. 0000h (APM BIOS)
  22361. other reserved
  22362. Return: CF clear if successful
  22363. BL = number of battery units supported (00h if no system batteries)
  22364. CX = capabilities flags (see #00480)
  22365. CF set on error
  22366. AH = error code (01h,09h,86h) (see #00473)
  22367. Notes: this function is supported via the INT 15, 16-bit protected mode, and
  22368. 32-bit protected mode interfaces; it does not require that a
  22369. connection be established prior to use
  22370. this function will return the capabilities currently in effect, not
  22371. any new settings which have been made but do not take effect until
  22372. a system restart
  22373. SeeAlso: AX=5300h,AX=530Fh,AX=5311h,AX=5312h,AX=5313h
  22374. Bitfields for APM v1.2 capabilities flags:
  22375. Bit(s) Description (Table 00480)
  22376. 15-8 reserved
  22377. 7 PCMCIA Ring Indicator will wake up system from suspend mode
  22378. 6 PCMCIA Ring Indicator will wake up system from standby mode
  22379. 5 Resume on Ring Indicator will wake up system from suspend mode
  22380. 4 Resume on Ring Indicator will wake up system from standby mode
  22381. 3 resume timer will wake up system from suspend mode
  22382. 2 resume timer will wake up system from standby mode
  22383. 1 can enter global suspend state
  22384. 0 can enter global standby state
  22385. --------p-155311-----------------------------
  22386. INT 15 - Advanced Power Management v1.2 - GET/SET/DISABLE RESUME TIMER
  22387. AX = 5311h
  22388. BX = device ID (see #00474)
  22389. 0000h (APM BIOS)
  22390. other reserved
  22391. CL = function
  22392. 00h disable Resume Timer
  22393. 01h get Resume Timer
  22394. 02h set Resume Timer
  22395. CH = resume time, seconds (BCD)
  22396. DL = resume time, minutes (BCD)
  22397. DH = resume time, hours (BCD)
  22398. SI = resume date (BCD), high byte = month, low byte = day
  22399. DI = resume date, year (BCD)
  22400. Return: CF clear if successful
  22401. ---if getting timer---
  22402. CH = resume time, seconds (BCD)
  22403. DL = resume time, minutes (BCD)
  22404. DH = resume time, hours (BCD)
  22405. SI = resume date (BCD), high byte = month, low byte = day
  22406. DI = resume date, year (BCD)
  22407. CF set on error
  22408. AH = error code (03h,09h,0Ah,0Bh,0Ch,0Dh,86h) (see #00473)
  22409. Notes: this function is supported via the INT 15, 16-bit protected mode, and
  22410. 32-bit protected mode interfaces
  22411. SeeAlso: AX=5300h,AX=5310h,AX=5312h,AX=5313h
  22412. --------p-155312-----------------------------
  22413. INT 15 - Advanced Power Management v1.2 - ENABLE/DISABLE RESUME ON RING
  22414. AX = 5312h
  22415. BX = device ID (see #00474)
  22416. 0000h (APM BIOS)
  22417. other reserved
  22418. CL = function
  22419. 00h disable Resume on Ring Indicator
  22420. 01h enable Resume on Ring Indicator
  22421. 02h get Resume on Ring Indicator status
  22422. Return: CF clear if successful
  22423. CX = resume status (0000h disabled, 0001h enabled)
  22424. CF set on error
  22425. AH = error code (03h,09h,0Ah,0Bh,0Ch,86h) (see #00473)
  22426. Notes: this function is supported via the INT 15, 16-bit protected mode, and
  22427. 32-bit protected mode interfaces
  22428. SeeAlso: AX=5300h,AX=5310h,AX=5311h,AX=5313h
  22429. --------p-155313-----------------------------
  22430. INT 15 - Advanced Power Management v1.2 - ENABLE/DISABLE TIMER-BASED REQUESTS
  22431. AX = 5313h
  22432. BX = device ID (see #00474)
  22433. 0000h (APM BIOS)
  22434. other reserved
  22435. CL = function
  22436. 00h disable timer-based requests
  22437. 01h enable timer-based requests
  22438. 02h get timer-based requests status
  22439. Return: CF clear if successful
  22440. CX = timer-based requests status (0000h disabled, 0001h enabled)
  22441. CF set on error
  22442. AH = error code (03h,09h,0Ah,0Bh,86h) (see #00473)
  22443. Notes: this function is supported via the INT 15, 16-bit protected mode, and
  22444. 32-bit protected mode interfaces
  22445. some BIOSes set AH on return even when successful
  22446. SeeAlso: AX=5300h,AX=5310h,AX=5311h,AX=5312h
  22447. --------p-155380BH00-------------------------
  22448. INT 15 - APM SL Enhanced v1.0 - GET SUSPEND/GLOBAL STANDBY MODE
  22449. AX = 5380h
  22450. BH = 00h
  22451. Return: CF clear if successful
  22452. AL = 82360SL Auto Power Off Timer High Count (APWR_TMRH)
  22453. BL = sustdbymode (see #00481)
  22454. SeeAlso: AX=5380h/BH=01h,AX=5380h/BH=02h,AX=5380h/BH=7Fh
  22455. Bitfields for APM SL sustdbymode:
  22456. Bit(s) Description (Table 00481)
  22457. 2 ???
  22458. 1 Auto Power Off Timer Enable (APWR_TMR_EN)
  22459. 0 ???
  22460. --------p-155380BH01-------------------------
  22461. INT 15 - APM SL Enhanced v1.0 - SET SUSPEND/GLOBAL STANDBY MODE
  22462. AX = 5380h
  22463. BH = 01h
  22464. BL = sustdbymode (see #00481)
  22465. Return: CF clear if successful
  22466. SeeAlso: AX=5380h/BH=00h,AX=5380h/BH=7Fh
  22467. --------p-155380BH02-------------------------
  22468. INT 15 - APM SL Enhanced v1.0 - GET GLOBAL STANDBY TIMER
  22469. AX = 5380h
  22470. BH = 02h
  22471. Return: CF clear if successful
  22472. SI:DI = timer count in seconds (actually 1.024 seconds)
  22473. Desc: reads the value of 82360SL GSTDBY_TMRH & GSTDBY_TMRL registers
  22474. SeeAlso: AX=5380h/BH=00h,AX=5380h/BH=03h,AX=5380h/BH=04h,AX=5380h/BH=7Fh
  22475. --------p-155380BH03-------------------------
  22476. INT 15 - APM SL Enhanced v1.0 - SET GLOBAL STANDBY TIMER
  22477. AX = 5380h
  22478. BH = 03h
  22479. SI:DI = timer count in seconds (actually 1.024 seconds)
  22480. Return: CF clear if successful
  22481. Desc: sets the value of 82360SL GSTDBY_TMRH & GSTDBY_TMRL registers
  22482. Note: the maximum timer count is 268431 seconds
  22483. SeeAlso: AX=5380h/BH=02h,AX=5380h/BH=7Fh
  22484. --------p-155380BH04-------------------------
  22485. INT 15 - APM SL Enhanced v1.0 - GET AUTO POWER OFF TIMER
  22486. AX = 5380h
  22487. BH = 04h
  22488. Return: CF clear if successful
  22489. SI:DI = timer count in seconds (actually 1.024 seconds)
  22490. Desc: reads the value of 82360SL APWR_TMRH & APWR_TMRL registers
  22491. SeeAlso: AX=5380h/BH=02h,AX=5380h/BH=05h,AX=5380h/BH=06h,AX=5380h/BH=7Fh
  22492. --------p-155380BH05-------------------------
  22493. INT 15 - APM SL Enhanced v1.0 - SET AUTO POWER OFF TIMER
  22494. AX = 5380h
  22495. BH = 05h
  22496. SI:DI = timer count in seconds (actually 1.024 seconds)
  22497. Return: CF clear if successful
  22498. Desc: sets the value of 82360SL APWR_TMRH & APWR_TMRL registers
  22499. Note: the maximum timer count is 134213 seconds
  22500. SeeAlso: AX=5380h/BH=04h,AX=5380h/BH=7Fh
  22501. --------p-155380BH06-------------------------
  22502. INT 15 - APM SL Enhanced v1.0 - GET RESUME CONDITION
  22503. AX = 5380h
  22504. BH = 06h
  22505. Return: CF clear if successful
  22506. BL = resume condition (see #00482)
  22507. Desc: reads the value of 82360SL RESUME_MASK register
  22508. SeeAlso: AX=5380h/BH=04h,AX=5380h/BH=07h,AX=5380h/BH=08h,AX=5380h/BH=7Fh
  22509. Bitfields for APM SL resume condition:
  22510. Bit(s) Description (Table 00482)
  22511. 7-2 reserved (0)
  22512. 1 alarm enabled (resume on CMOS alarm)
  22513. 0 ring enabled
  22514. --------p-155380BH07-------------------------
  22515. INT 15 - APM SL Enhanced v1.0 - SET RESUME CONDITION
  22516. AX = 5380h
  22517. BH = 07h
  22518. BL = resume condition (see #00482)
  22519. Return: CF clear if successful
  22520. Desc: sets the value of 82360SL RESUME_MASK register
  22521. SeeAlso: AX=5380h/BH=06h,AX=5380h/BH=7Fh
  22522. --------p-155380BH08-------------------------
  22523. INT 15 - APM SL Enhanced v1.0 - GET CALENDAR EVENT TIME
  22524. AX = 5380h
  22525. BH = 08h
  22526. Return: CF clear if successful
  22527. CH = hours
  22528. CL = minutes
  22529. SI = seconds
  22530. CF set on error
  22531. AH = error code (see #00483)
  22532. Desc: gets calendar event time from CMOS ram
  22533. SeeAlso: AX=5380h/BH=06h,AX=5380h/BH=09h,AX=5380h/BH=0Ah,AX=5380h/BH=7Fh
  22534. (Table 00483)
  22535. Values for APM SL error code:
  22536. 02h no alarm set
  22537. 03h no battery
  22538. --------p-155380BH09-------------------------
  22539. INT 15 - APM SL Enhanced v1.0 - SET CALENDAR EVENT TIME
  22540. AX = 5380h
  22541. BH = 09h
  22542. CH = hours
  22543. CL = minutes
  22544. SI = seconds
  22545. Return: CF clear if successful
  22546. CF set on error
  22547. AH = error code (see #00483)
  22548. Desc: sets calendar event time in CMOS ram, enables Alarm resume
  22549. SeeAlso: AX=5380h/BH=08h,AX=5380h/BH=7Fh
  22550. --------p-155380BH0A-------------------------
  22551. INT 15 - APM SL Enhanced v1.0 - GET CALENDAR EVENT DATE
  22552. AX = 5380h
  22553. BH = 0Ah
  22554. Return: CF clear if successful
  22555. SI = century
  22556. DI = year
  22557. CH = month
  22558. CL = day
  22559. CF set on error
  22560. AH = error code (see #00483)
  22561. Desc: reads calendar event date from Extended CMOS ram
  22562. SeeAlso: AX=5380h/BH=08h,AX=5380h/BH=0Bh,AX=5380h/BH=0Ch,AX=5380h/BH=7Fh
  22563. --------p-155380BH0B-------------------------
  22564. INT 15 - APM SL Enhanced v1.0 - SET CALENDAR EVENT DATE
  22565. AX = 5380h
  22566. BH = 0Bh
  22567. SI = century
  22568. DI = year
  22569. CH = month
  22570. CL = day
  22571. Return: CF clear if successful
  22572. CF set on error
  22573. AH = error code (see #00483)
  22574. Desc: sets calendar event date in Extended CMOS ram
  22575. SeeAlso: AX=5380h/BH=0Ah,AX=5380h/BH=7Fh
  22576. --------p-155380BH0C-------------------------
  22577. INT 15 - APM SL Enhanced v1.0 - GET CPU SPEED MODE
  22578. AX = 5380h
  22579. BH = 0Ch
  22580. Return: CF clear if successful
  22581. CL = CPU clock divider (1,2,4 or 8)
  22582. BL = autocpumode ???
  22583. Desc: reads bits 4-5 of CPUPWRMODE register
  22584. SeeAlso: AX=5380h/BH=0Ah,AX=5380h/BH=0Dh,AX=5380h/BH=7Fh
  22585. --------p-155380BH0D-------------------------
  22586. INT 15 - APM SL Enhanced v1.0 - SET CPU SPEED MODE
  22587. AX = 5380h
  22588. BH = 0Dh
  22589. CL = CPU clock divider (1,2,4 or 8)
  22590. BL = autocpumode ???
  22591. Return: CF clear if successful
  22592. Desc: writes bits 4-5 of CPUPWRMODE register
  22593. SeeAlso: AX=5380h/BH=0Ch,AX=5380h/BH=7Eh,AX=5380h/BH=7Fh
  22594. --------p-155380BH7E-------------------------
  22595. INT 15 - APM SL Enhanced v1.0 - SL HW PARAMETER
  22596. AX = 5380h
  22597. BH = 7Eh
  22598. Return: AL = ???
  22599. 03h on A-Step 386SL BIOSes
  22600. 12h on later steps
  22601. BX = Control port (00B0h)
  22602. SeeAlso: AX=5380h/BH=00h,AX=5380h/BH=7Fh
  22603. --------p-155380BH7F-------------------------
  22604. INT 15 - Advanced Power Management v1.1 - OEM APM INSTALLATION CHECK
  22605. AX = 5380h
  22606. BH = 7Fh
  22607. Return: CF clear if successful
  22608. BX = OEM identifier
  22609. all other registers OEM-defined
  22610. ---Intel SL Enhanced Option BIOS---
  22611. BX = 534Ch ('SL')
  22612. CL = 4Fh ('O')
  22613. AL = version (10h = 1.0)
  22614. ---HP APM BIOS---
  22615. BX = 4850h ('HP')
  22616. CX = version (0001h)
  22617. CF set on error
  22618. AH = error code (03h) (see #00473)
  22619. SeeAlso: AX=5380h/BH=00h
  22620. --------p-155380-----------------------------
  22621. INT 15 - Advanced Power Management v1.1 - OEM APM FUNCTIONS
  22622. AX = 5380h
  22623. BH <> 7Fh
  22624. all other registers OEM-defined
  22625. Return: OEM-defined
  22626. SeeAlso: AX=5380h/BH=7Fh
  22627. --------p-155380BX8000-----------------------
  22628. INT 15 U - Phoenix BIOS 4.0 Rel 6.0 - ???
  22629. AX = 5380h
  22630. BX = 8000h
  22631. CX = 0020h
  22632. Return: ???
  22633. Note: although a check for the indicated value is present in the examined
  22634. copy of the BIOS, no code was associated with it (possibly an OEM
  22635. option not included in that copy) and this function always returns
  22636. CF set/AH=03h if CX=0020h and CF set/AH=86h for CX<>0020h
  22637. SeeAlso: AX=5380h/BX=8001h
  22638. --------p-155380BX8001-----------------------
  22639. INT 15 U - Phoenix BIOS 4.0 Rel 6.0 - ???
  22640. AX = 5380h
  22641. BX = 8001h
  22642. CX = 0020h
  22643. Return: ???
  22644. Note: although a check for the indicated value is present in the examined
  22645. copy of the BIOS, no code was associated with it (possibly an OEM
  22646. option not included in that copy)
  22647. SeeAlso: AX=5380h/BX=8000h
  22648. --------X-1553B0BH00-------------------------
  22649. INT 15 - Intel System Management Bus - RESERVED
  22650. AX = 53B0h
  22651. BH = 00h
  22652. Program: the SMBus is a variant of ACCESS.bus being used by Intel and Duracell
  22653. for the Smart Battery proposal, but designed to be generic enough to
  22654. handle other devices besides batteries
  22655. --------X-1553B0BH01-------------------------
  22656. INT 15 - Intel System Management Bus - INSTALLATION CHECK
  22657. AX = 53B0h
  22658. BH = 01h
  22659. BL = 72h ('r')
  22660. CX = 6164h ('ad')
  22661. Return: CF clear if installed
  22662. AH = SMBus BIOS Interface Specification major version (01h)
  22663. AL = SMBus BIOS Interface Specification minor version (00h)
  22664. BL = number of SMBus devices present
  22665. CX = 6941h ('iA')
  22666. DX = vendor-specified SMBus hardware code
  22667. 0000h means undefined hardware type
  22668. CF set if error
  22669. AH = Error code 0Ah, 86h (see #00484)
  22670. Note: this function is only supported in INT 15h mode
  22671. SeeAlso: AX=53B0h/BH=02h,AX=53B0h/BH=03h,AX=53B0h/BH=04h,AX=53B0h/BH=06h
  22672. SeeAlso: #01105 at INT 1A/AX=B10Ah/SF=8086h
  22673. (Table 00484)
  22674. Values for Intel System Management Bus error codes:
  22675. 00h SMBus OK
  22676. 01h SMBus connect failed
  22677. 02h SMBus already connected (see also #00485)
  22678. 03h SMBus disconnect failed
  22679. 04h SMBus not connected
  22680. 05h SMBus INT 15 interface disabled
  22681. 06h SMBus device address request out of range
  22682. 07h SMBus unknown failure
  22683. 08h SMBus message list empty
  22684. 09h SMBus message list overflow
  22685. 0Ah SMBus invalid signature
  22686. 10h SMBus device address not acknowledged
  22687. 11h SMBus device error detected
  22688. 12h SMBus device command access denied
  22689. 13h SMBus unknown error
  22690. 14h SMBus transaction pending
  22691. 15h SMBus no transaction pending
  22692. 16h SMBus request does not match pending transaction
  22693. 17h SMBus device access denied
  22694. 18h SMBus timeout
  22695. 19h SMBus protocol not supported
  22696. 1Ah SMBus busy
  22697. 1Bh SMBus SMI detected
  22698. 80h SMBus OK (previously unreported SMI occurred)
  22699. 86h SMBus not supported
  22700. (Table 00485)
  22701. Values for Intel System Management Bus Already Connected sub-error codes:
  22702. 01h real mode connect already established
  22703. 02h 16-bit PMode connect already established
  22704. 03h 32-bit PMode connect already established
  22705. SeeAlso: #00484
  22706. --------X-1553B0BH02-------------------------
  22707. INT 15 - Intel System Management Bus - REAL MODE CONNECT
  22708. AX = 53B0h
  22709. BH = 02h
  22710. CX = 6941h ('iA')
  22711. Return: CF clear if successful
  22712. AX = SMBus Real mode code segment
  22713. BX = offset of entry point into SMBus BIOS Interface
  22714. CX = SMBus Real mode data segment
  22715. CF set if error
  22716. AH = error code (01h,02h,0Ah,86h) (see #00484)
  22717. AL = sub-error code if error code is 02h (see #00485)
  22718. Desc: connect to SMBus interface; once connected, all SMBus calls are made
  22719. to the supplied entry point instead of INT 15 (with registers
  22720. identical to those described here for INT 15)
  22721. Notes: Support for this function is optional
  22722. this function is only supported in INT 15 mode when implemented
  22723. SeeAlso: AX=53B0h/BH=01h,AX=53B0h/BH=03h,AX=53B0h/BH=04h,AX=53B0h/BH=05h
  22724. --------X-1553B0BH03-------------------------
  22725. INT 15 - Intel System Management Bus - 16-BIT PROTECTED-MODE CONNECT
  22726. AX = 53B0h
  22727. BH = 03h
  22728. CX = 6941h ('iA')
  22729. Return: CF clear if successful
  22730. AX = SMBus 16-bit code segment (real mode base address)
  22731. BX = offset of entry point into SMBus BIOS Interface
  22732. CX = SMBus 16-bit data segment (real mode base address)
  22733. SI = code segment length in bytes
  22734. DI = data segment length in bytes
  22735. CF set if error
  22736. AH = error code (01h,02h,0Ah,86h) (see #00484)
  22737. AL = sub-error code if error code is 02h (see #00485)
  22738. Desc: connect to SMBus interface; once connected, all SMBus calls are made
  22739. to the supplied entry point instead of INT 15 (with registers
  22740. identical to those described here for INT 15)
  22741. Notes: before calling the entry point, two descriptors must be initialized
  22742. in the GDT or LDT. They must be consecutive and be in the order of
  22743. code, then data. At the time of the call, the descriptors must be
  22744. valid and have CPL=0.
  22745. the code descriptor must be ring-0 privilege
  22746. this function is only supported in INT 15 mode
  22747. SeeAlso: AX=53B0h/BH=01h,AX=53B0h/BH=02h,AX=53B0h/BH=04h,AX=53B0h/BH=05h
  22748. --------X-1553B0BH04-------------------------
  22749. INT 15 - Intel System Management Bus - 32-BIT PROTECTED-MODE CONNECT
  22750. AX = 53B0h
  22751. BH = 04h
  22752. CX = 6941h ('iA')
  22753. Return: CF clear if successful
  22754. AX = SMBus 32-bit code segment (real mode base address)
  22755. EBX = offset of entry point into SMBus BIOS Interface
  22756. CX = SMBus 16-bit code segment (real mode base address)
  22757. DX = SMBus data segment (real mode base address)
  22758. SI = code segment length in bytes
  22759. DI = data segment length in bytes
  22760. CF set if error
  22761. AH = error code (01h,02h,0Ah,86h) (see #00484)
  22762. AL = sub-error code if error code is 02h (see #00485)
  22763. Desc: connect to SMBus interface; once connected, all SMBus calls are made
  22764. to the supplied entry point instead of INT 15 (with registers
  22765. identical to those described here for INT 15)
  22766. Notes: before calling the entry point, two descriptors must be initialized in
  22767. the GDT or LDT. They must be consecutive and be in the order of
  22768. 32-bit code, 16-bit code, then data. At the time of the call, the
  22769. descriptors must be valid and have CPL=0.
  22770. the code descriptors must be ring-0 privilege
  22771. this function is supported only in INT 15 mode
  22772. SeeAlso: AX=53B0h/BH=01h,AX=53B0h/BH=02h,AX=53B0h/BH=03h,AX=53B0h/BH=05h
  22773. --------X-1553B0BH05-------------------------
  22774. INT 15 - Intel System Management Bus - DISCONNECT
  22775. AX = 53B0h
  22776. BH = 05h
  22777. CX = 6941h ('iA')
  22778. Return: CF clear if successful
  22779. AH = 00h (SMBus OK)
  22780. CF set if error
  22781. AH = error code (03h,04h,05h,0Ah,86h) (see #00484)
  22782. Note: this function is supported in connected mode (far CALL entry point)
  22783. only
  22784. SeeAlso: AX=53B0h/BH=01h,AX=53B0h/BH=02h,AX=53B0h/BH=03h,AX=53B0h/BH=04h
  22785. --------X-1553B0BH06-------------------------
  22786. INT 15 - Intel System Management Bus - GET DEVICE ADDRESSES
  22787. AX = 53B0h
  22788. BH = 06h
  22789. BL = position in list to report
  22790. CH = 6941h ('iA')
  22791. Return: CF clear if successful
  22792. AH = 00h (SMBus OK)
  22793. BH = number of SMBus devices
  22794. BL = SMBus Device Address of device at position BL in list
  22795. (see #00486)
  22796. CF set if error
  22797. AH = error code (06h,0Ah,86h) (see #00484)
  22798. Desc: retrieves already assigned SMBus device addresses
  22799. Notes: this function is supported in INT 15h mode only
  22800. bit 0 of the device address indicates read/write, so a device may
  22801. be listed at both xxxxxxx0b and xxxxxxx1b
  22802. SeeAlso: I2C A0h [and I2C.LST in general]
  22803. (Table 00486)
  22804. Values for System Management Bus predefined device addresses:
  22805. 10h SMBus host
  22806. 12h Smart Battery charger
  22807. 14h Smart Battery selector
  22808. 16h Smart Battery
  22809. 18h SMBus Alert response
  22810. 50h ACCESS.bus host
  22811. 58h LCD contrast controller
  22812. 5Ah CCFL backlight driver
  22813. 6Eh ACCESS.bus default address
  22814. 80h-86h PCMCIA socket controllers
  22815. 88h VGA graphics controller
  22816. 90h-96h unrestricted addresses
  22817. 82h SMBus device default address
  22818. --------X-1553B0BH07-------------------------
  22819. INT 15 - Intel System Management Bus - RETRIEVE CRITICAL MESSAGES
  22820. AX = 53B0h
  22821. BH = 07h
  22822. CX = 6941h ('iA')
  22823. Return: CF clear if successful
  22824. AH = 00h (SMBus OK)
  22825. AL = device address
  22826. BX = device message
  22827. CF set if error
  22828. AH = error code (05h,07h,08h,09h,0Ah,86h) (see #00484)
  22829. Desc: retrieves oldest queued critical message from an SMBus device to the
  22830. host
  22831. Notes: up to five messages are queued; if the queue is full, messages will be
  22832. lost and error 09h returned
  22833. --------X-1553B0BH08-------------------------
  22834. INT 15 - Intel System Management Bus - RESERVED
  22835. AX = 53B0h
  22836. BH = 08h-0Fh
  22837. --------X-1553B0BH10-------------------------
  22838. INT 15 - Intel System Management Bus - REQUEST
  22839. AX = 53B0h
  22840. BH = 10h
  22841. BL = protocol (see #00487)
  22842. CH = device address
  22843. CL = device command (see #00488)
  22844. DH = MSB Data or block length (for BlockWrite)
  22845. DL = LSB Data or first byte of block (for BlockWrite)
  22846. Return: CF clear if successful
  22847. AH = 00h or 80h (SMBus OK)
  22848. (80h indicates a previously unreported SMI took place)
  22849. CF set if error
  22850. AH = error code (05h,10h,11h,12h,13h,14h,17h,19h,1Ah,86h)
  22851. (see #00484)
  22852. Desc: request access to a device on the SMBus
  22853. SeeAlso: AX=53B0h/BH=11h, AX=53B0h/BH=13h
  22854. (Table 00487)
  22855. Values for Intel System Management Bus protocol codes:
  22856. 00h Quick Command
  22857. 01h Send Byte
  22858. 02h Receive Byte
  22859. 03h Write Byte
  22860. 04h Read Byte
  22861. 05h Write Word
  22862. 06h Read Word
  22863. 07h Block Write
  22864. 08h Block Read
  22865. 09h Process Call
  22866. 0Ah-FFh reserved
  22867. SeeAlso: #00488
  22868. (Table 00488)
  22869. Values for Intel System Management Bus Smart Battery command codes:
  22870. Cmd Protocol(s) Description
  22871. 00h Rd/Wr Word "ManufacturerAccess" implementation-specific
  22872. 01h Rd/Wr Word get/set Low Capacity Alarm threshold
  22873. 02h Rd/Wr Word get/set Remaining Time Alarm value (in minutes)
  22874. 03h Rd/Wr Word get/set battery characteristics (see #00489)
  22875. 04h Rd/Wr Word "AtRate" indicate charge/discharge rate
  22876. 05h Read Word "AtRateTimeToFull" time to completely charge (in min.)
  22877. 06h Read Word "AtRateTimeToEmpty" time to entirely discharge (min.)
  22878. 07h Read Word "AtRateOK" boolean: can battery supply another 10sec?
  22879. 08h Read Word internal battery temperature (in 0.1 Kelvins)
  22880. 09h Read Word current battery voltage in millivolts
  22881. 0Ah Read Word current flowing through battery in milliamperes
  22882. (positive if charging, negative if discharging)
  22883. 0Bh Read Word average current over the past minute
  22884. 0Ch Read Word expected error margin in capacity computations in %
  22885. 0Dh Read Word predicted remaining charge as % of full charge
  22886. 0Eh Read Word predicted remaining charge as % of design capacity
  22887. 0Fh Read Word predicted remaining charge in mAh or 10mWh
  22888. 10h Read Word predicted full charge capacity in mAh or 10mWh
  22889. 11h Read Word predicted remaining battery life in minutes
  22890. FFFFh = not discharging
  22891. 12h Read Word rolling average of predicted life over past minute
  22892. 13h Read Word rolling average of predicted charge time over past min.
  22893. FFFFh = not charging
  22894. 14h Read Word get battery's desired charging current in mA
  22895. 14h Write Word set charging current in mA
  22896. 15h Read Word get battery's desired charging current in mV
  22897. 15h Write Word set desired charging voltage in mV
  22898. 16h Read Word get current battery status (see #00490)
  22899. 17h Read Word get number of charge/discharge cycles for battery
  22900. 18h Read Word get design capacity in mAh or 10mWh
  22901. 19h Read Word get design voltage
  22902. 1Ah Read Word get specification information (see #00491)
  22903. 1Bh Read Word get manufacture date (see #01665 at INT 21/AX=5700h)
  22904. 1Ch Read Word get serial number
  22905. 1Dh-1Fh reserved
  22906. 20h Read Block get manufacturer's name
  22907. 21h Read Block get device name
  22908. 22h Read Block get device chemistry (see #00492)
  22909. 23h Read Block get manufacturer data
  22910. 24h-2Eh reserved
  22911. 2Fh manufacturer-specific
  22912. 30h-3Bh reserved
  22913. 3Ch-3Fh manufacturer-specific
  22914. Note: bits 7-6 are reserved for addressing multiple batteries in a future
  22915. version of the specification
  22916. SeeAlso: #00487
  22917. Bitfields for Smart Battery battery characteristics:
  22918. Bit(s) Description (Table 00489)
  22919. 0 battery has internal charge controller (read-only)
  22920. 1 primary/secondary battery support (read-only)
  22921. 6-2 reserved
  22922. 7 conditioning cycle requested
  22923. 8 internal charge controller enabled
  22924. 9 battery operating in primary mode
  22925. 13-10 reserved
  22926. 14 disable broadcast to charger
  22927. 15 report capacity in units of 10mW / 10mWh instead of mA / mAh
  22928. SeeAlso: #00488,#00490
  22929. Bitfields for Smart Battery battery status:
  22930. Bit(s) Description (Table 00490)
  22931. 15 overcharged
  22932. 14 terminate-charge alarm
  22933. 13 reserved
  22934. 12 over-temperature alarm
  22935. 11 terminate-discharge alarm
  22936. 10 reserved
  22937. 9 remaining-capacity alarm
  22938. 8 remaining-time alarm
  22939. 7 initialized
  22940. 6 charging
  22941. 5 fully charged
  22942. 4 fully discharged
  22943. 3-0 error codes
  22944. 0000 OK
  22945. 0001 busy
  22946. 0010 reserved command
  22947. 0011 unsupported command
  22948. 0100 access denied (tried to write to read-only value)
  22949. 0101 overflow/underflow
  22950. 0110 bad size
  22951. 0111 unknown error
  22952. SeeAlso: #00488,#00489,#00491
  22953. Bitfields for Smart Battery specification information:
  22954. Bit(s) Description (Table 00491)
  22955. 3-0 SmartBattery specification minor revision number
  22956. 7-4 SmartBattery specification version number
  22957. 11-8 voltage scaling (0-3, multiply voltages by 10^scale)
  22958. 15-12 current scaling (0-3, multiply currents by 10^scale)
  22959. SeeAlso: #00488,#00490
  22960. (Table 00492)
  22961. Values for Smart Battery device chemistry (not case-sensitive):
  22962. "LION" Lithium ion
  22963. "NiMH" Nickel metal hydride
  22964. "PbAc" lead-acid
  22965. "NiCd" Nickel Cadmium
  22966. "NiZn" Nickel Zinc
  22967. "RAM" rechargeable Alkaline Manganese
  22968. "ZnAr" Zinc-Air
  22969. SeeAlso: #00488
  22970. --------X-1553B0BH11-------------------------
  22971. INT 15 - Intel System Management Bus - REQUEST CONTINUATION
  22972. AX = 53B0h
  22973. BH = 11h
  22974. BL = protocol (see #00487)
  22975. CH = device address
  22976. CL = number of valid bytes in DX (1 or 2)
  22977. DH = MSB Data (CL = 1 or 2)
  22978. DL = LSB Data (CL = 2)
  22979. Return: CF clear if successful
  22980. AH = 00h (SMBus OK)
  22981. CL = SMBus status
  22982. 00h SMBus hardware not ready for more data
  22983. 01h SMBus hardware ready for 2 more data bytes
  22984. CF set if error
  22985. AH = error code (05h,11h,13h,15h,16h,18h,1Bh,86h) (see #00484)
  22986. Desc: continue WriteBlock protocol started with function 10h
  22987. SeeAlso: AX=53B0h/BH=10h, AX=53B0h/BH=13h
  22988. --------X-1553B0BH12-------------------------
  22989. INT 15 - Intel System Management Bus - REQUEST ABORT
  22990. AX = 53B0h
  22991. BH = 12h
  22992. BL = protocol (see #00487)
  22993. CH = device address
  22994. CL = device command
  22995. Return: CF clear if successful
  22996. AH = 00h (SMBus OK)
  22997. CF set if error
  22998. AH = error code (05h,13h,15h,16h,86h) (see #00484)
  22999. Desc: stop the currently pending SMBus request; usually used to terminate
  23000. a request after an SMI Detected error
  23001. --------X-1553B0BH13-------------------------
  23002. INT 15 - Intel System Management Bus - REQUEST DATA AND STATUS
  23003. AX = 53B0h
  23004. BH = 13h
  23005. BL = protocol (see #00487)
  23006. CH = device address
  23007. CL = device command
  23008. Return: CF clear if successful
  23009. AH = 00h (SMBus OK)
  23010. CH = status
  23011. 00h no data pending, transaction complete
  23012. 01h no data pending, transaction continues
  23013. 02h data pending
  23014. CL = number of valid bytes in DX (0-2)
  23015. DH = MSB data
  23016. DL = LSB data
  23017. CF set if error
  23018. AH = error code (05h,10h,11h,13h,15h,16h,18h,1Bh,86h) (see #00484)
  23019. Desc: determine when a transaction is complete, gather data returned by read
  23020. transactions
  23021. Note: for Block Read protocol (08h), first call returns block length in DH
  23022. and the first byte of the block in DL
  23023. ----------1554-------------------------------
  23024. INT 15 - IBM SurePath BIOS - Officially "Private" Function
  23025. AH = 54h
  23026. SeeAlso: AH=07h"IBM",AH=3Eh"IBM"
  23027. --------T-155400-----------------------------
  23028. INT 15 C - Omniview Multitasker - INSTALLATION NOTIFICATION
  23029. AX = 5400h
  23030. ES:BX -> device information tables
  23031. DI:DX -> dispatcher entry point
  23032. Note: called by OmniView to notify programs loaded before OmniView of state
  23033. changes inside OmniView
  23034. SeeAlso: AX=5407h,INT 2F/AX=DE00h
  23035. --------T-155401-----------------------------
  23036. INT 15 C - Omniview Multitasker - PROCESS CREATION
  23037. AX = 5401h
  23038. ES:BX = process handle
  23039. Note: called by OmniView to notify programs loaded before OmniView of state
  23040. changes inside OmniView
  23041. SeeAlso: AX=5402h,INT 2F/AX=DE04h
  23042. --------T-155402-----------------------------
  23043. INT 15 C - Omniview Multitasker - PROCESS DESTRUCTION
  23044. AX = 5402h
  23045. ES:DX = process handle
  23046. Note: called by OmniView to notify programs loaded before OmniView of state
  23047. changes inside OmniView
  23048. SeeAlso: AX=5401h,INT 2F/AX=DE05h
  23049. --------T-155403-----------------------------
  23050. INT 15 C - Omniview Multitasker - SAVE
  23051. AX = 5403h
  23052. ES:DX = process swapping out
  23053. Note: called by OmniView to notify programs loaded before OmniView of state
  23054. changes inside OmniView
  23055. SeeAlso: AX=5404h,INT 2F/AX=DE08h
  23056. --------T-155404-----------------------------
  23057. INT 15 C - Omniview Multitasker - RESTORE
  23058. AX = 5404h
  23059. ES:DX = process swapping in
  23060. Note: called by OmniView to notify programs loaded before OmniView of state
  23061. changes inside OmniView
  23062. SeeAlso: AX=5403h,INT 2F/AX=DE09h
  23063. --------T-155405-----------------------------
  23064. INT 15 C - Omniview Multitasker - SWITCHING TO BACKGROUND
  23065. AX = 5405h
  23066. ES:DX = process swapping in
  23067. Note: called by OmniView to notify programs loaded before OmniView of state
  23068. changes inside OmniView
  23069. SeeAlso: AX=5406h
  23070. --------T-155406-----------------------------
  23071. INT 15 C - Omniview Multitasker - SWITCHING TO FOREGROUND
  23072. AX = 5406h
  23073. ES:DX = process swapping in
  23074. Note: called by OmniView to notify programs loaded before OmniView of state
  23075. changes inside OmniView
  23076. SeeAlso: AX=5405h
  23077. --------T-155407-----------------------------
  23078. INT 15 C - Omniview Multitasker - EXIT NOTIFICATION
  23079. AX = 5407h
  23080. Note: called by OmniView to notify programs loaded before OmniView of state
  23081. changes inside OmniView
  23082. SeeAlso: AX=5400h,INT 2F/AX=DE03h
  23083. --------V-155F31-----------------------------
  23084. INT 15 C - Chips & Technologies '65530' BIOS - POST INITIALIZATION NOTIFICATION
  23085. AX = 5F31h
  23086. Return: nothing
  23087. Desc: this function is called after the video BIOS completes power-up
  23088. initialization and just prior to displaying the sign-on message
  23089. SeeAlso: AX=5F33h,AX=5F35h,INT 10/AX=5F50h
  23090. --------V-155F33-----------------------------
  23091. INT 15 C - Chips & Technologies '65530' BIOS - MODE SET HOOK
  23092. AX = 5F33h
  23093. BL = current width in characters
  23094. BH = curent video mode
  23095. CH = active display page
  23096. Return: nothing
  23097. Desc: this function is called at the end of a video mode set
  23098. Note: the OEM has the option of enabling or disabling this callout, as well
  23099. as specifying whether the callout occurs on INT 15h or INT 42h
  23100. SeeAlso: AX=5F31h,AX=5F35h,INT 10/AX=5F50h,INT 42/AX=5F33h
  23101. --------V-155F35-----------------------------
  23102. INT 15 C - Chips & Technologies '65530' BIOS - MONITOR SENSING HOOK
  23103. AX = 5F35h
  23104. Return: DL = boot display
  23105. 00h CRT
  23106. 01h flat panel (LCD)
  23107. 02h both simultaneously
  23108. leave unchanged to boot according to BIOS settings
  23109. SeeAlso: AX=5F31h,AX=5F33h,INT 10/AX=5F50h
  23110. --------b-1560------------------------------------
  23111. INT 15 - HUNTER 16 - SET SYSTEM CLOCK SPEED
  23112. AH = 60h
  23113. AL = new speed
  23114. 00h normal (8 MHz)
  23115. 01h Slow Mode 1 (4 MHz)
  23116. 02h Slow Mode 2 (2 MHz)
  23117. Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
  23118. members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  23119. SeeAlso: AX=6301h
  23120. --------p-156000-----------------------------
  23121. INT 15 U - HP 100LX/200LX - GET MAIN BATTERY LEVEL
  23122. AX = 6000h
  23123. Return: AX = battery level
  23124. Note: multiply the returned value with 1Bh and add 622h to get millivolts
  23125. SeeAlso: AX=6001h,AX=6002h,AX=6003h,AX=6004h
  23126. --------p-156001-----------------------------
  23127. INT 15 U - HP 100LX/200LX - GET BACKUP BATTERY LEVEL
  23128. AX = 6001h
  23129. Return: AX = battery level
  23130. Note: multiply the returned value with 1Bh and add 622h to get millivolts
  23131. SeeAlso: AX=6000h,AX=6002h
  23132. --------p-156002-----------------------------
  23133. INT 15 U - HP 100LX/200LX - GET POWER INFO
  23134. AX = 6002h
  23135. Return: AL = power settings (see #00493)
  23136. SeeAlso: AX=6000h,AX=6003h,AX=6004h
  23137. Bitfields for power settings:
  23138. Bit(s) Description (Table 00493)
  23139. 0-1 unused ???
  23140. 2 card battery status low (OK if bit clear)
  23141. 3 battery charging off (disabled if bits 3-5 clear)
  23142. 4 battery charging slow
  23143. 5 battery charging fast
  23144. 6 power adaptor active
  23145. 7 battery type NiCad (alkaline if bit clear)
  23146. --------p-156003-----------------------------
  23147. INT 15 U - HP 100LX/200LX - SET MAIN BATTERY TYPE
  23148. AX = 6003h
  23149. BL = battery type
  23150. 00h alkaline
  23151. 01h NiCad
  23152. SeeAlso: AX=6000h,AX=6004h
  23153. --------p-156004-----------------------------
  23154. INT 15 U - HP 100LX/200LX - SET BATTERY CHARGING MODE
  23155. AX = 6004h
  23156. BL = charging
  23157. 00h disabled
  23158. 01h enabled
  23159. SeeAlso: AX=6000h,AX=6003h
  23160. --------b-1561------------------------------------
  23161. INT 15 - HUNTER 16 - GET POWER LEVEL
  23162. AH = 61h
  23163. Return: AH = percentage of full power left (0..100)
  23164. Desc: determine how much battery power is left
  23165. SeeAlso: AH=62h,AH=66h,AH=73h"HUNTER"
  23166. --------b-1561-------------------------------
  23167. INT 15 U - HP 100LX/200LX - SET ANNOUNCIATORS POSITION
  23168. AH = 61h
  23169. AL = position (20h = left, 60h = right)
  23170. Note: The announciators are the indicator symbols for the Shift and Fn keys
  23171. in the bottom line
  23172. SeeAlso: AH=62h"HP",INT 16/AH=02h
  23173. --------b-1562------------------------------------
  23174. INT 15 - HUNTER 16 - SET LOW POWER THRESHOLD
  23175. AH = 62h
  23176. AL = level (00h 5%, 01h 10%, ... 12h 95%)
  23177. BX = interval between power low warnings in seconds (1..600)
  23178. Return: AH = Status
  23179. Desc: set the level (relative to full power) when power-low warnings begin
  23180. and the interval between the warnings
  23181. SeeAlso: AH=61h,AH=65h,AH=66h
  23182. --------b-1562-------------------------------
  23183. INT 15 U - HP 100LX/200LX - SET DISPLAY CONTRAST
  23184. AH = 62h
  23185. BL = contrast (00h-1Fh, 1Fh is the darkest)
  23186. SeeAlso: AH=47h"HP",AH=61h"HP"
  23187. --------b-156300----------------------------------
  23188. INT 15 - HUNTER 16 - GET IDLE TIMEOUT
  23189. AX = 6300h
  23190. Return: AH = status
  23191. BX = timeout in seconds (0-3600)
  23192. Desc: get the idle timeout value, the interval without keyboard or
  23193. communications activity before the system shuts down
  23194. SeeAlso: AX=6301h
  23195. --------b-156301----------------------------------
  23196. INT 15 - HUNTER 16 - SET IDLE TIMEOUT
  23197. AX = 6301h
  23198. BX = timeout in seconds (0-3600)
  23199. Desc: sets the idle timeout value, the interval without keyboard or
  23200. communications activity before the system shuts down
  23201. SeeAlso: AX=6300h
  23202. --------b-1564------------------------------------
  23203. INT 15 - HUNTER 16 - CONTROL RESUME MODE
  23204. AH = 64h
  23205. AL = new state
  23206. 00h disable Resume mode
  23207. 01h enable Resume mode
  23208. Return: AH = status
  23209. Desc: turn Resume mode on or off. In Resume mode the system starts in
  23210. the application that was running when it shut down as if nothing
  23211. had happened.
  23212. SeeAlso: AH=67h,AH=68h,AH=69h
  23213. --------b-1565------------------------------------
  23214. INT 15 - HUNTER 16 - AUTHORISE CHARGING
  23215. AH = 65h
  23216. AL = charging level
  23217. 01h charging not allowed
  23218. 02h charging allowed until power down
  23219. 03h charging allowed until batteries changed or fail.
  23220. Ask user if charging is still allowed on next poweron
  23221. 04h charging allowed indefinitely
  23222. BX = 0203h
  23223. CX = 0405h
  23224. DX = 0607h
  23225. Return: AH = status
  23226. SeeAlso: AH=66h,AH=68h
  23227. --------b-1566------------------------------------
  23228. INT 15 - HUNTER 16 - SET BATTERY LEVEL
  23229. AH = 66h
  23230. AL = level in percent of maximum (0..100)
  23231. Return: AH = status
  23232. SeeAlso: AH=61h,AH=65h
  23233. --------b-1567------------------------------------
  23234. INT 15 - HUNTER 16 - CONTROL STOP MODE
  23235. AH = 67h
  23236. AL = mode when waiting for input
  23237. 00h use STOP mode (allows communication)
  23238. 01h use HALT mode (disallows communication)
  23239. Return: AH = status
  23240. Desc: select the power save mode to use when waiting for input
  23241. SeeAlso: AH=69h
  23242. --------b-1568------------------------------------
  23243. INT 15 - HUNTER 16 - REQUEST POWER DOWN
  23244. AH = 68h
  23245. Desc: turns off the Hunter 16 if power down is allowed (see AH=69h)
  23246. SeeAlso: AH=69h
  23247. --------b-1569------------------------------------
  23248. INT 15 - HUNTER 16 - CONTROL POWER DOWN AVAILABILITY
  23249. AH = 69h
  23250. AL = mode
  23251. 00h inhibit power down
  23252. 01h allow power down
  23253. Return: AH = status
  23254. SeeAlso: AH=67h,AH=68h,AH=6Ah
  23255. --------b-156A------------------------------------
  23256. INT 15 - HUNTER 16 - CONTROL SLOW MODE
  23257. AH = 6Ah
  23258. AL = mode
  23259. 00h inhibit Slow mode
  23260. 01h allow Slow mode
  23261. Return: AH = status
  23262. SeeAlso: AH=69h
  23263. --------b-156B------------------------------------
  23264. INT 15 - HUNTER 16 - GET ROM BIOS VERSION
  23265. AH = 6Bh
  23266. Return: BH = version number (ASCII)
  23267. BL = release number (ASCII)
  23268. CH = major??? release number (ASCII)
  23269. CL = minor??? release number (ASCII)
  23270. SeeAlso: AH=6Ch
  23271. --------b-156C------------------------------------
  23272. INT 15 - HUNTER 16 - GET SERIAL NUMBER
  23273. AH = 6Ch
  23274. Return: BL:CX = BCD serial number
  23275. Note: when shipped, all Hunter 16s have the same Serial Number, but a
  23276. different number can be stored (see AH=72h)
  23277. SeeAlso: AH=6Bh,AH=72h
  23278. --------b-156D------------------------------------
  23279. INT 15 - HUNTER 16 - GET EVENT DETAIL
  23280. AH = 6Dh
  23281. Return: AH = 00h if successful
  23282. CX:BX = event flags bit 0..31 (see #00494)
  23283. Note: this function allows testing for events
  23284. SeeAlso: AH=6Eh,AH=6Fh
  23285. Bitfields for HUNTER 16 events:
  23286. Bit(s) Description (Table 00494)
  23287. 6 RI received
  23288. 5 RTC Alarm
  23289. 4 data received on COM2
  23290. 3 data received on COM1
  23291. 2 error on COM2
  23292. 1 error on COM1
  23293. 0 PWR button pressed
  23294. --------b-156E------------------------------------
  23295. INT 15 - HUNTER 16 - ENABLE/TRAP EVENT
  23296. AH = 6Eh
  23297. AL = Software Interrupt
  23298. 00h do not trap event
  23299. else trap as software interrupt number AL
  23300. BH = event number (see AH=6Dh)
  23301. BL = enable mask
  23302. 00h disable event
  23303. 01h enable event
  23304. Return: AH = 00h if successful
  23305. SeeAlso: AH=6Dh,AH=6Fh
  23306. --------b-156F------------------------------------
  23307. INT 15 - HUNTER 16 - ACKNOWLEDGE EVENT
  23308. AH = 6Fh
  23309. AL = event number (see AH=6Dh)
  23310. Return: AH = 00h if successful
  23311. Desc: Acknowledges the event, so the next similar event can be detected
  23312. SeeAlso: AH=6Dh"HUNTER",AH=6Eh
  23313. --------b-1570------------------------------------
  23314. INT 15 - HUNTER 16 - CONTROL SOUND
  23315. AH = 70h
  23316. AL = new state
  23317. 00h disable sound
  23318. else enable sound
  23319. Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
  23320. members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  23321. --------x-157000-----------------------------
  23322. INT 15 - Tandy 1000SL/TL - READ FROM EEPROM
  23323. AX = 7000h
  23324. BL = number of word to read (00h-3Fh)
  23325. Return: CF clear if function supported
  23326. DX = contents of EEPROM word
  23327. Note: newer Tandy 1000-series machines use EEPROM instead of CMOS RAM in
  23328. the clock chip to store system configuration information
  23329. SeeAlso: AX=7001h
  23330. --------x-157001-----------------------------
  23331. INT 15 - Tandy 1000SL/TL - WRITE TO EEPROM
  23332. AX = 7001h
  23333. BL = number of word to read (00h-3Fh)
  23334. DX = new value for EEPROM word
  23335. Return: CF clear if function supported
  23336. Note: the EEPROMs are normally written only by the system setup program;
  23337. changing the values can badly mess up a Tandy
  23338. SeeAlso: AX=7000h
  23339. ----------157002-----------------------------
  23340. INT 15 U - Tandy 1000 Model ??? - GET ROM PAGE
  23341. AX = 7002h
  23342. Return: AL = ROM page mapped at 0E0000h (0-6 (13?))
  23343. Note: some Tandy machines have DOS and DeskMate in a 512k paged ROM. The
  23344. BIOS uses this call to determine what ROM page is mapped in the 64k
  23345. segment at 0E0000h.
  23346. the 1000TL has 8 64k ROM pages; page 7 is permanently mapped at
  23347. 0F0000h. There may be 16 32k ROM pages on other systems.
  23348. SeeAlso: AX=7003h,INT E0"DeskMate"
  23349. ----------157003-----------------------------
  23350. INT 15 U - Tandy 1000 Model ??? - SET ROM PAGE
  23351. AX = 7003h
  23352. DL = ROM page to be mapped at 0E0000h (0-6 (13?))
  23353. Return: CF clear if valid ROM page specified
  23354. Note: Some Tandy machines have DOS and DeskMate in a 512k paged ROM. The
  23355. BIOS uses this call to map ROM pages in the 64k segment at 0E0000h.
  23356. The 1000TL has 8 64k ROM pages; page 7 is permanently mapped at
  23357. 0F0000h. There may be 16 32k ROM pages on other systems.
  23358. SeeAlso: AX=7002h,INT E0"DeskMate"
  23359. --------b-1571------------------------------------
  23360. INT 15 - HUNTER 16 - SELECT POWER UP KEYS
  23361. AH = 71h
  23362. BL = column
  23363. BH = row
  23364. AL = column switch (00h disable, 01h enable)
  23365. CL = row switch (00h disable, 01h enable)
  23366. Return: AH = status
  23367. SeeAlso: AH=7Bh,AH=88h
  23368. --------b-157200----------------------------------
  23369. INT 15 - HUNTER 16 - RESET SERIAL NUMBER
  23370. AX = 7200h
  23371. Return: AH = 00h if successful
  23372. Desc: reset the serial number to the default serial number present when the
  23373. Hunter 16 was shipped
  23374. SeeAlso: AH=6Ch,AH=72h
  23375. --------b-1572------------------------------------
  23376. INT 15 - HUNTER 16 - REDIRECT SERIAL NUMBER
  23377. AH = 72h
  23378. AL nonzero
  23379. DS:BX -> new serial number (6 ASCII digits)
  23380. Return: AH = 00h if successful
  23381. Desc: install a new serial number
  23382. SeeAlso: AH=6Ch,AX=7200h
  23383. --------b-1573------------------------------------
  23384. INT 15 - HUNTER 16 - GET ORACLE GT POWER LEVEL
  23385. AH = 73h
  23386. AL = drive (0: A:, 1: B:)
  23387. Return: AH = status
  23388. 00h successful
  23389. FFh Oracle GT drive not connected
  23390. AL = power level in percent of maximum (0..100)
  23391. Desc: get the power remaining in the Oracle GT batteries
  23392. SeeAlso: AH=61h
  23393. --------b-1574------------------------------------
  23394. INT 15 - HUNTER 16 - SET BACKLIGHT POWER UP STATE
  23395. AH = 74h
  23396. AL = new level
  23397. 01h off
  23398. 02h unchanged
  23399. 03h change level
  23400. BL = desired level (00h-7Fh)
  23401. Return: AH = status
  23402. Desc: select the backlight level to use when the Hunter is next turned on
  23403. SeeAlso: AH=64h,AH=75h,INT 10/AH=64h,INT 10/AH=78h
  23404. --------b-1575------------------------------------
  23405. INT 15 - HUNTER 16 - SET CONTRAST POWER UP STATE
  23406. AH = 75h
  23407. AL = new level
  23408. 01h off
  23409. 02h unchanged
  23410. 03h change level
  23411. BL = desired level (00h-7Fh)
  23412. Return: AH = status
  23413. Desc: select the LCD contrast level to use when the Hunter is next turned on
  23414. SeeAlso: AH=63h,AH=74h
  23415. --------b-1576------------------------------------
  23416. INT 15 - HUNTER 16 - CONTROL POWER SAVE
  23417. AH = 76h
  23418. BX = power save control (see #00495)
  23419. SeeAlso: AH=74h
  23420. Bitfields for HUNTER 16 power save control:
  23421. Bit(s) Description (Table 00495)
  23422. 0 power save enabled
  23423. 1 inhibit power save when waiting for COM1 data
  23424. 2 inhibit power save when waiting for COM2 data
  23425. 3 inhibit power save when waiting for data from barcode wand
  23426. 4 inhibit power up on timer tick
  23427. --------b-1579------------------------------------
  23428. INT 15 - HUNTER 16 - REDIRECT LPT1
  23429. AH = 79h
  23430. AL = port to which to redirect (00h COM1, 01h COM2)
  23431. --------b-157A------------------------------------
  23432. INT 15 - HUNTER 16 - INVOKE HOT KEY
  23433. AH = 7Ah
  23434. Desc: this function has the same effect as pressing the HOT key
  23435. SeeAlso: AH=7Bh
  23436. --------b-157B------------------------------------
  23437. INT 15 - HUNTER 16 - CONTROL HOT KEY
  23438. AH = 7Bh
  23439. AL = 00h prevent HOT key
  23440. else allow HOT key
  23441. Desc: Allow or prevent the HOT key function which is used to examine and
  23442. change the Hunter setup
  23443. SeeAlso: AH=71h,AH=7Ah,AH=7Ch
  23444. --------b-157C------------------------------------
  23445. INT 15 - HUNTER 16 - CONTROL HOT KEY POWER OPTION
  23446. AH = 7Ch
  23447. AL = 00h prevent HOT key power option
  23448. else allow HOT key power option
  23449. Desc: allow or prevent changing the power options
  23450. SeeAlso: AH=7Bh,AH=7Dh
  23451. --------b-157D------------------------------------
  23452. INT 15 - HUNTER 16 - OVERRIDE LOW POWER TURN OFF
  23453. AH = 7Dh
  23454. AL = 00h turn off after 10 warnings
  23455. else never turn off
  23456. Desc: specify whether the Hunter 16 turns off after 10 low power warnings
  23457. SeeAlso: AH=7Ch
  23458. --------b-157E------------------------------------
  23459. INT 15 - HUNTER 16 - CONTROL BATTERY CHANGE FACILITIES (APM)
  23460. AH = 7Eh
  23461. AL = 00h do not prompt
  23462. else prompt
  23463. Desc: select whether the user is prompted for the battery state if the
  23464. battery cap has been off when the system is turned on
  23465. SeeAlso: AH=7Fh
  23466. --------b-157F------------------------------------
  23467. INT 15 - HUNTER 16 - SET BATTERY TYPE (APM)
  23468. AH = 7Fh
  23469. AL = battery type
  23470. 00h non-rechargeable
  23471. else rechargeable
  23472. SeeAlso: AH=7Eh
  23473. --------B-1580-------------------------------
  23474. INT 15 C - OS HOOK - DEVICE OPEN (AT,XT286,PS)
  23475. AH = 80h
  23476. BX = device ID
  23477. CX = process ID
  23478. CF clear
  23479. Return: CF clear if successful
  23480. AH = 00h
  23481. CF set on error
  23482. AH = status (see #00496)
  23483. Note: this function should be hooked by a multitasker which wishes to keep
  23484. track of device ownership; the default BIOS handler merely returns
  23485. successfully
  23486. SeeAlso: AH=81h,AH=82h
  23487. (Table 00496)
  23488. Values for status:
  23489. 80h invalid command (PC,PCjr)
  23490. 86h function not supported (XT)
  23491. --------b-1580------------------------------------
  23492. INT 15 - HUNTER 16 - GET/SET BATTERY CAPACITY (APM)
  23493. AH = 80h
  23494. AL = function
  23495. 00h get
  23496. Return: AL = capacity (500mA + AL * 50mA, max 40 = 2500mA)
  23497. else set
  23498. BL = battery capacity (same as AL above)
  23499. SeeAlso: AH=61h"HUNTER",AH=81h"HUNTER"
  23500. --------B-1581-------------------------------
  23501. INT 15 C - OS HOOK - DEVICE CLOSE
  23502. AH = 81h
  23503. BX = device ID
  23504. CX = process ID
  23505. CF clear
  23506. Return: CF clear if successful
  23507. AH = 00h
  23508. CF set on error
  23509. AH = status (see #00496)
  23510. Note: this function should be hooked by a multitasker which wishes to keep
  23511. track of device ownership; the default BIOS handler merely returns
  23512. successfully
  23513. SeeAlso: AH=80h,AH=82h
  23514. --------b-1581------------------------------------
  23515. INT 15 - HUNTER 16 - CONTROL POWER OUTPUT
  23516. AH = 81h
  23517. AL = new state of power output (00h off, nonzero on)
  23518. Desc: turn the +5V low power output on or off
  23519. SeeAlso: AH=80h"HUNTER"
  23520. --------B-1582-------------------------------
  23521. INT 15 C - OS HOOK - PROGRAM TERMINATION
  23522. AH = 82h
  23523. BX = process ID
  23524. CF clear
  23525. Return: CF clear if successful
  23526. AH = 00h
  23527. CF set on error
  23528. AH = status (see #00496)
  23529. Notes: closes all devices opened by the given process ID with function 80h
  23530. this function should be hooked by a multitasker which wishes to keep
  23531. track of device ownership; the default BIOS handler merely returns
  23532. successfully
  23533. SeeAlso: AH=80h,AH=81h
  23534. --------b-1582------------------------------------
  23535. INT 15 - HUNTER 16 - SOUND OUTPUT
  23536. AH = 82h
  23537. DX = length (duration in seconds = DX * 666670 / frequency)
  23538. BX = pitch (see #00497)
  23539. Desc: Sound the tone specified in BX for the duration in DX
  23540. SeeAlso: AX=1019h
  23541. (Table 00497)
  23542. Values for HUNTER 16 sound pitch:
  23543. BX(dec) Note Frequency BX(dec) Note Frequency
  23544. 425 G 1568.000 1515 A 440.000
  23545. 451 F# 1479.503 1605 G# 415.307
  23546. 477 F 1396.900 1701 G 392.000
  23547. 506 E 1318.500 1802 F# 369.998
  23548. 536 D# 1244.523 1909 F 349.230
  23549. 568 D 1174.700 2022 E 329.630
  23550. 601 C# 1108.749 2143 D# 311.127
  23551. 637 C 1046.500 2270 D 293.660
  23552. 675 B 958.770 2405 C# 277.183
  23553. 715 A# 932.329 2548 MID C 261.630
  23554. 758 A 880.000 2700 B 246.940
  23555. 803 G# 830.609 2860 A# 233.081
  23556. 850 G 783.990 3030 A 220.000
  23557. 901 F# 739.990 3210 G# 207.654
  23558. 954 F 698.460 3401 G 196.000
  23559. 1011 E 659.260 3604 F# 184.996
  23560. 1071 D# 622.257 3818 F 174.610
  23561. 1135 D 587.330 4045 E 164.810
  23562. 1203 C# 554.365 4286 D# 155.560
  23563. 1274 C 523.250 4540 D 146.830
  23564. 1350 B 493.880 4668 C# 142.827
  23565. 1430 A# 466.162 4803 C 138.810
  23566. --------B-1583-------------------------------
  23567. INT 15 - BIOS - SET EVENT WAIT INTERVAL (AT,PS50+)
  23568. AH = 83h
  23569. AL = subfunction
  23570. 00h set interval
  23571. CX:DX = microseconds to delay
  23572. ES:BX -> byte whose high bit is to be set at end of interval
  23573. 01h cancel wait interval
  23574. Return: CF set on error or function already busy
  23575. AH = status
  23576. 80h invalid command (PC,PCjr)
  23577. 86h function not supported (XT and later)
  23578. CF clear if successful
  23579. Notes: the resolution of the wait period is 977 microseconds on many systems
  23580. because many BIOSes use the 1/1024 second fast interrupt from the AT
  23581. real-time clock chip which is available on INT 70
  23582. IBM AT 1/10/84 BIOS ignores AL and always performs subfunction 00h
  23583. SeeAlso: AH=41h,AH=86h,INT 70,MEM 0040h:0098h,MEM 0040h:009Ch
  23584. --------b-1583------------------------------------
  23585. INT 15 - HUNTER 16 - CONTROL SCREEN SYNCHRONISATION
  23586. AH = 83h
  23587. AL = state of LCD window (00h disabled, nonzero enabled)
  23588. Desc: Enable/disable the facility where the displayed window tracks the
  23589. cursor output to keep the focus visible
  23590. --------B-1584-------------------------------
  23591. INT 15 - BIOS - JOYSTICK SUPPORT (XT after 11/8/82,AT,XT286,PS)
  23592. AH = 84h
  23593. DX = subfunction
  23594. 0000h read joystick switches
  23595. Return: AL bits 7-4 = switch settings
  23596. 0001h read positions of joysticks
  23597. Return: AX = X position of joystick A
  23598. BX = Y position of joystick A
  23599. CX = X position of joystick B
  23600. DX = Y position of joystick B
  23601. Return: CF set on error
  23602. AH = status (see #00496)
  23603. CF clear if successful
  23604. Notes: if no game port is installed, subfunction 0000h returns AL=00h (all
  23605. switches open) and subfunction 0001h returns AX=BX=CX=DX=0000h
  23606. a 250kOhm joystick typically returns 0000h-01A0h
  23607. SeeAlso: AH=84h"V20-XT-BIOS"
  23608. --------b-1584-------------------------------
  23609. INT 15 - V20-XT-BIOS - JOYSTICK SUPPORT
  23610. AH = 84h
  23611. DX = subfunction
  23612. 0000h read joystick switches
  23613. Return: AL bits 7-4 = switch settings
  23614. other: read positions of joysticks as indicated by bits 0-3
  23615. Return: AX = X position of joystick A (if DX bit 0 set)
  23616. BX = Y position of joystick A (if DX bit 1 set)
  23617. CX = X position of joystick B (if DX bit 2 set)
  23618. DX = Y position of joystick B (if DX bit 3 set)
  23619. Return: CF set on error
  23620. AH = status (see #00496)
  23621. CF clear if successful
  23622. Program: V20-XT-BIOS is a ROM BIOS replacement with extensions by Peter
  23623. Koehlmann / c't magazine
  23624. SeeAlso: AH=84h"PS",INT 10/AH=0Eh/CX=ABCDh
  23625. --------b-158400----------------------------------
  23626. INT 15 - HUNTER 16 - GET DISKETTE PORT
  23627. AX = 8400h
  23628. BH = Drive (0: A:, 1: B:)
  23629. Return: AL = Port (0: COM1, >0: COM2)
  23630. Desc: return the COM port used for the floppy drive
  23631. SeeAlso: AX=8401h
  23632. --------b-158401----------------------------------
  23633. INT 15 - HUNTER 16 - SET DISKETTE PORT
  23634. AX = 8401h
  23635. BH = Drive (0: A:, 1: B:)
  23636. BL = Port (0: COM1, >0: COM2)
  23637. Desc: set the COM port used for the floppy drive
  23638. SeeAlso: AX=8400h
  23639. --------B-1585-------------------------------
  23640. INT 15 C - OS HOOK - SysReq KEY ACTIVITY (AT,PS)
  23641. AH = 85h
  23642. AL = SysReq key action (00h pressed, 01h released)
  23643. CF clear
  23644. Return: CF clear if successful
  23645. AH = 00h
  23646. CF set on error
  23647. AH = status (see #00496)
  23648. Notes: called by keyboard decode routine
  23649. the default handler simply returns successfully; programs which wish
  23650. to monitor the SysReq key must hook this call
  23651. the SysReq key is often labeled SysRq
  23652. SeeAlso: INT 09
  23653. --------b-158500----------------------------------
  23654. INT 15 - HUNTER 16 - RESTORE POWER MENU (APM)
  23655. AX = 8500h
  23656. Desc: restore the standard power menu
  23657. SeeAlso: AX=8501h"HUNTER"
  23658. --------b-158501----------------------------------
  23659. INT 15 - HUNTER 16 - SET POWER MENU (APM)
  23660. AX = 8501h
  23661. BL = user software interrupt number
  23662. Desc: install an alternate power menu routine
  23663. SeeAlso: AX=8500h"HUNTER"
  23664. --------B-1586-------------------------------
  23665. INT 15 - BIOS - WAIT (AT,PS)
  23666. AH = 86h
  23667. CX:DX = interval in microseconds
  23668. Return: CF clear if successful (wait interval elapsed)
  23669. CF set on error or AH=83h wait already in progress
  23670. AH = status (see #00496)
  23671. Note: the resolution of the wait period is 977 microseconds on many systems
  23672. because many BIOSes use the 1/1024 second fast interrupt from the AT
  23673. real-time clock chip which is available on INT 70; because newer
  23674. BIOSes may have much more precise timers available, it is not
  23675. possible to use this function accurately for very short delays unless
  23676. the precise behavior of the BIOS is known (or found through testing)
  23677. SeeAlso: AH=41h,AH=83h,INT 1A/AX=FF01h,INT 70
  23678. --------b-1586------------------------------------
  23679. INT 15 - HUNTER 16 - GET/SET SCREEN ATTRIBUTE TABLE
  23680. AH = 86h
  23681. AL = function (00h get, nonzero set)
  23682. BX = 1234h
  23683. DS:SI -> 256-byte Attribute buffer
  23684. Note: In text modes each character has its attribute byte XOR'd with the
  23685. corresponding byte in the attribute table. If the attribute is 15,
  23686. 15 is XOR'd with Table[15]
  23687. --------B-1587-------------------------------
  23688. INT 15 - SYSTEM - COPY EXTENDED MEMORY
  23689. AH = 87h
  23690. CX = number of words to copy (max 8000h)
  23691. ES:SI -> global descriptor table (see #00499)
  23692. Return: CF set on error
  23693. CF clear if successful
  23694. AH = status (see #00498)
  23695. Notes: copy is done in protected mode with interrupts disabled by the default
  23696. BIOS handler; many 386 memory managers perform the copy with
  23697. interrupts enabled
  23698. this function is incompatible with the OS/2 compatibility box
  23699. SeeAlso: AH=88h,AH=89h,INT 1F/AH=90h
  23700. (Table 00498)
  23701. Values for extended-memory copy status:
  23702. 00h source copied into destination
  23703. 01h parity error
  23704. 02h interrupt error
  23705. 03h address line 20 gating failed
  23706. 80h invalid command (PC,PCjr)
  23707. 86h unsupported function (XT,PS30)
  23708. Format of global descriptor table:
  23709. Offset Size Description (Table 00499)
  23710. 00h 16 BYTEs zeros (used by BIOS)
  23711. 10h WORD source segment length in bytes (2*CX-1 or greater)
  23712. 12h 3 BYTEs 24-bit linear source address, low byte first
  23713. 15h BYTE source segment access rights (93h)
  23714. 16h WORD (286) zero
  23715. (386+) extended access rights and high byte of source address
  23716. 18h WORD destination segment length in bytes (2*CX-1 or greater)
  23717. 1Ah 3 BYTEs 24-bit linear destination address, low byte first
  23718. 1Dh BYTE destination segment access rights (93h)
  23719. 1Eh WORD (286) zero
  23720. (386+) extended access rights and high byte of destin. address
  23721. 20h 16 BYTEs zeros (used by BIOS to build CS and SS descriptors)
  23722. --------b-1587------------------------------------
  23723. INT 15 - HUNTER 16 - SET INT 72h VECTOR
  23724. AH = 87h
  23725. DS:DX = new service routine
  23726. Desc: set the INT 72h vector which is called in 2 cases:
  23727. - when the machine is about to turn off or reboot, INT 72h is called
  23728. with AH=0
  23729. - when the machine is powering up INT 72h is called with AH=01h
  23730. Note: the actual INT 72h vector must also be changed with INT 21/AH=25h
  23731. --------B-1588-------------------------------
  23732. INT 15 - SYSTEM - GET EXTENDED MEMORY SIZE (286+)
  23733. AH = 88h
  23734. Return: CF clear if successful
  23735. AX = number of contiguous KB starting at absolute address 100000h
  23736. CF set on error
  23737. AH = status
  23738. 80h invalid command (PC,PCjr)
  23739. 86h unsupported function (XT,PS30)
  23740. Notes: TSRs which wish to allocate extended memory to themselves often hook
  23741. this call, and return a reduced memory size. They are then free to
  23742. use the memory between the new and old sizes at will.
  23743. the standard BIOS only returns memory between 1MB and 16MB; use AH=C7h
  23744. for memory beyond 16MB
  23745. not all BIOSes correctly return the carry flag, making this call
  23746. unreliable unless one first checks whether it is supported through
  23747. a mechanism other than calling the function and testing CF
  23748. SeeAlso: AH=87h,AH=8Ah"Phoenix",AH=C7h,AX=DA88h,AX=E801h,AX=E820h
  23749. --------b-1588------------------------------------
  23750. INT 15 - HUNTER 16 - GET POWER UP KEYS
  23751. AH = 88h
  23752. Return: AH = 00h
  23753. BX = column
  23754. CL = row
  23755. SeeAlso: AH=71h
  23756. --------B-1589-------------------------------
  23757. INT 15 - SYSTEM - SWITCH TO PROTECTED MODE
  23758. AH = 89h
  23759. BL = interrupt number of IRQ0 (IRQ1-7 use next 7 interrupts)
  23760. BH = interrupt number of IRQ8 (IRQ9-F use next 7 interrupts)
  23761. ES:SI -> GDT for protected mode (see #00500)
  23762. Return: CF set on error
  23763. AH = FFh error enabling address line 20
  23764. CF clear if successful
  23765. AH = 00h
  23766. in protected mode at specified address
  23767. BP may be destroyed; all segment registers change
  23768. Notes: BL and BH must be multiples of 8
  23769. the protected-mode CS must reference the same memory as the CS this
  23770. function is called from because execution continues with the address
  23771. following the interrupt call
  23772. SeeAlso: AH=87h,AH=88h,INT 67/AX=DE0Ch
  23773. Format of BIOS switch-to-protected-mode Global Descriptor Table:
  23774. Offset Size Description (Table 00500)
  23775. 00h 8 BYTEs null descriptor (initialize to zeros)
  23776. 08h 8 BYTEs GDT descriptor (see #00501)
  23777. 10h 8 BYTEs IDT descriptor
  23778. 18h 8 BYTEs DS descriptor
  23779. 20h 8 BYTEs ES
  23780. 28h 8 BYTEs SS
  23781. 30h 8 BYTEs CS
  23782. 38h 8 BYTEs uninitialized, used to build descriptor for BIOS CS
  23783. Format of segment descriptor table entry:
  23784. Offset Size Description (Table 00501)
  23785. 00h WORD segment limit, low word
  23786. 02h 3 BYTEs segment base address, low 24 bits
  23787. 05h BYTE access mode (see #00502)
  23788. 06h BYTE 386+ extended access mode (see #00505)
  23789. 07h BYTE 386+ segment base address, high 8 bits
  23790. SeeAlso: #00500,INT 2C/AX=0002h,INT 31/AX=0009h
  23791. Bitfields for segment descriptor table access mode field:
  23792. Bit(s) Description (Table 00502)
  23793. 3-0 segment type (see #00503,#00504)
  23794. 4 descriptor type (1 = application, 0 = system)
  23795. 6-5 descriptor privilege level
  23796. 7 segment is present in RAM
  23797. SeeAlso: #00501,#00505
  23798. (Table 00503)
  23799. Values for system segment descriptor type:
  23800. 0 reserved
  23801. 1 available 16-bit TSS
  23802. 2 LDT
  23803. 3 busy 16-bit TSS
  23804. 4 16-bit call gate
  23805. 5 task gate
  23806. 6 16-bit interrupt gate
  23807. 7 16-bit trap gate
  23808. 8 reserved
  23809. 9 available 32-bit TSS
  23810. 10 reserved
  23811. 11 busy 32-bit TSS
  23812. 12 32-bit call gate
  23813. 13 reserved
  23814. 14 32-bit interrupt gate
  23815. 15 32-bit trap gate
  23816. SeeAlso: #00502,#00504
  23817. Bitfields for application segment descriptor type:
  23818. Bit(s) Description (Table 00504)
  23819. 3 code/data
  23820. 0 date
  23821. 1 code
  23822. ---data segments---
  23823. 2 expand down
  23824. 1 writeable
  23825. ---code segments---
  23826. 2 conforming
  23827. 1 readable
  23828. ------
  23829. 0 accessed
  23830. SeeAlso: #00502,#00503
  23831. Bitfields for 386+ segment descriptor table extended access mode field:
  23832. Bit(s) Description (Table 00505)
  23833. 3-0 high 4 bits of segment limit
  23834. 4 available
  23835. 5 reserved (0)
  23836. 6 default operation size (1 = 32 bits, 0 = 16 bits)
  23837. 7 granularity (1 = 4K, 0 = byte)
  23838. SeeAlso: #00501,#00502,#02557
  23839. --------b-158900----------------------------------
  23840. INT 15 - HUNTER 16 - GET POWER MODE
  23841. AX = 8900h
  23842. Return: AH = 00h
  23843. BL = current power mode
  23844. 00h Standard Power Mode (SPM)
  23845. 01h Advanced Power Mode (APM)
  23846. SeeAlso: AX=8901h
  23847. --------b-158901----------------------------------
  23848. INT 15 - HUNTER 16 - SET POWER MODE
  23849. AX = 8901h
  23850. BL = new mode
  23851. 00h Standard Power Mode (SPM)
  23852. 01h Advanced Power Mode (APM)
  23853. Return: AH = 00h
  23854. SeeAlso: AX=8900h
  23855. --------b-158A------------------------------------
  23856. INT 15 - HUNTER 16 - CONTROL POWER INPUT (SPM)
  23857. AH = 8Ah
  23858. AL = new state of Power Input (00h disabled, nonzero enabled)
  23859. SI = 1234h
  23860. DI = 5678h
  23861. Return: AH = status
  23862. 00h success
  23863. FFh failure
  23864. Desc: Enable or disable Power Input. When Power Input is disabled the AC
  23865. adapter will neither charge the batteries nor supply power to the
  23866. Hunter 16. Disable Power Input if using Alkaline batteries.
  23867. --------b-158A-------------------------------
  23868. INT 15 - Phoenix BIOS v4.0 - GET BIG MEMORY SIZE
  23869. AH = 8Ah
  23870. Return: DX:AX = extended memory size in K
  23871. SeeAlso: AH=88h,AX=E801h,AX=E820h
  23872. --------b-158B------------------------------------
  23873. INT 15 - HUNTER 16 - GET/SET CHARGER TEMPERATURE OVERRIDE
  23874. AH = 8Bh
  23875. AL = function
  23876. 00h get
  23877. Return: BH = Maximum charging temperature
  23878. Temp = -20 + (n * 0.63) degrees Centigrade
  23879. BL = Minimum charging temperature
  23880. else set
  23881. BH = maximum charging temperature (as above)
  23882. BL = minimum charging temperature (as above)
  23883. Return: AH = status
  23884. 00h success
  23885. FFh failure
  23886. Desc: get/set the temperature interval within which the charger should
  23887. operate
  23888. --------b-158C------------------------------------
  23889. INT 15 - HUNTER 16 - GET/SET POWER SAVE ENTRY FLAG
  23890. AH = 8Ch
  23891. AL = function
  23892. 00h get
  23893. Return: BX = which operations disable power save (see #00506)
  23894. else set
  23895. BX = which operations should disable power save (see #00506)
  23896. SeeAlso: AH=8Dh
  23897. Bitfields for HUNTER 16 operations disabling power save:
  23898. Bit(s) Description (Table 00506)
  23899. 0 INT 10h prevents power save
  23900. 1 INT 13h prevents power save
  23901. 2 INT 14h prevents power save
  23902. 3 INT 15h prevents power save
  23903. 4 INT 1Ah prevents power save
  23904. 5 INT 21h prevents power save
  23905. 6 direct write to video RAM prevents power save
  23906. 7 access to 8250 UART prevents power save
  23907. 8 access to 8253 (Sound) prevents power save
  23908. --------b-158D------------------------------------
  23909. INT 15 - HUNTER 16 - GET/SET BOOST CHARGE (SPM)
  23910. AH = 8Dh
  23911. AL = function
  23912. 00h get
  23913. Return: AL = Fast Charge state (00h prevented, else allowed)
  23914. nonzero set
  23915. BH = Fast Charge state (00h prevent, nonzero allow)
  23916. Return: AH = status
  23917. 00h success
  23918. FFh failure
  23919. Desc: control whether Fast Charging (200ma rather than 70ma) is allowed
  23920. SeeAlso: AH=8Ch
  23921. --------B-1590-------------------------------
  23922. INT 15 - OS HOOK - DEVICE BUSY (AT,PS)
  23923. AH = 90h
  23924. AL = device type (see #00507)
  23925. ES:BX -> request block for type codes 80h through BFh
  23926. CF clear
  23927. Return: CF set if wait time satisfied
  23928. CF clear if driver must perform wait
  23929. AH = 00h
  23930. Notes: type codes are allocated as follows:
  23931. 00-7F non-reentrant devices; OS must arbitrate access
  23932. 80-BF reentrant devices; ES:BX points to a unique control block
  23933. C0-FF wait-only calls, no complementary INT 15/AH=91h call
  23934. floppy and hard disk BIOS code uses this call to implement a timeout;
  23935. for device types 00h and 01h, a return of CF set means that the
  23936. timeout expired before the disk responded.
  23937. this function should be hooked by a multitasker to allow other tasks
  23938. to execute while the BIOS is waiting for I/O completion; the default
  23939. handler merely returns with AH=00h and CF clear
  23940. SeeAlso: AH=91h,INT 13/AH=00h,INT 17/AH=00h,INT 1A/AH=83h
  23941. (Table 00507)
  23942. Values for device type:
  23943. 00h disk
  23944. 01h diskette
  23945. 02h keyboard
  23946. 03h PS/2 pointing device
  23947. 21h waiting for keyboard input (Phoenix BIOS)
  23948. 80h network
  23949. FBh digital sound (Tandy)
  23950. FCh disk reset (PS)
  23951. FDh diskette motor start
  23952. FEh printer
  23953. --------B-1591-------------------------------
  23954. INT 15 - OS HOOK - DEVICE POST (AT,PS)
  23955. AH = 91h
  23956. AL = device type (see #00507)
  23957. ES:BX -> request block for type codes 80h through BFh
  23958. CF clear
  23959. Return: AH = 00h
  23960. Note: this function should be hooked by a multitasker to allow other tasks
  23961. to execute while the BIOS is waiting for I/O completion; the default
  23962. handler merely returns with AH=00h and CF clear
  23963. SeeAlso: AH=90h
  23964. --------B-1592-------------------------------
  23965. INT 15 - IBM SurePath BIOS - Officially "Private" Function
  23966. AH = 92h
  23967. SeeAlso: AH=07h"IBM",AH=3Eh"IBM"
  23968. --------B-15A0-------------------------------
  23969. INT 15 - IBM SurePath BIOS - ACCESS LOADABLE-ABIOS SIGNATURE
  23970. AH = A0h
  23971. AL = function
  23972. 00h get loadable-ABIOS signature
  23973. Return: BL = signature value
  23974. 00h loadable-ABIOS prompting not required
  23975. A1h loadable-ABIOS prompting is required
  23976. 01h write loadable-ABIOS signature
  23977. BL = new signature value
  23978. 00h loadable-ABIOS prompting not required
  23979. A1h loadable-ABIOS prompting is required
  23980. Return: CF clear if successful
  23981. CF set on error
  23982. AH = status
  23983. 00h successful
  23984. 01h invalid subfunction
  23985. 02h unable to read/write signature
  23986. 86h function not supported
  23987. Note: IBM classifies this function as optional
  23988. SeeAlso: AH=08h"IBM"
  23989. --------x-15A100-----------------------------
  23990. INT 15 U - AMI PCI BIOS - SET ??? FLAG
  23991. AX = A100h
  23992. Return: AX = 0000h
  23993. CF clear
  23994. BX,CX,DI may be destroyed
  23995. Desc: sets bit 7 of CMOS RAM location 37h and updates the CMOS checksum in
  23996. locations 3Eh and 3Fh
  23997. Notes: in the examined version of the BIOS, nonzero values in AL cause it to
  23998. drop through to checking the next possible value of AH, i.e. only
  23999. subfunction 00h is supported
  24000. also supported by Dell XPS P90 and IBM PS/PV 6384, which also use
  24001. AMI BIOSes
  24002. --------B-15AB-------------------------------
  24003. INT 15 - IBM SurePath BIOS - Officially "Private" Function
  24004. AH = ABh
  24005. SeeAlso: AH=07h"IBM",AH=3Eh"IBM"
  24006. ----------15B001CX5354-----------------------
  24007. INT 15 - Stac ??? - INSTALLATION CHECK
  24008. AX = B001h
  24009. CX = 5354h ('ST')
  24010. DX = 4143h ('AC')
  24011. Return: AX = 4F4Bh ('OK') if installed
  24012. Note: this function is called by Novell DOS 7 NWCACHE v1.01
  24013. --------n-15BA10-----------------------------
  24014. INT 15 - HP OmniShare - Pen Driver - REPORT PEN CONTROL AREA EVENT
  24015. AX = BA10h
  24016. BL = event
  24017. 00h the pen left control areas
  24018. 01h the pen entered the Brightness- area
  24019. 02h the pen entered the Brightness+ area
  24020. 03h the pen entered the Contrast- area
  24021. 04h the pen entered the Contrast+ area
  24022. Return: CF clear if successfully processed
  24023. CF set on error (function not supported, ie. not an OmniShare BIOS)
  24024. Note: The pen driver is responsible for detecting when the pen enters and
  24025. leaves control areas of the OmniShare tablet, and notifying the BIOS.
  24026. The BIOS manages the events, including the autorepetition, and sets
  24027. the status LEDs.
  24028. SeeAlso: AX=BA20h,AX=BA13h
  24029. --------n-15BA11-----------------------------
  24030. INT 15 - HP OmniShare - Pen Driver - SET THE COMMUNICATION LED STATE
  24031. AX = BA11h
  24032. BL = new LED state (00h steady, 01h flashing)
  24033. Return: CF clear if successful
  24034. CF set on error
  24035. Note: this function is for use by communication software to give visual
  24036. feedback of active communications even if the display is in standby
  24037. mode.
  24038. SeeAlso: AX=BA10h,AX=BA24h
  24039. --------n-15BA12-----------------------------
  24040. INT 15 - HP OmniShare - Pen Driver - STORE PEN BATTERY CHARGE
  24041. AX = BA12h
  24042. BL = new battery state (00h good, 01h low charge)
  24043. Return: CF set on error
  24044. CF clear if successfully stored in CMOS
  24045. Note: The last report will be displayed by the Power-On Self Test the next
  24046. time the OmniShare boots. This allows something meaningful to be
  24047. reported even if the pen is not detected during the POST.
  24048. SeeAlso: AX=BA13h
  24049. --------n-15BA13-----------------------------
  24050. INT 15 - HP OmniShare - Pen Driver - GET PEN BATTERY CHARGE
  24051. AX = BA13h
  24052. Return: CF clear if successful
  24053. BL = pen battery state (00h good, 01h low charge)
  24054. CF set on error
  24055. Note: returns the last value set by AX=BA12h.
  24056. SeeAlso: AX=BA12h
  24057. --------p-15BA20-----------------------------
  24058. INT 15 - HP OmniShare - STANDBY.COM - INSTALLATION CHECK
  24059. AX = BA20h
  24060. Return: CF clear if successful (installed)
  24061. CF set on error (not installed)
  24062. Notes: The display controller can enter a standby mode after a given timeout,
  24063. to conserve power or (for the OmniShare) to increase the life of
  24064. the backlight.
  24065. A side effect of standby mode is that the communications LED turns on
  24066. automatically when the display is in standby mode. This is done in
  24067. hardware, and is intended to show that the unit is still on.
  24068. SeeAlso: AX=BA10h,AX=BA20h,AX=BA22h,AX=BA24h,AX=BA26h
  24069. --------p-15BA21-----------------------------
  24070. INT 15 - HP OmniShare - STANDBY.COM - SET STANDBY DURATION
  24071. AX = BA21h
  24072. BL = new timeout before standby mode in minutes (01h-0Fh)
  24073. 00h to disable automatic switch to standby mode
  24074. Return: CF clear if successful
  24075. CF set on error (function not supported)
  24076. Note: The actual timeout with a GD6205 controller is ((N*64)-32) seconds,
  24077. instead of (N*60) seconds as documented.
  24078. SeeAlso: AX=BA20h,AX=BA22h
  24079. --------p-15BA22-----------------------------
  24080. INT 15 - HP OmniShare - STANDBY.COM - GET STANDBY DURATION
  24081. AX = BA22h
  24082. Return: CF clear if successful
  24083. BL = standy duration in minutes (01h-0Fh), or 00h if disabled
  24084. CF set on error (function not supported)
  24085. Note: The actual timeout with a GD6205 controller is ((N*64)-32) seconds,
  24086. instead of (N*60) seconds as documented.
  24087. SeeAlso: AX=BA20h,AX=BA21h
  24088. --------p-15BA23-----------------------------
  24089. INT 15 - HP OmniShare - STANDBY.COM - TURN ON THE SCREEN IMMEDIATELY
  24090. AX = BA23h
  24091. Return: CF clear if successful
  24092. CF set on error
  24093. SeeAlso: AX=BA11h,AX=BA20h,AX=BA24h
  24094. --------p-15BA24-----------------------------
  24095. INT 15 - HP OmniShare - STANDBY.COM - TURN OFF THE SCREEN IMMEDIATELY
  24096. AX = BA24h
  24097. Return: CF clear if successful
  24098. CF set on error
  24099. Note: This function is not implemented yet. Reserved for future versions
  24100. of the OmniShare.
  24101. SeeAlso: AX=BA11h,AX=BA20h,AX=BA23h
  24102. --------p-15BA25-----------------------------
  24103. INT 15 - HP OmniShare - STANDBY.COM - PREPARE FOR UNINSTALL
  24104. AX = BA25h
  24105. Return: CF clear if successful
  24106. AX = 25BAh
  24107. BX = PSP of STANDBY.COM resident portion
  24108. DX:CX -> previous INT 15 handler
  24109. CF set on error
  24110. Note: This function is used internally by the STANDBY.COM /u option, and
  24111. should not be used by application programs.
  24112. SeeAlso: AX=BA20h
  24113. --------p-15BA26-----------------------------
  24114. INT 15 - HP OmniShare - STANDBY.COM - IS THE DISPLAY IN STANDBY MODE?
  24115. AX = BA26h
  24116. Return: CF clear if successful
  24117. AL = display state (00h active, 01h in standby mode)
  24118. CF set on error (function not supported)
  24119. SeeAlso: AX=BA20h,AX=BA23h
  24120. --------p-15BA27-----------------------------
  24121. INT 15 - HP OmniShare - STANDBY.COM - RESERVED FUNCTIONS
  24122. AX = BA27h to BA2Fh
  24123. Desc: reserved for future use
  24124. --------b-15BC-------------------------------
  24125. INT 15 - Phoenix 386 BIOS - DETERMINE CPU SPEED FOR DELAY LOOPS
  24126. AH = BCh
  24127. Return: CF clear
  24128. (Phoenix 1.10 10a) BYTE 0040h:00B0h set to delay loop count
  24129. (Dell 4xxDE BIOS A11) WORD 0040h:00ECh set to delay loop count
  24130. Note: this function reads system timer channel 0 twice, then does
  24131. calculations on the returned values to determine the delay loop
  24132. counter needed by the BIOS for beeps and floppy timeouts
  24133. SeeAlso: AX=2305h,MEM 0040h:00B0h
  24134. --------E-15BF00-----------------------------
  24135. INT 15 - Rational Systems DOS/16M - ???
  24136. AX = BF00h
  24137. ???
  24138. Return: ???
  24139. Note: under DESQview/X 1.02 DVDOS4GX.DVR, this call is identical to AX=BF02h
  24140. SeeAlso: AX=BF02h
  24141. --------E-15BF01-----------------------------
  24142. INT 15 - Rational Systems DOS/16M - ???
  24143. AX = BF01h
  24144. ???
  24145. Return: ???
  24146. Notes: under DESQview/X 1.02 DVDOS4GX.DVR, this call is identical to AX=BF02h
  24147. called by DOS/4GW
  24148. SeeAlso: AX=BF00h,AX=BF02h
  24149. --------E-15BF02DX0000-----------------------
  24150. INT 15 - Rational Systems DOS/16M - INSTALLATION CHECK
  24151. AX = BF02h
  24152. DX = 0000h
  24153. Return: DX = nonzero if installed
  24154. DX:SI -> XBRK structure (see #00508)
  24155. Note: this function is also supported by DOS/4G
  24156. SeeAlso: AX=BF01h,AX=BFDCh,AX=BFDEh/BX=0000h
  24157. SeeAlso: INT 21/AH=FFh/DH=0Eh,INT 2F/AH=A1h,INT 2F/AX=F100h,INT 2F/AX=FBA1h
  24158. Format of DOS/16M XBRK structure:
  24159. Offset Size Description (Table 00508)
  24160. 00h DWORD linear address of first available byte
  24161. 04h DWORD linear address of last available byte + 1 ???
  24162. 08h DWORD real-mode address of XBRK structure???
  24163. 0Ch DWORD ???
  24164. 10h 2 BYTEs ???
  24165. 12h WORD segment of ???
  24166. 14h 8 BYTEs ???
  24167. 1Ch 512 BYTEs protected-mode IDT
  24168. 21Ch N BYTEs protected-mode GDT
  24169. --------E-15BF03-----------------------------
  24170. INT 15 - Rational Systems DOS/4GW - UNINSTALL???
  24171. AX = BF03h
  24172. BX = PSP segment of extender
  24173. ???
  24174. Return: ???
  24175. Note: if BX is not the PSP segment of the extender, it passes the call down
  24176. the INT 15 chain; this allows nested instances of the extender
  24177. SeeAlso: AX=BF06h
  24178. --------E-15BF04-----------------------------
  24179. INT 15 - Rational Systems DOS/4GW - ???
  24180. AX = BF04h
  24181. BX = PSP segment of extender
  24182. Return: nothing???
  24183. Notes: if BX is not the PSP segment of the extender, it passes the call down
  24184. the INT 15 chain; this allows nested instances of the extender
  24185. grabs INT 2Fh and installs handlers for INT 2F/AX=1605h-1607h
  24186. SeeAlso: INT 2F/AX=1607h/BX=22C0h
  24187. --------E-15BF05-----------------------------
  24188. INT 15 - Rational Systems DOS/4GW - INITIALIZE PROTECTED-MODE INTERFACE
  24189. AX = BF05h
  24190. BX = PSP segment of extender
  24191. Return: nothing???
  24192. Notes: if BX is not the PSP segment of the extender, it passes the call down
  24193. the INT 15 chain; this allows nested instances of the extender
  24194. calls INT 67/AX=DE01h if ???
  24195. --------E-15BF06-----------------------------
  24196. INT 15 - Rational Systems DOS/4GW - ???
  24197. AX = BF06h
  24198. BX = PSP segment of extender
  24199. ???
  24200. Return: ???
  24201. Note: if BX is not the PSP segment of the extender, it passes the call down
  24202. the INT 15 chain; this allows nested instances of the extender
  24203. SeeAlso: AX=BF03h
  24204. --------E-15BFDCDX0000-----------------------
  24205. INT 15 - Rational Systems DOS/4GW - INSTALLATION CHECK
  24206. AX = BFDCh
  24207. DX = 0000h
  24208. SI = 0000h
  24209. Return: DX = nonzero if installed
  24210. DX:SI -> XBRK structure (see #00508)
  24211. SeeAlso: AX=BF02h
  24212. --------E-15BFDEBX0000-----------------------
  24213. INT 15 - DESQview/X - DVDOS4GX.DVR - INSTALLATION CHECK
  24214. AX = BFDEh
  24215. BX = 0000h
  24216. Return: AX = ??? (0003h)
  24217. BX = FFFFh
  24218. SeeAlso: AX=BF02h
  24219. --------E-15BFDEBX0001-----------------------
  24220. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET PROCESS MANAGER NAME
  24221. AX = BFDEh
  24222. BX = 0001h
  24223. Return: BX = 0000h (success)
  24224. CX:DX -> name of process manager executable
  24225. SeeAlso: AX=BFDEh/BX=0000h
  24226. --------E-15BFDEBX0002-----------------------
  24227. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
  24228. AX = BFDEh
  24229. BX = 0002h
  24230. CX:DX -> ???
  24231. Return: BX = 0000h (success)
  24232. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0003h
  24233. --------E-15BFDEBX0003-----------------------
  24234. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
  24235. AX = BFDEh
  24236. BX = 0003h
  24237. Return: BX = 0000h (success)
  24238. CX:DX -> ???
  24239. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0002h
  24240. --------E-15BFDEBX0004-----------------------
  24241. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  24242. AX = BFDEh
  24243. BX = 0004h
  24244. CL = ???
  24245. Return: BX = 0000h (success)
  24246. CX:DX -> XBRK structure (see #00508)
  24247. SeeAlso: AX=BFDEh/BX=0000h
  24248. --------E-15BFDEBX0005-----------------------
  24249. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  24250. AX = BFDEh
  24251. BX = 0005h
  24252. CX = new value for ???
  24253. Return: BX = 0000h (success)
  24254. AX = old value of ???
  24255. DS:SI -> ??? (if AX nonzero on return)
  24256. ES:DI -> ??? (if AX zero on return)
  24257. Note: called by DOS4GW.EXE
  24258. SeeAlso: AX=BFDEh/BX=0000h
  24259. --------E-15BFDEBX0006-----------------------
  24260. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
  24261. AX = BFDEh
  24262. BX = 0006h
  24263. Return: BX = 0000h (success)
  24264. AH = interrupt number??? (BEh)
  24265. CX:DX = ???
  24266. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0007h,INT BE"DESQview"
  24267. --------E-15BFDEBX0007-----------------------
  24268. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
  24269. AX = BFDEh
  24270. BX = 0007h
  24271. CX:DX = ???
  24272. Return: BX = 0000h (success)
  24273. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0006h
  24274. --------E-15BFDEBX0008-----------------------
  24275. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  24276. AX = BFDEh
  24277. BX = 0008h
  24278. CX = segment of ???
  24279. DS = ???
  24280. Return: BX = status
  24281. 0000h successful
  24282. AL = ??? (80h or C0h)
  24283. DX = ??? (0603h) if AL=C0h
  24284. 0001h failed
  24285. AX = 0000h
  24286. Note: called by DOS4GW.EXE
  24287. SeeAlso: AX=BFDEh/BX=0000h
  24288. --------E-15BFDEBX0009-----------------------
  24289. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET PROTECTED MODE PROGRAM LOADER
  24290. AX = BFDEh
  24291. BX = 0009h
  24292. Return: BX = 0000h (success)
  24293. CX:DX -> full pathname to LOAD32.EXP
  24294. SeeAlso: AX=BFDEh/BX=0000h
  24295. --------E-15BFDEBX000A-----------------------
  24296. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - DECREMENT ???
  24297. AX = BFDEh
  24298. BX = 000Ah
  24299. Return: BX = 0000h (success)
  24300. AX = new value of ??? counter
  24301. Notes: also resets a variety of values if the counter goes negative
  24302. called by DOS4GW.EXE
  24303. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Bh
  24304. --------E-15BFDEBX000B-----------------------
  24305. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - INCREMENT ???
  24306. AX = BFDEh
  24307. BX = 000Bh
  24308. Return: AX = new value of ??? counter
  24309. Note: called by DOS4GW.EXE
  24310. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Ah
  24311. --------E-15BFDEBX000C-----------------------
  24312. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  24313. AX = BFDEh
  24314. BX = 000Ch
  24315. CL = ???
  24316. 00h
  24317. nonzero
  24318. Return: ???
  24319. SeeAlso: AX=BFDEh/BX=0000h
  24320. --------E-15BFDEBX000D-----------------------
  24321. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  24322. AX = BFDEh
  24323. BX = 000Dh
  24324. ???
  24325. Return: ???
  24326. SeeAlso: AX=BFDEh/BX=0000h
  24327. --------E-15BFDEBX000E-----------------------
  24328. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  24329. AX = BFDEh
  24330. BX = 000Eh
  24331. DX:CX -> ???
  24332. Return: AX = segment of handle for calling task
  24333. BX = ??? (probably destroyed)
  24334. DX:CX -> ???
  24335. SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Fh,AX=BFDEh/BX=0013h
  24336. --------E-15BFDEBX000F-----------------------
  24337. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
  24338. AX = BFDEh
  24339. BX = 000Fh
  24340. Return: AX = segment of handle for calling task
  24341. BX = ??? (probably destroyed)
  24342. DX:CX -> ???
  24343. Note: identical to AX=BFDEh/BX=000Eh with CX:DX = 0000h:0000h
  24344. SeeAlso: AX=BFDEh/BX=000Eh,AX=BFDEh/BX=0010h
  24345. --------E-15BFDEBX0010-----------------------
  24346. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET TASK HANDLE
  24347. AX = BFDEh
  24348. BX = 0010h
  24349. Return: AX = segment of caller's task handle
  24350. BX destroyed
  24351. SeeAlso: AX=BFDEh/BX=000Fh
  24352. --------E-15BFDEBX0011-----------------------
  24353. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
  24354. AX = BFDEh
  24355. BX = 0011h
  24356. Return: CX = code segment of DVDOS4GX.DVR
  24357. BX = ??? (0004h)
  24358. SeeAlso: AX=BFDEh/BX=0000h
  24359. --------E-15BFDEBX0012-----------------------
  24360. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
  24361. AX = BFDEh
  24362. BX = 0012h
  24363. Return: DX = code segment of DVDOS4GX.DVR
  24364. BX = ??? (012Ch)
  24365. CX = ??? (0006h)
  24366. SeeAlso: AX=BFDEh/BX=0000h
  24367. --------E-15BFDEBX0013-----------------------
  24368. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
  24369. AX = BFDEh
  24370. BX = 0013h
  24371. Return: DX:CX -> ???
  24372. SeeAlso: AX=BFDEh/BX=000Eh
  24373. --------E-15BFDEBX0014-----------------------
  24374. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - LOCK ??? MAILBOX
  24375. AX = BFDEh
  24376. BX = 0014h
  24377. CX = index of ??? mailbox
  24378. (0000h-0004h valid, but no range checking done)
  24379. Return: AX,BX destroyed
  24380. SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0017h
  24381. --------E-15BFDEBX0015-----------------------
  24382. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - UNLOCK ??? MAILBOX
  24383. AX = BFDEh
  24384. BX = 0015h
  24385. CX = index of ??? mailbox
  24386. (0000h-0004h valid, but no range checking done)
  24387. Return: AX,BX destroyed
  24388. SeeAlso: AX=BFDEh/BX=0014h,AX=BFDEh/BX=0016h
  24389. --------E-15BFDEBX0016-----------------------
  24390. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - CHECK IF ??? MAILBOX OWNED
  24391. AX = BFDEh
  24392. BX = 0016h
  24393. CX = index of ??? mailbox
  24394. (0000h-0004h valid, but no range checking done)
  24395. Return: AX = status
  24396. 0000h no one owns mailbox
  24397. 0001h mailbox has an owner
  24398. BX destroyed
  24399. SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0017h
  24400. --------E-15BFDEBX0017-----------------------
  24401. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ??? MAILBOX OWNER
  24402. AX = BFDEh
  24403. BX = 0017h
  24404. CX = index of ??? mailbox
  24405. (0000h-0004h valid, but no range checking done)
  24406. Return: AX = segment of mailbox owner's handle
  24407. BX = segment of caller's task handle
  24408. SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0016h
  24409. --------E-15BFDEBXFFFD-----------------------
  24410. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
  24411. AX = BFDEh
  24412. BX = FFFDh
  24413. Return: CX:DX = ???
  24414. SeeAlso: AX=BFDEh/BX=FFFEh
  24415. --------E-15BFDEBXFFFE-----------------------
  24416. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
  24417. AX = BFDEh
  24418. BX = FFFEh
  24419. CX:DX = ???
  24420. SeeAlso: AX=BFDEh/BX=FFFDh
  24421. --------E-15BFDEBXFFFF-----------------------
  24422. INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - NOP
  24423. AX = BFDEh
  24424. BX = FFFFh
  24425. SeeAlso: AX=BFDEh/BX=0000h
  24426. --------B-15C0-------------------------------
  24427. INT 15 - SYSTEM - GET CONFIGURATION (XT after 1/10/86,AT mdl 3x9,CONV,XT286,PS)
  24428. AH = C0h
  24429. Return: CF set if BIOS doesn't support call
  24430. CF clear on success
  24431. ES:BX -> ROM table (see #00509)
  24432. AH = status
  24433. 00h successful
  24434. 86h unsupported function
  24435. Notes: the 1/10/86 XT BIOS returns an incorrect value for the feature byte
  24436. the configuration table is at F000h:E6F5h in 100% compatible BIOSes
  24437. Dell machines contain the signature "DELL" or "Dell" at absolute FE076h
  24438. and a model byte at absolute address FE845h (see #00516)
  24439. Hewlett-Packard machines contain the signature "HP" at F000h:00F8h and
  24440. a product identifier at F000h:00FAh (see #00519)
  24441. Compaq machines can be identified by the signature string "COMPAQ" at
  24442. F000h:FFEAh, and is preceded by additional information (see #00517)
  24443. Tandy 1000 machines contain 21h in the byte at F000h:C000h and FFh in
  24444. the byte at FFFFh:000Eh; Tandy 1000SL/TL machines only provide the
  24445. first three data bytes (model/submodel/revision) in the returned
  24446. table
  24447. Toshiba laptops contain the signature "TOSHIBA" at FE010h as part of
  24448. a laptop information record at F000h:E000h (see #00520)
  24449. some AST machines contain the string "COPYRIGHT AST RESEARCH" one byte
  24450. past the end of the configuration table
  24451. the Phoenix 386 BIOS contains a second version and date string
  24452. (presumably the last modification for that OEM version) beginning at
  24453. F000h:FFD8h, with each byte doubled (so that both ROM chips contain
  24454. the complete information)
  24455. SeeAlso: AH=C7h,AH=C9h,AX=D100h,AX=D103h
  24456. Format of ROM configuration table:
  24457. Offset Size Description (Table 00509)
  24458. 00h WORD number of bytes following
  24459. 02h BYTE model (see #00515)
  24460. 03h BYTE submodel (see #00515)
  24461. 04h BYTE BIOS revision: 0 for first release, 1 for 2nd, etc.
  24462. 05h BYTE feature byte 1 (see #00510)
  24463. 06h BYTE feature byte 2 (see #00511)
  24464. 07h BYTE feature byte 3 (see #00512)
  24465. 08h BYTE feature byte 4 (see #00513)
  24466. 09h BYTE feature byte 5 (see #00514)
  24467. ??? (08h) (Phoenix 386 v1.10)
  24468. ??? (0Fh) (Phoenix 486 v1.03 PCI)
  24469. ---AWARD BIOS---
  24470. 0Ah N BYTEs AWARD copyright notice
  24471. ---Phoenix BIOS---
  24472. 0Ah BYTE ??? (00h)
  24473. 0Bh BYTE major version
  24474. 0Ch BYTE minor version (BCD)
  24475. 0Dh 4 BYTEs ASCIZ string "PTL" (Phoenix Technologies Ltd)
  24476. ---Quadram Quad386---
  24477. 0Ah 17 BYTEs ASCII signature string "Quadram Quad386XT"
  24478. Bitfields for feature byte 1:
  24479. Bit(s) Description (Table 00510)
  24480. 7 DMA channel 3 used by hard disk BIOS
  24481. 6 2nd 8259 installed
  24482. 5 Real-Time Clock installed
  24483. 4 INT 15/AH=4Fh called upon INT 09h
  24484. 3 wait for external event (INT 15/AH=41h) supported
  24485. 2 extended BIOS area allocated (usually at top of RAM)
  24486. 1 bus is Micro Channel instead of ISA
  24487. 0 system has dual bus (Micro Channel + ISA)
  24488. SeeAlso: #00509,#00511
  24489. Bitfields for feature byte 2:
  24490. Bit(s) Description (Table 00511)
  24491. 7 32-bit DMA supported
  24492. 6 INT 16/AH=09h (keyboard functionality) supported (see #00585)
  24493. 5 INT 15/AH=C6h (get POS data) supported
  24494. 4 INT 15/AH=C7h (return memory map info) supported
  24495. 3 INT 15/AH=C8h (en/disable CPU functions) supported
  24496. 2 non-8042 keyboard controller
  24497. 1 data streaming supported
  24498. 0 reserved
  24499. SeeAlso: #00509,#00512,AH=C6h,AH=C7h,AH=C8h,INT 16/AH=09h
  24500. Bitfields for feature byte 3:
  24501. Bit(s) Description (Table 00512)
  24502. 7 not used
  24503. 6-5 reserved
  24504. 4 POST supports ROM-to-RAM enable/disable
  24505. 3 SCSI subsystem supported on system board
  24506. 2 information panel installed
  24507. 1 IML (Initial Machine Load) system (BIOS loaded from disk)
  24508. 0 SCSI supported in IML
  24509. SeeAlso: #00509,#00511,#00512
  24510. Bitfields for feature byte 4:
  24511. Bit(s) Description (Table 00513)
  24512. 7 IBM "private" (set on N51SX, CL57SX)
  24513. 6 system has EEPROM
  24514. 5-3 ABIOS presence
  24515. 001 not supported
  24516. 010 supported in ROM
  24517. 011 supported in RAM (must be loaded)
  24518. 2 "private"
  24519. 1 system supports memory split at/above 16M
  24520. 0 POSTEXT directly supported by POST
  24521. SeeAlso: #00509,#00512,#00514
  24522. Bitfields for feature byte 5 (IBM):
  24523. Bit(s) Description (Table 00514)
  24524. 7-5 IBM "private"
  24525. 4-2 reserved
  24526. 1 system has enhanced mouse mode
  24527. 0 flash EPROM
  24528. SeeAlso: #00509,#00513
  24529. (Table 00515)
  24530. Values for model/submodel/revision:
  24531. Model Submdl Rev BIOS date System
  24532. FFh * * 04/24/81 PC (original)
  24533. FFh * * 10/19/81 PC (some bugfixes)
  24534. FFh * * 10/27/82 PC (HD, 640K, EGA support)
  24535. FFh 00h rev ??? Tandy 1000SL
  24536. FFh 01h rev ??? Tandy 1000TL
  24537. FFh 46h *** ??? Olivetti M15
  24538. FEh * * 08/16/82 PC XT
  24539. FEh * * 11/08/82 PC XT and Portable
  24540. FEh * * ../..x.. Toshiba laptops up to ~1987
  24541. ("x"=product ID) (see #00521)
  24542. FEh 43h *** ??? Olivetti M240
  24543. FEh A6h ??? ??? Quadram Quad386
  24544. FDh * * 06/01/83 PCjr
  24545. FCh * * 01/10/84 AT models 068,099 6 MHz 20MB
  24546. FCh * * 02/25/93 Linux DOSEMU (all versions)
  24547. FCh 00h 00h ??? PC3270/AT
  24548. FCh 00h 01h 06/10/85 AT model 239 6 MHz 30MB
  24549. FCh 00h > 01h ??? 7531/2 Industrial AT
  24550. FCh 01h 00h 11/15/85 AT models 319,339 8 MHz, Enh Keyb, 3.5"
  24551. FCh 01h 00h 09/17/87 Tandy 3000
  24552. FCh 01h 00h ../..x.. Toshiba laptops since ~1988
  24553. ("x"=product ID) (see #00521)
  24554. FCh 01h 00h 03/08/93 Compaq DESKPRO/i
  24555. FCh 01h 00h various Compaq DESKPRO, SystemPro, ProSignia
  24556. FCh 01h 00h 07/20/93 Zenith Z-Lite 425L
  24557. FCh 01h 00h 04/09/90 AMI BIOS
  24558. FCh 01h 20h 06/10/92 AST
  24559. FCh 01h 30h ??? Tandy 3000NL
  24560. FCh 01h ??? ??? Compaq 286/386
  24561. FCh 02h 00h 04/21/86 PC XT-286
  24562. FCh 02h 00h various Compaq LTE Lite
  24563. FCh 02h 00h 08/05/93 Compaq Contura 486/486c/486cx
  24564. FCh 02h 00h 08/11/88 SoftWindows 1.0.1 (Power Macintosh)
  24565. FCh 04h 00h 02/13/87 ** PS/2 Model 50 (10 MHz/1 ws 286)
  24566. FCh 04h 01h 05/09/87 PS/2 Model 50 (10 Mhz 286, LW-type 32)
  24567. FCh 04h 02h ??? PS/2 Model 50
  24568. FCh 04h 02h 01/28/88 PS/2 Model 50Z (10 Mhz 286, LW-type 33)
  24569. FCh 04h 03h 04/18/88 PS/2 Model 50Z (10 MHz/0 ws 286)
  24570. FCh 04h 04h ??? PS/2 Model 50Z
  24571. FCh 05h 00h 02/13/87 ** PS/2 Model 60 (10 MHz 286)
  24572. FCh 06h 00h ??? IBM 7552-140 "Gearbox"
  24573. FCh 06h 01h ??? IBM 7552-540 "Gearbox"
  24574. FCh 08h *** ??? Epson, unknown model
  24575. FCh 08h 00h ??? PS/2 Model 25/286
  24576. FCh 09h 00h ??? PS/2 Model 25 (10 MHz 286)
  24577. FCh 09h 00h 08/25/88 PS/2 Model 30 286 (10 Mhz, LW-type 37)
  24578. FCh 09h 02h 06/28/89 PS/2 Model 30-286
  24579. FCh 09h 02h 06/28/89 PS/2 Model 25 286 (10 Mhz, LW-type 37)
  24580. FCh 0Bh 00h 12/01/89 PS/1 (LW-Type 44)
  24581. FCh 0Bh 00h 02/16/90 PS/1 Model 2011 (10 MHz 286)
  24582. FCh 20h 00h 02/18/93 Compaq ProLinea
  24583. FCh 25h 09h 12/07/91 PS/2 Model 56 SLC (20 MHz 386SLC)
  24584. FCh 30h *** ??? Epson, unknown model
  24585. FCh 31h *** ??? Epson, unknown model
  24586. FCh 33h *** ??? Epson, unknown model
  24587. FCh 42h *** ??? Olivetti M280
  24588. FCh 45h *** ??? Olivetti M380 (XP 1, XP3, XP 5)
  24589. FCh 48h *** ??? Olivetti M290
  24590. FCh 4Fh *** ??? Olivetti M250
  24591. FCh 50h *** ??? Olivetti M380 (XP 7)
  24592. FCh 51h *** ??? Olivetti PCS286
  24593. FCh 52h *** ??? Olivetti M300
  24594. FCh 81h 00h 01/15/88 Phoenix 386 BIOS v1.10 10a
  24595. FCh 81h 01h ??? "OEM machine"
  24596. FCh 82h 01h ??? "OEM machine"
  24597. FCh 94h 00h ??? Zenith 386
  24598. FBh 00h 01h 01/10/86 PC XT-089, Enh Keyb, 3.5" support
  24599. FBh 00h 01h 05/13/94 HP 200LX 2MB BIOS 1.01 A D german
  24600. FBh 00h 02h 05/09/86 PC XT
  24601. FBh 00h 04h 08/19/93 HP 100LX 1MB BIOS 1.04 A
  24602. FBh 4Ch *** ??? Olivetti M200
  24603. FAh 00h 00h 09/02/86 PS/2 Model 30 (8 MHz 8086)
  24604. FAh 00h 01h 12/12/86 PS/2 Model 30
  24605. FAh 00h 02h 02/05/87 PS/2 Model 30
  24606. FAh 01h 00h 06/26/87 PS/2 Model 25/25L (8 MHz 8086)
  24607. FAh 30h 00h ??? IBM Restaurant Terminal
  24608. FAh 4Eh *** ??? Olivetti M111
  24609. FAh FEh 00h ??? IBM PCradio 9075
  24610. F9h 00h 00h 09/13/85 PC Convertible
  24611. F9h FFh 00h ??? PC Convertible
  24612. F8h 00h 00h 03/30/87 ** PS/2 Model 80 (16MHz 386)
  24613. F8h 00h 00h ??? PS/2 Model 75 486 (33Mhz 486)
  24614. F8h 01h 00h 10/07/87 PS/2 Model 80 (20MHz 386)
  24615. F8h 02h 00h ??? PS/2 Model 55-5571
  24616. F8h 04h 00h 01/29/88 PS/2 Model 70 (20 Mhz 386DX,LW-type 33)
  24617. F8h 04h 02h 04/11/88 PS/2 Model 70 20MHz, type 2 system brd
  24618. F8h 04h 03h 03/17/89 PS/2 Model 70 20MHz, type 2 system brd
  24619. F8h 05h 00h ??? IBM PC 7568
  24620. F8h 06h 00h ??? PS/2 Model 55-5571
  24621. F8h 07h 00h ??? IBM PC 7561/2
  24622. F8h 07h 01h ??? PS/2 Model 55-5551
  24623. F8h 07h 02h ??? IBM PC 7561/2
  24624. F8h 07h 03h ??? PS/2 Model 55-5551
  24625. F8h 09h 00h 01/29/88 PS/2 Model 70 16MHz 386DX, type 1 sysbd
  24626. F8h 09h 02h 04/11/88 PS/2 Model 70 some models
  24627. F8h 09h 03h 03/17/89 PS/2 Model 70 some models
  24628. F8h 09h 04h 12/15/89 PS/2 Model 70 (16 Mhz 386, LW-type 33)
  24629. F8h 0Bh 00h 01/18/89 PS/2 Model P70 (8573-121) typ 2 sys brd
  24630. F8h 0Bh 02h 12/16/89 PS/2 Model P70 ??
  24631. F8h 0Ch 00h 11/02/88 PS/2 Model 55SX (16 MHz 386SX)
  24632. F8h 0Dh 00h ??? PS/2 Model 70 25MHz, type 3 system brd
  24633. F8h 0Dh 00h 06/08/88 PS/2 Model 70 386 25MHz, type 3 sys brd
  24634. F8h 0Dh 01h 02/20/89 PS/2 Model 70 386 25MHz, type 3 sys brd
  24635. F8h 0Dh ??? 12/01/89 PS/2 Model 70 486 25Mhz, type 3 sys brd
  24636. F8h 0Eh 00h ??? PS/1 486SX
  24637. F8h 0Fh 00h ??? PS/1 486DX
  24638. F8h 10h 00h ??? PS/2 Model 55-5551
  24639. F8h 11h 00h 10/01/90 PS/2 Model 90 XP (25 MHz 486)
  24640. F8h 12h 00h ??? PS/2 Model 95 XP
  24641. F8h 13h 00h 10/01/90 PS/2 Model 90 XP (33 MHz 486)
  24642. F8h 14h 00h 10/01/90 PS/2 Model 90-AK9 (25 MHz 486), 95 XP
  24643. F8h 15h 00h ??? PS/2 Model 90 XP
  24644. F8h 16h 00h 10/01/90 PS/2 Model 90-AKD / 95XP486 (33MHz 486)
  24645. F8h 17h 00h ??? PS/2 Model 90 XP
  24646. F8h 19h 05h ??? PS/2 Model 35/35LS or 40 (20 MHz 386SX)
  24647. F8h 19h 05h 03/15/91 PS/2 Model 35 SX / 40 SX (LW-type 37)
  24648. F8h 19h 06h 04/04/91 PS/2 Model 35 SX / 40 SX (LW-type 37)
  24649. F8h 1Ah 00h ??? PS/2 Model 95 XP
  24650. F8h 1Bh 00h 09/29/89 PS/2 Model 70 486 (25 Mhz 386DX)
  24651. F8h 1Bh 00h 10/02/89 PS/2 Model 70-486 (25 MHz 486)
  24652. F8h 1Ch 00h 02/08/90 PS/2 Model 65-121 / 65 SX (16MHz 386SX)
  24653. F8h 1Eh 00h 02/08/90 PS/2 Model 55LS (16 MHz 386SX)
  24654. F8h 23h 00h ??? PS/2 Model L40 SX
  24655. F8h 23h 01h ??? PS/2 Model L40 SX (20 MHz 386SX)
  24656. F8h 23h 02h 02/27/91 PS/2 Model L40 SX (20Mhz386SX,LW-typ37)
  24657. F8h 25h 00h ??? PS/2 Model 57 SLC
  24658. F8h 25h 06h ??? PS/2 Model M57 (20 MHz 386SLC)
  24659. F8h 26h 00h ??? PS/2 Model 57 SX
  24660. F8h 26h 01h ??? PS/2 Model 57 (20 MHz 386SX)
  24661. F8h 26h 02h 07/03/91 PS/2 Model 57 SX (20Mhz 386SX, SCSI)
  24662. F8h 28h 00h ??? PS/2 Model 95 XP
  24663. F8h 29h 00h ??? PS/2 Model 90 XP
  24664. F8h 2Ah 00h ??? PS/2 Model 95 XP (50 MHz 486)
  24665. F8h 2Bh 00h ??? PS/2 Model 90 / 90XP486 (50 MHz 486)
  24666. F8h 2Ch 00h ??? PS/2 Model 95 XP
  24667. F8h 2Ch 01h ??? PS/2 Model 95 (20 MHz 486SX)
  24668. F8h 2Dh 00h ??? PS/2 Model 90 XP (20 MHz 486SX)
  24669. F8h 2Eh 00h ??? PS/2 Model 95 XP
  24670. F8h 2Eh 00h ??? PS/2 Model 95 XP486 (20 Mhz 486SX)
  24671. F8h 2Eh 01h ??? PS/2 Model 95 (20 MHz 486SX + 487SX)
  24672. F8h 2Fh 00h ??? PS/2 Model 90 XP (20 MHz 486SX + 487SX)
  24673. F8h 30h 00h ??? PS/1 Model 2121 (16 MHz 386SX)
  24674. F8h 33h 00h ??? PS/2 Model 30-386
  24675. F8h 34h 00h ??? PS/2 Model 25-386
  24676. F8h 36h 00h ??? PS/2 Model 95 XP
  24677. F8h 37h 00h ??? PS/2 Model 90 XP
  24678. F8h 38h 00h ??? PS/2 Model 57
  24679. F8h 39h 00h ??? PS/2 Model 95 XP
  24680. F8h 3Fh 00h ??? PS/2 Model 90 XP
  24681. F8h 40h 00h ??? PS/2 Model 95 XP
  24682. F8h 41h 00h ??? PS/2 Model 77
  24683. F8h 45h 00h ??? PS/2 Model 90 XP (Pentium)
  24684. F8h 46h 00h ??? PS/2 Model 95 XP (Pentium)
  24685. F8h 47h 00h ??? PS/2 Model 90/95 E (Pentium)
  24686. F8h 48h 00h ??? PS/2 Model 85
  24687. F8h 49h 00h ??? PS/ValuePoint 325T
  24688. F8h 4Ah 00h ??? PS/ValuePoint 425SX
  24689. F8h 4Bh 00h ??? PS/ValuePoint 433DX
  24690. F8h 4Eh 00h ??? PS/2 Model 295
  24691. F8h 50h 00h ??? PS/2 Model P70 (8573) (16 MHz 386)
  24692. F8h 50h 01h 12/16/89 PS/2 Model P70 (8570-031)
  24693. F8h 52h 00h ??? PS/2 Model P75 (33 MHz 486)
  24694. F8h 56h 00h ??? PS/2 Model CL57 SX
  24695. F8h 57h 00h ??? PS/2 Model 90 XP
  24696. F8h 58h 00h ??? PS/2 Model 95 XP
  24697. F8h 59h 00h ??? PS/2 Model 90 XP
  24698. F8h 5Ah 00h ??? PS/2 Model 95 XP
  24699. F8h 5Bh 00h ??? PS/2 Model 90 XP
  24700. F8h 5Ch 00h ??? PS/2 Model 95 XP
  24701. F8h 5Dh 00h ??? PS/2 Model N51 SLC
  24702. F8h 5Eh 00h ??? IBM ThinkPad 700
  24703. F8h 61h *** ??? Olivetti P500
  24704. F8h 62h *** ??? Olivetti P800
  24705. F8h 80h 00h ??? PS/2 Model 80 (25 MHz 386)
  24706. F8h 80h 01h 11/21/89 PS/2 Model 80-A21 (25 Mhz 386)
  24707. F8h 81h 00h ??? PS/2 Model 55-5502
  24708. F8h 87h 00h ??? PS/2 Model N33SX
  24709. F8h 88h 00h ??? PS/2 Model 55-5530T
  24710. F8h 97h 00h ??? PS/2 Model 55 Note N23SX
  24711. F8h 99h 00h ??? PS/2 Model N51 SX
  24712. F8h F2h 30h ??? Reply Model 32
  24713. F8h F6h 30h ??? Memorex Telex
  24714. F8h FDh 00h ??? IBM Processor Complex (with VPD)
  24715. F8h ??? ??? ??? PS/2 Model 90 (25 MHz 486SX)
  24716. F8h ??? ??? ??? PS/2 Model 95 (25 MHz 486SX)
  24717. F8h ??? ??? ??? PS/2 Model 90 (25 MHz 486SX + 487SX)
  24718. F8h ??? ??? ??? PS/2 Model 95 (25 MHz 486SX + 487SX)
  24719. E4h ??? ??? ??? Triumph Adler PC/XT
  24720. E1h ??? ??? ??? ??? (checked for by DOS4GW.EXE)
  24721. E1h 00h 00h ??? PS/2 Model 55-5530 Laptop
  24722. D9h ??? ??? ??? Peacock XT
  24723. 9Ah * * ??? Compaq XT/Compaq Plus
  24724. 30h ??? ??? ??? Sperry PC
  24725. 2Dh * * ??? Compaq PC/Compaq Deskpro
  24726. ??? 56h ??? ??? Olivetti, unknown model
  24727. ??? 74h ??? ??? Olivetti, unknown model
  24728. Notes: BIOS dates may vary without changes to the revision code, especially
  24729. for non-IBM machines
  24730. * This BIOS call is not implemented in these early versions or under
  24731. Linux's DOSEMU. Read the Model byte at F000h:FFFEh and BIOS date at
  24732. F000h:FFF5h instead.
  24733. ** These BIOS versions require the DASDDRVR.SYS patches.
  24734. *** These Olivetti and Epson machines store the submodel in the byte at
  24735. F000h:FFFDh.
  24736. SeeAlso: #00509,#00516
  24737. (Table 00516)
  24738. Values for Dell model byte:
  24739. 02h Dell 200
  24740. 03h Dell 300
  24741. 05h Dell 220
  24742. 06h Dell 310
  24743. 07h Dell 325
  24744. 09h Dell 310A
  24745. 0Ah Dell 316
  24746. 0Bh Dell 220E
  24747. 0Ch Dell 210
  24748. 0Dh Dell 316SX
  24749. 0Eh Dell 316LT
  24750. 0Fh Dell 320LX
  24751. 11h Dell 425E
  24752. SeeAlso: #00509,#00515
  24753. Format of Compaq product information:
  24754. Address Size Description (Table 00517)
  24755. F000h:FFE4h BYTE product family code (first byte)
  24756. F000h:FFE5h BYTE Point release number
  24757. F000h:FFE6h BYTE ROM version code
  24758. F000h:FFE7h BYTE product family code (second byte)
  24759. F000h:FFE8h WORD BIOS type code
  24760. SeeAlso: #00518,#00520
  24761. Format of Hewlett-Packard ROM ID at F000h:00F8h:
  24762. Offset Size Description (Table 00518)
  24763. 00h 2 BYTEs signature "HP" (48h 50h)
  24764. 02h 2 BYTEs 00h 00h
  24765. 04h BYTE secondary code revision
  24766. 05h BYTE primary code revision
  24767. 06h BYTE date code, year-1960 (BCD)
  24768. 07h BYTE date code, week of year (BCD)
  24769. SeeAlso: #00517,#00519
  24770. Bitfields for Hewlett-Packard product identifier:
  24771. Bit(s) Description (Table 00519)
  24772. 4-0 machine code
  24773. 0 original Vectra
  24774. 1 ES/12
  24775. 2 RS/20
  24776. 3 Portable/CS
  24777. 4 ES
  24778. 5 CS
  24779. 6 RS/16
  24780. other reserved
  24781. 7-5 CPU type
  24782. 0 = 80286
  24783. 1 = 8088
  24784. 2 = 8086
  24785. 3 = 80386
  24786. other reserved
  24787. SeeAlso: #00518
  24788. Format of Toshiba laptop information:
  24789. Offset Size Description (Table 00520)
  24790. 00h 8 BYTEs ASCII product number (e.g. "T2200SX ")
  24791. 08h 8 BYTEs ASCII version number (e.g. "V1.20 ")
  24792. 10h 8 BYTEs ASCII signature string "TOSHIBA "
  24793. 18h 8 BYTEs always zero???
  24794. 20h DWORD -> built-in BIOS setup program entry point or 0000h:0000h
  24795. Note: this record is located at F000h:E000h
  24796. SeeAlso: #00517,#00518
  24797. (Table 00521)
  24798. Values for Toshiba product ID:
  24799. model prodID version date product number
  24800. FEh 29h ../..).. Toshiba T1000LE
  24801. FEh 2Ah ../..*.. Toshiba T1000XE
  24802. FEh 2Bh ../..+.. Toshiba T1000SE
  24803. FEh 2Ch ../..,.. Toshiba T1000
  24804. FEh 2Dh ../..-.. Toshiba T1200F
  24805. FEh 2Dh V4.00 12/26-87 Toshiba T1200H
  24806. FEh 2Eh ../..... Toshiba T1100+
  24807. FCh 22h ../..".. Toshiba T8500
  24808. FCh 26h 01/15&88 Toshiba T5200
  24809. FCh 27h ../..'.. Toshiba T5100
  24810. FCh 28h ../..(.. Toshiba T2000
  24811. FCh 2Ah 12/26*89 Toshiba T1200XE
  24812. FCh 2Bh ../..+.. Toshiba T1600
  24813. FCh 2Ch ../..,.. Toshiba T3100e
  24814. FCh 2Dh ../..-.. Toshiba T3200
  24815. FCh 2Fh ../../.. Toshiba T3100
  24816. FCh 34h V1.50 02/04494 Toshiba T100X
  24817. FCh 38h ../..8.. Toshiba T2000SXe
  24818. FCh 39h V1.20 09/16991 Toshiba T2200SX
  24819. FCh 39h V1.40 10/01992 Toshiba T2200SX
  24820. FCh 3Ch V1.50 01/28<91 Toshiba T2000SX
  24821. FCh 3Dh ../..=.. Toshiba T3200SXC
  24822. FCh 3Eh ../..>.. Toshiba T3100SX
  24823. FCh 3Fh ../..?.. Toshiba T3200SX
  24824. FCh 40h ../..@.. Toshiba T4500C
  24825. FCh 41h V1.20 04/05A92 Toshiba T4500 ("T4500SXC" ???)
  24826. FCh 45h V3.20 04/14E92 Toshiba T4400SX ("C" or "SXC" on cover)
  24827. FCh 45h 01/13E93 Toshiba T4400SXC
  24828. FCh 46h * ../..F.. Toshiba T6400
  24829. FCh 46h * ../..F.. Toshiba T6400C
  24830. FCh 5Fh V1.40 01/18_94 Toshiba T3300SL
  24831. FCh 69h ../..i.. Toshiba T1900C ("T1900CT" ???)
  24832. FCh 6Ah V1.30 05/19j93 Toshiba T1900 ("T1900S" ???)
  24833. FCh 6Dh V1.10 12/25m92 Toshiba T1850C
  24834. FCh 6Eh V1.00 08/19n92 Toshiba T1850
  24835. FCh 6Eh V1.10 12/25n92 Toshiba T1850
  24836. FCh 6Fh V1.00 07/17o92 Toshiba T1800
  24837. FCh 6Fh V1.10 12/25o92 Toshiba T1800
  24838. FCh 7Eh V1.30 06/17~93 Toshiba T4600C
  24839. FCh 7Fh V1.40 11/10x94 Toshiba T4600
  24840. FCh 8Ah V1.30 10/22x93 Toshiba T6600C
  24841. FCh 91h V1.20 07/15x94 Toshiba T2400CT
  24842. FCh 91h V5.00 07/28x95 Toshiba T2400CS/CT
  24843. FCh 92h V5.00 07/28x95 Toshiba T3600CT
  24844. FCh 96h * V1.40 12/08x94 Toshiba T200
  24845. FCh 96h * V1.50 12/08x94 Toshiba T200CS (T200)
  24846. FCh 97h ../..x.. Toshiba T4800CT
  24847. FCh 98h * V1.10 12/22x93 Toshiba T1910
  24848. FCh 98h * V2.40 07/12x94 Toshiba T1910/CS (T19XX)
  24849. FCh 99h ../..x.. Toshiba T4700CS
  24850. FCh 9Bh V2.30 01/31x94 Toshiba T4700CT
  24851. FCh 9Bh V2.50 03/22x94 Toshiba T4700CT
  24852. FCh 9Bh V5.00 07/28x95 Toshiba T4700CT
  24853. FCh 9Ch V1.30 01/11x94 Toshiba T1950CT
  24854. FCh 9Ch V2.50 07/22x94 Toshiba T1950CT (T19XX)
  24855. FCh 9Dh * V2.40 07/12x94 Toshiba T1950/CS (T19XX)
  24856. FCh 9Eh * V1.20 12/25x93 Toshiba T3400
  24857. FCh 9Eh * V1.30 03/22x94 Toshiba T3400/CT
  24858. FCh B5h ** V5.10 08/25x95 Toshiba T2110/CS (T21XX)
  24859. FCh B5h V5.10 08/25x95 Toshiba T2130CS/CT (T21XX)
  24860. FCh BAh V1.30 02/16x95 Toshiba T2150CDS/CDT
  24861. FCh BAh V5.00 07/27x95 Toshiba T2150CDS/CDT (T2150)
  24862. FCh BBh ** V1.30 01/25x95 Toshiba T2100/CS/CT
  24863. FCh BBh ** V5.00 07/27x95 Toshiba T2100/CS/CT
  24864. FCh BCh V1.20 12/05x94 Toshiba T2450CT
  24865. FCh BCh V5.00 07/28x95 Toshiba T2450CT
  24866. FCh BEh V5.00 07/28x95 Toshiba T4850CT
  24867. FCh C0h V5.20 05/30x96 Toshiba 420CDS/CDT
  24868. FCh C1h V5.20 03/27x96 Toshiba 100CS
  24869. FCh C3h V5.60 07/19x96 Toshiba 710CDT / 720CDT
  24870. FCh C6h V5.30 11/30x95 Toshiba 410CS/CDT
  24871. FCh CAh V5.10 08/18x95 Toshiba 400CS/CDT
  24872. FCh CAh V5.40 12/18x95 Toshiba 400CS/CDT
  24873. FCh CBh V5.10 09/01x95 Toshiba 610CT
  24874. FCh CCh V5.50 06/13x96 Toshiba 700CS/CT
  24875. FCh CFh V5.00 08/07x95 Toshiba T4900CT
  24876. FCh DCh V5.10 06/17x96 Toshiba 650CT
  24877. FCh DCh V5.10 05/10x96 Toshiba 110CS/CT
  24878. FCh DDh V5.10 05/10x96 Toshiba 110CS/CT
  24879. FCh DFh V5.20 05/27x96 Toshiba 500CS/CDT
  24880. FCh ??? V5.??? ../..x.. Toshiba 620CT
  24881. FCh ??? V5.??? ../..x.. Toshiba 660CDT
  24882. FCh ??? V5.30 11/22/96 Toshiba 730CDT
  24883. FCh ??? V6.00 09/20/96 Toshiba 200CDS/CDT
  24884. FCh ??? V6.20 11/14/96 Toshiba 430CDS/CDT
  24885. FCh ??? V6.40 12/05/96 Toshiba 510CS/CDT
  24886. Notes: the 8-bit ASCII graphics character in the "date" column above
  24887. has been substituted by "x" if larger than 80h
  24888. BIOS version numbers and dates may vary, esp. due to harddisk and
  24889. (flash) BIOS upgrades; all BIOS versions 5.xx are flash updates
  24890. for Windows95, the product number may indicate the series only
  24891. (T21XX) or does no longer contain the exact type suffix (CS/CT)
  24892. the most recent versions of the BIOS have stopped including the
  24893. product ID code in the BIOS date
  24894. [*] These models have monochrome and color versions which can be
  24895. distinguished with INT 42/AX=7503h (WD90C24 chipset)
  24896. [**] These models have monochrome and color versions which can be
  24897. distinguished with INT 10/AX=5F50h (CT655xx chipset)
  24898. models not found here like T21x5 are variants differing only in
  24899. bundled software
  24900. SeeAlso: #00515
  24901. --------B-15C1-------------------------------
  24902. INT 15 - SYSTEM - RETURN EXTENDED-BIOS DATA-AREA SEGMENT ADDRESS (PS)
  24903. AH = C1h
  24904. Return: CF set on error
  24905. CF clear if successful
  24906. ES = segment of data area (see #M0001,#M0004,#M0005)
  24907. SeeAlso: AH=04h"ABIOS",MEM 0040h:000Eh"DATA"
  24908. --------M-15C200-----------------------------
  24909. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - ENABLE/DISABLE
  24910. AX = C200h
  24911. BH = new state
  24912. 00h disabled
  24913. 01h enabled
  24914. Return: CF set on error
  24915. AH = status (see #00522)
  24916. Note: IBM classifies this function as required
  24917. SeeAlso: AX=C201h,AX=C207h,AX=C208h
  24918. (Table 00522)
  24919. Values for pointing device function status:
  24920. 00h successful
  24921. 01h invalid function
  24922. 02h invalid input
  24923. 03h interface error
  24924. 04h need to resend
  24925. 05h no device handler installed
  24926. --------M-15C201-----------------------------
  24927. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - RESET
  24928. AX = C201h
  24929. Return: CF set on error
  24930. AH = status (see #00522)
  24931. CF clear if successful
  24932. BH = device ID
  24933. BL = value returned by attached device after reset
  24934. AAh if device is a mouse
  24935. Notes: after successful completion of this call, the pointing device is set
  24936. as follows: disabled, sample rate 100 Hz, resolution 4 counts/mm,
  24937. scaling 1:1, unchanged data package size
  24938. IBM classifies this function as required
  24939. SeeAlso: INT 33/AX=0000h,AX=C200h,AX=C207h
  24940. --------M-15C202-----------------------------
  24941. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET SAMPLING RATE
  24942. AX = C202h
  24943. BH = sampling rate
  24944. 00h 10/second
  24945. 01h 20/second
  24946. 02h 40/second
  24947. 03h 60/second
  24948. 04h 80/second
  24949. 05h 100/second
  24950. 06h 200/second
  24951. Return: CF set on error
  24952. AH = status (see #00522)
  24953. SeeAlso: INT 33/AX=001Ch
  24954. --------M-15C203-----------------------------
  24955. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET RESOLUTION
  24956. AX = C203h
  24957. BH = resolution (see #00523)
  24958. Return: CF set on error
  24959. AH = status (see #00522)
  24960. (Table 00523)
  24961. Values for pointing device resolution:
  24962. 00h one count per mm
  24963. 01h two counts per mm
  24964. 02h four counts per mm
  24965. 03h eight counts per mm
  24966. --------M-15C204-----------------------------
  24967. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - GET TYPE
  24968. AX = C204h
  24969. Return: CF set on error
  24970. AH = status (see #00522)
  24971. CF clear if successful
  24972. BH = device ID
  24973. --------M-15C205-----------------------------
  24974. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - INITIALIZE
  24975. AX = C205h
  24976. BH = data package size (1 - 8 bytes)
  24977. Return: CF set on error
  24978. AH = status (see #00522)
  24979. Note: the pointing device is set as follows: disabled, 100 Hz sample rate,
  24980. resolution 4 counts/mm, scaling 1:1
  24981. SeeAlso: AX=C201h
  24982. --------M-15C206-----------------------------
  24983. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - EXTENDED COMMANDS
  24984. AX = C206h
  24985. BH = subfunction
  24986. 00h return device status
  24987. Return: BL = pointing device status (see #00524)
  24988. CL = resolution (see #00523)
  24989. DL = sample rate, reports per second
  24990. 01h set scaling at 1:1
  24991. 02h set scaling at 2:1
  24992. Return: CF set on error
  24993. AH = status (see #00522)
  24994. Bitfields for pointing device status:
  24995. Bit(s) Description (Table 00524)
  24996. 0 right button pressed
  24997. 1 reserved
  24998. 2 left button pressed
  24999. 3 reserved
  25000. 4 0 if 1:1 scaling, 1 if 2:1 scaling
  25001. 5 device enabled
  25002. 6 0 if stream mode, 1 if remote mode
  25003. 7 reserved
  25004. --------M-15C207-----------------------------
  25005. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET DEVICE HANDLER ADDR
  25006. AX = C207h
  25007. ES:BX -> FAR user device handler or 0000h:0000h to cancel
  25008. Return: CF set on error
  25009. AH = status (see #00522)
  25010. Note: when the subroutine is called, it is passed the following values on
  25011. the stack; the handler should return with a FAR return without
  25012. popping the stack:
  25013. WORD 1: status (see #00525)
  25014. WORD 2: X data (high byte = 00h)
  25015. WORD 3: Y data (high byte = 00h)
  25016. WORD 4: 0000h
  25017. SeeAlso: INT 33/AX=000Ch
  25018. Bitfields for pointing device status:
  25019. Bit(s) Description (Table 00525)
  25020. 15-8 reserved (0)
  25021. 7 Y data overflowed
  25022. 6 X data overflowed
  25023. 5 Y data is negative
  25024. 4 X data is negative
  25025. 3 reserved (1)
  25026. 2 reserved (0)
  25027. 1 right button pressed
  25028. 0 left button pressed
  25029. --------M-15C208-----------------------------
  25030. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE - WRITE TO POINTER PORT
  25031. AX = C208h
  25032. BL = byte to be sent to the pointing device
  25033. Note: IBM classifies this function as optional
  25034. SeeAlso: AX=C200h,AX=C209h
  25035. --------M-15C209-----------------------------
  25036. INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE - READ FROM POINTER PORT
  25037. AX = C209h
  25038. Return: BL = first byte read from pointing device
  25039. CL = second byte read
  25040. DL = third byte read
  25041. Note: IBM classifies this function as optional
  25042. SeeAlso: AX=C200h,AX=C208h
  25043. --------M-15C2-------------------------------
  25044. INT 15 - IBM SurePath BIOS - Officially "Private" Function
  25045. AH = C2h
  25046. AL = 10h-23h
  25047. SeeAlso: AH=07h"IBM",AH=3Eh"IBM"
  25048. --------B-15C3------------------------------
  25049. INT 15 - SYSTEM - ENABLE/DISABLE WATCHDOG TIMEOUT (PS50+)
  25050. AH = C3h
  25051. AL = function
  25052. 00h disable PS/2 watchdog timer
  25053. 01h enable PS/2 watchdog timer
  25054. BX = timer counter (0001h-00FFh)
  25055. 02h disable Gearbox system
  25056. 03h enable Gearbox system
  25057. Return: CF set on error
  25058. CF clear if successful
  25059. Note: the watchdog timer generates an NMI
  25060. SeeAlso: INT 21/AH=2Bh/CX=6269h"WDTSR"
  25061. --------B-15C4-------------------------------
  25062. INT 15 - SYSTEM - PROGRAMMABLE OPTION SELECT (PS50+)
  25063. AH = C4h
  25064. AL = subfunction
  25065. 00h return base POS register address
  25066. 01h enable selected slot for setup
  25067. BL = slot number (1 to 8)
  25068. 02h disable setup for all slots (enable adapter)
  25069. Return: CF set on error
  25070. DX = base POS register address (if subfunction 00h)
  25071. SeeAlso: AH=C6h
  25072. --------B-15C5-------------------------------
  25073. INT 15 UC - OS HOOK - ROM BIOS TRACING CALLOUT (PS30/286,PS50Z,PS95)
  25074. AH = C5h
  25075. AL = interrupt being invoked
  25076. 01h INT 19
  25077. 02h INT 14
  25078. 03h INT 16
  25079. 04h INT 40 (floppy INT 13)
  25080. 05h INT 17
  25081. 06h INT 10
  25082. 07h INT 12
  25083. 08h INT 11
  25084. 09h INT 1A
  25085. Return: all registers except AX must be preserved
  25086. Notes: called as the very first action of the indicated ROM BIOS interrupt
  25087. handlers on the PS/2 Models 30/286, 50Z, and 95
  25088. default handler does nothing and returns CF clear for the above
  25089. subfunctions, CF set and AH=86h for all other subfunctions
  25090. value of AX passed to the original interrupt handler is pushed on
  25091. stack immediately prior to call
  25092. --------B-15C6-------------------------------
  25093. INT 15 U - later PS/2 models - GET POS DATA
  25094. AH = C6h
  25095. ???
  25096. Return: ???
  25097. Notes: this function is referenced by name and number in some IBM BIOS manuals
  25098. IBM reports that "there are a number of problems with this call" and
  25099. does not recommend its use.
  25100. SeeAlso: AH=C4h
  25101. --------B-15C7-------------------------------
  25102. INT 15 - SYSTEM - later PS/2s - RETURN MEMORY-MAP INFORMATION
  25103. AH = C7h
  25104. DS:SI -> user supplied memory map table (see #00526)
  25105. Return: CF set on error
  25106. CF clear if successful
  25107. Notes: call AH=C0h and examine bit 4 of feature byte 2 to check if this
  25108. function is supported
  25109. IBM classifies this function as optional
  25110. Windows95 OSR2 reportedly does not support this function even though
  25111. INT 15/AH=C0h indicates that it is available (observed on several
  25112. different systems)
  25113. SeeAlso: AH=C0h,AH=C9h,AH=D1h,AX=E820h
  25114. Format of memory-map table structure:
  25115. Offset Size Description (Table 00526)
  25116. 00h WORD length of table (excluding this word)
  25117. 02h DWORD local memory between 1M and 16M, in 1K blocks
  25118. 06h DWORD local memory between 16M and 4G, in 1K blocks
  25119. 0Ah DWORD system memory between 1M and 16M, in 1K blocks
  25120. 0Eh DWORD system memory between 16M and 4G, in 1K blocks
  25121. 12h DWORD cacheable memory between 1M and 16M, in 1K blocks
  25122. 16h DWORD cacheable memory between 16M and 4G, in 1K blocks
  25123. 1Ah DWORD 1K blocks before start of non-system memory between 1M and 16M
  25124. 1Eh DWORD 1K blocks before start of non-system memory between 16M and 4G
  25125. 22h WORD start segment of largest free block from C0000h-DFFFFh
  25126. 24h WORD size of largest free block
  25127. 26h DWORD reserved
  25128. --------B-15C8-------------------------------
  25129. INT 15 - SYSTEM - ENABLE/DISABLE PROCESSOR FUNCTIONS
  25130. AH = C8h
  25131. AL = function
  25132. 00h disable L1 cache
  25133. 01h enable L1 cache
  25134. ---models 90 and 95 only---
  25135. 02h disable L2 cache
  25136. 03h enable L2 cache
  25137. 04h disable both caches
  25138. 05h enable both caches
  25139. 06h return status of both caches
  25140. 07h-FFh Reserved
  25141. Return: CF set on error
  25142. CF clear if successful
  25143. AH = status (see #00527)
  25144. For subfunction 06h only:
  25145. BL = status of L1 cache
  25146. 00h enabled
  25147. 01h disabled or not installed
  25148. 02h disabled due to test error (can not be enabled)
  25149. BH = status of L2 cache (same codes as BL)
  25150. Notes: supported by at least PS/2 70, 70/486, 80-A21, 90, 95
  25151. call AH=C0h and examine bit 3 of feature byte 2 to check if this
  25152. function is supported.
  25153. on a 486 system, any external caches must be disabled when the
  25154. on-chip cache (L1) is disabled.
  25155. SeeAlso: AH=C0h
  25156. (Table 00527)
  25157. Values for status:
  25158. 00h operation successful
  25159. 01h function choice (in AL) is invalid
  25160. 02h NVRAM data is invalid
  25161. 03h cache test error
  25162. 04h (90 and 95 only) cannot perform operation requested due to state of
  25163. other cache (also see note above)
  25164. 05h no L2 cache is present
  25165. 07h invalid input values
  25166. 09h CPU in protected mode
  25167. --------B-15C9-------------------------------
  25168. INT 15 - newer PS/2; various BIOSes - GET CPU TYPE AND MASK REVISION
  25169. AH = C9h
  25170. AL = 10h (may be required on some non-PS BIOSes)
  25171. Return: CF clear if successful
  25172. AH = 00h
  25173. CH = CPU type (see #00528)
  25174. CL = mask revision (stepping level) (see #00529)
  25175. CF set on error
  25176. AH = status (80h,86h = function not supported)
  25177. Notes: the BIOS must save DX at startup in order to be able to support this
  25178. call; PS/2 Models 56, 57, 90, and 95 are known to support it
  25179. the PS/2 BIOS merely reads CMOS locations 190h (type) and 191h (rev)
  25180. IBM classifies this function as optional
  25181. SeeAlso: AX=D100h,AX=DA92h,MEM 0040h:00BCh
  25182. (Table 00528)
  25183. Values for CPU type:
  25184. 03h 80386DX or clone
  25185. 04h 80486
  25186. 05h Pentium
  25187. 23h 80386SX or clone
  25188. 33h Intel i376
  25189. 43h 80386SL or clone
  25190. A3h IBM 386SLC
  25191. A4h IBM 486SLC
  25192. (Table 00529)
  25193. Values for stepping level:
  25194. ---i376 (type code 33h)---
  25195. 05h A0
  25196. 08h B
  25197. ---80386/80386DX (type code 03h)---
  25198. 03h Intel B1 to B10, Am386DX/DXL step A
  25199. 05h Intel D0
  25200. 08h Intel D1/D2/E1, Am386DX/DXL step B
  25201. ---80386SL (type code 43h)---
  25202. 05h A
  25203. 1xh B
  25204. ---80386SX (type code 23h)---
  25205. 04h Intel A0
  25206. 05h Intel B, Am386SX/SXL step A1
  25207. 08h Intel C/D1, Am386SX/SXL step B
  25208. 09h Intel 386CX/386EX/386SXstatic step A
  25209. ---80486DX (type code 04h)---
  25210. 00h Intel A0/A1
  25211. 01h Intel B2 to B6
  25212. 02h Intel C0
  25213. 03h Intel C1
  25214. 04h Intel D0
  25215. 10h Intel cA2/cA3, Cx486SLC step A
  25216. 11h Intel cB0/cB1
  25217. ---486DX2 (type code 04h)---
  25218. 02h Am486DX2 (unknown stepping)
  25219. 32h Intel DX2/Overdrive steps A0 to A2
  25220. 33h Intel DX2/Overdrive step B1
  25221. ---486SX (type code 04h)---
  25222. 20h Intel A0
  25223. 22h Intel B0
  25224. 27h Intel cA0
  25225. 28h Intel cB0
  25226. ---486SL (type code 04h)---
  25227. 40h Intel A
  25228. ---IntelSX2 (type code 04h)---
  25229. 5xh Intel A
  25230. ---IntelDX4 (type code 04h)---
  25231. 8xh Intel A
  25232. ---487SX (type code 04h)---
  25233. 20h Intel A0
  25234. 21h Intel B0
  25235. ---Pentium (type code 05h)---
  25236. 0xh Intel P5 steps Ax (1993)
  25237. 1xh Intel P5 steps Bx (1994)
  25238. 2xh Intel P54C step A
  25239. ---RapidCAD (type code 03h)---
  25240. 40h A
  25241. --------B-15CA-------------------------------
  25242. INT 15 U - PS/2 Model 95 - READ/WRITE CMOS MEMORY
  25243. AH = CAh
  25244. AL = function
  25245. 00h read CMOS
  25246. Return: CL = value of CMOS location
  25247. 01h write CMOS
  25248. CL = new value for CMOS location
  25249. BL = CMOS location (0Eh-3Fh)
  25250. Return: CF clear if successful
  25251. AH = 00h
  25252. CF set on error
  25253. AH = error code (see #00530)
  25254. Note: writes do not update the CMOS checksum
  25255. (Table 00530)
  25256. Values for CMOS read/write error code:
  25257. 01h CMOS lost power or has invalid checksum
  25258. 03h specified location out of range (too high)
  25259. 04h specified location out of range (too low)
  25260. 80h unsupported function (PC)
  25261. 86h unsupported function (XT)
  25262. --------B-15CB-------------------------------
  25263. INT 15 U - PS/2 Model 95 - RESERVED
  25264. AH = CBh
  25265. ???
  25266. Return: ???
  25267. --------B-15CC-------------------------------
  25268. INT 15 U - PS/2 Model 95 - RESERVED
  25269. AH = CCh
  25270. ???
  25271. Return: ???
  25272. --------V-15CCCC-----------------------------
  25273. INT 15 U - Toshiba laptops - VCHAD.EXE - INSTALLATION CHECK
  25274. AX = CCCCh
  25275. Return: AX = ABCDh if installed
  25276. Note: supported by Toshiba VGA change display utility VCHAD.EXE ver 2.90+
  25277. older versions have the string "VCHAD" 2 bytes after the address of
  25278. the INT 15 handler which is hooked by all versions for the SysReq key
  25279. SeeAlso: AH=85h
  25280. --------B-15CD-------------------------------
  25281. INT 15 U - PS/2 Model 95 - RESERVED
  25282. AH = CDh
  25283. ???
  25284. Return: ???
  25285. --------B-15CE--BL00-------------------------
  25286. INT 15 - later PS/2s - ALLOCATE DMA ARBITRATION LEVEL
  25287. AH = CEh
  25288. BL = 00h-0Eh arbitration level to be allocated
  25289. 0Fh-FFh reserved
  25290. AL = option byte
  25291. bit 7-1: reserved (0)
  25292. bit 0: 0 = need DMA channel for arbitration level requested
  25293. 1 = no channel required for arbitration level
  25294. Return: CF set on error
  25295. AH = status (80h,86h = function not supported)
  25296. CF clear on success
  25297. AL = channel number
  25298. 00h-07h channel number allocated for the arbiration level
  25299. 08h-FEh reserved
  25300. FFh no channel requested for arbitration level
  25301. AH = status (see #00531)
  25302. Notes: arbitration level 00h has the highest priority, 0Eh the lowest
  25303. to perform a DMA transfer operation, be sure to call this function
  25304. first, and call AH=CFh afterward. Failure to use this function
  25305. can cause unpredictable results.
  25306. SeeAlso: AH=CFh
  25307. (Table 00531)
  25308. Values for DMA arbitration status:
  25309. 00h success
  25310. 01h arbitration level not available
  25311. 02h channel not available
  25312. 03h invalid arbitration level passed
  25313. --------B-15CF-------------------------------
  25314. INT 15 - later PS/2s - DEALLOCATE DMA ARBITRATION LEVEL
  25315. AH = CFh
  25316. BL = arbitration level to be deallocated (see AH=CEh)
  25317. Return: CF set on error
  25318. AH = status (80h,86h = function not supported)
  25319. CF clear on success
  25320. AH = status
  25321. 00h success
  25322. 04h arbitration level not allocated
  25323. SeeAlso: AH=CEh
  25324. --------B-15D0-------------------------------
  25325. INT 15 - later PS/2s - RESERVED
  25326. AH = D0h
  25327. ???
  25328. Return: ???
  25329. ----------15D042BL00-------------------------
  25330. INT 15 R - Intel Pentium Pro BIOS UPDATE - INSTALLATION CHECK
  25331. AX = D042h
  25332. BL = 00h
  25333. Return: CF clear if successful
  25334. CF set on error
  25335. AH = status
  25336. 00h successful
  25337. EBX:ECX = signature "INTELPEP"
  25338. EDX = BIOS update loader version
  25339. SI = number of 2K update blocks which can be recorded in NVRAM
  25340. 86h not implemented
  25341. AL = OEM error (if AH is not 00h or 86h, otherwise undefined)
  25342. 00h successful
  25343. Program: the Pentium Pro BIOS update allows the system BIOS or other software
  25344. to install a microcode patch into the Pentium Pro processor
  25345. Notes: this API must be called from actual real mode, not V86 mode
  25346. at least 32K stack space must be available when this function is called
  25347. SeeAlso: AX=D042h/BL=01h,AX=D042h/BL=02h,AX=D042h/BL=03h
  25348. SeeAlso: @xxxxh:xxxxh"Intel BIOS Upgrade",MSR 00000079h
  25349. ----------15D042BL01-------------------------
  25350. INT 15 R - Intel Pentium Pro BIOS UPDATE - WRITE BIOS UPDATE AREA
  25351. AX = D042h
  25352. BL = 01h
  25353. ES:DI -> microcode update block (see #00533)
  25354. CX,DX,SI = segments of three 64K scratchpad areas for BIOS use
  25355. Return: CF clear if successful
  25356. CF set on error
  25357. AH = status (see #00532)
  25358. AL = OEM error (if AH is not 00h or 86h, otherwise undefined)
  25359. 00h successful
  25360. Notes: a microcode update may also be initiated by a WRMSR instruction
  25361. with ECX=0079h, EDX=00000000h, and EAX=linear address of update
  25362. block (see #00533)
  25363. at least 32K stack space must be available when this function is called
  25364. SeeAlso: AX=D042h/BL=00h,AX=D042h/BL=02h,AX=D042h/BL=03h,MSR 00000079h
  25365. (Table 00532)
  25366. Values for Pentium Pro BIOS update status:
  25367. 00h successful
  25368. 86h not implemented
  25369. 90h unable to erase NVRAM device
  25370. 91h unable to write to NVRAM device
  25371. 92h unable to read storage
  25372. 93h NVRAM is full
  25373. 94h specified processor stepping is not present in system
  25374. 95h invalid header or loader version
  25375. 96h wrong checksum in header
  25376. 97h processor rejected the update
  25377. 98h the same or a more recent update is already stored
  25378. 99h update block number was out of range
  25379. Format of Pentium Pro microcode update block:
  25380. Offset Size Description (Table 00533)
  25381. 00h DWORD update header version number (currently 00000001h)
  25382. FFFFFFFFh = unused block
  25383. 04h DWORD revision number of this microcode update
  25384. 08h DWORD update creation date, as BCD mmddyyyy (month,day,year)
  25385. 0Ch DWORD family/model/stepping of processor to which update applied
  25386. (same value as returned by CPUID instruction)
  25387. 10h DWORD checksum (used to force sum of all 512 DWORDs of the update
  25388. block to 00000000h)
  25389. 14h DWORD revision number of loader needed to install update
  25390. (currently 00000001h)
  25391. 18h 24 BYTEs reserved for future expansion
  25392. 30h 2000 BYTEs encrypted microcode data
  25393. SeeAlso: MSR 00000079h,OPCODE "CPUID"
  25394. ----------15D042BL02-------------------------
  25395. INT 15 R - Intel Pentium Pro BIOS UPDATE - BIOS UPDATE CONTROL
  25396. AX = D042h
  25397. BL = 02h
  25398. BH = function
  25399. 01h enable update loading at initialization time
  25400. 02h check whether update loading is enabled
  25401. CX,DX,SI = segments of three 64K scratchpad areas for BIOS use
  25402. Return: CF clear if successful
  25403. CF set on error
  25404. AH = status (see #00532)
  25405. 00h successful
  25406. BL = enabled/disabled flag
  25407. 86h not implemented
  25408. AL = OEM error (if AH is not 00h or 86h, otherwise undefined)
  25409. 00h successful
  25410. Notes: this API must be called from actual real mode, not V86 mode
  25411. at least 32K stack space must be available when this function is called
  25412. there is no call to disable update loading due to security risks; the
  25413. BIOS setup can disable loading
  25414. SeeAlso: AX=D042h/BL=00h,AX=D042h/BL=02h,AX=D042h/BL=03h
  25415. ----------15D042BL03-------------------------
  25416. INT 15 R - Intel Pentium Pro BIOS UPDATE - READ BIOS UPDATE AREA
  25417. AX = D042h
  25418. BL = 03h
  25419. ES:DI -> buffer for microcode update block (see #00533)
  25420. ECX = two real-mode 64K scratchpad segments (upper and lower words)
  25421. DX = segment of 64K scratchpad area for BIOS use
  25422. SI = zero-based index number of update block to retrieve
  25423. Return: CF clear if successful
  25424. CF set on error
  25425. AH = status
  25426. 00h successful
  25427. ES:DI buffer filled with 2048-byte update block
  25428. 86h not implemented
  25429. AL = OEM error (if AH is not 00h or 86h, otherwise undefined)
  25430. 00h successful
  25431. Program: the Pentium Pro BIOS update allows the system BIOS or other software
  25432. to install a microcode patch into the Pentium Pro processor
  25433. Notes: this API must be called from actual real mode, not V86 mode
  25434. at least 32K stack space must be available when this function is called
  25435. SeeAlso: AX=D042h/BL=00h,AX=D042h/BL=01h,AX=D042h/BL=03h
  25436. --------B-15D100DX0000-----------------------
  25437. INT 15 - later PS/2s - GET NUMBER OF DEVICE DESCRIPTOR TABLE (DDT) ENTRIES
  25438. AX = D100h
  25439. DX = 0000h (reserved, must set to 0)
  25440. Return: BL = size of one DDT entry, in bytes
  25441. CX = number of DDT entries
  25442. AH = return code (see #00534)
  25443. CF set on error
  25444. CF clear on success
  25445. SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D101h,AX=D102h,AX=D103h,AX=D104h
  25446. (Table 00534)
  25447. Values for return code:
  25448. 00h success
  25449. 01h requested DDT entry not found
  25450. 02h DDT data not valid
  25451. 86h function not supported
  25452. --------B-15D101-----------------------------
  25453. INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY NUMBER
  25454. AX = D101h
  25455. BX = number of requested entry (starting with 1)
  25456. DX = 0000h (reserved, must be set to 0)
  25457. ES:DI -> buffer to contain DDT entry (see #00535)
  25458. Return: AH = return code (see #00534)
  25459. CF set on error
  25460. CF clear on success
  25461. ES:DI buffer filled with DDT entry
  25462. SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D102h,AX=D104h
  25463. Format of Device Descriptor Table (DDT):
  25464. Offset Size Description (Table 00535)
  25465. 00h BYTE bits 7-4: reserved (set to 0)
  25466. bits 3-0: slot of device (0 = system board)
  25467. 01h BYTE bits 7-4: second interrupt for this device (0 = none)
  25468. bits 3-0: first interrupt for this device (0 = none)
  25469. 02h BYTE bits 7-4: second arbitration level for this device
  25470. bits 3-0: first arbitration level for this device
  25471. 03h WORD DDT indicators (see #00536)
  25472. 05h BYTE reserved (0)
  25473. 06h WORD device ID (0 = none)
  25474. 08h WORD starting address of first I/O block (0 = none)
  25475. 0Ah WORD starting address of second I/O block (0 = none)
  25476. OCh WORD starting address of third I/O block (0 = none)
  25477. OEh DWORD start of first non-system memory block (0 = none)
  25478. 12h WORD size of first non-system memory block (in kilobytes)
  25479. 14h DWORD start of second non-system memory block (0 = none)
  25480. 18h WORD size of second non-system memory block (in kilobytes)
  25481. 1Ah BYTE implementation identifier of the device
  25482. 1Bh BYTE implementation revision level of the device
  25483. Note: I/O block addresses and non-system memory addresses are listed in
  25484. ascending order in each DDT entry.
  25485. Bitfields for DDT indicators:
  25486. Bit(s) Description (Table 00536)
  25487. 15 reserved (0)
  25488. 14 second arbitration level exists
  25489. 13 first arbitration level exists
  25490. 12 serial interface is RS-422
  25491. 11 not address limited
  25492. 10 DMA channel used
  25493. 9 second arbitration level can be shared
  25494. 8 first arbitration level can be shared
  25495. 7-0 reserved (0)
  25496. --------B-15D102-----------------------------
  25497. INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY I/O ADDRSS
  25498. AX = D102h
  25499. BX = entry number at which to start searching
  25500. CX = requested I/O port address
  25501. DX = 0000h (reserved, must be set to 0)
  25502. ES:DI -> buffer to contain DDT entry (see #00535)
  25503. Return: AH = return code (see #00534)
  25504. BX = DDT entry number where I/O port was found, or total entries
  25505. plus 1 if port was not found.
  25506. CF set on error
  25507. CF clear on success
  25508. ES:DI buffer filled with DDT entry
  25509. Desc: the DDT is searched from the specified entry for the I/O port in CX,
  25510. and the first entry in which it is found is returned
  25511. SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D101h,AX=D103h,AX=D104h
  25512. --------B-15D103DX0000-----------------------
  25513. INT 15 - later PS/2s - RETURN ENTIRE DDT
  25514. AX = D103h
  25515. DX = 0000h (reserved, must be set to 0)
  25516. ES:DI -> buffer to contain DDT entry (see #00535)
  25517. Return: AH = return code (see #00534)
  25518. CF set on error
  25519. CF clear on success
  25520. ES:DI buffer filled with DDT entry
  25521. SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D104h
  25522. --------B-15D104-----------------------------
  25523. INT 15 - later PS/2s - RETURN DEVICE DESCRIPTOR TABLE (DDT) ENTRY BY DEVICE ID
  25524. AX = D104h
  25525. BX = entry number at which to start searching
  25526. CX = requested device ID
  25527. DX = 0000h (reserved, must be set to 0)
  25528. ES:DI -> buffer to contain DDT entry (see #00535)
  25529. Return: AH = return code (see #00534)
  25530. BX = DDT entry number where device ID was found, or total entries
  25531. plus 1 if port was not found.
  25532. CF set on error
  25533. CF clear on success
  25534. ES:DI buffer filled with DDT entry
  25535. Desc: the DDT is searched from the specified entry for the device ID in CX,
  25536. and the first entry in which it is found is returned.
  25537. SeeAlso: AH=C0h,AH=C7h,AH=C9h,AX=D100h,AX=D101h,AX=D103h
  25538. --------B-15D2-------------------------------
  25539. INT 15 - later PS/2s - RESERVED
  25540. AH = D2h
  25541. ???
  25542. Return: ???
  25543. --------B-15D3-------------------------------
  25544. INT 15 - later PS/2s - RESERVED
  25545. AH = D3h
  25546. ???
  25547. Return: ???
  25548. --------B-15D4-------------------------------
  25549. INT 15 - later PS/2s - GET PHYSICAL FIXED DISK DRIVE NUMBER (SELECTABLE BOOT)
  25550. AH = D4h
  25551. DL = logical fixed disk drive number
  25552. Return: AH = return code (see #00537)
  25553. CF set on error
  25554. CF clear on success
  25555. AL = physical fixed disk drive number
  25556. (Table 00537)
  25557. Values for return code:
  25558. 00h success
  25559. 01h specified logical drive number is invalid
  25560. 80h function not supported (on PCjr and PC)
  25561. 86h function not supported
  25562. --------B-15D5-------------------------------
  25563. INT 15 - later PS/2s - RESERVED
  25564. AH = D5h
  25565. ???
  25566. Return: ???
  25567. --------B-15D600BL00-------------------------
  25568. INT 15 - later PS/2s - READ BOOT DEVICE ID
  25569. AX = D600h
  25570. BL = 00h
  25571. DX = device ID
  25572. Return: CF clear if successful
  25573. AH = 00h
  25574. CF set on error
  25575. AH = status (86h for function not supported)
  25576. SeeAlso: AX=D600h/BL=01h,AX=D601h/BL=00h,AX=D602h
  25577. --------B-15D600BL01-------------------------
  25578. INT 15 - later PS/2s - WRITE BOOT DEVICE ID
  25579. AX = D600h
  25580. BL = 01h
  25581. DX = device ID
  25582. Return: CF clear on success
  25583. AH = 00h
  25584. CF set on error
  25585. AH = status (86h for function not supported)
  25586. SeeAlso: AX=D600h/BL=00h,AX=D601h/BL=01h
  25587. --------B-15D601BL00-------------------------
  25588. INT 15 - later PS/2s - READ BOOT DEVICE KEY
  25589. AX = D601h
  25590. BL = 00h
  25591. DX = device ID
  25592. Return: CF clear on success
  25593. AH = 00h
  25594. CF set on error
  25595. AH = status (86h for function not supported)
  25596. SeeAlso: AX=D600h/BL=00h,AX=D601h/BL=01h,AX=D602h
  25597. --------B-15D601BL01-------------------------
  25598. INT 15 - later PS/2s - WRITE BOOT DEVICE KEY
  25599. AX = D601h
  25600. BL = 01h
  25601. DX = device ID
  25602. Return: CF clear on success
  25603. AH = 00h
  25604. CF set on error
  25605. AH = status (86h for function not supported)
  25606. SeeAlso: AX=D600h/BL=01h,AX=D601h/BL=00h
  25607. --------B-15D602-----------------------------
  25608. INT 15 - later PS/2s - QUERY BOOT REFERENCE PARTITION
  25609. AX = D602h
  25610. Return: CF clear on success
  25611. AH = 00h
  25612. AL = status of reference-partition boot request
  25613. 00h boot not requested
  25614. 01h boot requested
  25615. CF set on error
  25616. AH = status (86h for function not supported)
  25617. SeeAlso: AX=D601h/BL=00h
  25618. --------X-15D800-----------------------------
  25619. INT 15 - EISA SYSTEM ROM - READ SLOT CONFIGURATION INFORMATION
  25620. AX = D800h
  25621. CL = slot number (including embedded and virtual)
  25622. Return: CF clear if successful
  25623. AH = 00h
  25624. CF set on error
  25625. AH = error code (80h,82h,83h,86h,87h)(see #00539)
  25626. AL = bit flags (see #00538)
  25627. BH = major revision level of configuration utility
  25628. BL = minor revision level of configuration utility
  25629. CX = checksum of configuration file
  25630. DH = number of device functions
  25631. DL = combined function information byte (see #00540)
  25632. SI:DI = 4-byte compressed ID (DI = bytes 0&1, SI = bytes 2&3)
  25633. Note: call with AL=80h if using 32-bit CS addressing mode instead of 16-bit
  25634. SeeAlso: AX=D801h,AX=D804h
  25635. Bitfields for EISA AL bit flags:
  25636. Bit(s) Description (Table 00538)
  25637. 7 set if duplicate IDs
  25638. 6 set if product ID readable
  25639. 4,5 slot type (00=expansion, 01=embedded, 10=virtual device)
  25640. 0-3 duplicate ID number if bit 7 set
  25641. SeeAlso: #00540
  25642. (Table 00539)
  25643. Values for EISA error code:
  25644. 80h invalid slot number
  25645. 81h invalid function number
  25646. 82h EISA CMOS corrupt
  25647. 83h empty slot
  25648. 84h error clearing CMOS
  25649. 85h EISA CMOS is full
  25650. 86h invalid BIOS-FW function call
  25651. 87h invalid system configuration
  25652. 88h config utility version not supported
  25653. Bitfields for EISA combined function information byte:
  25654. Bit(s) Description (Table 00540)
  25655. 7 reserved
  25656. 6 slot has free-form data entries
  25657. 5 slot has port initialization entries
  25658. 4 slot has port-range entries
  25659. 3 slot has DMA entries
  25660. 2 slot has IRQ entries
  25661. 1 slot has memory entries
  25662. 0 slot has function type entries
  25663. SeeAlso: #00538
  25664. --------X-15D801-----------------------------
  25665. INT 15 - EISA SYSTEM ROM - READ FUNCTION CONFIGURATION INFORMATION
  25666. AX = D801h
  25667. CH = function number to read
  25668. CL = slot number (including embedded and virtual)
  25669. DS:SI -> 320-byte buffer for standard configuration data block
  25670. Return: CF clear if successful
  25671. AH = 00h
  25672. DS:SI buffer filled
  25673. CF set on error
  25674. AH = error code (80h-83h,86h,87h) (see #00539)
  25675. BX destroyed
  25676. Note: call with AL=81h if using 32-bit CS addressing mode instead of 16-bit
  25677. --------X-15D802-----------------------------
  25678. INT 15 - EISA SYSTEM ROM - CLEAR NONVOLATILE MEMORY (EISA CMOS)
  25679. AX = D802h
  25680. BH = EISA config utility major revision level
  25681. BL = EISA config utility minor revision level
  25682. Return: CF clear if successful
  25683. AH = 00h
  25684. CF set on error
  25685. AH = error code (84h,86h,88h) (see #00539)
  25686. Note: call with AL=82h if using 32-bit CS addressing mode instead of 16-bit
  25687. SeeAlso: AX=D803h
  25688. --------X-15D803-----------------------------
  25689. INT 15 - EISA SYSTEM ROM - WRITE NONVOLATILE MEMORY
  25690. AX = D803h
  25691. CX = length of data structure (0000h = empty slot)
  25692. includes two bytes for config file checksum
  25693. DS:SI -> configuration data
  25694. Return: CF clear if successful
  25695. AH = 00h
  25696. CF set on error
  25697. AH = error code (84h-86h) (see #00539)
  25698. Note: call with AL=83h if using 32-bit CS addressing mode instead of 16-bit
  25699. SeeAlso: AX=D802h
  25700. --------X-15D804-----------------------------
  25701. INT 15 - EISA SYSTEM ROM - READ PHYSICAL SLOT
  25702. AX = D804h
  25703. CL = slot number (including embedded and virtual)
  25704. Return: CF clear if successful
  25705. AH = 00h
  25706. CF set on error
  25707. AH = error code (80h,83h,86h) (see #00539)
  25708. SI:DI = 4-byte compressed ID (DI = bytes 0&1, SI = bytes 2&3)
  25709. Note: call with AL=84h if using 32-bit CS addressing mode instead of 16-bit
  25710. SeeAlso: AX=D800h
  25711. --------b-15D820-----------------------------
  25712. INT 15 - Compaq LTE Lite - GET ???
  25713. AX = D820h
  25714. DS:SI -> 17-byte buffer for ???
  25715. Return: DS:SI buffer filled (first byte is length of remaining data, unless
  25716. it is greater than 10h, in which case the second byte is 00h and no
  25717. other data is returned)
  25718. Note: this function is also supported by Compaq's EISA System ROM, Contura
  25719. 486/486c/486cx and recent DESKPRO/i ROMs
  25720. SeeAlso: AX=D821h
  25721. --------b-15D821-----------------------------
  25722. INT 15 - Compaq LTE Lite - SET ???
  25723. AX = D821h
  25724. DS:SI -> counted string (should not be more than 16 bytes)
  25725. Return: AH = 00h
  25726. Note: this function is also supported by Compaq's EISA System ROM, Contura
  25727. 486/486c/486cx and recent DESKPRO/i ROMs
  25728. SeeAlso: AX=D820h
  25729. --------b-15D822BL00-------------------------
  25730. INT 15 - Compaq EISA System ROM 04/08/93 - GET ???
  25731. AX = D822h
  25732. BL = 00h
  25733. CX = size of buffer or 0000h to retrieve required buffer size
  25734. DS:SI -> buffer for ??? (if CX nonzero)
  25735. Return: CF clear if successful
  25736. AH = 00h
  25737. DH = 08h
  25738. CX = required buffer size to retrieve all data (if CX=0 on entry)
  25739. DS:SI buffer filled (if CX nonzero on entry)
  25740. CF set on error (BL nonzero)
  25741. AH = 86h
  25742. --------b-15D823-----------------------------
  25743. INT 15 - Compaq EISA System ROM 04/08/93 - ???
  25744. AX = D823h
  25745. BL = subfunction??? (00h or 80h)
  25746. BH = ???
  25747. DS:SI -> buffer for ??? (see #00541)
  25748. Return: CF clear if successful
  25749. AH = 00h
  25750. DH = 08h
  25751. DL = ???
  25752. CF set on error
  25753. AH = error code
  25754. 86h BL neither 00h nor 80h
  25755. 87h ???
  25756. Format of Compaq EISA buffer:
  25757. Offset Size Description (Table 00541)
  25758. 00h BYTE ???
  25759. 01h WORD ???
  25760. 03h BYTE ???
  25761. 04h WORD ???
  25762. 06h WORD ???
  25763. ???
  25764. ----------15D824-----------------------------
  25765. INT 15 - Compaq EISA System ROM 04/08/93 - ???
  25766. AX = D824h
  25767. CX = ???
  25768. DS:SI -> ASCIZ string containing ???
  25769. Return: CF clear if successful
  25770. AH = 00h
  25771. CX = ???
  25772. CF set on error
  25773. AH = error code
  25774. 87h ??? failed
  25775. 88h ???
  25776. Note: these functions are only available if ??? from keyboard controller
  25777. command C0h
  25778. ----------15D825-----------------------------
  25779. INT 15 - Compaq EISA System ROM 04/08/93 - ???
  25780. AX = D825h
  25781. CX = ???
  25782. SI = ???
  25783. DI = ???
  25784. ???
  25785. Return: CF clear if successful
  25786. AH = 00h
  25787. CX = ???
  25788. CF set on error
  25789. AH = error code
  25790. 87h ??? failed
  25791. 88h ???
  25792. CX = ???
  25793. Note: these functions are only available if ??? from keyboard controller
  25794. command C0h
  25795. ----------15D826-----------------------------
  25796. INT 15 - Compaq EISA System ROM 04/08/93 - ???
  25797. AX = D826h
  25798. BX = ???
  25799. CX = size of buffer in bytes
  25800. DS:SI -> buffer for ???
  25801. ???
  25802. Return: CF clear if successful
  25803. AH = 00h
  25804. CX = ???
  25805. CF set on error
  25806. AH = error code
  25807. 87h ??? failed
  25808. 88h ???
  25809. Note: these functions are only available if ??? from keyboard controller
  25810. command C0h
  25811. --------X-15D8-------------------------------
  25812. INT 15 - EISA SYSTEM ROM - 32-bit CS ADDRESSING MODE CALLS
  25813. AH = D8h
  25814. AL = 80h to 84h
  25815. other registers as appropriate for AL=00h to 04h
  25816. Return: as appropriate for AL=00h to 04h
  25817. Note: these functions are identical to AX=D800h to D804h, except that they
  25818. should be called when using 32-bit CS addressing mode (pointers use
  25819. ESI rather than SI as offset) instead of 16-bit addressing mode
  25820. SeeAlso: AX=D800h,AX=D801h,AX=D802h,AX=D803h,AX=D804h
  25821. --------b-15D8-------------------------------
  25822. INT 15 - Compaq EISA System ROM 04/08/93 - 32-bit CS ADDRESSING MODE CALLS
  25823. AH = D8h
  25824. AL = A0h to A6h
  25825. other registers as appropriate for AL=20h to 26h
  25826. Return: as appropriate for AL=20h to 26h
  25827. Note: these functions are identical to AX=D820h to D826h, except that they
  25828. should be called when using 32-bit CS addressing mode
  25829. ----------15DA-------------------------------
  25830. INT 15 U - AMI PCI BIOS v1.00.05.AX1 - ???
  25831. AH = DAh
  25832. AL = function (00h-08h,12h,14h,15h,19h,88h-8Eh,92h,99h)
  25833. other registers vary by function
  25834. Return: CF clear if successful
  25835. varies by function
  25836. CF set on error
  25837. AH = error code (86h unsupported [sub]function)
  25838. Note: functions not listed above always return CF set and AH=86h; in the
  25839. examined BIOS, functions 02h-04h,06h-07h,89h-8Bh, and 8Dh also
  25840. always return CF set and AH=86h
  25841. SeeAlso: AX=DA00h,AX=DA01h,AX=DA88h,AX=DA99h,AX=DB00h
  25842. --------b-15DA00-----------------------------
  25843. INT 15 U - AMI PCI BIOS - ???
  25844. AX = DA00h
  25845. CL = subfunction
  25846. 00h ???
  25847. 01h ???
  25848. 02h get ???
  25849. ???
  25850. Return: CF clear if successful
  25851. ???
  25852. CF set on error
  25853. AH = error code (86h unsupported subfunction)
  25854. Note: in the v1.00.05.AX1 BIOS, subfunctions 00h and 01h always return
  25855. failure
  25856. SeeAlso: AX=DA01h
  25857. --------b-15DA01-----------------------------
  25858. INT 15 U - AMI PCI BIOS - CPU SPEED CONTROL
  25859. AX = DA01h
  25860. CL = subfunction (00h-02h)
  25861. 00h set low CPU speed
  25862. 01h set high CPU speed
  25863. 02h get current CPU speed
  25864. Return: CF clear if successful
  25865. AH = current/new CPU speed (00h low, 01h high)
  25866. AL = ??? (00h)
  25867. CF set on error
  25868. AH = error code (86h unsupported subfunction)
  25869. Notes: in the v1.00.05.AX1 BIOS, subfunctions 00h and 01h are NOPs in both
  25870. protected and V86 modes due to a test of MSW bit 0
  25871. setting the CPU speed also generates the same audible signals generated
  25872. when manually switching speeds with Ctrl-Alt-Gray- and Ctrl-Alt-Gray+
  25873. BUG: the BIOS apparently intends to return CF set if ???, but fails to use
  25874. a different exit path in that case, resulting in CF clear
  25875. ----------15DA05-----------------------------
  25876. INT 15 U - AMI PCI BIOS - GET ??? AND BIOS REVISION STRINGS
  25877. AX = DA05h
  25878. ES:SI -> 8-byte buffer for ??? and BIOS revision strings
  25879. Return: CF clear
  25880. ES:SI buffer filled
  25881. AL = 00h
  25882. CX = ??? (0000h)
  25883. Notes: for BIOS v1.00.05.AX1, the ??? string is "IDNO" and the BIOS revision
  25884. string is "AX1 "
  25885. SeeAlso: AX=DA15h,AX=DB04h
  25886. ----------15DA08-----------------------------
  25887. INT 15 U - AMI PCI BIOS - ???
  25888. AX = DA08h
  25889. ???
  25890. Return: CF clear if successful
  25891. ???
  25892. CF set on error
  25893. AH = error code (86h unsupported subfunction)
  25894. Note: in the examined v1.00.05.AX1 BIOS, this call always returns failure
  25895. ----------15DA12-----------------------------
  25896. INT 15 U - AMI PCI BIOS - v1.00.05.AX1 - ???
  25897. AX = DA12h
  25898. CL = subfunction
  25899. 00h ???
  25900. 01h ???
  25901. 02h get ???
  25902. 03h ???
  25903. 04h ???
  25904. ???
  25905. Return: CF clear if successful
  25906. ???
  25907. CF set on error
  25908. AH = error code (86h unsupported subfunction)
  25909. Desc: ??? performs various manipulations on system chipset registers
  25910. Notes: subfunctions 00h and 01h are NOPs in protected and V86 modes due to
  25911. a test of MSW bit 0
  25912. subfunctions 00h-02h always return success
  25913. ----------15DA14-----------------------------
  25914. INT 15 U - AMI PCI BIOS - GET/SET ???
  25915. AX = DA14h
  25916. CL = subfunction
  25917. 00h read
  25918. 01h write
  25919. DH = new value for ??? (00h-02h)
  25920. DL = index of ??? (00h-03h, but not range-checked)
  25921. ???
  25922. Return: CF clear if successful
  25923. DH = current value of ??? if reading
  25924. CF set on error
  25925. AH = error code (86h unsupported subfunction)
  25926. Note: the values for indexes 00h and 01h are stored in CMOS RAM location 19h,
  25927. and the values for 02h and 03h are stored in location 36h
  25928. BUG: the v1.00.05.AX1 BIOS range-checks DH on subfunction 00h instead of
  25929. subfunction 01h, even though DH is never used by subfunction 00h
  25930. ----------15DA15-----------------------------
  25931. INT 15 U - AMI PCI BIOS - GET ??? AND BIOS REVISION STRINGS
  25932. AX = DA15h
  25933. ES:DI -> 8-byte buffer for ??? and BIOS revision strings
  25934. Return: CF clear
  25935. ES:DI buffer filled
  25936. AL = 00h
  25937. Note: for BIOS v1.00.05.AX1, the ??? string is "IDNO" and the BIOS revision
  25938. string is "AX1 "
  25939. SeeAlso: AX=DA05h,AX=DB04h
  25940. ----------15DA19-----------------------------
  25941. INT 15 U - AMI PCI BIOS - GET/SET ???
  25942. AX = DA19h
  25943. CL = subfunction
  25944. 00h get first ???
  25945. 01h get second ???
  25946. 02h set first ???
  25947. BX = ???
  25948. DX = ???
  25949. 03h set second ???
  25950. BX = ???
  25951. DX = ???
  25952. Return: CF clear if successful
  25953. AX = 0000h
  25954. BX,DX = ??? (subfunctions 00h and 01h only)
  25955. CF set on error
  25956. AH = error code (86h unsupported subfunction)
  25957. Note: the first ??? is stored in CMOS RAM locations 1Bh-1Eh, the second in
  25958. locations 1Fh-22h in the v1.00.05.AX1 BIOS
  25959. --------b-15DA20-----------------------------
  25960. INT 15 U - AMI PCI BIOS v1.00.12.AX1T - CMOS RAM BITFIELD MANIPULATION
  25961. AX = DA20h
  25962. BL = subfunction
  25963. 00h set CMOS data field
  25964. BH = CMOS data field number (00h-4Dh)
  25965. CH = new value for bitfield (in lowest bits of register)
  25966. 01h read CMOS data field
  25967. BH = CMOS data field number (00h-4Dh)
  25968. Return: CH = value of bitfield
  25969. CL = mask of valid bits
  25970. Note: both CL/CH shifted to move valid bits into lowest pos
  25971. 02h set CMOS byte
  25972. CL = CMOS RAM address (00h-7Fh)
  25973. CH = new value for CMOS byte
  25974. 03h get CMOS byte
  25975. CL = CMOS RAM address (00h-7Fh)
  25976. Return: CH = value of CMOS byte
  25977. 04h update CMOS checksums
  25978. Note: sets 2Eh/2Fh to checksum of 10h-2Dh and 7Eh/7Fh to
  25979. checksum of 48h-7Dh
  25980. 05h verify CMOS checksums
  25981. Return: CF clear if checksums OK
  25982. AH = 00h
  25983. CF set if checksum mismatch
  25984. AH = 01h
  25985. Return: CF clear if successful
  25986. AH = 00h
  25987. CF set on error
  25988. AH = error code (86h unsupported function/data field)
  25989. Notes: this function was not supported by the v1.00.05.AX1 BIOS, but had been
  25990. added by 1.00.12.AX1T
  25991. after using subfunctions 00h or 02h, the application must call
  25992. subfunction 04h to update the checksums to prevent an error the next
  25993. time the system is booted
  25994. (Table 00542)
  25995. Values for AMI BIOS v1.00.12.AX1T CMOS bitfield identifier:
  25996. ID address bit(s) contents
  25997. 00h 1Ah 7-6
  25998. 01h 1Dh 7-6
  25999. 02h 6Eh 1
  26000. 03h 77h 0
  26001. 04h 77h 1
  26002. 05h 77h 2
  26003. 06h 77h 3
  26004. 07h 77h 5
  26005. 08h 77h 6
  26006. 09h 77h 7
  26007. 0Ah 78h 7 power management enabled???
  26008. 0Bh 78h 6
  26009. 0Ch 10h 7-4 first floppy drive type
  26010. 0Dh 10h 3-0 second floppy drive type
  26011. 0Eh 11h 7
  26012. 0Fh 20h 4-0 selected language for error messages/setup utility
  26013. 10h 11h 2-1
  26014. 11h 11h 4
  26015. 12h 11h 0
  26016. 13h 11h 3
  26017. 14h 13h 7
  26018. 15h 13h 6-5
  26019. 16h 13h 4-2
  26020. 17h 19h 7
  26021. 18h 19h 6
  26022. 19h 19h 5
  26023. 1Ah 19h 4
  26024. 1Bh 1Eh 2-0
  26025. 1Ch 1Bh 7-6
  26026. 1Dh 1Ch 7
  26027. 1Eh 1Ch 3
  26028. 1Fh 1Ah 5-4
  26029. 20h 1Dh 5-4
  26030. 21h 1Bh 5-4
  26031. 22h 1Ch 6
  26032. 23h 1Ch 2
  26033. 24h 1Ah 3-2
  26034. 25h 1Dh 3-2
  26035. 26h 1Bh 3-2
  26036. 27h 1Ch 5
  26037. 28h 1Ch 1
  26038. 29h 1Ah 1-0
  26039. 2Ah 1Dh 1-0
  26040. 2Bh 1Bh 1-0
  26041. 2Ch 1Ch 4
  26042. 2Dh 1Ch 0
  26043. 2Eh 50h 7-0
  26044. 2Fh 51h 7-0
  26045. 30h 52h 7-0
  26046. 31h 53h 7-0
  26047. 32h 60h 0
  26048. 33h 60h 0
  26049. 34h 60h 0
  26050. 35h 60h 0
  26051. 36h 60h 0
  26052. 37h 60h 0
  26053. 38h 60h 1
  26054. 39h 61h 7
  26055. 3Ah 60h 2
  26056. 3Bh 61h 6-4
  26057. 3Ch 61h 2-0
  26058. 3Dh 60h 7-6
  26059. 3Eh 60h 5-4
  26060. 3Fh 78h 5-4
  26061. 40h 6Eh 5
  26062. 41h 1Eh 3
  26063. 42h 6Eh 0
  26064. 43h 6Eh 2
  26065. 44h 6Fh 1-0
  26066. 45h 6Fh 1-0
  26067. 46h 28h 4-2
  26068. 47h 28h 7-5
  26069. 48h 6Eh 4
  26070. 49h 6Eh 3
  26071. 4Ah 76h 7-0
  26072. 4Bh 77h 4
  26073. 4Ch 11h 6
  26074. 4Dh 1Fh 7-0
  26075. ----------15DA88-----------------------------
  26076. INT 15 U - AMI PCI BIOS - GET EXTENDED MEMORY SIZE
  26077. AX = DA88h
  26078. Return: CF clear (successful)
  26079. AX = 0000h
  26080. CL:BX = extended memory size in KBytes
  26081. SeeAlso: AH=88h
  26082. ----------15DA8C-----------------------------
  26083. INT 15 U - AMI PCI BIOS - GET BIOS AND CHIPSET IDENTIFICATION
  26084. AX = DA8Ch
  26085. CL = subfunction
  26086. 00h get BIOS version string
  26087. ES:DI -> 12-byte buffer for version string
  26088. 01h get chipset identification
  26089. BL = what to retrieve
  26090. (00h host/PCI bridge,01h motherboard chipset)
  26091. ES:DI -> 12-byte buffer for chipset identification (see #00543)
  26092. Return: CF clear if successful
  26093. ES:DI buffer filled
  26094. CF set on error
  26095. AH = error code (86h unsupported subfunction)
  26096. Notes: the v1.00.05.AX1 BIOS returns "1.00.05.AX1 " as its version string
  26097. subfunction 01h returns the five bytes read from the PCI configuration
  26098. registers 00h-05h (see #00878), padded to 12 bytes with NULs
  26099. SeeAlso: AX=DB04h,PORT C000h"Neptune"
  26100. Format of AMI PCI BIOS chipset identification:
  26101. Offset Size Description (Table 00543)
  26102. 00h WORD vendor ID (see #00732 at AX=B102h)
  26103. 8086h = Intel
  26104. 02h WORD device ID
  26105. 0484h (BL=01h)
  26106. 04A3h (BL=00h)
  26107. 04h BYTE low byte of PCI Command Register
  26108. 05h 7 BYTEs unused (00h)
  26109. ----------15DA8E-----------------------------
  26110. INT 15 U - AMI PCI BIOS - ???
  26111. AX = DA8Eh
  26112. ???
  26113. Return: CF clear if successful
  26114. ???
  26115. CF set on error
  26116. AH = error code (86h unsupported subfunction)
  26117. Note: in the v1.00.05.AX1 BIOS, this call always returns failure
  26118. ----------15DA92-----------------------------
  26119. INT 15 U - AMI PCI BIOS - GET CPU TYPE AND SPEED
  26120. AX = DA92h
  26121. Return: CF clear (successful)
  26122. AL = CPU stepping (see also #00529 at INT 15/AH=C9h)
  26123. AH = CPU model
  26124. BL = CPU family (05h = Pentium, etc.)
  26125. CX = external clock speed in MHz (BCD)
  26126. (0040h,0050h,0060h,0066h are possible return values on my
  26127. Pentium with the Intel "Neptune" chipset)
  26128. EAX high word destroyed
  26129. Note: 90 MHz and faster Pentium CPUs can be configured to run at varying
  26130. multiples of the external clock speed, i.e. a typical 90 MHz Pentium
  26131. system will run the motherboard at 60 MHz (my 90 MHz Pentium returns
  26132. 0060h in CX)
  26133. SeeAlso: AH=C9h
  26134. ----------15DA99-----------------------------
  26135. INT 15 U - AMI PCI BIOS - GET/SET ??? FLAG
  26136. AX = DA99h
  26137. CL = subfunction
  26138. 00h check if ???
  26139. 01h set ??? flag
  26140. 02h clear ??? flag
  26141. Return: CF clear if successful
  26142. AH = ??? (00h,01h)
  26143. AL = 00h
  26144. CF set on error
  26145. AH = error code (86h unsupported subfunction)
  26146. Note: the flag is stored in bit 0 of CMOS RAM location 2Ch for BIOS
  26147. v1.00.05.AX1
  26148. --------b-15DB00-----------------------------
  26149. INT 15 U - AMI BIOS - Flash ROM - READ FLASH BIOS
  26150. AX = DB00h
  26151. DS:SI -> parameter block (see #00544)
  26152. ES:DI -> buffer for copied information
  26153. Return: CF clear if successful
  26154. CF set on error
  26155. AH = status (86h if not implemented)
  26156. DS,ES destroyed, possibly other registers
  26157. Note: used by FMUP.EXE, Intel's Flash Memory Update utility
  26158. SeeAlso: AH=DAh,AX=DB01h,AX=DB04h
  26159. Format of AMI BIOS Flash ROM parameter block:
  26160. Offset Size Description (Table 00544)
  26161. 00h 32 BYTEs ASCIZ description of the file's contents
  26162. 20h BYTE Logical area type (see #00545)
  26163. 21h DWORD logical area size (overall size of area)
  26164. 25h BYTE flag: load from file (FF=yes, 00=no)
  26165. 26h BYTE flag: reboot after update (FF=yes, 00=no)
  26166. 27h BYTE flag: update entire image (FF=yes, 00=no)
  26167. 28h 24 BYTEs ASCIZ logical area name (cooresponds to offset 20)
  26168. "System BIOS"
  26169. "Logo Data Area", etc.
  26170. 40h 15 BYTEs ASCIZ time stamp string: MM/DD/YY-HH:MM
  26171. 4Fh BYTE checksum for this header (sum of all bytes except this one)
  26172. if checksum would be 00h,01h, or FFh, it is set to 2Ah
  26173. 50h DWORD this file's starting address (offset in image)
  26174. 54h DWORD size of image chunk in this file
  26175. 58h BYTE logical area type - same as offset 20h
  26176. 59h BYTE flag: last file in chain (FF=yes, 00=no)
  26177. 5Ah 6 BYTEs ASCIZ signature "FLASH"
  26178. 60h 16 BYTEs ASCIZ filename of next file in chain
  26179. 70h 16 BYTEs ASCIZ BIOS reserved string (usually version #)
  26180. Notes: this block is identical in format to the 128-byte header on an AMI
  26181. BIOS Update file
  26182. for AX=DB00h, the following fields must be specified: 50h,54h,58h;
  26183. the fields at offset 20h and 5Ah should also be set if possible
  26184. the fields at offsets 40h and 70h will be set on return, if available
  26185. SeeAlso: #00546
  26186. --------b-15DB01-----------------------------
  26187. INT 15 U - AMI BIOS - Flash ROM - GET BIOS SUBSYSTEM INFORMATION
  26188. AX = DB01h
  26189. CL = BIOS subsystem information identifier (see #00545)
  26190. Return: CF clear if successful
  26191. AX = 0000h
  26192. ES:DI -> 56-byte record describing subsystem (see #00546)
  26193. CF set on error
  26194. AH = status
  26195. 01h nonexistent subsystem
  26196. 86h function not supported
  26197. AL = 00h
  26198. Note: used by FMUP.EXE, Intel's Flash Memory Update utility
  26199. SeeAlso: AX=DB00h,AX=DB02h
  26200. (Table 00545)
  26201. Values for AMI BIOS subsystem identifier:
  26202. 00h recovery code
  26203. 01h system BIOS
  26204. 02h PCI configuration data
  26205. 03h OEM logo data area (see #00547)
  26206. 04h system BIOS/Language Set (one system)
  26207. configuration utility (another system)
  26208. SeeAlso: #00546
  26209. Format of AMI BIOS subsystem information:
  26210. Offset Size Description (Table 00546)
  26211. 00h BYTE subsystem identifier/logical area type (see #00545)
  26212. 01h DWORD subsystem (FlashROM page) size in bytes
  26213. 05h BYTE flag: loadable from file (FFh=yes)
  26214. 06h BYTE flag: reboot after update (FFh=yes)
  26215. 07h BYTE flag: update entire image (FFh=yes)
  26216. 08h 24 BYTEs subsystem/logical area name
  26217. 20h BYTE subsystem identifier???
  26218. 21h BYTE flag: reprogrammable if FFh
  26219. 22h BYTE ??? (01h,02h seen)
  26220. 23h 5 BYTEs ??? (apparently always 00h)
  26221. 28h 16 BYTEs BIOS reserved string (usually version number)
  26222. SeeAlso: #00544
  26223. Format of AMI OEM Logo data area:
  26224. Offset Size Description (Table 00547)
  26225. 00h 8 BYTEs signature
  26226. "TEXTLOGO" if text-mode OEM logo
  26227. 8 DUP (FFh) if unused
  26228. 08h WORD offset of logo font definition table
  26229. 0Ah WORD offset of logo data
  26230. 0Ch WORD size of logo font table in words
  26231. 0Eh WORD offset of upper left corner of logo in video page
  26232. 10h WORD width of logo
  26233. 12h WORD height of logo
  26234. 14h BYTE reserved???
  26235. var var logo font definition (16 bytes per character)
  26236. var var logo data as character/attribute pairs
  26237. Note: the attribute for the logo characters specifies which font will be used
  26238. for that character. If bit 3 is cleared, the normal system font is
  26239. used; if bit 3 is set, the logo font is used, with screen colors
  26240. adjusted to match the corresponding non-bright attribute for the
  26241. system font
  26242. SeeAlso: #00545,#00546
  26243. --------b-15DB02-----------------------------
  26244. INT 15 U - AMI BIOS - Flash ROM - GET SIZE OF FLASH ROM PROGRAMMING CODE
  26245. AX = DB02h
  26246. Return: CF clear
  26247. AX = 0000h
  26248. BX = size of ROM programming code in bytes
  26249. Note: used by FMUP.EXE, Intel's Flash Memory Update utility
  26250. SeeAlso: AX=DB00h,AX=DB03h
  26251. --------b-15DB03-----------------------------
  26252. INT 15 U - AMI BIOS - Flash ROM - GET FLASH ROM PROGRAMMING CODE
  26253. AX = DB03h
  26254. DS:SI -> ???
  26255. ES:DI -> buffer for Flash ROM programming code
  26256. BX = ???
  26257. DX = ???
  26258. Return: CF clear if successful
  26259. AH = ???
  26260. BX = ???
  26261. DX = ???
  26262. CF set on error
  26263. AH = error code
  26264. Notes: the entry point for the copied code (which is fully relocatable) is
  26265. the very first byte (see #00548)
  26266. used by FMUP.EXE, Intel's Flash Memory Update utility
  26267. SeeAlso: AX=DB00h,AX=DB02h
  26268. (Table 00548)
  26269. Call AMI BIOS ??? code with:
  26270. AL = function
  26271. 00h erase Flash ROM block
  26272. CX = ???
  26273. bit 8: address line A16 inverted
  26274. ???
  26275. 01h program new data into Flash ROM
  26276. ???
  26277. 02h perform cold reboot
  26278. DS:SI -> ??? (see #00549)
  26279. ES:DI -> ???
  26280. Return: AH = status
  26281. 00h successful
  26282. 01h invalid function
  26283. 02h ???
  26284. 03h ???
  26285. 04h ???
  26286. Note: DS:SI and ES:DI are ignored for function 02h
  26287. Format of AMI BIOS Flash ROM programming parameters:
  26288. Offset Size Description (Table 00549)
  26289. 00h 32 BYTEs ???
  26290. 20h BYTE BIOS section number
  26291. 21h DWORD length of BIOS code/data in bytes
  26292. 25h 43 BYTEs ???
  26293. 50h DWORD ???
  26294. 54h 44 BYTEs ???
  26295. SeeAlso: #00548
  26296. --------b-15DB04-----------------------------
  26297. INT 15 U - AMI BIOS - Flash ROM - GET BIOS REVISION
  26298. AX = DB04h
  26299. Return: CF clear if supported
  26300. BL:BH:DL:DH = BIOS revision string
  26301. (e.g. 'AX1 ' for v1.00.05.AX1, 'AV0M' for v1.00.03.AV0M)
  26302. CL = flag: DH valid?
  26303. 00h ignore DH; ignore DL as well if 20h (space)
  26304. 01h ignore DH if 20h (space)
  26305. CH = BIOS status
  26306. 00h normal mode
  26307. 01h ROM recovery mode
  26308. AL = ??? (02h)
  26309. Note: used by FMUP.EXE, Intel's Flash Memory Update utility
  26310. SeeAlso: AX=DA05h,AX=DA15h,AX=DA8Ch,AX=DB00h,AX=DB03h
  26311. --------Q-15DE00-----------------------------
  26312. INT 15 - DESQview - GET PROGRAM NAME
  26313. AX = DE00h
  26314. Return: AX = offset into DESQVIEW.DVO of program most recently selected from
  26315. the "Switch Windows" menu (see #00550)
  26316. Note: always returns AX=0000h under DESQview/X
  26317. SeeAlso: AX=DE07h
  26318. Format of program entry in DESQVIEW.DVO:
  26319. Offset Size Description (Table 00550)
  26320. 00h BYTE length of name (FFh if end of file)
  26321. 01h N BYTEs name
  26322. 2 BYTEs keys to invoke program (second = 00h if only one key used)
  26323. BYTE program type
  26324. 00h normal program
  26325. 04h divider
  26326. 80h Delete a Program
  26327. 81h Change a Program
  26328. WORD ??? apparently always 0000h
  26329. --------Q-15DE01-----------------------------
  26330. INT 15 - DESQview - UPDATE "OPEN WINDOW" MENU
  26331. AX = DE01h
  26332. Return: nothing
  26333. Notes: reads DESQVIEW.DVO, disables Open menu if file not in current directory
  26334. NOP for DESQview/X
  26335. --------Q-15DE02-----------------------------
  26336. INT 15 - DESQview 1.x only - SET ??? FLAG FOR CURRENT WINDOW
  26337. AX = DE02h
  26338. Return: nothing
  26339. Note: this call is a NOP in DV 2.x
  26340. SeeAlso: AX=DE03h
  26341. --------Q-15DE03-----------------------------
  26342. INT 15 - DESQview 1.x only - GET ??? FOR CURRENT WINDOW
  26343. AX = DE03h
  26344. Return: AX = ??? for current window
  26345. BX = ??? for current window
  26346. Note: this call is a NOP in DV 2.x
  26347. SeeAlso: AX=DE02h
  26348. --------Q-15DE04-----------------------------
  26349. INT 15 - DESQview - GET AVAILABLE COMMON MEMORY
  26350. AX = DE04h
  26351. Return: BX = bytes of common memory available
  26352. CX = largest block available
  26353. DX = total common memory in bytes
  26354. SeeAlso: AX=DE05h,AX=DE06h
  26355. --------Q-15DE05-----------------------------
  26356. INT 15 - DESQview - GET AVAILABLE CONVENTIONAL MEMORY
  26357. AX = DE05h
  26358. Return: BX = KB of memory available
  26359. CX = largest block available
  26360. DX = total conventional memory in KB
  26361. SeeAlso: AX=DE04h,AX=DE06h
  26362. --------Q-15DE06-----------------------------
  26363. INT 15 - DESQview - GET AVAILABLE EXPANDED MEMORY
  26364. AX = DE06h
  26365. Return: BX = KB of expanded memory available
  26366. CX = largest block available
  26367. DX = total expanded memory in KB
  26368. SeeAlso: AX=DE04h,AX=DE05h
  26369. --------Q-15DE07-----------------------------
  26370. INT 15 - DESQview - "APPNUM" - GET CURRENT PROGRAM'S NUMBER
  26371. AX = DE07h
  26372. Return: AX = number of program as it appears on the "Switch Windows" menu
  26373. Note: this API call may be made from a hardware interrupt handler
  26374. SeeAlso: AX=DE00h
  26375. --------Q-15DE08-----------------------------
  26376. INT 15 - DESQview - GET ???
  26377. AX = DE08h
  26378. Return: AX = 0000h if ??? is not set to the current task
  26379. 0001h if ??? is set to the current task
  26380. --------Q-15DE09-----------------------------
  26381. INT 15 - DESQview - UNIMPLEMENTED
  26382. AX = DE09h
  26383. Return: nothing (NOP in DV 1.x and 2.x)
  26384. --------Q-15DE0A-----------------------------
  26385. INT 15 - DESQview v2.00+ - "DBGPOKE" - DISPLAY CHARACTER ON STATUS LINE
  26386. AX = DE0Ah
  26387. BL = character
  26388. Return: character displayed, next call will display in next position (which
  26389. wraps back to the start of the line if off the right edge of screen)
  26390. Notes: displays character on bottom line of *physical* screen, regardless
  26391. of current size of window (even entirely hidden)
  26392. does not know about graphics display modes, just pokes the characters
  26393. into display memory
  26394. this API call may be made from a hardware interrupt handler
  26395. SeeAlso: AX=1003h
  26396. --------Q-15DE0B-----------------------------
  26397. INT 15 - DESQview v2.00+ - "APILEVEL" - DEFINE MINIMUM API LEVEL REQUIRED
  26398. AX = DE0Bh
  26399. BL = API level minor version number
  26400. BH = API level major version number
  26401. Return: AX = maximum API level (AH = major, AL = minor)
  26402. Notes: if the requested API level is greater than the version of DESQview, a
  26403. "You need a newer version" error window is popped up
  26404. the API level defaults to 1.00, and is inherited by child tasks
  26405. --------Q-15DE0C-----------------------------
  26406. INT 15 - DESQview v2.00+ - "GETMEM" - ALLOCATE "SYSTEM" MEMORY
  26407. AX = DE0Ch
  26408. BX = number of bytes
  26409. Return: ES:DI -> allocated block or 0000h:0000h (DV 2.26+)
  26410. Note: use SETERROR (AX=DE15h) to avoid a user prompt if there is insufficient
  26411. system memory
  26412. SeeAlso: AX=1001h,AX=102Eh,AX=DE0Dh,AX=DE15h,AX=DE19h
  26413. --------Q-15DE0D-----------------------------
  26414. INT 15 - DESQview v2.00+ - "PUTMEM" - DEALLOCATE "SYSTEM" MEMORY
  26415. AX = DE0Dh
  26416. ES:DI -> previously allocated block
  26417. Return: nothing
  26418. SeeAlso: AX=1002h,AX=DE0Ch
  26419. --------Q-15DE0E-----------------------------
  26420. INT 15 - DESQview v2.00+ - "FINDMAIL" - FIND MAILBOX BY NAME
  26421. AX = DE0Eh
  26422. ES:DI -> name to find (see #00551)
  26423. CX = length of name
  26424. Return: BX = 0000h not found
  26425. 0001h found
  26426. DS:SI = object handle
  26427. SeeAlso: AH=12h/BH=11h,AH=12h/BH=12h"GETNAME"
  26428. (Table 00551)
  26429. Values for special DESQview mailbox names:
  26430. "COM1" ... "COM4" RBcomm using COM1 ... COM4
  26431. "DESQview/X Help Engine"
  26432. "DESQview/X Network Server" Network Manager
  26433. "DESQview X Server0" X-Windows server
  26434. "DESQview X Server7" X-Windows printing service
  26435. "INBOX" DESQview/X LPD requests
  26436. "OUTBOX" DESQview/X LPD responses
  26437. "WAITBOX" semaphore to synchronize DESQview/X LPD communications
  26438. "_DVNM_" DV/X v1.10 network manager
  26439. --------Q-15DE0F-----------------------------
  26440. INT 15 - DESQview v2.00+ - ENABLE DESQview EXTENSIONS
  26441. AX = DE0Fh
  26442. Return: AX and BX destroyed (seems to be bug, weren't saved&restored)
  26443. Notes: sends a manager stream with opcodes AEh, BDh, and BFh to task's window
  26444. enables an additional mouse mode
  26445. --------Q-15DE10-----------------------------
  26446. INT 15 - DESQview v2.00+ - "PUSHKEY" - PUT KEY INTO KEYBOARD INPUT STREAM
  26447. AX = DE10h
  26448. BH = scan code
  26449. BL = character
  26450. Return: nothing
  26451. Notes: a later read will get the keystroke as if it had been typed by the user
  26452. multiple pushes are read last-in first-out
  26453. if a script exists for the pushed key in the current application, the
  26454. script will be executed
  26455. early copies of DV 2.00 destroy AX, BX, ES, and DI
  26456. SeeAlso: INT 16/AH=05h
  26457. --------Q-15DE11BL00-------------------------
  26458. INT 15 - DESQview v2.00+ - "JUSTIFY" - EN/DISABLE AUTOM. WINDOW JUSTIFICATION
  26459. AX = DE11h
  26460. BL = 00h viewport will not move automatically
  26461. nonzero viewport will move to keep cursor visible (default)
  26462. Return: nothing
  26463. --------Q-15DE12BX0000-----------------------
  26464. INT 15 - DESQview v2.01+ - "CSTYLE" - SET "C"-COMPATIBLE CONTROL CHAR INTERPRET
  26465. AX = DE12h
  26466. BX = 0000h select normal style (linefeed only moves down)
  26467. nonzero select C style (linefeed moves to start of next line)
  26468. Return: nothing
  26469. Note: set on a per-task basis, and inherited from the parent task
  26470. --------Q-15DE13-----------------------------
  26471. INT 15 - DESQview v2.20+ - "GETCRIT" - GET CRITICAL NESTING COUNT
  26472. AX = DE13h
  26473. Return: BX = number of calls to BEGINC or ENTERC
  26474. (see INT 15/AX=101Bh,INT 15/AX=DE1Ch) without matching ENDC
  26475. (see INT 15/AX=101Ch)
  26476. Note: this API call may be made from within a hardware interrupt handler
  26477. SeeAlso: AX=101Bh,AX=101Ch,AX=DE1Bh,AX=DE1Ch
  26478. --------Q-15DE14-----------------------------
  26479. INT 15 - DESQview v2.20+ - GET OBJECT TYPE
  26480. AX = DE14h
  26481. ES:DI -> object
  26482. Return: BL = 00h not an object
  26483. 08h window or task
  26484. 09h mailbox
  26485. 0Ah keyboard
  26486. 0Bh timer
  26487. 0Ch objectq
  26488. 0Fh pointer
  26489. 10h panel
  26490. SeeAlso: AX=1016h
  26491. --------Q-15DE15-----------------------------
  26492. INT 15 - DESQview v2.20+ - SET ERROR HANDLING
  26493. AX = DE15h
  26494. BL = error handling mode
  26495. 00h post system error on all error conditions
  26496. 01h return carry flag set on calls to ADDTO, SUBFROM, and WRITE
  26497. messages sent to mailboxes which fail due to lack of system
  26498. or common memory
  26499. 02h (v2.26+) same as 01h, but also return null pointer for GETMEM
  26500. calls which fail due to lack of system memory
  26501. Return: nothing
  26502. SeeAlso: AX=DE0Ch,AX=DE16h
  26503. --------Q-15DE16-----------------------------
  26504. INT 15 - DESQview v2.20+ - GET ERROR HANDLING
  26505. AX = DE16h
  26506. Return: BL = current mode
  26507. 00h always post system error
  26508. 01h return carry flag set on failed mailbox writes
  26509. 02h return CF set on failed mailbox writes and NULL on failed
  26510. GETMEM calls
  26511. SeeAlso: AX=DE15h
  26512. --------Q-15DE17-----------------------------
  26513. INT 15 - DESQview v2.20-2.25 - reserved
  26514. AX = DE17h
  26515. Return: pops up "Programming error" window
  26516. Note: AX = 1117h is NOT identical to this call under DESQview 2.20 thru 2.25
  26517. SeeAlso: AX=1117h
  26518. --------Q-15DE17-----------------------------
  26519. INT 15 - DESQview v2.26+ - "ASSERTMAP" - GET/SET MAPPING CONTEXT
  26520. AX = DE17h
  26521. BX = function
  26522. 0000h get current mapping context without setting
  26523. nonzero set new mapping context to BX
  26524. Return: BX = mapping context in effect before call
  26525. Notes: mapping contexts determine conventional-memory addressability; setting
  26526. a mapping context ensures that the associated program and data areas
  26527. are in memory for access. Usable by drivers, TSRs and shared
  26528. programs.
  26529. caller need not be running under DESQview
  26530. this API call may be made from a hardware interrupt handler
  26531. SeeAlso: AX=1016h,AX=1117h,AX=DE21h,INT 2F/AX=1685h
  26532. --------Q-15DE18-----------------------------
  26533. INT 15 - DESQview v2.20+ - internal - ???
  26534. AX = DE18h
  26535. BP = function number
  26536. high byte must be 10h
  26537. low byte is function
  26538. 00h set ???
  26539. BL = ??? (00h-10h, video mode???)
  26540. BH = value to store
  26541. 03h set ???
  26542. BL = ??? (stored in driver)
  26543. 0Ah get ???
  26544. ES:DI -> 18-byte buffer to hold ???
  26545. Note: calls video driver (NOP for Hercules driver,probably CGA and MCGA also)
  26546. --------Q-15DE19-----------------------------
  26547. INT 15 - DESQview v2.23+ - "GETCOMMON" - ALLOCATE "COMMON" MEMORY
  26548. AX = DE19h
  26549. BX = number of bytes to allocate
  26550. Return: AX = 0000h successful
  26551. ES:DI -> allocated block
  26552. nonzero insufficient memory
  26553. Note: this API call may be made from within a hardware interrupt handler
  26554. SeeAlso: AX=DE0Ch,AX=DE15h,AX=DE1Ah
  26555. --------Q-15DE1A-----------------------------
  26556. INT 15 - DESQview v2.23+ - "PUTCOMMON" - DEALLOCATE "COMMON" MEMORY
  26557. AX = DE1Ah
  26558. ES:DI -> previously allocated block
  26559. Return: AX = 0000h (successful)
  26560. Note: this function may be called from within a hardware interrupt handler
  26561. SeeAlso: AX=DE0Dh,AX=DE19h
  26562. --------Q-15DE1B-----------------------------
  26563. INT 15 - DESQview v2.23+ internal - DECREMENT CRITICAL NESTING COUNT
  26564. AX = DE1Bh
  26565. Return: nothing
  26566. SeeAlso: AX=101Ch,AX=DE13h,AX=DE1Ch
  26567. --------Q-15DE1C-----------------------------
  26568. INT 15 - DESQview v2.23+ - "ENTERC" - INCREMENT CRITICAL NESTING COUNT
  26569. AX = DE1Ch
  26570. Return: nothing
  26571. Notes: similar to AX=101Bh, but begins the critical region without ensuring
  26572. that DOS is free
  26573. the official documentation states that this call should be paired with
  26574. "ENDC" (AX=101Ch); no mention is made of AX=DE1Bh
  26575. this API call may be made from within a hardware interrupt handler
  26576. SeeAlso: AX=101Bh,AX=101Ch,AX=DE13h,AX=DE1Bh
  26577. --------Q-15DE1D-----------------------------
  26578. INT 15 - DESQview v2.23+ - "PUTKEY" - FAKE USER KEYSTROKES
  26579. AX = DE1Dh
  26580. DX = segment of handle for task to receive keystroke
  26581. BL = character
  26582. BH = scan code
  26583. Return: AX = 0000h if successful
  26584. nonzero if receiver's keyboard buffer was full
  26585. Notes: the key is treated as though the user had pressed it, ignoring any
  26586. script which may be bound to the key, and using the current field
  26587. table if the keyboard object is in field processing mode
  26588. multiple PUTKEYs are seen in the order in which they are executed
  26589. SeeAlso: AX=DE10h
  26590. --------Q-15DE1E-----------------------------
  26591. INT 15 - DESQview v2.23+ - "SCRNINFO" - GET TRUE VIDEO PARAMETERS
  26592. AX = DE1Eh
  26593. Return: CL = actual number of rows on screen
  26594. CH = actual number of columns on screen
  26595. BL = actual video mode (may differ from INT 10/AH=0Fh return) (v2.26+)
  26596. Note: this API call may be made from a hardware interrupt handler
  26597. SeeAlso: INT 10/AH=0Fh
  26598. --------Q-15DE1F-----------------------------
  26599. INT 15 - DESQview v2.23+ - "DOSUSER" - GET HANDLE OF TASK CURRENTLY USING DOS
  26600. AX = DE1Fh
  26601. Return: BX = segment of task handle or 0000h if no tasks are using DOS
  26602. Note: this API call may be made from within a hardware interrupt handler
  26603. SeeAlso: AX=DE13h,INT 21/AH=34h
  26604. --------Q-15DE20-----------------------------
  26605. INT 15 - DESQview v2.26+ - "DISPATCHINT" - INTERRUPT ANOTHER TASK
  26606. AX = DE20h
  26607. BX = segment of handle of task to interupt
  26608. DX:CX -> FAR interrupt routine
  26609. BP,SI,DI,DS,ES as required by interrupt routine
  26610. Return: nothing
  26611. Notes: unlike "PGMINT" (AX=1021h), DISPATCHINT may be applied to the task
  26612. making the DISPATCHINT call
  26613. multiple "DISPATCHINT" calls are processed in the order in which they
  26614. were executed
  26615. the FAR routine is entered with the current ES, DS, SI, DI, and BP
  26616. values, using the task's internal stack (see AX=101Ah); only SS:SP
  26617. needs to be preserved
  26618. this API call may be made from within a hardware interrupt handler
  26619. SeeAlso: AX=1021h,AX=DE2Ah
  26620. --------Q-15DE21-----------------------------
  26621. INT 15 - DESQview v2.26+ - "ASSERTVIR" - CONTROL 386 SCREEN VIRTUALIZATION
  26622. AX = DE21h
  26623. BX = new state
  26624. 0000h turn off
  26625. nonzero turn on
  26626. Return: BX = old state of virtualization
  26627. Notes: this API call may be made from within a hardware interrupt handler
  26628. under DV 2.40 and 2.42, this call appears to have no effect and always
  26629. returns a nonzero value in BX which appears to be the offset within
  26630. the DV common memory segment of the caller's task object; it may
  26631. only have an effect within a hardware interrupt handler
  26632. SeeAlso: AX=1117h,AX=DE17h
  26633. --------Q-15DE22-----------------------------
  26634. INT 15 - DESQview v2.26+ - "PROCESSMEM" - GET TASK MEMORY STATUS
  26635. AX = DE22h
  26636. DX = segment of task handle
  26637. Return: DX = total amount of memory in paragraphs
  26638. BX = amount of system memory in paragraphs
  26639. CX = largest block of system memory available in paragraphs
  26640. AX = memory flags (see #00552)
  26641. Notes: if the task handle is a child task, the returned values will be for the
  26642. process containing the task, rather than the task itself
  26643. if the process's system memory is swapped out, BX,CX,DX remain
  26644. unchanged, because the memory usage cannot be determined
  26645. SeeAlso: AX=DE04h,AX=DE05h,AX=DE06h
  26646. Bitfields for DESQview process memory flags:
  26647. Bit(s) Description (Table 00552)
  26648. 0 system memory resides in shared memory
  26649. 1 process's memory is swapped out
  26650. 2 process's system memory is swapped out
  26651. --------Q-15DE23-----------------------------
  26652. INT 15 U - DESQview v2.31+ - ???
  26653. AX = DE23h
  26654. BX = ??? IRQ number on first PIC?
  26655. CX = ??? IRQ number on second PIC?
  26656. Return: ???
  26657. Note: called by QEMM 6.00+
  26658. --------Q-15DE24-----------------------------
  26659. INT 15 - DESQview v2.40+ - "XNEWPROC" - START NEW APPLICATION
  26660. AX = DE24h
  26661. BX = length of .DVP data
  26662. CX = length of ??? string
  26663. DS:SI -> ??? string
  26664. ES:DI -> .DVP data (see #00427 at AX=102Ch)
  26665. Return: BX = segment of task handle??? or 0000h on error
  26666. Note: this call is similar to AX=102Ch except that it can interpret the
  26667. extended DVP data
  26668. SeeAlso: AX=102Ch
  26669. --------Q-15DE25-----------------------------
  26670. INT 15 - DESQview v2.40+ - "GETDVPATH" - GET DESQview DIRECTORY
  26671. AX = DE25h
  26672. ES:DI -> 67-byte buffer for ASCIZ directory name
  26673. Return: ES:DI buffer filled with directory from which DESQview was started
  26674. BUG: DV 2.42 does not place a terminating NUL at the end of the directory
  26675. name, so if the buffer is not cleared to zeros before the call,
  26676. there is no way to tell where the directory name ends. This bug
  26677. has been fixed in DV 2.52 (DV/X 1.02)
  26678. SeeAlso: AX=DE2Eh,INT 21/AH=47h
  26679. --------Q-15DE26-----------------------------
  26680. INT 15 - DESQview v2.40+ - "GETFOREGROUND" - GET KEYBOARD FOCUS
  26681. AX = DE26h
  26682. Return: BX = segment of handle for task with keyboard focus
  26683. Note: under DESQview/X, the X server always has the keyboard focus unless a
  26684. "direct" window is active
  26685. SeeAlso: AX=DE2Fh,INT 2F/AX=DE0Ah
  26686. --------Q-15DE27-----------------------------
  26687. INT 15 - DESQview v2.50+ - "ADDINSTANCEDATA" - ADD PER-TASK SAVE/RESTORE AREA
  26688. AX = DE27h
  26689. BX = type
  26690. 0000h process
  26691. 0001h task
  26692. ES:DI -> list of Instance Item Structures (see #00553)
  26693. Return: CF clear if successful
  26694. AX = ???
  26695. BX = ???
  26696. CF set on error
  26697. AX = error code???
  26698. 0004h invalid BX value
  26699. Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  26700. SeeAlso: INT 2F/AX=DE08h,INT 2F/AX=DE09h
  26701. Format of DESQview Instance Item Structure [one element of list]:
  26702. Offset Size Description (Table 00553)
  26703. 00h WORD length of data area DESQview should save and restore on context
  26704. switches (0000h = end of list)
  26705. 02h DWORD pointer to area to be saved/restored
  26706. --------Q-15DE28-----------------------------
  26707. INT 15 U - DESQview v2.50+ - ???
  26708. AX = DE28h
  26709. BX = segment of ??? or 0000h for default
  26710. ???
  26711. Return: ???
  26712. Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  26713. SeeAlso: AX=DE2Ah
  26714. --------Q-15DE29BX0000-----------------------
  26715. INT 15 U - DESQview/X - ???
  26716. AX = DE29h
  26717. BX = 0000h
  26718. ???
  26719. Return: CF clear if successful
  26720. ???
  26721. CF set on error
  26722. Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  26723. under DESQview 2.60, this function and all other subfunctions of
  26724. AX=DE29h always return CF set, as they are unique to DESQview/X
  26725. --------Q-15DE29BX0001-----------------------
  26726. INT 15 U - DESQview/X - ???
  26727. AX = DE29h
  26728. BX = 0001h
  26729. DX = segment of window handle
  26730. Return: CF clear if successful
  26731. AX = ???
  26732. DX = ???
  26733. CF set on error
  26734. Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  26735. --------Q-15DE29BX0002-----------------------
  26736. INT 15 U - DESQview/X - ???
  26737. AX = DE29h
  26738. BX = 0002h
  26739. DX = segment of window handle
  26740. Return: CF clear if successful
  26741. AX = ???
  26742. DX = ???
  26743. CF set on error
  26744. Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  26745. --------Q-15DE29BX0003-----------------------
  26746. INT 15 U - DESQview/X - ???
  26747. AX = DE29h
  26748. BX = 0003h
  26749. DX = segment of window handle
  26750. Return: CF clear if successful
  26751. ???
  26752. CF set on error
  26753. Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  26754. --------Q-15DE29BX0004-----------------------
  26755. INT 15 U - DESQview/X - GET DISPLAY NAME
  26756. AX = DE29h
  26757. BX = 0004h
  26758. CX = size of buffer in bytes
  26759. DX = segment of window handle
  26760. ES:DI -> buffer for display name
  26761. Return: CF clear if successful
  26762. buffer filled with ASCIZ display name (truncated if necessary) or
  26763. null string if no display
  26764. CF set on error
  26765. Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  26766. the name ":0" refers to the local display
  26767. --------Q-15DE29BX0005-----------------------
  26768. INT 15 U - DESQview/X - ???
  26769. AX = DE29h
  26770. BX = 0005h
  26771. ???
  26772. Return: CF clear if successful
  26773. ???
  26774. CF set on error
  26775. Note: under DESQview 2.60, this function and all other subfunctions of
  26776. AX=DE29h always return CF set, as they are unique to DESQview/X
  26777. --------Q-15DE2A-----------------------------
  26778. INT 15 - DESQview v2.50+ - "DISPATCHINTAFTERDOS" - INTERRUPT ANOTHER TASK
  26779. AX = DE2Ah
  26780. BX = segment of handle for task to interrupt or 0000h for caller
  26781. DX:CX -> interrupt routine
  26782. BP,SI,DI,DS,ES as required by interrupt routine
  26783. Return: nothing
  26784. Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  26785. this call is the same as AX=DE20h except that it will delay
  26786. interrupting the specified task until after it has exited DOS
  26787. SeeAlso: AX=1021h,AX=DE20h
  26788. --------Q-15DE2B-----------------------------
  26789. INT 15 - DESQview v2.50+ - "OBJNEXT" - TRAVERSE OBJECT LIST
  26790. AX = DE2Bh
  26791. ES:DI -> starting object
  26792. 0000h:0000h for first object in list???
  26793. Return: AX = status
  26794. 0000h successful
  26795. ES:DI -> next object of same type (window/non-window)
  26796. 0001h failed (ES:DI was not a valid handle)
  26797. Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  26798. there are two separate lists, one for window/task objects and one
  26799. for all other objects
  26800. SeeAlso: AX=1016h,AX=DE2Ah,AX=DE2Ch
  26801. --------Q-15DE2C-----------------------------
  26802. INT 15 - DESQview v2.50+ - "WININFO" - GET WINDOW INFORMATION
  26803. AX = DE2Ch
  26804. DX = window information format version (0100h for DESQview 2.5x)
  26805. BX = segment of window handle or 0000h for default
  26806. ES:DI -> buffer for window information (see #00554)
  26807. Return: AX = status
  26808. 0000h successful
  26809. Note: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  26810. SeeAlso: AX=1000h,AX=1016h,AX=DE01h,AX=DE2Bh
  26811. Format of DESQview window information:
  26812. Offset Size Description (Table 00554)
  26813. 00h BYTE task flag: 00h window, 01h task
  26814. 01h BYTE process number if owner task
  26815. 00h if non-owner task
  26816. 02h WORD segment of owner's handle, 0000h if orphaned
  26817. 04h WORD mapping context (see #00416 at AX=1016h)
  26818. 06h BYTE task status (see #00555)
  26819. 07h BYTE unused
  26820. 08h WORD status bits (see #00556)
  26821. 0Ah BYTE 01h if foreground-only window
  26822. (Table 00555)
  26823. Values for DESQview task status:
  26824. 00h "Waiting" waiting for input
  26825. 01h "Idle" keyboard poll limit reached
  26826. 03h same as 01h
  26827. 04h "Pausing" INT 15/AX=1000h pause called
  26828. 04h DV/X direct: user did something to allow task switch
  26829. 05h "ModeChg" video mode about to be changed
  26830. 06h "ModeNtf" notify that video mode changed
  26831. 07h "MoniCh" requested change to other monitor
  26832. 08h "StartPgm" control relinquished to start new process
  26833. 09h "MgrCan" made window manager CANCEL command
  26834. 0Ah "Slicing" time slice expired
  26835. 0Bh "Exit DOS" notify on DOS calls
  26836. 0Ch "Enter DOS" process is re-entering DOS
  26837. 0Dh "Terminate" INT 21/AH=4Ch or task freed
  26838. 0Eh "BrkNxt" Control-Break pressed
  26839. 0Fh "MgrCol" keyboard focus taken away
  26840. 10h "PgmInt" interrupted by API call from another task
  26841. 11h "BldOpen" call to INT 15/AX=DE01h
  26842. Bitfields for DESQview task status bits:
  26843. Bit(s) Description (Table 00556)
  26844. 6 task is freeing another task
  26845. 5 process is being created
  26846. 4 user suspended process
  26847. 3 process suspended itself
  26848. 2 process is resized direct window (suspended)
  26849. 1 process swapped out
  26850. 0 DESQview process
  26851. --------Q-15DE2D-----------------------------
  26852. INT 15 U - DESQview v2.50+ - GET/SET SOCKET HANDLER
  26853. AX = DE2Dh
  26854. CX = direction
  26855. FFFFh set socket handler
  26856. DX:BX -> FAR function for socket interface
  26857. must be of the format described under INT 63"DESQview"
  26858. at #03515
  26859. other get socket handler
  26860. Return: DX:BX -> socket handler (see #03515)
  26861. Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  26862. the "set" subfunction is normally called only by SOCKET.DVR
  26863. SeeAlso: AX=DE2Eh,INT 63"DESQview",#03515
  26864. --------Q-15DE2E-----------------------------
  26865. INT 15 U - DESQview v2.50+ - SOCKET API
  26866. AX = DE2Eh
  26867. DX:BX -> socket record (see #00558)
  26868. 0000h:0000h to create a new socket record
  26869. Return: CX = size of socket record in bytes
  26870. DX:BX -> socket record which was used
  26871. Notes: DESQview 2.50-2.52 are distributed as part of DESQview/X v1.0x.
  26872. socket records are allocated from common memory
  26873. for Unix compatibility, each socket and connection on a socket is
  26874. allocated a DOS file handle (referencing an SFT for NUL) which is
  26875. used on various calls to specify which of possibly multiple
  26876. connections is to be operated upon
  26877. SeeAlso: AX=DE2Dh,INT 61/AX=0001h/SF=0001h"VINES",INT 63"DESQview"
  26878. (Table 00557)
  26879. Values for DESQview/X socket API function number:
  26880. 0000h initialize socket???
  26881. 0001h "gethostname"
  26882. 0002h "ioctl" check for input
  26883. 0003h "sleep" delay for specified period
  26884. 0004h "htons" convert word to network (big-endian) byte order
  26885. 0005h "select"
  26886. 0006h "bsd_close"/"so_close" close socket
  26887. 0007h NOP
  26888. 0008h "connect" initiate connection on socket
  26889. 0009h "recv"/"recvfrom" read from socket
  26890. 000Ah "socket"
  26891. 000Bh ???
  26892. 000Ch "gethostbyname"
  26893. 000Dh "send"/"sendto" write to socket
  26894. 000Eh ??? (does something to all connections for process)
  26895. 000Fh "getpid" get process identifier
  26896. 0010h "gettimeofday"
  26897. 0011h "bind" assign name to socket
  26898. 0012h "listen" listen for connections on socket
  26899. 0013h "accept" accept connection on socket
  26900. 0014h connect to X server
  26901. 0015h "gethostbyaddr" get host information for an address
  26902. 0016h "getprotobyname"
  26903. 0017h "getprotobynumber"
  26904. 0018h "getservbyname"
  26905. 0019h "getservbyport"
  26906. 001Ah "getsockname" determine name bound to socket
  26907. 001Bh "getpeername" get name of connected peer
  26908. 001Ch "getsockopt"/"setsockopt"
  26909. 001Dh "so_exit" close all sockets for calling process
  26910. 001Eh "issock" determine whether file handle references socket
  26911. 001Fh "so_attach" reattach previously detached socket
  26912. 0020h "so_detach" temporarily detach socket
  26913. 0021h "dvpath" get DESQview directory (see also AX=DE24h)
  26914. 0022h "NewProc" start new application (see also AX=102Ch)
  26915. 0023h "so_linkup"
  26916. 0024h "CanonicalPath" canonicalize filename (see also INT 21/AH=60h)
  26917. 0025h indirect INT 15h call
  26918. 0026h Network Manager interface
  26919. 0027h "so_unlink" close connection from "so_linkup"
  26920. 0028h "raisepriority"
  26921. 0029h "lowerpriority"
  26922. 002Ah "so_private" ???
  26923. FFFFh "NetExit" (appears to be a NOP)
  26924. Format of DESQview/X socket record:
  26925. Offset Size Description (Table 00558)
  26926. 00h WORD signature F0ADh
  26927. 02h WORD function number (see #00557)
  26928. 04h WORD returned error code (see #00578)
  26929. 06h WORD maximum message size??? (usually 0400h)
  26930. 08h WORD PSP segment to use or 0000h if socket not valid
  26931. 0Ah WORD scratch space (JFT size)
  26932. 0Ch DWORD scratch space (JFT address)
  26933. 10h DWORD mailbox handle (initialized by function 0000h)
  26934. 14h DWORD timer object handle (initialized by function 0000h)
  26935. ---function 0000h---
  26936. 18h WORD (ret) ???
  26937. ---function 0001h---
  26938. 18h WORD (ret) status???
  26939. 1Ah 128 BYTEs (ret) ASCIZ hostname (empty string if not on network)
  26940. 9Ah WORD maximum length of hostname to return
  26941. ---function 0002h---
  26942. 18h WORD (ret) status
  26943. 1Ah WORD socket's file handle
  26944. 1Ch WORD IOCTL function
  26945. 05h "FIONREAD" determine available input
  26946. 06h "FIONBIO" set blocking state of socket
  26947. 1Eh WORD (return, subfn 05h) number of bytes available for reading
  26948. (call, subfn 06h) 0000h blocking, nonzero nonblocking
  26949. ---function 0003h---
  26950. 18h 2 BYTEs unused
  26951. 1Ah WORD delay time in seconds
  26952. ---function 0004h---
  26953. 18h WORD (ret) result in network (big-endian) byte order
  26954. 1Ah WORD value to convert to network byte order
  26955. ---function 0005h---
  26956. 18h WORD (ret) number of handles meeting the specified conditions???
  26957. 1Ah WORD number of file handles in each bitset
  26958. 1Ch DWORD bitset of socket handles to check for readability
  26959. 20h DWORD bitset of socket handles to check for writability
  26960. 24h DWORD bitset of socket handles to check for errors
  26961. 28h WORD timeout in ??? or 0000h to block until some socket ready
  26962. 2Ah DWORD ???
  26963. 2Eh DWORD ???
  26964. ---function 0006h---
  26965. 18h WORD (ret) status: 0000h if successful, FFFFh on error
  26966. 1Ah WORD socket's file handle
  26967. ---function 0008h---
  26968. 18h WORD (ret) status: 0000h if successful, FFFFh on error
  26969. 1Ah WORD socket's file handle
  26970. 1Ch WORD 0001h if socket name specified, 0000h if not
  26971. 1Eh WORD length of socket name
  26972. 20h N BYTEs name of socket to which to connect
  26973. ---function 0009h---
  26974. 18h WORD (ret) number of bytes actually read, 0000h if connection
  26975. closed, or FFFFh on error
  26976. 1Ah WORD socket's file handle
  26977. 1Ch WORD number of bytes to read
  26978. 1Eh WORD flags
  26979. 20h WORD 0000h if no source address desired
  26980. 0001h if source address is to be stored (datagram sockets)
  26981. 22h WORD length of source address
  26982. 24h 110 BYTEs source address
  26983. 92h 1K BYTEs buffer for data to be read
  26984. ---function 000Ah---
  26985. 18h WORD (ret) socket's file handle or FFFFh on error
  26986. 1Ah WORD address family (0001h,0002h)
  26987. 1Ch WORD socket type
  26988. 1Eh WORD protocol
  26989. ---function 000Bh---
  26990. 18h WORD (ret) 0001h if ??? or FFFFh on error
  26991. 1Ah WORD socket's file handle
  26992. 1Eh WORD (call) ???
  26993. ---function 000Ch---
  26994. 18h 128 BYTEs ASCIZ hostname (special case if empty string or "unix")
  26995. 98h ??? (ret) packed 'hostent' structure
  26996. A2h ??? (ret) ???
  26997. ---function 000Dh---
  26998. 18h WORD (ret) number of bytes actually written or FFFFh on error
  26999. 1Ah WORD socket's file handle
  27000. 1Ch WORD number of bytes to write
  27001. 1Eh WORD number of bytes to follow in subsequent writes???
  27002. 20h WORD flags
  27003. 22h WORD 0000h if no destination specified, 0001h if destination present
  27004. 24h WORD 0001h if broadcast message???, 0000h if not
  27005. (ignored if no destination specified)
  27006. 26h WORD length of destination address
  27007. 28h 110 BYTEs destination address
  27008. 96h 1K BYTEs buffer containing data to be written
  27009. ---function 000Eh---
  27010. no additional fields
  27011. ---function 000Fh---
  27012. 18h DWORD (ret) DESQview task handle of calling process
  27013. ---function 0010h---
  27014. 18h DWORD (ret) current time
  27015. 1Ch DWORD (ret) ???
  27016. ---function 0011h---
  27017. 18h WORD (ret) status: 0000h if successful, FFFFh on error
  27018. 1Ah WORD socket's file handle
  27019. 1Ch WORD length of name
  27020. 1Eh N BYTEs buffer for socket name
  27021. ---function 0012h---
  27022. 18h WORD (ret) status: 0000h if successful, FFFFh on error
  27023. 1Ah WORD socket's file handle
  27024. 1Ch WORD maximum backlog of pending connections allowed on socket
  27025. ---function 0013h---
  27026. 18h WORD (ret) file handle for new connection or FFFFh on error
  27027. 1Ah WORD listen()ing socket's file handle
  27028. 1Ch WORD (call) length of buffer for connecting entity's address
  27029. (ret) actual length of address
  27030. 1Eh N BYTEs buffer for connecting entity's address (110 bytes???)
  27031. ---function 0014h---
  27032. 18h WORD (ret) socket's file handle or FFFFh on error
  27033. 1Ah 4 BYTEs (ret) ???
  27034. 1Eh WORD (ret) ???
  27035. 20h WORD (ret) ???
  27036. 22h 256 BYTEs ASCIZ X display name
  27037. 122h ???
  27038. ---function 0015h---
  27039. 18h WORD (call) type of address??? (test for 0001h seen)
  27040. 1Ah WORD (call) length of buffer for host address
  27041. 1Ch 110 BYTEs buffer containing ASCIZ host address
  27042. 8Ah WORD (ret) offset of official host name
  27043. 8Ch WORD (ret) offset of alias list???
  27044. 8Eh WORD (ret) address type???
  27045. 90h WORD (ret) length of an address in bytes???
  27046. 92h WORD (ret) offset of address???
  27047. 9Ah N BYTEs (ret) buffer for hostname, alias list, and host address
  27048. ---function 0016h---
  27049. 18h ??? buffer for ASCIZ protocol name
  27050. 98h ???
  27051. ---function 0017h---
  27052. 18h WORD (call) protocol number
  27053. 1Ah WORD (ret) ??? or 0001h
  27054. ---function 0018h---
  27055. 18h 128 BYTEs buffer containing ASCIZ ???
  27056. 98h 128 BYTEs buffer containing ASCIZ ???
  27057. 118h WORD (ret) ???
  27058. ---function 0019h---
  27059. 18h WORD port number
  27060. 1Ah 128 BYTEs (call) ASCIZ host name
  27061. (ret) packed servent strctures???
  27062. 9Ah WORD (ret) ???
  27063. ---function 001Ah---
  27064. 18h WORD (ret) 0000h if successful, FFFFh on error
  27065. 1Ah WORD socket's file handle
  27066. 1Ch WORD (call) length of buffer for socket name
  27067. (ret) actual length of socket name
  27068. 1Eh N BYTEs buffer for socket name
  27069. ---function 001Bh---
  27070. 18h WORD (ret) status: 0000h if successful, FFFFh on error
  27071. 1Ah WORD socket's file handle
  27072. 1Ch WORD (call) size of buffer for name
  27073. (ret) actual size of name
  27074. 1Eh N BYTEs buffer for peer's name
  27075. ---function 001Ch---
  27076. 18h WORD (ret) status: 0000h if successful, FFFFh on error
  27077. 1Ah WORD direction: 0000h to get, 0001h to set
  27078. 1Ch WORD socket's file handle
  27079. 1Eh WORD option level
  27080. 20h WORD option name
  27081. 22h WORD (call) length of buffer for option value
  27082. (ret) actual length of option value
  27083. 24h N BYTEs buffer for option value
  27084. ---function 001Dh---
  27085. no additional fields
  27086. ---function 001Eh---
  27087. 18h WORD (ret) status: 0000h ??? or 0001h ???
  27088. 1Ah WORD file handle which may or may not be a socket
  27089. ---function 001Fh---
  27090. 18h WORD (ret) file handle or FFFFh on error
  27091. 1Ah DWORD (call) pointer to Socket Context Record (see #00579) of a
  27092. previously detached socket
  27093. ---function 0020h---
  27094. 18h WORD (ret) status: 0000h if successful or FFFFh on error
  27095. 1Ah WORD socket's file handle
  27096. 1Ch DWORD (ret) pointer to Socket Context Record (see #00579) for
  27097. the file handle
  27098. ---function 0021h---
  27099. 18h 64 BYTEs buffer for DESQview startup directory (see AX=DE25h)
  27100. ---function 0022h---
  27101. 18h DWORD (ret) task handle of new application
  27102. 1Ch WORD size of .DVP data
  27103. 1Eh 129 BYTEs ASCIZ ???
  27104. 9Fh N BYTEs .DVP data (see #00427 at AX=102Ch)
  27105. ---function 0023h---
  27106. 18h WORD (ret) ??? or FFFFh on error
  27107. 1Ah WORD socket's file handle???
  27108. ---function 0024h---
  27109. 18h WORD (ret) DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  27110. 0000h if successful
  27111. 1Ah 129 BYTEs ASCIZ filename/pathname
  27112. 11Bh 129 BYTEs ASCIZ canonicalized filename/pathname (see INT 21/AH=60h)
  27113. ---function 0025h---
  27114. 18h WORD value of AX
  27115. 1Ah WORD value of BX
  27116. 1Ch WORD (call) value of CX for call if AH value other than 12h
  27117. (call) number of stack parameters if AH value is 12h
  27118. (ret) returned CX for calls other than INT 15/AH=12h
  27119. 1Eh WORD value of DX
  27120. 20h WORD value of DI
  27121. 22h WORD value of SI
  27122. 24h WORD value of DS
  27123. 26h WORD value of ES
  27124. 28h WORD (ret) value of FLAGS after call
  27125. 2Ah N DWORDs (call) stack parameters for INT 15/AH=12h call
  27126. (ret) stack results from INT 15/AH=12h call
  27127. ---function 0026h---
  27128. 18h WORD (call) Network Manager subfunction (see #00559)
  27129. (ret) status??? (0000h on error)
  27130. 1Ah WORD (call) size of parameter data
  27131. (ret) size of returned data
  27132. 1Ch N BYTEs (call) parameter data required by call (see #00560,#00561,#00577)
  27133. (ret) result data (see #00570,#00571,#00576)
  27134. ---function 0027h---
  27135. 18h WORD (ret) status: 0000h if successful, FFFFh on error
  27136. 1Ah WORD socket's file handle
  27137. ---functions 0028h,0029h---
  27138. 18h WORD (call) file handle for which to set priority low/high
  27139. FFFFh to change calling task's priority
  27140. ---function 002Ah---
  27141. no additional fields
  27142. (Table 00559)
  27143. Values for DESQview/X Network Manager subfunction:
  27144. 0004h "so_exit"???
  27145. 0005h "gethostbyname"
  27146. 0006h "gethostname"
  27147. 0009h "socket"
  27148. 000Dh "gethostbyaddr"
  27149. 000Fh "getprotobyname"
  27150. 0010h get protocol name for protocol number
  27151. 0011h "getservbyname"
  27152. 0012h "getservbyport" (see #00563)
  27153. 0013h "getsockname"??? (see #00564)
  27154. 0016h "shutdown" (see #00565)
  27155. 0017h kill Network Manager
  27156. 0018h "getpeername"??? (see #00566)
  27157. 0019h ??? (called by socket function 0000h) (see #00567)
  27158. 001Ah ??? (see #00568)
  27159. 001Bh "so_linkup" (see #00569)
  27160. 001Dh "getnetstatus" get network services (see #00570)
  27161. 001Fh "getpwuid"
  27162. 0020h "getpwnam"
  27163. 0021h "getpwvar"
  27164. 0022h "crypt"
  27165. 0023h "so_unlink"
  27166. 0024h "getlogin" (see #00571)
  27167. 0028h "sethostent"
  27168. 0029h "gethostent"
  27169. 002Ah "soaddhost"
  27170. 002Bh "soupdatehost"
  27171. 002Ch "sodeletehost"
  27172. 002Dh "setservent"
  27173. 002Eh "getservent"
  27174. 002Fh "setpwent"
  27175. 0030h "getpwent" (see #00572)
  27176. 0031h "sethostpath" (see #00573)
  27177. 0032h "endservent"
  27178. 0033h "endhostent"
  27179. 0034h "getnettype" get IP network number (see #00574)
  27180. 0035h ??? (pops up Network Manager window)
  27181. 0037h "getnettimeout" (see #00575)
  27182. 0038h get machine name and IP address (see #00576)
  27183. 0039h "getuid" (see #00577)
  27184. ---DV/X v2.0+ ---
  27185. 0041h "deletepwnam"
  27186. 0045h "renamepw"
  27187. Format of Function 0026h/Subfunction 000Fh data:
  27188. Offset Size Description (Table 00560)
  27189. 00h 8 BYTEs (ret) ???
  27190. Format of Function 0026h/Subfunction 0010h data:
  27191. Offset Size Description (Table 00561)
  27192. 00h 2 BYTEs (ret) ???
  27193. 02h WORD (ret) protocol number
  27194. 04h WORD (call) protocol number for which to get name
  27195. 06h WORD (ret) ???
  27196. 08h var (ret) ASCIZ protocol name
  27197. N var (ret) ASCIZ protocol name
  27198. Format of Function 0026h/Subfunction 0011h data:
  27199. Offset Size Description (Table 00562)
  27200. 00h 8 BYTEs ???
  27201. 08h var (ret) ASCIZ protocol name
  27202. var (ret) ASCIZ ??? name
  27203. var (ret) ASCIZ ??? name
  27204. Format of Function 0026h/Subfunction 0012h data:
  27205. Offset Size Description (Table 00563)
  27206. 00h 8 BYTEs (ret) ???
  27207. Format of Function 0026h/Subfunction 0013h data:
  27208. Offset Size Description (Table 00564)
  27209. 00h 116 BYTEs (ret) ???
  27210. Format of Function 0026h/Subfunction 0016h ("shutdown") data:
  27211. Offset Size Description (Table 00565)
  27212. 00h WORD (ret) shutdown status (0000h successful, FFFFh error)
  27213. 02h 4 BYTEs (ret) ???
  27214. 04h WORD (call) socket handle
  27215. 06*h WORD (call) what (0 = receives, 1 = sends, 2 = both)
  27216. Format of Function 0026h/Subfunction 0018h data:
  27217. Offset Size Description (Table 00566)
  27218. 00h 116 BYTEs (ret) ???
  27219. Format of Function 0026h/Subfunction 0019h data:
  27220. Offset Size Description (Table 00567)
  27221. 00h 4 BYTEs (ret) ???
  27222. 04h DWORD (ret) task handle of ???
  27223. Format of Function 0026h/Subfunction 001Ah data:
  27224. Offset Size Description (Table 00568)
  27225. 00h 38 BYTEs (ret) ???
  27226. Format of Function 0026h/Subfunction 001Bh data:
  27227. Offset Size Description (Table 00569)
  27228. 00h 10 BYTEs (ret) ???
  27229. Format of Function 0026h/Subfunction 001Dh return data [array]:
  27230. Offset Size Description (Table 00570)
  27231. 00h WORD ??? or FFFFh if end of array
  27232. 02h 7 BYTEs ???
  27233. 09h 27 BYTEs ASCIZ name of service
  27234. Format of Function 0026h/Subfunction 0024h return data:
  27235. Offset Size Description (Table 00571)
  27236. 00h var ASCIZ username
  27237. Format of Function 0026h/Subfunction 0030h data:
  27238. Offset Size Description (Table 00572)
  27239. 00h WORD (call) UID or 0000h for current user
  27240. (ret) ???
  27241. 02h WORD (ret) UID
  27242. 04h 6 BYTEs (ret) ???
  27243. 0Ah var (ret) ASCIZ username
  27244. var (ret) ASCIZ encrypted password
  27245. var (ret) ASCIZ initial ("home") directory
  27246. Format of Function 0026h/Subfunction 0031h ("sethostpath") data:
  27247. Offset Size Description (Table 00573)
  27248. 00h 4 BYTEs ???
  27249. 04h 144 BYTEs ASCIZ ???
  27250. Format of Function 0026h/Subfunction 0034h data:
  27251. Offset Size Description (Table 00574)
  27252. 00h 1-3 BYTEs IP network number of caller's machine (low byte first)
  27253. Format of Function 0026h/Subfunction 0037h ("getnettimeout") return data:
  27254. Offset Size Description (Table 00575)
  27255. 00h WORD (ret) timeout
  27256. 02h 2 BYTEs (ret) ???
  27257. Format of Function 0026h/Subfunction 0038h return data:
  27258. Offset Size Description (Table 00576)
  27259. 00h BYTE ???
  27260. 01h 4 BYTEs IP address
  27261. 05h var ASCIZ machine name
  27262. ???
  27263. Format of Function 0026h/Subfunction 0039h ("getuid") return data:
  27264. Offset Size Description (Table 00577)
  27265. 00h WORD user ID
  27266. 02h 2 BYTEs ???
  27267. SeeAlso: #00573,#00576
  27268. (Table 00578)
  27269. Values for DESQview/X socket error code:
  27270. 0000h successful
  27271. 0009h "BADF" bad file handle
  27272. 000Ch "ENOMEM" out of memory
  27273. 000Eh "EFAULT" bad address
  27274. 0016h "EINVAL" invalid argument
  27275. 0018h "EMFILE" too many open files
  27276. 0020h "EPIPE" ??? broken pipe
  27277. 0023h "EWOULDBLOCK" operation cannot be completed at this time
  27278. 0024h "EINPROGRESS" operation now in progress
  27279. 0026h "ENOTSOCK" socket invalid
  27280. 0028h "EMSGSIZE" message too long to send atomically
  27281. 002Ch "ESOCKTNOSUPPORT" socket type not supported
  27282. 002Fh "EAFNOSUPPORT" address family not supp. by protocol fam.
  27283. 0031h "EDOM" argument too large
  27284. 0038h "EISCONN" socket is already connected
  27285. 0039h "ENOTCONN" socket is not connected
  27286. Format of DESQview/X Socket Context Record:
  27287. Offset Size Description (Table 00579)
  27288. 00h DWORD pointer to next Socket Context Record, 0000h:0000h if last
  27289. 04h WORD SFT index for socket, 00FFh if not connected, FFFFh if detached
  27290. 06h WORD PSP segment of owner or 0000h
  27291. 08h WORD mapping context of owning window (see #00416 at AX=1016h)
  27292. 0Ah 2 BYTEs ???
  27293. 0Ch WORD address family
  27294. 0Eh WORD socket type
  27295. 10h WORD protocol
  27296. 12h WORD socket state
  27297. 0001h created
  27298. 0002h bound
  27299. 0003h listening???
  27300. 0005h connected
  27301. 14h DWORD timer object handle
  27302. 18h DWORD object handle (mailbox???)
  27303. 1Ch DWORD object handle of parent of above object or 0000h:0000h
  27304. 20h DWORD pointer to ??? or 0000h
  27305. 24h 6 BYTEs ???
  27306. 2Ah WORD file handle for socket or FFFFh
  27307. 2Ch 2 BYTEs ???
  27308. 2Eh WORD nonzero if socket nonblocking
  27309. ---network connections only---
  27310. 30h 2 BYTEs ???
  27311. 32h WORD ???
  27312. 34h 4 BYTEs (big-endian) IP address of remote
  27313. 38h 6 BYTEs ???
  27314. --------Q-15DE2F-----------------------------
  27315. INT 15 - DESQview v2.50+ - "VIDEONOTIFY" - HAS DIRECT WINDOW BEEN ACTIVE?
  27316. AX = DE2Fh
  27317. Return: BX = status
  27318. 0001h keyboard focus has been given to a direct window since the
  27319. last call
  27320. 0000h if not
  27321. Notes: DESQview 2.50-2.53 are distributed as part of DESQview/X v1.00-1.10.
  27322. Quarterdeck stated that this call would not be available under future
  27323. versions of DESQview Classic, but it is still present in v2.60
  27324. --------Q-15DE30-----------------------------
  27325. INT 15 - DESQview v2.50+ - "GETDVXVERSION" - GET DESQview/X VERSION
  27326. AX = DE30h
  27327. Return: BX = version (BH=major, BL=minor) or 0000h if not DESQview/X
  27328. Notes: DESQview 2.50-2.53 are distributed as part of DESQview/X v1.00-1.10.
  27329. you must first check the DESQview version to verify that it is 2.50 or
  27330. greater
  27331. SeeAlso: INT 21/AH=2Bh/CX=4445h
  27332. --------Q-15DE31-----------------------------
  27333. INT 15 - DESQview/X v1.10 - ???
  27334. AX = DE31h
  27335. CX = ???
  27336. 0000h ???
  27337. nonzero ???
  27338. ???
  27339. Return: ???
  27340. --------b-15DF-------------------------------
  27341. INT 15 - Juko UNIQUE UX BIOS - TURBO MODE CONTROL
  27342. AH = DFh
  27343. AL = function
  27344. 00h turn on Turbo mode
  27345. 01h turn off Turbo mode
  27346. 02h set Turbo mode according to hardware switch
  27347. SeeAlso: INT 13/AX=FFFFh
  27348. --------b-15E00F-----------------------------
  27349. INT 15 - Compaq Systempro - MULTIPROCESSOR DISPATCH
  27350. AX = E00Fh
  27351. ES:BX -> start of 2nd processor's execution
  27352. Return: AL = status
  27353. 0Fh successful
  27354. 00h failure
  27355. SeeAlso: AX=E10Eh,AX=E200h
  27356. --------b-15E10E-----------------------------
  27357. INT 15 - Compaq Systempro - MULTIPROCESSOR END-OF-DISPATCH
  27358. AX = E10Eh
  27359. ES:BX -> start of 2nd processor's execution
  27360. Return: AL = status
  27361. 0Fh successful (halted)
  27362. 00h failure (not halted)
  27363. SeeAlso: AX=E00Fh,AX=E200h
  27364. --------b-15E200-----------------------------
  27365. INT 15 - Compaq Systempro - MULTIPROCESSOR AVAILABLE
  27366. AX = E200h
  27367. Return: AX bit 15 set if 2nd processor available
  27368. SeeAlso: AX=E00Fh,AX=E10Eh
  27369. --------b-15E4-------------------------------
  27370. INT 15 - Tandy??? - ???
  27371. AH = E4h
  27372. AL = subfunction
  27373. 21h, 89h, 8Ah, 8Bh called by 386MAX v6.01
  27374. DL = ???
  27375. Return: DL = 00h if successful???
  27376. Note: the section of code in 386MAX which calls these functions also checks
  27377. whether the ROM BIOS has both Tandy and Phoenix Technologies
  27378. signatures if these calls fail; the Tandy 1000SL/TL BIOS does not
  27379. support this function, however, returning the usual CF set/AH=86h for
  27380. "unsupported function".
  27381. --------b-15E4-------------------------------
  27382. INT 15 - Compaq ROM BIOS 03/08/93 and newer - ???
  27383. AH = E4h
  27384. AL = subfunction
  27385. 00h get ???
  27386. Return: CF clear
  27387. AH = 00h
  27388. CX = 0000h
  27389. BX = ??? (read from [XBDA:0094h])
  27390. 01h,02h unsupported by this ROM version
  27391. Return: CF set, AH = 86h
  27392. 80h,90h,A0h,B0h,C0h,D0h,E0h,F0h set ???
  27393. Return: CF clear
  27394. AH = 00h
  27395. CX = 0000h
  27396. BX = ???
  27397. 81h,91h,A1h,B1h,C1h,D1h,E1h,F1h unsupported by 3/8/93&4/8/93 ROMs
  27398. Return: CF set, AH = 86h
  27399. Notes: functions 80h/90h/etc. are not supported by the 4/8/93 EISA System ROM
  27400. these functions are not supported by the 7/26/93 LTE Lite 386 ROM
  27401. --------!---Section--------------------------
  27402. Interrupt List, part 4 of 18
  27403. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  27404. --------b-15E800-----------------------------
  27405. INT 15 - Compaq Contura - GET ???
  27406. AX = E800h
  27407. Return: AX = 0000h
  27408. BH = 00h
  27409. BL = ??? (read from port 0C7Ch)
  27410. CH = ???
  27411. CL = ???
  27412. DX = 0000h
  27413. Note: also supported by 3/8/93 DESKPRO/i and 7/26/93 LTE Lite 386 ROM BIOS
  27414. --------b-15E800-----------------------------
  27415. INT 15 - Compaq Contura Aero, Contura 400 - GET SYSTEM MODEL CODE???
  27416. AX = E800h
  27417. BX = ??? (0000h)
  27418. Return: CF clear if successful
  27419. BH = 02h
  27420. BL = submodel??? (0Ch,0Dh,34h,38h,40h,44h,48h,64h,68h)
  27421. CF set on error
  27422. others???
  27423. Notes: used by Compaq's SOFTPAQ number 0937 EPPBIOS.SYS to determine whether
  27424. the Enhanced Parallel Port expected by that driver is available
  27425. used by Compaq's SOFTPAW number 0856 VOLCTRL.EXE to determine whether
  27426. volume control hardware expected by that driver is available
  27427. --------b-15E800-----------------------------
  27428. INT 15 - Compaq Prolinea - GET ???
  27429. AX = E800h
  27430. BX = ??? (1369h)
  27431. Return: BH = 01h
  27432. BL = ???
  27433. others???
  27434. Note: used by Compaq's SOFTPAQ number 0718 INT10_04.SYS to determine whether
  27435. the fix that driver applies is required (will not install if BX on
  27436. return is other than 010Eh or 010Fh)
  27437. SeeAlso: AX=E802h
  27438. --------b-15E801-----------------------------
  27439. INT 15 - Phoenix BIOS v4.0 - GET MEMORY SIZE FOR >64M CONFIGURATIONS
  27440. AX = E801h
  27441. Return: CF clear if successful
  27442. AX = extended memory between 1M and 16M, in K (max 3C00h = 15MB)
  27443. BX = extended memory above 16M, in 64K blocks
  27444. CX = configured memory 1M to 16M, in K
  27445. DX = configured memory above 16M, in 64K blocks
  27446. CF set on error
  27447. Notes: supported by the A03 level (6/14/94) and later XPS P90 BIOSes, as well
  27448. as the Compaq Contura, 3/8/93 DESKPRO/i, and 7/26/93 LTE Lite 386 ROM
  27449. BIOS
  27450. supported by AMI BIOSes dated 8/23/94 or later
  27451. on some systems, the BIOS returns AX=BX=0000h; in this case, use CX
  27452. and DX instead of AX and BX
  27453. this interface is used by Windows NT 3.1, OS/2 v2.11/2.20, and is
  27454. used as a fall-back by newer versions if AX=E820h is not supported
  27455. SeeAlso: AH=8Ah"Phoenix",AX=E802h,AX=E820h,AX=E881h"Phoenix"
  27456. --------b-15E802-----------------------------
  27457. INT 15 - Compaq Contura - GET ???
  27458. AX = E802h
  27459. Return: CF clear
  27460. AX = 0000h
  27461. BX = ???
  27462. CX = 0000h
  27463. Note: this function is also supported by the LTE Lite 25c, 25E, and 486; not
  27464. supported by LTE Lite 20 and 25.
  27465. SeeAlso: AX=E801h"Phoenix"
  27466. --------b-15E820-----------------------------
  27467. INT 15 - newer BIOSes - GET SYSTEM MEMORY MAP
  27468. AX = E820h
  27469. EAX = 0000E820h
  27470. EDX = 534D4150h ('SMAP')
  27471. EBX = continuation value or 00000000h to start at beginning of map
  27472. ECX = size of buffer for result, in bytes (should be >= 20 bytes)
  27473. ES:DI -> buffer for result (see #00581)
  27474. Return: CF clear if successful
  27475. EAX = 534D4150h ('SMAP')
  27476. ES:DI buffer filled
  27477. EBX = next offset from which to copy or 00000000h if all done
  27478. ECX = actual length returned in bytes
  27479. CF set on error
  27480. AH = error code (86h) (see #00496 at INT 15/AH=80h)
  27481. Notes: originally introduced with the Phoenix BIOS v4.0, this function is
  27482. now supported by most newer BIOSes, since various versions of Windows
  27483. call it to find out about the system memory
  27484. a maximum of 20 bytes will be transferred at one time, even if ECX is
  27485. higher; some BIOSes (e.g. Award Modular BIOS v4.50PG) ignore the
  27486. value of ECX on entry, and always copy 20 bytes
  27487. some BIOSes expect the high word of EAX to be clear on entry, i.e.
  27488. EAX=0000E820h
  27489. if this function is not supported, an application should fall back
  27490. to AX=E802h, AX=E801h, and then AH=88h
  27491. the BIOS is permitted to return a nonzero continuation value in EBX
  27492. and indicate that the end of the list has already been reached by
  27493. returning with CF set on the next iteration
  27494. this function will return base memory and ISA/PCI memory contiguous
  27495. with base memory as normal memory ranges; it will indicate
  27496. chipset-defined address holes which are not in use and motherboard
  27497. memory-mapped devices, and all occurrences of the system BIOS as
  27498. reserved; standard PC address ranges will not be reported
  27499. SeeAlso: AH=C7h,AX=E801h"Phoenix",AX=E881h,MEM xxxxh:xxx0h"ACPI"
  27500. Format of Phoenix BIOS system memory map address range descriptor:
  27501. Offset Size Description (Table 00580)
  27502. 00h QWORD base address
  27503. 08h QWORD length in bytes
  27504. 10h DWORD type of address range (see #00581)
  27505. (Table 00581)
  27506. Values for System Memory Map address type:
  27507. 01h memory, available to OS
  27508. 02h reserved, not available (e.g. system ROM, memory-mapped device)
  27509. 03h ACPI Reclaim Memory (usable by OS after reading ACPI tables)
  27510. 04h ACPI NVS Memory (OS is required to save this memory between NVS
  27511. sessions)
  27512. other not defined yet -- treat as Reserved
  27513. SeeAlso: #00580
  27514. --------b-15E881-----------------------------
  27515. INT 15 - Phoenix BIOS v4.0 - GET MEMORY SIZE FOR >64M CONFIGURATIONS (32-bit)
  27516. AX = E881h
  27517. Return: CF clear if successful
  27518. EAX = extended memory between 1M and 16M, in K (max 3C00h = 15MB)
  27519. EBX = extended memory above 16M, in 64K blocks
  27520. ECX = configured memory 1M to 16M, in K
  27521. EDX = configured memory above 16M, in 64K blocks
  27522. CF set on error
  27523. Notes: supported by AMI BIOSes dated 8/23/94 or later
  27524. this interface is used by Windows NT 3.1, OS/2 v2.11/2.20, and is
  27525. used as a fall-back by newer versions if AX=E820h is not supported
  27526. SeeAlso: AX=E801h"Phoenix",AX=E820h"Phoenix"
  27527. --------m-15F200CX454D-----------------------
  27528. INT 15 - Tandon memory mapper - Tandon MAPPER HARDWARE INITIALIZATION CHECK ???
  27529. AX = F200h
  27530. CX = 454Dh
  27531. Return: CF clear if hardware already initialised
  27532. BX = upper RAM areas in use
  27533. bit 0: C000-C3FF
  27534. bit 1: C400-C7FF
  27535. ...
  27536. bit 11: EC00-EFFF
  27537. CF set if hardware not initialised yet
  27538. --------B-1600-------------------------------
  27539. INT 16 - KEYBOARD - GET KEYSTROKE
  27540. AH = 00h
  27541. Return: AH = BIOS scan code
  27542. AL = ASCII character
  27543. Notes: on extended keyboards, this function discards any extended keystrokes,
  27544. returning only when a non-extended keystroke is available
  27545. the BIOS scan code is usually, but not always, the same as the hardware
  27546. scan code processed by INT 09. It is the same for ASCII keystrokes
  27547. and most unshifted special keys (F-keys, arrow keys, etc.), but
  27548. differs for shifted special keys
  27549. some (older) clone BIOSes do not discard extended keystrokes and manage
  27550. function AH=00h and AH=10h the same
  27551. the K3PLUS v6.00+ INT 16 BIOS replacement doesn't discard extended
  27552. keystrokes (same as with functions 10h and 20h), but will always
  27553. translate prefix E0h to 00h. This allows old programs to use extended
  27554. keystrokes and should not cause compatibility problems
  27555. SeeAlso: AH=01h,AH=05h,AH=10h,AH=20h,AX=AF4Dh"K3PLUS",INT 18/AH=00h
  27556. SeeAlso: INT 09,INT 15/AH=4Fh
  27557. --------B-1601-------------------------------
  27558. INT 16 - KEYBOARD - CHECK FOR KEYSTROKE
  27559. AH = 01h
  27560. Return: ZF set if no keystroke available
  27561. ZF clear if keystroke available
  27562. AH = BIOS scan code
  27563. AL = ASCII character
  27564. Note: if a keystroke is present, it is not removed from the keyboard buffer;
  27565. however, any extended keystrokes which are not compatible with 83/84-
  27566. key keyboards are removed by IBM and most fully-compatible BIOSes in
  27567. the process of checking whether a non-extended keystroke is available
  27568. some (older) clone BIOSes do not discard extended keystrokes and manage
  27569. function AH=00h and AH=10h the same
  27570. the K3PLUS v6.00+ INT 16 BIOS replacement doesn't discard extended
  27571. keystrokes (same as with functions 10h and 20h), but will always
  27572. translate prefix E0h to 00h. This allows old programs to use extended
  27573. keystrokes and should not cause compatibility problems
  27574. SeeAlso: AH=00h,AH=11h,AH=21h,INT 18/AH=01h,INT 09,INT 15/AH=4Fh
  27575. --------B-1602-------------------------------
  27576. INT 16 - KEYBOARD - GET SHIFT FLAGS
  27577. AH = 02h
  27578. Return: AL = shift flags (see #00582)
  27579. AH destroyed by many BIOSes
  27580. SeeAlso: AH=12h,AH=22h,INT 17/AH=0Dh,INT 18/AH=02h,MEM 0040h:0017h
  27581. Bitfields for keyboard shift flags:
  27582. Bit(s) Description (Table 00582)
  27583. 7 Insert active
  27584. 6 CapsLock active
  27585. 5 NumLock active
  27586. 4 ScrollLock active
  27587. 3 Alt key pressed (either Alt on 101/102-key keyboards)
  27588. 2 Ctrl key pressed (either Ctrl on 101/102-key keyboards)
  27589. 1 left shift key pressed
  27590. 0 right shift key pressed
  27591. SeeAlso: #00587,#03743,MEM 0040h:0017h,#M0010
  27592. --------B-1603-------------------------------
  27593. INT 16 - KEYBOARD - SET TYPEMATIC RATE AND DELAY
  27594. AH = 03h
  27595. AL = subfunction
  27596. 00h set default delay and rate (PCjr and some PS/2)
  27597. 01h increase delay before repeat (PCjr)
  27598. 02h decrease repeat rate by factor of 2 (PCjr)
  27599. 03h increase delay and decrease repeat rate (PCjr)
  27600. 04h turn off typematic repeat (PCjr and some PS/2)
  27601. 05h set repeat rate and delay (AT,PS)
  27602. BH = delay value (00h = 250ms to 03h = 1000ms)
  27603. BL = repeat rate (00h=30/sec to 0Ch=10/sec [def] to 1Fh=2/sec)
  27604. 06h get current typematic rate and delay (newer PS/2s)
  27605. Return: BL = repeat rate (above)
  27606. BH = delay (above)
  27607. Return: AH destroyed by many BIOSes
  27608. Note: use INT 16/AH=09h to determine whether some of the subfunctions are
  27609. supported
  27610. SeeAlso: INT 16/AH=09h,AH=29h"HUNTER",AH=2Ah"HUNTER"
  27611. --------B-1604-------------------------------
  27612. INT 16 - KEYBOARD - SET KEYCLICK (PCjr only)
  27613. AH = 04h
  27614. AL = keyclick state
  27615. 00h off
  27616. 01h on
  27617. Return: AH destroyed by many BIOSes
  27618. SeeAlso: AH=03h,AH=04h"K3PLUS"
  27619. --------b-1604-------------------------------
  27620. INT 16 - Tandy 2000 - KEYBOARD - FLUSH KEYBOARD BUFFER
  27621. AH = 04h
  27622. Note: this interrupt is identical to INT 51 on the Tandy 2000
  27623. SeeAlso: INT 16/AH=00h,INT 16/AH=02h,INT 16/AH=05h"Tandy 2000"
  27624. SeeAlso: INT 51"Tandy 2000"
  27625. --------K-1604-------------------------------
  27626. INT 16 - K3PLUS v6.22+ - SET KEYCLICK
  27627. AH = 04h
  27628. AL = keyclick state
  27629. 00h keyclick off, leave loudness setting unchanged
  27630. 01h keyclick on, leave loudness setting unchanged
  27631. else
  27632. bit 0: keyclick enabled if set
  27633. bits 7-1: new keyclick loudness (non-zero)
  27634. Return: AH destroyed by many BIOSes
  27635. Note: Applications which try to set a new loudness, but are unsure of the
  27636. results of other INT 16/AH=04h implementations, should set the new
  27637. loudness first, and then call this function again with AL=01h or
  27638. AL=00h
  27639. SeeAlso: AH=03h,AH=04h"KEYBOARD",AX=AF4Dh
  27640. --------B-1605-------------------------------
  27641. INT 16 - KEYBOARD - STORE KEYSTROKE IN KEYBOARD BUFFER (AT/PS w enh keybd only)
  27642. AH = 05h
  27643. CH = BIOS scan code
  27644. CL = ASCII character
  27645. Return: AL = status
  27646. 00h if successful
  27647. 01h if keyboard buffer full
  27648. AH destroyed by many BIOSes
  27649. Notes: under DESQview, a number of "keystrokes" invoke specific
  27650. DESQview-related actions when they are read from the keyboard
  27651. buffer (see #00583)
  27652. similarly, some "keystrokes" invoke special functions on the HP 100LX
  27653. and HP 200LX (see #00584)
  27654. SeeAlso: AH=00h,AH=25h"K3",AH=71h,AX=AF4Dh,AH=FFh,INT 15/AX=DE10h
  27655. SeeAlso: MEM 0040h:001Eh
  27656. (Table 00583)
  27657. Values for pseudo-keystrokes for DESQview:
  27658. 38FBh or FB00h switch to next window (only if main menu already popped up)
  27659. 38FCh or FC00h pop up DESQview main menu
  27660. 38FEh or FE00h close the current window
  27661. 38FFh or FF00h pop up DESQview learn menu
  27662. (Table 00584)
  27663. Values for pseudo-keystrokes for HP 100LX/200LX:
  27664. EE00h pop up topcard display and set other system manager applications
  27665. into sleep mode
  27666. --------B-1605-------------------------------
  27667. INT 16 - KEYBOARD - SELECT KEYBOARD LAYOUT (PCjr only)
  27668. AH = 05h
  27669. AL = function
  27670. 01h set keyboard layout to French
  27671. 02h set keyboard layout to German
  27672. 03h set keyboard layout to Italian
  27673. 04h set keyboard layout to Spanish
  27674. 05h set keyboard layout to UK
  27675. 80h check if function supported
  27676. Return: AL <> 80h if supported
  27677. Return: ???
  27678. AH destroyed by many BIOSes
  27679. Note: this function is called by the DOS 3.2 KEYBxx.COM
  27680. SeeAlso: AH=92h,AH=A2h,AX=AF4Dh
  27681. --------b-1605-------------------------------
  27682. INT 16 - Tandy 2000 - KEYBOARD - RESET KEYBOARD
  27683. AH = 05h
  27684. Desc: reset the keyboard and flush the keyboard buffer
  27685. Note: this interrupt is identical to INT 51 on the Tandy 2000
  27686. SeeAlso: INT 16/AH=00h,INT 16/AH=02h,INT 16/AH=03h,INT 51"Tandy 2000"
  27687. ----------160600-----------------------------
  27688. INT 16 - AAKEYS - GET NEXT KEYBOARD EVENT
  27689. AX = 0600h
  27690. Return: CF clear if successful
  27691. AL = next keyboard event in event buffer, FFh if buffer overflowed
  27692. CF set on error
  27693. AL = 00h buffer empty
  27694. BX destroyed
  27695. Program: AAKEYS is a TSR by Anthony Appleyard which records keyboard scan
  27696. codes in a 256-byte buffer in addition to any normal processing which
  27697. takes place
  27698. Note: the installation check consists of calling INT 16/AX=06xxh (where 'xx'
  27699. is any subfunction other than those listed here) and testing whether
  27700. AX=BEEFh on return
  27701. SeeAlso: AX=0601h,AX=0602h,AX=0603h,AX=0604h
  27702. ----------160601-----------------------------
  27703. INT 16 - AAKEYS - EMPTY KEY-EVENT BUFFER
  27704. AX = 0601h
  27705. Return: nothing
  27706. SeeAlso: AX=0600h,AX=0602h,AX=0603h,AX=0604h
  27707. ----------160602-----------------------------
  27708. INT 16 - AAKEYS - DISABLE AAKEYS
  27709. AX = 0602h
  27710. Return: AX,DX destroyed
  27711. Desc: restores INT 09 and INT 16 and clears the TSRs signature byte
  27712. SeeAlso: AX=0600h,AX=0601h,AX=0603h,AX=0604h
  27713. ----------160603-----------------------------
  27714. INT 16 - AAKEYS - GET KEY-EVENT BUFFER
  27715. AX = 0603h
  27716. Return: ES:BX -> 256-byte circular key-event buffer
  27717. ES:[AX] = offset of head of buffer
  27718. ES:[AX+1] = offset of tail of buffer
  27719. SeeAlso: AX=0600h,AX=0601h,AX=0602h,AX=0604h
  27720. ----------160604-----------------------------
  27721. INT 16 - AAKEYS - EMPTY BIOS KEYBOARD BUFFER
  27722. AX = 0604h
  27723. Return: AX destroyed
  27724. SeeAlso: AX=0600h,AX=0601h,AX=0602h,AX=0603h
  27725. --------B-1609-------------------------------
  27726. INT 16 - KEYBOARD - GET KEYBOARD FUNCTIONALITY
  27727. AH = 09h
  27728. Return: AL = supported keyboard functions (see #00585)
  27729. AH destroyed by many BIOSes
  27730. Note: this function is only available if bit 6 of the second feature byte
  27731. returned by INT 15/AH=C0h is set (see #00509)
  27732. SeeAlso: AH=03h,AH=0Ah,AH=10h,AH=11h,AH=12h,AH=20h,AH=21h,AH=22h,INT 15/AH=C0h
  27733. Bitfields for supported keyboard functions:
  27734. Bit(s) Description (Table 00585)
  27735. 7 reserved
  27736. 6 INT 16/AH=20h-22h supported (122-key keyboard support)
  27737. 5 INT 16/AH=10h-12h supported (enhanced keyboard support)
  27738. 4 INT 16/AH=0Ah supported
  27739. 3 INT 16/AX=0306h supported
  27740. 2 INT 16/AX=0305h supported
  27741. 1 INT 16/AX=0304h supported
  27742. 0 INT 16/AX=0300h supported
  27743. SeeAlso: #00511
  27744. --------K-160A-------------------------------
  27745. INT 16 - KEYBOARD - GET KEYBOARD ID
  27746. AH = 0Ah
  27747. Return: BX = keyboard ID (see #00586)
  27748. AH destroyed by many BIOSes
  27749. Notes: check return value from AH=09h to determine whether this function is
  27750. supported
  27751. this function is also supported by the K3PLUS v6.00+ INT 16 BIOS
  27752. replacement
  27753. SeeAlso: AH=09h,AX=AF4Dh,MEM 0040h:00C2h"AMI"
  27754. (Table 00586)
  27755. Values for keyboard ID:
  27756. 0000h no keyboard attached
  27757. 41ABh Japanese "G" keyboard (translate mode)
  27758. MF2 Keyboard (usually in translate mode)
  27759. 54ABh Japanese "P" keyboard (translate mode)
  27760. 83ABh Japanese "G" keyboard (pass-through mode)
  27761. MF2 Keyboard (pass-through mode)
  27762. 84ABh Japanese "P" keyboard (pass-through mode)
  27763. 90ABh old Japanese "G" keyboard
  27764. 91ABh old Japanese "P" keyboard
  27765. 92ABh old Japanese "A" keyboard
  27766. --------B-1610-------------------------------
  27767. INT 16 - KEYBOARD - GET ENHANCED KEYSTROKE (enhanced kbd support only)
  27768. AH = 10h
  27769. Return: AH = BIOS scan code
  27770. AL = ASCII character
  27771. Notes: if no keystroke is available, this function waits until one is placed
  27772. in the keyboard buffer
  27773. the BIOS scan code is usually, but not always, the same as the hardware
  27774. scan code processed by INT 09. It is the same for ASCII keystrokes
  27775. and most unshifted special keys (F-keys, arrow keys, etc.), but
  27776. differs for shifted special keys.
  27777. unlike AH=00h, this function does not discard extended keystrokes
  27778. INT 16/AH=09h can be used to determine whether this function is
  27779. supported, but only on later model PS/2s
  27780. SeeAlso: AH=00h,AH=09h,AH=11h,AH=20h,MEM 0040h:0019h,MEM 0040h:001Eh
  27781. --------B-1611-------------------------------
  27782. INT 16 - KEYBOARD - CHECK FOR ENHANCED KEYSTROKE (enh kbd support only)
  27783. AH = 11h
  27784. Return: ZF set if no keystroke available
  27785. ZF clear if keystroke available
  27786. AH = BIOS scan code
  27787. AL = ASCII character
  27788. Notes: if a keystroke is available, it is not removed from the keyboard buffer
  27789. unlike AH=01h, this function does not discard extended keystrokes
  27790. some versions of the IBM BIOS Technical Reference erroneously report
  27791. that CF is returned instead of ZF
  27792. INT 16/AH=09h can be used to determine whether this function is
  27793. supported, but only on later model PS/2s
  27794. SeeAlso: AH=01h,AH=09h,AH=10h,AH=21h,INT 09,INT 15/AH=4Fh
  27795. --------B-1612-------------------------------
  27796. INT 16 - KEYBOARD - GET EXTENDED SHIFT STATES (enh kbd support only)
  27797. AH = 12h
  27798. Return: AL = shift flags 1 (same as returned by AH=02h) (see #00587)
  27799. AH = shift flags 2 (see #00588)
  27800. Notes: AL bit 3 set only for left Alt key on many machines
  27801. AH bits 7 through 4 always clear on a Compaq SLT/286
  27802. INT 16/AH=09h can be used to determine whether this function is
  27803. supported, but only on later model PS/2s
  27804. many BIOSes (including at least some versions of Phoenix and AMI) will
  27805. destroy AH on return from functions higher than AH=12h, returning
  27806. 12h less than was in AH on entry (due to a chain of DEC/JZ
  27807. instructions)
  27808. SeeAlso: AH=02h,AH=09h,AH=22h,AH=51h,INT 17/AH=0Dh,MEM 0040h:0017h
  27809. Bitfields for keyboard shift flags 1:
  27810. Bit(s) Description (Table 00587)
  27811. 7 Insert active
  27812. 6 CapsLock active
  27813. 5 NumLock active
  27814. 4 ScrollLock active
  27815. 3 Alt key pressed (either Alt on 101/102-key keyboards)
  27816. 2 Ctrl key pressed (either Ctrl on 101/102-key keyboards)
  27817. 1 left shift key pressed
  27818. 0 right shift key pressed
  27819. SeeAlso: #00582,#00588,MEM 0040h:0017h,#M0010
  27820. Bitfields for keyboard shift flags 2:
  27821. Bit(s) Description (Table 00588)
  27822. 7 SysReq key pressed (SysReq is often labeled SysRq)
  27823. 6 CapsLock pressed
  27824. 5 NumLock pressed
  27825. 4 ScrollLock pressed
  27826. 3 right Alt key pressed
  27827. 2 right Ctrl key pressed
  27828. 1 left Alt key pressed
  27829. 0 left Ctrl key pressed
  27830. SeeAlso: #00587,MEM 0040h:0018h,#M0011
  27831. --------J-1613-------------------------------
  27832. INT 16 - DOS/V - DOUBLE-BYTE CHARACTER SET SHIFT CONTROL
  27833. AH = 13h
  27834. AL = function
  27835. 00h set shift status
  27836. DX = shift status (see #00589), must preserve internal status
  27837. bits
  27838. 01h get shift status
  27839. Return: DX = current shift status (see #00589)
  27840. Note: these functions are supplied by the Japanese Front-End Processor
  27841. SeeAlso: AH=14h,INT 21/AX=6301h
  27842. Bitfields for DOS/V shift status:
  27843. Bit(s) Description (Table 00589)
  27844. 0 full-size rather than half-size
  27845. 2-1 character input mode
  27846. 00 alphanumeric, 01 Katakana, 10 Hiragana, 11 unused
  27847. 5-3 internal status
  27848. 6 Romaji enabled
  27849. 7 Katakana to Kanji conversion enabled
  27850. 15-8 internal status
  27851. --------J-1614-------------------------------
  27852. INT 16 - DOS/V - SHIFT STATUS DISPLAY CONTROL
  27853. AH = 14h
  27854. AL = function
  27855. 00h enable display
  27856. 01h disable display
  27857. 02h get display state
  27858. Return: AL = current state (00h enabled, 01h disabled)
  27859. Desc: control the screen-bottom shift status row(s) for the Japanese
  27860. Front-End Processor
  27861. SeeAlso: AH=13h,INT 10/AH=19h,INT 10/AH=1Dh
  27862. --------B-1620-------------------------------
  27863. INT 16 - KEYBOARD - GET 122-KEY KEYSTROKE (122-key kbd support only)
  27864. AH = 20h
  27865. Return: AH = BIOS scan code (see AH=10h)
  27866. AL = ASCII character
  27867. Note: use AH=09h to determine whether this function is supported
  27868. SeeAlso: AH=00h,AH=09h,AH=10h,AH=21h,AH=22h
  27869. --------b-1620------------------------------------
  27870. INT 16 - HUNTER 16 - SET TEMPORARY SHIFT
  27871. AH = 20h
  27872. AL = shift status (see #00590)
  27873. Notes: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
  27874. members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  27875. the user can override the specified settings by pressing the keys
  27876. Bitfields for HUNTER 16 shift status:
  27877. Bit(s) Description (Table 00590)
  27878. 4 Scroll Lock on
  27879. 5 Num Lock on
  27880. 6 Caps Lock on
  27881. --------K-1620-------------------------------
  27882. INT 16 O - K3 v1.5x, K3PLUS v5.xx - GET EXTENDED BUFFER STATE
  27883. AH = 20h
  27884. Return: AX = K3 version
  27885. ES:BX -> extended keyboard buffer start
  27886. ES:DX -> extended keyboard buffer end
  27887. ES:SI -> next keystroke
  27888. ES:DI -> last keystroke in buffer
  27889. CX = number of keystrokes in buffer
  27890. Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C.
  27891. Frinke, originally based on the K3 extended German keyboard driver
  27892. by Martin Gerdes published in c't magazine in 1988
  27893. Note: this function was normally unsupported under K3PLUS v6.00-v6.22 and
  27894. is no longer supported by v6.30+; use AX=AF20h instead
  27895. SeeAlso: AH=25h"K3",AX=AF20h,INT 2F/AX=D44Fh/BX=0000h,INT 2F/AX=ED58h
  27896. --------B-1621-------------------------------
  27897. INT 16 - KEYBOARD - CHECK FOR 122-KEY KEYSTROKE (122-key kbd support only)
  27898. AH = 21h
  27899. Return: ZF set if no keystroke available
  27900. ZF clear if keystroke available
  27901. AH = BIOS scan code
  27902. AL = ASCII character
  27903. Notes: use AH=09h to determine whether this function is supported
  27904. some versions of the IBM BIOS Technical Reference erroneously report
  27905. that CF is returned instead of ZF
  27906. K3PLUS v6.00+ supports this function as an alias of AH=11h
  27907. SeeAlso: AH=01h,AH=09h,AH=11h,AH=20h,AH=21h
  27908. --------b-1621------------------------------------
  27909. INT 16 - HUNTER 16 - CONTROL SHIFT KEYS
  27910. AH = 21h
  27911. AL = shift keys to control (see #00582)
  27912. BL = shift state for disabled keys
  27913. Note: If a bit in AL is set the key is disabled and set to the state of the
  27914. corresponding bit in BL
  27915. SeeAlso: AH=20h"HUNTER",AH=22h"HUNTER"
  27916. --------B-1622-------------------------------
  27917. INT 16 - KEYBOARD - GET 122-KEY SHIFT STATUS (122-key kbd support only)
  27918. AH = 22h
  27919. Return: AL = shift flags 1 (see #00587)
  27920. AH = shift flags 2 (see #00588)
  27921. Notes: use AH=09h to determine whether this function is supported
  27922. K3PLUS v6.00+ supports this function as an alias of AH=12h
  27923. SeeAlso: AH=02h,AH=09h,AH=12h,AH=20h,AH=21h
  27924. --------b-1622------------------------------------
  27925. INT 16 - HUNTER 16 - CONTROL CTRL-ALT-DEL
  27926. AH = 22h
  27927. AL = new Ctrl-Alt-Del state (00h enabled, nonzero disabled)
  27928. BX = 0708h
  27929. CX = 0910h
  27930. DX = 1112h
  27931. Return: AL = 00h if successful
  27932. SeeAlso: AH=21h"HUNTER",AH=23h"HUNTER",AH=2Ah
  27933. --------b-1623------------------------------------
  27934. INT 16 - HUNTER 16 - CONTROL EMERGENCY BREAKOUT
  27935. AH = 23h
  27936. AL = new state of breakout (00h enabled, nonzero disabled)
  27937. BX = 0708h
  27938. CX = 0910h
  27939. DX = 1112h
  27940. Return: AL = 00h if successful
  27941. Desc: Enables or disables the emergency breakout feature, where the
  27942. Hunter 16 at power on checks whether the X and P keys are pressed.
  27943. If so the machine will boot rather than continue the running program
  27944. SeeAlso: AH=22h"HUNTER"
  27945. --------b-1624------------------------------------
  27946. INT 16 - HUNTER 16 - REDEFINE KEY CODES
  27947. AH = 24h
  27948. AL = Matrix Code (see #00591)
  27949. BL = new Key code
  27950. Return: AL = status (00h successful, nonzero failed)
  27951. SeeAlso: AH=2Bh,AH=2Ch
  27952. (Table 00591)
  27953. Values for HUNTER 16 Matrix Code:
  27954. Code Key Code Key Code Key
  27955. 00h Esc key 1Eh Space 3Bh L
  27956. 01h 1 21h 0 3Ch ,
  27957. 02h Q 22h - 3Eh Right shift
  27958. 03h Tab 23h ' 42h 8
  27959. 04h Num Lock 24h Keypad 4 43h 7
  27960. 05h \ 25h Enter 44h U
  27961. 08h LShift 26h Keypad 7 45h I
  27962. 09h Ctrl 27h . 46h J
  27963. 0Ah "Paw" key 28h Keypad 1 47h K
  27964. 0Bh 2 29h Keypad 0 48h M
  27965. 0Ch W 2Ch = 49h N
  27966. 0Dh A 2Dh Backspace 4Ah /
  27967. 0Eh S 2Eh Keypad 8 4Dh 6
  27968. 0Fh Z 2Fh Keypad 9 4Eh 5
  27969. 11h Alt 30h Keypad 5 4Fh T
  27970. 16h 4 31h Keypad 6 50h Y
  27971. 17h 3 32h Keypad 2 51h G
  27972. 18h E 33h Keypad 3 52h H
  27973. 19h R 34h Keypad . 53h B
  27974. 1Ah D 37h 9 54h V
  27975. 1Bh F 38h O 55h #
  27976. 1Ch X 39h P 58h Pwr
  27977. 1Dh C 3Ah ; 59h Shift Pwr
  27978. --------b-1625------------------------------------
  27979. INT 16 - HUNTER 16 - RESET KEYBOARD
  27980. AH = 25h
  27981. Return: AL = 00h
  27982. Desc: restores the standard keyboard layout after any remapping
  27983. SeeAlso: AH=24h,AH=2Bh,AH=2Ch
  27984. --------K-1625-------------------------------
  27985. INT 16 O - K3 v1.5x, K3PLUS v5.xx - COPY INTO EXTENDED BUFFER
  27986. AH = 25h
  27987. CX = number of keystrokes to copy
  27988. ES:SI -> buffer containing keystrokes
  27989. Return: CF clear if successful
  27990. CF set on error (i.e. buffer full)
  27991. CX = number of keystrokes NOT transferred
  27992. ES:SI -> first keystroke not transferred
  27993. Note: this function was normally unsupported under K3PLUS v6.00-v6.22 and
  27994. is no longer supported by v6.30+; use AX=AF25h instead
  27995. SeeAlso: AH=05h,AH=20h"K3",AX=AF25h,INT 2F/AX=D44Fh/BX=0001h
  27996. --------b-1626------------------------------------
  27997. INT 16 - HUNTER 16 - CONTROL KEYCLICK
  27998. AH = 26h
  27999. AL = new state of keyclicks (00h disabled, 01h enabled)
  28000. Return: AL = 00h
  28001. SeeAlso: AH=2Ah
  28002. --------b-1627------------------------------------
  28003. INT 16 - HUNTER 16 - CONTROL SCREEN DUMP AREA
  28004. AH = 27h
  28005. AL = what to dump
  28006. 00h whole (virtual) window
  28007. 01h LCD window only
  28008. Return: AL = 00h
  28009. Desc: control whether printscren dumps the whole 80x25 screen or only the
  28010. part displayed in the LCD window
  28011. Note: the Hunter 16 has a 240x64 LCD display which serves as a window into
  28012. a 640x200 virtual screen
  28013. --------b-1629------------------------------------
  28014. INT 16 - HUNTER 16 - GET KEY REPEAT
  28015. AH = 29h
  28016. Return: BL = Typematic rate (characters per second) (see #00592)
  28017. BH = delay (00h = 250ms, 01h = 500ms, 02h = 750ms, 03h = 1s)
  28018. SeeAlso: AH=03h,AH=2Ah
  28019. (Table 00592)
  28020. Values for HUNTER 16 Typematic rate:
  28021. 00h 30.0 08h 15.0 10h 7.5 18h 3.7
  28022. 01h 26.7 09h 13.3 11h 6.7 19h 3.3
  28023. 02h 24.0 0Ah 12.0 12h 6.0 1Ah 3.0
  28024. 03h 21.8 0Bh 10.9 13h 5.5 1Bh 2.7
  28025. 04h 20.0 0Ch 10.0 14h 5.0 1Ch 2.5
  28026. 05h 18.5 0Dh 9.2 15h 4.6 1Dh 2.3
  28027. 06h 17.1 0Eh 8.6 16h 4.3 1Eh 2.1
  28028. 07h 16.0 0Fh 8.0 17h 4.0 1Fh 2.0
  28029. SeeAlso: AH=2Ah
  28030. --------b-162A------------------------------------
  28031. INT 16 - HUNTER 16 - CONTROL KEY REPEAT
  28032. AH = 2Ah
  28033. AL = new state of keyboard autorepeat (00h disabled, 01h enabled)
  28034. SeeAlso: AH=03h,AH=26h,AH=29h,AH=2Bh
  28035. --------b-162B------------------------------------
  28036. INT 16 - HUNTER 16 - REDEFINE KEY SCAN CODES
  28037. AH = 2Bh
  28038. AL = which key table to redefine
  28039. 00h unshifted
  28040. 01h shifted
  28041. 02h Numlock
  28042. BH = standard scan code of key (00h-80h)
  28043. BL = new scan code
  28044. Desc: redefine the generated scan code from BH to BL
  28045. SeeAlso: AH=24h,AH=2Ah,AH=2Ch
  28046. --------b-162C------------------------------------
  28047. INT 16 - HUNTER 16 - REDEFINE RAW KEY CODES
  28048. AH = 2Ch
  28049. AL = Matrix code of key (see AH=29h)
  28050. BL = new key code
  28051. Return: AL = status (00h success, nonzero failed)
  28052. Desc: redefine the key code generated by holding the PAW key down and
  28053. pressing the key in AL
  28054. SeeAlso: AH=24h,AH=2Bh
  28055. --------b-162D------------------------------------
  28056. INT 16 - HUNTER 16 - CONTROL BREAK KEYS
  28057. AH = 2Dh
  28058. AL = enabled break keys
  28059. bit 0 Ctrl-C
  28060. bit 1 Ctrl-Break
  28061. BX = 0708h
  28062. CX = 0910h
  28063. DX = 1112h
  28064. Return: AL = status (00h success, FFh failed)
  28065. SeeAlso: AH=21h"HUNTER"
  28066. --------U-163577-----------------------------
  28067. INT 16 U - TextWare TWTSR - API
  28068. AX = 3577h
  28069. CX = function
  28070. 00CBh ???
  28071. Return: AX = 0000h
  28072. BX = 0000h
  28073. DX:CX -> ???
  28074. 00CCh uninstall
  28075. Return: AX = status
  28076. 0000h successful
  28077. FFFDh unable to unload because vectors taken
  28078. 00CDh ???
  28079. Return: AX = 0000h
  28080. BX = 0000h
  28081. DX:CX -> ???
  28082. other
  28083. Return: AX = 5345h ('SE')
  28084. Program: TWTSR is a TSR which allows the TextWare hypertext browser to be
  28085. popped up via hotkey
  28086. SeeAlso: AX=D724h
  28087. --------U-164252-----------------------------
  28088. INT 16 - TEXTCAP 2.0 - INSTALLATION CHECK
  28089. AX = 4252h
  28090. Return: AX = 5242h if installed
  28091. Program: TEXTCAP 2.0 is a heavily modified (by Gisbert W. Selke) version of
  28092. the PC Magazine utility CAPTURE written by Tom Kihlken
  28093. SeeAlso: AX=4253h,AX=4254h
  28094. --------U-164253-----------------------------
  28095. INT 16 - TEXTCAP 2.0 - UNINSTALL
  28096. AX = 4253h
  28097. Return: AX = segment of resident code
  28098. Notes: the uninstall code does not check whether interrupt vectors have been
  28099. chained by other programs
  28100. the caller must free the main memory block (using the returned segment)
  28101. SeeAlso: AX=4252h,AX=4254h
  28102. --------U-164254-----------------------------
  28103. INT 16 - TEXTCAP 2.0 - DUMP TEXT SCREEN TO FILE
  28104. AX = 4254h
  28105. Return: AX = status
  28106. 4254h if screen dump will be written as soon as disk becomes idle
  28107. 5442h if screen dump written
  28108. SeeAlso: AX=4252h,AX=4253h
  28109. --------e-164500-----------------------------
  28110. INT 16 - Shamrock Software EMAIL - GET STATUS
  28111. AX = 4500h
  28112. DL = port number (01h = COM1)
  28113. ES:BX -> 13-byte buffer for ASCIZ name
  28114. Return: AX = 4D00h if EMAIL installed on specified port
  28115. ES:BX -> "" if no connection
  28116. -> "*" if connection but caller has not identified name
  28117. -> name otherwise
  28118. CX = version (CH = major, CL = minor)
  28119. DL = privilege level of user (00h = guest)
  28120. DH = chosen language (00h German, 01h English)
  28121. SeeAlso: AX=4501h,AX=4502h
  28122. --------e-164501-----------------------------
  28123. INT 16 - Shamrock Software EMAIL - GET ELAPSED ONLINE TIME AND MAXIMUM TIME
  28124. AX = 4501h
  28125. DL = port number (01h = COM1)
  28126. Return: AX = 4D00h if EMAIL installed on specified port
  28127. BX = maximum connect time in clock ticks
  28128. CX = maximum connect time for guests (without name) in clock ticks
  28129. DX = elapsed connect time of current user in clock ticks
  28130. SeeAlso: AX=4500h
  28131. --------e-164502-----------------------------
  28132. INT 16 - Shamrock Software EMAIL - GET CURRENT COMMUNICATIONS PARAMETERS
  28133. AX = 4502h
  28134. DL = port number (01h = COM1)
  28135. Return: AX = 4D00h if EMAIL installed on specified port
  28136. BL = current value of serial port's Line Control Register
  28137. BH = flags (see #00593)
  28138. CX = selected country code (33 = France, 49 = Germany, etc)
  28139. DX = baudrate divisor (115200/DX = baudrate)
  28140. SeeAlso: AX=4500h
  28141. Bitfields for Shamrock Software EMAIL flags:
  28142. Bit(s) Description (Table 00593)
  28143. 0 ISO code
  28144. 1 pause
  28145. 2 linefeed
  28146. 3 ANSI sequences
  28147. --------e-164503-----------------------------
  28148. INT 16 - Shamrock Software EMAIL - SPECIFY COMMAND-WORD FOR USER FUNCTION
  28149. AX = 4503h
  28150. DL = port number (01h = COM1)
  28151. DH = maximum execution time in clock ticks (00h = 5 seconds)
  28152. ES:BX -> ASCIZ string with new user command-word
  28153. Return: AX = 4D00h if EMAIL installed on specified port
  28154. Notes: a single user command (consisting of only uppercase letters and digits)
  28155. may be defined, and remains valid until it is overwritten or the
  28156. EMAIL program terminates; the user command must be activated by
  28157. calling AX=4504h at least once.
  28158. an existing command word may be redefined with this function
  28159. SeeAlso: AX=4504h,AX=4505h
  28160. --------e-164504-----------------------------
  28161. INT 16 - Shamrock Software EMAIL - CHECK FOR USER FUNCTION COMMAND-WORD
  28162. AX = 4504h
  28163. DL = port number (01h = COM1)
  28164. ES:BX -> 80-byte buffer for ASCIZ user input line
  28165. Return: AX = 4D00h if EMAIL installed on specified port
  28166. DL = flags
  28167. bit 0: user function supported (always set)
  28168. bit 1: user entered user-function command word
  28169. if DL bit 1 set,
  28170. ES:BX buffer contains line entered by user which begins with
  28171. the defined command word and has been converted to all
  28172. caps
  28173. Note: caller must process the returned commandline and invoke AX=4505h
  28174. within five seconds with the result of that processing
  28175. SeeAlso: AX=4503h,AX=4505h
  28176. --------e-164505-----------------------------
  28177. INT 16 - Shamrock Software EMAIL - SEND RESULT OF USER FUNCTION
  28178. AX = 4505h
  28179. DL = port number (01h = COM1)
  28180. DH = error flag
  28181. bit 3: set on error
  28182. ES:BX -> ASCIZ text to return to user, max 1024 bytes
  28183. Return: AH = 4Dh if EMAIL installed on specified port
  28184. AL = status
  28185. 00h successful
  28186. 02h unable to perform function (timeout, prev call not complete)
  28187. other error
  28188. Notes: if the error flag in DH is set, the string is not sent and an error
  28189. message is generated instead; if this function is not called within
  28190. five seconds of AX=4504h, EMAIL automatically generates an error
  28191. message
  28192. the string is copied into an internal buffer, allowing this function's
  28193. caller to continue immediately
  28194. SeeAlso: AX=4503h,AX=4504h,INT 17/AX=2400h
  28195. --------e-164506-----------------------------
  28196. INT 16 - Shamrock Software EMAIL - MONITOR XMODEM DOWNLOAD
  28197. AX = 4506h
  28198. DL = port number (01h = COM1)
  28199. ES:BX -> 13-byte buffer for ASCIZ filename
  28200. Return: AX = 4D00h if EMAIL installed on specified port
  28201. DH = Xmodem status
  28202. 00h no XGET command given
  28203. 01h XGET in progress
  28204. 02h XGET completed successfully
  28205. ES:BX buffer filled with last filename given to XGET command
  28206. (without path)
  28207. Note: DH=02h will only be returned once per XGET; subsequent calls will
  28208. return DH=00h
  28209. SeeAlso: AX=4500h,INT 17/AX=2408h
  28210. --------K-164B-------------------------------
  28211. INT 16 - Frank Klemm Keyboard Driver v2.0 - API
  28212. AH = 4Bh
  28213. CX = code or action
  28214. 0000h-FEFFh key code
  28215. FF00h-FFFFh action (see #00594)
  28216. BL = scan code (normal keys) or scan code + 60h (enhanced keys)
  28217. BH = shift state (see #00595)
  28218. Return: CX = previous code or action
  28219. (Table 00594)
  28220. Values for Frank Klemm Keyboard Driver action code:
  28221. FF00h no action
  28222. FF01h hardcopy
  28223. FF02h left shift
  28224. FF03h right shift
  28225. FF04h left Ctrl
  28226. FF05h right Ctrl
  28227. FF06h left Alt
  28228. FF07h right Alt / AltGr
  28229. FF08h CapsLock
  28230. FF09h NumLock
  28231. FF0Ah ScrlLock
  28232. FF0Bh Insert (returns code 5200h or 52E0h)
  28233. FF0Ch Pause
  28234. FF0Dh Ctrl-Break function
  28235. FF0Eh warm boot via far jump to F000h:FFF0h
  28236. FF0Fh terminate current program
  28237. FF10h key for entering keys via Alt-numpad (read-only)
  28238. FF11h clear keyboard buffer
  28239. FF12h reset (warmboot on XT)
  28240. FF13h mouse sensitivity (read-only)
  28241. FF14h keyjobs (read-only)
  28242. FF15h SysRq
  28243. FF16h turn on CPU cache (486+)
  28244. FF17h turn off CPU cache (486+)
  28245. SeeAlso: #00595
  28246. (Table 00595)
  28247. Values for Frank Klemm Keyboard Driver shift state:
  28248. 00h no shift keys
  28249. 01h either Shift
  28250. 02h either Ctrl
  28251. 03h left Alt
  28252. 04h Ctrl + Alt
  28253. ---standard keyboard---
  28254. 05h right Alt / AltGr
  28255. ---Russian keyboard---
  28256. 05h Russian + no shift keys
  28257. 06h Russian + either Shift
  28258. SeeAlso: #00594
  28259. --------K-164D4F-----------------------------
  28260. INT 16 - M16_KBD.COM v5.6 - INSTALLATION CHECK
  28261. AX = 4D4Fh
  28262. Return: AX = 6F6Dh if installed
  28263. ES = segment of resident code
  28264. Program: M16_KBD is a shareware Cyrillic keyboard driver by I.V. Morozov
  28265. SeeAlso: INT 10/AX=1130h/BX=4D4Fh
  28266. --------J-165000-----------------------------
  28267. INT 16 - KEYBOARD - AX PC - SET KEYBOARD COUNTRY CODE
  28268. AX = 5000h
  28269. BX = country code
  28270. 0001h USA (English), 0051h Japan
  28271. Return: AL = status
  28272. 00h successful
  28273. 01h bad country code
  28274. 02h other error
  28275. Notes: the K3PLUS v6.00+ INT 16 BIOS replacement will switch between the
  28276. supported country specific layout (e.g. BX=0031h Germany, BX=001Fh
  28277. Netherlands, BX=0020h Belgium, BX=0022h Spain) (as with <Ctrl>+
  28278. <Alt>+<F2>) and K3PLUS' transparent mode (as with <Ctrl>+<Alt>+<F1>).
  28279. In transparent mode (BX=0001h), K3PLUS chains to the underlying
  28280. driver (normally the BIOS driver with US-layout). K3PLUS beeps on
  28281. mode changes
  28282. SeeAlso: AX=5001h,AX=AF4Dh,INT 10/AX=5000h,INT 17/AX=5000h
  28283. --------J-165001-----------------------------
  28284. INT 16 - KEYBOARD - AX PC - GET KEYBOARD COUNTRY CODE
  28285. AX = 5001h
  28286. Return: AL = status
  28287. 00h successful
  28288. BX = country code
  28289. 02h error
  28290. Note: also supported by K3PLUS v6.00+
  28291. SeeAlso: AX=5000h,INT 10/AX=5001h,INT 17/AX=5001h
  28292. --------J-1651-------------------------------
  28293. INT 16 - KEYBOARD - AX PC - READ SHIFT KEY STATUS
  28294. AH = 51h
  28295. Return: AL = standard shift key states (see #00582,#00587)
  28296. AH = Kana lock (00h off, 01h on)
  28297. Note: also supported by K3PLUS v6.00+, but K3PLUS always returns AH=00h
  28298. SeeAlso: AH=02h,AH=12h,AH=22h
  28299. --------t-165453BX5242-----------------------
  28300. INT 16 - TSRBONES - INSTALLATION CHECK
  28301. AX = 5453h ('TS')
  28302. BX = 5242h ('RB')
  28303. CX = 4F4Eh ('ON')
  28304. DX = 4553h ('ES')
  28305. Return: AX = 4553h if installed
  28306. BX = 4F4Eh if installed
  28307. CX = 5242h if installed
  28308. DX = 5453h if installed
  28309. Program: TSRBONES is a skeletal TSR framework by Robert Curtis Davis
  28310. Note: these values are the default as the TSRBONES package is distributed,
  28311. but will normally be changed when implementing an actual TSR with
  28312. the TSRBONES skeleton
  28313. SeeAlso: INT 2D/AL=00h"AMIS"
  28314. --------K-165472BX4C54-----------------------
  28315. INT 16 - TrLit - API
  28316. AX = 5472h ('Tr')
  28317. BX = 4C54h ('Lt')
  28318. CL = function
  28319. 00h installation check
  28320. Return: DX = 1234h if installed
  28321. AX = 100*version (binary, 00E9h = v2.33)
  28322. CX = resident code segment
  28323. 01h get original INT 09 vector
  28324. Return: ES:BX -> previous handler
  28325. 02h get original INT 16 vector
  28326. Return: ES:BX -> previous handler
  28327. else chained
  28328. CH = 00h (for backward compatibility with versions before 2.30)
  28329. Program: TrLit is a Russian keyboard transliterator by Rostislav Krasny
  28330. Index: installation check;TrLit
  28331. --------A-165500-----------------------------
  28332. INT 16 C - Microsoft Word internal - MICROSOFT WORD COOPERATION WITH TSR
  28333. AX = 5500h
  28334. Return: AX = 4D53h ('MS') if keyboard TSR present
  28335. Notes: during startup, Microsoft Word tries to communicate with any TSRs
  28336. that are present through this call.
  28337. if the return is not 4D53h, Word installs its own INT 09 and INT 16
  28338. handlers; otherwise it assumes that the TSR will handle the keyboard
  28339. SeeAlso: AX=55FFh,INT 1A/AX=3601h
  28340. --------A-1655FE-----------------------------
  28341. INT 16 CU - Microsoft QBASIC internal - MICROSOFT COOPERATION WITH TSR
  28342. AX = 55FEh
  28343. DX = function
  28344. 0000h initialize
  28345. ES:BX -> ??? function
  28346. ES:CX -> ??? structure
  28347. FFFFh shutdown/reset
  28348. Return: AX = result
  28349. 4D4Bh only the INT 1B handler will be installed.
  28350. other: handlers for INT 08, INT 09, INT 16, INT 1B, and INT 1C
  28351. are installed
  28352. Notes: The pointer in ES:CX seems to point at a structure defining a callback
  28353. function when new keyboard keys are pressed. If a TSR returns
  28354. AX=4D4Bh, QBASIC will stop (with IRQ's and interrupts enabled).
  28355. these calls are also made by MS-DOS 6.0's DOSSHELL at startup, exit,
  28356. and before/after shelling out
  28357. since EDIT.COM and HELP.COM merely invoke QBASIC, those two programs
  28358. will also cause this interface to be invoked
  28359. K3PLUS v6.07+ supports this function, but will never invoke the
  28360. callback function
  28361. SeeAlso: AX=5500h,AX=AF4Dh,INT 1A/AX=3601h
  28362. --------U-1655FF-----------------------------
  28363. INT 16 C - Microsoft Word - TSR COOPERATION???
  28364. AX = 55FFh
  28365. BX >= 0004h (version of Microsoft Word [BL = major] ???)
  28366. CX = function
  28367. 0000h set ??? flag
  28368. other clear ??? flag
  28369. Notes: hooks intercepting this call are present in SWAPSH and SWAPDT v1.77j,
  28370. distributed with PC Tools v7, as well as the Trusted Access
  28371. SCRNBLNK.COM; this may be part of the standard TesSeRact library
  28372. known to be called by the German edition of Microsoft Word 5.0
  28373. SeeAlso: AX=5500h,INT 2F/AX=5453h
  28374. --------c-165758BX4858-----------------------
  28375. INT 16 U - Netroom CACHECLK - INSTALLATION CHECK
  28376. AX = 5758h
  28377. BX = 4858h ('HX')
  28378. DX = 4443h ('DC')
  28379. CX <> 5758h
  28380. Return: BX = 6878h if installed
  28381. CX = 6463h if installed
  28382. AX = code segment of TSR
  28383. CX = internal version??? (v3.00 returns 0100h)
  28384. Program: CACHECLK is a "cloaked" disk cache included with Netroom
  28385. Notes: if CX=5758h on entry, CACHECLK returns with all registers unchanged
  28386. the cache statistics are located early in the segment pointed at by
  28387. AX on return
  28388. SeeAlso: INT 2F/AX=5758h
  28389. --------m-165758BX5754-----------------------
  28390. INT 16 U - Netroom ??? - ???
  28391. AX = 5758h
  28392. BX = 5754h
  28393. ???
  28394. Return: ???
  28395. --------m-165758BX5755-----------------------
  28396. INT 16 U - Netroom ??? - ???
  28397. AX = 5758h
  28398. BX = 5755h
  28399. DS:SI -> ???
  28400. Return: ???
  28401. --------m-165758BX5756-----------------------
  28402. INT 16 U - Netroom ??? - INSTALLATION CHECK
  28403. AX = 5758h
  28404. BX = 5756h
  28405. Return: BX <> 5756h if installed
  28406. --------m-165758BX5858-----------------------
  28407. INT 16 U - Netroom PRENET - GET OLD INTERRUPT VECTORS
  28408. AX = 5758h
  28409. BX = 5858h
  28410. Return: CF clear
  28411. DX:BX -> saved copy of interrupt vector table
  28412. InstallCheck: call this function and compare BX against 5858h on return; if
  28413. it has changed, PRENET is installed
  28414. SeeAlso: AX=5758h/BX=5859h
  28415. Index: installation check;Netroom PRENET
  28416. --------m-165758BX5859-----------------------
  28417. INT 16 U - Netroom POSTNET - GET OLD INTERRUPT VECTORS
  28418. AX = 5758h
  28419. BX = 5859h
  28420. Return: CF clear
  28421. DX:BX -> saved copy of interrupt vector table
  28422. InstallCheck: call this function and compare BX against 5859h on return; if
  28423. it has changed, POSTNET is installed
  28424. SeeAlso: AX=5758h/BX=5858h
  28425. Index: installation check;Netroom POSTNET
  28426. ----------1667-------------------------------
  28427. INT 16 - Doorway v2.x+ - INSTALLATION CHECK / REDIRECTION CONTROLa
  28428. AH = 67h
  28429. AL = Doorway mode
  28430. 00h turn off DOS redirection
  28431. 01h turn on DOS redirection
  28432. Return: AH = 80h if Doorway is actively redirecting output
  28433. AL = 80h if Doorway was already in requested mode
  28434. Program: Doorway is a program by Marshall Dudley which allows most DOS programs
  28435. to run as a BBS door without modification
  28436. Note: to perform an installation check without changing the redirection
  28437. state, if is necessary to restore the original mode if AL was not
  28438. 80h on return
  28439. SeeAlso: INT 10/AH=BBh"Doorway"
  28440. --------U-166969BX6968-----------------------
  28441. INT 16 - PC Tools v5.1+ BACKTALK - UNHOOK
  28442. AX = 6969h
  28443. BX = 6968h
  28444. Return: resident code unhooked, but not removed from memory
  28445. Index: uninstall;BACKTALK
  28446. --------U-166969BX6969-----------------------
  28447. INT 16 - PC Tools v5.1+ BACKTALK - INSTALLATION CHECK
  28448. AX = 6969h
  28449. BX = 6969h
  28450. DX = 0000h
  28451. Return: DX nonzero if installed
  28452. BX = CS of resident code
  28453. DX = PSP segment of resident code
  28454. DS:SI -> ASCIZ identification string "CPoint Talk"
  28455. --------i-166A6B-----------------------------
  28456. INT 16 U - FastJuice - DISABLE/UNLOAD???
  28457. AX = 6A6Bh
  28458. Return: ???
  28459. Program: FastJuice is a resident battery-power monitor by SeaSide Software
  28460. SeeAlso: AX=7463h
  28461. Index: uninstall;FastJuice
  28462. --------G-166C63-----------------------------
  28463. INT 16 U - TMED v1.6a - INSTALLATION CHECK
  28464. AX = 6C63h ('lc')
  28465. Return: AX = 4C43h ('LC') if installed
  28466. Program: TMED is a freeware resident memory editor by Liang Chen
  28467. --------U-166D74-----------------------------
  28468. INT 16 - MTRTSR - INSTALLATION CHECK
  28469. AX = 6D74h ('mt')
  28470. Return: AX = 4D54h ('MT') if installed
  28471. Program: MTRTSR is a part of the shareware MTR package by Mechon Mamre which
  28472. permits searching the large corpus of classical Hebrew texts in the
  28473. package
  28474. SeeAlso: INT 10/AX=6D74h"MTRFONTS"
  28475. --------b-166F00-----------------------------
  28476. INT 16 - HP Vectra EX-BIOS - "F16_INQUIRE" - Extended BIOS INSTALLATION CHECK
  28477. AX = 6F00h
  28478. BX <> 4850h (usually set to 0000h for simplicity)
  28479. Return: BX = 4850h ("HP") if present
  28480. Notes: called by recent MS Mouse drivers looking for an HP-HIL mouse
  28481. supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  28482. SeeAlso: AX=6F01h,AX=6F04h,AX=6F07h,AX=6F09h,AX=6F0Dh,AX=6F11h,AX=6F12h
  28483. SeeAlso: INT 14/AX=6F00h,INT 17/AX=6F00h,INT 33/AX=6F00h
  28484. SeeAlso: INT 6F/AH=00h"HP Vectra"
  28485. --------b-166F01-----------------------------
  28486. INT 16 - HP Vectra EX-BIOS - "F16_DEF_ATTR" - GET DEFAULT TYPEMATIC VALUES
  28487. AX = 6F01h
  28488. Return: AH = 00h (successful)
  28489. CX = 0004h (size of returned buffer)
  28490. ES:SI -> buffer for typematic info (see #00596)
  28491. Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  28492. SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
  28493. Format of HP Vectra EX-BIOS typematic info:
  28494. Offset Size Description (Table 00596)
  28495. 00h BYTE delay before repeat for all non-Cursor Control Pad keys
  28496. (see #00597)
  28497. 01h BYTE typematic rate for all non-Cursor Control Pad keys (see #00598)
  28498. 02h BYTE delay before repeat for Cursor Control Pad keys (see #00599)
  28499. 03h BYTE typematic rate for Cursor Control Pad keys (see #00598)
  28500. (Table 00597)
  28501. Values for HP Vectra EX-BIOS non-CCP delay time:
  28502. 00h 17 ms
  28503. 01h 150 ms
  28504. 02h 283 ms
  28505. 03h 417 ms
  28506. 04h 550 ms
  28507. 05h 683 ms
  28508. 06h 817 ms
  28509. 07h 950 ms
  28510. 08h 1083 ms
  28511. 09h 1217 ms
  28512. 0Ah 1350 ms
  28513. 0Bh 1483 ms
  28514. 0Ch 1617 ms
  28515. 0Dh 1750 ms
  28516. 0Eh 1883 ms
  28517. 0Fh 2017 ms
  28518. Note: the above values assume that the key repeat rate has been set to 60 Hz;
  28519. double the times if set to 30 Hz
  28520. SeeAlso: #00596,#00598,#00599
  28521. (Table 00598)
  28522. Values for HP Vectra EX-BIOS typematic rate:
  28523. 00h 60 / sec
  28524. 01h 30 / sec
  28525. 02h 20
  28526. 03h 15
  28527. 04h 12
  28528. 05h 10
  28529. 06h 8.57
  28530. 07h 7.5
  28531. 08h 6.66
  28532. 09h 6 / sec
  28533. 0Ah 5.45
  28534. 0Bh 5
  28535. 0Ch 4.62
  28536. 0Dh 4.28
  28537. 0Eh 4 / sec
  28538. 0Fh typematic disabled
  28539. Note: the above values assume that the key repeat rate has been set to 60 Hz;
  28540. halve the rates if set to 30 Hz
  28541. SeeAlso: #00597,#00599
  28542. (Table 00599)
  28543. Values for HP Vectra EX-BIOS CCP delay time:
  28544. 00h 17 ms
  28545. 01h 83 ms
  28546. 02h 150 ms
  28547. 03h 217 ms
  28548. 04h 283 ms
  28549. 05h 350 ms
  28550. 06h 417 ms
  28551. 07h 483 ms
  28552. 08h 550 ms
  28553. 09h 617 ms
  28554. 0Ah 683 ms
  28555. 0Bh 750 ms
  28556. 0Ch 817 ms
  28557. 0Dh 883 ms
  28558. 0Eh 950 ms
  28559. 0Fh 1017 ms
  28560. Note: the above values assume that the key repeat rate has been set to 60 Hz;
  28561. double the times if set to 30 Hz
  28562. SeeAlso: #00597,#00598
  28563. --------b-166F02-----------------------------
  28564. INT 16 - HP Vectra EX-BIOS - "F16_GET_ATTR" - GET CURRENT TYPEMATIC VALUES
  28565. AX = 6F02h
  28566. Return: AH = 00h (successful)
  28567. CX = 0004h (size of returned buffer)
  28568. ES:SI -> buffer for typematic info (see #00596)
  28569. Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  28570. SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
  28571. SeeAlso: AX=6F00h,AX=6F01h,AX=6F03h
  28572. --------b-166F03-----------------------------
  28573. INT 16 - HP Vectra EX-BIOS - "F16_SET_ATTR" - SET TYPEMATIC VALUES
  28574. AX = 6F03h
  28575. ES:SI -> buffer containing typematic info (see #00596)
  28576. Return: AH = 00h (successful)
  28577. Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  28578. SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
  28579. SeeAlso: AX=6F00h,AX=6F01h,AX=6F02h
  28580. --------b-166F04-----------------------------
  28581. INT 16 - HP Vectra EX-BIOS - "F16_DEF_MAPPING" - GET DEFAULT KEY MAPPINGS
  28582. AX = 6F04h
  28583. ES:SI -> mapping buffer (see #00600)
  28584. Return: AH = 00h (successful)
  28585. CX = 001Eh (number of bytes in buffer)
  28586. ES:SI buffer filled
  28587. Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  28588. the HIL input system translates the HIL keyboard events to simulate
  28589. an IBM-compatible keyboard; the translation can be altered
  28590. dynamically by applications
  28591. SeeAlso: AX=6F00h,AX=6F05h,AX=6F06h
  28592. Format of HP Vectra EX-BIOS keyboard mapping info:
  28593. Offset Size Description (Table 00600)
  28594. 00h 3 WORDs entry for V_QWERTY driver (IP, CS, DS)
  28595. 06h 3 WORDs entry for V_SOFTKEY driver (IP, CS, DS)
  28596. 0Ch 3 WORDs entry for V_FUNCTION driver
  28597. 12h 3 WORDs entry for V_NUMPAD driver
  28598. 18h 3 WORDs entry for V_CCP driver
  28599. --------b-166F05-----------------------------
  28600. INT 16 - HP Vectra EX-BIOS - "F16_GET_MAPPING" - GET CURRENT KEY MAPPINGS
  28601. AX = 6F05h
  28602. ES:SI -> mapping buffer (see #00600)
  28603. Return: AH = 00h (successful)
  28604. CX = 001Eh (number of bytes in buffer)
  28605. ES:SI buffer filled
  28606. Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  28607. SeeAlso: AX=6F04h,AX=6F06h
  28608. --------b-166F06-----------------------------
  28609. INT 16 - HP Vectra EX-BIOS - "F16_SET_MAPPING" - SET KEY MAPPINGS
  28610. AX = 6F06h
  28611. CX = number of bytes in buffer (001Eh)
  28612. ES:SI -> mapping buffer (see #00600)
  28613. Return: AH = 00h (successful)
  28614. Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  28615. any application which modifies the key mappings should restore them
  28616. before terminating
  28617. drivers installed with this function are assured of 32 bytes of stack
  28618. space when they are invoked
  28619. SeeAlso: AX=6F04h,AX=6F05h,AX=6F07h
  28620. --------b-166F07-----------------------------
  28621. INT 16 - HP Vectra EX-BIOS - "F16_SET_XLATORS" - SET CCP AND SOFTKEY PADS
  28622. AX = 6F07h
  28623. BL = translation to set (see #00601)
  28624. Return: AH = 00h (successful)
  28625. Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  28626. this function may no longer work properly if the application has
  28627. modified the key mappings with AX=6F06h
  28628. SeeAlso: AX=6F06h,AX=6F09h
  28629. (Table 00601)
  28630. Values for HP Vectra keyboard translation specifier:
  28631. 00h map V_CCP to V_CCPCUR, forcing the cursor pad to return cursor keys
  28632. 01h map V_CCP to V_CCPNUM, forcing the cursor pad to always return numbers
  28633. 02h map V_CCP to V_OFF, disabling the cursor pad
  28634. 03h map V_CCP to V_CCPGID, converting cursor pad keys to GID data
  28635. 04h map V_CCP to V_RAW, passing cursor pad data untranslated to INT 09
  28636. 05h map V_SOFTKEY to V_SKEY2KFEY, translating into standard function keys
  28637. 06h map V_SOFTKEY to V_RAW, passing Softkey scancodes direct to INT 09
  28638. 07h map V_SOFTKEY to V_OFF, disabling HP Softkeys
  28639. SeeAlso: #00602
  28640. (Table 00602)
  28641. Values for HP Vectra scancodes and BIOS keycodes for V_RAW translator:
  28642. INT 09 INT 16 keycode
  28643. Key scan code Default Shifted Ctrl Alt
  28644. * (NumPd) 37h 2Ah (Prt Sc) 00/72h 00/37H
  28645. Sysreq 54h -- -- -- --
  28646. CCP-Up 60h 00/D9h 00/BFh 00/A5h 00/8BH
  28647. CCP-Left 61h 00/DAh 00/C0h 00/A6h 00/8CH
  28648. CCP-Down 62h 00/DBh 00/C1h 00/A7h 00/8DH
  28649. CCP-Right 63h 00/DCh 00/C2h 00/A8h 00/8EH
  28650. CCP-Home 64h 00/DDh 00/C3h 00/A9h 00/8FH
  28651. CCP-PgUp 65h 00/DEh 00/C4h 00/AAh 00/90H
  28652. CCP-End 66h 00/DFh 00/C5h 00/ABh 00/91H
  28653. CCP-PgDn 67h 00/E0h 00/C6h 00/ACh 00/92H
  28654. CCP-Ins 68h 00/E1h 00/C7h 00/ADh 00/93H
  28655. CCP-Del 69h 00/E2h 00/C8h 00/AEh 00/94H
  28656. CCP-CNTR 6Ah 00/E3h 00/C9h 00/AFh 00/95H
  28657. f1 70h 00/E9h 00/CFh 00/B5h 00/9BH
  28658. f2 71h 00/EAh 00/D0h 00/B6h 00/9CH
  28659. f3 72h 00/EBh 00/D1h 00/B7h 00/9DH
  28660. f4 73h 00/ECh 00/D2h 00/B8h 00/9EH
  28661. f5 74h 00/EDh 00/D3h 00/B9h 00/9FH
  28662. f6 75h 00/EEh 00/D4h 00/BAh 00/A0H
  28663. f7 76h 00/EFh 00/D5h 00/BBh 00/A1H
  28664. f8 77h 00/F0h 00/D6h 00/BCh 00/A2H
  28665. Note: only HP-specific codes are listed in this table; see INT 09 for a full
  28666. list of standard scan codes
  28667. SeeAlso: #00006,#00601
  28668. --------b-166F08-----------------------------
  28669. INT 16 - HP Vectra EX-BIOS - "F16_KBD" - GET KEYBOARD INFORMATION
  28670. AX = 6F08h
  28671. Return: AH = status
  28672. 00h successful
  28673. 02h unsupported (non-HIL, i.e. standard, keyboard)
  28674. BH = HP-HIL address (HP Vectra AT only???)
  28675. BL = HP-HIL ID (HP Vectra AT only???)
  28676. BL = keyboard language (ES/QS/RS only???) (see #00603)
  28677. Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  28678. the driver's address in the HP_VECTOR_TABLE (see INT 6F/AH=00h) may
  28679. be computed as (BH-1)*6 + N, where N is the address of the first
  28680. HP-HIL device driver (see INT 6F/AH=0Ah"F_INQUIRE_FIRST")
  28681. SeeAlso: AX=6F05h,AX=6F09h,INT 6F/AH=0Ah"F_INQUIRE_FIRST"
  28682. (Table 00603)
  28683. Values for HP HIL keyboard language code:
  28684. 00h reserved
  28685. 01h Arabic-French
  28686. 02h Kanji
  28687. 03h Swiss-French
  28688. 04h Portugese
  28689. 05h Arabic
  28690. 06h Hebrew
  28691. 07h Canadian-English
  28692. 08h Turkish
  28693. 09h Greek
  28694. 0Ah Thai
  28695. 0Bh Italian
  28696. 0Ch Hangul (Korean)
  28697. 0Dh Dutch
  28698. 0Eh Swedish
  28699. 0Fh German
  28700. 10h Chinese (PRC)
  28701. 11h Chinese (Taiwan)
  28702. 12h Swiss (French ii)
  28703. 13h Spanish
  28704. 14h Swiss (German ii)
  28705. 15h Belgian (Flemish)
  28706. 16h Finnish
  28707. 17h United Kingdom
  28708. 18h French-Canadian
  28709. 19h French-German
  28710. 1Ah Norwegian
  28711. 1Bh French
  28712. 1Ch Danish
  28713. 1Dh Katakana
  28714. 1Eh Latin American Spanish
  28715. 1Fh United States-American
  28716. 20h-FEh reserved
  28717. FFh non-HP keyboard (IBM AT keyboard and IBM Enhanced keyboard)
  28718. --------b-166F09-----------------------------
  28719. INT 16 - HP Vectra EX-BIOS - "F16_KBD_RESET" - RESET KEYBOARD TO DEFAULTS
  28720. AX = 6F09h
  28721. Return: AH = 00h (successful)
  28722. Desc: reset all keyboard mappings to their default translators, and reset
  28723. typematic values to their defaults
  28724. Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
  28725. SeeAlso: AX=6F04h,AX=6F07h,AX=6F08h
  28726. --------b-166F0A-----------------------------
  28727. INT 16 - HP Vectra ES/QS/RS EX-BIOS - READ PROCESSOR SPEED
  28728. AX = 6F0Ah
  28729. Return: AH = 00h (successful)
  28730. BX = speed code
  28731. 0Bh for low speed (see #00604)
  28732. 12h for medium speed (see #00604)
  28733. 0Ch for high speed (see #00604)
  28734. Note: supported by ES, QS, and RS series of HP Vectras
  28735. SeeAlso: AX=6F00h
  28736. (Table 00604)
  28737. Values for HP Vetra CPU speed:
  28738. Vectra Low Medium High
  28739. ES 8 MHz - 8 MHz
  28740. ES/12 8 MHz - 12 MHz
  28741. QS/16, RS/16 8 MHz - 16 MHz
  28742. QS/16S 8 MHz - 16 MHz
  28743. QS/20, RS/20 8 MHz - 20 MHz
  28744. RS/20C 5 MHz 10 MHz 20 MHz
  28745. RS/25C 5 MHz 12.5 MHz 25 MHz
  28746. --------b-166F0B-----------------------------
  28747. INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO LOW
  28748. AX = 6F0Bh
  28749. Return: AH = 00h (successful)
  28750. Notes: see AX=6F0Ah for speed definitions
  28751. supported by ES, QS, and RS series of HP Vectras
  28752. SeeAlso: AX=6F00h,AX=6F0Ah
  28753. --------b-166F0C-----------------------------
  28754. INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO HIGH
  28755. AX = 6F0Ch
  28756. Return: AH = 00h (successful)
  28757. Notes: see AX=6F0Ah for speed definitions
  28758. supported by ES, QS, and RS series of HP Vectras
  28759. SeeAlso: AX=6F00h,AX=6F0Ah
  28760. --------b-166F0D-----------------------------
  28761. INT 16 - HP Vectra ES/QS/RS EX-BIOS - GET HIL Extended BIOS INTERRUPT NUMBER
  28762. AX = 6F0Dh
  28763. Return: AH = interrupt number (default 6Fh, 02h means 6Fh as well)
  28764. Notes: supported by ES, QS, and RS series of HP Vectras
  28765. called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL
  28766. input system
  28767. SeeAlso: AX=6F00h,AX=6F0Eh,INT 6F/AH=00h"HP Vectra",INT 6F/AH=0Ah"HP"
  28768. --------b-166F0E-----------------------------
  28769. INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET HIL Extended BIOS INTERRUPT NUMBER
  28770. AX = 6F0Eh
  28771. BL = new interrupt number (60h-6Fh,78h-7Fh)
  28772. Return: AH = status (00h = successful)
  28773. Desc: allows the HIL Extended BIOS software to use a non-default interrupt
  28774. number in case of an interrupt conflict with another application
  28775. Notes: supported by ES, QS, and RS series of HP Vectras
  28776. called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL
  28777. input system
  28778. SeeAlso: AX=6F00h,AX=6F0Dh,INT 6F/AH=00h"HP",INT 6F/AH=0Ah"HP"
  28779. --------b-166F0F-----------------------------
  28780. INT 16 - HP Vectras RS/20C and RS/25C - ENABLE MEMORY CACHING
  28781. AX = 6F0Fh
  28782. Return: AH = status
  28783. 00h successful
  28784. FEh cache subsystem is bad
  28785. SeeAlso: AX=6F00h,AX=6F10h,AX=6F11h
  28786. --------b-166F10-----------------------------
  28787. INT 16 - HP Vectras RS/20C and RS/25C - DISABLE MEMORY CACHING
  28788. AX = 6F10h
  28789. Return: AH = 00h (successful)
  28790. SeeAlso: AX=6F00h,AX=6F0Fh,AX=6F11h
  28791. --------b-166F11-----------------------------
  28792. INT 16 - HP Vectras RS/20C and RS/25C - GET MEMORY CACHING STATE
  28793. AX = 6F11h
  28794. Return: AH = 00h (successful)
  28795. AL bit 0 = cache state
  28796. 0 cache disabled
  28797. 1 cache enabled
  28798. SeeAlso: AX=6F00h,AX=6F0Fh,AX=6F10h
  28799. --------b-166F12-----------------------------
  28800. INT 16 - HP Vectras RS/20C and RS/25C - SET PROCESSOR SPEED TO MEDIUM
  28801. AX = 6F12h
  28802. Return: AH = 00h (successful)
  28803. Note: see AX=6F0Ah for speed definitions
  28804. SeeAlso: AX=6F00h,AX=6F0Ah
  28805. --------K-1670-------------------------------
  28806. INT 16 - FAKEY.COM - INSTALLATION CHECK
  28807. AH = 70h
  28808. Return: AX = 1954h if installed
  28809. Program: FAKEY is a keystroke faking utility by System Enhancement Associates
  28810. --------K-1671-------------------------------
  28811. INT 16 - FAKEY.COM - PUSH KEYSTROKES
  28812. AH = 71h
  28813. CX = number of keystrokes
  28814. DS:SI -> array of words containing keystrokes to be returned by AH=00h
  28815. Program: FAKEY is a keystroke faking utility by System Enhancement Associates
  28816. SeeAlso: AH=05h,AH=72h
  28817. --------K-1672-------------------------------
  28818. INT 16 - FAKEY.COM - CLEAR FAKED KEYSTROKES
  28819. AH = 72h
  28820. Program: FAKEY is a keystroke faking utility by System Enhancement Associates
  28821. SeeAlso: AH=71h
  28822. --------K-1673-------------------------------
  28823. INT 16 - FAKEY.COM - PLAY TONES
  28824. AH = 73h
  28825. CX = number of tones to play
  28826. DS:SI -> array of tones (see #00605)
  28827. Program: FAKEY is a keystroke faking utility by System Enhancement Associates
  28828. SeeAlso: INT 15/AX=1019h
  28829. Format of FAKEY.COM tone array entries:
  28830. Offset Size Description (Table 00605)
  28831. 00h WORD divisor for timer channel 2
  28832. 02h WORD duration in clock ticks
  28833. --------i-167463-----------------------------
  28834. INT 16 U - FastJuice - INSTALLATION CHECK
  28835. AX = 7463h ("tc")
  28836. Return: AX = 5443h ("TC") if installed
  28837. Program: FastJuice is a resident battery-power monitor by SeaSide Software
  28838. SeeAlso: AX=6A6Bh
  28839. --------R-1675-------------------------------
  28840. INT 16 - pcANYWHERE III - SET TICK COUNT FOR SCANNING
  28841. AH = 75h
  28842. AL = number of ticks between checks for new screen changes
  28843. --------R-1676-------------------------------
  28844. INT 16 - pcANYWHERE III - SET ERROR CHECKING TYPE
  28845. AH = 76h
  28846. AL = error checking type
  28847. 00h none
  28848. 01h fast
  28849. 02h slow
  28850. --------R-1677-------------------------------
  28851. INT 16 - pcANYWHERE III - LOG OFF
  28852. AH = 77h
  28853. AL = mode
  28854. 00h wait for another call
  28855. 01h leave in Memory Resident Mode
  28856. 02h leave in Automatic Mode
  28857. FFh leave in current operating mode
  28858. --------U-167761-----------------------------
  28859. INT 16 - WATCH.COM v2.x-v3.0 - INSTALLATION CHECK
  28860. AX = 7761h ('wa')
  28861. Return: AX = 5741h ('WA') if installed
  28862. Note: WATCH.COM is part of the "TSR" package by Kim Kokkonen
  28863. SeeAlso: INT 21/AX=7761h
  28864. --------U-167788BX7789-----------------------
  28865. INT 16 - PC Magazine PUSHDIR.COM - INSTALLATION CHECK
  28866. AX = 7788h
  28867. BX = 7789h
  28868. DS:SI -> signature "PUSHDIR VERSION 1.0"
  28869. Return: AX = 7789h if installed and signature correct
  28870. BX = 7788h
  28871. SI destroyed
  28872. --------R-1679-------------------------------
  28873. INT 16 - pcANYWHERE III - CHECK STATUS
  28874. AH = 79h
  28875. Return: AX = status
  28876. FFFFh if resident and active
  28877. FFFEh if resident but not active
  28878. FFFDh if in Memory Resident mode
  28879. FFFCh if in Automatic mode
  28880. other value if not resident
  28881. SeeAlso: AX=7B00h,INT 21/AX=2B44h
  28882. --------R-167A-------------------------------
  28883. INT 16 - pcANYWHERE III - CANCEL SESSION
  28884. AH = 7Ah
  28885. --------R-167B00-----------------------------
  28886. INT 16 - pcANYWHERE III - SUSPEND
  28887. AX = 7B00h
  28888. SeeAlso: AH=79h,AX=7B01h
  28889. --------R-167B01-----------------------------
  28890. INT 16 - pcANYWHERE III - RESUME
  28891. AX = 7B01h
  28892. SeeAlso: AH=79h,AX=7B00h
  28893. --------R-167C-------------------------------
  28894. INT 16 - pcANYWHERE III - GET PORT CONFIGURATION
  28895. AH = 7Ch
  28896. Return: AH = port number
  28897. AL = baud rate (see #00606)
  28898. SeeAlso: AX=7B00h,AH=7Eh
  28899. (Table 00606)
  28900. Values for pcANYWHERE III baud rate:
  28901. 00h 50 baud
  28902. 01h 75 baud
  28903. 02h 110 baud
  28904. 03h 134.5 baud
  28905. 04h 150 baud
  28906. 05h 300 baud
  28907. 06h 600 baud
  28908. 07h 1200 baud
  28909. 08h 1800 baud
  28910. 09h 2000 baud
  28911. 0Ah 2400 baud
  28912. 0Bh 4800 baud
  28913. 0Ch 7200 baud
  28914. 0Dh 9600 baud
  28915. 0Eh 19200 baud
  28916. SeeAlso: #00309
  28917. --------R-167D-------------------------------
  28918. INT 16 - pcANYWHERE III - GET/SET TERMINAL PARAMETERS
  28919. AH = 7Dh
  28920. AL = subfunction
  28921. 00h set terminal parameters
  28922. 01h get terminal parameters
  28923. 02h get configuration header and terminal parameters
  28924. DS:CX -> terminal parameter block
  28925. SeeAlso: AH=7Ch,AH=7Eh
  28926. --------R-167E-------------------------------
  28927. INT 16 - pcANYWHERE III - COMMUNICATIONS I/O THROUGH PORT
  28928. AH = 7Eh
  28929. AL = subfunction
  28930. 01h port input status
  28931. Return AX = 0 if no characer ready,
  28932. AX = 1 if character ready
  28933. 02h port input character
  28934. Return AL = received character
  28935. 03h port output character in CX
  28936. 11h hang up phone
  28937. SeeAlso: AH=7Ch
  28938. --------R-167F-------------------------------
  28939. INT 16 - pcANYWHERE III - SET KEYBOARD/SCREEN MODE
  28940. AH = 7Fh
  28941. AL = subfunction
  28942. 00h enable remote keyboard only
  28943. 01h enable host keyboard only
  28944. 02h enable both keyboards
  28945. 08h display top 24 lines
  28946. 09h display bottom 24 lines
  28947. 10h Hayes modem
  28948. 11h other modem
  28949. 12h direct connect
  28950. --------U-1680-------------------------------
  28951. INT 16 - MAKEY.COM - INSTALLATION CHECK
  28952. AH = 80h
  28953. Return: AX = 1954h if installed
  28954. Program: MAKEY is a utility by System Enhancement Associates
  28955. --------K-1687-------------------------------
  28956. INT 16 - DK.COM v1.03 - INSTALLATION CHECK
  28957. AH = 87h
  28958. Return: AX = 4A57h ('JW') if installed
  28959. Program: DK.COM is the resident part of a small keyboard macro utility
  28960. by Digital Mechanics.
  28961. --------U-168765BX4321-----------------------
  28962. INT 16 - AT.COM version 8/26/87 - API
  28963. AX = 8765h
  28964. BX = 4321h
  28965. CX = ??? or FFFFh
  28966. if CX = FFFFh
  28967. DX = number of event to remove or FFFFh
  28968. Return: ES:BX -> event record array (see #00607)
  28969. Program: AT.COM is a resident scheduler by Bill Frolik
  28970. Format of AT.COM event record:
  28971. Offset Size Description (Table 00607)
  28972. 00h BYTE in-use flag (00h free, 01h in use, FFh end of array)
  28973. 01h BYTE day of date on which to trigger
  28974. 02h BYTE month of date on which to trigger
  28975. 03h BYTE trigger time, minute
  28976. 04h BYTE trigger time, hour
  28977. 05h WORD offset of command to be executed
  28978. --------K-1692-------------------------------
  28979. INT 16 - KEYB.COM KEYBOARD CAPABILITIES CHECK (not an actual function!)
  28980. AH = 92h
  28981. Return: AH <= 80h if enhanced keyboard functions (AH=10h-12h) supported
  28982. Desc: this function is called by the DOS 3.2 KEYBxx.COM and DOS 5+ KEYB.COM
  28983. to determine the highest supported keyboard function
  28984. Note: many BIOSes (including at least some versions of Phoenix and AMI) will
  28985. destroy AH on return from functions higher than AH=12h, returning
  28986. 12h less than was in AH on entry (due to a chain of DEC/JZ
  28987. instructions)
  28988. SeeAlso: AH=05h"PCjr",AH=A2h,INT 2F/AX=AD80h
  28989. --------U-1699-------------------------------
  28990. INT 16 - SCOUT v5.4 - GET ???
  28991. AH = 99h
  28992. Return: AX = ABCDh
  28993. BX:CX -> ??? (appears to be start of PSP for resident portion)
  28994. Program: Scout is a memory-resident file manager by New-Ware
  28995. SeeAlso: AH=9Eh
  28996. --------U-169E-------------------------------
  28997. INT 16 - SCOUT v5.4 - INSTALLATION CHECK
  28998. AH = 9Eh
  28999. Return: AX = ABCDh if installed
  29000. Program: Scout is a memory-resident file manager by New-Ware
  29001. SeeAlso: AH=99h
  29002. --------K-16A2-------------------------------
  29003. INT 16 - KEYB.COM KEYBOARD CAPABILITIES CHECK (not an actual function!)
  29004. AH = A2h
  29005. Return: AH <= 80h if 122-key keyboard functions (AH=20h-22h) supported
  29006. Desc: this function is called by the DOS 3.2 KEYBxx.COM and DOS 5+ KEYB.COM
  29007. to determine the highest supported keyboard function
  29008. Note: many BIOSes (including at least some versions of Phoenix and AMI) will
  29009. destroy AH on return from functions higher than AH=12h, returning
  29010. 12h less than was in AH on entry (due to a chain of DEC/JZ
  29011. instructions)
  29012. SeeAlso: AH=05h"PCjr",AH=92h,INT 2F/AX=AD80h
  29013. --------V-16AA-------------------------------
  29014. INT 16 - PTxxx.COM - (xxx=CGA,EGA,VGA,HER...) CALL GATE FOR GRAPHICS
  29015. AH = AAh
  29016. Various registers set up by high level language.
  29017. Return: Graphics performed
  29018. Note: PT stands for Paint Tools which is a graphics library for Turbo Pascal,
  29019. Modula 2 and others from DataBiten in Sweden. The library is
  29020. installed as a memory resident driver.
  29021. --------U-16AABBBXEEFF-----------------------
  29022. INT 16 U - JORJ v4.3 - INSTALLATION CHECK
  29023. AX = AABBh
  29024. BX = EEFFh
  29025. Return: AX = EEFFh if installed
  29026. BX = AABBh if installed
  29027. CL = hotkey name (default 6Ah 'j' for Alt-J)
  29028. Program: JORJ is a shareware dictionary with phonetic lookup by Jorj Software
  29029. Co.
  29030. Index: hotkeys;JORJ
  29031. --------K-16AF20BX4B33-----------------------
  29032. INT 16 - K3PLUS v6.00+ (API v2.0+) - GET EXTENDED BUFFER STATE
  29033. AX = AF20h
  29034. BX = 4B33h ('K3')
  29035. Return: AX = K3 version (same as returned in BX by AX=AF4Dh)
  29036. ES:BX -> extended keyboard buffer start
  29037. ES:DX -> extended keyboard buffer end
  29038. ES:SI -> next keystroke
  29039. ES:DI -> last keystroke in buffer
  29040. CX = number of keystrokes in buffer
  29041. Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C.
  29042. Frinke, originally based on the K3 extended German keyboard driver
  29043. by Martin Gerdes published in c't magazine in 1988
  29044. Note: this function replaces the identical function AH=20h"K3"
  29045. SeeAlso: AH=20h"K3",AX=AF25h,AX=AF4Dh,AX=AF50h,INT 2F/AX=ED58h
  29046. --------K-16AF25BX4B33-----------------------
  29047. INT 16 - K3PLUS v6.00+ (API v2.0+) - COPY INTO EXTENDED BUFFER
  29048. AX = AF25h
  29049. BX = 4B33h ('K3')
  29050. CX = number of keystrokes to copy
  29051. ES:SI -> buffer containing keystrokes
  29052. Return: CF clear if successful
  29053. CF set on error (i.e. buffer full)
  29054. CX = number of keystrokes NOT transferred
  29055. ES:SI -> first keystroke not transferred
  29056. Note: this function replaces the identical function AH=25h"K3"
  29057. SeeAlso: AH=25h"K3",AX=AF20h,AX=AF4Dh,AX=AF50h,INT 2F/AX=D44Fh/BX=0001h
  29058. --------K-16AF4DBX4B33-----------------------
  29059. INT 16 - K3PLUS v6.00+ (API v2.0+) - GET VERSION INFORMATION
  29060. AX = AF4Dh
  29061. BX = 4B33h ('K3')
  29062. Return: AL = 50h if installed
  29063. BX = K3 version
  29064. DX = API version
  29065. ES:CX -> K3 structure (version-dependent) (see #00608)
  29066. Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C.
  29067. Frinke, originally based on the K3 extended German keyboard driver
  29068. by Martin Gerdes published in c't magazine in 1988
  29069. SeeAlso: AX=AF20h,AX=AF50h,AX=AF80h,AX=AF82h/BX=4B33h,INT 2F/AX=D44Fh/BX=0000h
  29070. SeeAlso: INT 2F/AX=ED58h
  29071. Index: installation check;K3PLUS
  29072. Format of internal K3 structure:
  29073. Offset Size Description (Table 00608)
  29074. 00h 3 BYTEs signature "K3$"
  29075. 03h BYTE length of structure, including this byte and signature
  29076. 04h WORD compiler switch option flags A (see #00609)
  29077. 06h WORD compiler switch option flags B (see #00610)
  29078. 08h BYTE internal flags A (see #00611)
  29079. 09h BYTE internal flags B (see #00612)
  29080. 0Ah WORD DOS version recorded at startup
  29081. 0Ch WORD "ActTypeSpeed"
  29082. 0Eh WORD last Keyboard-ID sent
  29083. 41ABh translated, 83ABh native (pass-through)
  29084. 10h WORD offset of K3TAB Special
  29085. 12h WORD offset of K3TAB German
  29086. 14h WORD offset of K3TAB Alt
  29087. 16h WORD offset of K3TAB AltGr
  29088. 18h WORD offset of K3TAB Ctrl
  29089. 1Ah WORD offset of K3TAB NPad
  29090. 1Ch WORD offset of K3TAB CtrlNPad
  29091. 1Eh WORD offset of K3TAB AltNPad
  29092. 20h WORD offset of K3TAB ApoTbl or 0000h
  29093. 22h WORD offset of K3TAB UmlautTbl or 0000h
  29094. 24h WORD offset of K3TAB UmlautTblExp or 0000h
  29095. 26h WORD length of video mode table
  29096. 28h WORD offset of VidMdTbl or 0000h
  29097. 2Ah BYTE '$' end marker
  29098. Bitfields for K3PLUS compiler switch option flags A:
  29099. Bit(s) Description (Table 00609)
  29100. 15 GuINT16Fct2 (general use of INT 16 function 2)
  29101. 14 Int15df (INT 15 has to be predefined)
  29102. 13 GuAltNP (general use of Alt Numpad)
  29103. 12 SupAT (ATs+ supported)
  29104. 11 GuINT16Fct3 (general use of INT 16 function 3)
  29105. 10 GuINT16Ret (general use of INT16 bad function return)
  29106. 9-8 Layout (0-2, 3 reserved; 0=PC, 1=AT, 2=MF)
  29107. 7 ForceMF (force MF decode without read-ID)
  29108. 6 KXlate (translate keys for special keyboard)
  29109. 5 UmlautX (umlaut translation capability included)
  29110. 4 ApoX (translate apostrophe)
  29111. 3 DoINT16 (INT 16 handler included)
  29112. 2 UseCC (CopyCursor included)
  29113. 1-0 UseEB
  29114. 0=no extended keystroke buffer, 1=reserve mem, 2=use PSP, 3=reserved
  29115. Bitfields for K3 compiler switch option flags B:
  29116. Bit(s) Description (Table 00610)
  29117. 15-11 reserved (0)
  29118. 10 CtrlSeq (Ctrl macro capability included)
  29119. 9-8 SupINT16fct55FE
  29120. 6 DoInstallCheck (check for double installation)
  29121. 5 SupINT16fct5PcJr (INT 16/AH=05h"PCjr" supported)
  29122. 4 SendOut (sound and message output supported)
  29123. 3 SupInt16fct5500 (INT 16/AX=5500h supported)
  29124. 2 GuINT15Fct4F (calls to INT 15/AH=4Fh supported)
  29125. 1-0 UseBufferStart (0=use standard area, 1=set standard area,
  29126. 2=use internal indexes, 3=reserved)
  29127. Bitfields for K3 internal flags A:
  29128. Bit(s) Description (Table 00611)
  29129. 7 DoingUmlautExp
  29130. 6 CallINT15fct4F
  29131. 5 Beep1 (requires SendOut set in option flags B)
  29132. 4 ATflag (set for AT, 386, PS/2 Models 50-80)
  29133. 3 XTflag (set for PC, PC/XT, Micromint PC, Pencock PC, PS/2 Model 30)
  29134. 2 KeyClick
  29135. 1 UmlautExp
  29136. 0 UmlautTrans
  29137. Bitfields for K3 internal flags B:
  29138. Bit(s) Description (Table 00612)
  29139. 7-5 reserved
  29140. 4 TranslateE0 enabled
  29141. 3 Boot enabled
  29142. 2 PrintScreen enabled
  29143. 1 Break enabled
  29144. 0 ApoPendingBeep
  29145. --------K-16AF50BX4B33-----------------------
  29146. INT 16 - K3PLUS v6.00+ (API v2.0+) - CHECK IF FUNCTION SUPPORTED
  29147. AX = AF50h
  29148. BX = 4B33h ('K3')
  29149. CH = function
  29150. 00h get function flags
  29151. CL = 00h
  29152. Return: CX = supported function flags (see #00613)
  29153. nonzero reserved for extensions
  29154. SeeAlso: AX=AF20h,AX=AF4Dh,AX=AF51h,AX=AF80h
  29155. Bitfields for K3PLUS supported function list:
  29156. Bit(s) Description (Table 00613)
  29157. 0 function 4Dh supported
  29158. 1 function 50h supported
  29159. 2-3 reserved (0)
  29160. 4 function 20h supported
  29161. 5 function 25h supported
  29162. 6 function 51h supported
  29163. 7 reserved (0)
  29164. 8 function 80h supported
  29165. 9 function 81h supported
  29166. 10 function 82h supported
  29167. 11-15 reserved (0)
  29168. --------K-16AF51BX4B33-----------------------
  29169. INT 16 - K3PLUS v6.00+ (API v2.00+) - SET OPTIONS
  29170. AX = AF51h
  29171. BX = 4B33h ('K3')
  29172. CX = switches
  29173. Return: AL = status
  29174. 00h done
  29175. CX = previous switch settings
  29176. 01h switch not supported
  29177. FFh other error
  29178. SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h
  29179. --------K-16AF80BX4B33-----------------------
  29180. INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 09h VECTOR
  29181. AX = AF80h
  29182. BX = 4B33h ('K3')
  29183. Return: AL = status
  29184. 00h not supported
  29185. 81h if successful
  29186. ES:CX -> original INT 09 handler
  29187. SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF81h,AX=AF82h
  29188. --------K-16AF81BX4B33-----------------------
  29189. INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 16h HANDLER
  29190. AX = AF81h
  29191. BX = 4B33h ('K3')
  29192. Return: AL = status
  29193. 00h not supported
  29194. 82h if successful
  29195. ES:CX -> original INT 16 handler
  29196. SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF82h
  29197. --------K-16AF82BX4B33-----------------------
  29198. INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 10h HANDLER
  29199. AX = AF82h
  29200. BX = 4B33h ('K3')
  29201. Return: AL = status
  29202. 00h not supported
  29203. 83h if successful
  29204. ES:CX -> original INT 10 handler
  29205. Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C.
  29206. Frinke, originally based on the K3 extended German keyboard driver
  29207. by Martin Gerdes published in c't magazine in 1988
  29208. SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF81h,INT 2F/AX=ED58h
  29209. --------m-16B0B1-----------------------------
  29210. INT 16 - VGARAM v1.00 - INSTALLATION CHECK
  29211. AX = B0B1h
  29212. ES:DI -> 6 byte signature "VGARAM"
  29213. Return: AX = B1B0h if installed,
  29214. DS:BX -> VGARAM Status byte: 0 = OFF, 1 = ON
  29215. Program: VGARAM is a utility by Brett Warthen which makes VGA memory which is
  29216. not used in text modes available for DOS
  29217. --------K-16CA--BX736B-----------------------
  29218. INT 16 - CtrlAlt Associates STACKEY.COM v3.00 - API
  29219. AH = CAh
  29220. BX = 736Bh ("sk")
  29221. CX = 736Bh
  29222. AL = function
  29223. 00h installation check
  29224. Return: DX = words available in keyboard buffer
  29225. 01h place keystroke in buffer
  29226. DX = keystroke (DH = scan code, DL = ASCII character)
  29227. Return: DX = words available in keyboard buffer
  29228. FFFFh on error
  29229. 02h flush STACKEY and BIOS keyboard buffers
  29230. Return: AX = CAFFh if installed
  29231. BX = segment of resident code
  29232. CX = STACKEY version (CH = major, CL = minor)
  29233. Program: STACKEY is a shareware keyboard-input faking TSR
  29234. Index: installation check;STACKEY
  29235. --------V-16CA00BX6570-----------------------
  29236. INT 16 - CtrlAlt Associates EGAPAL.COM v1.00 - INSTALLATION CHECK
  29237. AX = CA00h
  29238. BX = 6570h ("ep")
  29239. CX = 6570h
  29240. Return: AX = CAFFh if installed
  29241. BX = segment of resident code
  29242. CX = ??? (0090h)
  29243. Program: EGAPAL is a TSR supplied with STACKEY which makes EGA palette
  29244. settings permanent across mode switches
  29245. SeeAlso: AX=CA00h/BX=7670h
  29246. --------V-16CA00BX7670-----------------------
  29247. INT 16 - CtrlAlt Associates VGAPAL.COM v1.00 - INSTALLATION CHECK
  29248. AX = CA00h
  29249. BX = 7670h ("vp")
  29250. CX = 7670h
  29251. Return: AX = CAFFh if installed
  29252. BX = segment of resident code
  29253. CX = ??? (0090h)
  29254. Program: VGAPAL is a TSR supplied with STACKEY which makes VGA palette
  29255. settings permanent across mode switches
  29256. SeeAlso: AX=CA00h/BX=6570h
  29257. --------U-16CB00-----------------------------
  29258. INT 16 - PUPClip v1.12+ - INSTALLATION CHECK
  29259. AX = CB00h
  29260. Return: BX = 4342h if installed
  29261. AX = version (AH = major version, AL = BCD minor version)
  29262. Program: PUPClip is the freeware PopUP Clipboard for DOS and Windows DOS
  29263. sessions by SkullC0DEr
  29264. SeeAlso: AX=CB01h,AX=CB02h,AX=CB03h,AX=CB04h,AX=CB05h,AX=CB06h,AX=CB08h
  29265. SeeAlso: INT 2F/AX=1701h
  29266. --------U-16CB01-----------------------------
  29267. INT 16 - PUPClip v1.12+ - GET CLIPBOARD CURSOR POSITION
  29268. AX = CB01h
  29269. Return: BL = column (0-79)
  29270. BH = row (0-49)
  29271. SeeAlso: AX=CB00h,AX=CB02h,AX=CB03h
  29272. --------U-16CB02-----------------------------
  29273. INT 16 - PUPClip v1.12+ - SET CLIPBOARD CURSOR POSITION
  29274. AX = CB02h
  29275. BL = column (0-79)
  29276. BH = row (0-49)
  29277. Return: CF clear if successful
  29278. CF set on error (invalid position)
  29279. SeeAlso: AX=CB00h,AX=CB01h,AX=CB04h
  29280. --------U-16CB03-----------------------------
  29281. INT 16 - PUPClip v1.12+ - GET CHARACTER FROM CURRENT CLIPBOARD CURSOR POSITION
  29282. AX = CB03h
  29283. Return: BL = ASCII character at current position
  29284. SeeAlso: AX=CB00h,AX=CB02h,AX=CB04h,INT 2F/AX=1705h
  29285. --------U-16CB04-----------------------------
  29286. INT 16 - PUPClip v1.12+ - WRITE CHARACTER TO CURRENT CLIPBOARD CURSOR POSITION
  29287. AX = CB04h
  29288. BL = ASCII character to store
  29289. SeeAlso: AX=CB00h,AX=CB02h,AX=CB03h,AX=CB05h,INT 2F/AX=1703h
  29290. --------U-16CB05-----------------------------
  29291. INT 16 - PUPClip v1.12+ - CLEAR CLIPBOARD CONTENTS
  29292. AX = CB05h
  29293. Return: nothing
  29294. SeeAlso: AX=CB00h,AX=CB04h,AX=CB06h,AX=CB07h,INT 2F/AX=1702h
  29295. --------U-16CB06-----------------------------
  29296. INT 16 - PUPClip v1.12+ - SCROLL UP CLIPBOARD CONTENTS
  29297. AX = CB06h
  29298. Return: nothing
  29299. SeeAlso: AX=CB00h,AX=CB05h,AX=CB07h
  29300. --------U-16CB07-----------------------------
  29301. INT 16 - PUPClip v1.12+ - SCROLL DOWN CLIPBOARD CONTENTS
  29302. AX = CB07h
  29303. Return: nothing
  29304. SeeAlso: AX=CB00h,AX=CB05h,AX=CB06h
  29305. --------U-16CB08-----------------------------
  29306. INT 16 - PUPClip v1.12+ - POP UP
  29307. AX = CB08h
  29308. Return: CF clear if successful
  29309. CF set on error (unsupported video mode)
  29310. SeeAlso: AX=CB00h
  29311. --------U-16D724CX00CB-----------------------
  29312. INT 16 U - APCAL v3.20 - GET ???
  29313. AX = D724h
  29314. CX = 00CBh
  29315. Return: AX = 0000h
  29316. BX = 0000h
  29317. DX:CX -> ??? or 0000h:0000h
  29318. Program: APCAL is an optionally-resident shareware appointment calendar by
  29319. Gamma Software
  29320. SeeAlso: AX=3577h,AX=D724h/CX=00CCh,AX=D724h/CX=00CDh
  29321. --------U-16D724CX00CC-----------------------
  29322. INT 16 U - APCAL v3.20 - GET ???
  29323. AX = D724h
  29324. CX = 00CCh
  29325. Return: AX = 0000h
  29326. BX = 0000h
  29327. DX:CX -> ??? (apparently an internal data area)
  29328. SeeAlso: AX=D724h/CX=00CBh,AX=D724h/CX=00CDh
  29329. --------U-16D724CX00CD-----------------------
  29330. INT 16 U - APCAL v3.20 - GET ???
  29331. AX = D724h
  29332. CX = 00CDh
  29333. Return: AX = ??? (5345h seen)
  29334. SeeAlso: AX=D724h/CX=00CBh,AX=D724h/CX=00CCh
  29335. --------v-16DD--------------------------
  29336. INT 16 - VIRUS - "Frumble" - INSTALLATION CHECK
  29337. AH = DDh
  29338. Return: AL = DDh if resident
  29339. SeeAlso: INT 13/AX=FD50h,INT 21/AX=010Fh,INT 21/AX=0B56h
  29340. --------s-16DFDF-----------------------------
  29341. INT 16 U - Corel PowerSCSI - FDAUDIO.COM - INSTALLATION CHECK
  29342. AX = DFDFh
  29343. Return: ES:DI -> ASCII signature "FDAUDIO/CD" followed by ASCII date, i.e.
  29344. "06/18/93" if installed
  29345. --------b-16E000-----------------------------
  29346. INT 16 - AMI BIOS - BIOS-FLASH Interface - GET VERSION NUMBER
  29347. AX = E000h
  29348. Return: CF clear if successful
  29349. AL = FAh
  29350. BX = version number (BCD) (0200h = v2.00)
  29351. CF set on error (not implemented)
  29352. Notes: this interface is available on AMI BIOSes built from AMI core version
  29353. 8/8/93 (HiFlex BIOS) or 11/15/93 (WinBIOS) or later
  29354. the "Meningitis" virus uses this API when attacking a system equipped
  29355. with an AMI BIOS; it is supposedly able to write itself into the
  29356. Flash ROM and thus make itself part of the BIOS
  29357. SeeAlso: AX=E001h,AX=E004h,AX=E006h,AX=E008h,AX=E00Ah,AX=E00Bh,AX=E0FFh
  29358. --------b-16E001-----------------------------
  29359. INT 16 - AMI BIOS - BIOS-FLASH Interface - GET CHIPSET SAVE/RESTORE SIZE
  29360. AX = E001h
  29361. Return: CF clear if successful
  29362. AL = FAh
  29363. BX = number of bytes required to save chipset configuration
  29364. CF set on error
  29365. SeeAlso: AX=E000h,AX=E002h,AX=E003h
  29366. --------b-16E002-----------------------------
  29367. INT 16 - AMI BIOS - BIOS-FLASH Interface - SAVE CHIPSET STATUS & PREPARE CHPSET
  29368. AX = E002h
  29369. ES:DI -> buffer for storing chipset status
  29370. Return: CF clear if successful
  29371. AL = FAh
  29372. CF set on error
  29373. SeeAlso: AX=E000h,AX=E001h,AX=E003h
  29374. --------b-16E003-----------------------------
  29375. INT 16 - AMI BIOS - BIOS-FLASH Interface - RESTORE CHIPSET STATUS
  29376. AX = E003h
  29377. ES:DI -> buffer in which chipset status was previously stored
  29378. Return: CF clear if successful
  29379. AL = FAh
  29380. CF set on error
  29381. SeeAlso: AX=E000h,AX=E001h,AX=E002h
  29382. --------b-16E004-----------------------------
  29383. INT 16 - AMI BIOS - BIOS-FLASH Interface - LOWER PROGRAMMING VOLTAGE Vpp
  29384. AX = E004h
  29385. Return: CF clear if successful
  29386. AL = FAh
  29387. CF set on error
  29388. Note: this function does not return until the voltage level stabilizes
  29389. SeeAlso: AX=E000h,AX=E005h,AX=E006h
  29390. --------b-16E005-----------------------------
  29391. INT 16 - AMI BIOS - BIOS-FLASH Interface - RAISE PROGRAMMING VOLTAGE Vpp
  29392. AX = E005h
  29393. Return: CF clear if successful
  29394. AL = FAh
  29395. CF set on error
  29396. Note: this function does not return until the voltage level stabilizes
  29397. SeeAlso: AX=E000h,AX=E004h,AX=E007h
  29398. --------b-16E006-----------------------------
  29399. INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH WRITE PROTECT
  29400. AX = E006h
  29401. Return: CF clear if successful
  29402. AL = FAh
  29403. CF set on error
  29404. Note: this function performs any delay required to allow the Flash ROM to
  29405. stabilize in the write-protected state
  29406. SeeAlso: AX=E000h,AX=E004h,AX=E007h
  29407. --------b-16E007-----------------------------
  29408. INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH WRITE ENABLE
  29409. AX = E007h
  29410. Return: CF clear if successful
  29411. AL = FAh
  29412. CF set on error
  29413. Note: this function performs any delay required to allow the Flash ROM to
  29414. stabilize in the write-enabled state
  29415. SeeAlso: AX=E000h,AX=E005h,AX=E006h,AX=E008h
  29416. --------b-16E008-----------------------------
  29417. INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH SELECT
  29418. AX = E008h
  29419. Return: CF clear if successful
  29420. AL = FAh
  29421. CF set on error
  29422. Desc: select the Flash ROM if the system contains both EPROM and Flash ROM
  29423. Note: this function performs any delay required to allow the Flash ROM to
  29424. stabilize in the selected state; if no EPROM is present, this
  29425. function always returns successfully
  29426. SeeAlso: AX=E000h,AX=E007h,AX=E009h
  29427. --------b-16E009-----------------------------
  29428. INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH DE-SELECT
  29429. AX = E009h
  29430. Return: CF clear if successful
  29431. AL = FAh
  29432. CF set on error
  29433. Desc: select the EPROM if the system contains both EPROM and Flash ROM
  29434. Note: this function performs any delay required to allow the Flash ROM to
  29435. stabilize in the de-selected state; if no EPROM is present, this
  29436. function always returns successfully
  29437. SeeAlso: AX=E000h,AX=E006h,AX=E008h
  29438. --------b-16E00A-----------------------------
  29439. INT 16 - AMI BIOS - BIOS-FLASH Interface - VERIFY ALLOCATED MEMORY
  29440. AX = E00Ah
  29441. BX = number of paragraphs
  29442. ES = starting segment of memory
  29443. Return: CF clear if successful
  29444. AL = FAh
  29445. CF set on error
  29446. Desc: determine whether the specified memory may be used for flash
  29447. programming
  29448. Note: always returns error if BX is zero on entry
  29449. SeeAlso: AX=E000h,AX=E00Bh
  29450. --------b-16E00B-----------------------------
  29451. INT 16 - AMI BIOS - BIOS-FLASH Interface - SAVE INTERNAL CACHE STATUS
  29452. AX = E00Bh
  29453. ES:DI -> buffer for internal cache status (minimum 4Kbytes)
  29454. Return: CF clear if successful
  29455. AL = FAh
  29456. CF set on error
  29457. Note: always returns error if the hardware does not contain internal
  29458. cache or this call is made in protected mode
  29459. SeeAlso: AX=E000h,AX=E00Ah,AX=E00Ch
  29460. --------b-16E00C-----------------------------
  29461. INT 16 - AMI BIOS - BIOS-FLASH Interface - RESTORE INTERNAL CACHE STATUS
  29462. AX = E00Ch
  29463. ES:DI -> buffer containing internal cache status (minimum 4Kbytes)
  29464. Return: CF clear if successful
  29465. AL = FAh
  29466. CF set on error
  29467. Note: always returns error if the hardware does not contain internal
  29468. cache or this call is made in protected mode
  29469. SeeAlso: AX=E000h,AX=E00Bh
  29470. --------t-16E0E0-----------------------------
  29471. INT 16 - TurboPower TSRs - ALTERNATE INSTALLATION CHECK
  29472. AX = E0E0h
  29473. Return: AX = 1F1Fh if installed
  29474. DWORD 0040h:00F0h -> last data block in TSR list (see #00615)
  29475. Note: the returned TSR list provides support for communication among TSRs
  29476. built with TurboPower's Turbo Professional and Object Professional
  29477. libraries for Turbo Pascal
  29478. SeeAlso: AX=F0F0h
  29479. --------b-16E0FF-----------------------------
  29480. INT 16 - AMI BIOS - BIOS-FLASH Interface - GENERATE CPU RESET
  29481. AX = E0FFh
  29482. Return: never
  29483. SeeAlso: AX=E000h,INT 14/AH=17h"FOSSIL"
  29484. --------U-16ED--BHED-------------------------
  29485. INT 16 - BORLAND TURBO LIGHTNING - API
  29486. AH = EDh
  29487. BH = EDh
  29488. BL = function
  29489. 00h installation check
  29490. Return: AX = 5205h
  29491. CH = major version
  29492. CL = minor version
  29493. 01h identical to function 00h???
  29494. 02h get resident data segment
  29495. Return: AX = data segment of resident portion
  29496. 03h get resident ???
  29497. Return: AX = offset of some buffer in resident code seg
  29498. 04h redefine auxiliary dictionary
  29499. DS:SI -> counted filename string
  29500. Return: AL = result code
  29501. 05h select active environment
  29502. AL = environment (00h to 0Ch)
  29503. Return: AX = status
  29504. 0000h if OK
  29505. 0001h if out of range
  29506. 06h toggle AutoProof???
  29507. AL = state (00h off, 01h on)
  29508. 07h ???
  29509. 08h ???
  29510. AL = char???
  29511. CX = ???
  29512. DX = ???
  29513. Return: AX = 0, 1 or 2
  29514. 09h ???
  29515. 0Ah ???
  29516. CX = ???
  29517. DX = ???
  29518. Return: AX = ???
  29519. 0Bh check dictionary integrity???
  29520. DS:SI -> counted dictionary filename string
  29521. Return: AX = 0, 40h, 80h
  29522. 0Ch spellcheck string (disk dictionary, possibly RAM dict as well)
  29523. DS:SI -> counted string to check
  29524. Return: AH = 0
  29525. AL = result code
  29526. 00h string found in dictionary
  29527. 20h string begins more than one word
  29528. 40h string not found
  29529. 0Dh set ???
  29530. (sets an internal flag)
  29531. 0Eh spellcheck string (RAM dictionary only)
  29532. DS:SI -> counted string to check
  29533. Return: AH = 00h
  29534. AL = result code
  29535. 00h string found in dictionary
  29536. 01h string not found
  29537. 02h ???
  29538. 0Fh ???
  29539. 10h ???
  29540. Notes: AX in general returns an error code from most functions.
  29541. Index: installation check;Turbo Lightning
  29542. --------U-16EF-------------------------------
  29543. INT 16 - CALCULATOR - INSTALLATION CHECK
  29544. AH = EFh
  29545. Return: AX = 0088h if installed
  29546. Program: CALCULATOR is a shareware popup calculator by Andrzej Brzezinski and
  29547. Marek Kosznik
  29548. --------b-16F0-------------------------------
  29549. INT 16 - Compaq 386 and newer - SET CPU SPEED
  29550. AH = F0h
  29551. AL = speed code (see #00614)
  29552. if AL=09h,
  29553. CX = speed value, 1 (slowest) to 50 (full), 3 ~= 8088
  29554. Note: also supported by some versions of AMI BIOS dated June 1992 or later;
  29555. speed codes 0 or 1 are used for Low Speed, 2 for High Speed
  29556. SeeAlso: AH=F1h,AH=F3h
  29557. (Table 00614)
  29558. Values for speed code:
  29559. 00h equivalent to 6 MHz 80286 (COMMON)
  29560. 01h equivalent to 8 MHz 80286 (FAST)
  29561. 02h full 16 MHz (HIGH)
  29562. 03h toggles between 8 MHz-equivalent and speed set by system board switch
  29563. (AUTO or HIGH)
  29564. 08h full 16 MHz except 8 MHz-equivalent during floppy disk access
  29565. 09h specify speed directly
  29566. --------t-16F0F0-----------------------------
  29567. INT 16 - TurboPower TSRs - INSTALLATION CHECK
  29568. AX = F0F0h
  29569. Return: AX = 0F0Fh if installed
  29570. ES:DI -> last data block in TSR list (see #00615)
  29571. Note: the returned TSR list provides support for communication among TSRs
  29572. built with TurboPower's Turbo Professional and Object Professional
  29573. libraries for Turbo Pascal
  29574. SeeAlso: AX=E0E0h
  29575. Format of TurboPower TSR data block:
  29576. Offset Size Description (Table 00615)
  29577. 00h DWORD pointer to program tag (counted ASCII string)
  29578. 04h WORD interface version number (0400h)
  29579. 06h DWORD pointer to command entry point
  29580. 0Ah DWORD pointer to previous data block (0000h:0000h if none)
  29581. 0Eh DWORD pointer to next data block (0000h:0000h if none)
  29582. ---swappable TSRs only---
  29583. 12h DWORD pointer to swapping data
  29584. 16h DWORD pointer to user data
  29585. more???
  29586. --------b-16F1-------------------------------
  29587. INT 16 - Compaq 386 and newer - READ CURRENT CPU SPEED
  29588. AH = F1h
  29589. Return: AL = speed code (see #00614)
  29590. if AL = 09h, CX = speed code
  29591. Note: also supported by some versions of AMI BIOS dated June 1992 or later
  29592. SeeAlso: AH=F0h,AH=F3h
  29593. --------b-16F2-------------------------------
  29594. INT 16 - Compaq 386 and newer - DETERMINE ATTACHED KEYBOARD TYPE
  29595. AH = F2h
  29596. Return: AL = type
  29597. 00h if 11-bit AT keyboard is in use
  29598. 01h if 9-bit PC keyboard is in use
  29599. AH = 00h (04/08/93 system ROM)
  29600. SeeAlso: MEM 0040h:00C2h
  29601. --------b-16F3-------------------------------
  29602. INT 16 - Compaq 80286s - SET CPU SPEED LIMIT (OVERRIDE JUMPER)
  29603. AH = F3h
  29604. AL = new limit
  29605. 00h limit is 6 Mhz
  29606. 01h limit is 8 Mhz/6 Mhz
  29607. SeeAlso: AH=F0h,AH=F1h
  29608. --------U-16F398-----------------------------
  29609. INT 16 U - NORTON GUIDES - INSTALLATION CHECK
  29610. AX = F398h
  29611. Return: AX = 6A73h ("js")
  29612. BH = BIOS scan code of current hot key
  29613. BL = ASCII code of current hot key
  29614. Note: NG.EXE was written by John Socha
  29615. --------b-16F400-----------------------------
  29616. INT 16 - Compaq Systempro and higher - CACHE CONTROLLER STATUS
  29617. AX = F400h
  29618. Return: AH = E2h (*)
  29619. AL = status
  29620. 00h not present
  29621. 01h enabled
  29622. 02h disabled
  29623. CX = cache memory size
  29624. bit 15: cache size information is NOT valid
  29625. bits 14-0: cache memory size in kilobytes
  29626. DH = cache write technology
  29627. bit 7: cache write information is NOT valid
  29628. bits 6-1: reserved (0)
  29629. bit 0: 0 = Write-through caching
  29630. 1 = Write-back caching
  29631. DL = cache type
  29632. bit 7: cache type information is NOT valid
  29633. bits 6-1: reserved (0)
  29634. bit 0: 0 = Direct mapped
  29635. 1 = Two-way set-associative
  29636. Notes: also supported by some versions of AMI BIOS dated June 1992 or later
  29637. many (most) BIOSes return a modified AH when called for an unsupported
  29638. or non-keyboard function (typically, the highest supported keyboard
  29639. function [normally 12h] is subtracted from the original AH)
  29640. SeeAlso: AX=F401h,AX=F402h
  29641. --------b-16F401-----------------------------
  29642. INT 16 - Compaq Systempro and higher - ENABLE CACHE CONTROLLER
  29643. AX = F401h
  29644. Return: AX = E201h
  29645. Notes: also supported by some versions of AMI BIOS dated June 1992 or later
  29646. many (most) BIOSes return a modified AH when called for an unsupported
  29647. or non-keyboard function (typically, the highest supported keyboard
  29648. function [normally 12h] is subtracted from the original AH)
  29649. SeeAlso: AX=F400h,AX=F402h
  29650. --------b-16F402-----------------------------
  29651. INT 16 - Compaq Systempro and higher - DISABLE CACHE CONTROLLER
  29652. AX = F402h
  29653. Return: AX = E202h
  29654. Notes: also supported by some versions of AMI BIOS dated June 1992 or later
  29655. many (most) BIOSes return a modified AH when called for an unsupported
  29656. or non-keyboard function (typically, the highest supported keyboard
  29657. function [normally 12h] is subtracted from the original AH)
  29658. SeeAlso: AX=F400h,AX=F401h
  29659. --------v-16FA00DX5945-----------------------
  29660. INT 16 U - PC Tools v8+ VSAFE, VWATCH - INSTALLATION CHECK
  29661. AX = FA00h
  29662. DX = 5945h
  29663. Return: CF clear
  29664. DI = 4559h
  29665. BX = BIOS hotkey scancode (default 2F00h) (VSAFE only)
  29666. FFFFh if disabled
  29667. Note: MS-DOS 6.0 bundles VSAFE and VWATCH as part of its virus protection
  29668. SeeAlso: AX=FA05h,INT 13/AH=FAh,INT 21/AH=FAh"VDEFEND",INT 2F/AX=6282h
  29669. --------v-16FA01DX5945-----------------------
  29670. INT 16 U - PC Tools v8+ VSAFE, VWATCH - UNINSTALL
  29671. AX = FA01h
  29672. DX = 5945h
  29673. Return: CF clear if successful
  29674. DI = 4559h
  29675. SeeAlso: AX=FA00h
  29676. --------v-16FA02DX5945-----------------------
  29677. INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET/SET OPTIONS
  29678. AX = FA02h
  29679. DX = 5945h
  29680. BL = new parameter flags (see #00616)
  29681. Return: CF clear
  29682. DI = 4559h
  29683. CL = old value of parameter flags
  29684. Bitfields for VSAFE/VWATCH parameter flags:
  29685. Bit(s) Description (Table 00616)
  29686. 7 Protect executable files
  29687. 6 Protect FD boot sector
  29688. 5 Protect HD boot sector
  29689. 4 Boot sector viruses
  29690. 3 Check executable files
  29691. 2 General write protect
  29692. 1 Resident
  29693. 0 HD Low level format
  29694. --------v-16FA03DX5945-----------------------
  29695. INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET ???
  29696. AX = FA03h
  29697. DX = 5945h
  29698. Return: CF clear
  29699. DI = 4559h
  29700. AX = 0002h
  29701. --------v-16FA04DX5945-----------------------
  29702. INT 16 U - PC Tools v8+ VSAFE - GET HOTKEY DISABLE FLAG
  29703. AX = FA04h
  29704. DX = 5945h
  29705. Return: CF clear
  29706. DI = 4559h
  29707. BL = hotkey disable flag (nonzero if hotkey disabled)
  29708. Note: this function is a NOP under VWATCH, merely returning CF clear/DI=4559h
  29709. SeeAlso: AX=FA00h,AX=FA05h
  29710. --------v-16FA05DX5945-----------------------
  29711. INT 16 U - PC Tools v8+ VSAFE - SET HOTKEY DISABLE FLAG
  29712. AX = FA05h
  29713. DX = 5945h
  29714. BL = new value of hotkey disable flag (nonzero to disable hotkey)
  29715. Return: CF clear
  29716. DI = 4559h
  29717. Note: this function is a NOP under VWATCH, merely returning CF clear/DI=4559h
  29718. SeeAlso: AX=FA00h,AX=FA04h
  29719. --------v-16FA06DX5945-----------------------
  29720. INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET NETWORK DRIVES TEST FLAG
  29721. AX = FA06h
  29722. DX = 5945h
  29723. Return: CF clear
  29724. DI = 4559h
  29725. BL = test status
  29726. 00h don't monitor network drives (default for VWATCH v2.1)
  29727. FFh monitor network drives (default for VSAFE v2.0)
  29728. CL = ??? (only VSAFE 2.0)
  29729. SeeAlso: AX=FA07h
  29730. --------v-16FA07DX5945-----------------------
  29731. INT 16 U - PC Tools v8+ VSAFE, VWATCH - SET NETWORK DRIVES TEST FLAG
  29732. AX = FA07h
  29733. DX = 5945h
  29734. BL = new state
  29735. 00h don't monitor
  29736. 01h monitor network drives
  29737. Return: CF clear
  29738. DI = 4559h
  29739. Note: VWATCH v2.1 (from PC Tools 9.0) returns CF set instead
  29740. SeeAlso: AX=FA00h,AX=FA06h
  29741. --------v-16FA08DX5945-----------------------
  29742. INT 16 U - PC Tools v9+ VWATCH v2.1 - ???
  29743. AX = FA08h
  29744. DX = 5945h
  29745. Return: CF clear
  29746. DI = 4559h
  29747. AX = ??? (0002h)
  29748. BX = version (BH=major, BL=two-digit minor)
  29749. Note: this function is not supported by the PC Tools 9.0 VSAFE v2.0
  29750. SeeAlso: AX=FA00h,AX=FA06h
  29751. --------U-16FE55-----------------------------
  29752. INT 16 U - PC Tools v8+ programs - GET ???
  29753. AX = FE55h
  29754. CX = segment of resident program or 0000h for last loaded
  29755. DX = 0000h
  29756. Return: DX = resident code segment (unchanged if CX=0000h on entry)
  29757. AX = ??? or 0000h
  29758. Note: this call is supported by CPSCHED, CPTASK, DATAMON, DPROTECT, DRIVEMAP,
  29759. and DSKLIGHT beginning in PC Tools v8.0; programs other than CPTASK
  29760. seem to hook it merely to return the same AX as the CPTASK loaded
  29761. prior to them returned
  29762. --------U-16FEA4-----------------------------
  29763. INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - RESET ???
  29764. AX = FEA4h
  29765. Return: nothing
  29766. Note: this function is identical to AX=FFA4h, and is implemented by the same
  29767. code in DESKTOP
  29768. SeeAlso: AX=FFA4h
  29769. --------U-16FEC6-----------------------------
  29770. INT 16 U - PC Tools v7+ CPSCHED - ENABLE/DISABLE CPSCHED API
  29771. AX = FEC6h
  29772. BL = new state (00h enabled, nonzero disabled)
  29773. Return: nothing
  29774. Desc: specify whether CPSCHED API calls other than this one and AX=FE55h will
  29775. be honored
  29776. --------U-16FED3-----------------------------
  29777. INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - ???
  29778. AX = FED3h
  29779. DS:SI -> 92-byte data record for ???
  29780. Return: ???
  29781. Note: this function is identical to AX=FFD3h, and is implemented by the same
  29782. code in DESKTOP
  29783. SeeAlso: AX=FFD3h
  29784. --------U-16FEDC-----------------------------
  29785. INT 16 U - PC Tools v7+ CPSCHED - UNHOOK INTERRUPTS
  29786. AX = FEDCh
  29787. Return: AX,DX destroyed
  29788. Index: uninstall;CPSCHED
  29789. --------U-16FEEFCX0000-----------------------
  29790. INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - INSTALLATION CHECK
  29791. AX = FEEFh
  29792. CX = 0000h
  29793. Return: CX = ABCDh if PC Tools scheduler (CPSCHED or DESKTOP) installed
  29794. BX = segment of resident portion
  29795. DX = (CPSCHED v8.0) resident CS
  29796. Note: this function is identical to AX=FFD3h, and is implemented by the same
  29797. code in DESKTOP
  29798. SeeAlso: AX=FFEFh
  29799. --------U-16FEF1-----------------------------
  29800. INT 16 U - PC Tools v7 only CPSCHED/DESKTOP - ALTERNATE INSTALLATION CHECK
  29801. AX = FEF1h
  29802. BX = ???
  29803. Return: CX = 5555h if PC Tools scheduler (CPSCHED or DESKTOP) installed
  29804. DX = 5555h
  29805. Note: this function is identical to AX=FFD3h, and is implemented by the same
  29806. code in DESKTOP
  29807. SeeAlso: AX=FFF1h
  29808. --------K-16FF-------------------------------
  29809. INT 16 - KEYBOARD - KBUF extensions - ADD KEY TO TAIL OF KEYBOARD BUFFER
  29810. AH = FFh
  29811. DX = scan code
  29812. Return: AL = status
  29813. 00h success
  29814. 01h failure
  29815. Program: KBUF is a keyboard buffer expander by Mark Adler
  29816. SeeAlso: AH=05h
  29817. --------V-16FF-------------------------------
  29818. INT 16 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY ZOOM INTERRUPT
  29819. AH = FFh
  29820. Return: AL = interrupt number to which BIOS keyboard handler has been relocated
  29821. AL+1 = Zoom interrupt number
  29822. BX = hotkey
  29823. Notes: the default interrupts are 60h for keyboard and 61h for Zoom interrupt;
  29824. the default hot key is F10
  29825. not all vendors include the Tseng TSR which supports these functions
  29826. SeeAlso: INT 61/AX=0000h"OPTIMA",INT 61/AX=0005h"OPTIMA"
  29827. Index: hotkeys;OPTIMA 1024 VGA
  29828. ----------16FF--BH00-------------------------
  29829. INT 16 - FREEZE.COM - INSTALLATION CHECK
  29830. AH = FFh
  29831. BH = 00h
  29832. Return: BH = FFh if installed
  29833. Program: FREEZE is a PC Magazine utility
  29834. --------d-16FF70BX0000-----------------------
  29835. INT 16 U - PC Tools v8+ DRIVEMAP - INSTALLATION CHECK
  29836. AX = FF70h
  29837. BX = 0000h
  29838. CX = 4C69h ('Li')
  29839. DX = 6E6Bh ('nk')
  29840. Return: AX = 0000h
  29841. CX = 4350h ('CP')
  29842. DH = major version
  29843. DL = minor version
  29844. Program: DRIVEMAP is a redirector which allows drives on computers connected
  29845. over the parallel or serial ports to appear as local drives
  29846. SeeAlso: AX=FF70h/BX=0001h,AX=FF70h/BX=0002h
  29847. --------d-16FF70BX0001-----------------------
  29848. INT 16 U - PC Tools v8+ DRIVEMAP - ???
  29849. AX = FF70h
  29850. BX = 0001h
  29851. DL = ???
  29852. Return: AX = ???
  29853. DH = ???
  29854. SeeAlso: AX=FF70h/BX=0000h,AX=FF70h/BX=0002h
  29855. --------d-16FF70BX0002-----------------------
  29856. INT 16 U - PC Tools v8+ DRIVEMAP - ???
  29857. AX = FF70h
  29858. BX = 0002h
  29859. CX = ???
  29860. DX = ???
  29861. Return: AX = ??? or FFFEh/FFFFh on error
  29862. DL = ???
  29863. BUG: DRIVEMAP will branch to random locations for BX values other than
  29864. those listed above for v8.0-9.0 because a) the incorrect register is
  29865. range-tested, resulting in BX=0003h-5CD6h being accepted as valid
  29866. function numbers, and b) the conditional which branches on invalid
  29867. function numbers jumps to the following instruction, becoming a NOP
  29868. SeeAlso: INT 2F/AX=9203h"DRIVEMAP"
  29869. Index: installation check;DRIVEMAP
  29870. --------T-16FF80BX0000-----------------------
  29871. INT 16 U - PC Tools v8+ CPTASK - INSTALLATION CHECK
  29872. AX = FF80h
  29873. BX = 0000h
  29874. CX = 0000h
  29875. DX = 0000h
  29876. Return: CX = 5555h if installed
  29877. Program: CPTASK is a task switcher by Central Point Software
  29878. --------T-16FF80BX0001-----------------------
  29879. INT 16 U - PC Tools v8+ CPTASK - GET ???
  29880. AX = FF80h
  29881. BX = 0001h
  29882. ???
  29883. Return: DX:SI -> task list??? (ten entries of 70h bytes in v9.0)
  29884. BX = ??? (PSP segment of resident code???)
  29885. --------T-16FF80BX0002-----------------------
  29886. INT 16 U - PC Tools v8+ CPTASK - GET ???
  29887. AX = FF80h
  29888. BX = 0002h
  29889. Return: DX:SI -> ???
  29890. --------T-16FF80BX0003-----------------------
  29891. INT 16 U - PC Tools v8+ CPTASK - GET ??? FLAGS
  29892. AX = FF80h
  29893. BX = 0003h
  29894. Return: AX = flags (see #00617)
  29895. SeeAlso: AX=FF80h/BX=0004h,AX=FF80h/BX=0006h
  29896. Bitfields for CPTASK flags:
  29897. Bit(s) Description (Table 00617)
  29898. 10 ???
  29899. 13 ???
  29900. 14 ???
  29901. 15 ???
  29902. --------T-16FF80BX0004-----------------------
  29903. INT 16 U - PC Tools v8+ CPTASK - SET ???
  29904. AX = FF80h
  29905. BX = 0004h
  29906. CX = new value of ???
  29907. Return: ???
  29908. Note: this function also sets bit 14 of the flags word returned by
  29909. AX=FF80h/BX=0003h
  29910. --------T-16FF80BX0005-----------------------
  29911. INT 16 U - PC Tools v8+ CPTASK - GET NUMBER OF ACTIVE TASKS???
  29912. AX = FF80h
  29913. BX = 0005h
  29914. Return: AX = number of active tasks???
  29915. --------T-16FF80BX0006-----------------------
  29916. INT 16 U - PC Tools v8+ CPTASK - GET AND CLEAR ??? FLAG
  29917. AX = FF80h
  29918. BX = 0006h
  29919. Return: AX = old state (0000h clear, 0001h set)
  29920. Note: the tested flag is bit 13 of the flags returned by AX=FF80h/BX=0003h
  29921. --------T-16FF80BX0007-----------------------
  29922. INT 16 U - PC Tools v8+ CPTASK - ???
  29923. AX = FF80h
  29924. BX = 0007h
  29925. ES:DI -> ???
  29926. ???
  29927. Return: ???
  29928. --------T-16FF80BX0008-----------------------
  29929. INT 16 U - PC Tools v8+ CPTASK - ???
  29930. AX = FF80h
  29931. BX = 0008h
  29932. ???
  29933. Return: ???
  29934. --------T-16FF80BX0009-----------------------
  29935. INT 16 U - PC Tools v8+ CPTASK - GET ???
  29936. AX = FF80h
  29937. BX = 0009h
  29938. Return: CL = ???
  29939. CH = ??? (01h or 02h)
  29940. --------T-16FF80BX000A-----------------------
  29941. INT 16 U - PC Tools v9+ CPTASK - SET ???
  29942. AX = FF80h
  29943. BX = 000Ah
  29944. DS:SI -> 128-byte buffer containing ???
  29945. --------T-16FF80BX000B-----------------------
  29946. INT 16 U - PC Tools v9+ CPTASK - SET ???
  29947. AX = FF80h
  29948. BX = 000Bh
  29949. DX = index of ??? task (1-10)
  29950. --------T-16FF80BX000C-----------------------
  29951. INT 16 U - PC Tools v9+ CPTASK - SET IDLE??? DELAY
  29952. AX = FF80h
  29953. BX = 000Ch
  29954. CX = new delay time in minutes
  29955. --------T-16FF80BX4350-----------------------
  29956. INT 16 U - PC Tools v8+ CPTASK - UNINSTALL
  29957. AX = FF80h
  29958. BX = 4350h ('CP')
  29959. CX = 5354h ('ST')
  29960. Return: never returns; terminates all tasks and exits to program originally
  29961. calling CPTASK
  29962. --------U-16FF90-----------------------------
  29963. INT 16 U - PC Tools v8+ DESKTOP - ???
  29964. AX = FF90h
  29965. ???
  29966. Return: ???
  29967. Note: available only when popped up
  29968. --------U-16FF91-----------------------------
  29969. INT 16 U - PC Tools v7+ DESKTOP - ???
  29970. AX = FF91h
  29971. ???
  29972. Return: AX = 0000h
  29973. Note: calls AX=FFFDh after ???
  29974. SeeAlso: AX=FF92h,AX=FFFDh
  29975. --------U-16FF92-----------------------------
  29976. INT 16 U - PC Tools v7+ DESKTOP - ???
  29977. AX = FF92h
  29978. ???
  29979. Return: AX = 0000h
  29980. Note: like AX=FF91h, but temporarily sets ??? to 3
  29981. SeeAlso: AX=FF91h,AX=FFFDh
  29982. --------U-16FF93-----------------------------
  29983. INT 16 U - PC Tools v7+ DESKTOP - SET ??? FLAG
  29984. AX = FF93h
  29985. --------U-16FF94-----------------------------
  29986. INT 16 U - PC Tools v7+ DESKTOP - SET ???
  29987. AX = FF94h
  29988. CX = ??? (default 0017h)
  29989. --------U-16FF95-----------------------------
  29990. INT 16 U - PC Tools v7+ DESKTOP - SET ???
  29991. AX = FF95h
  29992. BX = ???
  29993. --------U-16FF96-----------------------------
  29994. INT 16 U - PC Tools v7+ DESKTOP - ???
  29995. AX = FF96h
  29996. CL = ???
  29997. Return: AX = ???
  29998. --------U-16FF97-----------------------------
  29999. INT 16 U - PC Tools v7+ DESKTOP - ???
  30000. AX = FF97h
  30001. DS:DX -> buffer for ??? (see #00618)
  30002. Return: ???
  30003. Format of PC Tools DESKTOP buffer:
  30004. Offset Size Description (Table 00618)
  30005. 00h 48 BYTEs ???
  30006. 30h 128 BYTEs ???
  30007. --------U-16FF98-----------------------------
  30008. INT 16 U - PC Tools v7+ DESKTOP - OPEN \DESK.OVL FILE AND SEEK TO OVERLAY
  30009. AX = FF98h
  30010. DX = byte offset in file of overlay header (see #00619)
  30011. Return: BX = file handle for DESK.OVL file
  30012. Desc: open the DESK.OVL file, seek to the specified offset, read in the
  30013. overlay header, and seek to the offset specified by the header
  30014. Format of PC Tools DESKTOP overlay header:
  30015. Offset Size Description (Table 00619)
  30016. 00h 12 BYTEs NUL-padded ASCII overlay filename
  30017. 0Ch DWORD offset within DESK.OVL file of actual overlay
  30018. --------U-16FF99-----------------------------
  30019. INT 16 U - PC Tools v7+ DESKTOP - ???
  30020. AX = FF99h
  30021. ???
  30022. Return: ???
  30023. --------U-16FF9A-----------------------------
  30024. INT 16 U - PC Tools v7+ DESKTOP - GET NAME OF COLOR SCHEME
  30025. AX = FF9Ah
  30026. Return: ES:BX -> name of current color scheme
  30027. Note: available even if not popped up
  30028. --------U-16FF9B-----------------------------
  30029. INT 16 U - PC Tools v7+ DESKTOP - UNUSED
  30030. AX = FF9Bh
  30031. Return: ???
  30032. Note: sounds triple-length beep
  30033. --------T-16FF9C-----------------------------
  30034. INT 16 U - PC Tools v8+ CPTASK - SET/CLEAR ??? POINTER
  30035. AX = FF9Ch
  30036. BL = function
  30037. 00h set ??? pointer
  30038. DS:SI -> ???
  30039. 01h clear pointer to 0000h:0000h
  30040. ----------16FF9D-----------------------------
  30041. INT 16 U - PC Tools v8+ CPTASK, VSAFE - ???
  30042. AX = FF9Dh
  30043. ES:BX -> ??? word
  30044. Return: ???
  30045. Note: if ES is non-zero, the word pointed at by ES:BX determines whether the
  30046. ??? flag is cleared (word = 0000h) or set (word is nonzero). The
  30047. flag is always cleared if ES=0000h.
  30048. --------U-16FF9E-----------------------------
  30049. INT 16 U - PC Tools v7+ DESKTOP - ???
  30050. AX = FF9Eh
  30051. DL = ???
  30052. bit 7: ???
  30053. bits 6-0: function number??? (00h,01h,other)
  30054. ???
  30055. Return: ???
  30056. --------U-16FFA1-----------------------------
  30057. INT 16 U - PC Tools v7+ DESKTOP - ???
  30058. AX = FFA1h
  30059. ???
  30060. Return: ???
  30061. Note: same as AX=FFA2h, except ??? set to FFh
  30062. SeeAlso: AX=FFA2h
  30063. --------U-16FFA2-----------------------------
  30064. INT 16 U - PC Tools v7+ DESKTOP - ???
  30065. AX = FFA2h
  30066. ???
  30067. Return: ???
  30068. Note: calls AX=FFC7h (remove window) and AX=FFFDh
  30069. SeeAlso: AX=FFA1h,AX=FFC7h,AX=FFFDh
  30070. --------y-16FFA3BX0000-----------------------
  30071. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - INSTALLATION CHECK
  30072. AX = FFA3h
  30073. BX = 0000h
  30074. CX = 0000h
  30075. Return: AX = segment of resident code
  30076. BX = 5555h
  30077. CX = 5555h
  30078. Note: also supported by DOS 6 UNDELETE which is licensed from PC Tools
  30079. SeeAlso: INT 21/AH=3Fh"NB.SYS",INT 21/AX=4101h,INT 2F/AX=6284h
  30080. --------y-16FFA3BX0001-----------------------
  30081. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
  30082. AX = FFA3h
  30083. BX = 0001h
  30084. CX = 0001h
  30085. Return: AX:BX -> ???
  30086. CX = BX
  30087. --------y-16FFA3BX0002-----------------------
  30088. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
  30089. AX = FFA3h
  30090. BX = 0002h
  30091. CX = 0002h
  30092. Return: AX = ??? (0 or 1)
  30093. CX = BX = AX
  30094. --------y-16FFA3BX0003-----------------------
  30095. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
  30096. AX = FFA3h
  30097. BX = 0003h
  30098. CX = 0003h
  30099. Return: AX = ??? (0 or 1)
  30100. CX = BX = AX
  30101. --------y-16FFA3BX0004-----------------------
  30102. INT 16 U - PC Tools v7+ DATAMON - SET ??? FLAG
  30103. AX = FFA3h
  30104. BX = 0004h
  30105. CX = 0004h
  30106. SeeAlso: AX=FFA3h/BX=0005h
  30107. --------y-16FFA3BX0005-----------------------
  30108. INT 16 U - PC Tools v7+ DATAMON - CLEAR ??? FLAG
  30109. AX = FFA3h
  30110. BX = 0005h
  30111. CX = 0005h
  30112. SeeAlso: AX=FFA3h/BX=0004h
  30113. --------y-16FFA3BX0006-----------------------
  30114. INT 16 U - PC Tools v7+ DATAMON - SET PSP SEGMENT ???
  30115. AX = FFA3h
  30116. BX = 0006h
  30117. CX = 0006h
  30118. DX = current PSP segment as known to DOS??? or 0000h
  30119. --------d-16FFA3BXFFA3-----------------------
  30120. INT 16 U - PC Tools v9 DSKLIGHT - INSTALLATION CHECK
  30121. AX = FFA3h
  30122. BX = FFA3h
  30123. CX = FFA3h
  30124. Return: BX = CX = 5555h if installed
  30125. AX = resident code segment
  30126. Program: DSKLIGHT is a TSR included with PC Tools v9+ which displays a disk-
  30127. access indicator on the screen; in v7 and v8, this function was
  30128. provided by DATAMON
  30129. Note: DSKLIGHT chains to the previous handler if BX or CX is not FFA3h
  30130. --------U-16FFA4-----------------------------
  30131. INT 16 U - PC Tools v7-8 DESKTOP - ???
  30132. AX = FFA4h
  30133. Return: ???
  30134. Notes: available even when not popped up
  30135. sets unknown flag if ??? conditions met
  30136. SeeAlso: AX=FEA4h
  30137. --------c-16FFA5CX1111-----------------------
  30138. INT 16 - PC-Cache v6+ - INSTALLATION CHECK
  30139. AX = FFA5h
  30140. CX = 1111h
  30141. Return: CH = 00h if installed
  30142. ES:DI -> internal data (see #00620)
  30143. CL = cache state
  30144. 01h enabled
  30145. 02h disabled
  30146. SeeAlso: INT 13/AH=27h,INT 13/AH=A0h,INT 21/AH=2Bh/CX=4358h
  30147. Format of PC-Cache internal data:
  30148. Offset Size Description (Table 00620)
  30149. -1Ch 20 BYTEs cached drive list, one byte per drive A: to T:
  30150. each byte is either blank (20h) or drive letter (41h-54h)
  30151. -8 BYTE ???
  30152. -7 WORD number of physical transfers (scaled down to 0000h-7FFFh)
  30153. -5 WORD number of saved transfers (scaled down to 0000h-7FFFh)
  30154. -3 3 BYTEs ???
  30155. --------c-16FFA5CXAAAA-----------------------
  30156. INT 16 - PC-Cache v6+ - ENABLE DELAYED WRITES
  30157. AX = FFA5h
  30158. CX = AAAAh
  30159. Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
  30160. SeeAlso: AX=FFA5h/CX=CCCCh
  30161. --------c-16FFA5CXCCCC-----------------------
  30162. INT 16 - PC-Cache v6+ - FLUSH CACHE AND DISABLE DELAYED WRITES
  30163. AX = FFA5h
  30164. CX = CCCCh
  30165. Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
  30166. Note: delayed writes are automatically disabled on EXECing
  30167. (see INT 21/AH=4Bh) a program named either WIN.CO? or DV.E??;
  30168. however, delayed writes are not automatically reenabled upon the
  30169. program's termination in v6.
  30170. SeeAlso: AX=FFA5h/CX=AAAAh,AX=FFA5h/CX=FFFFh
  30171. --------c-16FFA5CXDDDD-----------------------
  30172. INT 16 - PC-Cache v6+ - FLUSH AND DISABLE CACHE
  30173. AX = FFA5h
  30174. CX = DDDDh
  30175. SeeAlso: AX=FFA5h/CX=EEEEh,AX=FFA5h/CX=FFFFh
  30176. --------c-16FFA5CXEEEE-----------------------
  30177. INT 16 - PC-Cache v6+ - ENABLE CACHE
  30178. AX = FFA5h
  30179. CX = EEEEh
  30180. SeeAlso: AX=FFA5h/CX=DDDDh
  30181. --------c-16FFA5CXFFFF-----------------------
  30182. INT 16 - PC-Cache v6+ - FLUSH CACHE
  30183. AX = FFA5h
  30184. CX = FFFFh
  30185. SeeAlso: AX=FFA5h/CX=CCCCh,AX=FFA5h/CX=DDDDh,INT 13/AH=A1h
  30186. --------U-16FFA6-----------------------------
  30187. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
  30188. AX = FFA6h
  30189. Return: DS:SI -> ???
  30190. Note: available only when popped up
  30191. --------U-16FFA7-----------------------------
  30192. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ??? PATH
  30193. AX = FFA7h
  30194. Return: DS:SI -> ASCIZ path (directory from which PCTools was run???)
  30195. --------U-16FFA8-----------------------------
  30196. INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
  30197. AX = FFA8h
  30198. DS:SI -> three consecutive ASCIZ strings for ??? (max 256 bytes total)
  30199. ???
  30200. Return: ???
  30201. Notes: available only when popped up
  30202. strings copied into internal buffer, among other actions
  30203. --------U-16FFA9-----------------------------
  30204. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET VERSION STRING
  30205. AX = FFA9h
  30206. Return: DS:SI -> version string
  30207. --------U-16FFAA-----------------------------
  30208. INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
  30209. AX = FFAAh
  30210. ???
  30211. Return: ???
  30212. Note: available only when popped up
  30213. --------U-16FFAB-----------------------------
  30214. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET EDITOR SETTINGS???
  30215. AX = FFABh
  30216. Return: DS:SI -> editor setting strings???
  30217. --------U-16FFAC-----------------------------
  30218. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  30219. AX = FFACh
  30220. DL = ???
  30221. Note: available only when popped up
  30222. --------U-16FFAD-----------------------------
  30223. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  30224. AX = FFADh
  30225. DL = ???
  30226. --------U-16FFAE-----------------------------
  30227. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
  30228. AX = FFAEh
  30229. Return: AL = ???
  30230. --------U-16FFAF-----------------------------
  30231. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  30232. AX = FFAFh
  30233. DL = ???
  30234. --------U-16FFB0-----------------------------
  30235. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  30236. AX = FFB0h
  30237. BL = ???
  30238. --------U-16FFB1-----------------------------
  30239. INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
  30240. AX = FFB1h
  30241. ???
  30242. Return: ???
  30243. --------U-16FFB2-----------------------------
  30244. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
  30245. AX = FFB2h
  30246. Return: DS:SI -> ???
  30247. --------U-16FFB3-----------------------------
  30248. INT 16 U - PC Tools v5.5-8.0 DESKTOP - ???
  30249. AX = FFB3h
  30250. ???
  30251. Return: ???
  30252. Note: available only when popped up
  30253. --------U-16FFB4-----------------------------
  30254. INT 16 U - PC Tools v5.5-8.0 DESKTOP - SET ??? FLAG
  30255. AX = FFB4h
  30256. Note: available only when popped up
  30257. SeeAlso: AX=FFBBh
  30258. --------U-16FFB5-----------------------------
  30259. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET WINDOW PARAMETERS
  30260. AX = FFB5h
  30261. BX = window specifier (000Fh to 0019h) (see #00621)
  30262. DX = 0000h get, nonzero = set
  30263. ES:DI -> window parameter buffer (see #00622)
  30264. SeeAlso: AX=FFCBh
  30265. (Table 00621)
  30266. Values for PC Tools DESKTOP window specifier:
  30267. 000Fh comm/FAX
  30268. 0014h hotkey selection
  30269. 0015h ASCII table
  30270. 0016h system colors menu
  30271. Format of PC Tools DESKTOP window parameters:
  30272. Offset Size Description (Table 00622)
  30273. 00h BYTE rows in window, not counting frame
  30274. 01h BYTE columns in window, not counting frame
  30275. 02h BYTE row number of top of window
  30276. 03h BYTE 2*column number of left of window
  30277. 04h BYTE character attribute for ???
  30278. 05h BYTE character attribute for background/border
  30279. 06h BYTE character attribute for ???
  30280. 07h DWORD pointer to ??? on screen
  30281. 0Bh 4 BYTEs ???
  30282. 0Fh BYTE nonzero if window may be resized
  30283. Note: if running in monochrome mode, character attributes at offsets 04h to
  30284. 06h are stored unchanged, but attributes other than 07h, 0Fh, or 70h
  30285. are changed to 07h on reading
  30286. --------U-16FFB6-----------------------------
  30287. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
  30288. AX = FFB6h
  30289. Return: AH = ???
  30290. AL = ???
  30291. --------U-16FFB7-----------------------------
  30292. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET ???
  30293. AX = FFB7h
  30294. BX = direction
  30295. 0000h copy to buffer
  30296. else copy from buffer
  30297. DS:SI -> 70-byte buffer with ???
  30298. Return: data copied
  30299. Note: available only when popped up under v6.0+
  30300. --------U-16FFB8-----------------------------
  30301. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET/SET???
  30302. AX = FFB8h
  30303. BH = subfunction
  30304. 00h get
  30305. Return: BL = old value of ???
  30306. CL = old value of ??? (v6.0+)
  30307. CH = old value of ??? (v6.0+)
  30308. nonzero set
  30309. BL = new value for ???
  30310. CL = new value for ??? (v6.0+)
  30311. CH = new value for ??? (v6.0+)
  30312. DH = ???
  30313. Return: AL = old value replaced by CL (v6.0+)
  30314. AH = old value replaced by CH (v6.0+)
  30315. --------U-16FFB9-----------------------------
  30316. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30317. AX = FFB9h
  30318. ???
  30319. Return: AX = ???
  30320. CX = ???
  30321. DS:SI -> ???
  30322. ES:DI -> ???
  30323. --------U-16FFBA-----------------------------
  30324. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30325. AX = FFBAh
  30326. ???
  30327. Return: AX = ???
  30328. Note: available only when popped up
  30329. --------U-16FFBB-----------------------------
  30330. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLEAR ??? FLAG
  30331. AX = FFBBh
  30332. Note: available only when popped up
  30333. SeeAlso: AX=FFB4h
  30334. --------U-16FFBC-----------------------------
  30335. INT 16 U - PC Tools v5.1-8.0 DESKTOP - RESTORE ORIGINAL SCREEN???
  30336. AX = FFBCh
  30337. --------U-16FFBD-----------------------------
  30338. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? DATABASE INDEXING MESSAGES
  30339. AX = FFBDh
  30340. ???
  30341. Return: ???
  30342. --------U-16FFBE-----------------------------
  30343. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30344. AX = FFBEh
  30345. ???
  30346. Return: ???
  30347. Note: available only when popped up
  30348. --------U-16FFBF-----------------------------
  30349. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30350. AX = FFBFh
  30351. BX = DOS file handle to write on
  30352. ???
  30353. Return: ???
  30354. Note: available only when popped up
  30355. --------U-16FFC0-----------------------------
  30356. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30357. AX = FFC0h
  30358. ???
  30359. Return: AX = 0000h if successful
  30360. AX = FFFFh on error
  30361. Note: available only when popped up
  30362. --------U-16FFC1-----------------------------
  30363. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30364. AX = FFC1h
  30365. BL = ???
  30366. ES:DI -> data structure (see #00623)
  30367. ???
  30368. Return: AX = ???
  30369. Note: available only when popped up
  30370. SeeAlso: AX=FFC2h,AX=FFC3h
  30371. Format of PC Tools DESKTOP data structure:
  30372. Offset Size Description (Table 00623)
  30373. 00h WORD ???
  30374. 02h WORD ???
  30375. 04h WORD ???
  30376. 06h WORD ???
  30377. 08h WORD ???
  30378. 0Ah BYTE ???
  30379. 0Bh BYTE ??? (zero/nonzero)
  30380. ---v7.1---
  30381. 0Ch WORD ???
  30382. 0Eh BYTE ???
  30383. 0Fh WORD ???
  30384. 11h WORD ???
  30385. ???
  30386. --------U-16FFC2-----------------------------
  30387. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30388. AX = FFC2h
  30389. BL = ???
  30390. ES:DI -> data structure (see #00623)
  30391. ???
  30392. Return: AH = ???
  30393. CX = ???
  30394. DH = ???
  30395. DL = ???
  30396. Note: available only when popped up
  30397. SeeAlso: AX=FFC1h,AX=FFC3h
  30398. --------U-16FFC3-----------------------------
  30399. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30400. AX = FFC3h
  30401. BL = ???
  30402. ES:DI -> data structure (see #00623)
  30403. ???
  30404. Return: AH = ???
  30405. CX = ???
  30406. DH = ???
  30407. DL = ???
  30408. Note: available only when popped up
  30409. SeeAlso: AX=FFC1h,AX=FFC2h
  30410. --------U-16FFC4-----------------------------
  30411. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  30412. AX = FFC4h
  30413. Return: AL = ???
  30414. BX = segment of scratch space???
  30415. CX = segment of stored screen data (section covered by window???)
  30416. DX = segment of window parameters for ???
  30417. ES:BP -> ???
  30418. Note: available only when popped up in versions prior to 6.0
  30419. --------U-16FFC5-----------------------------
  30420. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK WHETHER DESKTOP LOADED RESIDENT
  30421. AX = FFC5h
  30422. Return: BL = Desktop state
  30423. 00h if nonresident
  30424. nonzero if loaded resident
  30425. Note: available only when popped up; should call AX=FFEFh first to ensure
  30426. that DESKTOP is active
  30427. SeeAlso: AX=FFEFh,AX=FFF3h
  30428. --------U-16FFC6-----------------------------
  30429. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  30430. AX = FFC6h
  30431. BL = new value for ???
  30432. --------U-16FFC7-----------------------------
  30433. INT 16 U - PC Tools v5.1-8.0 DESKTOP - REMOVE WINDOW
  30434. AX = FFC7h
  30435. ???
  30436. Return: ???
  30437. --------U-16FFC8-----------------------------
  30438. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  30439. AX = FFC8h
  30440. Return: DS:SI -> ???
  30441. Note: valid only while popped up
  30442. --------U-16FFC9-----------------------------
  30443. INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY DATA TO CLIPBOARD
  30444. AX = FFC9h
  30445. DS:SI -> characters to store in clipboard
  30446. CX = size in bytes
  30447. Return: CF set on error
  30448. Notes: available only when popped up
  30449. while copying, bytes of 00h and 0Ah are skipped
  30450. --------U-16FFCA-----------------------------
  30451. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  30452. AX = FFCAh
  30453. DX = ???
  30454. Return: AX destroyed
  30455. Note: available only when popped up
  30456. --------U-16FFCB-----------------------------
  30457. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SELECT WINDOW PARAMETERS???
  30458. AX = FFCBh
  30459. DX = window specifier???
  30460. Return: AX destroyed
  30461. Note: available only when popped up
  30462. SeeAlso: AX=FFB5h
  30463. --------U-16FFCC-----------------------------
  30464. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY ASCIZ STRING CENTERED IN WINDOW
  30465. AX = FFCCh
  30466. DS:SI -> ASCIZ string
  30467. Return: AX = ???
  30468. CX = ???
  30469. ES:DI -> address past last character displayed (v5.1/5.5)
  30470. -> ??? on menu bar (v6.0)
  30471. --------U-16FFCD-----------------------------
  30472. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30473. AX = FFCDh
  30474. DS:DX -> ???
  30475. Return: ???
  30476. Note: available only when popped up
  30477. --------U-16FFCE-----------------------------
  30478. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? DELAYS
  30479. AX = FFCEh
  30480. CX = ???
  30481. Return: nothing???
  30482. --------U-16FFCF-----------------------------
  30483. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLOSE PRINTER/PRINT FILE
  30484. AX = FFCFh
  30485. Note: available only when popped up
  30486. --------U-16FFD0-----------------------------
  30487. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO PRINT???
  30488. AX = FFD0h
  30489. ???
  30490. Return: ???
  30491. Note: available only when popped up
  30492. --------U-16FFD1-----------------------------
  30493. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY PRINT OPTIONS MENU
  30494. AX = FFD1h
  30495. Return: BX = number of copies
  30496. DX = destination
  30497. 00h cancel
  30498. 01h LPT1
  30499. 02h LPT2
  30500. 03h LPT3
  30501. 04h COM1
  30502. 05h COM2
  30503. 06h disk file
  30504. Note: available only when popped up
  30505. --------U-16FFD2-----------------------------
  30506. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30507. AX = FFD2h
  30508. BX = ???
  30509. Return: BL = ???
  30510. Note: available only when popped up
  30511. --------U-16FFD3-----------------------------
  30512. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30513. AX = FFD3h
  30514. DS:SI -> 92-byte data record for ???
  30515. Return: ???
  30516. SeeAlso: AX=FED3h
  30517. --------U-16FFD4BH3C-------------------------
  30518. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CREATE/OPEN/DELETE FILE
  30519. AX = FFD4h
  30520. BH = 3Ch create file (with no attributes)
  30521. 3Dh open file
  30522. 41h delete file
  30523. BL = access mode
  30524. 00h read only
  30525. 01h write only
  30526. 02h read/write
  30527. DS:SI -> ASCIZ filename
  30528. Return: BX = file handle
  30529. 0000h on error
  30530. Note: operation is attempted in (in order) the directory from which the
  30531. desktop was started/run???, the directory specified with the
  30532. filename, X:\PCTOOLS\, and X:\
  30533. --------U-16FFD5-----------------------------
  30534. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30535. AX = FFD5h
  30536. ???
  30537. Return: ???
  30538. Note: available only when popped up
  30539. --------U-16FFD6-----------------------------
  30540. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30541. AX = FFD6h
  30542. BX = ???
  30543. CX = ???
  30544. DX = offset in ???
  30545. ???
  30546. Return: ???
  30547. Note: available only when popped up
  30548. --------U-16FFD7-----------------------------
  30549. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30550. AX = FFD7h
  30551. ???
  30552. Return: BL = ???
  30553. Note: available only when popped up
  30554. --------U-16FFD8-----------------------------
  30555. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SAFE CREATE FILE
  30556. AX = FFD8h
  30557. DS:BX -> ASCIZ filename
  30558. Return: BX = file handle
  30559. 0000h on error
  30560. Note: pops up confirmation menu if file already exists
  30561. only available when popped up???
  30562. --------U-16FFD9-----------------------------
  30563. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  30564. AX = FFD9h
  30565. Return: AX = ???
  30566. Note: available only when popped up
  30567. --------U-16FFDA-----------------------------
  30568. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET NAME OF LAST FILE OPENED
  30569. AX = FFDAh
  30570. DS:SI -> ??? (v5.1/5.5 only)
  30571. Return: DS:SI -> filename
  30572. --------U-16FFDB-----------------------------
  30573. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  30574. AX = FFDBh
  30575. BL = ???
  30576. Note: available only when popped up
  30577. --------U-16FFDC-----------------------------
  30578. INT 16 U - PC Tools v5.1-8.0 DESKTOP - UNHOOK
  30579. AX = FFDCh
  30580. Return: interrupt vectors 09h, 10h (v6.0+), 16h, 1Ch, and 21h restored to
  30581. original values
  30582. Index: uninstall;PC Tools DESKTOP
  30583. --------U-16FFDDBX0000-----------------------
  30584. INT 16 U - PC Tools v5.1+ PCShell API - INSTALLATION CHECK
  30585. AX = FFDDh
  30586. BX = 0000h
  30587. Return: CX = 5555h
  30588. DX = 5555h if PCShell installed in resident mode
  30589. --------U-16FFDDBX0001-----------------------
  30590. INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
  30591. AX = FFDDh
  30592. BX = 0001h
  30593. Return: CF clear if request successful (PCShell will pop up)
  30594. CF set on error
  30595. SeeAlso: AX=FFDDh/BX=0003h
  30596. --------U-16FFDDBX0002-----------------------
  30597. INT 16 U - PC Tools v5.1-5.5 PCShell API - GET ???
  30598. AX = FFDDh
  30599. BX = 0002h
  30600. Return: AL =
  30601. 00h ???
  30602. 01h ???
  30603. Note: PCShell v6.0+ displays the error message "Incorrect PCRUN version",
  30604. awaits a keystroke, and aborts the current process
  30605. --------U-16FFDDBX0003-----------------------
  30606. INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
  30607. AX = FFDDh
  30608. BX = 0003h
  30609. SeeAlso: AX=FFDDh/BX=0001h
  30610. --------U-16FFDDBX0004-----------------------
  30611. INT 16 U - PC Tools v5.1+ PCShell API - GET ???
  30612. AX = FFDDh
  30613. BX = 0004h
  30614. Return: CF clear if successful
  30615. DS:SI -> ???
  30616. --------U-16FFDDBX0005-----------------------
  30617. INT 16 U - PC Tools v5.1+ PCShell API - ???
  30618. AX = FFDDh
  30619. BX = 0005h
  30620. ???
  30621. Return: ???
  30622. Note: resets various variables if certain conditions are met
  30623. --------U-16FFDDBX0006-----------------------
  30624. INT 16 U - PC Tools v5.1+ PCShell API - ???
  30625. AX = FFDDh
  30626. BX = 0006h
  30627. ???
  30628. Return: ???
  30629. Note: resets various variables if certain conditions are met
  30630. --------U-16FFDDBX0007-----------------------
  30631. INT 16 U - PC Tools v5.1+ PCShell API - SET ??? FLAG
  30632. AX = FFDDh
  30633. BX = 0007h
  30634. Return: CF clear if successful
  30635. SeeAlso: AX=FFDDh/BX=0008h
  30636. --------U-16FFDDBX0008-----------------------
  30637. INT 16 U - PC Tools v5.1+ PCShell API - CLEAR ??? FLAG
  30638. AX = FFDDh
  30639. BX = 0008h
  30640. Return: CF undefined
  30641. SeeAlso: AX=FFDDh/BX=0007h
  30642. --------U-16FFDDBX0009-----------------------
  30643. INT 16 U - PC Tools v6.0+ PCShell API - GET PCRUN PARAMETERS
  30644. AX = FFDDh
  30645. BX = 0009h
  30646. Return: CF clear if successful
  30647. DS:SI -> list of pointers (see #00624)
  30648. Format of PC Tools PCShell returned pointer list:
  30649. Offset Size Description (Table 00624)
  30650. 00h WORD offset of WORD containing ???
  30651. 02h WORD offset of name of program to execute
  30652. 04h WORD offset of 80-byte buffer for ???
  30653. 06h WORD offset of buffer for ??? (length in WORD preceding buffer)
  30654. 08h WORD offset of buffer for ??? (length in WORD preceding buffer)
  30655. --------U-16FFDDBX000A-----------------------
  30656. INT 16 U - PC Tools v6.0+ PCRUN API - INSTALLATION CHECK
  30657. AX = FFDDh
  30658. BX = 000Ah
  30659. Return: CX = 5555h if running
  30660. DX = 5555h
  30661. Note: also sets a flag
  30662. --------U-16FFDDBX000B-----------------------
  30663. INT 16 U - PC Tools v6.0+ PCRUN API - ???
  30664. AX = FFDDh
  30665. BX = 000Bh
  30666. ???
  30667. Return: CX = 5555h if PCRUN active
  30668. DX = 5555h
  30669. Note: also clears flag set by AX=FFDDh/BX=000Ah
  30670. --------U-16FFDE-----------------------------
  30671. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY POPUP MENU
  30672. AX = FFDEh
  30673. DS:DX -> menu description (must be on a paragraph boundary)
  30674. Return: AX = ???
  30675. AL seems to be the number of the selected button
  30676. Note: available only when popped up
  30677. SeeAlso: AX=FFEEh
  30678. --------U-16FFDF-----------------------------
  30679. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30680. AX = FFDFh
  30681. ???
  30682. Return: ???
  30683. --------U-16FFE0-----------------------------
  30684. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30685. AX = FFE0h
  30686. CX = ???
  30687. DX = ???
  30688. Note: available only when popped up
  30689. --------U-16FFE1-----------------------------
  30690. INT 16 U - PC Tools v5.1-8.0 DESKTOP - BEEP
  30691. AX = FFE1h
  30692. --------U-16FFE2-----------------------------
  30693. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30694. AX = FFE2h
  30695. DX = ???
  30696. Return: ???
  30697. Note: available only when popped up
  30698. --------U-16FFE3-----------------------------
  30699. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PRINT CHARACTER
  30700. AX = FFE3h
  30701. BL = character to print to currently open printer or print file
  30702. Return: CF set on error
  30703. Note: available only when popped up
  30704. SeeAlso: INT 17/AH=00h
  30705. --------U-16FFE4-----------------------------
  30706. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30707. AX = FFE4h
  30708. DX = segment of ???
  30709. Return: ???
  30710. Note: available only when popped up
  30711. --------U-16FFE5-----------------------------
  30712. INT 16 U - PC Tools v5.1-8.0 DESKTOP - POP UP FILE SELECTION MENU
  30713. AX = FFE5h
  30714. DS:SI -> ASCIZ wildcard filespec followed by ASCIZ menu title
  30715. DX = segment of window parameters???
  30716. Return: AX = DOS file handle for file
  30717. DS:DX -> filename???
  30718. FFFFh if function cancelled by user
  30719. Note: available only when popped up
  30720. SeeAlso: AX=FFDAh
  30721. --------U-16FFE6-----------------------------
  30722. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK FOR AND GET KEYSTROKE
  30723. AX = FFE6h
  30724. Return: AX = 0000h if no key available
  30725. else BIOS keycode
  30726. Notes: available only when popped up
  30727. invokes INT 28 idle interrupt before checking for key
  30728. --------U-16FFE7-----------------------------
  30729. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30730. AX = FFE7h
  30731. BX = segment of ???
  30732. Return: ???
  30733. Note: available only when popped up
  30734. --------U-16FFE8-----------------------------
  30735. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY NUMBER
  30736. AX = FFE8h
  30737. CX = number
  30738. DH = attribute
  30739. DS:SI -> destination for ASCII number
  30740. Return: DS:SI buffer filled in with alternating characters and attributes
  30741. --------U-16FFE9-----------------------------
  30742. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET FILE LIST???
  30743. AX = FFE9h
  30744. Return: BX = segment of file/directory list (14 bytes per file, NUL-padded)
  30745. Note: available only when popped up
  30746. --------U-16FFEA-----------------------------
  30747. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY COUNTED STRING
  30748. AX = FFEAh
  30749. DS:SI -> counted string (count byte followed by string)
  30750. Return: ???
  30751. Note: available only when popped up
  30752. --------U-16FFEB-----------------------------
  30753. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30754. AX = FFEBh
  30755. ???
  30756. Return: ???
  30757. --------U-16FFEC-----------------------------
  30758. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET KEY
  30759. AX = FFECh
  30760. DS:SI -> FAR routine to ???
  30761. BX = ???
  30762. ???
  30763. Return: AX = keystroke
  30764. FFFFh if F10 pressed to go to menu
  30765. Notes: available only when popped up
  30766. invokes INT 28 while waiting for keystroke
  30767. F10 is hotkey to Desktop menu
  30768. Index: hotkeys;PC Tools DESKTOP
  30769. --------U-16FFED-----------------------------
  30770. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  30771. AX = FFEDh
  30772. Return: AX = ???
  30773. Note: available only when popped up
  30774. --------U-16FFEE-----------------------------
  30775. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE PULLDOWN MENUS
  30776. AX = FFEEh
  30777. DS:SI -> pulldown menu system description (see #00625)
  30778. Return: AX destroyed
  30779. Notes: available only when popped up
  30780. if the accessory does not need any menu items of its own, it should
  30781. call AX=FFFAh instead
  30782. SeeAlso: AX=FFF7h,AX=FFFAh
  30783. Format of PC Tools DESKTOP pulldown menu system description:
  30784. Offset Size Description (Table 00625)
  30785. 00h WORD offset of menu bar contents (counted string)
  30786. 02h WORD number of items on menu bar
  30787. 04h 10 BYTEs scan codes for hotkeying to each of up to ten menu items
  30788. 0Eh 10 BYTEs which character to highlight in each menu item (01h=first)
  30789. 18h WORD offset of first menu definition (see #00626)
  30790. 1Ah WORD offset of second menu definition
  30791. ...
  30792. Format of PC Tools DESKTOP menu definition:
  30793. Offset Size Description (Table 00626)
  30794. 00h WORD offset of menu contents (see #00627)
  30795. 02h WORD number of entries in menu
  30796. 04h for each entry:
  30797. Offset Size Description
  30798. 00h BYTE scancode of Alt-key to invoke entry
  30799. 01h BYTE character to highlight (01h=first, etc)
  30800. 02h WORD offset of FAR routine to handle selection
  30801. Format of PC Tools DESKTOP menu contents:
  30802. Offset Size Description (Table 00627)
  30803. 00h BYTE number of lines in menu
  30804. 01h BYTE width of menu
  30805. 02h N BYTEs counted strings, one for each line in menu
  30806. --------U-16FFEFCX0000-----------------------
  30807. INT 16 U - PC Tools v5.1-8.0 DESKTOP - INSTALLATION CHECK
  30808. AX = FFEFh
  30809. CX = 0000h
  30810. Return: CX = ABCDh if PC Tools DESKTOP.EXE installed
  30811. BX = segment of resident portion
  30812. AX = ??? (v5.1/5.5 only)
  30813. SeeAlso: AX=FEEFh,AX=FFC5h,AX=FFF3h
  30814. --------U-16FFF0-----------------------------
  30815. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  30816. AX = FFF0h
  30817. DX = ???
  30818. Return: AX destroyed
  30819. Note: available only when popped up
  30820. --------U-16FFF1BX0000-----------------------
  30821. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ALTERNATE INSTALLATION CHECK
  30822. AX = FFF1h
  30823. BX = 0000h leave ??? flag as is
  30824. nonzero set ??? flag
  30825. Return: CX = 5555h if installed
  30826. DX = 5555h
  30827. --------U-16FFF2-----------------------------
  30828. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY HELP LINE
  30829. AX = FFF2h
  30830. DS:SI -> ASCIZ function key label string (each label preceded by '[')
  30831. or help text
  30832. Return: AX destroyed
  30833. Notes: available only when popped up
  30834. if the specified string does not start with '[', it is displayed
  30835. centered on the bottom line, else the function key labels are shown
  30836. --------U-16FFF3-----------------------------
  30837. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO UNLOAD RESIDENT DESKTOP
  30838. AX = FFF3h
  30839. Note: releases any EMS being used; restores video mode, page, and cursor
  30840. shape; and restores interrupt vectors
  30841. SeeAlso: AX=FFC5h,AX=FFEFh
  30842. Index: uninstall;PC Tools DESKTOP
  30843. --------U-16FFF4-----------------------------
  30844. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  30845. AX = FFF4h
  30846. ???
  30847. Return: ???
  30848. Note: available only when popped up
  30849. SeeAlso: AX=FFF6h
  30850. --------U-16FFF5-----------------------------
  30851. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET SCREEN ATTRIBUTE ARRAY
  30852. AX = FFF5h
  30853. Return: ES:BX -> screen attributes data structure (see #00628)
  30854. AL = ??? (v6.0+)
  30855. Format of PC Tools DESKTOP attribute data structure:
  30856. Offset Size Description (Table 00628)
  30857. -1 BYTE attribute for desktop background
  30858. 00h BYTE attribute for normal characters on desktop menu
  30859. 01h BYTE attribute for highlighted characters on desktop menu
  30860. 02h 5 BYTEs ???
  30861. 07h BYTE attribute for dialog boxes
  30862. 08h 15 BYTEs ???
  30863. 17h BYTE attribute for message boxes
  30864. --------U-16FFF6-----------------------------
  30865. INT 16 U - PC Tools v5.1-8.0 DESKTOP - INVOKE NOTEPAD EDITOR
  30866. AX = FFF6h
  30867. DS = segment of editor buffer structure (see #00629)
  30868. BX = ???
  30869. DX = segment of window parameters structure (see #00622)
  30870. Return: ???
  30871. Note: available only when popped up
  30872. SeeAlso: AX=FFF4h
  30873. Format of PC Tools DESKTOP editor buffer structure:
  30874. Offset Size Description (Table 00629)
  30875. 00h WORD offset of current cursor position in buffer segment
  30876. 02h 2 BYTEs ???
  30877. 04h WORD offset of beginning of file data in buffer segment
  30878. 06h 10 BYTEs ???
  30879. 10h N BYTEs ASCIZ name of file being edited
  30880. --------U-16FFF7-----------------------------
  30881. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS MENU BAR ENTRY???
  30882. AX = FFF7h
  30883. DS:SI -> ???
  30884. ???
  30885. Return: ???
  30886. Notes: available only when popped up
  30887. performs input processing on the menu bar set up with AX=FFEEh
  30888. SeeAlso: AX=FFEEh,AX=FFFBh
  30889. --------U-16FFF8-----------------------------
  30890. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DRAW EMPTY WINDOW
  30891. AX = FFF8h
  30892. DS:0000h -> window parameters structure (see #00622)
  30893. DS:BX -> DWORD to store address of ??? on screen
  30894. Return: ???
  30895. --------U-16FFF9-----------------------------
  30896. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE SCREEN REFRESH ROUTINE
  30897. AX = FFF9h
  30898. ES:BX -> FAR routine to redisplay the utility's window
  30899. Note: available only when popped up
  30900. --------U-16FFFA-----------------------------
  30901. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE STANDARD PULLDOWN MENUS
  30902. AX = FFFAh
  30903. Notes: available only when popped up
  30904. adds the "Window" option to the "Desktop" option which is the only one
  30905. available when no accessories are active. Unlike AX=FFEEh, no
  30906. additional menu items are added between "Desktop" and "Window"
  30907. SeeAlso: AX=FFEEh,AX=FFFBh
  30908. --------U-16FFFB-----------------------------
  30909. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS STANDARD MENU BAR
  30910. AX = FFFBh
  30911. Return: ???
  30912. Notes: available only when popped up
  30913. performs input processing on the standard menu bar set up with AX=FFFAh
  30914. SeeAlso: AX=FFF7h
  30915. --------U-16FFFC-----------------------------
  30916. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET HOTKEYS AND KEYBOARD VECTOR
  30917. AX = FFFCh
  30918. Return: ES:BX -> hotkey table (see #00630)
  30919. DS:DX = original INT 09 vector
  30920. Format of PC Tools DESKTOP hotkey table:
  30921. Offset Size Description (Table 00630)
  30922. 00h 2 BYTEs scancode/shift state for desktop hotkey
  30923. 02h 2 BYTEs scancode/shift state for clipboard paste key
  30924. 04h 2 BYTEs scancode/shift state for clipboard copy key
  30925. 06h 2 BYTEs scancode/shift state for screen autodial key
  30926. --------U-16FFFD-----------------------------
  30927. INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY ???
  30928. AX = FFFDh
  30929. Return: AX destroyed
  30930. Note: copies 4000 bytes from ??? to ??? under certain circumstances
  30931. SeeAlso: AX=FF91h,AX=FF92h
  30932. --------M-16FFFE-----------------------------
  30933. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SHOW MOUSE CURSOR
  30934. AX = FFFEh
  30935. SeeAlso: AX=FFFFh,INT 33/AX=0001h
  30936. --------M-16FFFF-----------------------------
  30937. INT 16 U - PC Tools v5.1-8.0 DESKTOP - HIDE MOUSE CURSOR
  30938. AX = FFFFh
  30939. SeeAlso: AX=FFFEh,INT 33/AX=0002h
  30940. --------P-17----DX0ABC-----------------------
  30941. INT 17 - PRINTER - LPTx v5.x INSTALLATION CHECK
  30942. DX = 0ABCh
  30943. Return: AX = AAAAh
  30944. DX = BAAAh
  30945. ES = code segment of resident portion
  30946. --------P-17----DX0B90-----------------------
  30947. INT 17 - PRINTER - LPTx v6.x INSTALLATION CHECK
  30948. DX = 0B90h
  30949. Return: DX = ABBBh
  30950. ES = code segment of resident portion
  30951. --------P-17----DX0B91-----------------------
  30952. INT 17 - PRINTER - LPTx v7.x INSTALLATION CHECK
  30953. DX = 0B91h
  30954. Return: DX = ABCBh
  30955. ES = code segment of resident portion
  30956. --------P-17----DX0F5F-----------------------
  30957. INT 17 - PRINTER - LPTx v4.x INSTALLATION CHECK
  30958. DX = 0F5Fh
  30959. Return: AX = AAAAh
  30960. DX = F555h
  30961. ES = code segment of resident portion
  30962. --------B-1700-------------------------------
  30963. INT 17 - PRINTER - WRITE CHARACTER
  30964. AH = 00h
  30965. AL = character to write
  30966. DX = printer number (00h-02h)
  30967. Return: AH = printer status (see #00631)
  30968. SeeAlso: AH=02h,AH=84h"AX",AX=6F02h,AH=F1h,INT 16/AX=FFE3h,INT 1A/AH=11h"NEC"
  30969. SeeAlso: INT 4B/AH=00h,PORT 0278h"PRINTER",MEM 0040h:0008h,MEM 0040h:0078h
  30970. Bitfields for printer status:
  30971. Bit(s) Description (Table 00631)
  30972. 7 not busy
  30973. 6 acknowledge
  30974. 5 out of paper
  30975. 4 selected
  30976. 3 I/O error
  30977. 2-1 unused
  30978. 0 timeout
  30979. Note: for Tandy 2000, bit 7 indicates printer-busy when set rather than clear
  30980. --------B-1701-------------------------------
  30981. INT 17 - PRINTER - INITIALIZE PORT
  30982. AH = 01h
  30983. DX = printer number (00h-02h)
  30984. Return: AH = printer status (see #00631)
  30985. Note: some printers report that they are ready immediately after
  30986. initialization when they actually are not; a more reliable result may
  30987. be obtained by calling AH=02h after a brief delay
  30988. SeeAlso: AH=02h,AH=FFh"PC-MOS",INT 1A/AH=10h"NEC",INT 4B/AH=01h
  30989. --------B-1702-------------------------------
  30990. INT 17 - PRINTER - GET STATUS
  30991. AH = 02h
  30992. DX = printer number (00h-02h)
  30993. Return: AH = printer status (see #00631)
  30994. Note: PRINTFIX from MS-DOS 5.0 hooks this function and always returns AH=90h
  30995. SeeAlso: AH=01h,AH=F2h,INT 1A/AH=12h"NEC",INT 4B/AH=02h
  30996. --------P-1702--DX0000-----------------------
  30997. INT 17 - INSET - INSTALLATION CHECK
  30998. AH = 02h
  30999. DX = 0000h
  31000. CX = 07C3h (1987d)
  31001. Return: CX = 07C2h (1986d) if installed
  31002. Program: INSET is a text/graphics integration program
  31003. --------b-170200BX5050-----------------------
  31004. INT 17 - Enhanced Parallel Port (EPP) BIOS - INSTALLATION CHECK
  31005. AX = 0200h
  31006. BX = 5050h ('PP')
  31007. CH = 45h ('E')
  31008. DX = printer port number (00h-02h)
  31009. Return: AH = status
  31010. 00h if installed and port is an enhanced parallel port
  31011. CX:AL = installed BIOS type
  31012. 5050h:45h ('PPE') if EPP v3.0+ BIOS installed
  31013. 4550h:50h ('EPP') if EPP v1.0 BIOS installed
  31014. ---EPP 1.0, 3.0---
  31015. DX:BX -> far entry point to Advanced BIOS (see #00632)
  31016. ---EPP Revision 7---
  31017. DX = EPP I/O base address
  31018. ES:BX -> far entry point to EPP BIOS (see #00632,#00633)
  31019. 03h if installed but specified port not supported
  31020. CF set
  31021. Program: The Enhanced Parallel Port BIOS provides support for parallel
  31022. port peripherals using the enhanced modes of the IEEE 1284.
  31023. SeeAlso: AH=E0h,MEM 0040h:0008h,MEM 0040h:00DCh
  31024. (Table 00632)
  31025. Call EPP BIOS entry point with:
  31026. DL = port number (v1.0,v3.0)
  31027. DX = (Revision 7) EPP port I/O base address
  31028. AH = function
  31029. 00h Query Configuration
  31030. Return: AH = 00h if successful
  31031. AL = IRQ number used by port or FFh if no IRQ
  31032. BH = EPP BIOS revision (major in high nybble,
  31033. minor in low nybble)
  31034. BL = I/O capabilities (see #00635)
  31035. ES:DI -> ASCIZ driver information/version text
  31036. ---v1.0,v3.0---
  31037. CX = I/O port base address for parallel port
  31038. ---Revision 7---
  31039. CL = EPP chipset code (see #00636)
  31040. CH = hardware manufacturer's product code
  31041. 01h Set Mode
  31042. AL = mode bits (see #00637)
  31043. Return: AX,BX destroyed
  31044. 02h Get Mode
  31045. Return: AL = mode bits (see also #00637)
  31046. bit 7: EPP port interrupts enabled
  31047. AH = 00h
  31048. CF clear
  31049. BX destroyed
  31050. 03h Interrupt Control
  31051. AL = subfunction
  31052. 00h enable parallel port interrupts
  31053. 01h disable parallel port interrupts
  31054. Return: AH = status (00h,05h,06h) (see also #00634)
  31055. 04h EPP Reset
  31056. Return: AH = 00h if successful
  31057. AL destroyed
  31058. 05h perform Address-Write/Device-Select I/O cycle
  31059. AL = device address
  31060. Return: AH = status
  31061. AL destroyed
  31062. 06h perform Address-Read I/O cycle
  31063. Return: AL = returned address/device data
  31064. AH = status
  31065. 07h write byte
  31066. AL = data byte to write
  31067. Return: AH = status
  31068. 08h output block of data
  31069. DS:SI -> block of data to be sent to parallel port
  31070. CX = number of bytes to output
  31071. Return: AH = status (see #00634)
  31072. CX = number of unsent bytes
  31073. 09h read byte of data
  31074. Return: AH = status (see #00634)
  31075. AL = byte read from parallel port
  31076. 0Ah read block of data
  31077. ES:DI -> buffer for received data
  31078. CX = number of bytes to read from paralle port
  31079. Return: AH = status (see #00634)
  31080. ES:DI buffer filled if successful
  31081. CX = number of bytes not transferred
  31082. 0Bh Address/Byte-Read
  31083. AL = device address
  31084. Return: AH = status (see #00634)
  31085. AL = byte read if successful
  31086. 0Ch Address/Byte-Write
  31087. AL = device address
  31088. DH = data byte (v1.0,v3.0)
  31089. CL = data byte (Revision 7)
  31090. Return: AH = status (see #00634)
  31091. 0Dh Address/Block-Read
  31092. AL = device address
  31093. ES:DI -> buffer for received data
  31094. CX = number of bytes to read
  31095. Return: AH = status (see #00634)
  31096. CX = number of bytes NOT transferred
  31097. 0Eh Address/Block-Write
  31098. AL = device address
  31099. ES:DI -> data to be sent (v1.0,v3.0)
  31100. DS:SI -> data to be send (Revision 7)
  31101. CX = number of bytes to write
  31102. Return: AH = status (see #00634)
  31103. CX = number of bytes NOT transferred
  31104. 0Fh Lock Port
  31105. AL = multiplexor port number
  31106. bits 7-4: daisy chain port number (1-8)
  31107. bits 3-0: mux device port number (1-8, 0 if no mux)
  31108. Return: AH = status (00h,03h,05h) (see #00634)
  31109. 10h Unlock Port
  31110. AL = multiplexor port number
  31111. bits 7-4: daisy chain port number (1-8)
  31112. bits 3-0: mux device port number (1-8, 0 if no mux)
  31113. Return: AH = status (00h,03h,05h) (see #00634)
  31114. 11h Device Interrupt
  31115. BL = multiplexor port number
  31116. 00h if no multiplexor, else mux device port (01h-08h)
  31117. AL = subfunction
  31118. 00h disable device interrupts
  31119. 01h enable device interrupt
  31120. ES:DI -> interrupt event handler
  31121. Return: AH = status (00h,03h,05h,06h) (see #00634)
  31122. Note: AMI BIOS v1.00.12.AX1T ignores the multiplexor port
  31123. number; it also always sets INT 0F to the address
  31124. specified in ES:DI
  31125. 12h Real-Time Mode
  31126. AL = subfunction
  31127. 00h check whether any real-time devices present
  31128. 01h add (advertise) real-time device
  31129. 02h remove real-time device
  31130. Return: AH = status (00h,05h,06h,07h) (see #00634)
  31131. AL = real-time devices present? (00h no, 01h yes)
  31132. Note: unlike all other functions, this one does not use DL/DX
  31133. Return: AH = status (see #00634)
  31134. CF clear if successful
  31135. CF set on error
  31136. BX destroyed
  31137. SeeAlso: #00633
  31138. (Table 00633)
  31139. Call EPP BIOS (Revision 7) entry point multiplexor functions with:
  31140. DX = EPP port base I/O address
  31141. AH = function
  31142. 40h Query Mux
  31143. Return: AH = status (see #00634)
  31144. AL = currently-selected port
  31145. CH = status flags
  31146. bit 0: channel locked
  31147. bit 1: interrupt pending
  31148. BH destroyed
  31149. Note: the PhoenixBIOS v4.0 documentation lists BL as the
  31150. currently-selected port and AL as the status flags
  31151. 41h Query Device Port
  31152. AL = EPP multiplex device port (1-8)
  31153. Return: AH = status (see #00634)
  31154. CH = status flags (see #00638)
  31155. BX = EPP product/device ID (0000h if undefined)
  31156. Note: the PhoenixBIOS v4.0 documentation lists AL as the
  31157. status flags and CX as the device ID
  31158. 42h Set Product ID
  31159. AL = EPP multiplex device port (1-8)
  31160. CX = EPP product ID
  31161. Return: AH = status (see #00634)
  31162. BX destroyed
  31163. 50h Query Daisy Chain
  31164. AL = EPP multiplexor device port (1-8)
  31165. Return: AH = status (see #00634)
  31166. CH = status flags
  31167. bit 0: channel locked
  31168. bit 1: interrupt pending
  31169. BL = currently-selected device
  31170. BH = EPP daisy chain revision (high nybble = major)
  31171. CL = daisy-chain depth (00h if no daisy chain)
  31172. ES:DI -> ASCIZ driver vendor identification string
  31173. Note: the PhoenixBIOS v4.0 documentation lists AH=51h as
  31174. "Query Daisy Chain" and BL as the multiplexor port;
  31175. it also lists AL as status flags on return
  31176. 51h Rescan Daisy Chain (dynamically reassign port numbers)
  31177. AL = EPP multiplexor device port (1-8)
  31178. Return: AH = status (see #00634)
  31179. BX destroyed
  31180. Note: the PhoenixBIOS v4.0 documentation lists AH=50h as
  31181. "Rescan Daisy Chain" and BL as the multiplexor port
  31182. Notes: these functions are only valid if a port multiplexor or daisy chain
  31183. is present
  31184. PhoenixBIOS 4.0 documents function 50h as "Rescan" and 51h as
  31185. "Query Daisy Chain"
  31186. SeeAlso: #00632,INT 2D/AL=DCh
  31187. (Table 00634)
  31188. Values for EPP BIOS function status:
  31189. 00h successful
  31190. 02h unsupported command/feature
  31191. 03h unsupported parallel port
  31192. 05h unsupported in current mode
  31193. 06h invalid subfunction
  31194. 07h already ???
  31195. 20h multiplexor not present (AMI)
  31196. 40h multiplexor not present
  31197. 41h multiplexor currently locked
  31198. 80h I/O timeout
  31199. FFh invalid/unsupported function
  31200. SeeAlso: #00632,#00633
  31201. Bitfields for EPP (v3.0, Revision 7) I/O capabilities:
  31202. Bit(s) Description (Table 00635)
  31203. 0 multiplexor present
  31204. 1 PS/2 bi-directional capable
  31205. 2 daisy chain present
  31206. 3 ECP capable
  31207. 4 EPP software emulation supported
  31208. 5 EPP capable
  31209. 6 fast Centronics supported
  31210. 7 standard EPP I/O map
  31211. SeeAlso: #00632
  31212. (Table 00636)
  31213. Values for EPP (Revision 7) chipset code:
  31214. 00h Intel SL
  31215. 01h FarPoint Communications
  31216. 02h SMC
  31217. 03h Chips&Technologies
  31218. 04h Western Digital
  31219. 05h National Semiconductor
  31220. SeeAlso: #00632
  31221. Bitfields for EPP BIOS mode bits:
  31222. Bit(s) Description (Table 00637)
  31223. 0 set compatibility mode
  31224. 1 set bi-directional mode
  31225. 2 set EPP mode
  31226. ---Revision 7,v3.0---
  31227. 3 set ECP mode
  31228. 4 set EPP software emulation
  31229. 5 set fast Centronics mode
  31230. 6-7 reserved (0)
  31231. SeeAlso: #00632,#M0053
  31232. Bitfields for EPP BIOS multiplex status flags:
  31233. Bit(s) Description (Table 00638)
  31234. 0 port is selected
  31235. 1 port is locked
  31236. 2 interrupts are enabled
  31237. 3 interrupt pending
  31238. SeeAlso: #00633
  31239. --------P-1703-------------------------------
  31240. INT 17 U - Emulaser ELTSR - INSTALL INTERRUPT HANDLERS
  31241. AH = 03h
  31242. Return: BX = ???
  31243. CX = ???
  31244. Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
  31245. Vertisoft Systems, Inc.
  31246. SeeAlso: AH=04h"Emulaser",AH=0Eh,INT 1A/AH=E5h
  31247. ----------1703-------------------------------
  31248. INT 17 - IBM SurePath BIOS - Officially "Private" Function
  31249. AH = 03h
  31250. SeeAlso: AH=04h"IBM",AH=05h"IBM"
  31251. --------c-1703-------------------------------
  31252. INT 17 - PC-MOS/386 v5.01 - PRINT SPOOLER - PRINT STRING
  31253. AH = 03h
  31254. DX = printer port number
  31255. CX = number of characters to print
  31256. DS:SI -> string
  31257. Return: AH = printer status (see #00631)
  31258. CX = number of characters actually printed
  31259. Desc: send an entire string of chars to the print spooler with a single call
  31260. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  31261. operating system by The Software Link, Inc.
  31262. SeeAlso: AH=00h,AH=01h,AH=02h,AH=FFh"PC-MOS"
  31263. --------c-1703--BX5A00-----------------------
  31264. INT 17 - DMP Print Spooler v2.03 - INSTALLATION CHECK
  31265. AH = 03h
  31266. BX = 5A00h
  31267. Return: AX = 5ACBh
  31268. DI = 0000h
  31269. ES = DMP code segment (also data segment)
  31270. Program: DMP is a Printer driver/spooler, by DMP (USA), available on the
  31271. PCTODAY disk, volume 10, March 1991
  31272. --------N-170300-----------------------------
  31273. INT 17 - DOSISODE to WATTCP TSR Interface - "socket"
  31274. AX = 0300h
  31275. CX = type of socket from socket( domain, type, protocol )
  31276. DX = local identifier of socket (0 - 31)
  31277. Return: AX = 0000h success
  31278. CX = segment of 4500 byte transfer buffer
  31279. DX = offset of 4500 byte transfer buffer
  31280. = FFFFH failure
  31281. CX = error code
  31282. ENFILE 23
  31283. Program: DOSISODE is the ISO developers environment which has been ported to
  31284. DOS and will run with the Waterloo TCP turned into a resident TSR.
  31285. Currently it allows a maximum of 6 open sockets.
  31286. Note: this function will initialize the interface the first time it is
  31287. called
  31288. SeeAlso: AX=0400h"DOSISODE",AX=0600h"DOSISODE",AX=0800h"DOSISODE"
  31289. SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
  31290. --------P-1704-------------------------------
  31291. INT 17 U - Emulaser ELTSR - BEGIN CAPTURING OUTPUT
  31292. AH = 04h
  31293. Note: has no effect unless ELTSR is deactivated (see AX=0503h)
  31294. SeeAlso: AH=03h"Emulaser",AX=0503h,INT 1A/AH=E5h
  31295. ----------1704-------------------------------
  31296. INT 17 - IBM SurePath BIOS - Officially "Private" Function
  31297. AH = 04h
  31298. SeeAlso: AH=03h"IBM",AH=05h"IBM"
  31299. --------N-170400-----------------------------
  31300. INT 17 - DOSISODE to WATTCP TSR Interface - "bind"
  31301. AX = 0400h
  31302. Note: this function just returns
  31303. SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0C00h"DOSISODE"
  31304. ----------1705-------------------------------
  31305. INT 17 - IBM SurePath BIOS - Officially "Private" Function
  31306. AH = 05h
  31307. SeeAlso: AH=03h"IBM",AH=04h"IBM"
  31308. --------P-170500-----------------------------
  31309. INT 17 U - Emulaser ELTSR - ???
  31310. AX = 0500h
  31311. ???
  31312. Return: AX = unload status (0001h safe to unload, 0002h not safe)
  31313. BX = ???
  31314. CX = PSP segment of ELTSR
  31315. DX = activity flag (0000h disabled, 0001h capturing, 0002h ???printing)
  31316. SI = ???
  31317. DI = ???
  31318. SeeAlso: AH=04h,INT 1A/AH=E5h
  31319. --------N-170500-----------------------------
  31320. INT 17 - DOSISODE to WATTCP TSR Interface - "connect"
  31321. AX = 0500h
  31322. SeeAlso: AX=0400h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE"
  31323. --------P-170501-----------------------------
  31324. INT 17 U - Emulaser ELTSR - UNHOOK INTERRUPTS
  31325. AX = 0501h
  31326. Return: (see AX=0500h)
  31327. Note: restores interrupt vectors without checking whether they have been
  31328. hooked by later programs; should only be called if ELTSR reports
  31329. that it is safe to unload
  31330. SeeAlso: AH=04h,AX=0500h,AX=0503h,INT 1A/AH=E5h
  31331. Index: uninstall;Emulaser ELTSR
  31332. --------P-170502-----------------------------
  31333. INT 17 U - Emulaser ELTSR - SET ???
  31334. AX = 0502h
  31335. BL = Emulaser port (31h = LPT1, 32h = LPT2, 33h = LPT3)
  31336. CL = ???
  31337. DL = ???
  31338. Return: (see AX=0500h)
  31339. SeeAlso: AH=04h,AX=0500h,INT 1A/AH=E5h
  31340. --------P-170503-----------------------------
  31341. INT 17 U - Emulaser ELTSR - DEACTIVATE???
  31342. AX = 0503h
  31343. Return: (see AX=0500h)
  31344. SeeAlso: AH=04h,AX=0500h,AX=0501h,INT 1A/AH=E5h
  31345. --------P-1706-------------------------------
  31346. INT 17 U - Emulaser ELTSR - ???
  31347. AH = 06h
  31348. ???
  31349. Return: ???
  31350. SeeAlso: AX=0500h,AX=0503h,AH=07h"ELTSR",INT 1A/AH=E5h
  31351. --------N-170600-----------------------------
  31352. INT 17 - DOSISODE to WATTCP TSR Interface - "listen"
  31353. AX = 0600h
  31354. Note: this function just returns
  31355. SeeAlso: AX=0300h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE"
  31356. SeeAlso: AX=0E00h"DOSISODE"
  31357. --------P-1707-------------------------------
  31358. INT 17 U - Emulaser ELTSR - OPEN CAPTURE FILE
  31359. AH = 07h
  31360. ES:DX -> ASCIZ filename to be opened
  31361. Return: ???
  31362. Note: new output will be appended to the specified file
  31363. SeeAlso: AH=08h,INT 1A/AH=E5h
  31364. --------N-170700-----------------------------
  31365. INT 17 - DOSISODE to WATTCP TSR Interface - "accept"
  31366. AX = 0700h
  31367. Note: this function just returns
  31368. SeeAlso: AX=0600h"DOSISODE",AX=0800h"DOSISODE",AX=0C00h"DOSISODE"
  31369. --------P-1708-------------------------------
  31370. INT 17 U - Emulaser ELTSR - CLOSE CAPTURE FILE
  31371. AH = 08h
  31372. ???
  31373. Return: ???
  31374. Desc: close the file previously opened by function 07h
  31375. SeeAlso: AH=07h,INT 1A/AH=E5h
  31376. --------N-170800-----------------------------
  31377. INT 17 - DOSISODE to WATTCP TSR Interface - "recvfrom"
  31378. AX = 0800h
  31379. SeeAlso: AX=0500h"DOSISODE",AX=0900h"DOSISODE",AX=0A00h"DOSISODE"
  31380. --------P-1709-------------------------------
  31381. INT 17 U - Emulaser ELTSR - PRINT CAPTURE FILE???
  31382. AH = 09h
  31383. BX = ???
  31384. CX = ???
  31385. DX = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  31386. Return: AX = status
  31387. 00h successful
  31388. FFh failed
  31389. Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
  31390. Vertisoft Systems, Inc.
  31391. Note: this function calls through to INT 1A/AX=E401h, and thus requires
  31392. that either ELSPL or Disk Spool II be installed
  31393. SeeAlso: AH=0Ah,INT 1A/AX=E401h,INT 1A/AH=E5h
  31394. --------N-170900-----------------------------
  31395. INT 17 - DOSISODE to WATTCP TSR Interface - "sendto"
  31396. AX = 0900h
  31397. SeeAlso: AX=0700h"DOSISODE",AX=0800h"DOSISODE",AX=0A00h"DOSISODE"
  31398. --------P-170A-------------------------------
  31399. INT 17 U - Emulaser ELTSR - SET ??? FILENAME
  31400. AH = 0Ah
  31401. ES:BX -> ??? buffer
  31402. CX = length of ??? buffer
  31403. Return: ???
  31404. Note: copies the specified name into the buffer passed to ELSPL as the
  31405. filename by AH=09h
  31406. SeeAlso: AH=09h,INT 1A/AH=E5h
  31407. --------N-170A00-----------------------------
  31408. INT 17 - DOSISODE to WATTCP TSR Interface - "select"
  31409. AX = 0A00h
  31410. SeeAlso: AX=0800h"DOSISODE",AX=0B00h"DOSISODE",AX=0E00h"DOSISODE"
  31411. --------P-170B-------------------------------
  31412. INT 17 U - Emulaser ELTSR - GET ???
  31413. AH = 0Bh
  31414. Return: AX:BX -> ???
  31415. SeeAlso: AH=0Ah,INT 1A/AH=E5h
  31416. ----------170B-------------------------------
  31417. INT 17 - IBM SurePath BIOS - Officially "Private" Function
  31418. AH = 0Bh
  31419. SeeAlso: AH=03h"IBM",AH=0Ch"IBM"
  31420. --------N-170B00-----------------------------
  31421. INT 17 - DOSISODE to WATTCP TSR Interface - "ioctl"
  31422. AX = 0B00h
  31423. DX = local identifier of socket (0 - 31)
  31424. Note: this function sets the socket into non_block mode
  31425. SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
  31426. --------P-170C-------------------------------
  31427. INT 17 U - Emulaser ELTSR - SET ??? FLAG
  31428. AH = 0Ch
  31429. ???
  31430. Return: ???
  31431. SeeAlso: AH=0Bh,INT 1A/AH=E5h
  31432. ----------170C-------------------------------
  31433. INT 17 - IBM SurePath BIOS - Officially "Private" Function
  31434. AH = 0Ch
  31435. SeeAlso: AH=0Bh"IBM",AH=0Dh"IBM"
  31436. --------N-170C00-----------------------------
  31437. INT 17 - DOSISODE to WATTCP TSR Interface - "close"
  31438. AX = 0C00h
  31439. SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0D00h"DOSISODE"
  31440. --------P-170D-------------------------------
  31441. INT 17 U - Emulaser ELTSR - GET TRUE ScrlLk STATE
  31442. AH = 0Dh
  31443. Return: AX = state (0000h off, 0010h on)
  31444. Desc: determine the actual state of ScrlLk even when Emulaser is controlling
  31445. the ScrlLk light as its activity indicator
  31446. SeeAlso: AH=0Ch,INT 16/AH=02h,INT 1A/AH=E5h
  31447. ----------170D-------------------------------
  31448. INT 17 - IBM SurePath BIOS - Officially "Private" Function
  31449. AH = 0Dh
  31450. SeeAlso: AH=0Ch"IBM",AH=0Eh"IBM"
  31451. --------N-170D00-----------------------------
  31452. INT 17 - DOSISODE to WATTCP TSR Interface - "shutdown" - SHUTDOWN INTERFACE
  31453. AX = 0D00h
  31454. Note: this function is used to shutdown the interface
  31455. SeeAlso: AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
  31456. --------P-170E-------------------------------
  31457. INT 17 U - Emulaser ELTSR - BACKGROUND PROCESSING
  31458. AH = 0Eh
  31459. Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
  31460. Vertisoft Systems, Inc.
  31461. Note: this function is called by ELTSR on every INT 08 to allow data to be
  31462. processed in the background, but may also be called by applications
  31463. to give Emulaser additional CPU time
  31464. SeeAlso: AH=0Dh,INT 1A/AH=E5h
  31465. ----------170E-------------------------------
  31466. INT 17 - IBM SurePath BIOS - Officially "Private" Function
  31467. AH = 0Eh
  31468. SeeAlso: AH=03h"IBM",AH=0Dh"IBM",AH=80h"IBM"
  31469. --------N-170E00-----------------------------
  31470. INT 17 - DOSISODE to WATTCP TSR Interface - INSTALLATION CHECK
  31471. AX = 0E00h
  31472. Return: CX = 1234h if installed
  31473. Program: DOSISODE is the ISO developers environment which has been ported to
  31474. DOS and will run with the Waterloo TCP turned into a resident TSR.
  31475. Currently it allows a maximum of 6 open sockets.
  31476. Note: this function is used to check if the interface is loaded
  31477. SeeAlso: AX=0300h"DOSISODE",AX=0A00h"DOSISODE"
  31478. --------P-172000-----------------------------
  31479. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - INSTALLATION CHECK
  31480. AX = 2000h
  31481. BL = printer number???
  31482. Return: AX = status (see #00639)
  31483. BX = driver version number (BH=major,BL=minor)
  31484. CH = ??? (00h)
  31485. CL = ???
  31486. DX = ??? (0100h)
  31487. Note: also enables the remaining printer driver functions (2001h-2007h)
  31488. SeeAlso: AX=2001h,AX=2002h,AX=2003h,AX=2004h,AX=2005h,AX=2006h,AX=2007h
  31489. (Table 00639)
  31490. Values for PC Paint function status:
  31491. 0000h successful
  31492. 0001h invalid printer???
  31493. 0002h ???
  31494. 0003h invalid subfunction
  31495. 0005h driver disabled, must call function 00h first
  31496. 0009h unknown printer error
  31497. 000Bh printer not selected
  31498. 000Ch printer out of paper
  31499. 000Eh error while writing to serial printer
  31500. 000Fh ???
  31501. 0010h invalid function number
  31502. 0011h value out of range
  31503. --------P-172001-----------------------------
  31504. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - SET ??? FLAG
  31505. AX = 2001h
  31506. BL = printer number???
  31507. Return: AX = status (see #00639)
  31508. --------P-172002-----------------------------
  31509. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET INFORMATION
  31510. AX = 2002h
  31511. BL = printer number???
  31512. CL = desired information
  31513. 00h printer type
  31514. Return: ES:DI -> ASCIZ printer name
  31515. 01h paper size
  31516. DX = size index
  31517. Return: ES:DI -> ASCIZ paper size description
  31518. 02h ???
  31519. Return: BX = ???
  31520. 03h printer information???
  31521. DX = ???
  31522. ES:BX -> buffer for ??? (min 134 bytes)
  31523. Return: AX = status (see #00639)
  31524. SeeAlso: AX=2000h,AX=2004h
  31525. --------P-172003-----------------------------
  31526. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ???
  31527. AX = 2003h
  31528. ES:BX -> ???
  31529. Return: AX = status (see #00639)
  31530. SeeAlso: AX=2000h,AX=2004h
  31531. --------P-172004-----------------------------
  31532. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET ???
  31533. AX = 2004h
  31534. BL = printer number???
  31535. Return: AX = status (see #00639)
  31536. ES:DI -> ???
  31537. SeeAlso: AX=2000h,AX=2003h
  31538. --------P-172005-----------------------------
  31539. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE PRINTER TO NEXT PAGE
  31540. AX = 2005h
  31541. BL = printer number???
  31542. Return: AX = status (see #00639)
  31543. Note: this function also clears the flag set by AX=2001h
  31544. SeeAlso: AX=2000h,AX=2001h,AX=2006h
  31545. --------P-172006-----------------------------
  31546. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE TO NEXT PAGE & SHUT DOWN
  31547. AX = 2006h
  31548. BL = printer number???
  31549. Return: AX = status (see #00639)
  31550. Note: this function also clears the flag set by AX=2001h and disables
  31551. functions other than AX=2000h
  31552. SeeAlso: AX=2000h,AX=2001h,AX=2005h
  31553. --------P-172007-----------------------------
  31554. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - UNIMPLEMENTED
  31555. AX = 2007h
  31556. Return: AX unchanged
  31557. SeeAlso: AX=2000h
  31558. --------N-172400-----------------------------
  31559. INT 17 - Shamrock Software NET.24 v3.11+ - ENABLE/DISABLE API FUNCTIONS
  31560. AX = 2400h
  31561. DL = new state
  31562. 00h disabled
  31563. 01h enabled
  31564. Return: DL = 24h if installed
  31565. DH = minor version number
  31566. CX = network address of this machine
  31567. AL = status (see #00640)
  31568. SeeAlso: AX=2403h,INT 16/AX=4500h
  31569. (Table 00640)
  31570. Values for NET.24 function status:
  31571. 00h successful
  31572. 01h timeout
  31573. 02h header error
  31574. 03h data error
  31575. 04h busy
  31576. 05h invalid parameters
  31577. --------N-172401-----------------------------
  31578. INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, NO HANDSHAKE
  31579. AX = 2401h
  31580. BL = timeout in clock ticks
  31581. Return: AL = status (see #00640)
  31582. DX:BX -> receive buffer
  31583. SeeAlso: AX=2402h,AX=2404h,AX=2408h
  31584. --------N-172402-----------------------------
  31585. INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT BLOCK, NO HANDSHAKE
  31586. AX = 2402h
  31587. transmit buffer filled (see AX=2403h)
  31588. Return: AL = status (see #00640)
  31589. SeeAlso: AX=2401h,AX=2403h,AX=2404h,AX=2409h
  31590. --------N-172403-----------------------------
  31591. INT 17 - Shamrock Software NET.24 v3.11+ - GET STATUS AND TRANSMISSION BUFFER
  31592. AX = 2403h
  31593. Return: AL = status (see #00640)
  31594. CX = number of characters in receive ring buffer
  31595. DX:BX -> transmit buffer
  31596. SeeAlso: AX=2400h,AX=2402h
  31597. --------N-172404-----------------------------
  31598. INT 17 - Shamrock Software NET.24 v3.11+ - SEND ACK BLOCK
  31599. AX = 2404h
  31600. BX = target address
  31601. Return: AL = status (see #00640)
  31602. SeeAlso: AX=2402h,AX=2405h
  31603. --------N-172405-----------------------------
  31604. INT 17 - Shamrock Software NET.24 v3.11+ - SEND NAK BLOCK
  31605. AX = 2405h
  31606. BX = target address
  31607. Return: AL = status (see #00640)
  31608. SeeAlso: AX=2402h,AX=2404h
  31609. --------N-172406-----------------------------
  31610. INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED RECEIVE
  31611. AX = 2406h
  31612. Return: AL = status (see #00640)
  31613. SeeAlso: AX=2407h,AX=240Ah
  31614. --------N-172407-----------------------------
  31615. INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE CHARACTER FROM REMOTE
  31616. AX = 2407h
  31617. Return: AL = status (see also #00640)
  31618. 06h end of data
  31619. DL = received character
  31620. SeeAlso: AX=2406h
  31621. --------N-172408-----------------------------
  31622. INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, WITH HANDSHAKE
  31623. AX = 2408h
  31624. Return: AL = status (see also #00640)
  31625. 06h end of data
  31626. CX = number of bytes in receive buffer
  31627. DX:SI -> receive buffer
  31628. SeeAlso: AX=2401h,AX=2405h,AX=2409h
  31629. --------N-172409-----------------------------
  31630. INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT COMMAND, WITH HANDSHAKE
  31631. AX = 2409h
  31632. BX = target address
  31633. CX = number of data bytes
  31634. DL = command code to send
  31635. DS:SI -> data bytes for command
  31636. Return: AL = status (see also #00640)
  31637. 03h no response
  31638. 06h remote currently unable to perform command
  31639. SeeAlso: AX=2405h,AX=2408h
  31640. --------N-17240A-----------------------------
  31641. INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED TRANSMIT
  31642. AX = 240Ah
  31643. Return: AL = status (see #00640)
  31644. SeeAlso: AX=2406h,AX=240Bh,AX=240Ch
  31645. --------N-17240B-----------------------------
  31646. INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT SINGLE CHARACTER TO REMOTE
  31647. AX = 240Bh
  31648. DL = character to send
  31649. Return: AL = status (see also AX=2400h)
  31650. 03h transmission error
  31651. 06h write error
  31652. SeeAlso: AX=2407h,AX=240Ah,AX=240Ch
  31653. --------N-17240C-----------------------------
  31654. INT 17 - Shamrock Software NET.24 v3.11+ - END CHARACTER-ORIENTED TRANSMIT
  31655. AX = 240Ch
  31656. Return: AL = status (see also AX=2400h)
  31657. 03h transmission error
  31658. 06h remote breaks connection
  31659. SeeAlso: AX=240Ah,AX=240Bh
  31660. --------p-174B00-----------------------------
  31661. INT 17 - Brother P-Touch - INSTALLATION CHECK
  31662. AX = 4B00h
  31663. Return: AX = 4249h ('BI' = Brother International) if installed
  31664. BX = program ID
  31665. 4550h ('EP') for "Epson FX-80 Emulator"
  31666. 5047h ('PG') for "Printer to Disk Utility"
  31667. CX = numbero of parallel port being emulated or intercepted
  31668. SeeAlso: AX=4B01h
  31669. --------p-174B01-----------------------------
  31670. INT 17 - Brother P-Touch - UNINSTALL
  31671. AX = 4B01h
  31672. Return: AX = segment of resident program or 0000h if unable to uninstall
  31673. Note: the calling program must manually free both the indicated segment
  31674. and the environment segment for the TSR with INT 21/AH=49h
  31675. (the environment is pointed at by the WORD at AX:002Ch)
  31676. SeeAlso: AX=4B00h,INT 21/AH=49h
  31677. --------J-175000-----------------------------
  31678. INT 17 - AX (Japanese AT) PRINTER - SET PRINTER COUNTRY CODE
  31679. AX = 5000h
  31680. BX = country code
  31681. 0001h USA (English), 0051h Japan
  31682. Return: AL = status
  31683. 00h successful
  31684. 01h bad country code
  31685. 02h other error
  31686. SeeAlso: AX=5001h,AH=51h,INT 10/AX=5000h,INT 16/AX=5000h
  31687. --------J-175001-----------------------------
  31688. INT 17 - AX (Japanese AT) PRINTER - GET PRINTER COUNTRY CODE
  31689. AX = 5001h
  31690. Return: AL = status
  31691. 00h successful
  31692. BX = country code
  31693. 02h error
  31694. SeeAlso: AX=5000h,AH=51h,INT 10/AX=5001h,INT 16/AX=5001h
  31695. --------J-1751-------------------------------
  31696. INT 17 - AX (Japanese AT) PRINTER - JIS to Shift-JIS CONVERSION
  31697. AH = 51h
  31698. DX = 2-byte JIS code
  31699. Return: DX = shift-JIS value or 0000h on error
  31700. Note: one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
  31701. characters to Shift-JIS characters, and the other performs the
  31702. opposite conversion
  31703. SeeAlso: AX=5000h,AH=52h
  31704. --------J-1752-------------------------------
  31705. INT 17 - AX (Japanese AT) PRINTER - Shift-JIS to JIS CONVERSION
  31706. AH = 52h
  31707. DX = 2-byte shift-JIS code
  31708. Return: DX = JIS code or 0000h on error
  31709. Note: one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
  31710. characters to Shift-JIS characters, and the other performs the
  31711. opposite conversion
  31712. SeeAlso: AH=51h
  31713. --------V-1760-------------------------------
  31714. INT 17 - FLASHUP.COM - INSTALLATION CHECK
  31715. AH = 60h
  31716. Return: AL = 60h
  31717. DX = CS of resident code
  31718. Notes: FLASHUP.COM is part of Flash-Up Windows by The Software Bottling Co.
  31719. FLASHUP also hooks INT 10 and receives commands via INT 10/AH=09h,0Ah
  31720. consisting of an 80h followed by the actual command
  31721. SeeAlso: INT 10/AH=09h,INT 10/AH=0Ah
  31722. --------V-1761-------------------------------
  31723. INT 17 - SPEEDSCR.COM - INSTALLATION CHECK
  31724. AH = 61h
  31725. Return: AL = 61h
  31726. DX = CS of resident code
  31727. Note: SPEEDSCR.COM is by The Software Bottling Co.
  31728. --------P-1762-------------------------------
  31729. INT 17 U - T2PS v1.0 - UNINSTALL
  31730. AH = 62h
  31731. Return: nothing
  31732. SeeAlso: AH=63h,AH=64h,INT 05/AX=554Eh
  31733. --------P-1763-------------------------------
  31734. INT 17 U - T2PS v1.0 - SET PARAMETERS
  31735. AH = 63h
  31736. ES:SI -> settings (see #00641)
  31737. Program: T2PS is a shareware ASCII-to-PostScript converter by A.N.D.
  31738. Technologies
  31739. SeeAlso: AH=62h,AH=64h,INT 05/AX=4E57h
  31740. Format of T2PS settings:
  31741. Offset Size Description (Table 00641)
  31742. 00h WORD LPT port number (0=LPT1, etc.)
  31743. 02h WORD page heigh in points
  31744. 04h WORD page width in points
  31745. 06h WORD top margin in points
  31746. 08h WORD bottom margin in points
  31747. 0Ah WORD left margin in points
  31748. 0Ch WORD right margin in points
  31749. 0Eh WORD font size in points
  31750. 10h WORD tab size
  31751. 12h WORD timeout in clock ticks
  31752. --------P-1764-------------------------------
  31753. INT 17 U - T2PS v1.0 - GET PARAMETERS
  31754. AH = 64h
  31755. ES:SI -> buffer for settings (see #00641)
  31756. Return: ES:SI buffer filled
  31757. SeeAlso: AH=62h,AH=63h,INT 05/AX=5053h
  31758. --------b-176F00BX0000-----------------------
  31759. INT 17 - HP Vectra - EXTENDED BIOS - "F17_INQUIRE" - INSTALLATION CHECK
  31760. AX = 6F00h
  31761. BX = 0000h
  31762. Return: BX = 4850h ("HP") if HP Extended BIOS printer extensions available
  31763. SeeAlso: AX=6F02h,INT 14/AX=6F00h,INT 10/AX=6F00h,INT 14/AX=6F00h
  31764. SeeAlso: INT 33/AX=6F00h,INT 6F/AH=00h"HP Vectra"
  31765. --------b-176F02-----------------------------
  31766. INT 17 - HP Vectra - EXTENDED BIOS - "F17_PUT_BUFFER" - PRINT BUFFER
  31767. AX = 6F02h
  31768. CX = size of buffer in bytes
  31769. DX = port number (0-3)
  31770. ES:DI -> buffer containing characters to be printed
  31771. Return: AH = printer status (see #00631)
  31772. CX = number of bytes successfully printed
  31773. ---on error (AH bit 0 set)---
  31774. ES:DI -> next byte to be sent
  31775. ---if successful---
  31776. ES:DI unchanged
  31777. SeeAlso: AH=00h,AX=6F00h,INT 14/AX=6F02h
  31778. ----------1780-------------------------------
  31779. INT 17 - IBM SurePath BIOS - Officially "Private" Function
  31780. AH = 80h
  31781. SeeAlso: AH=03h"IBM",AH=0Bh"IBM"
  31782. --------N-1781-------------------------------
  31783. INT 17 - Alloy NTNX, MW386 - CANCEL JOBS FOR CURRENT USER
  31784. AH = 81h
  31785. AL = 00h (NTNX compatibility mode)
  31786. CL = number of jobs to cancel
  31787. Return: AL = status (see #00642)
  31788. Note: this function cancels the last CL printouts for the current task
  31789. SeeAlso: AH=82h
  31790. (Table 00642)
  31791. Values for Alloy status:
  31792. 00h success
  31793. 01h-7Fh warning
  31794. 80h general failure
  31795. 81h host overloaded (NTNX only)
  31796. 82h module busy (NTNX only)
  31797. 83h host busy (NTNX only)
  31798. 84h re-entry flag set
  31799. 85h invalid request
  31800. 86h invalid printer
  31801. 87h invalid process ID
  31802. 89h access denied
  31803. 8Ah option not available for given port type
  31804. 8Bh option not available for given task type
  31805. 91h printer busy
  31806. C2h file not found
  31807. C3h path not found
  31808. C4h file access failure
  31809. --------N-1782-------------------------------
  31810. INT 17 - Alloy NTNX, MW386 - CANCEL ALL JOBS FOR CURRENT USER
  31811. AH = 82h
  31812. AL = 00h (NTNX compatibility mode)
  31813. Return: AL = status (see #00642)
  31814. SeeAlso: AH=81h
  31815. --------N-1783-------------------------------
  31816. INT 17 - Alloy NTNX, MW386 - SET NUMBER OF COPIES
  31817. AH = 83h
  31818. AL = mode
  31819. 00h NTNX compatibility
  31820. CL = number of copies (max 99, default 1)
  31821. 02h MW386 v2+
  31822. BX = logical device number
  31823. 00h-03h = LPT1-LPT4
  31824. 04h-07h = COM1-COM4
  31825. CX = number of copies
  31826. Return: AL = status (see #00642)
  31827. Note: in NTNX compatibility mode, this function only affects LPT1
  31828. --------N-1784-------------------------------
  31829. INT 17 - Alloy NTNX, MW386 - GENERATE PRINT BREAK
  31830. AH = 84h
  31831. AL = mode
  31832. 00h NTNX compatibility
  31833. 02h MW386 v2+
  31834. BX = logical device number
  31835. 00h-03h = LPT1-LPT4
  31836. 04h-07h = COM1-COM4
  31837. Note: closes spool file and tells spooler to queue the print job (LPT1 only
  31838. under MW386 in NTNX compatibility mode)
  31839. --------J-1784-------------------------------
  31840. INT 17 - AX (Japanese AT) PRINTER - OUTPUT CHARACTER WITHOUT CONVERSION
  31841. AH = 84h
  31842. AL = character
  31843. DX = printer number
  31844. Return: AH = printer status (see #00631)
  31845. SeeAlso: AH=00h,AH=85h
  31846. --------J-1785-------------------------------
  31847. INT 17 - AX (Japanese AT) PRINTER - ENABLE/DISABLE CHARACTER CONVERSION
  31848. AH = 85h
  31849. AL = new state (00h enabled, 01h disabled)
  31850. SeeAlso: AH=84h"AX"
  31851. --------N-1787-------------------------------
  31852. INT 17 - Alloy NTNX - SET INDOS POINTER
  31853. AH = 87h
  31854. AL = 00h
  31855. CX:BX -> buffer for user-written printer drivers
  31856. Return: BX,CX destroyed
  31857. Note: must be executed before the printer is enabled
  31858. SeeAlso: AH=8Ah
  31859. --------N-1788-------------------------------
  31860. INT 17 - Alloy NTNX, MW386 - REMOVE PRINTER FROM SPOOLER
  31861. AH = 88h
  31862. AL = mode
  31863. 00h NTNX compatibility
  31864. DX = NTNX printer number (see #00643)
  31865. 01h MW386
  31866. DX = MW386 printer number
  31867. Return: AH = status (see #00642)
  31868. Note: removes specified printer from the spooler's list of printers
  31869. SeeAlso: AH=89h,AH=8Bh
  31870. (Table 00643)
  31871. Values for Alloy NTNX printer number:
  31872. 00h host LPT1
  31873. 01h host LPT2
  31874. 02h host LPT3
  31875. 03h host LPT4
  31876. 04h host COM1
  31877. 05h host COM2
  31878. 06h user's logical COM2
  31879. 07h user's terminal AUX port
  31880. 08h user's logical COM1 (MW386 only)
  31881. --------N-1789-------------------------------
  31882. INT 17 - Alloy NTNX, MW386 - ADD PRINTER TO SPOOLER
  31883. AH = 89h
  31884. AL = mode
  31885. 00h NTNX compatibility
  31886. DX = NTNX printer number (see #00643)
  31887. 01h MW386
  31888. DX = MW386 printer number
  31889. Return: AL = status (see #00642)
  31890. Note: the specified printer is added to the spooler's list of available
  31891. printers
  31892. SeeAlso: AH=88h,AH=8Bh
  31893. --------N-178A-------------------------------
  31894. INT 17 - Alloy NTNX - ACTIVATE USER-WRITTEN PRINTER DRIVER
  31895. AH = 8Ah
  31896. ???
  31897. SeeAlso: AH=92h
  31898. --------N-178B-------------------------------
  31899. INT 17 - Alloy MW386 - GET PHYSICAL DEVICE NUMBER FROM NAME
  31900. AH = 8Bh
  31901. DS:DX -> ASCIZ printer name
  31902. Return: AL = status (see also AH=81h)
  31903. 00h successful
  31904. DX = physical device number
  31905. SeeAlso: AH=89h,AH=8Ch,INT 14/AH=20h"Alloy"
  31906. --------N-178C-------------------------------
  31907. INT 17 - Alloy MW386 - GET DEVICE NAME FROM PHYSICAL DEVICE NUMBER
  31908. AH = 8Ch
  31909. DX = physical device number
  31910. ES:DI -> 17-byte buffer for ASCIZ device name
  31911. Return: AL = status (see also AH=81h)
  31912. 00h successful
  31913. ES:DI buffer filled
  31914. SeeAlso: AH=88h,AH=8Bh
  31915. --------N-178D-------------------------------
  31916. INT 17 - Alloy NTNX,MW386 - RESET SPOOLER
  31917. AH = 8Dh
  31918. AL = 00h
  31919. Return: AL = status (see #00642)
  31920. Notes: clears all buffers and resets spooler to boot-up values
  31921. MW386 supports this function for compatibility only; it is a NOP
  31922. --------N-178E-------------------------------
  31923. INT 17 - Alloy NTNX - GET INT 28 ENTRY POINT
  31924. AH = 8Eh
  31925. AL = 00h
  31926. Return: CX:BX -> INT 28 entry point
  31927. SeeAlso: AH=8Fh
  31928. --------N-178F-------------------------------
  31929. INT 17 - Alloy NTNX - GET DOS INTERCEPT ENTRY POINT
  31930. AH = 8Fh
  31931. AL = 00h
  31932. Return: CX:BX -> DOS intercept routine
  31933. SeeAlso: AH=8Eh
  31934. --------N-1790-------------------------------
  31935. INT 17 - Alloy NTNX, MW386 - SPOOL FILE BY NAME
  31936. AH = 90h
  31937. AL = mode
  31938. 00h NTNX compatibility
  31939. DL = printer code (FFh=current) (NTNX, MW386 v1.x only)
  31940. DH = number of copies (FFh=current) (NTNX, MW386 v1.x only)
  31941. 02h MW386 v2+
  31942. BX = logical device number
  31943. 00h-03h = LPT1-LPT4
  31944. 04h-07h = COM1-COM4
  31945. CX:SI -> ASCIZ pathname
  31946. Return: AL = status (see #00642)
  31947. Note: in mode 00h, the file is always sent to logical LPT1
  31948. SeeAlso: AH=A0h
  31949. --------N-1791-------------------------------
  31950. INT 17 - Alloy NTNX, MW386 - GET USER NUMBER AND CURRENT PRINTER
  31951. AH = 91h
  31952. AL = mode
  31953. 00h NTNX compatibility
  31954. Return: CX = user number (00h = host)
  31955. DX = currently selected printer number (00h-08h)
  31956. 01h MW386
  31957. Return: CX = user number
  31958. DX = physical dev number of currently selected printer
  31959. 02h MW386 v2+
  31960. BX = logical device number
  31961. 00h-03h = LPT1-LPT4
  31962. 04h-07h = COM1-COM4
  31963. Return: CX = user number
  31964. DX = physical device number
  31965. Return: AL = status (see #00642)
  31966. SeeAlso: AH=8Ch
  31967. --------N-1792-------------------------------
  31968. INT 17 - Alloy NTNX - CHECK PRINTER DRIVER
  31969. AH = 92h
  31970. AL = 00h
  31971. CL = 00h
  31972. Return: CL = driver state
  31973. 01h initialized
  31974. 80h not initialized
  31975. AX = status (see #00642)
  31976. SeeAlso: AH=8Ah
  31977. --------N-1794-------------------------------
  31978. INT 17 - Alloy NTNX, MW386 - SELECT PRINTER
  31979. AH = 94h
  31980. AL = mode
  31981. 00h NTNX compatibility
  31982. DX = NTNX printer number (see #00643)
  31983. 01h MW386
  31984. DX = MW386 printer number
  31985. 02h MW386 v2+
  31986. BX = logical printer number
  31987. DX = MW386 printer number
  31988. Return: AL = status (see #00642)
  31989. Note: modes 00h and 01h affect only logical LPT1
  31990. SeeAlso: AH=8Bh,AH=95h
  31991. --------N-1795-------------------------------
  31992. INT 17 - Alloy NTNX, MW386 - GET CURRENT PRINTER
  31993. AH = 95h
  31994. AL = mode
  31995. 00h NTNX compatibility
  31996. Return: DX = NTNX printer number (see #00643)
  31997. (FFFFh if current printer not compatible with NTNX)
  31998. 01h MW386
  31999. Return: DX = MW386 printer number
  32000. 02h MW386 v2+
  32001. BX = logical device number
  32002. 00h-03h = LPT1-LPT4
  32003. 04h-07h = COM1-COM4
  32004. Return: DX = MW386 printer number (FFFFh = none)
  32005. Return: AL = status (see #00642)
  32006. Note: modes 00h and 01h return the printer number of logical LPT1 only
  32007. SeeAlso: AH=94h
  32008. --------N-1796-------------------------------
  32009. INT 17 - Alloy NTNX - SET SERIAL PORT PARAMETERS
  32010. AH = 96h
  32011. AL = 00h
  32012. Note: documentation states that this is a NOP, doing only XOR AX,AX before
  32013. returning
  32014. SeeAlso: INT 14/AH=24h
  32015. --------N-1797-------------------------------
  32016. INT 17 - Alloy NTNX, MW386 - SET DATA DRIVEN PRINT BREAK
  32017. AH = 97h
  32018. AL = mode
  32019. 00h NTNX compatibility
  32020. 02h MW386 v2+
  32021. BX = logical device number
  32022. 00h-03h = LPT1-LPT4
  32023. 04h-07h = COM1-COM4
  32024. CH,CL,DH = three character break sequence
  32025. DL = subfunction
  32026. 00h set break string
  32027. else reset break
  32028. Return: AL = status (see #00642)
  32029. Notes: mode 00h affects only logical LPT1
  32030. when the break string is encountered, the spool file will be closed and
  32031. queued for printing automatically
  32032. the break string is not permanently saved, and will be reset each time
  32033. MW386 or the user is rebooted
  32034. SeeAlso: AH=9Bh
  32035. --------N-1798-------------------------------
  32036. INT 17 - Alloy NTNX,MW386 - RESTART PRINTER
  32037. AH = 98h
  32038. AL = 00h
  32039. DL = printer number (FFh=current)
  32040. Return: AL = status
  32041. 00h successful
  32042. 01h incorrect printer
  32043. 02h task not found
  32044. Note: MW386 supports this function for compatibility only; it is a NOP
  32045. --------N-1799-------------------------------
  32046. INT 17 - Alloy NTNX, MW386 - GET/SET PRINTER MODE
  32047. AH = 99h
  32048. AL = mode
  32049. 00h NTNX compatibility
  32050. DL = NTNX printer number (see #00643)
  32051. (FFh = task's current logical LPT1)
  32052. DH = mode (see #00644)
  32053. 01h MW386
  32054. DX = MW386 printer number
  32055. CL = mode (as for DH above)
  32056. Return: AL = status (see #00642)
  32057. DH = mode (bits 1 and 2 set as above)
  32058. DL = printer owner's user number if not spooled
  32059. Bitfields for Alloy printer mode:
  32060. 0 get mode if 1, set mode if 0 (Table 00644)
  32061. 1 private ("attached")
  32062. 2 direct instead of spooled
  32063. 3-7 reserved (0)
  32064. --------N-179A-------------------------------
  32065. INT 17 - Alloy NTNX,MW386 - SET TAB EXPANSION
  32066. AH = 9Ah
  32067. AL = mode
  32068. 00h NTNX compatibility
  32069. DX = NTNX printer number (see #00643)
  32070. (FFFFh = current logical LPT1)
  32071. 01h MW386
  32072. DX = MW386 printer number
  32073. CL = tab length (00h = no expansion, 01h-63h = spaces per tab)
  32074. Return: AL = status (see #00642)
  32075. Note: beginning with MW386 v2.0, tab expansion is set on a per-printer basis
  32076. rather than a per-user basis; NTNX and MW386 v1.x ignore DX
  32077. SeeAlso: AH=A4h
  32078. --------N-179B-------------------------------
  32079. INT 17 - Alloy NTNX,MW386 - SET PRINT BREAK TIMEOUT
  32080. AH = 9Bh
  32081. AL = mode
  32082. 00h NTNX compatibility
  32083. CX = timeout value in clock ticks (1/18 sec) (00h = never)
  32084. 01h MW386
  32085. CX = timeout value in seconds (00h = never)
  32086. 02h MW386 v2+
  32087. BX = logical device number
  32088. 00h-03h = LPT1-LPT4
  32089. 04h-07h = COM1-COM4
  32090. CX = timeout value in seconds (00h = never)
  32091. Return: AL = status (see #00642)
  32092. Notes: modes 00h and 01h affect only the current logical LPT1
  32093. if no data is sent to a printer for the specified amount of time, the
  32094. spool file will be closed and queued for printing automatically
  32095. SeeAlso: AH=97h
  32096. --------N-17A0-------------------------------
  32097. INT 17 - Alloy MW386 - SPOOL COPY OF FILE
  32098. AH = A0h
  32099. AL = mode
  32100. 00h NTNX compatibility
  32101. DX = ??? (NTNX, MW386 v1.x only)
  32102. 02h MW386 v2+
  32103. BX = logical device number
  32104. 00h-03h = LPT1-LPT4
  32105. 04h-07h = COM1-COM4
  32106. CX:SI -> ASCIZ pathname
  32107. Return: AL = status (see #00642)
  32108. Notes: makes a copy of the specified file in the spooler's directory, allowing
  32109. the original file to be modified or deleted while the copy is printed
  32110. in mode 00h, the file is printed on logical LPT1
  32111. SeeAlso: AH=90h
  32112. --------N-17A4-------------------------------
  32113. INT 17 - Alloy MW386 - ENABLE/DISABLE FORM FEED
  32114. AH = A4h
  32115. AL = new state
  32116. 00h form feed after end of print job disabled
  32117. 01h form feed enabled
  32118. Return: AL = status (see #00642)
  32119. Note: only affects the current logical LPT1
  32120. SeeAlso: AH=9Ah,AH=A6h,INT 7F/AH=05h"NTNX (Host)"
  32121. --------N-17A6-------------------------------
  32122. INT 17 - Alloy MW386 - ENABLE/DISABLE BANNER PAGE
  32123. AH = A6h
  32124. AL = new state
  32125. 00h banner page before print job disabled
  32126. 01h banner page enabled
  32127. Return: AL = status (see #00642)
  32128. Note: only affects the current logical LPT1
  32129. SeeAlso: AH=A4h
  32130. --------N-17A7-------------------------------
  32131. INT 17 - Alloy MW386 v2+ - GET/SET SPOOL FLAGS
  32132. AH = A7h
  32133. AL = spool flags (see #00645)
  32134. BX = logical device number
  32135. 00h-03h = LPT1-LPT4
  32136. 04h-07h = COM1-COM4
  32137. Return: AL = status (see #00642)
  32138. Note: the documentation does not state which register contains the result of
  32139. a GET
  32140. SeeAlso: AH=A4h,AH=A6h
  32141. Bitfields for Alloy spool flags:
  32142. Bit(s) Description (Table 00645)
  32143. 0 banner page enabled (see AH=A6h)
  32144. 1 form feed enabled (see AH=A4h)
  32145. 2-6 reserved (0)
  32146. 7 set flags if 1, get flags if 0
  32147. --------N-17A8-------------------------------
  32148. INT 17 - Alloy MW386 - DEFINE TEMPORARY FILENAME
  32149. AH = A8h
  32150. CX:SI -> ASCIZ filename without extension (max 8 chars)
  32151. Return: AL = status (see #00642)
  32152. Note: allows application to specify banner page filename for spool files
  32153. collected from the application's printer output
  32154. SeeAlso: AH=A9h
  32155. --------N-17A9-------------------------------
  32156. INT 17 - Alloy MW386 - CHANGE TEMPORARY SPOOL DRIVE
  32157. AH = A9h
  32158. AL = new spool drive (2=C:,3=D:,etc)
  32159. Return: AL = status (see #00642)
  32160. Note: does not remove previous spooling directory since jobs may be pending
  32161. SeeAlso: AH=A8h
  32162. --------N-17AA-------------------------------
  32163. INT 17 - Alloy MW386 v2+ - GET REAL-TIME PRINTER STATUS
  32164. AH = AAh
  32165. AL = mode
  32166. 00h NTNX
  32167. DX = NTNX printer number (see #00643)
  32168. 01h MW386
  32169. DX = MW386 printer number
  32170. Return: AH = instantaneous printer status
  32171. 00h printer ready
  32172. 01h not ready
  32173. 12h off line
  32174. 13h out of paper
  32175. 14h general device failure
  32176. 15h device timeout
  32177. 16h bad device number
  32178. --------N-17AF-------------------------------
  32179. INT 17 - Alloy MW386 - CHECK SPOOLER
  32180. AH = AFh
  32181. Return: AX = 55AAh if spooler available
  32182. --------c-17C0-------------------------------
  32183. INT 17 - PC Magazine PCSpool - GET CONTROL BLOCK ADDRESS
  32184. AH = C0h
  32185. DX = printer port (0-3)
  32186. Return: ES:BX -> control block (see #00646)
  32187. SeeAlso: AH=C1h
  32188. Format of PCSpool control block:
  32189. Offset Size Description (Table 00646)
  32190. 00h WORD printer number
  32191. 02h WORD address of printer status port
  32192. 04h WORD number of first record in queue
  32193. 06h WORD number of last record in queue
  32194. 08h DWORD characters already printed
  32195. 0Ch DWORD number of characters remaining
  32196. 10h DWORD pointer to dequeue buffer
  32197. 14h DWORD previous count of characters printed
  32198. 18h DWORD number of clock ticks taken to print them
  32199. 1Ch WORD offset of next character to output
  32200. 1Eh WORD offset of next character to print
  32201. 20h WORD pointer to spooling queue record
  32202. 22h BYTE current spooling status
  32203. 23h BYTE current printer status:
  32204. 00h OK
  32205. 01h not ready
  32206. 02h paused with message
  32207. 03h paused
  32208. 04h initializing
  32209. FEh non-existent port
  32210. FFh not spooled
  32211. 24h BYTE current control record type
  32212. 25h WORD observed printer speed
  32213. 27h WORD characters to print per service
  32214. 29h BYTE 01h if disk write needed
  32215. 2Ah BYTE 01h if queued data should be flushed
  32216. 2Bh BYTE 01h to update cps status
  32217. --------c-17C1--------------------------------
  32218. INT 17 - PC Magazine PCSpool - BUILD PAUSE CONTROL RECORD
  32219. AH = C1h
  32220. DX = printer port (0-3)
  32221. DS:SI -> ASCIZ string to save for display
  32222. Note: flushes pending writes
  32223. SeeAlso: AH=C0h,AH=C2h
  32224. --------c-17C2-------------------------------
  32225. INT 17 - PC Magazine PCSpool - FLUSH PENDING WRITES
  32226. AH = C2h
  32227. DX = printer port (0-3)
  32228. SeeAlso: AH=C3h
  32229. --------c-17C3-------------------------------
  32230. INT 17 - PC Magazine PCSpool - CANCEL PRINTER QUEUE (FLUSH ALL QUEUED OUTPUT)
  32231. AH = C3h
  32232. DX = printer port (0-3)
  32233. SeeAlso: AH=C2h,AH=C7h
  32234. --------c-17C4-------------------------------
  32235. INT 17 - PC Magazine PCSpool - QUERY SPOOLER ACTIVE
  32236. AH = C4h
  32237. Return: DI = B0BFh
  32238. SI = segment
  32239. --------c-17C5-------------------------------
  32240. INT 17 - PC Magazine PCSpool - JOB SKIP PRINTER QUEUE
  32241. AH = C5h
  32242. DX = printer port (0-3)
  32243. Note: cancels up to the pause record
  32244. --------c-17C6-------------------------------
  32245. INT 17 - PC Magazine PCSpool - CHECK PRINTER QUEUE STATUS
  32246. AH = C6h
  32247. DX = printer port (0-3)
  32248. Return: AX = queue status
  32249. 0000h printer not active or at pause
  32250. 0001h printer busy
  32251. --------c-17C7-------------------------------
  32252. INT 17 - PC Magazine PCSpool - CLOSE QUEUE
  32253. AH = C7h
  32254. DX = printer port (0-3)
  32255. SeeAlso: AH=C3h
  32256. --------P-17CD00-----------------------------
  32257. INT 17 - INSET - EXECUTE COMMAND STRING
  32258. AX = CD00h
  32259. DS:DX -> ASCIZ command string (max 80 bytes)
  32260. Return: CX = 07C2h (1986d)
  32261. Note: user interface menus pop up after last command, unless that command
  32262. exits INSET
  32263. --------P-17CD01-----------------------------
  32264. INT 17 - INSET - GET IMAGE SIZE
  32265. AX = CD01h
  32266. DS:DX -> ASCIZ name of image file
  32267. Return: AX = height in 1/720th inch
  32268. BX = width in 1/720th inch
  32269. CX = 07C2h (1986d)
  32270. --------P-17CD02-----------------------------
  32271. INT 17 - INSET - INITIALIZE
  32272. AX = CD02h
  32273. Return: CX = 07C2h (1986d)
  32274. Note: all open files are closed and the printer is reset
  32275. SeeAlso: AX=CD04h
  32276. --------P-17CD03-----------------------------
  32277. INT 17 - INSET - EXECUTE INSET MENU WITHIN OVERRIDE MODE
  32278. AX = CD03h
  32279. Return: CX = 07C2h (1986d)
  32280. --------P-17CD04-----------------------------
  32281. INT 17 - INSET - INITIALIZE LINKED MODE
  32282. AX = CD04h
  32283. ES:SI -> FAR routine for linked mode (see #00647)
  32284. Return: CX = 07C2h
  32285. SeeAlso: AX=CD02h,AX=CD08h
  32286. (Table 00647)
  32287. Values INSET linked-mode routine is called with:
  32288. AL = function
  32289. 00h send character to printer
  32290. BL = character to send
  32291. 01h send string to printer
  32292. CX = number of bytes to send
  32293. DS:DX -> buffer containing data
  32294. 02h move print head to horizontal starting position of image
  32295. Return: AX = status
  32296. 0000h success
  32297. 0001h failure
  32298. --------P-17CD05-----------------------------
  32299. INT 17 - INSET - START MERGING IMAGE INTO TEXT
  32300. AX = CD05h
  32301. DS:DX -> ASCIZ name of PIX file
  32302. CX = left margin of text in 1/720th inch
  32303. Return: AH = printer type
  32304. 00h page-oriented (multiple images may be placed side-by-side)
  32305. 01h line-oriented (use AX=CD06h for vertical paper movement)
  32306. CX = 07C2h (1986d)
  32307. SeeAlso: AX=CD07h
  32308. --------P-17CD06-----------------------------
  32309. INT 17 - INSET - GRAPHICS LINE FEED
  32310. AX = CD06h
  32311. Return: AH = completion status
  32312. 00h image complete
  32313. 01h image incomplete
  32314. CX = 07C2h (1986d)
  32315. SeeAlso: AX=CD09h
  32316. --------P-17CD07-----------------------------
  32317. INT 17 - INSET - FLUSH GRAPHICS FROM MERGE BUFFER
  32318. AX = CD07h
  32319. Return: CX = 07C2h
  32320. SeeAlso: AX=CD05h
  32321. --------P-17CD08-----------------------------
  32322. INT 17 - INSET - CANCEL LINK MODE
  32323. AX = CD08h
  32324. Return: CX = 07C2h
  32325. SeeAlso: AX=CD04h
  32326. --------P-17CD09-----------------------------
  32327. INT 17 - INSET - ALTER TEXT LINE SPACING
  32328. AX = CD09h
  32329. CX = line spacing in 1/720th inch
  32330. Return: CX = 07C2h
  32331. Note: not yet implemented, line spacing is currently fixed at 1/6 inch
  32332. SeeAlso: AX=CD06h
  32333. --------P-17CD0A-----------------------------
  32334. INT 17 - INSET - GET SETUP
  32335. AX = CD0Ah
  32336. DS:DX -> buffer for IN.SET data
  32337. Return: CX = 07C2h
  32338. --------P-17CD0B-----------------------------
  32339. INT 17 - INSET - START GETTING SCALED IMAGE
  32340. AX = CD0Bh
  32341. DS:SI -> ASCIZ pathname of .PIX file
  32342. BX = number of bitplanes
  32343. CX = number of rows in output bitmap
  32344. DX = number of columns in output bitmap
  32345. Return: AX = status
  32346. 0000h OK
  32347. FFFFh error
  32348. Note: image is returned in strips by repeated calls to AX=CD0Ch
  32349. --------P-17CD0C-----------------------------
  32350. INT 17 - INSET - GET NEXT IMAGE STRIP
  32351. AX = CD0Ch
  32352. Return: AX = status
  32353. 0000h OK but not complete
  32354. 0001h OK and image complete
  32355. FFFFh error
  32356. DS:SI -> buffer (max 4K) for bit map strip
  32357. CX = start row
  32358. DX = number of rows
  32359. BX = offset in bytes between bit planes
  32360. Note: buffer may be overwritten by subsequent calls
  32361. SeeAlso: AX=CD0Bh
  32362. --------P-17E0-------------------------------
  32363. INT 17 - EPP BIOS - INSTALLATION CHECK
  32364. AH = E0h
  32365. Return: ??? (AH <> E0h if installed ???)
  32366. SeeAlso: AX=0200h"EPP",AH=E1h,AH=E2h
  32367. --------P-17E1-------------------------------
  32368. INT 17 - EPP BIOS - DISABLE EPP
  32369. AH = E1h
  32370. ???
  32371. Return: ???
  32372. SeeAlso: AX=0200h"EPP",AH=E0h,AH=E2h
  32373. --------P-17E2-------------------------------
  32374. INT 17 - EPP BIOS - ENABLE EPP
  32375. AH = E2h
  32376. ???
  32377. Return: ???
  32378. SeeAlso: AX=0200h"EPP",AH=E0h,AH=E1h
  32379. --------P-17F0-------------------------------
  32380. INT 17 - NorthNet Jetstream API - INSTALLATION CHECK
  32381. AH = F0h
  32382. DX = printer port (0-3)
  32383. Return: AX = 0001h Jetstream present
  32384. else non-Jetstream port
  32385. Note: NorthNet Jetstream is a high-performance DMA-driven parallel card able
  32386. to drive printers at up to 80000 characters per second
  32387. --------P-17F1-------------------------------
  32388. INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER
  32389. AH = F1h
  32390. CX = data buffer length
  32391. DX = printer port (0-3)
  32392. DS:SI -> data buffer
  32393. Return: AX = status
  32394. 0000h printer not ready (see also AH=02h)
  32395. other printing started
  32396. SeeAlso: AH=00h,AH=F2h,AH=F3h,AH=F5h
  32397. --------P-17F2-------------------------------
  32398. INT 17 - NorthNet Jetstream API - GET PRINT PROGRESS STATUS
  32399. AH = F2h
  32400. DX = printer port (0-3)
  32401. Return: AX = status
  32402. 0000h prior print request finished
  32403. other number of characters left to print
  32404. SeeAlso: AH=02h,AH=F1h,AH=F3h
  32405. --------P-17F3-------------------------------
  32406. INT 17 - NorthNet Jetstream API - ABORT PRINT OPERATION
  32407. AH = F3h
  32408. DX = printer port (0-3)
  32409. Return: AX = number of unprinted characters due to abort
  32410. SeeAlso: AH=F1h,AH=F4h
  32411. --------P-17F4-------------------------------
  32412. INT 17 - NorthNet Jetstream API - SET COMPLETION (POST) ADDRESS
  32413. AH = F4h
  32414. DX = printer port (0-3)
  32415. DS:DS -> FAR post address (called with interrupts on)
  32416. SeeAlso: AH=F1h,AH=F3h
  32417. --------P-17F5-------------------------------
  32418. INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER FROM EXTENDED MEMORY
  32419. AH = F5h
  32420. CX = data buffer length
  32421. DX = printer port (0-3)
  32422. DS:SI -> data buffer (32-bit physical address)
  32423. Return: AX = status
  32424. 0000h printer not ready (see also AH=02h)
  32425. other printing started
  32426. SeeAlso: AH=F1h
  32427. --------c-17FF--BX0000-----------------------
  32428. INT 17 U - PC-MOS/386 v5.01 - PRINT SPOOLER - CLOSE SPOOL FILE
  32429. AH = FFh
  32430. BX = 0000h
  32431. CX = 0000h
  32432. DX = printer port number
  32433. Return: AH = printer status (see #00631 at AH=00h)
  32434. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  32435. operating system by The Software Link, Inc.
  32436. Desc: close the spool file immediately instead of waiting for the close time
  32437. to elapse
  32438. SeeAlso: AH=01h,AH=03h"PC-MOS"
  32439. --------B-18---------------------------------
  32440. INT 18 - DISKLESS BOOT HOOK (START CASSETTE BASIC)
  32441. Desc: called when there is no bootable disk available to the system
  32442. Notes: only PCs produced by IBM contain BASIC in ROM, so the action is
  32443. unpredictable on compatibles; this interrupt often reboots the
  32444. system, and often has no effect at all
  32445. network cards with their own BIOS can hook this interrupt to allow
  32446. a diskless boot off the network (even when a hard disk is present
  32447. if none of the partitions is marked as the boot partition)
  32448. SeeAlso: INT 2F/AX=4A06h,INT 86"NetBIOS"
  32449. --------J-1800-------------------------------
  32450. INT 18 - NEC PC-9800 series - KEYBOARD - GET KEYSTROKE
  32451. AH = 00h
  32452. Return: AX = keystroke
  32453. SeeAlso: AH=01h,AH=02h,INT 16/AH=00h
  32454. --------J-1801-------------------------------
  32455. INT 18 - NEC PC-9800 series - KEYBOARD - CHECK FOR KEYSTROKE
  32456. AH = 01h
  32457. Return: BH = status
  32458. 00h no keystrokes available
  32459. 01h keystroke available
  32460. AX = keystroke
  32461. SeeAlso: AH=00h,AH=02h,INT 16/AH=01h
  32462. --------J-1802-------------------------------
  32463. INT 18 - NEC PC-9800 series - KEYBOARD - GET SHIFT STATUS
  32464. AH = 02h
  32465. Return: AL = shift flags
  32466. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,INT 16/AH=02h
  32467. --------J-1803-------------------------------
  32468. INT 18 - NEC PC-9800 series - KEYBOARD - INITIALIZE
  32469. AH = 03h
  32470. ???
  32471. Return: ???
  32472. SeeAlso: AH=00h,AH=04h
  32473. --------J-1804-------------------------------
  32474. INT 18 - NEC PC-9800 series - KEYBOARD - KEY PRESSED
  32475. AH = 04h
  32476. ???
  32477. Return: ???
  32478. Note: details are not available at this time
  32479. SeeAlso: AH=00h,AH=02h,INT 16/AH=00h,INT 16/AH=01h,INT 16/AH=02h
  32480. --------J-18---------------------------------
  32481. INT 18 - NEC PC-9800 series - VIDEO
  32482. AH = function
  32483. 0Ah set video mode
  32484. 0Bh get video mode
  32485. 0Ch start text screen display
  32486. 0Dh end text screen display
  32487. 0Eh set single display area
  32488. 0Fh set multiple display area
  32489. 10h set cursor shape
  32490. 11h display cursor
  32491. 12h terminate cursor
  32492. 13h set cursor position
  32493. 14h read font patter
  32494. 16h initialize text video RAM
  32495. 1Ah define user character
  32496. others
  32497. ???
  32498. Return: ???
  32499. Notes: details are not available at this time
  32500. text video RAM is located at segments A000h (characters) and A200h
  32501. (attributes), graphics video RAM at segment C000h
  32502. Bitfields for NEC PC-9800 series video attributes:
  32503. Bit(s) Description (Table 00648)
  32504. 0 disable drawing character
  32505. 1 blinking
  32506. 2 reverse video
  32507. 3 underline
  32508. 4 vertical line
  32509. 7-5 color
  32510. (0=black, 1=blue, 2=red, 3=purple, 4=green, 5=cyan, 6=yellow, 7=white)
  32511. --------J-180E-------------------------------
  32512. INT 18 - NEC PC-9800 series - SET SINGLE DISPLAY AREA
  32513. AH = 0Eh
  32514. DX = offset of first byte to display???
  32515. Return: ???
  32516. SeeAlso: AH=1Bh,MEM 0050h:0001h
  32517. --------J-181B-------------------------------
  32518. INT 18 - NEC PC-9800 series - SET DISPLAY MODE
  32519. AH = 1Bh
  32520. AL = ??? (00h for text mode)
  32521. Return: ???
  32522. --------r-185350BX4849-----------------------
  32523. INT 18 - SPHINX C-- - WB.COM - API
  32524. AX = 5350h ('SP')
  32525. BX = 4849h ('HI')
  32526. CX = 4E58h ('NX')
  32527. DH = function
  32528. 01h set ???
  32529. DL = ???
  32530. 02h get ???
  32531. Return: DL = ???
  32532. 03h get ???
  32533. Return: ES:DI -> ??? data buffer
  32534. 06h ???
  32535. Return: AX = 7370h ('sp') if installed
  32536. BX = 6869h ('hi') if installed
  32537. CX = 6E78h ('nx') if installed
  32538. Program: SPHINX C-- is a shareware compiler by Peter Cellik for a language
  32539. which is a cross between C and assembler; WB.COM is the driver which
  32540. launches the WorkBench
  32541. --------s-186900-----------------------------
  32542. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET STATUS
  32543. AX = 6900h
  32544. Return: AX = amount of DRAM on card or 0000h if GUS not available
  32545. Program: YEA_GUS is a driver for the Graphics Ultra Sound which hooks INT 18h
  32546. and then shells out the the program requiring its services
  32547. SeeAlso: AX=6901h,AX=690Ah,AX=690Bh
  32548. --------s-186901-----------------------------
  32549. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESET
  32550. AX = 6901h
  32551. BX = number of active voices (14-32)
  32552. Return: nothing
  32553. SeeAlso: AX=6900h
  32554. --------s-186902-----------------------------
  32555. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOLUME FOR SPECIFIC VOICE
  32556. AX = 6902h
  32557. BX = voice number (00h-1Fh)
  32558. CX = linear volume (0000h-01FFh)
  32559. Return: nothing
  32560. SeeAlso: AX=6900h,AX=6903h,AX=6904h,AX=6909h,AX=690Ah
  32561. --------s-186903-----------------------------
  32562. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET FREQUENCY FOR VOICE
  32563. AX = 6903h
  32564. BX = voice number (00h-1Fh)
  32565. CX = frequency in Hz (0-44100)
  32566. Return: nothing
  32567. SeeAlso: AX=6902h,AX=6904h
  32568. --------s-186904-----------------------------
  32569. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET LEFT/RIGHT BALANCE
  32570. AX = 6904h
  32571. BX = voice number (00h-1Fh)
  32572. CX = balance (0 = left, 7 = even, 15 = right)
  32573. Return: nothing
  32574. SeeAlso: AX=6902h,AX=6903h
  32575. --------s-186905-----------------------------
  32576. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - PLAY MUSIC
  32577. AX = 6905h
  32578. BL = voice number
  32579. BH = sample type (0 = 8-bit, 1 = 16-bit)
  32580. CL = looping type (0 = none, 1 = forward, 2 = back and forth)
  32581. CH:DI = 20-bit starting address for voice data
  32582. DL:SI = 20-bit address for loop start
  32583. DH:BP = 20-bit address for loop end
  32584. SeeAlso: AX=6903h,AX=6906h,AX=690Bh
  32585. --------s-186906-----------------------------
  32586. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - LOAD SOUND DATA
  32587. AX = 6906h
  32588. BL = data format (1 = twos-complement, 0 = not)
  32589. BH = sample type (0 = 8-bit, 1 = 16-bit)
  32590. CX = number of bytes to send
  32591. ES:SI -> buffer containing data
  32592. DL:DI = 20-bit address of GUS DRAM at which to load sound data
  32593. SeeAlso: AX=6900h,AX=6905h,AX=690Ch
  32594. --------s-186907-----------------------------
  32595. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - STOP VOICE
  32596. AX = 6907h
  32597. BX = voice number (00h-1Fh)
  32598. Return: nothing
  32599. SeeAlso: AX=6908h,AX=690Dh
  32600. --------s-186908-----------------------------
  32601. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOICE END
  32602. AX = 6908h
  32603. BX = voice number (00h-1Fh)
  32604. CL:DX = 20-bit ending address
  32605. Return: nothing
  32606. SeeAlso: AX=690Bh
  32607. --------s-186909-----------------------------
  32608. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RAMP VOLUME
  32609. AX = 6909h
  32610. BL = voice number (00h-1Fh)
  32611. BH = looping type (0 = none, 1 = forward, 2 = back and forth)
  32612. CX = starting volume
  32613. DX = ending volume
  32614. DI:SI = time
  32615. Return: nothing
  32616. SeeAlso: AX=6902h,AX=690Ah
  32617. --------s-18690A-----------------------------
  32618. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET VOLUME
  32619. AX = 690Ah
  32620. BX = voice number (00h-1Fh)
  32621. Return: AX = current non-linear volume for voice
  32622. SeeAlso: AX=6902h,AX=6909h
  32623. --------s-18690B-----------------------------
  32624. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET POSITION
  32625. AX = 690Bh
  32626. BX = voice number
  32627. Return: BX:AX = 20-bit address at which voice is playing
  32628. SeeAlso: AX=6900h,AX=6905h,AX=6908h
  32629. --------s-18690C-----------------------------
  32630. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SAVE SOUND DATA
  32631. AX = 690Ch
  32632. BL = data format (1 = twos-complement, 0 = not)
  32633. BH = sample type (0 = 8-bit, 1 = 16-bit)
  32634. CX = number of bytes to get
  32635. ES:SI -> buffer for retrieved data
  32636. DL:DI = 20-bit address in GUS DRAM from which to read voice data
  32637. Return: nothing
  32638. SeeAlso: AX=6906h
  32639. --------s-18690D-----------------------------
  32640. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESTART VOICE
  32641. AX = 690Dh
  32642. BX = voice
  32643. CX = sample type (0 = 8-bit, 1 = 16-bit)
  32644. DX = looping type (0 = none, 1 = forward, 2 = back and forth)
  32645. Return: CX = balance value
  32646. SeeAlso: AX=6907h,AX=6908h
  32647. --------s-188000-----------------------------
  32648. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - INITIALIZE
  32649. AX = 8000h
  32650. Program: EURO_MOD is a .MOD file player for the Gravis Ultra Sound which hooks
  32651. INT 18h and then shells out to the program requiring its services
  32652. SeeAlso: AX=8001h,AX=8004h
  32653. --------s-188001-----------------------------
  32654. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - LOAD .MOD FILE
  32655. AX = 8001h
  32656. BX:CX -> ASCIZ filename
  32657. SeeAlso: AX=8000h,AX=8002h
  32658. --------s-188002-----------------------------
  32659. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - PLAY .MOD FILE
  32660. AX = 8002h
  32661. SeeAlso: AX=8002h,AX=8003h
  32662. --------s-188003-----------------------------
  32663. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - STOP PLAYING
  32664. AX = 8003h
  32665. --------s-188004-----------------------------
  32666. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - SHUTDOWN
  32667. AX = 8004h
  32668. SeeAlso: AX=8000h,AX=8003h
  32669. --------B-19---------------------------------
  32670. INT 19 - SYSTEM - BOOTSTRAP LOADER
  32671. Desc: This interrupt reboots the system without clearing memory or restoring
  32672. interrupt vectors. Because interrupt vectors are preserved, this
  32673. interrupt usually causes a system hang if any TSRs have hooked
  32674. vectors from 00h through 1Ch, particularly INT 08.
  32675. Notes: Usually, the BIOS will try to read sector 1, head 0, track 0 from drive
  32676. A: to 0000h:7C00h. If this fails, and a hard disk is installed, the
  32677. BIOS will read sector 1, head 0, track 0 of the first hard disk.
  32678. This sector should contain a master bootstrap loader and a partition
  32679. table (see #00650). After loading the master boot sector at
  32680. 0000h:7C00h, the master bootstrap loader is given control
  32681. (see #00653). It will scan the partition table for an active
  32682. partition, and will then load the operating system's bootstrap
  32683. loader (contained in the first sector of the active partition) and
  32684. give it control.
  32685. true IBM PCs and most clones issue an INT 18 if neither floppy nor hard
  32686. disk have a valid boot sector
  32687. to accomplish a warm boot equivalent to Ctrl-Alt-Del, store 1234h in
  32688. 0040h:0072h and jump to FFFFh:0000h. For a cold boot equivalent to
  32689. a reset, store 0000h at 0040h:0072h before jumping.
  32690. VDISK.SYS hooks this interrupt to allow applications to find out how
  32691. much extended memory has been used by VDISKs (see #00649). DOS 3.3+
  32692. PRINT hooks INT 19 but does not set up a correct VDISK header block
  32693. at the beginning of its INT 19 handler segment, thus causing some
  32694. programs to overwrite extended memory which is already in use.
  32695. the default handler is at F000h:E6F2h for 100% compatible BIOSes
  32696. MS-DOS 3.2+ hangs on booting (even from floppy) if the hard disk
  32697. contains extended partitions which point at each other in a loop,
  32698. since it will never find the end of the linked list of extended
  32699. partitions
  32700. under Windows Real and Enhanced modes, calling INT 19 will hang the
  32701. system in the same was as under bare DOS; under Windows Standard
  32702. mode, INT 19 will successfully perform a cold reboot as it appears
  32703. to have been redirected to a MOV AL,0FEh/OUT 64h,AL sequence
  32704. BUG: when loading the remainder of the DOS system files fails, various
  32705. versions of IBMBIO.COM/IO.SYS incorrectly restore INT 1E before
  32706. calling INT 19, assuming that the boot sector had stored the
  32707. contents of INT 1E at DS:SI instead of on the stack as it actually
  32708. does
  32709. SeeAlso: INT 14/AH=17h,INT 18"BOOT HOOK",INT 49"Tandy 2000",INT 5B"PC Cluster"
  32710. SeeAlso: MEM 0040h:0067h,MEM F000h:FFF0h,CMOS 0Fh
  32711. Format of VDISK header block (at beginning of INT 19 handler's segment):
  32712. Offset Size Description (Table 00649)
  32713. 00h 18 BYTEs n/a (for VDISK.SYS, the device driver header)
  32714. 12h 11 BYTEs signature string "VDISK Vn.m" for VDISK.SYS version n.m
  32715. 1Dh 15 BYTEs n/a
  32716. 2Ch 3 BYTEs linear address of first byte of available extended memory
  32717. Format of hard disk master boot sector:
  32718. Offset Size Description (Table 00650)
  32719. 00h 446 BYTEs Master bootstrap loader code
  32720. 1BEh 16 BYTEs partition record for partition 1 (see #00651)
  32721. 1CEh 16 BYTEs partition record for partition 2
  32722. 1DEh 16 BYTEs partition record for partition 3
  32723. 1EEh 16 BYTEs partition record for partition 4
  32724. 1FEh WORD signature, AA55h indicates valid boot block
  32725. Format of partition record:
  32726. Offset Size Description (Table 00651)
  32727. 00h BYTE boot indicator (80h = active partition)
  32728. 01h BYTE partition start head
  32729. 02h BYTE partition start sector (bits 0-5)
  32730. 03h BYTE partition start track (bits 8,9 in bits 6,7 of sector)
  32731. 04h BYTE operating system indicator (see #00652)
  32732. 05h BYTE partition end head
  32733. 06h BYTE partition end sector (bits 0-5)
  32734. 07h BYTE partition end track (bits 8,9 in bits 6,7 of sector)
  32735. 08h DWORD sectors preceding partition
  32736. 0Ch DWORD length of partition in sectors
  32737. SeeAlso: #00650
  32738. (Table 00652)
  32739. Values for operating system indicator:
  32740. 00h empty partition-table entry
  32741. 01h DOS 12-bit FAT
  32742. 02h XENIX root file system
  32743. 03h XENIX /usr file system (obsolete)
  32744. 04h DOS 16-bit FAT (up to 32M)
  32745. 05h DOS 3.3+ extended partition
  32746. 06h DOS 3.31+ Large File System (16-bit FAT, over 32M)
  32747. 07h QNX
  32748. 07h OS/2 HPFS
  32749. 07h Windows NT NTFS
  32750. 07h Advanced Unix
  32751. 07h see partition boot record; could be any of the above or others
  32752. 08h OS/2 (v1.0-1.3 only)
  32753. 08h AIX bootable partition, SplitDrive
  32754. 08h Commodore DOS
  32755. 08h DELL partition spanning multiple drives
  32756. 09h AIX data partition
  32757. 09h Coherent filesystem
  32758. 0Ah OS/2 Boot Manager
  32759. 0Ah OPUS
  32760. 0Ah Coherent swap partition
  32761. 0Bh Windows95 with 32-bit FAT
  32762. 0Ch Windows95 with 32-bit FAT (using LBA-mode INT 13 extensions)
  32763. 0Eh logical-block-addressable VFAT (same as 06h but using LBA-mode INT 13)
  32764. 0Fh logical-block-addressable VFAT (same as 05h but using LBA-mode INT 13)
  32765. 10h OPUS
  32766. 11h OS/2 Boot Manager hidden 12-bit FAT partition
  32767. 12h Compaq Diagnostics partition
  32768. 14h (resulted from using Novell DOS 7.0 FDISK to delete Linux Native part)
  32769. 14h OS/2 Boot Manager hidden sub-32M 16-bit FAT partition
  32770. 16h OS/2 Boot Manager hidden over-32M 16-bit FAT partition
  32771. 17h OS/2 Boot Manager hidden HPFS partition
  32772. 17h hidden NTFS partition
  32773. 18h AST special Windows swap file ("Zero-Volt Suspend" partition)
  32774. 19h Willowtech Photon coS
  32775. 1Bh hidden Windows95 FAT32 partition
  32776. 1Ch hidden Windows95 FAT32 partition (using LBA-mode INT 13 extensions)
  32777. 1Eh hidden LBA VFAT partition
  32778. 20h Willowsoft Overture File System (OFS1)
  32779. 21h officially listed as reserved
  32780. 21h FSo2
  32781. 23h officially listed as reserved
  32782. 24h NEC MS-DOS 3.x
  32783. 26h officially listed as reserved
  32784. 31h officially listed as reserved
  32785. 33h officially listed as reserved
  32786. 34h officially listed as reserved
  32787. 36h officially listed as reserved
  32788. 38h Theos
  32789. 3Ch PowerQuest PartitionMagic recovery partition
  32790. 40h VENIX 80286
  32791. 41h Personal RISC Boot
  32792. 41h PowerPC boot partition
  32793. 42h SFS (Secure File System) by Peter Gutmann
  32794. 45h EUMEL/Elan
  32795. 46h EUMEL/Elan
  32796. 47h EUMEL/Elan
  32797. 48h EUMEL/Elan
  32798. 4Fh Oberon boot/data partition
  32799. 50h OnTrack Disk Manager, read-only partition
  32800. 51h OnTrack Disk Manager, read/write partition
  32801. 51h NOVELL
  32802. 52h CP/M
  32803. 52h Microport System V/386
  32804. 53h OnTrack Disk Manager, write-only partition???
  32805. 54h OnTrack Disk Manager (DDO)
  32806. 55h EZ-Drive (see also INT 13/AH=FFh"EZ-Drive")
  32807. 56h GoldenBow VFeature
  32808. 5Ch Priam EDISK
  32809. 61h SpeedStor
  32810. 63h Unix SysV/386, 386/ix
  32811. 63h Mach, MtXinu BSD 4.3 on Mach
  32812. 63h GNU HURD
  32813. 64h Novell NetWare 286
  32814. 64h SpeedStore
  32815. 65h Novell NetWare (3.11)
  32816. 67h Novell
  32817. 68h Novell
  32818. 69h Novell
  32819. 70h DiskSecure Multi-Boot
  32820. 71h officially listed as reserved
  32821. 73h officially listed as reserved
  32822. 74h officially listed as reserved
  32823. 75h PC/IX
  32824. 76h officially listed as reserved
  32825. 7Eh F.I.X.
  32826. 80h Minix v1.1 - 1.4a
  32827. 81h Minix v1.4b+
  32828. 81h Linux
  32829. 81h Mitac Advanced Disk Manager
  32830. 82h Linux Swap partition
  32831. 82h Prime
  32832. 82h Solaris (Unix)
  32833. 83h Linux native file system (ext2fs/xiafs)
  32834. 84h OS/2-renumbered type 04h partition (related to hiding DOS C: drive)
  32835. 85h Linux EXT
  32836. 86h FAT16 volume/stripe set (Windows NT)
  32837. 87h HPFS Fault-Tolerant mirrored partition
  32838. 87h NTFS volume/stripe set
  32839. 93h Amoeba file system
  32840. 94h Amoeba bad block table
  32841. 99h Mylex EISA SCSI
  32842. A0h Phoenix NoteBIOS Power Management "Save-to-Disk" partition
  32843. A1h officially listed as reserved
  32844. A3h officially listed as reserved
  32845. A4h officially listed as reserved
  32846. A5h FreeBSD, BSD/386
  32847. A6h OpenBSD
  32848. A9h NetBSD (http://www.netbsd.org/)
  32849. B1h officially listed as reserved
  32850. B3h officially listed as reserved
  32851. B4h officially listed as reserved
  32852. B6h officially listed as reserved
  32853. B7h BSDI file system (secondarily swap)
  32854. B8h BSDI swap partition (secondarily file system)
  32855. BEh Solaris boot partition
  32856. C0h DR-DOS/Novell DOS secured partition
  32857. C0h CTOS
  32858. C1h DR DOS 6.0 LOGIN.EXE-secured 12-bit FAT partition
  32859. C4h DR DOS 6.0 LOGIN.EXE-secured 16-bit FAT partition
  32860. C6h DR DOS 6.0 LOGIN.EXE-secured Huge partition
  32861. C6h corrupted FAT16 volume/stripe set (Windows NT)
  32862. C7h Syrinx Boot
  32863. C7h corrupted NTFS volume/stripe set
  32864. CBh Reserved for DR-DOS secured FAT32
  32865. CCh Reserved for DR-DOS secured FAT32 (LBA)
  32866. CEh Reserved for DR-DOS secured FAT16 (LBA)
  32867. D0h Multiuser DOS secured FAT12
  32868. D1h Old Multiuser DOS secured FAT12
  32869. D4h Old Multiuser DOS secured FAT16 (<= 32M)
  32870. D5h Old Multiuser DOS secured extended partition
  32871. D6h Old Multiuser DOS secured FAT16 (> 32M)
  32872. D8h CP/M-86
  32873. DBh CP/M, Concurrent CP/M, Concurrent DOS
  32874. DBh CTOS (Convergent Technologies OS)
  32875. E1h SpeedStor 12-bit FAT extended partition
  32876. E2h DOS read-only (Florian Painke's XFDISK 1.0.4)
  32877. E3h DOS read-only
  32878. E3h Storage Dimensions
  32879. E4h SpeedStor 16-bit FAT extended partition
  32880. E5h officially listed as reserved
  32881. E6h officially listed as reserved
  32882. EBh BeOS BFS (BFS1)
  32883. F1h Storage Dimensions
  32884. F2h DOS 3.3+ secondary partition
  32885. F3h officially listed as reserved
  32886. F4h SpeedStor
  32887. F4h Storage Dimensions
  32888. F5h Prologue
  32889. F6h officially listed as reserved
  32890. FEh LANstep
  32891. FEh IBM PS/2 IML (Initial Microcode Load) partition
  32892. FFh Xenix bad block table
  32893. Note: for partition type 07h, one should inspect the partition boot record
  32894. for the actual file system type
  32895. SeeAlso: #00651
  32896. (Table 00653)
  32897. Values Bootstrap loader is called with (IBM BIOS):
  32898. CS:IP = 0000h:7C00h
  32899. DH = access
  32900. bits 7-6,4-0: don't care
  32901. bit 5: =0 device supported by INT 13
  32902. DL = boot drive
  32903. 00h first floppy
  32904. 80h first hard disk
  32905. --------B-1A00-------------------------------
  32906. INT 1A - TIME - GET SYSTEM TIME
  32907. AH = 00h
  32908. Return: CX:DX = number of clock ticks since midnight
  32909. AL = midnight flag, nonzero if midnight passed since time last read
  32910. Notes: there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs
  32911. (except on Tandy 2000, where the clock runs at 20 ticks per second)
  32912. IBM and many clone BIOSes set the flag for AL rather than incrementing
  32913. it, leading to loss of a day if two consecutive midnights pass
  32914. without a request for the time (e.g. if the system is on but idle)
  32915. since the midnight flag is cleared, if an application calls this
  32916. function after midnight before DOS does, DOS will not receive the
  32917. midnight flag and will fail to advance the date
  32918. SeeAlso: AH=01h,AH=02h,INT 21/AH=2Ch,INT 55"Tandy 2000",INT 4E/AH=02h"TI"
  32919. SeeAlso: INT 62/AX=0099h,MEM 0040h:006Ch,MEM 0040h:0070h
  32920. --------B-1A01-------------------------------
  32921. INT 1A - TIME - SET SYSTEM TIME
  32922. AH = 01h
  32923. CX:DX = number of clock ticks since midnight
  32924. Return: nothing
  32925. Notes: there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs
  32926. (except on Tandy 2000, where the clock runs at 20 ticks per second)
  32927. this call resets the midnight-passed flag
  32928. SeeAlso: AH=00h,AH=03h,INT 21/AH=2Dh
  32929. --------B-1A02-------------------------------
  32930. INT 1A - TIME - GET REAL-TIME CLOCK TIME (AT,XT286,PS)
  32931. AH = 02h
  32932. Return: CF clear if successful
  32933. CH = hour (BCD)
  32934. CL = minutes (BCD)
  32935. DH = seconds (BCD)
  32936. DL = daylight savings flag (00h standard time, 01h daylight time)
  32937. CF set on error (i.e. clock not running or in middle of update)
  32938. Note: this function is also supported by the Sperry PC, which predates the
  32939. IBM AT; the data is returned in binary rather than BCD on the Sperry,
  32940. and DL is always 00h
  32941. SeeAlso: AH=00h,AH=03h,AH=04h,INT 21/AH=2Ch
  32942. --------b-1A02-------------------------------
  32943. INT 1A - Tandy 2000 - TIME - GET DATE AND TIME
  32944. AH = 02h
  32945. Return: BX = number of days since January 1, 1980
  32946. CH = hours
  32947. CL = minutes
  32948. DH = seconds
  32949. DL = hundredths
  32950. SeeAlso: AH=03h"Tandy 2000",INT 55"Tandy 2000"
  32951. --------B-1A03-------------------------------
  32952. INT 1A - TIME - SET REAL-TIME CLOCK TIME (AT,XT286,PS)
  32953. AH = 03h
  32954. CH = hour (BCD)
  32955. CL = minutes (BCD)
  32956. DH = seconds (BCD)
  32957. DL = daylight savings flag (00h standard time, 01h daylight time)
  32958. Return: nothing
  32959. Note: this function is also supported by the Sperry PC, which predates the
  32960. IBM AT; the data is specified in binary rather than BCD on the
  32961. Sperry, and the value of DL is ignored
  32962. SeeAlso: AH=01h,AH=03h,AH=05h,INT 21/AH=2Dh,INT 4B/AH=01h
  32963. --------b-1A03-------------------------------
  32964. INT 1A - Tandy 2000 - TIME - SET DATE AND TIME
  32965. AH = 03h
  32966. BX = number of days since January 1, 1980
  32967. CH = hours
  32968. CL = minutes
  32969. DH = seconds
  32970. DL = hundredths
  32971. Return: nothing
  32972. SeeAlso: AH=02h"Tandy 2000",INT 55"Tandy 2000"
  32973. --------B-1A04-------------------------------
  32974. INT 1A - TIME - GET REAL-TIME CLOCK DATE (AT,XT286,PS)
  32975. AH = 04h
  32976. Return: CF clear if successful
  32977. CH = century (BCD)
  32978. CL = year (BCD)
  32979. DH = month (BCD)
  32980. DL = day (BCD)
  32981. CF set on error
  32982. SeeAlso: AH=02h,AH=04h"Sperry",AH=05h,INT 21/AH=2Ah,INT 4B/AH=02h"TI"
  32983. --------b-1A04-------------------------------
  32984. INT 1A - Sperry PC - GET REAL-TIME CLOCK DATE
  32985. AH = 04h
  32986. Return: CF clear if successful
  32987. CL = year-1980
  32988. DH = month (binary) (01h-0Ch)
  32989. DL = day (binary) (01h-1Fh)
  32990. CF set on error
  32991. SeeAlso: AH=02h,AH=04h,AH=05h"Sperry",INT 21/AH=2Ah,INT 4B/AH=02h"TI"
  32992. --------B-1A05-------------------------------
  32993. INT 1A - TIME - SET REAL-TIME CLOCK DATE (AT,XT286,PS)
  32994. AH = 05h
  32995. CH = century (BCD)
  32996. CL = year (BCD)
  32997. DH = month (BCD)
  32998. DL = day (BCD)
  32999. Return: nothing
  33000. SeeAlso: AH=04h,INT 21/AH=2Bh"DATE",INT 4B/AH=00h"TI"
  33001. --------b-1A05-------------------------------
  33002. INT 1A - Sperry PC - SET REAL-TIME CLOCK DATE
  33003. AH = 05h
  33004. CL = year-1980
  33005. CH = 00h (???)
  33006. DH = month (binary) (01h-0Ch)
  33007. DL = day (binary) (01h-1Fh)
  33008. Return: nothing
  33009. SeeAlso: AH=02h,AH=04h"Sperry",AH=05h,INT 21/AH=2Bh"DATE"
  33010. --------B-1A06-------------------------------
  33011. INT 1A - TIME - SET ALARM (AT,XT286,PS)
  33012. AH = 06h
  33013. CH = hour (BCD)
  33014. CL = minutes (BCD)
  33015. DH = seconds (BCD)
  33016. Return: CF set on error (alarm already set or clock stopped for update)
  33017. CF clear if successful
  33018. Notes: the alarm occurs every 24 hours until turned off, invoking INT 4A each
  33019. time
  33020. the BIOS does not check for invalid values for the time, so the CMOS
  33021. clock chip's "don't care" setting (any values between C0h and FFh)
  33022. may be used for any or all three parts. For example, to create an
  33023. alarm once a minute, every minute, call with CH=FFh, CL=FFh, and
  33024. DH=00h.
  33025. SeeAlso: AH=07h,AH=0Ch,INT 4A"SYSTEM"
  33026. --------B-1A07-------------------------------
  33027. INT 1A - TIME - CANCEL ALARM (AT,XT286,PS)
  33028. AH = 07h
  33029. Return: alarm disabled
  33030. Note: does not disable the real-time clock's IRQ
  33031. SeeAlso: AH=06h,AH=0Dh,INT 70
  33032. --------B-1A08-------------------------------
  33033. INT 1A - TIME - SET RTC ACTIVATED POWER ON MODE (CONVERTIBLE)
  33034. AH = 08h
  33035. CH = hours in BCD
  33036. CL = minutes in BCD
  33037. DH = seconds in BCD
  33038. SeeAlso: AH=09h
  33039. --------B-1A09-------------------------------
  33040. INT 1A - TIME - READ RTC ALARM TIME AND STATUS (CONV,PS30)
  33041. AH = 09h
  33042. Return: CH = hours in BCD
  33043. CL = minutes in BCD
  33044. DH = seconds in BCD
  33045. DL = alarm status
  33046. 00h alarm not enabled
  33047. 01h alarm enabled but will not power up system
  33048. 02h alarm will power up system
  33049. SeeAlso: AH=08h
  33050. --------B-1A0A-------------------------------
  33051. INT 1A - TIME - READ SYSTEM-TIMER DAY COUNTER (XT2,PS)
  33052. AH = 0Ah
  33053. Return: CF set on error
  33054. CF clear if successful
  33055. CX = count of days since Jan 1,1980
  33056. SeeAlso: AH=04h,AH=0Bh
  33057. --------B-1A0B-------------------------------
  33058. INT 1A - TIME - SET SYSTEM-TIMER DAY COUNTER (XT2,PS)
  33059. AH = 0Bh
  33060. CX = count of days since Jan 1,1980
  33061. Return: CF set on error
  33062. CF clear if successful
  33063. SeeAlso: AH=05h,AH=0Ah
  33064. --------B-1A0C-------------------------------
  33065. INT 1A - TIME - SET RTC DATE/TIME ACTIVATED POWER-ON MODE (IBM)
  33066. AH = 0Ch
  33067. CH = hours (BCD)
  33068. CL = minutes (BCD)
  33069. DH = seconds (BCD)
  33070. DL = day of month (BCD)
  33071. Return: CF clear if successful
  33072. CF set on error (alarm already set or clock nonfunctional)
  33073. Desc: set an automatic power-on for a given time in the future
  33074. Note: IBM classifies this function as optional
  33075. SeeAlso: AH=06h,AH=0Dh,AH=0Eh,INT 4A
  33076. --------B-1A0D-------------------------------
  33077. INT 1A - TIME - RESET RTC DATE/TIME ACTIVATED POWER-ON MODE (IBM)
  33078. AH = 0Dh
  33079. Return: CF clear if successful
  33080. CF set on error
  33081. Desc: cancel a previously-set power-on alarm
  33082. Note: IBM classifies this function as optional
  33083. SeeAlso: AH=07h,AH=0Ch,AH=0Eh
  33084. --------B-1A0E-------------------------------
  33085. INT 1A - TIME - GET RTC DATE/TIME ALARM AND STATUS (IBM)
  33086. AH = 0Eh
  33087. Return: CF clear if successful
  33088. BH = alarm status
  33089. 00h disabled
  33090. 01h enabled but will not power-up system
  33091. 02h enabled, system will power-up on activation
  33092. CH = alarm time, hours (BCD)
  33093. CL = alarm time, minutes (BCD)
  33094. DH = seconds (BCD)
  33095. DL = day of month (BCD)
  33096. CF set on error
  33097. SeeAlso: AH=0Ch,AH=0Dh,AH=0Fh
  33098. --------B-1A0F-------------------------------
  33099. INT 1A - TIME - INITIALIZE REAL-TIME CLOCK
  33100. AH = 0Fh
  33101. AL = reserved (0)
  33102. Return: CF clear if successful
  33103. CF set on error
  33104. SeeAlso: AH=0Ch,AH=0Dh,AH=0Eh
  33105. --------J-1A10-------------------------------
  33106. INT 1A - NEC PC-9800 series - PRINTER - INITIALIZE
  33107. AH = 10h
  33108. ???
  33109. Return: ???
  33110. SeeAlso: AH=11h,AH=12h,INT 17/AH=01h
  33111. --------J-1A1000-----------------------------
  33112. INT 1A - NEC PC-9800 series - INSTALLATION CHECK
  33113. AX = 1000h
  33114. Return: AX <> 1000h if NEC
  33115. --------J-1A11-------------------------------
  33116. INT 1A - NEC PC-9800 series - PRINTER - OUTPUT CHARACTER
  33117. AH = 11h
  33118. ???
  33119. Return: ???
  33120. SeeAlso: AH=10h,AH=12h,INT 17/AH=00h
  33121. --------J-1A12-------------------------------
  33122. INT 1A - NEC PC-9800 series - PRINTER - SENSE STATUS
  33123. AH = 12h
  33124. ???
  33125. Return: ???
  33126. SeeAlso: AH=10h,AH=11h,INT 17/AH=02h
  33127. --------A-1A3601-----------------------------
  33128. INT 1A - WORD PERFECT v5.0 Third Party Interface - INSTALLATION CHECK
  33129. AX = 3601h
  33130. Return: DS:SI = routine to monitor keyboard input, immediately preceded by the
  33131. ASCIZ string "WPCORP\0"
  33132. Notes: WordPerfect 5.0 will call this interrupt at start up to determine if a
  33133. third party product wants to interface with it. The third party
  33134. product must intercept this interrupt and return the address of a
  33135. keyboard monitor routine.
  33136. Before checking for keyboard input, and after every key entered by the
  33137. user, Word Perfect will call the routine whose address was provided
  33138. in DS:SI with the following parameters:
  33139. Entry: AX = key code or 0
  33140. BX = WordPerfect state flag
  33141. Exit: AX = 0 or key code
  33142. BX = 0 or segment address of buffer with key codes
  33143. See the "WordPerfect 5.0 Developer's Toolkit" for further information.
  33144. SeeAlso: INT 16/AX=5500h
  33145. --------N-1A6108-----------------------------
  33146. INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDWITHREPLY" - SEND MSG AND GET REPLY
  33147. AX = 6108h
  33148. STACK: WORD conversation ID (0000h-0009h)
  33149. DWORD pointer to message buffer
  33150. WORD length of message
  33151. DWORD pointer to reply buffer
  33152. WORD length of reply buffer
  33153. WORD 0000h (use default "Cparams" structure)
  33154. Return: AX = status (see #00654)
  33155. STACK unchanged
  33156. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  33157. which implements the Simple Network Application Protocol
  33158. SeeAlso: AX=6205h
  33159. (Table 00654)
  33160. Values for SNAP.EXE status:
  33161. 0000h successful
  33162. F830h "SNAP_ABORTED"
  33163. FC04h "SNAP_SERVERDIED"
  33164. FC05h "SNAP_RESEND"
  33165. FC06h "SNAP_SELECTFAILED"
  33166. FC07h "SNAP_WRONGVERSION"
  33167. FC08h "SNAP_INVALIDACK"
  33168. FC09h "SNAP_TIMEOUT"
  33169. FC0Ah "SNAP_SERVERREJECT"
  33170. FC0Bh "SNAP_NOREPLYDUE"
  33171. FC0Ch "SNAP_NOAUTHENTICATE"/"SNAP_GUARDIAN_ERROR"
  33172. FC0Dh "SNAP_NOINIT"
  33173. FC0Eh "SNAP_SOCKETERROR"
  33174. FC0Fh "SNAP_BUFFERLIMIT"
  33175. FC10h "SNAP_INVALIDCID"
  33176. FC11h "SNAP_INVALIDOP"
  33177. FC12h "SNAP_XMITFAIL"
  33178. FC13h "SNAP_NOMORERETRIES"
  33179. FC14h "SNAP_BADPARMS"
  33180. FC15h "SNAP_NOMEMORY"
  33181. FC16h "SNAP_NOMORECONVS"
  33182. FFFFh failed (invalid function/parameter)
  33183. --------N-1A6205-----------------------------
  33184. INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDNOREPLY" - SEND MSG, DON'T AWAIT REPLY
  33185. AX = 6205h
  33186. STACK: WORD conversation ID (0000h-0009h)
  33187. DWORD pointer to message
  33188. WORD length of message
  33189. WORD 0000h (use default "Cparms" structure)
  33190. Return: AX = status (see #00654)
  33191. STACK unchanged
  33192. SeeAlso: AX=6108h
  33193. --------N-1A6308-----------------------------
  33194. INT 1A - SNAP.EXE 3.2+ - "SNAP_BEGINCONV" - BEGIN CONVERSATION
  33195. AX = 6308h
  33196. STACK: WORD offset of ASCIZ "guardian"
  33197. WORD offset of ASCIZ hostname
  33198. WORD offset of ASCIZ server name
  33199. WORD offset of ASCIZ userid
  33200. WORD offset of ASCIZ password
  33201. WORD offset of password length
  33202. WORD offset of password type
  33203. WORD offset of "Cparms" structure (see #00655)
  33204. Return: ???
  33205. STACK unchanged
  33206. Note: all stacked offsets are within the SNAP data segment (use AX=6A01h
  33207. to allocate a buffer)
  33208. SeeAlso: AX=6405h,AX=7202h
  33209. Format of SNAP.EXE Cparms structure:
  33210. Offset Size Description (Table 00655)
  33211. 00h WORD retry delay in seconds
  33212. 02h WORD timeout delay in seconds
  33213. 04h WORD maximum buffer size
  33214. 06h WORD encryption level
  33215. --------N-1A6405-----------------------------
  33216. INT 1A - SNAP.EXE 3.2+ - "SNAP_ENDCONV" - END CONVERSATION
  33217. AX = 6405h
  33218. STACK: WORD conversation ID (0000h-0009h)
  33219. DWORD pointer to message buffer
  33220. WORD length of message
  33221. WORD 0000h (use default "Cparms" structure)
  33222. Return: AX = status (see #00654)
  33223. STACK unchanged
  33224. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  33225. which implements the Simple Network Application Protocol
  33226. SeeAlso: AX=6308h
  33227. --------N-1A6900-----------------------------
  33228. INT 1A - SNAP.EXE 3.2+ - "SNAP_DATASEG" - GET RESIDENT DATA SEGMENT
  33229. AX = 6900h
  33230. Return: AX = value used for DS by resident code
  33231. SeeAlso: AX=6A01h,AX=6F01h
  33232. --------N-1A6A01-----------------------------
  33233. INT 1A - SNAP.EXE 3.2+ - "SNAP_ALLOC" - ALLOCATE BUFFER IN SNAP DATA SEGMENT
  33234. AX = 6A01h
  33235. STACK: WORD number of bytes to allocate
  33236. Return: AX = offset of allocated buffer or 0000h if out of memory
  33237. STACK unchanged
  33238. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  33239. which implements the Simple Network Application Protocol
  33240. SeeAlso: AX=6B01h
  33241. --------N-1A6B01-----------------------------
  33242. INT 1A - SNAP.EXE 3.2+ - "SNAP_FREE" - DEALLOCATE BUFFER IN SNAP DATA SEGMENT
  33243. AX = 6B01h
  33244. STACK: WORD offset within SNAP data segment of previously allocated
  33245. buffer
  33246. Return: STACK unchanged
  33247. Note: this call is a NOP if the specified offset is 0000h
  33248. SeeAlso: AX=6A01h
  33249. --------N-1A6C04-----------------------------
  33250. INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYTO" - COPY DATA TO RESIDENT SNAP PACKAGE
  33251. AX = 6C04h
  33252. STACK: WORD offset within SNAP data segment of dest (nonzero)
  33253. WORD segment of source buffer
  33254. WORD offset of source buffer
  33255. WORD number of bytes to copy
  33256. Return: AX = offset of byte after last one copied to destination
  33257. STACK unchanged
  33258. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  33259. which implements the Simple Network Application Protocol
  33260. SeeAlso: AX=6D04h
  33261. --------N-1A6D04-----------------------------
  33262. INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYFROM" - COPY DATA FROM RESIDENT SNAP PACKAGE
  33263. AX = 6D04h
  33264. STACK: WORD offset within SNAP data segment of source buffer
  33265. WORD segment of destination buffer
  33266. WORD offset of destination buffer
  33267. WORD number of bytes to copy
  33268. Return: AX = offset of byte after last one copied from source
  33269. buffer filled
  33270. STACK unchanged
  33271. SeeAlso: AX=6C04h
  33272. --------N-1A6E01-----------------------------
  33273. INT 1A - SNAP.EXE 3.2+ - "SNAP_SETDEBUG" - SET ???
  33274. AX = 6E01h
  33275. STACK: WORD new value for ???
  33276. Return: AX = old value of ???
  33277. STACK unchanged
  33278. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  33279. which implements the Simple Network Application Protocol
  33280. --------N-1A6F01-----------------------------
  33281. INT 1A - SNAP.EXE 3.2+ - "SNAP_CHKINSTALL" - INSTALLATION CHECK
  33282. AX = 6F01h
  33283. STACK: WORD 0000h
  33284. Return: AX = status
  33285. 0000h SNAP is resident
  33286. other SNAP not present
  33287. STACK unchanged
  33288. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  33289. which implements the Simple Network Application Protocol, and is
  33290. required by PCVENUS (a network shell). The combination of SNAP and
  33291. PCVENUS allows the use of the Andrew File System as one or more
  33292. networked drives.
  33293. SeeAlso: AX=6900h,AX=7400h
  33294. --------N-1A7002-----------------------------
  33295. INT 1A - SNAP.EXE 3.2+ - "SNAP_SETANCHOR"
  33296. AX = 7002h
  33297. STACK: WORD anchor number (0000h-0009h)
  33298. WORD new value for the anchor
  33299. Return: AX = status
  33300. 0000h successful
  33301. FFFFh failed (top word on stack not in range 00h-09h)
  33302. STACK unchanged
  33303. SeeAlso: AX=7101h
  33304. --------N-1A7101-----------------------------
  33305. INT 1A - SNAP.EXE 3.2+ - "SNAP_GETANCHOR"
  33306. AX = 7101h
  33307. STACK: WORD anchor number (0000h-0009h)
  33308. Return: AX = anchor's value
  33309. STACK unchanged
  33310. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  33311. which implements the Simple Network Application Protocol
  33312. SeeAlso: AX=7002h
  33313. --------N-1A7202-----------------------------
  33314. INT 1A - SNAP.EXE 3.2+ - "SNAP_SETCONVPARMS" - SET CONVERSATION PARAMETERS
  33315. AX = 7202h
  33316. STACK: WORD conversation ID (0000h-0009h)
  33317. WORD offset within resident data segment of "Cparms"
  33318. structure (see #00655)
  33319. Return: AX = status???
  33320. STACK unchanged
  33321. SeeAlso: AX=6308h
  33322. --------N-1A7302-----------------------------
  33323. INT 1A - SNAP.EXE 3.2+ - "SNAP_CLIENTVERSION" - ???
  33324. AX = 7302h
  33325. STACK: WORD conversation ID (0000h-0009h)
  33326. WORD offset within resident data segment of ???
  33327. Return: AX = ???
  33328. ???
  33329. STACK unchanged
  33330. SeeAlso: AX=7400h
  33331. --------N-1A7400-----------------------------
  33332. INT 1A - SNAP.EXE 3.2+ - "SNAP_VERSION" - GET VERSION
  33333. AX = 7400h
  33334. Return: AX = version (AH=major, AL=minor)
  33335. Note: this call is only valid if SNAP is installed
  33336. SeeAlso: AX=7302h,INT 1A/AX=6F01h
  33337. --------N-1A75-------------------------------
  33338. INT 1A - SNAP.EXE 3.2+ - "SNAP_NOP" - ???
  33339. AH = 75h
  33340. AL = ???
  33341. Return: AX = ??? (0000h)
  33342. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  33343. which implements the Simple Network Application Protocol
  33344. --------N-1A76-------------------------------
  33345. INT 1A - SNAP.EXE 3.2+ - "SNAP_802_5" - ???
  33346. AH = 76h
  33347. AL = ???
  33348. Return: AX = ???
  33349. --------N-1A77-------------------------------
  33350. INT 1A - SNAP.EXE 3.4 - ???
  33351. AH = 77h
  33352. AL = ??? (at least 01h)
  33353. STACK: WORD ???
  33354. ???
  33355. Return: ???
  33356. STACK unchanged
  33357. --------N-1A7802-----------------------------
  33358. INT 1A - SNAP.EXE 3.4 - ???
  33359. AX = 7802h
  33360. STACK: WORD ???
  33361. WORD ???
  33362. Return: ???
  33363. STACK unchanged
  33364. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  33365. which implements the Simple Network Application Protocol
  33366. --------s-1A7F-------------------------------
  33367. INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
  33368. AH = 7Fh
  33369. ???
  33370. Return: ???
  33371. Note: this function is not supported by the Tandy 1000SL/TL BIOS
  33372. SeeAlso: AH=80h,AH=83h,AH=85h
  33373. --------s-1A80-------------------------------
  33374. INT 1A - PCjr, Tandy 2500???, Tandy 1000SL/TL - SET UP SOUND MULTIPLEXOR
  33375. AH = 80h
  33376. AL = 00h source is 8253 channel 2
  33377. 01h source is cassette input
  33378. 02h source is I/O channel "Audio IN"
  33379. 03h source is sound generator chip
  33380. Note: although documented in the 1000TL Technical Reference, the 1000TL
  33381. BIOS has just an IRET for this call
  33382. SeeAlso: AH=7Fh,AH=83h
  33383. --------X-1A80-------------------------------
  33384. INT 1A - PCMCIA Socket Services v1.00 - GET NUMBER OF ADAPTERS
  33385. AH = 80h
  33386. Return: CF clear if successful
  33387. CX = 5353h ('SS') if Socket Services installed
  33388. AL = number of adapters present (0-16)
  33389. AH destroyed
  33390. CF set on error
  33391. AH = error code (see #00656)
  33392. SeeAlso: AH=83h"PCMCIA"
  33393. (Table 00656)
  33394. Values for PCMCIA error codes:
  33395. 01h "BAD_ADAPTER" nonexistent adapter
  33396. 02h "BAD_ATTRIBUTE" invalid attribute specified
  33397. 03h "BAD_BASE" invalid system memory base address
  33398. 04h "BAD_EDC" invalid EDC generator specified
  33399. 05h "BAD_INDICATOR" invalid indicator specified
  33400. 06h "BAD_IRQ" invalid IRQ channel specified
  33401. 07h "BAD_OFFSET" invalid PCMCIA card offset specified
  33402. 08h "BAD_PAGE" invalid page specified
  33403. 09h "BAD_READ" unable to complete request
  33404. 0Ah "BAD_SIZE" invalid window size specified
  33405. 0Bh "BAD_SOCKET" nonexistent socket specified
  33406. 0Ch "BAD_TECHNOLOGY" unsupported Card Technology for writes
  33407. 0Dh "BAD_TYPE" unavailable window type specified
  33408. 0Eh "BAD_VCC" invalid Vcc power level index specified
  33409. 0Fh "BAD_VPP" invalid Vpp1 or Vpp2 power level index specified
  33410. 10h "BAD_WAIT" invalid number of wait states specified
  33411. 11h "BAD_WINDOW" nonexistent window specified
  33412. 12h "BAD_WRITE" unable to complete request
  33413. 13h "NO_ADAPTERS" no adapters installed, but Socket Services is present
  33414. 14h "NO_CARD" no card in socket
  33415. 15h function not supported
  33416. 16h invalid mode
  33417. 17h invalid speed
  33418. 18h busy
  33419. --------X-1A81-------------------------------
  33420. INT 1A - PCMCIA Socket Services v1.00 - REGISTER STATUS CHANGE CALLBACK
  33421. AH = 81h
  33422. DS:DX -> callback routine (see #00657) or 0000h:0000h to disable
  33423. Return: CF clear if successful
  33424. AH destroyed
  33425. CF set on error
  33426. AH = error code (see #00656)
  33427. Note: the callback will be invoked on any socket changes whose notification
  33428. has not been disabled with the status change enable mask; it may be
  33429. invoked either while processing a hardware interrupt from the adapter
  33430. or while processing the following Socket Services request
  33431. SeeAlso: AH=80h"PCMCIA",AH=82h"PCMCIA"
  33432. (Table 00657)
  33433. Values PCMCIA callback routine is invoked with:
  33434. AL = adapter number
  33435. BH = status change interrupt enable mask (see #00658)
  33436. BL = socket number
  33437. DH = current socket status (see #00659)
  33438. DL = current card status (see #00660)
  33439. Return: all registers preserved
  33440. Notes: the callback may be invoked during a hardware interrupt, and may not
  33441. call on Socket Services
  33442. the callback will be invoked once for each socket with a status change
  33443. Bitfields for PCMCIA status change interrupt enable mask:
  33444. Bit(s) Description (Table 00658)
  33445. 7 card detect change
  33446. 6 ready change
  33447. 5 battery warning change
  33448. 4 battery dead change
  33449. 3 insertion request
  33450. 2 ejection request
  33451. 1-0 reserved (0)
  33452. Bitfields for PCMCIA current socket status:
  33453. Bit(s) Description (Table 00659)
  33454. 7 card changed
  33455. 6 reserved (0)
  33456. 5 card insertion complete
  33457. 4 card ejection complete
  33458. 3 card insertion request pending
  33459. 2 card ejection request pending
  33460. 1 card locked
  33461. 0 reserved (0)
  33462. Bitfields for PCMCIA current card status:
  33463. Bit(s) Description (Table 00660)
  33464. 7 card detect
  33465. 6 ready
  33466. 5 battery voltage detect 2 (battery warning)
  33467. 4 battery voltage detect 1 (battery dead)
  33468. 3-1 reserved (0)
  33469. 0 write protected
  33470. --------s-1A8100-----------------------------
  33471. INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND - INSTALLATION CHECK
  33472. AX = 8100h
  33473. Return: AL > 80h if supported
  33474. AX = 00C4h if supported (1000SL/TL)
  33475. CF set if sound chip is busy
  33476. CF clear if sound chip is free
  33477. Note: the value of CF is not definitive; call this function until CF is
  33478. clear on return, then call AH=84h"Tandy"
  33479. --------s-1A82-------------------------------
  33480. INT 1A - Tandy 2500???, Tandy 1000SL/TL - DIGITAL SOUND - RECORD SOUND
  33481. AH = 82h
  33482. ES:BX -> buffer for sound samples
  33483. CX = length of buffer
  33484. DX = transfer rate (1-4095, 1 is fastest)
  33485. Return: AH = 00h
  33486. CF set if sound busy
  33487. CF clear if sound chip free
  33488. Note: the value in DX should be 1/10 the corresponding value for
  33489. INT 1A/AH=83h on the 1000TL, 1/11.5 on the 1000SL. Call
  33490. INT 1A/AX=8100h and INT 1A/AH=84h before invoking this function.
  33491. The BIOS issues an INT 15/AX=91FBh when the input is complete
  33492. DMA across a 64K boundary is masked by the BIOS
  33493. --------X-1A82-------------------------------
  33494. INT 1A - PCMCIA Socket Services v1.00 - REGISTER CARD TECHNOLOGY CALLBACK
  33495. AH = 82h
  33496. DS:DX -> callback routine (see #00661) or 0000h:0000h
  33497. Return: CF clear if successful
  33498. AH destroyed
  33499. CF set on error
  33500. AH = error code (see #00656)
  33501. Note: the callback is invoked on a Write Multiple request with an unsupported
  33502. card technology type
  33503. SeeAlso: AH=81h"PCMCIA",AH=94h
  33504. (Table 00661)
  33505. Values PCMCIA callback routine is invoked with:
  33506. ES:AX -> Low-Level Socket Services Routines (see #00663)
  33507. BH = socket attributes (see #00662)
  33508. CX = number of bytes or words to write
  33509. DS:SI -> data buffer to be written
  33510. DX:DI -> 26-bit linear card address
  33511. BP = card technology type
  33512. Return: CF clear if successful
  33513. CF set on error
  33514. AH = error code (07h,0Ch,12h,14h) (see #00656)
  33515. Bitfields for PCMCIA socket attributes:
  33516. Bit(s) Description (Table 00662)
  33517. 7-4 reserved (0)
  33518. 3 packed buffer
  33519. 2 even bytes only (only valid if 1 set)
  33520. 1 data width (clear = byte, set = word)
  33521. 0 memory type (clear = common, set = attribute)
  33522. Format of PCMCIA Low-Level Socket Services Routines:
  33523. Offset Size Description (Table 00663)
  33524. 00h WORD offset of Write Many routine (see #00664)
  33525. 02h WORD offset of Write One routine (see #00665)
  33526. 04h WORD offset of Read One routine (see #00666)
  33527. 06h WORD offset of Increment Offset routine (see #00667)
  33528. 08h WORD offset of Set Offset routine (see #00668)
  33529. 0Ah WORD offset of Get Status routine (see #00669)
  33530. (Table 00664)
  33531. Call Write Many routine with:
  33532. BH = socket attributes (see #00662)
  33533. CX = number of bytes or words to write
  33534. DS:SI -> data to be written
  33535. Return: CF clear if successful
  33536. CF set on error
  33537. (Table 00665)
  33538. Call Write One routine with:
  33539. AL/AX = data to be written
  33540. BH = socket attributes (see #00662)
  33541. Return: CF clear if successful
  33542. CF set on error
  33543. (Table 00666)
  33544. Call Read One routine with:
  33545. BH = socket attributes (see #00662)
  33546. Return: CF clear if successful
  33547. AL/AX = data read
  33548. CF set on error
  33549. (Table 00667)
  33550. Call Increment Offset routine with:
  33551. BH = socket attributes (see #00662)
  33552. Return: CF clear if successful
  33553. CF set on error
  33554. (Table 00668)
  33555. Call Set Offset routine with:
  33556. DX:DI = new offset address
  33557. Return: CF clear if successful
  33558. CF set on error
  33559. (Table 00669)
  33560. Call Get Status routine with:
  33561. nothing
  33562. Return: AL = current card status (see #00660)
  33563. --------s-1A83-------------------------------
  33564. INT 1A - Tandy 2500, Tandy 1000L series - START PLAYING DIGITAL SOUND
  33565. AH = 83h
  33566. AL = volume (0=silence, 7=highest)
  33567. CX = number of bytes to play
  33568. DX = time between sound samples (multiples of 273 nanoseconds)
  33569. only bits 11-0 used
  33570. ES:BX -> sound data (array of 8-bit unsigned PCM samples)
  33571. Return: AH = 00h
  33572. CF set if sound is busy
  33573. CF clear if sound chip is free
  33574. Notes: this call returns immediately while the sound plays in the
  33575. background; the sound chip is clocked at 3.57 MHz, with the low 12
  33576. bits of DX specifying the clock divisor
  33577. The BIOS appears to call INT 15/AX=91FBh when the sound device
  33578. underflows to allow another INT 1A/AH=83h for seamless playing of
  33579. long sounds.
  33580. SeeAlso: AH=84h"Tandy",INT 15/AH=91h
  33581. --------X-1A83-------------------------------
  33582. INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET SERVICES VERSION NUMBER
  33583. AH = 83h
  33584. AL = adapter number
  33585. Return: CF clear if successful
  33586. AX = Socket Services version (BCD)
  33587. BX = implementation version (BCD)
  33588. CX = 5353h ("SS")
  33589. DS:SI -> ASCIZ implementor description
  33590. CF set on error
  33591. AH = error code (01h) (see #00656)
  33592. Note: the current version (from the Revision A.00 documentation) of Socket
  33593. Services is 1.00 (AX=0100h)
  33594. SeeAlso: AH=80h"PCMCIA"
  33595. --------s-1A84-------------------------------
  33596. INT 1A - Tandy 2500, Tandy 1000L series - STOP PLAYING DIGITAL SOUND
  33597. AH = 84h
  33598. Return: ???
  33599. Note: the BIOS will call INT 15/AX=91FBh when the sound has stopped playing
  33600. SeeAlso: AH=83h"Tandy",AH=85h"Tandy"
  33601. --------X-1A84-------------------------------
  33602. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ADAPTER
  33603. AH = 84h
  33604. AL = adapter number
  33605. Return: CF clear if successful
  33606. AH destroyed
  33607. BH = number of windows
  33608. BL = number of sockets (1-16)
  33609. CX = number of EDCs
  33610. DH = capabilities (see #00670)
  33611. DL = status change interrupt used (only if DH bit 3 set)(see #00671)
  33612. CF set on error
  33613. AH = error code (01h) (see #00656)
  33614. SeeAlso: AH=80h"PCMCIA",AH=85h"PCMCIA",AH=87h
  33615. Bitfields for PCMCIA capabilities:
  33616. Bit(s) Description (Table 00670)
  33617. 7-6 reserved (0)
  33618. 5 status change interrupt is hardware shareable
  33619. 4 status change interrupt is software shareable
  33620. 3 status change interrupt
  33621. 2 data bus width is per-socket rather than per-window
  33622. 1 power management is per-adapter rather than per-socket
  33623. 0 indicators are per-adapter rather than per-socket
  33624. (Table 00671)
  33625. Values for PCMCIA status change interrupt usage:
  33626. 00h-0Fh IRQ level
  33627. 10h NMI
  33628. 11h I/O check
  33629. 12h bus error
  33630. 13h vendor specific
  33631. 14h-FFh reserved
  33632. --------s-1A85-------------------------------
  33633. INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
  33634. AH = 85h
  33635. ???
  33636. Return: ???
  33637. Note: this function is not supported by the Tandy 1000SL/TL BIOS
  33638. SeeAlso: AH=7Fh,AH=83h"Tandy"
  33639. --------X-1A85-------------------------------
  33640. INT 1A - PCMCIA Socket Services v1.00 - GET ADAPTER
  33641. AH = 85h
  33642. AL = adapter number
  33643. Return: CF clear if successful
  33644. AH destroyed
  33645. DH = adapter attributes (see #00672)
  33646. CF set on error
  33647. AH = error code (01h) (see #00656)
  33648. SeeAlso: AH=84h"PCMCIA",AH=86h
  33649. Bitfields for PCMCIA adapter attributes:
  33650. Bit(s) Description (Table 00672)
  33651. 7-5 reserved (0)
  33652. 4 hardware share status change
  33653. 3 software share status change
  33654. 2 enable status change interrupts
  33655. 1 adapter preserves state information during reduced power consumption
  33656. 0 attempting to reduce power consumption
  33657. --------X-1A86-------------------------------
  33658. INT 1A - PCMCIA Socket Services v1.00 - SET ADAPTER
  33659. AH = 86h
  33660. AL = adapter number
  33661. DH = new adapter attributes (see #00672)
  33662. Return: CF clear if successful
  33663. AH destroyed
  33664. CF set on error
  33665. AH = error code (01h) (see #00656)
  33666. SeeAlso: AH=84h"PCMCIA",AH=85h"PCMCIA"
  33667. --------X-1A87-------------------------------
  33668. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE WINDOW
  33669. AH = 87h
  33670. AL = adapter number
  33671. BH = window number
  33672. Return: CF clear if successful
  33673. AH destroyed
  33674. BL = capabilities (see #00673)
  33675. CX = bitmap of assignable sockets
  33676. DH = EISA A15-A12 address lines (in bits 7-4, bits 3-0 = 0)
  33677. DL = supported access speeds (see #00674)
  33678. DS:SI -> Memory Window Characteristics table (see #00675)
  33679. DS:DI -> I/O Window Characteristics table (see #00676)
  33680. CF set on error
  33681. AH = error code (01h,11h) (see #00656)
  33682. SeeAlso: AH=84h"PCMCIA",AH=88h,AH=89h,AH=8Ch
  33683. Bitfields for PCMCIA window capabilities:
  33684. Bit(s) Description (Table 00673)
  33685. 7-5 reserved (0)
  33686. 4 separate enable for EISA comon space
  33687. 3 EISA I/O mappable
  33688. 2 I/O space
  33689. 1 attribute memory
  33690. 0 common memory
  33691. Bitfields for PCMCIA supported access speeds:
  33692. Bit(s) Description (Table 00674)
  33693. 7 reserved (0)
  33694. 6 600 ns
  33695. 5 300 ns
  33696. 4 250 ns
  33697. 3 200 ns
  33698. 2 150 ns
  33699. 1 100 ns
  33700. 0 WAIT line monitoring
  33701. Format of PCMCIA Memory Window Characteristics table:
  33702. Offset Size Description (Table 00675)
  33703. 00h WORD window capabilities (see #00677)
  33704. 02h WORD minimum base address in 4K pages
  33705. 04h WORD maximum base address in 4K pages
  33706. 06h WORD minimum window size in 4K pages
  33707. 08h WORD maximum window size in 4K pages
  33708. 0Ah WORD window size granularity (4K units)
  33709. 0Ch WORD required base address alignment (4K units)
  33710. 0Eh WORD required card offset alignment (4K units)
  33711. Format of PCMCIA I/O Window Characteristics table:
  33712. Offset Size Description (Table 00676)
  33713. 00h WORD window capabilities (see #00677)
  33714. 02h WORD minimum base address in bytes
  33715. 04h WORD maximum base address in bytes
  33716. 06h WORD minimum window size in bytes
  33717. 08h WORD maximum window size in bytes
  33718. 0Ah WORD window size granularity (bytes)
  33719. Bitfields for PCMCIA window capabilities:
  33720. Bit(s) Description (Table 00677)
  33721. 0 programmable base address
  33722. 1 programmable window size
  33723. 2 window disable/enable supported
  33724. 3 8-data bus
  33725. 4 16-data bus
  33726. 5 base address alignment on size boundary required
  33727. 6 power-of-two size granularity
  33728. ---memory windows---
  33729. 7 card offset must be aligned on size boundary
  33730. 8 paging hardware available
  33731. 9 paging hardware shared
  33732. 10 page disable/enable supported
  33733. 11-15 reserved (0)
  33734. ---I/O windows---
  33735. 7-15 reserved (0)
  33736. --------X-1A88-------------------------------
  33737. INT 1A - PCMCIA Socket Services v1.00 - GET WINDOW
  33738. AH = 88h
  33739. AL = adapter number
  33740. BH = window number
  33741. Return: CF clear if successful
  33742. AH destroyed
  33743. BL = socket number (0-16) (0 = not assigned)
  33744. CX = window size (bytes for I/O window, 4K units for memory window)
  33745. DH = window attributes (see #00678)
  33746. DL = access speed (only one bit set) (see #00674)
  33747. SI = window base address (bytes if I/O, 4K units if memory)
  33748. DI = card offset address (memory only, 4K units)
  33749. CF set on error
  33750. AH = error code (01h,11h) (see #00656)
  33751. SeeAlso: AH=87h,AH=89h,AH=8Ah
  33752. Bitfields for PCMCIA window attributes:
  33753. Bit(s) Description (Table 00678)
  33754. 0 memory-mapped rather than I/O-mapped
  33755. 1 attribute memory rather than common (memory-mapped)
  33756. EISA mapped (I/O)
  33757. 2 enabled
  33758. 3 16-data path
  33759. 4 subdivided into pages (memory-mapped only)
  33760. 5 non-specific access slot enable (EISA-mapped only)
  33761. 6-7 reserved (0)
  33762. --------X-1A89-------------------------------
  33763. INT 1A - PCMCIA Socket Services v1.00 - SET WINDOW
  33764. AH = 89h
  33765. AL = adapter number
  33766. BH = window number
  33767. BL = socket number
  33768. CX = window size (bytes if I/O window, 4K units if memory window)
  33769. DH = window attributes (see #00678)
  33770. DL = access speed (only one bit set) (see #00674)
  33771. SI = window base address (bytes if I/O, 4K units if memory window)
  33772. DI = card offset addrress (memory only, 4K units)
  33773. Return: CF clear if successful
  33774. AH destroyed
  33775. CF set on error
  33776. AH = error code (01h,03h,07h,08h,0Ah,0Bh,0Dh,10h,11h) (see #00656)
  33777. SeeAlso: AH=87h,AH=88h,AH=8Bh
  33778. --------X-1A8A-------------------------------
  33779. INT 1A - PCMCIA Socket Services v1.00 - GET PAGE
  33780. AH = 8Ah
  33781. AL = adapter number
  33782. BH = window number
  33783. BL = page number
  33784. Return: CF clear if successful
  33785. AH destroyed
  33786. DX = page attributes (see #00679)
  33787. DI = memory card offset (4K units)
  33788. CF set on error
  33789. AH = error code (01h,08h,11h) (see #00656)
  33790. Notes: this function is only valid for memory-mapped windows
  33791. the socket being operated on is implied by the previous AH=89h call
  33792. SeeAlso: AH=88h,AH=8Bh
  33793. Bitfields for PCMCIA page attributes:
  33794. Bit(s) Description (Table 00679)
  33795. 0 page enabled
  33796. 15-1 reserved (0)
  33797. --------X-1A8B-------------------------------
  33798. INT 1A - PCMCIA Socket Services v1.00 - SET PAGE
  33799. AH = 8Bh
  33800. AL = adapter number
  33801. BH = window number
  33802. BL = page number
  33803. DX = page attributes (see #00679)
  33804. DI = memory card offset (4K units)
  33805. Return: CF clear if successful
  33806. AH destroyed
  33807. CF set on error
  33808. AH = error code (01h,02h,07h,08h,11h) (see #00656)
  33809. Notes: this function is only valid for memory-mapped windows
  33810. the socket being operated on is implied by the previous AH=89h call
  33811. SeeAlso: AH=89h,AH=8Ah
  33812. --------X-1A8C-------------------------------
  33813. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE SOCKET
  33814. AH = 8Ch
  33815. AL = adapter number
  33816. BL = socket number (01h to maximum supported by adapter)
  33817. Return: CF clear if successful
  33818. AH destroyed
  33819. DH = capabilities (see #00680)
  33820. DL = hardware indicators (see #00681)
  33821. DS:SI -> Socket Characteristics table (see #00682)
  33822. DS:DI -> Power Management table (see #00684)
  33823. CF set on error
  33824. AH = error code (01h,0Bh) (see #00656)
  33825. SeeAlso: AH=87h,AH=8Dh,AH=8Eh
  33826. Bitfields for PCMCIA socket capabilities:
  33827. Bit(s) Description (Table 00680)
  33828. 0 card change
  33829. 1 card lock
  33830. 2 insert card (motor control)
  33831. 3 eject card (motor control)
  33832. 4-7 reserved (0)
  33833. Bitfields for PCMCIA socket hardware indicators:
  33834. Bit(s) Description (Table 00681)
  33835. 0 busy status
  33836. 1 write-protected
  33837. 2 battery status
  33838. 3 card lock status
  33839. 4 XIP status (eXecute-In-Place)
  33840. 5-7 reserved (0)
  33841. Format of PCMCIA Socket Characteristics table:
  33842. Offset Size Description (Table 00682)
  33843. 00h WORD supported card types (see #00683)
  33844. 02h WORD steerable IRQ levels (bit 0 = IRQ0 to bit 15 = IRQ15)
  33845. 04h WORD additional steerable IRQ levels
  33846. bit 0: NMI
  33847. bit 1: I/O check
  33848. bit 2: bus error
  33849. bit 3: vendor-unique
  33850. bits 4-7 reserved (0)
  33851. Bitfields for supported card types:
  33852. Bit(s) Description (Table 00683)
  33853. 0 memory card
  33854. 1 I/O card
  33855. 2-7 reserved (0)
  33856. Format of PCMCIA Power Management table:
  33857. Offset Size Description (Table 00684)
  33858. 00h WORD number of entries in table (0 if power management not avail)
  33859. 02h 2N BYTEs power levels
  33860. byte 0: voltage in 0.1V units
  33861. byte 1: power supply
  33862. bit 7: Vcc
  33863. bit 6: Vpp1
  33864. bit 5: Vpp2
  33865. --------X-1A8D-------------------------------
  33866. INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET
  33867. AH = 8Dh
  33868. AL = adapter number
  33869. BL = socket number (01h to maximum supported by adapter)
  33870. Return: CF clear if successful
  33871. AH destroyed
  33872. BH = status change interrupt enable mask (see #00658)
  33873. CH = Vcc level (lower nybble) (see #00684)
  33874. CL = Vpp1 level (upper nybble) and Vpp2 level (lower nybble)
  33875. DH = current socket status (see #00659)
  33876. DL = indicators (see #00681)
  33877. SI = card type (see #00685)
  33878. DI = IRQ level steering (I/O only) (see #00686)
  33879. CF set on error
  33880. AH = error code (01h,0Bh) (see #00656)
  33881. SeeAlso: AH=8Ch,AH=8Eh
  33882. Bitfields for PCMCIA card type:
  33883. Bit(s) Description (Table 00685)
  33884. 0 memory
  33885. 1 I/O
  33886. 2-15 reserved (0)
  33887. Bitfields for PCMCIA I/O level steering:
  33888. Bit(s) Description (Table 00686)
  33889. 15 interrupt steering enabled
  33890. 14-5 reserved (0)
  33891. 4-0 IRQ level (0-15=IRQ,16=NMI,17=I/O check,18=bus error,19=vendor)
  33892. --------X-1A8E-------------------------------
  33893. INT 1A - PCMCIA Socket Services v1.00 - SET SOCKET
  33894. AH = 8Eh
  33895. AL = adapter number
  33896. BL = socket number (01h to maximum supported by adapter)
  33897. BH = status change interrupt enable mask (see #00658)
  33898. CL = Vpp1 level (upper nybble) and Vpp2 level (lower nybble)
  33899. DH = current socket status (see #00659)
  33900. DL = indicators (see #00681)
  33901. SI = card type (see #00685)
  33902. DI = IRQ level steering (I/O only) (see #00686)
  33903. Return: CF clear if successful
  33904. AH destroyed
  33905. CF set on error
  33906. AH = error code (01h,02h,05h,06h,0Bh,0Eh,0Fh) (see #00656)
  33907. SeeAlso: AH=8Ch,AH=8Dh
  33908. --------X-1A8F-------------------------------
  33909. INT 1A - PCMCIA Socket Services v1.00 - GET CARD
  33910. AH = 8Fh
  33911. AL = adapter number
  33912. BL = socket number (01h to maximum supported by adapter)
  33913. Return: CF clear if successful
  33914. AH destroyed
  33915. DL = current card status (see #00660)
  33916. CF set on error
  33917. AH = error code (01h,0Bh) (see #00656)
  33918. SeeAlso: AH=8Dh,AH=90h
  33919. --------X-1A90-------------------------------
  33920. INT 1A - PCMCIA Socket Services v1.00 - RESET CARD
  33921. AH = 90h
  33922. AL = adapter number
  33923. BL = socket number (01h to maximum supported by adapter)
  33924. Return: CF clear if successful
  33925. AH destroyed
  33926. CF set on error
  33927. AH = error code (01h,0Bh,14h) (see #00656)
  33928. Note: toggles RESET pin of the specified card, but does not wait after
  33929. toggling the pin; it is the caller's responsibility to avoid
  33930. accessing the card before it is ready again
  33931. --------X-1A91-------------------------------
  33932. INT 1A - PCMCIA Socket Services v1.00 - READ ONE
  33933. AH = 91h
  33934. AL = adapter number
  33935. BL = socket number (01h to maximum supported by adapter)
  33936. BH = attributes (see #00687)
  33937. DX:SI = card address
  33938. Return: CF clear if successful
  33939. AH destroyed
  33940. CL/CX = value read
  33941. CF set on error
  33942. AH = error code (01h,07h,09h,0Bh,14h) (see #00656)
  33943. CX may be destroyed
  33944. Note: this function is only valid for I/O-mapped sockets
  33945. SeeAlso: AH=92h,AH=93h,INT 21/AX=440Dh"DOS 3.2+"
  33946. Bitfields for PCMCIA attributes:
  33947. Bit(s) Description (Table 00687)
  33948. 2 even bytes only
  33949. 1 word rather than byte
  33950. 0 attribute memory instead of common memory
  33951. --------X-1A92-------------------------------
  33952. INT 1A - PCMCIA Socket Services v1.00 - WRITE ONE
  33953. AH = 92h
  33954. AL = adapter number
  33955. BL = socket number (01h to maximum supported by adapter)
  33956. BH = attributes (see #00687)
  33957. CL/CX = value to write
  33958. DX:SI = card address
  33959. Return: CF clear if successful
  33960. AH destroyed
  33961. CF set on error
  33962. AH = error code (01h,07h,0Bh,12h,14h) (see #00656)
  33963. Note: this function is only valid for I/O-mapped sockets; it also does not
  33964. implement Card Technology handling--use AH=94h when writing to
  33965. non-RAM technologies
  33966. SeeAlso: AH=91h,AH=94h,INT 21/AX=440Dh"DOS 3.2+"
  33967. --------X-1A93-------------------------------
  33968. INT 1A - PCMCIA Socket Services v1.00 - READ MULTIPLE
  33969. AH = 93h
  33970. AL = adapter number
  33971. BL = socket number (01h to maximum supported by adapter)
  33972. BH = attributes (see #00687)
  33973. CX = number of bytes or words to read
  33974. DX:SI = card address
  33975. DS:DI -> data buffer to be filled
  33976. Return: CF clear if successful
  33977. AH destroyed
  33978. CF set on error
  33979. AH = error code (01h,07h,09h,0Bh,14h) (see #00656)
  33980. Note: this function is only available on I/O-mapped sockets
  33981. SeeAlso: AH=91h,AH=94h,INT 21/AX=440Dh"DOS 3.2+"
  33982. --------X-1A94-------------------------------
  33983. INT 1A - PCMCIA Socket Services v1.00 - WRITE MULTIPLE
  33984. AH = 94h
  33985. AL = adapter number
  33986. BL = socket number (01h to maximum supported by adapter)
  33987. BH = attributes (see #00687)
  33988. CX = number of bytes or words to read
  33989. DX:DI = card address
  33990. DS:SI -> buffer containing data
  33991. BP = Card Technology type (0000h = RAM)
  33992. Return: CF clear if successful
  33993. AH destroyed
  33994. CF set on error
  33995. AH = error code (01h,07h,0Bh,0Ch,12h,14h) (see #00656)
  33996. Notes: this function is only available on I/O-mapped sockets
  33997. Socket Services calls the Card Technology callback (see #00661) for
  33998. any card technology it does not directly support
  33999. SeeAlso: AH=82h"PCMCIA",AH=92h,AH=93h,INT 21/AX=440Dh"DOS 3.2+"
  34000. --------X-1A95-------------------------------
  34001. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ERROR DETECTION CODE
  34002. AH = 95h
  34003. AL = adapter number
  34004. BH = EDC generator number
  34005. Return: CF clear if successful
  34006. AH destroyed
  34007. CX = bitmap of assignable sockets
  34008. DH = EDC capabilities (see #00688)
  34009. DL = supported EDC types (see #00689)
  34010. CF set on error
  34011. AH = error code (01h,04h) (see #00656)
  34012. SeeAlso: AH=96h,AH=9Ch
  34013. Bitfields for EDC capabilities:
  34014. Bit(s) Description (Table 00688)
  34015. 0 unidirectional only generation
  34016. 1 bidirectional only generation
  34017. 2 register-based (I/O-mapped) support
  34018. 3 memory-mapped support
  34019. 4 pausable
  34020. 5-7 reserved (0)
  34021. Bitfields for supported EDC types:
  34022. Bit(s) Description (Table 00689)
  34023. 0 8-checksum
  34024. 1 16-CRC-SDLC
  34025. 2-7 reserved (0)
  34026. --------X-1A96-------------------------------
  34027. INT 1A - PCMCIA Socket Services v1.00 - GET ERROR DETECTION CODE
  34028. AH = 96h
  34029. AL = adapter number
  34030. BH = EDC generator number
  34031. Return: CF clear if successful
  34032. AH destroyed
  34033. BL = socket number
  34034. DH = EDC attributes (see #00690)
  34035. DL = EDC type (see #00689) (only one bit set)
  34036. CF set on error
  34037. AH = error code (01h,04h) (see #00656)
  34038. SeeAlso: AH=95h,AH=97h,AH=9Ch
  34039. Bitfields for EDC attributes:
  34040. Bit(s) Description (Table 00690)
  34041. 0 unidirectional only
  34042. 1 (if 0 set) clear=read, set=write
  34043. 2-7 reserved (0)
  34044. --------X-1A97-------------------------------
  34045. INT 1A - PCMCIA Socket Services v1.00 - SET ERROR DETECTION CODE
  34046. AH = 97h
  34047. AL = adapter number
  34048. BH = EDC generator
  34049. BL = socket number
  34050. DH = EDC attributes (see #00690)
  34051. DL = EDC type (see #00689) (only one bit may be set)
  34052. Return: CF clear if successful
  34053. AH destroyed
  34054. CF set on error
  34055. AH = error code (01h,02h,04h,0Bh) (see #00656)
  34056. SeeAlso: AH=96h,AH=9Ch
  34057. --------X-1A98-------------------------------
  34058. INT 1A - PCMCIA Socket Services v1.00 - START ERROR DETECTION CODE
  34059. AH = 98h
  34060. AL = adapter number
  34061. BH = EDC generator
  34062. Return: CF clear if successful
  34063. AH destroyed
  34064. CF set on error
  34065. AH = error code (01h,04h) (see #00656)
  34066. SeeAlso: AH=96h,AH=99h,AH=9Bh,AH=9Ch
  34067. --------X-1A99-------------------------------
  34068. INT 1A - PCMCIA Socket Services v1.00 - PAUSE ERROR DETECTION CODE
  34069. AH = 99h
  34070. AL = adapter number
  34071. BH = EDC generator
  34072. Return: CF clear if successful
  34073. AH destroyed
  34074. CF set on error
  34075. AH = error code (01h,04h) (see #00656)
  34076. SeeAlso: AH=9Ah
  34077. --------X-1A9A-------------------------------
  34078. INT 1A - PCMCIA Socket Services v1.00 - RESUME ERROR DETECTION CODE
  34079. AH = 9Ah
  34080. AL = adapter number
  34081. BH = EDC generator
  34082. Return: CF clear if successful
  34083. AH destroyed
  34084. CF set on error
  34085. AH = error code (01h,04h) (see #00656)
  34086. SeeAlso: AH=99h,AH=98h
  34087. --------X-1A9B-------------------------------
  34088. INT 1A - PCMCIA Socket Services v1.00 - STOP ERROR DETECTION CODE
  34089. AH = 9Bh
  34090. AL = adapter number
  34091. BH = EDC generator
  34092. Return: CF clear if successful
  34093. AH destroyed
  34094. CF set on error
  34095. AH = error code (see #00656)
  34096. SeeAlso: AH=98h,AH=99h,AH=9Ch
  34097. --------X-1A9C-------------------------------
  34098. INT 1A - PCMCIA Socket Services v1.00 - READ ERROR DETECTION CODE
  34099. AH = 9Ch
  34100. AL = adapter number
  34101. BH = EDC generator
  34102. Return: CF clear if successful
  34103. AH destroyed
  34104. DL/DX = computed checksum or CRC
  34105. CF set on error
  34106. AH = error code (01h,04h) (see #00656)
  34107. SeeAlso: AH=95h,AH=96h,AH=98h,AH=99h,AH=9Bh
  34108. --------X-1A9D-------------------------------
  34109. INT 1A - PCMCIA Socket Services v2.1??? - GET VENDOR INFO
  34110. AH = 9Dh
  34111. AL = adapter number
  34112. BH = EDC generator
  34113. ES:EDI -> vendor information structure (see #00691)
  34114. Return: CF clear if successful
  34115. AH destroyed
  34116. DX = vendor release number in BCD
  34117. ES:EDI unchanged
  34118. CF set on error
  34119. AH = error code (01h,15h) (see #00656)
  34120. Notes: this API is supported by recent versions of the AMI BIOS
  34121. the low-level API described here is hidden by the higher-level
  34122. ExCA API once Card Services has been installed
  34123. SeeAlso: AH=9Dh"ExCA"
  34124. Format of Vendor Information structure:
  34125. Offset Size Description (Table 00691)
  34126. 00h WORD buffer length (set to size of buffer below)
  34127. 04h WORD (ret) data length
  34128. 08h x BYTEs implementor name (ASCIIZ string)
  34129. --------X-1A9D-------------------------------
  34130. INT 1A - Intel PCMCIA ExCA Card Services - API
  34131. AH = 9Dh
  34132. AL = subfunction (see #00692)
  34133. ???
  34134. Return: ???
  34135. SeeAlso: AH=9Dh"ExCA",#00891
  34136. (Table 00692)
  34137. Values for PCMCIA ExCA Card Services subfunction number:
  34138. 00h Client Services: Get Number of Sockets
  34139. 01h Advanced Client Utilities: Initialize
  34140. 02h Client Services: Register Client
  34141. 03h Client Services: Deregister Client
  34142. 04h Advanced Client Utilities: Enumerate Clients
  34143. 05h Client Services: Register SCB
  34144. 06h Client Services: Deregister SCB
  34145. 07h Advanced Client Utilities: Register MTD
  34146. 08h Advanced Client Utilities: Deregister MTD
  34147. 09h Advanced Client Utilities: Enumerate MTD
  34148. 0Ah Client Services: Get Status
  34149. 0Bh Client Services: Reset Card
  34150. 0Ch Client Utilities: Get First Tuple
  34151. 0Dh Client Utilities: Get Next Tuple
  34152. 0Eh Client Utilities: Determine First Region
  34153. 0Fh Client Utilities: Determine Next Region
  34154. 10h Client Utilities: Get First Region
  34155. 11h Client Utilities: Get Next Region
  34156. 12h Client Utilities: Get First Partition
  34157. 13h Client Utilities: Get Next Partition
  34158. 14h Bulk Memory Services: Open Region
  34159. 15h Bulk Memory Services: Read Memory
  34160. 16h Bulk Memory Services: Write Memory
  34161. 17h Bulk Memory Services: Copy Memory
  34162. 18h Bulk Memory Services: Erase Memory
  34163. 19h Resource Management: Request I/O
  34164. 1Ah Resource Management: Release I/O
  34165. 1Bh Resource Management: Request Memory
  34166. 1Ch Client Services: Modify Window
  34167. 1Dh Resource Management: Release Memory
  34168. 1Eh Client Services: Map Mem Page
  34169. 1Fh Advanced Client Utilities: Return SS Entry
  34170. 20h Advanced Client Utilities: Map Log to Phy
  34171. 21h Advanced Client Utilities: Map Log Phy to Log
  34172. 22h Resource Management: Request IRQ
  34173. 23h Resource Management: Release IRQ
  34174. 24h Bulk Memory Services: Close Region
  34175. --------X-1A9E-------------------------------
  34176. INT 1A - PCMCIA Socket Services v2.1 - ACKNOWLEDGE INTERRUPT
  34177. AH = 9Eh
  34178. AL = adapter number
  34179. Return: CF clear if successful
  34180. AH destroyed
  34181. CX = bitmap representing sockets which have changed status
  34182. CF set on error
  34183. AH = error code (01h) (see #00656)
  34184. Note: this API is supported by recent versions of the AMI BIOS
  34185. --------X-1A9F-------------------------------
  34186. INT 1A - PCMCIA Socket Services v2.1 - GET/SET PRIOR INT 1A HANDLER
  34187. AH = 9Fh
  34188. AL = adapter number
  34189. BL = mode
  34190. 00h get prior INT 1Ah handler
  34191. 01h set prior INT 1Ah handler
  34192. CX:DX -> new prior handler
  34193. Return: CF clear if successful
  34194. AH destroyed
  34195. CX:DX -> old prior handler
  34196. CF set on error
  34197. AH = error code (01h,15h,18h) (see #00656)
  34198. Desc: allows hooking of INT 16h "behind" the Socket Services hook
  34199. Note: this API is supported by recent versions of the AMI BIOS
  34200. SeeAlso: AH=9Eh,AH=A0h"PCMCIA",AH=AEh"PCMCIA"
  34201. --------c-1AA0-------------------------------
  34202. INT 1A U - Disk Spool II v2.07+ - INSTALLATION CHECK
  34203. AH = A0h
  34204. Return: AH = B0h if installed
  34205. AL = pending INT 1A/AH=D0h subfunction if nonzero???
  34206. ES = code segment
  34207. ES:BX -> name of current spool file
  34208. ES:SI -> current despool file
  34209. CL = despooler state (00h disabled, 41h enabled)
  34210. CH = spooler state (00h disabled, 41h enabled)
  34211. DL = despooler activity
  34212. 00h currently active printing a file
  34213. 41h standing by
  34214. DH = 00h ???
  34215. = 41h ???
  34216. DI = 0000h ???
  34217. 0001h ???
  34218. Program: Disk Spool II is a shareware disk-based print spooler by Budget
  34219. Software Company
  34220. Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
  34221. as that is a licensed version of Disk Spool II
  34222. SeeAlso: AH=ABh,AH=C0h,AH=D0h,AH=E1h
  34223. --------X-1AA0-------------------------------
  34224. INT 1A - PCMCIA Socket Services v2.1 - GET/SET SOCKET SERVICES ADDRESS
  34225. AH = A0h
  34226. AL = adapter number
  34227. BH = mode
  34228. 00h real mode
  34229. 01h 16:16 protected mode
  34230. 02h 16:32 protected mode
  34231. 03h 00:32 (Flat) protected mode
  34232. BL = subfunction
  34233. 00h return number of additional data areas (see #00693)
  34234. 01h return description of additional data areas (see #00694)
  34235. 02h accept mode-specific pointers to data areas (see #00695)
  34236. ES:EDI -> buffer supplied by caller
  34237. Return: CF clear if successful
  34238. AH destroyed
  34239. CX = number of additional data areas
  34240. ES:EDI unchanged
  34241. CF set on error
  34242. AH = error code (01h,02h,15h,16h,18h) (see #00656)
  34243. SeeAlso: AH=9Fh,AH=AEh
  34244. Format of PCMCIA Subfunction 00h Buffer Table Entry structure:
  34245. Offset Size Description (Table 00693)
  34246. 00h DWORD 32-bit linear base address of the code segment
  34247. 04h DWORD segment limit of the code segment
  34248. 08h DWORD entry point offset
  34249. 0Ch DWORD 32-bit linear base address of the data segment
  34250. (ignored in 00:32 flat mode)
  34251. 10h DWORD segment limit of the data segment
  34252. 14h DWORD data area offset. Only used in 32-bit protected mode.
  34253. SeeAlso: #00694,#00695
  34254. Format of PCMCIA Additional Data Area Description structure [array]:
  34255. Offset Size Description (Table 00694)
  34256. 00h DWORD 32-bit linear base address of the additional data segment
  34257. (ignored in 00:32 flat mode)
  34258. 04h DWORD segment limit of the code segment
  34259. 08h DWORD data area offset (only used in 32-bit protected mode)
  34260. SeeAlso: #00693,#00695
  34261. Format of PCMCIA Subfunction 02h Buffer Table Entry structure:
  34262. Offset Size Description (Table 00695)
  34263. 00h DWORD 32-bit offset(ignored in 16:16 protected mode)
  34264. 04h DWORD selector (only used in 00:32 flat mode)
  34265. 08h DWORD reserved
  34266. SeeAlso: #00693,#00694
  34267. --------X-1AA1-------------------------------
  34268. INT 1A - PCMCIA Socket Services v2.1 - GET ACCESS OFFSETS
  34269. AH = A1h
  34270. AL = adapter number
  34271. BH = Mode
  34272. 00h = Real Mode
  34273. 01h = 16:16 Protected Mode
  34274. 02h = 16:32 Protected Mode
  34275. 03h = 00:32 Protected Mode
  34276. CX = Number of access offsets
  34277. ES:EDI -> buffer supplied by caller, CX words long (see #00696)
  34278. Return: CF clear if successful
  34279. AH destroyed
  34280. DX = number of access offsets supported
  34281. ES:EDI unchanged
  34282. CF set on error
  34283. AH = error code (01h,15h,16h) (see #00656)
  34284. Desc: Returns an array of low-level adapter-specific optimized
  34285. PC Card access routines for adapters that use registers
  34286. or I/O ports to access PC Card memory. Adapters that access
  34287. PC Card memory through windows mapped to host system memory
  34288. do not support this function.
  34289. Note: offsets returned are 16-bit offsets into the
  34290. Socket Services code segment. They must be called
  34291. appropriately for the processor mode selected.
  34292. (Real, 16:16 and 16:32 modes use FAR CALL,
  34293. Flat 00:32 mode uses a 32-bit NEAR CALL).
  34294. SeeAlso: AH=AEh
  34295. Format of Offset Table structure:
  34296. Offset Size Description (Table 00696)
  34297. 00h WORD Set Address
  34298. 02h WORD Set Auto Increment
  34299. 04h WORD Read Byte
  34300. 06h WORD Read Word
  34301. 08h WORD Read Byte with Auto Increment
  34302. 0Ah WORD Read Word with Auto Increment
  34303. 0Ch WORD Read Words
  34304. 0Eh WORD Read Words with Auto Increment
  34305. 10h WORD Write Byte
  34306. 12h WORD Write Word
  34307. 14h WORD Write Byte with Auto Increment
  34308. 16h WORD Write Word with Auto Increment
  34309. 18h WORD Write Words
  34310. 1Ah WORD Write Words with Auto Increment
  34311. 1Ch WORD Compare Byte
  34312. 1Eh WORD Compare Byte with Auto Increment
  34313. 20h WORD Compare Words
  34314. 22h WORD Compare Words with Auto Increment
  34315. --------X-1AA2-------------------------------
  34316. INT 1A - CardBus Socket Services - ACCESS CONFIGURATION SPACE
  34317. AH = A2h
  34318. ??? details not available
  34319. Return: ???
  34320. --------X-1AA4-------------------------------
  34321. INT 1A - CardBus Socket Services - GET BRIDGE WINDOW / WINDOW CAPABILITIES
  34322. AH = A4h
  34323. ??? details not available
  34324. Return: ???
  34325. SeeAlso: AH=A5h"CardBus"
  34326. --------X-1AA5-------------------------------
  34327. INT 1A - CardBus Socket Services - SET BRIDGE WINDOW
  34328. AH = A5h
  34329. ??? details not available
  34330. Return: ???
  34331. SeeAlso: AH=A4h"CardBus"
  34332. --------c-1AAB-------------------------------
  34333. INT 1A U - Disk Spool II v1.83 - INSTALLATION CHECK
  34334. AH = ABh
  34335. Return: AH = BAh if installed
  34336. AL = pending INT 1A/AH=ADh subfunction if nonzero???
  34337. ES = code segment
  34338. ES:BX -> name of current spool file
  34339. ES:SI -> current despool file
  34340. CL = despooler state (00h disabled, 41h enabled)
  34341. CH = spooler state (00h disabled, 41h enabled)
  34342. DL = despooler activity
  34343. 00h currently active printing a file
  34344. 41h standing by
  34345. DH = 00h ???
  34346. = 41h ???
  34347. DI = 0000h ???
  34348. 0001h ???
  34349. Program: Disk Spool II is a shareware disk-based print spooler by Budget
  34350. Software Company
  34351. SeeAlso: AH=A0h,AH=ACh,AH=ADh,AH=E1h
  34352. --------c-1AAC-------------------------------
  34353. INT 1A U - Disk Spool II v1.83 - INSTALLATION CHECK
  34354. AH = ACh
  34355. Return: (see AH=ABh)
  34356. Note: this function is identical to AH=ABh
  34357. SeeAlso: AH=A0h,AH=ABh,AH=ADh
  34358. --------c-1AAD-------------------------------
  34359. INT 1A U - Disk Spool II v1.83 - FUNCTION CALLS
  34360. AH = ADh
  34361. AL = function code (see #00697)
  34362. Return: AH = 00h if successful
  34363. SeeAlso: AH=ABh
  34364. (Table 00697)
  34365. Values for Disk Spool function code:
  34366. 02h enable spooler only
  34367. 03h enable the despooler
  34368. 04h disable the despooler
  34369. 08h inhibit popup menu
  34370. 09h enable popup menu
  34371. 0Ah ???
  34372. 0Bh disable the spooler
  34373. 0Ch start despooler after last successfully printed document???
  34374. 0Dh start despooler at the exact point where it last left off???
  34375. 0Eh pop up the menu
  34376. 0Fh ???
  34377. 11h ???
  34378. 14h ???
  34379. 15h ???
  34380. 16h ???
  34381. 17h ???
  34382. 18h ???
  34383. 19h ???
  34384. 20h clear file pointed to by the despooler???
  34385. 21h ???
  34386. 22h ???
  34387. 23h ???
  34388. 30h ???
  34389. --------X-1AAE-------------------------------
  34390. INT 1A - PCMCIA Socket Services v2.1 - VENDOR SPECIFIC
  34391. AH = AEh
  34392. AL = adapter number
  34393. all other registers are vendor-specific
  34394. Return: vendor specific
  34395. SeeAlso: AH=A1h,AH=AFh
  34396. --------X-1AAE-------------------------------
  34397. INT 1A - PCMCIA Socket Services v2.1 - API
  34398. AH = AEh
  34399. SI = function
  34400. 0002h ???
  34401. 0100h ???
  34402. 0101h ???
  34403. 8000h ???
  34404. 8001h ???
  34405. details not yet available
  34406. Return: CF clear if successful
  34407. CF set on error
  34408. AH = error code (02h,0Bh,11h,15h,17h) (see #00656)
  34409. SeeAlso: AH=9Eh
  34410. --------X-1AAF-------------------------------
  34411. INT 1A - PCMCIA v2 Card Services - API
  34412. AH = AFh
  34413. AL = function
  34414. 00h close memory
  34415. 01h copy memory
  34416. 02h deregister client
  34417. 03h get client information (see #00702)
  34418. 04h get configuration information (see #00704)
  34419. 05h get first partition
  34420. 06h get first region
  34421. 07h get first tuple (see #00711)
  34422. 08h get next partition
  34423. 09h get next region
  34424. 0Ah get next tuple
  34425. 0Bh get Card Services information (see #00700)
  34426. 0Ch get status
  34427. 0Dh get tuple data (see #00712)
  34428. 0Eh get first client (see #00701)
  34429. 0Fh get/register Erase Queue
  34430. 10h register client (see #00713)
  34431. 11h reset function
  34432. 12h map logical socket
  34433. 13h map logical window
  34434. 14h map memory page
  34435. 15h map physical socket
  34436. 16h map physical window
  34437. 17h modify window
  34438. 18h open memory
  34439. 19h read memory
  34440. 1Ah register MTD
  34441. 1Bh release I/O
  34442. 1Ch release IRQ (see #00715)
  34443. 1Dh release window
  34444. 1Eh release configuration (see #00716)
  34445. 1Fh request I/O (see #00717)
  34446. 20h request IRQ (see #00718)
  34447. 21h reqeust window (see #00720)
  34448. 22h request socket mask
  34449. 23h return SS entry
  34450. 24h write memory
  34451. 25h deregister Erase Queue
  34452. 26h check Erase Queue
  34453. 27h modify configuration
  34454. 28h register timer
  34455. 29h set region
  34456. 2Ah get next client
  34457. 2Bh validate CIS
  34458. 2Ch request exclusive access (see #00723)
  34459. 2Dh release exclusive access (see #00723)
  34460. 2Eh get event mask
  34461. 2Fh release socket mask
  34462. 30h request configuration (see #00724)
  34463. 31h set event mask
  34464. 32h add Socket Service
  34465. 33h replace Socket Service
  34466. 34h vendor-specific
  34467. 35h adjust resource information
  34468. 36h access configuration register
  34469. 37h get first window
  34470. 38h get next window
  34471. 39h get memory page
  34472. 3Ah request DMA
  34473. 3Bh release DMA
  34474. further details not yet available
  34475. Return: ??? = result code (see #00698)
  34476. SeeAlso: AH=AEh
  34477. (Table 00698)
  34478. Values for PCMCIA Card Services result codes:
  34479. 00h successful
  34480. 01h invalid adapter number
  34481. 02h bad value for attribute field
  34482. 03h bad value for base system memory address
  34483. 04h invalid EDC generator specified
  34484. 05h (reserved for historical reasons)
  34485. 06h invalid IRQ level specified
  34486. 07h invalid PC Card memory array offset
  34487. 08h invalid page number specified
  34488. 09h unable to complete read request
  34489. 0Ah invalid size specified
  34490. 0Bh invalid socket number
  34491. 0Ch (reserved for historical reasons)
  34492. 0Dh invalid window or interface type
  34493. 0Eh invalid Vcc power level specified
  34494. 0Fh invalid Vpp1 or Vpp2 power level specified
  34495. 10h (reserved for historical reasons)
  34496. 11h invalid window number
  34497. 12h unable to complete write request
  34498. 13h (reserved for historical reasons)
  34499. 14h no PC Card in socket
  34500. 15h service not supported by implementation
  34501. 16h unsupported processor mode
  34502. 17h specified speed not available
  34503. 18h busy -- retry later
  34504. 19h undefined error (general failure)
  34505. 1Ah storage medium write protected
  34506. 1Bh argument length in (E)CX is invalid
  34507. 1Ch bad value(s) in argument packet
  34508. 1Dh configuration has already been locked
  34509. 1Eh requested resource already in use
  34510. 1Fh no more items of requested type available
  34511. 20h out of resources
  34512. 21h invalid client handle
  34513. 22h unsupported client version
  34514. (Table 00699)
  34515. Values for Card Services Callback Event codes:
  34516. 01h battery dead
  34517. 02h battery low
  34518. 03h card locked
  34519. 04h card has become ready
  34520. 05h card removed
  34521. 06h card unlocked
  34522. 07h motorized ejection complete
  34523. 08h ejection requested
  34524. 09h insertion complete
  34525. 0Ah insertion requested
  34526. 0Bh power management: resume
  34527. 0Ch power management: suspend
  34528. 0Dh exclusive access granted
  34529. 0Eh exclusive access requested
  34530. 0Fh perform physical reset
  34531. 10h physical reset requested
  34532. 11h card has been reset
  34533. 12h MTD request (read/write/etc)
  34534. 14h request for client info
  34535. 15h timer has expired
  34536. 16h Socket Service was modified
  34537. 17h write-protected
  34538. 18h attention requested
  34539. 40h card insertion
  34540. 80h reset complete
  34541. 81h erase complete
  34542. 82h registration complete
  34543. Format of Card Services Information:
  34544. Offset Size Description (Table 00700)
  34545. 00h WORD length of information record in bytes
  34546. 02h WORD signature
  34547. 04h WORD number of sockets
  34548. 06h WORD revision level
  34549. 08h WORD Card Services level
  34550. 0Ah WORD offset of vendor string
  34551. 0Ch WORD length of vendor string
  34552. 0Eh WORD number of functions
  34553. 10h 255 BYTEs vendor string
  34554. SeeAlso: #00702
  34555. Format of Card Services Client structure:
  34556. Offset Size Description (Table 00701)
  34557. 00h WORD PCMCIA socket number
  34558. 02h WORD client attributes
  34559. Format of Cards Services Client Information:
  34560. Offset Size Description (Table 00702)
  34561. 00h WORD maximum length of data in bytes (180)
  34562. 02h WORD (ret) length of returned data
  34563. 04h WORD attributes (see #00703)
  34564. 06h WORD revision level (BCD)
  34565. 08h WORD Card Services level (BCD)
  34566. 0Ah WORD revision date (DOS packed date format) (see #01666)
  34567. 0Ch WORD offset to name
  34568. 0Eh WORD length of name
  34569. 10h WORD offset to vendor string
  34570. 12h WORD length of vendor string
  34571. 14h 80 BYTEs buffer for name
  34572. 64h 80 BYTEs buffer for vendor string
  34573. SeeAlso: #00700,#00704
  34574. Bitfields for Card Services client attributes:
  34575. Bit(s) Description (Table 00703)
  34576. 0 memory client
  34577. 1 MTD client
  34578. 2 I/O client
  34579. 3 all clients can share this card
  34580. 4 only one client can use this card at a time
  34581. SeeAlso: #00702
  34582. Format of Card Services configuration information:
  34583. Offset Size Description (Table 00704)
  34584. 00h WORD socket (usually 0000h)
  34585. 02h WORD attributes (see #00705)
  34586. 04h BYTE Vcc value
  34587. 05h BYTE Vpp1 value
  34588. 06h BYTE Vpp2 value
  34589. 07h BYTE interface type (see #00706)
  34590. 08h DWORD base address of configuration registers
  34591. 0Ch BYTE card's Status register setting (if present)
  34592. 0Dh BYTE card's Pin register setting (if present)
  34593. 0Eh BYTE card's Socket/Copy register setting (if present)
  34594. 0Fh BYTE card's Option register setting (if present)
  34595. 10h BYTE bitmap of present card configuration registers
  34596. 11h BYTE first device type
  34597. 12h BYTE function code
  34598. 13h BYTE SysInit mask
  34599. 14h WORD manufacturer code
  34600. 16h WORD manufacturer information
  34601. 18h BYTE valie card register values
  34602. 19h BYTE IRQ number assigned to PC Card
  34603. 1Ah WORD IRQ attributes (see #00708)
  34604. 1Ch WORD base port address (for I/O range 1)
  34605. 1Eh BYTE number of contiguous ports (for I/O range 1)
  34606. 1Fh BYTE bitmap of port attributes (for I/O range 1) (see #00709)
  34607. 20h WORD base port address (for I/O range 2)
  34608. 22h BYTE number of contiguous ports (for I/O range 2)
  34609. 23h BYTE bitmap of port attributes (for I/O range 2) (see #00709)
  34610. 24h BYTE number of I/O address lines decoded (16-bit PC Card only)
  34611. 25h BYTE extended status register setting (if present)
  34612. 26h BYTE bitmap of DMA attributes (see #00710)
  34613. (note: value at call is used to set!)
  34614. 27h BYTE assigned DMA channel
  34615. 28h BYTE number of I/O windows in use on logical socket
  34616. 29h BYTE number of memory windows in use on logical socket
  34617. SeeAlso: #00703,#00724
  34618. Bitfields for Card Services Configuration attributes:
  34619. Bit(s) Description (Table 00705)
  34620. 0 exclusive
  34621. 1 IRQ active
  34622. 2 CardBus card
  34623. 3-5 reserved (0)
  34624. 6 DMA channel is active
  34625. 7 reserved (0)
  34626. 8 valid client
  34627. 9 overwrite voltage value
  34628. 10-15 reserved (0)
  34629. SeeAlso: #00704
  34630. Bitfields for Card Services Configuration interface type:
  34631. Bit(s) Description (Table 00706)
  34632. 0 memory interface
  34633. 1 I/O and memory interface
  34634. 2 CardBus interface
  34635. 3-7 reserved (0)
  34636. SeeAlso: #00704
  34637. Bitfields for Card Services Configuration registers:
  34638. Bit(s) Description (Table 00707)
  34639. 0 option value is value
  34640. 1 status value
  34641. 2 pin-replacement value
  34642. 3 copy value
  34643. 4 extended status value
  34644. 5-7 reserved (0)
  34645. SeeAlso: #00704
  34646. Bitfields for Card Services Configuration IRQ attributes:
  34647. Bit(s) Description (Table 00708)
  34648. 1-0 sharing
  34649. 00 no sharing
  34650. 01 time-multiplex sharing
  34651. 10 dynamic sharing
  34652. 11 reserved
  34653. 2 force pulse mode
  34654. 3 first used together
  34655. 4-7 reserved
  34656. 8 pulse IRQ has been assigned
  34657. 9-15 reserved
  34658. SeeAlso: #00704,#00709,#00710,#00715,#00718
  34659. Bitfields for Card Services Configuration Port attributes:
  34660. Bit(s) Description (Table 00709)
  34661. 0 shared I/O ports
  34662. 1 "CS_FirstCommonUsedCard"
  34663. 2 force alias access
  34664. 3 =1 sixteen-bit I/O
  34665. =0 eight-bit I/O
  34666. 7-4 reserved (0)
  34667. SeeAlso: #00704,#00708,#00710,#00717
  34668. Bitfields for Card Services Configuration DMA attributes:
  34669. Bit(s) Description (Table 00710)
  34670. 1-0 sharing mode
  34671. 00 no sharing
  34672. 01 time-multiplex sharing
  34673. 10 dynamic sharing
  34674. 11 reserved
  34675. 3-2 DMA request signal
  34676. 00 reserved
  34677. 01 DMARQ uses pin SPKR#
  34678. 10 DMARQ uses pin IOIS16#
  34679. 11 DMARQ uses pin INPACK#
  34680. 4 DMA size
  34681. 0 eight bits
  34682. 1 sixteen bits
  34683. 7-5 reserved (0)
  34684. SeeAlso: #00704,#00708,#00709
  34685. Format of Card Services Tuple information:
  34686. Offset Size Description (Table 00711)
  34687. 00h WORD logical socket number
  34688. 02h WORD attributes
  34689. bit 0: return Link tuples
  34690. 04h BYTE code value of desired tuple
  34691. 05h BYTE reserved (0)
  34692. 06h WORD (ret) TupleFlags
  34693. 08h DWORD (ret) -> Card Services Link State Information
  34694. 0Ch DWORD (ret) -> Card Services CIS State Information
  34695. 10h BYTE (ret) code for tuple
  34696. 11h BYTE (ret) link value for tuple
  34697. SeeAlso: #00712
  34698. Format of Card Services GetTupleData record:
  34699. Offset Size Description (Table 00712)
  34700. 00h WORD logical socket
  34701. 02h WORD attributes
  34702. 04h BYTE code value of desired tuple
  34703. 05h BYTE offset into tuple from link byte
  34704. 06h WORD flags
  34705. 08h DWORD -> Link
  34706. 0Ch DWORD -> CIS
  34707. 10h WORD (call) maximum amount of data to return (0004h)
  34708. 12h WORD (ret) amount of data returned
  34709. 14h DWORD (ret) tuple data
  34710. SeeAlso: #00711
  34711. Format of Card Services Client Registration record:
  34712. Offset Size Description (Table 00713)
  34713. 00h WORD attributes
  34714. 02h WORD event mask
  34715. 04h WORD client data (passed to client event handler in DI)
  34716. --- 16-bit code ---
  34717. 06h WORD client data selector (passed to event handler in DS)
  34718. 08h WORD client data offset (passed to event handler in SI)
  34719. 0Ah WORD reserved
  34720. --- 32-bit code ---
  34721. 06h WORD reserved
  34722. 08h DWORD client data offset (passed to event handler in ESI)
  34723. ------
  34724. 0Ch WORD expected Card Services version (0210h for v2.10)
  34725. Bitfields for Card Services client event codes:
  34726. Bit(s) Description (Table 00714)
  34727. 0 change in write-protect status
  34728. 1 change in card lock
  34729. 2 ejection request
  34730. 3 insertion request
  34731. 4 battery is dead
  34732. 5 battery low
  34733. 6 change in Ready
  34734. 7 change in Card Detect
  34735. 8 power management change
  34736. 9 reset
  34737. 10 Socket Services updated
  34738. 11 extended status change
  34739. SeeAlso: #00713
  34740. Format of Card Services ReleaseIRQ record:
  34741. Offset Size Description (Table 00715)
  34742. 00h WORD logical socket number
  34743. 02h WORD attributes (see #00708)
  34744. 04h BYTE assigned IRQ number to be released
  34745. Format of Card Services Release Configuration record:
  34746. Offset Size Description (Table 00716)
  34747. 00h WORD logical socket number
  34748. Format of Card Services Request I/O record:
  34749. Offset Size Description (Table 00717)
  34750. 00h WORD logical socket number
  34751. 02h WORD base port 1
  34752. 04h BYTE size of port range 1
  34753. 05h BYTE attributes for port range 1 (see #00709)
  34754. 06h WORD base port 2
  34755. 08h BYTE size of port range 2
  34756. 09h BYTE attributes for port range 2 (see #00709)
  34757. 0Ah BYTE number of address lines (typically 16)
  34758. SeeAlso: #00718,#00716
  34759. Format of Card Services Request IRQ record:
  34760. Offset Size Description (Table 00718)
  34761. 00h WORD logical socket number
  34762. 02h WORD attributes (see #00708)
  34763. 04h BYTE (ret) assigned IRQ number, if successful
  34764. 05h BYTE IRQ info (see #00719)
  34765. 06h WORD bitmap of available IRQs (bit 0 = IRQ0, etc.)
  34766. (only if bit 4 of IRQ info set)
  34767. SeeAlso: #00717,#00716
  34768. Bitfields for Card Services Request IRQ info flags:
  34769. Bit(s) Description (Table 00719)
  34770. 7 IRQ is shared
  34771. 6 pulse (edge-triggered) interrupt
  34772. 5 level interrupt
  34773. 4 use IRQ bitmap
  34774. --- bit 4 set ---
  34775. 3 vendor-specific interrupt
  34776. 2 bus error
  34777. 1 I/O check interrupt
  34778. 0 NMI
  34779. --- bit 4 clear ---
  34780. 3-0 IRQ number
  34781. SeeAlso: #00718
  34782. Format of Card Services Request Window record:
  34783. Offset Size Description (Table 00720)
  34784. 00h WORD logical socket number
  34785. 02h WORD attributes (see #00721)
  34786. 04h DWORD system base adress
  34787. 08h DWORD size of memory window
  34788. 0Ch BYTE additional info
  34789. if attributes bit ??? is set, this is the address-lines field
  34790. otherwise, this is the access-speed field (see #00722)
  34791. Bitfields for Card Services Request Window attributes:
  34792. Bit(s) Description (Table 00721)
  34793. 0 I/O window instead of memory window
  34794. 1 attribute memory instead of normal memory (16-bit PC Cards only)
  34795. 2 window enabled
  34796. 3 16-bit data path instead of 8-bit path (16-bit PC Cards only, v2.10+)
  34797. (ignored if bit 9 set)
  34798. 4 size is given in 16K pages (invalid for CardBus PC Cards)
  34799. 5 shared (invalid for CardBus)
  34800. 6 first shared (invalid for CardBus)
  34801. 7 "CS_BindingSpecific" (memory window only)
  34802. 8 card offsets are window-size granular (16-bit PC Card memory window)
  34803. 9 32-bit data path (CardBus only)
  34804. 10 reserved (0)
  34805. 12-11 prefetch/cache
  34806. 00 neither prefetchable nor cacheable
  34807. 01 prefetchable but not cacheable
  34808. 10 prefetchable and cachable
  34809. 11 reserved
  34810. 15-13 decoded base address register number (CardBus only)
  34811. SeeAlso: #00720,#00722
  34812. Bitfields for Card Services Request Window access-speed:
  34813. Bit(s) Description (Table 00722)
  34814. 6-3 mantissa
  34815. 0000 use device speed code
  34816. 0001 1.0
  34817. 0010 1.2
  34818. 0011 1.2 ???
  34819. 0100 1.5
  34820. 0101 2.0
  34821. 0110 2.5
  34822. 0111 3.0
  34823. 1000 3.5
  34824. 1001 4.0
  34825. 1010 4.5
  34826. 1011 5.0
  34827. 1100 5.5
  34828. 1101 6.0
  34829. 1110 7.0
  34830. 1111 8.0
  34831. --- if mantissa==0 ---
  34832. 2-0 device speed code
  34833. 000 reserved
  34834. 001 250 ns
  34835. 010 200 ns
  34836. 011 150 ns
  34837. 100 100 ns
  34838. 101-111 reserved
  34839. --- if mantissa<>0 ---
  34840. 2-0 speed exponent
  34841. 000 1 ns
  34842. 001 10 ns
  34843. 010 100 ns
  34844. 011 1 us
  34845. 100 10 us
  34846. 101 100 us
  34847. 110 1 ms
  34848. 111 10 ms
  34849. SeeAlso: #00720,#00721
  34850. Format of Card Services Request/Release Exclusive Access record:
  34851. Offset Size Description (Table 00723)
  34852. 00h WORD logical socket number
  34853. 02h WORD attributes (currently all reserved, must be 0000h)
  34854. Format of Card Services Request Configuration record:
  34855. Offset Size Description (Table 00724)
  34856. 00h WORD socket (usually 0000h)
  34857. 02h WORD attributes (see #00705)
  34858. 04h BYTE Vcc value
  34859. 05h BYTE Vpp1 value
  34860. 06h BYTE Vpp2 value
  34861. 07h BYTE interface type (see #00706)
  34862. 08h DWORD base address of configuration registers
  34863. 0Ch BYTE card's Status register setting (if present)
  34864. 0Dh BYTE card's Pin register setting (if present)
  34865. 0Eh BYTE card's Socket/Copy register setting (if present)
  34866. 0Fh BYTE card's Option register setting (if present)
  34867. 10h BYTE bitmap of present card configuration registers
  34868. 11h BYTE extended status register setting (if present)
  34869. SeeAlso: #00704
  34870. --------X-1AB000-----------------------------
  34871. INT 1A U - HP 100LX/200LX - PCMCIA - ???
  34872. AX = B000h
  34873. ES:BX -> parameter block ???
  34874. Return: CF clear if ???
  34875. CF set if ???
  34876. Note: called by HP 100LX/200LX PCMCIA client CIC100.EXE
  34877. --------d-1AB001CX4D52-----------------------
  34878. INT 1A - Microsoft Real-Time Compression Interface (MRCI) - ROM-BASED SERVER
  34879. AX = B001h
  34880. CX = 4D52h ("MR")
  34881. DX = 4349h ("CI")
  34882. Return: CX = 4943h ("IC") if installed
  34883. DX = 524Dh ("RM") if installed
  34884. ES:DI -> MRCINFO structure (see #00725)
  34885. Note: this call is functionally identical to INT 2F/AX=4A12h, which should
  34886. be called first, as this call is used for the first, ROM-based
  34887. MRCI server, while the other call is used for RAM-based servers
  34888. which may be partially or entirely replacing a prior server
  34889. SeeAlso: INT 2F/AX=4A12h
  34890. Format of MRCINFO structure:
  34891. Offset Size Description (Table 00725)
  34892. 00h 4 BYTEs vendor signature
  34893. "MSFT" Microsoft
  34894. 04h WORD server version (high=major)
  34895. 06h WORD MRCI specification version
  34896. 08h DWORD address of server entry point (see #00727)
  34897. 0Ch WORD bit flags: server capabilities (see #00726)
  34898. 0Eh WORD bit flags: hardware assisted capabilities (see #00726)
  34899. 10h WORD maximum block size supported by server (at least 8192 bytes)
  34900. Bitfields for MRCI capabilities:
  34901. Bit(s) Description (Table 00726)
  34902. 0 standard compress
  34903. 1 standard decompress
  34904. 2 update compress
  34905. 3 MaxCompress (not present in initial public release)
  34906. 4 reserved
  34907. 5 incremental decompress
  34908. 6 MRCI 2.0 standard compress
  34909. 7 MRCI 2.0 standard decompress
  34910. 8-14 reserved
  34911. 15 this structure is in ROM and can't be modified
  34912. (server capabilities only)
  34913. (Table 00727)
  34914. Call MRCI entry point with:
  34915. DS:SI -> MRCREQUEST structure (see #00728)
  34916. CX = type of client (0000h application, 0001h file system)
  34917. AX = operation
  34918. 0001h perform standard compression
  34919. 0002h perform standard decompression
  34920. 0004h perform update compression
  34921. 0008h perform MaxCompress
  34922. 0020h perform incremental decompression
  34923. 0040h perform MRCI 2.0 standard compression
  34924. 0080h perform MRCI 2.0 standard decompression
  34925. AX = FFFFh clear flags
  34926. BX = bitmask of flags to clear (set bits in BX are flags to clear)
  34927. Return: AX = status
  34928. 0000h successful
  34929. 0001h invalid function
  34930. 0002h server busy, try again
  34931. 0003h destination buffer too small
  34932. 0004h incompressible data
  34933. 0005h bad compressed data format
  34934. BP destroyed (MS-DOS 6.2)
  34935. Note: MRCI driver may chain to a previous driver
  34936. Format of MRCREQUEST structure:
  34937. Offset Size Description (Table 00728)
  34938. 00h DWORD pointer to source buffer
  34939. 04h WORD size of source buffer (0000h = 64K)
  34940. 06h WORD (UpdateCompress only)
  34941. (call) offset in source buffer of beginning of changed data
  34942. (ret) offset in destination buffer of beginning of changed
  34943. compressed data
  34944. 08h DWORD pointer to destination buffer
  34945. must contain original compressed data for UpdateCompress
  34946. 0Ch WORD size of destination buffer (0000h = 64K)
  34947. any compression: size of buffer for compressed data
  34948. standard decompression: number of bytes to be decompressed
  34949. incremental decompression: number of byte to decompress now
  34950. (ret) actual size of resulting data
  34951. 0Eh WORD client compressed data storage allocation size
  34952. 10h DWORD incremental decompression state data
  34953. set to 00000000h before first incremental decompression call
  34954. Notes: the source and destination buffers may not overlap
  34955. the source and destination buffer sizes should normally be the same
  34956. application should not update the contents of the MRCREQUEST structure
  34957. between incremental decompression calls
  34958. --------!---Section--------------------------
  34959. Interrupt List, part 5 of 18
  34960. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  34961. --------X-1AB101-----------------------------
  34962. INT 1A - PCI BIOS v2.0c+ - INSTALLATION CHECK
  34963. AX = B101h
  34964. EDI = 00000000h
  34965. Return: AH = 00h if installed
  34966. CF clear
  34967. EDX = 20494350h (' ICP')
  34968. EDI = physical address of protected-mode entry point (see #00731)
  34969. AL = PCI hardware characteristics (see #00730)
  34970. BH = PCI interface level major version (BCD)
  34971. BL = PCI interface level minor version (BCD)
  34972. CL = number of last PCI bus in system
  34973. EAX, EBX, ECX, and EDX may be modified
  34974. all other flags (except IF) may be modified
  34975. Notes: this function may require up to 1024 byte of stack; it will not enable
  34976. interrupts if they were disabled before making the call
  34977. some BIOSes do not change EDI, so applications looking for the
  34978. protected-mode entry point should set EDI to 00000000h before
  34979. calling this function
  34980. SeeAlso: AX=B181h
  34981. (Table 00729)
  34982. Values for PCI BIOS v2.0c+ status codes:
  34983. 00h successful
  34984. 81h unsupported function
  34985. 83h bad vendor ID
  34986. 86h device not found
  34987. 87h bad PCI register number
  34988. Bitfields for PCI hardware characteristics:
  34989. Bit(s) Description (Table 00730)
  34990. 0 configuration space access mechanism 1 supported
  34991. 1 configuration space access mechanism 2 supported
  34992. 2-3 reserved
  34993. 4 Special Cycle generation mechanism 1 supported
  34994. 5 Special Cycle generation mechanism 2 supported
  34995. 6-7 reserved
  34996. (Table 00731)
  34997. Call protected-mode entry point with:
  34998. registers as for real/V86-mode INT call
  34999. CS = ring 0 descriptor with access to full address space
  35000. Return: as for real/V86-mode call
  35001. --------X-1AB102-----------------------------
  35002. INT 1A - PCI BIOS v2.0c+ - FIND PCI DEVICE
  35003. AX = B102h
  35004. CX = device ID (see #00735,#00742,#00743,#00873,#00875)
  35005. DX = vendor ID (see #00732)
  35006. SI = device index (0-n)
  35007. Return: CF clear if successful
  35008. CF set on error
  35009. AH = status (00h,83h,86h) (see #00729)
  35010. 00h successful
  35011. BH = bus number
  35012. BL = device/function number (bits 7-3 device, bits 2-0 func)
  35013. EAX, EBX, ECX, and EDX may be modified
  35014. all other flags (except IF) may be modified
  35015. Notes: this function may require up to 1024 byte of stack; it will not enable
  35016. interrupts if they were disabled before making the call
  35017. device ID FFFFh may be reserved as a wildcard in future implementations
  35018. the meanings of BL and BH on return were exchanged between the initial
  35019. drafts of the specification and final implementation
  35020. all devices sharing a single vendor ID and device ID may be enumerated
  35021. by incrementing SI from 0 until error 86h is returned
  35022. SeeAlso: AX=B182h
  35023. (Table 00732)
  35024. Values for PCI vendor ID:
  35025. 001Ah Ascend Communications, Inc.
  35026. 003Dh Martin-Marietta Corporation
  35027. 0E11h Compaq (see #00733)
  35028. 1000h Symbios Logic Inc (formerly NCR) (see #00734)
  35029. 1002h ATI (see #00735)
  35030. 1003h ULSI Systems (see #00736)
  35031. 1004h VLSI Technologies (see #00737)
  35032. 1005h Avance Logics (ADL) (see #00738)
  35033. 1006h Reply Group
  35034. 1007h Netframe Systems Inc.
  35035. 1008h Epson
  35036. 100Ah Phoenix Technologies
  35037. 100Bh National Semiconductor (see #00739)
  35038. 100Ch Tseng Labs (see #00740) (also ID 10BEh)
  35039. 100Dh AST Research
  35040. 100Eh Weitek (see #00741)
  35041. 1010h Video Logic Ltd
  35042. 1011h DEC (see #00742)
  35043. 1012h Micronics Computers
  35044. 1013h Cirrus Logic (see #00743,#00029)
  35045. 1014h IBM (see #00744)
  35046. 1015h LSI Logic Corp. of Canada
  35047. 1016h ICL Personal Systems
  35048. 1017h SPEA Software AG
  35049. 1018h Unisys
  35050. 1019h EliteGroup Computer Sys
  35051. 101Ah NCR/AT&T GIS
  35052. 101Bh Vitesse Semiconductor
  35053. 101Ch Western Digital (see #00745)
  35054. 101Eh AMI (see #00746)
  35055. 101Fh Picturetel
  35056. 1020h Hitachi Computer Electronics
  35057. 1021h Oki Electric Industry
  35058. 1022h Advanced Micro Devices (see #00747)
  35059. 1023h Trident Microsystems (see #00748)
  35060. 1024h Zenith Data Systems
  35061. 1025h Acer
  35062. 1028h Dell Computer Corporation
  35063. 1029h Siemens Nixdorf
  35064. 102Ah LSI Logic, Headland Division (see #00749)
  35065. 102Bh Matrox (see #00750)
  35066. 102Ch Chips & Technologies (see #00751)
  35067. 102Dh Wyse Technologies
  35068. 102Eh Olivetti Advanced Technology
  35069. 102Fh Toshiba America (see #00752)
  35070. 1030h TMC Research
  35071. 1031h Miro Computer Products AG (see #00753)
  35072. 1032h Compaq
  35073. 1033h NEC Corporation (see #00754)
  35074. 1034h Burndy Corporation
  35075. 1035h Computers and Communications Research Lab
  35076. 1036h Future Domain (see #00755)
  35077. 1037h Hitachi Micro Systems
  35078. 1038h AMP Incorporated
  35079. 1039h Silicon Integrated System (SIS) (see #00756)
  35080. 103Ah Seiko Epson Corporation
  35081. 103Bh Tatung Corp. of America
  35082. 103Ch Hewlett-Packard (see #00757)
  35083. 103Eh Solliday
  35084. 103Fh Logic Modeling
  35085. 1040h Kubota Pacific
  35086. 1041h Computrend
  35087. 1042h PC Technology (see #00758,#00928) (see also PORT 03F0h"PCTech")
  35088. 1043h Asustek
  35089. 1044h Distributed Processing Technology (DPT) (see #00759)
  35090. 1045h OPTi (see #00760)
  35091. 1046h IPC Corporation, Ltd.
  35092. 1047h Genoa Systems Corp.
  35093. 1048h Elsa GmbH
  35094. 1049h Fountain Technology
  35095. 104Ah SGS Thomson Microelectric (see #00761)
  35096. 104Bh BusLogic (see #00762)
  35097. 104Ch Texas Instruments (see #00763)
  35098. 104Dh Sony Corporation
  35099. 104Eh Oak Technology (see #00764)
  35100. 104Fh Co-Time Computer Ltd.
  35101. 1050h Winbond (see #00765)
  35102. 1051h Anigma Corp.
  35103. 1052h Young Micro Systems
  35104. 1054h Hitachi, Ltd. (see #00766)
  35105. 1055h EFAR Microsystems (see #00767)
  35106. 1056h ICL
  35107. 1057h Motorola (see #00768)
  35108. 1058h Electronics and Telecommunications Research
  35109. 1059h Teknor Microsystems
  35110. 105Ah Promise Technology (see #00769)
  35111. 105Bh Foxconn International
  35112. 105Ch Wipro Infotech Ltd.
  35113. 105Dh Number 9 Computer Company (see #00770)
  35114. 105Eh VTech Engineering Canada, Ltd.
  35115. 105Fh Infotronic America, Inc.
  35116. 1060h United Microelectronics (UMC) (see #00771)
  35117. 1061h 8x8 (X Tech) (see #00772)
  35118. 1062h Maspar Computer Copr.
  35119. 1063h Ocean Office Automation
  35120. 1064h Alcatel Cit
  35121. 1065h Texas Microsystems
  35122. 1066h PicoPower Technology (see #00773)
  35123. 1067h Mitsubishi Electronics
  35124. 1068h Diversified Technology
  35125. 1069h Mylex Corporation (see #00774)
  35126. 106Ah Aten Research
  35127. 106Bh Apple Computer
  35128. 106Ch Hyundai Electronics America
  35129. 106Dh Sequent
  35130. 106Eh DFI Inc.
  35131. 106Fh City Gate Development, Ltd.
  35132. 1070h Daewoo Telecom Ltd.
  35133. 1071h Mitac
  35134. 1072h GIT Co., Ltd.
  35135. 1073h Yamaha Corporation (see #00775)
  35136. 1074h NexGen Microsystems (see #00776)
  35137. 1075h Advanced Integration Research
  35138. 1076h Chaintech Computer Co. Ltd.
  35139. 1077h Q Logic (see #00777)
  35140. 1078h Cyrix Corporation
  35141. 1079h I-Bus
  35142. 107Ah Networth
  35143. 107Bh Gateway 2000
  35144. 107Ch Goldstar Co. Ltd.
  35145. 107Dh Leadtek Research (see #00778)
  35146. 107Eh Interphase Corporation (see #00779)
  35147. 107Fh Data Technology Corporation (DTC) (see #00780)
  35148. 1080h Contaq Microsystems (see #00781)
  35149. 1081h Supermac Technology
  35150. 1082h EFA Corporation of America
  35151. 1083h Forex Computer Corporation (see #00782)
  35152. 1084h Parador
  35153. 1085h Tulip Computers Int'l BV
  35154. 1086h J. Bond Computer Systems
  35155. 1087h Cache Computer
  35156. 1088h Microcomputer Systems (M) Son
  35157. 1089h Data General Corporation
  35158. 108Ah Bit3 Computer (see #00783)
  35159. 108Ch Elonex PLC (Oakleigh Systems, Inc)
  35160. 108Dh Olicom (see #00784)
  35161. 108Eh Sun Microsystems
  35162. 108Fh Systemsoft Corporation
  35163. 1090h Encore Computer Corporation
  35164. 1091h Intergraph Corporation (see #00785)
  35165. 1092h Diamond Computer Systems
  35166. 1093h National Instruments (see #00786)
  35167. 1094h First International Computers (FIC)
  35168. 1095h CMD Technology, Inc. (see #00787)
  35169. 1096h Alacron
  35170. 1097h Appian Technology (see #00788)
  35171. 1098h Vision / Quantum Designs Ltd (see #00789)
  35172. 1099h Samsung Electronics Co. Ltd.
  35173. 109Ah Packard Bell
  35174. 109Bh Gemlight Computer Ltd.
  35175. 109Ch Megachips Corporation
  35176. 109Dh Zida Technologies
  35177. 109Eh Brooktree Corporation (see #00790)
  35178. 109Fh Trigem Computer Inc.
  35179. 10A0h Meidensha Corporation
  35180. 10A1h Juko Electronics Inc. Ltd.
  35181. 10A2h Quantum Corporation
  35182. 10A3h Everex Systems Inc.
  35183. 10A4h Globe Manufacturing Sales
  35184. 10A5h Racal Interlan
  35185. 10A6h Informtech Industrial Ltd.
  35186. 10A7h Benchmarq Microelectronics
  35187. 10A8h Sierra Semiconductor (see #00791)
  35188. 10A9h Silicon Graphics
  35189. 10AAh ACC Microelectronics (see #00792)
  35190. 10ABh Digicom
  35191. 10ACh Honeywell IASD
  35192. 10ADh Symphony Labs (see #00793)
  35193. 10AEh Cornerstone Technology
  35194. 10AFh Microcomputer Systems
  35195. 10B0h CardExpert Technology
  35196. 10B1h Cabletron Systems, Inc.
  35197. 10B2h Raytheon Company
  35198. 10B3h Databook Inc
  35199. 10B4h STB Systems
  35200. 10B5h PLX Technology (see #00794)
  35201. 10B6h Madge Networks (see #00795)
  35202. 10B7h 3com Corporation (see #00796)
  35203. 10B8h Standard Microsystems Corporation (SMC) (see #00797)
  35204. 10B9h Acer Labs Inc. (see #00798)
  35205. 10BAh Mitsubishi Electronics Corp.
  35206. 10BBh Dapha Electronics Corporation
  35207. 10BCh Advanced Logic Research Inc. (ALR)
  35208. 10BDh Surecom Technology (see #00799)
  35209. 10BEh Tseng Labs International Corp. (see #00740)
  35210. 10BFh Most Inc.
  35211. 10C0h Boca Research Inc.
  35212. 10C1h ICM Corp. Ltd.
  35213. 10C2h Auspex Systems Inc.
  35214. 10C3h Samsung Semiconductors
  35215. 10C4h Award Software International Inc.
  35216. 10C5h Xerox Corporation
  35217. 10C6h Rambus Inc.
  35218. 10C7h Media Vision
  35219. 10C8h Neomagic Corporation (see #00800)
  35220. 10C9h DataExpert Corporation
  35221. 10CAh Fujitsu
  35222. 10CBh Omron Corporation
  35223. 10CCh Mentor Arc Inc.
  35224. 10CDh Advanced System Products (see #00801)
  35225. 10CEh Radius Inc.
  35226. 10CFh Citicorp TTI (see #00802)
  35227. 10D0h Fujitsu Limited
  35228. 10D1h Future+ Systems
  35229. 10D2h Molex Incorporated
  35230. 10D3h Jabil Circuit Inc.
  35231. 10D4h Hualon Microelectronics
  35232. 10D5h Autologic Inc.
  35233. 10D6h Cetia
  35234. 10D7h BCM Advanced Research
  35235. 10D8h Advanced Peripherals Labs
  35236. 10D9h Macronix International Co. Ltd
  35237. 10DAh Thomas-Conrad Corporation
  35238. 10DBh Rohm Research
  35239. 10DCh CERN/ECP/EDU (see #00803)
  35240. 10DDh Evans & Sutherland (see #00804)
  35241. 10DEh NVIDIA Corporation
  35242. 10DFh Emulex Corporation (see #00805)
  35243. 10E0h Integrated Micro Solutions (IMS) (see #00806)
  35244. 10E1h TekRAM Technology Corporation Ltd. (see #00807)
  35245. 10E2h Aptix Corporation
  35246. 10E3h Newbridge Microsystems (see #00808)
  35247. 10E4h Tandem Computers
  35248. 10E5h Micro Industries
  35249. 10E6h Gainbery Computer Products Inc.
  35250. 10E7h Vadem
  35251. 10E8h Applied Micro Circuits Corp. (see #00809)
  35252. 10E9h Alps Electronic Corp. Ltd.
  35253. 10EAh Integraphics Systems (see #00810)
  35254. 10EBh Artist Graphics (see #00811)
  35255. 10ECh Realtek Semiconductor (see #00812)
  35256. 10EDh ASCII Corporation (see #00813)
  35257. 10EEh Xilinx Corporation
  35258. 10EFh Racore Computer Products
  35259. 10F0h Peritek Corporation
  35260. 10F1h Tyan Computer
  35261. 10F2h Achme Computer Inc.
  35262. 10F3h Alaris Inc.
  35263. 10F4h S-MOS Systems
  35264. 10F5h NKK Corporation (see #00814)
  35265. 10F6h Creative Electronic Systems SA
  35266. 10F7h Matsushita Electric Industrial Corp. Ltd.
  35267. 10F8h Altos India Ltd.
  35268. 10F9h PC Direct
  35269. 10FAh Truevision (see #00815)
  35270. 10FBh Thesys Ges. f�r Microelektronik mbH
  35271. 10FCh I/O Data Device Inc.
  35272. 10FDh Soyo Technology Corp. Ltd.
  35273. 10FEh Fast Electronic GmbH
  35274. 10FFh N-Cube
  35275. 1100h Jazz Multimedia
  35276. 1101h Initio Corporation (see #00816)
  35277. 1102h Creative Labs
  35278. 1103h Triones Technologies Inc.
  35279. 1104h Rasterops
  35280. 1105h Sigma Designs, Inc.
  35281. 1106h VIA Technologies (see #00817)
  35282. 1107h Stratus Computer
  35283. 1108h Proteon Inc. (see #00818)
  35284. 1109h Cogent Data Technologies (see #00819)
  35285. 110Ah Siemens AG / Siemens Nixdorf AG (see #00820)
  35286. 110Bh Xenon Microsystems / Chromatic Research, Inc.
  35287. 110Ch Mini-Max Technology Inc.
  35288. 110Dh ZNyX Corporation
  35289. 110Eh CPU Technology
  35290. 110Fh Ross Technology
  35291. 1110h Powerhouse Systems
  35292. 1111h Santa Cruz Operation (SCO)
  35293. 1112h Rockwell / RNS division of Meret Communications Inc. (see #00821)
  35294. 1113h Accton Technology Corporation
  35295. 1114h Atmel Corporation
  35296. 1115h DuPont Pixel Systems
  35297. 1116h Data Translation / Media 100, Inc.
  35298. 1117h Datacube Inc. (see #00822)
  35299. 1118h Berg Electronics
  35300. 1119h Vortex Computersysteme GmbH (see #00823)
  35301. 111Ah Efficient Networks, Inc. (see #00824)
  35302. 111Bh Teledyne Electronic Systems
  35303. 111Ch Tricord Systems, Inc.
  35304. 111Dh Integrated Device Technology
  35305. 111Eh Eldec Corporation
  35306. 111Fh Precision Digital Images
  35307. 1120h EMC Corporation
  35308. 1121h Zilog
  35309. 1122h Multi-tech Systems, Inc.
  35310. 1123h Excellent Design, Inc.
  35311. 1124h Leutron Vision AG
  35312. 1125h Eurocore
  35313. 1126h Vigra
  35314. 1127h FORE Systems (see #00825)
  35315. 1128h ???
  35316. 1129h Firmworks
  35317. 112Ah Hermes Electronics Co.
  35318. 112Bh Linotype - Hell AG
  35319. 112Dh Ravicad
  35320. 112Eh Infomedia MicroElectronics Inc (see #00826)
  35321. 112Fh Imaging Technology (see #00827)
  35322. 1130h Computervision
  35323. 1131h Philips Semiconductors
  35324. 1132h Mitel Corp
  35325. 1133h Eicon Technology Corporation
  35326. 1134h Mercury Computer Systems Inc (see #00828)
  35327. 1135h Fuji Xerox Co Ltd (see #00829)
  35328. 1136h Momentum Data Systems
  35329. 1137h Cisco Systems Inc
  35330. 1138h Ziatech Corporation (see #00830)
  35331. 1139h Dynamic Pictures Inc (see #00831)
  35332. 113Ah FWB Inc
  35333. 113Ch Cyclone Microsystems (PLX) (see #00832)
  35334. 113Dh Leading Edge Products Inc
  35335. 113Eh Sanyo Electric Co. - Computer Engineering Dept.
  35336. 113Fh Equinox Systems
  35337. 1140h Intervoice Inc
  35338. 1141h Crest Microsystem Inc (see #00833)
  35339. 1142h Alliance Semiconductor Corp (see #00834)
  35340. 1143h Netpower, Inc.
  35341. 1144h Cincinnati Milacron / Vickers Inc. Electronic Systems (see #00835)
  35342. 1145h Workbit Corp
  35343. 1146h Force Computers
  35344. 1147h Interface Corp.
  35345. 1148h Schneider & Koch Co. / Syskonnect (see #00836)
  35346. 1149h Win System Corporation
  35347. 114Ah VMIC (see #00837)
  35348. 114Bh Canopus Co.
  35349. 114Ch Annabooks
  35350. 114Dh IC Corporation
  35351. 114Eh Nikon Systems Inc
  35352. 114Fh Digi International / Stargate (see #00838)
  35353. 1150h Thinking Machines Corp.
  35354. 1151h JAE Electronics Inc.
  35355. 1152h Megatek
  35356. 1153h Land Win Electronic Corp.
  35357. 1154h Melco Inc.
  35358. 1155h Pine Technology Ltd.
  35359. 1156h Periscope Engineering
  35360. 1157h Avsys Corporation
  35361. 1158h Voarx R&D Inc. (see #00839)
  35362. 1159h MuTech (see #00840)
  35363. 115Ah Harleguin Ltd.
  35364. 115Bh Parallax Graphics
  35365. 115Ch Photron, Ltd.
  35366. 115Dh Xircom
  35367. 115Eh Peer Protocols Inc.
  35368. 115Fh ???
  35369. 1160h Megasoft Inc.
  35370. 1161h PFU Ltd. (see #00841)
  35371. 1162h OA Laboratory Co Ltd.
  35372. 1163h Creative Labs / Rendition (see #00842)
  35373. 1164h Advanced Peripherals Tech
  35374. 1165h Imagraph Corporation (see #00843)
  35375. 1166h Pequr Technology Inc. / Relience Computer
  35376. 1167h Mutoh Industries, Inc.
  35377. 1168h Thine Electronics Inc
  35378. 1169h Centre for Development of Advanced Computing
  35379. 116Ah Polaris Communications
  35380. 116Bh Connectware Inc
  35381. 116Ch ???
  35382. 116Dh ???
  35383. 116Eh ???
  35384. 116Fh Workstation Technology
  35385. 1170h Inventec Corporation
  35386. 1171h Loughborough Sound Images
  35387. 1172h Altera Corporation
  35388. 1173h Adobe Systems
  35389. 1174h Bridgeport Machines
  35390. 1175h Mitron Computer Inc.
  35391. 1176h SBE
  35392. 1177h Silicon Engineering
  35393. 1178h Alfa Inc (see #00844)
  35394. 1179h Toshiba America Info Systems
  35395. 117Ah A-Trend Technology
  35396. 117Bh LG Electronics Inc.
  35397. 117Ch Atto Technology
  35398. 117Dh ???
  35399. 117Eh T/R Systems
  35400. 117Fh ???
  35401. 1180h Ricoh Co Ltd
  35402. 1181h Telmatics International
  35403. 1182h ???
  35404. 1183h Fujikura Ltd
  35405. 1184h Forks Inc
  35406. 1185h Dataworld
  35407. 1186h D-Link System Inc
  35408. 1187h Advanced Technology Laboratories
  35409. 1188h Shima Seiki Manufacturing Ltd.
  35410. 1189h Matsushita Electronics (see #00845)
  35411. 118Ah Hilevel Technology
  35412. 118Bh ???
  35413. 118Ch Corollary Inc (see #00846)
  35414. 118Dh BitFlow Inc (see #00847)
  35415. 118Eh Hermstedt GmbH
  35416. 118Fh ???
  35417. 1190h ???
  35418. 1191h Artop Electric / Acard Technology Corp. (see #00848)
  35419. 1192h Densan Co. Ltd
  35420. 1193h Zeitnet Inc. (see #00849)
  35421. 1194h Toucan Technology
  35422. 1195h Ratoc System Inc
  35423. 1196h Hytec Electronics Ltd
  35424. 1197h Gage Applied Sciences Inc.
  35425. 1198h Lambda Systems Inc
  35426. 1199h Digital Communications Associates Inc,
  35427. 119Ah Mind Share Inc.
  35428. 119Bh Omega Micro Inc.
  35429. 119Ch Information Technology Inst.
  35430. 119Dh Bug Sapporo Japan
  35431. 119Eh Fujitsu
  35432. 119Fh Bull Hn Information Systems
  35433. 11A0h Convex Computer Corporation
  35434. 11A1h Hamamatsu Photonics K.K.
  35435. 11A2h Sierra Research and Technology
  35436. 11A3h Deuretzbacher GmbH & Co. Eng. KG
  35437. 11A4h Barco
  35438. 11A5h MicroUnity Systems Engineering, Inc.
  35439. 11A6h Pure Data
  35440. 11A7h Power Computing Corp.
  35441. 11A9h InnoSys Inc. (see #00850)
  35442. 11AAh Actel
  35443. 11ABh Galileo Technology Ltd. (see #00851)
  35444. 11ACh Canon Information Systems
  35445. 11ADh Lite-On Communications Inc
  35446. 11AEh Scitex Corporation Ltd
  35447. 11AFh Pro-Log Corporation / Avid Technology Corp.
  35448. 11B0h V3 Semiconductor Inc. (see #00852)
  35449. 11B1h Apricot Computers
  35450. 11B2h Eastman Kodak
  35451. 11B3h Barr Systems Inc.
  35452. 11B4h Leitch Technology International
  35453. 11B5h Radstone Technology Plc
  35454. 11B6h United Video Corp
  35455. 11B7h Motorola
  35456. 11B8h Xpoint Technologies Inc
  35457. 11B9h Pathlight Technology Inc. (see #00853)
  35458. 11BAh Videotron Corp
  35459. 11BBh Pyramid Technology
  35460. 11BCh Network Peripherals Inc
  35461. 11BDh Pinnacle Systems Inc.
  35462. 11BEh International Microcircuits Inc
  35463. 11BFh Astrodesign, Inc.
  35464. 11C3h NEC Corporation
  35465. 11C4h Document Technologies Ind.
  35466. 11C5h Shiva Corporatin
  35467. 11C6h Dainippon Screen Mfg. Co., Ltd.
  35468. 11C7h D.C.M. Data Systems
  35469. 11C8h Dolphin Interconnect Solutions (see #00854)
  35470. 11C9h MAGMA
  35471. 11CAh LSI Systems Inc
  35472. 11CBh Specialix International, Ltd. (see #00855)
  35473. 11CCh Michels & Kleberhoff Computer GmbH
  35474. 11CDh HAL Computer Systems Inc.
  35475. 11CEh Netaccess
  35476. 11D0h Lockheed Martin Federal Systems-Manassas
  35477. 11D2h Intercom, Inc.
  35478. 11D4h Analog Devices
  35479. 11D5h Ikon Corp.
  35480. 11D9h TEC Corp.
  35481. 11DAh Novell
  35482. 11DBh Sega Enterprises, Ltd.
  35483. 11DEh Zoran Corporation
  35484. 11DFh New Wave PDG
  35485. 11E0h ???
  35486. 11E1h GEC Plessey Semi Inc.
  35487. 11E2h Samsung Information Systems Americ
  35488. 11E3h Quicklogic Corporation
  35489. 11E4h Second Wave Inc.
  35490. 11E5h IIX Consulting
  35491. 11E6h Mitsui-Zosen System Research
  35492. 11E7h ???
  35493. 11E8h Digital Processing Systems Inc.
  35494. 11E9h ???
  35495. 11EAh Elsag Bailey
  35496. 11EBh Formation Inc.
  35497. 11ECh Coreco Inc.
  35498. 11EDh Mediamatics
  35499. 11EEh Dome Imaging Systems Inc.
  35500. 11EFh Nicolet Technologies B.V.
  35501. 11F0h Compu-Shack GmbH
  35502. 11F1h Symbios Logic Inc.
  35503. 11F2h Picture Tel Japan K.K.
  35504. 11F3h Keithley Metrabyte
  35505. 11F4h Kinetic Systems Corporation
  35506. 11F5h Computing Devices International
  35507. 11F6h Powermatic Data Systems Ltd.
  35508. 11F6h Compex USA, Inc. (see #00856)
  35509. 11F7h Scientific Atlanta
  35510. 11F8h PMC-Sierra Inc. (see #00857)
  35511. 11F9h I-Cube, Inc.
  35512. 11FEh RP ??? (see #00858)
  35513. 1201h Vista Controls Corp.
  35514. 1203h Bayer Corp., AGFA division
  35515. 1204h Lattice Semiconductor Corp.
  35516. 1205h Array Corp.
  35517. 1206h Amdahl Corp.
  35518. 120Eh Cyclades (see #00859)
  35519. 1216h PURUP Eskofot A/S
  35520. 1217h O2Micro, Inc.
  35521. 121Ah 3DFX Interactive, Inc.
  35522. 121Bh Advanced Telecomm Modules
  35523. 1220h Ariel Corporation (see #00860)
  35524. 1221h Contec Co., Ltd.
  35525. 1222h Ancor Communications, Inc.
  35526. 1223h Heurikon/Computer Products
  35527. 1224h Interactive Images
  35528. 1225h Power I/O, Inc.
  35529. 1226h ???
  35530. 1227h Tech-Source
  35531. 1228h Norsk Elektro Optikk A/S
  35532. 1229h Data Kinesis Inc.
  35533. 122Ah Integrated Telecom
  35534. 122Bh LG Industrial Systems Co. Ltd.
  35535. 122Ch Sican GmbH
  35536. 122Dh Aztech Systems Ltd
  35537. 122Eh Xyratex
  35538. 122Fh Andrew Corporation
  35539. 1230h Fishcamp Engineering
  35540. 1231h Woodward McCoach, Inc.
  35541. 1232h GPT Limited
  35542. 1233h Bus-Tech, Inc.
  35543. 1234h Technical Corp.
  35544. 1235h Risq Modular Systems, Inc. / Smart Modular Technologies, Inc.
  35545. 1236h Sigma Designs Corporation
  35546. 1237h Alta Technology Corporation
  35547. 1238h Adtran
  35548. 1239h The 3DO Company
  35549. 123Ah Visicom Laboratories, Inc.
  35550. 123Bh Seeq Technology, Inc.
  35551. 123Ch Century Systems, Inc.
  35552. 123Dh Engineering Design Team, Inc.
  35553. 123Eh Sumutech, Inc.
  35554. 123Fh C-Cube Microsystems
  35555. 1240h Marathon Technologies Corp.
  35556. 1241h DSC Communications
  35557. 1242h (unknown vendor)
  35558. 1243h Delphax
  35559. 1244h AVM Audiovisuelles Mktg & Computer GmbH
  35560. 1245h A.P.D., S.A.
  35561. 1246h Dipix Technologies, Inc.
  35562. 1247h Xylon Research, Inc.
  35563. 1248h Central Data Corporation
  35564. 1249h Samsung Electronics Co., Ltd.
  35565. 124Ah AEG Electrocom GmbH
  35566. 124Bh SBS/Greenspring Modular I/O
  35567. 124Ch Solitron Technologies, Inc.
  35568. 124Dh Stallion Technologies
  35569. 124Eh Cylink
  35570. 124Fh Infortrend Technology, Inc.
  35571. 1250h Hitachi Microcomputer System, Ltd.
  35572. 1251h VLSI Solution Oy
  35573. 1252h ???
  35574. 1253h Guzik Technical Enterprises
  35575. 1254h Linear Systems Ltd.
  35576. 1255h Optibase Ltd.
  35577. 1256h Perceptive Solutions, Inc.
  35578. 1257h Vertex Networks, Inc.
  35579. 1258h Gilbarco, Inc.
  35580. 1259h Allied telesyn International
  35581. 125Ah ABB Power Systems
  35582. 125Bh Asix Electronics Corporation
  35583. 125Ch Aurora Technologies, Inc.
  35584. 125Dh ESS Technology
  35585. 125Eh SpecialVideo Engineering SRL
  35586. 125Fh Concurrent Technologies, Inc.
  35587. 1260h Harris Semiconductor (see #00861)
  35588. 1261h Matsushita-Kotobuki Electronics Industries
  35589. 1262h ES Computer Company, Ltd.
  35590. 1263h Sonic Solutions
  35591. 1264h Aval Nagasaki Corporation
  35592. 1265h Casio Computer Co., Ltd.
  35593. 1266h Microdyne Corporation
  35594. 1267h S.A. Telecommunications
  35595. 1268h Tektronix
  35596. 1269h Thomson-CSF/TTM
  35597. 126Ah Lexmark International, Inc.
  35598. 126Bh Adax, Inc.
  35599. 126Ch Northern Telecom
  35600. 126Dh Splash Technology, Inc.
  35601. 126Eh Sumitomo Metal Industries, Ltd.
  35602. 126Fh Silicon Motion, Inc.
  35603. 1270h Olympus Optical Co., Ltd.
  35604. 1271h GW Instruments
  35605. 1272h Telematics International
  35606. 1273h Hughes Network Systems
  35607. 1274h Ensoniq (see #00862)
  35608. 1275h Network Appliance Corporation
  35609. 1276h Switched Network Tecnologies, Inc.
  35610. 1277h Comstream
  35611. 1278h Transtech Parallel Systems Ltd.
  35612. 1279h Transmeta Corporation
  35613. 127Ah Rockwell Semiconductor Systems
  35614. 127Bh Pixera Corporation
  35615. 127Ch Crosspoint Solutions, Inc.
  35616. 127Dh Vela Research
  35617. 127Eh Winnov, L.P.
  35618. 127Fh Fujifilm
  35619. 1280h Photoscript Group Ltd.
  35620. 1281h Yokogawa Electric Corporation
  35621. 1282h Davicom Semiconductor, Inc.
  35622. 1283h Integrated Technology Express, Inc.
  35623. 1284h Sahara Networks, Inc.
  35624. 1285h Platform Technologies, Inc.
  35625. 1286h Mazet GmbH
  35626. 1287h M-Pact, Inc. / Luxsonor, Inc.
  35627. 1288h Timestep Corporation
  35628. 1289h AVC Technology, Inc.
  35629. 128Ah Asante Technologies, Inc.
  35630. 128Bh Transwitch Corporation
  35631. 128Ch Retix Corporation / Sonoma Systems, Inc.
  35632. 128Dh G2 Networks, Inc.
  35633. 128Ch Retix Corp
  35634. 128Dh ???
  35635. 128Eh Samho Multi Tech Ltd. / Hoon Tech Co., Ltd.
  35636. 128Fh Tateno Dennou, Inc.
  35637. 1290h Sord Computer Corporation
  35638. 1291h NCS Computer Italia
  35639. 1292h Tritech Microelectronics, Inc.
  35640. 1293h Media Reality Technology
  35641. 1294h Rhetorex, Inc.
  35642. 1295h Imagenation Corporation
  35643. 1296h Kofax Image Products
  35644. 1297h Holco Ent Co, Ltd / Shuttle Computer
  35645. 1298h Spellcaster Telecommunications Inc.
  35646. 1299h Knowledge Technology Lab.
  35647. 129Ah VMetro, Inc.
  35648. 129Bh Image Access
  35649. 129Ch Jaycor / Xantel Corporation
  35650. 129Dh Compcore Multimedia, Inc.
  35651. 129Eh Victor Company of Japan, Ltd.
  35652. 129Fh OEC Medical Systems, Inc.
  35653. 12A0h Allen-Bradley Company
  35654. 12A1h Simpact Associates, Inc.
  35655. 12A2h Newgen Systems Corporation
  35656. 12A3h Lucent Technologies
  35657. 12A4h NTT Electronics Technology Company
  35658. 12A5h Vision Dynamics Ltd.
  35659. 12A6h Scalable Networks, Inc.
  35660. 12A7h AMO GmbH
  35661. 12A8h News Datacom
  35662. 12A9h Xiotech Corporation
  35663. 12AAh SDL Communications, Inc.
  35664. 12ABh Yuan Yuan Enterprise Co., Ltd.
  35665. 12ACh MeasureX Corporation
  35666. 12ADh Multidata GmbH
  35667. 12AEh Alteon Networks, inc.
  35668. 12AFh TDK USA Corporation
  35669. 12B0h Jorge Scientific Corporation
  35670. 12B1h GammaLink
  35671. 12B2h General Signal Networks
  35672. 12B3h Inter-Face Co. Ltd.
  35673. 12B4h FutureTel Inc.
  35674. 12B5h Granite Systems Inc.
  35675. 12B6h Natural Microsystems
  35676. 12B7h Acumen
  35677. 12B8h Korg
  35678. 12B9h US Robotics / 3com Corporation
  35679. 12BAh PMC Sierra
  35680. 12BBh Nippon Unisoft Corporation
  35681. 12BCh Array Microsystems
  35682. 12BDh Computerm Corp.
  35683. 12BEh Anchor Chips
  35684. 12BFh Fujifilm Microdevices
  35685. 12C0h InfiMed
  35686. 12C1h GMM Research Corp.
  35687. 12C2h Mentec Limited
  35688. 12C3h Holtek Microelectronics Inc.
  35689. 12C4h Connect Tech Inc.
  35690. 12C5h Picture Elements, Inc. (see #00863)
  35691. 12C6h Mitani Corporation
  35692. 12C7h Dialogic Corporation
  35693. 12C8h G Force Co, Ltd.
  35694. 12C9h Gigi Operations
  35695. 12CAh Integrated Computing Engines
  35696. 12CBh Antex Electronics Corporation
  35697. 12CCh Pluto Technologies International
  35698. 12CDh Aims Lab
  35699. 12CEh Netspeed, Inc.
  35700. 12CFh Prophet Systems, Inc.
  35701. 12D0h GDE Systems, Inc.
  35702. 12D1h Psitech
  35703. 12D2h NVIDIA / SGS Thomson
  35704. 12D3h Vingmed Sound A/S
  35705. 12D4h DGM&S
  35706. 12D5h Equator Technologies
  35707. 12D6h Analogic Corporation
  35708. 12D7h Biotronic SRL
  35709. 12D8h Pericom Semiconductor
  35710. 12D9h Aculab PLC
  35711. 12DAh True Time
  35712. 12DBh Annapolis Micro Systems, Inc.
  35713. 12DCh Symicron Computer Communication Ltd.
  35714. 12DDh Management Graphics
  35715. 12DEh Rainbow Technologies
  35716. 12DFh SBS Technologies Inc.
  35717. 12E0h Chase Research
  35718. 12E1h Nintendo Co, Ltd.
  35719. 12E2h Datum Inc, Bancomm-Timing Division
  35720. 12E3h Imation Corp - Medical Imaging Systems
  35721. 12E4h Brooktrout Technology Inc.
  35722. 12E5h Apex Inc / XCD Inc.
  35723. 12E6h Cirel Systems
  35724. 12E7h Sunsgroup Corporation / Sebring Systems
  35725. 12E8h CRISC Corporation
  35726. 12E9h GE Spacenet
  35727. 12EAh Zuken / Real Vision, Inc.
  35728. 12EBh Aureal Semiconductor
  35729. 12ECh 3A International, Inc.
  35730. 12EDh Optivision Inc.
  35731. 12EEh Orange Micro
  35732. 12EFh Vienna Systems
  35733. 12F0h Pentek
  35734. 12F1h Sorenson Vision Inc.
  35735. 12F2h GammaGraphx, Inc.
  35736. 12F3h XING, Inc.
  35737. 12F4h Megatel
  35738. 12F5h Forks
  35739. 12F6h Dawson France
  35740. 12F7h Cognex
  35741. 12F8h Electronic-Design GmbH
  35742. 12F9h FourFold Technologies
  35743. 12FBh Spectrum Signal Processing
  35744. 12FCh Capital Equipment Corp.
  35745. 12FDh i2S
  35746. 12FEh ESD Electronic System Design GmbH
  35747. 12FFh Lexicon
  35748. 1300h Harman International Industries, Inc.
  35749. 1302h Computer Sciences Corp.
  35750. 1303h Innovative Integration
  35751. 1304h Juniper Networks
  35752. 1305h NetPhone, Inc.
  35753. 1306h Duet Technologies
  35754. 1307h Computer Boards
  35755. 1308h Jato Technologies, Inc.
  35756. 1309h AB Semicon, Ltd.
  35757. 130Ah Mitsubishi Electric MicroComputer
  35758. 130Bh Colorgraphic Communications Corp.
  35759. 130Ch AMBEX Technologies, Inc.
  35760. 130Dh Accelerix, Inc.
  35761. 130Eh Yamatake-Honeywell Co., Ltd.
  35762. 130Fh Advanet, Inc.
  35763. 1310h GESPAC
  35764. 1311h VideoServer, Inc.
  35765. 1312h Acuity Imaging, Inc.
  35766. 1313h Yaskawa Electric Co.
  35767. 1316h Teradyne, Inc.
  35768. 1317h Bridgecom, Inc.
  35769. 1318h Packet Engines, Inc.
  35770. 1319h ForteMedia, Inc.
  35771. 131Ah Finisar Corp.
  35772. 131Ch Nippon Electro-Sensory Devices Corp.
  35773. 131Dh Sysmic, Inc.
  35774. 131Eh Xinex Networks, Inc.
  35775. 131Fh SIIG, Inc.
  35776. 1320h Crypto AG
  35777. 1321h Arcobel Graphics BV
  35778. 1322h MTT Co., Ltd.
  35779. 1323h DOME, Inc.
  35780. 1324h Sphere Communications
  35781. 1325h Salix Technologies, Inc.
  35782. 1326h SeaChange International
  35783. 1327h Voss Scientific
  35784. 1328h Quadrant International
  35785. 1329h Productivity Enhancement
  35786. 132Ah Microcom, Inc.
  35787. 132Bh BroadBand Technologies
  35788. 132Ch Micrel, Inc.
  35789. 132Dh Integrated Silicon Solution, Inc.
  35790. 1330h MMC Networks
  35791. 1331h RadiSys Corporation
  35792. 1332h Micro Memory
  35793. 1333h ???
  35794. 1334h Redcreek Communications, Inc.
  35795. 1335h Videomail, Inc.
  35796. 1336h ???
  35797. 1337h Third Planet Publishing
  35798. 1338h BT Electronics
  35799. 133Ah VTEL Corp.
  35800. 133Bh Softcom Microsystems
  35801. 133Ch Holontech Corp.
  35802. 133Dh S S Technologies
  35803. 133Eh Virtual Computer Corp.
  35804. 133Fh SCM Microsystems
  35805. 1340h Atalla Corp.
  35806. 1341h Kyoto Microcomputer Co.
  35807. 1342h Promax Systems Inc.
  35808. 1343h Phylon Communications, Inc.
  35809. 1344h Crucial Technology
  35810. 1345h Arescom, Inc.
  35811. 1346h ???
  35812. 1347h Odetics
  35813. 1348h ???
  35814. 1349h Sumitomo Electric Industries, Ltd.
  35815. 134Ah DTC Technology Corp.
  35816. 134Bh Ark Research Corp.
  35817. 134Ch Chori Joho System Co., Ltd.
  35818. 134Dh Pctel, Inc.
  35819. 134Eh CSTI
  35820. 134Fh Algo System Co., Ltd.
  35821. 1350h Systec Co., Ltd.
  35822. 1351h Sonix, Inc.
  35823. 1353h Dassault A.T.
  35824. 1354h dWave System, Inc.
  35825. 1355h Kratos Analytical, Ltd.
  35826. 1356h The Logical Co.
  35827. 1359h Prisa Networks
  35828. 135Ah Brain Boxes
  35829. 135Bh Giganet, Inc.
  35830. 135Ch Quatech, Inc.
  35831. 135Dh ABB Network Partner AB
  35832. 135Eh Sealevel Systems, Inc.
  35833. 135Fh I-Data International A-S
  35834. 1360h Meinberg Funkuhren
  35835. 1361h Soliton Systems K.K.
  35836. 1362h Fujifacom Corp.
  35837. 1363h Phoenix Technology, Ltd.
  35838. 1364h ATM Communications, Inc.
  35839. 1365h Hypercope Corp.
  35840. 1366h Teijin Seiki Co., Ltd.
  35841. 1367h Hitachi Zosen Corp.
  35842. 1368h Skyware Corp.
  35843. 1369h Digigram
  35844. 136Ah High Soft Tech
  35845. 136Bh Kawasaki Steel Corp.
  35846. 136Ch Adtek System Science Co., Ltd.
  35847. 136Dh Gigalabs, Ltd.
  35848. 136Fh Applied Magic, Inc.
  35849. 1370h ATL Products
  35850. 1371h CNET Technology, Inc.
  35851. 1373h Silicon Vision, Inc.
  35852. 1374h Silicom, Ltd.
  35853. 1375h Argosystems, Inc.
  35854. 1376h LMC
  35855. 1377h Electronic Equipment Production
  35856. 1378h Telemann Co., Ltd.
  35857. 1379h Asahi Kasei Microsystems Co., Ltd.
  35858. 137Ah Mark Of The Unicorn, Inc.
  35859. 137Bh PPT Vision
  35860. 137Ch Iwatsu Electric Co., Ltd.
  35861. 137Dh Dynachip Corp.
  35862. 137Eh Patriot Scientific Corp.
  35863. 137Fh Japan Satellite Systems, Inc.
  35864. 1380h Sanritz Automation Co., Ltd.
  35865. 1381h Brains Co., Ltd.
  35866. 1382h Marian - Electronic & Software
  35867. 1383h Controlnet, Inc.
  35868. 1384h Reality Simulation Systems, Inc.
  35869. 1385h Netgear
  35870. 1386h Video Domain Technologies
  35871. 1387h Systran Corp.
  35872. 1388h Hitachi Information Technology Co., Ltd.
  35873. 1389h Applicom International
  35874. 138Ah Fusion Micromedia Corp.
  35875. 138Bh Tokimec, Inc.
  35876. 138Ch Silicon Reality
  35877. 138Dh Future Techno Designs Pte., Ltd.
  35878. 138Eh Basler GmbH
  35879. 138Fh Patapsco Designs, Inc.
  35880. 1390h Concept Development, Inc.
  35881. 1391h Development Concepts, Inc.
  35882. 1392h Medialight, Inc.
  35883. 1394h Level One Communications
  35884. 1395h Ambicom, Inc.
  35885. 1396h Cipher Systems, Inc.
  35886. 1397h Cologne Chip Designs GmbH
  35887. 1398h Clarion Co., Ltd.
  35888. 1399h Rios Systems Co., Ltd.
  35889. 139Ah Alacritech, Inc.
  35890. 139Bh Mediasonic Multimedia Systems, Ltd.
  35891. 139Ch Quantum 3D, Inc.
  35892. 139Dh EPL, Ltd.
  35893. 139Eh Media4
  35894. 139Fh Aethra S.R.L.
  35895. 13A0h Crystal Group, Inc.
  35896. 13A1h Kawasaki Heavy Industries, Ltd.
  35897. 13A2h Ositech Communications, Inc.
  35898. 13A3h HI-FN
  35899. 13A4h Rascom, Inc.
  35900. 13A5h Audio Digital Imaging, Inc.
  35901. 13A6h Videonics, Inc.
  35902. 13A7h Teles AG
  35903. 13A8h Exar Corp.
  35904. 13A9h Ultrasound Group
  35905. 13AAh Broadband Networks, Inc.
  35906. 13ABh Arcom Control Systems, Ltd.
  35907. 13ACh Motion Media Technology, Ltd.
  35908. 13ADh Nexus, Inc.
  35909. 13AEh ALD Technology, Ltd.
  35910. 13AFh T.Sqware
  35911. 13B0h Maxspeed Corp.
  35912. 13B1h Tamura Corp.
  35913. 13B2h Techno Chips Co., Ltd.
  35914. 13B3h Lanart Corp.
  35915. 13B4h Wellbean Co, Inc.
  35916. 13B5h ARM
  35917. 13B6h DLoG GmbH
  35918. 13B7h LOGIC Devices, Inc.
  35919. 13B8h Nokia Telecommunications Oy
  35920. 13B9h Elecom Co., Ltd.
  35921. 13BAh Oxford Instruments
  35922. 13BBh Sanyo Technosound Co., Ltd.
  35923. 13BCh Bitran Corp.
  35924. 13BDh Sharp Corp.
  35925. 13BEh Miroku Jyoho Service Co., Ltd.
  35926. 13BFh Sharewave., Inc.
  35927. 13C0h Microgate Corp.
  35928. 13C1h 3ware Inc.
  35929. 13C2h Technotrend Systemtechnik GmbH
  35930. 13C3h Janz Computer AG
  35931. 13C4h Phase Metrics
  35932. 13C5h Alphi Technology Corp.
  35933. 13C6h Condor Engineering, Inc.
  35934. 13C7h Blue Chip Technology, Ltd.
  35935. 13C8h Apptech, Inc.
  35936. 13C9h Eaton Corp.
  35937. 13CAh IOMEGA Corp.
  35938. 13CBh Yano Electric Co., Ltd.
  35939. 13CCh Metheus Corp.
  35940. 13CDh Compatible Systems Corp.
  35941. 13CEh Cocom A/S
  35942. 13CFh Studio Audio & Video, Ltd.
  35943. 13D0h Techsan Electronics Co., Ltd.
  35944. 13D1h Abocom Systems, Inc.
  35945. 13D2h Shark Multimedia, Inc.
  35946. 13D3h IMC Networks
  35947. 13D4h Graphics Microsystems, Inc.
  35948. 13D5h Media 100, Inc.
  35949. 13D6h K.I. Technology Co., Inc.
  35950. 13D7h Toshiba Engineering Corp.
  35951. 13D8h Phobos Corp.
  35952. 13D9h Apex PC Solutions, Inc.
  35953. 13DAh Intresource Systems Pte., Ltd.
  35954. 13DBh Janich & Klass Computertechnik GmbH
  35955. 13DCh Netboost Corp.
  35956. 13DDh Multimedia Bundle, Inc.
  35957. 13DEh ABB Robotics Products AB
  35958. 13DFh E-Tech, Inc.
  35959. 13E0h GVC Corp.
  35960. 13E1h Silicom Multimedia Systems, Inc.
  35961. 13E2h Dynamics Research Corp.
  35962. 13E3h Nest, Inc.
  35963. 13E4h Calculex, Inc.
  35964. 13E5h Telesoft Design, Ltd.
  35965. 13E6h Argosy Research, Inc.
  35966. 13E7h NAC, Inc.
  35967. 13E8h Chip Express Corp.
  35968. 13E9h Intraserver Technology, Inc.
  35969. 13EAh Dallas Semiconductor
  35970. 13EBh Hauppauge Computer Works, Inc.
  35971. 13ECh Zydacron, Inc.
  35972. 13EDh Raytheion E-Systems
  35973. 13EEh Hayes Microcomputer Products, Inc.
  35974. 13F0h Sundance Technology, Inc.
  35975. 13F1h Oce' - Technologies B.V.
  35976. 13F2h Ford Microelectronics, Inc.
  35977. 13F3h McData Corp.
  35978. 13F4h Troika Design, Inc.
  35979. 13F5h Kansai Electric Co., Ltd.
  35980. 13F6h C-Media Electronics, Inc.
  35981. 13F7h Wildfire Communications
  35982. 13F8h Ad Lib Multimedia, Inc.
  35983. 13F9h NTT Advanced Technology Corp.
  35984. 13FAh Pentland Systems, Ltd.
  35985. 13FBh Aydin Corp.
  35986. 13FCh Computer Peripherals International
  35987. 13FDh Micro Science, Inc.
  35988. 13FEh Advantech Co., Ltd.
  35989. 13FFh Silicon Spice, Inc.
  35990. 1400h ARTX, Inc.
  35991. 1401h CR-Systems A/S
  35992. 1402h Meilhaus Electronic GmbH
  35993. 1403h Ascor, Inc.
  35994. 1404h Fundamental Software, Inc.
  35995. 1405h Excalibur Systems, Inc.
  35996. 1406h Oce' Printing Systems GmbH
  35997. 1407h Lava Computer Mfg., Inc.
  35998. 1408h Aloka Co., Ltd.
  35999. 1409h Timedia Technology Co., Ltd.
  36000. 140Ah DSP Research, Inc.
  36001. 140Bh Ramix, Inc.
  36002. 140Ch Elmic Systems, Inc.
  36003. 140Dh Matsushita Electrics Works, Ltd.
  36004. 140Eh Goepel Electronic GmbH
  36005. 140Fh Salient Systems Corp.
  36006. 1410h Midas Lab, Inc.
  36007. 1411h Ikos Systems, Inc.
  36008. 1412h IC Ensemble, Inc.
  36009. 1413h Addonics
  36010. 1414h Microsoft
  36011. 1415h Oxford Semiconductor, Ltd.
  36012. 1416h Multiwave Innovation Pte, Ltd.
  36013. 1417h Convergenet Technologies, Inc.
  36014. 1418h Kyushu Electronics Systems, Inc.
  36015. 1419h Excel Switching Corp.
  36016. 141Ah Apache Micro Peripherals, Inc.
  36017. 141Bh Zoom Telephonics, Inc.
  36018. 141Dh Digitan Systems, Inc.
  36019. 141Eh Fanuc, Ltd.
  36020. 141Fh Visiontech, Ltd.
  36021. 1420h Psion Dacom PLC
  36022. 1421h ADS Technologies, Inc.
  36023. 1422h Ygrec Systems Co., Ltd.
  36024. 1423h Custom Technology Corp.
  36025. 1424h Vidoeserver Connections
  36026. 1425h ASIC Designers, Inc.
  36027. 1426h Storage Technology Corp.
  36028. 1427h Better On-line Solutions
  36029. 1428h EDEC Co., Ltd.
  36030. 1429h UNEX Technology Corp.
  36031. 142Ah Kingmax Technology, Inc.
  36032. 142Bh RadioLAN
  36033. 142Ch Minton Optic Industry Co., Ltd.
  36034. 142Dh Pix Stream, Inc.
  36035. 142Eh Vitec Multimedia
  36036. 142Fh Radicom Research, Inc.
  36037. 1430h ITT Aerospace/Communications Division
  36038. 1431h Gilat Satellite Networks
  36039. 1432h Edimax Computer Co.
  36040. 1433h Eltec Elektronik GmbH
  36041. 1435h Real Time Devices US, Inc.
  36042. 1436h CIS Technology, Inc.
  36043. 1437h Nissin Co Inc
  36044. 1438h Atmel-Dream
  36045. 1439h Outsource Engineering & Mfg. Inc
  36046. 143Ah Stargate Solutions Inc
  36047. 143Bh Canon Research Center, America
  36048. 143Ch Amlogic Inc
  36049. 143Dh Tamarack Microelectronics Inc
  36050. 143Fh Lightwell Co Ltd - Zax Division
  36051. 1440h Algol Corp
  36052. 1441h AGIE LTD
  36053. 1442h Phoenix Contact Co GmbH
  36054. 1443h Unibrain S.A.
  36055. 1444h TRW
  36056. 1445h Logical do Ltd
  36057. 1447h AIM GmbH
  36058. 1448h Alesis Studio
  36059. 1449h TUT Systems Inc
  36060. 144Ah Adlink Technology
  36061. 144Bh Loronix Information Systems Inc
  36062. 144Ch Catalina Research Inc
  36063. 144Eh Olitec
  36064. 144Fh Askey Computer Corp
  36065. 1450h Nexus Systems Inc
  36066. 1451h SP3D Chip Design GmbH
  36067. 1453h Mycom Inc
  36068. 1454h Altiga Networks
  36069. 1455h Logic Plus Plus Inc
  36070. 1456h Advanced Hardware
  36071. 1457h Nuera Communications Inc
  36072. 1458h Giga-Byte Technology
  36073. 1459h Dooin Electronics
  36074. 145Ah Escalate Networks Inc
  36075. 145Bh Praim SRL
  36076. 145Ch Cryptek
  36077. 145Dh Gallant Computer Inc
  36078. 145Eh Aashima Technology B.V.
  36079. 145Fh Baldor Electric Company
  36080. 1460h Dynarc Inc
  36081. 1461h Avermedia Technologies Inc
  36082. 1462h Micro-Star International Co Ltd
  36083. 1463h Fast Corp
  36084. 1464h Interactive Circuits & Systems Ltd
  36085. 1465h GN Nettest Telecom Div.
  36086. 1466h Designpro Inc
  36087. 1467h Digicom SPA
  36088. 1468h Ambit microsystem Corp
  36089. 1469h Cleveland Motion Controls
  36090. 146Ah IFR Ltd
  36091. 146Bh Parascan Technologies Ltd
  36092. 146Ch Ruby Tech Corp
  36093. 146Dh Tachyon Inc
  36094. 146Eh Williams Electronic Games Inc
  36095. 146Fh Multi Dimensional Consulting Inc
  36096. 1470h Bay Networks
  36097. 1471h Integrated Telecom Express Inc
  36098. 1472h Daikin Indistries Ltd
  36099. 1473h Zapex Technologies Inc
  36100. 1474h Doug Carson & Associates
  36101. 1475h Picazo Communications
  36102. 1476h Mortara Instrument Inc
  36103. 1477h Net Insight
  36104. 1478h Diatrend Corp
  36105. 1479h Toray Industries Inc
  36106. 147Ah Formosa Industrial Computing
  36107. 147Bh Abit Computer Corp
  36108. 147Ch Aware Inc
  36109. 147Dh Interworks Computer Products
  36110. 147Eh Matsushita Graphic Communication Systems Inc
  36111. 147Fh Nihon Unisys Ltd
  36112. 1480h SCII Telecom
  36113. 1481h Biopac Systems Inc
  36114. 1482h ISYTEC
  36115. 1483h Labway Corp
  36116. 1668h Action Tec Electronics, Inc.
  36117. 1A08h Sierra Semiconductor
  36118. 1B13h Jaton Corp.
  36119. 1C1Ch Symphony (see #00864)
  36120. 1D44h DPT
  36121. 1DE1h TekRAM (see #00865)
  36122. 21C3h 21st Century Computer Corp.
  36123. 2348h Racore
  36124. 270Bh Xantel Corp.
  36125. 270Fh Chaintech Computer Co., Ltd.
  36126. 3000h Hansol Electronics Inc.
  36127. 3142h Post Impression Systems
  36128. 3388h Hint Corp.
  36129. 3D3Dh 3DLabs (see #00866)
  36130. 4005h Avance Logic, Inc. (see #00867)
  36131. 4444h Internext Compression, Inc.
  36132. 4468h BRIDGEPORT MACHINES
  36133. 4594h Cogetec Informatique Inc.
  36134. 4680h UMAX Computer Corp.
  36135. 4843h Hercules Computer Technology, Inc.
  36136. 4942h ???
  36137. 4943h Growth Networks
  36138. 4978h Axil Computer, Inc.
  36139. 4A14h NetVin
  36140. 4B10h Buslogic Inc. (see #00869)
  36141. 4C48h Lung Hwa Electronics
  36142. 4D51h Mediaq Inc
  36143. 4DDCh ILC data Device Corp.
  36144. 5053h Voyetra Technologies
  36145. 5143h Qualcomm, Inc.
  36146. 5333h S3 (see also #00870)
  36147. 5455h Technische Universit„t Berlin
  36148. 5519h Cnet Technologies, Inc.
  36149. 5555h Genroco Inc
  36150. 5700h Netpower
  36151. 6356h UltraStor
  36152. 6374h c't Magazin fuer Computertechnik (see #00871)
  36153. 6409h Logitec Corp
  36154. 6666h Decision Computer International Co.
  36155. 7604h O.N. Electric Co Ltd
  36156. 8008h Quancom Electronic GmbH (see #00872)
  36157. 8086h Intel (see also #00873)
  36158. 8800h Trigem Computer (see #00874)
  36159. 8866h T-Square Design Inc
  36160. 8888h Silicon Magic
  36161. 8E0Eh Computone Corporation
  36162. 8E2Eh KTI
  36163. 9004h Adaptec (see #00875)
  36164. 9005h Adaptec
  36165. 907Fh Atronics (see #00876)
  36166. 9412h Holtek
  36167. A200h NEC Corp. (see #00754)
  36168. A259h Hewlett Packard (see #00757)
  36169. A25Bh Hewlett Packard GmbH PL24-MKT (see #00757)
  36170. A304h Sony
  36171. A727h 3com Corp. (see #00796)
  36172. AA42h Scitex Digital Video
  36173. B1B3h Shiva Europe, Ltd.
  36174. C001h TSI Telsys
  36175. C0A9h Micron/Crucial Technology
  36176. C0DEh Motorola (see #00768)
  36177. C0FEh Motion Engineering, Inc.
  36178. CAFEh Chrysalis-ITS
  36179. D4D4h DY4 Systems Inc.
  36180. E159h Tiger Jet Network Inc.
  36181. E000h Winbond
  36182. E159h Tiger Jet Network Inc.
  36183. ECC0h Echo Corp.
  36184. EDD8h Ark Logic Inc (see #00877)
  36185. FEDAh Epigram Inc
  36186. Note: this list, as well as the following per-vendor tables, tends to be
  36187. rather out-of-date. The current version of the listing can be found
  36188. in PCICFG.DAT, part of the PCICFG program distributed in RBPCIxxx.ZIP
  36189. (available at http://www.pobox.com/~ralf/files.html).
  36190. SeeAlso: #00878
  36191. (Table 00733)
  36192. Values for Compaq PCI device code:
  36193. 0001h EISA Bridge
  36194. 0002h ISA Bridge
  36195. 1000h Triflex/PCI CPU Bridge
  36196. 2000h Triflex/PCI CPU Bridge
  36197. 3032h QVision
  36198. 3033h QVision 1280/p
  36199. 3034h QVision 1280
  36200. 4000h Triflex/PCI CPU Bridge
  36201. AE32h Netelligent 10/100 TX
  36202. AE34h Netelligent 10 T
  36203. AE35h Integrated NetFlex 3/P
  36204. AE40h Dual-port Netelligent 10/100 TX
  36205. AE43h ProLiant Integrated Netelligent 10/100
  36206. B011h Dual-port Netelligent 10/100 TX
  36207. F130h ThunderLAN
  36208. F150h NetFlex 3/P with BNC
  36209. SeeAlso: #00732
  36210. (Table 00734)
  36211. Values for Symbios Logic (formerly NCR) PCI device code:
  36212. 0001h PCI revision ID:
  36213. 00-0Fh 53C810 (fast SCSI)
  36214. 10-1Fh 53C810A (fast SCSI)
  36215. 20-2Fh 53C810ALV (fast SCSI)
  36216. 0002h 53C820 (fast wide SCSI)
  36217. 0003h PCI revision ID:
  36218. 00-0Fh 53C825 (fast wide SCSI)
  36219. 10-1Fh 53C825A (Ultra wide SCSI)
  36220. 0004h 53C815 (fast SCSI)
  36221. 0005h 53C810AP (fast SCSI)
  36222. 0006h PCI revision ID:
  36223. 00-0Fh 53C860 (Ultra SCSI)
  36224. 10-1Fh 53C860LV (Ultra SCSI)
  36225. 000Fh 53C875 (Ultra wide SCSI)
  36226. 1000h 63c815 Fast-SCSI
  36227. SeeAlso: #00732
  36228. (Table 00735)
  36229. Values for ATI PCI device code:
  36230. 4158h 68800AX (Mach32)
  36231. 4354h 215CT222
  36232. 4358h 210888CX
  36233. 4758h 210888GX (Mach64)
  36234. 5654h 215VT222 Video Expression
  36235. SeeAlso: #00732
  36236. (Table 00736)
  36237. Values for ULSI Systems PCI device code:
  36238. 0201h US201 Graphics Controller
  36239. SeeAlso: #00732
  36240. (Table 00737)
  36241. Values for VLSI Technologies PCI device code:
  36242. 0005h 82C592 CPU Bridge
  36243. 0006h 82C593 ISA Bridge
  36244. 0007h 82C594 Wildcat System Ctrlr
  36245. 0008h VL82C597 Wildcat ISA Bridge
  36246. 0009h 82C597
  36247. 000Ch 82C541
  36248. 000Dh 82C543
  36249. 0101h 82C532
  36250. 0102h 82C534
  36251. 0104h 82C535
  36252. 0105h 82C147
  36253. 0200h 82C975 RISC GUI Accelerator
  36254. 0280h 82C925 RISC GUI Accelerator
  36255. SeeAlso: #00732
  36256. (Table 00738)
  36257. Values for Avance Logic, Inc. (Avance Logics) PCI device code:
  36258. 2301h ALG2301 GUI accelerator
  36259. 2302h ALG2302 GUI accelerator
  36260. SeeAlso: #00732,INT 10/AX=4F70h
  36261. (Table 00739)
  36262. Values for National Semiconductor PCI device code:
  36263. 0001h DP83810 Ethernet
  36264. 0002h PC87415 IDE DMA-Master Mode controller (see #00922)
  36265. D001h NS87410 EIDE controller (see #00921)
  36266. SeeAlso: #00732,#00773
  36267. (Table 00740)
  36268. Values for Tseng Labs PCI device code:
  36269. 3202h ET4000/W32p-2
  36270. 3205h ET4000/W32p-B
  36271. 3206h ET4000/W32p-C
  36272. 3207h ET4000/W32p-D
  36273. 3208h ET6000
  36274. SeeAlso: #00732
  36275. (Table 00741)
  36276. Values for Weitek PCI device code:
  36277. 9000h Power9000???
  36278. 9001h Power9001
  36279. 9100h Power9100
  36280. SeeAlso: #00732
  36281. (Table 00742)
  36282. Values for DEC PCI device code:
  36283. 0001h DC21050 DEC BRD PCI-PCI bridge
  36284. 0002h DC21040 Tulip
  36285. 0004h DecChip 21030
  36286. 0009h DC21140 Tulip Fast (see #00923)
  36287. 000Ah 21230 Video Codec
  36288. 000Fh DEFPA FDDI
  36289. 0014h DC21041 Tulip Plus (see #00923)
  36290. 0016h DGLPB ATM
  36291. 0019h DC21143 PCI/Cardbus Ethernet
  36292. 0021h 21052 PCI-PCI Bridge (see #00924)
  36293. 0022h 21150 PCI-PCI Bridge
  36294. 0024h 21152 PCI-PCI Bridge
  36295. 0025h 21153 PCI-PCI Bridge
  36296. 0026h 21154 PCI-PCI Bridge
  36297. 0045h 21553 PCI-PCI Bridge
  36298. 0046h 21554 PCI-PCI Bridge
  36299. 1050h??? 21340 Managed Port Switch
  36300. SeeAlso: #00732
  36301. (Table 00743)
  36302. Values for Cirrus Logic PCI device code:
  36303. 0038h CL-GD7548 Video Controller
  36304. 004Ch CL-GD7556 64-bit Video/Graphics LCD/CRT Ctrlr
  36305. 00A0h Cirrus 5430
  36306. 00A4h Cirrus 5434-4
  36307. 00A8h Cirrus 5434-8
  36308. 00ACh Cirrus 5436
  36309. 00B8h Cirrus GD5446
  36310. 00BCh CL-GD5480 64-bit SGRAM GUI accelerator
  36311. 1100h Cirrus 6729 PCMCIA Controller
  36312. 1110h Cirrus 6832 PCMCIA/CardBus Ctrlr
  36313. 1200h Cirrus 7542
  36314. 1202h Cirrus 7543
  36315. 1204h Cirrus 7541
  36316. 6001h CS4610/4611 CrystalClear SoundFusion Audio Accelerator
  36317. SeeAlso: #00732
  36318. (Table 00744)
  36319. Values for IBM PCI device code:
  36320. 0002h MCA Bridge
  36321. 0005h Alta Lite CPU Bridge
  36322. 0007h Alta MP CPU Bridge
  36323. 000Ah ISA Bridge
  36324. 0017h CPU Bridge
  36325. 0018h Auto LANStreamer
  36326. 001Bh GXT-150P Graphics Adapter
  36327. 001Dh 82G2675
  36328. 0020h MCA Bridge
  36329. 0022h PCI-PCI Bridge
  36330. 002Eh ??? RAID SCSI
  36331. 0036h Miami/PCI 32-bit LocalBus Bridge
  36332. 0047h ???
  36333. 0048h ???
  36334. 004Ah ???
  36335. 004Bh ???
  36336. 004Ch ???
  36337. 004Dh ???
  36338. 004Eh ???
  36339. 004Fh ???
  36340. 0050h ???
  36341. 0051h ???
  36342. 0052h ???
  36343. 0053h ??? 25 MBit ATM controller
  36344. 0055h ???
  36345. 0059h ???
  36346. 005Ah ???
  36347. 005Bh ???
  36348. SeeAlso: #00732
  36349. (Table 00745)
  36350. Values for Western Digital PCI device code:
  36351. 0193h WD33C193A 8-bit SCSI
  36352. 0196h SCSI Bridge
  36353. 0197h WD33C197A 16-bit SCSI
  36354. 0296h WD33C296A 16-bit SCSI
  36355. 3193h WD7193 Fast SCSI-II
  36356. 3197h WD7197 Fast-Wide SCSI-II
  36357. 3296h WD7197
  36358. 4296h WD33C296 Wide Fast-20 Bridge
  36359. C24Ah 90C?
  36360. SeeAlso: #00732
  36361. (Table 00746)
  36362. Values for AMI PCI device code:
  36363. 9010h MegaRAID
  36364. 9030h ??? IDE Controller
  36365. 9031h ??? IDE Controller
  36366. 9032h ??? IDE/SCSI Controller
  36367. 9033h ??? SCSI Controller
  36368. 9040h ??? Multimedia card
  36369. SeeAlso: #00732
  36370. (Table 00747)
  36371. Values for Advanced Micro Devices (AMD) PCI device code:
  36372. 2000h Am79C970 (Lance)
  36373. Am79C970A (PCnet-PCI II, PCI revision ID is 1xh)
  36374. Am79C971 (PCnet-FAST, PCI revision ID is 2xh)
  36375. 2020h Am53c974 SCSI (see #00925)
  36376. 2040h Am79C974 Ethernet/SCSI
  36377. SeeAlso: #00732
  36378. (Table 00748)
  36379. Values for Trident PCI device code:
  36380. 9320h ??? 32-bit GUI accelerator
  36381. 9350h ??? 32-bit GUI accelerator
  36382. 9360h ??? Flat-Panel controller
  36383. 9420h Trident 9420
  36384. 9440h Trident 9440
  36385. 9460h Trident 9460
  36386. 9660h Trident 9660
  36387. 9682h ??? Multimedia accelerator
  36388. SeeAlso: #00732
  36389. (Table 00749)
  36390. Values for LSI Logic PCI device code:
  36391. 0000h Hydra (Pentium chipset)
  36392. 0010h Aspen (486 chipset)
  36393. SeeAlso: #00732
  36394. (Table 00750)
  36395. Values for Matrox PCI device code:
  36396. 0518h MGA-II (Ultima)
  36397. 0519h Millenium (2064W)
  36398. 0D10h MGA-I (Impression)
  36399. SeeAlso: #00732
  36400. (Table 00751)
  36401. Values for Chips & Technologies PCI device code:
  36402. 00B8h 64310 GUI Accelerator
  36403. 00D0h 65545 Flat Panel/CRT VGA
  36404. 00D8h F65545
  36405. 00DCh F65548
  36406. 00E0h 65550 Flat Panel/CRT GUI Accelerator
  36407. 00E4h 65554 display
  36408. 00E5h 65555 HiQVPro LCD/CRT GUI Controller
  36409. 00F4h 68554 HiQVision LCD/CRT GUI Controller
  36410. SeeAlso: #00732
  36411. (Table 00752)
  36412. Values for Toshiba America PCI device code:
  36413. 0009h r4x00 Bridge
  36414. SeeAlso: #00732
  36415. (Table 00753)
  36416. Values for Miro Computer Products AG PCI device code:
  36417. 5601h 36050
  36418. 5607h video in/out w/ MPEG
  36419. SeeAlso: #00732
  36420. (Table 00754)
  36421. Values for NEC Corporation PCI device code:
  36422. 0001h PCI-to-486 Bridge
  36423. 0002h PCI-to-VL98 Bridge
  36424. 0003h ATM LAN controller
  36425. 0004h r4000PCI Bridge
  36426. 0005h PCI-to-486 Bridge
  36427. 0006h GUI Accelerator
  36428. 0007h PCI-to-UXbus Bridge
  36429. 0008h GUI Accelerator
  36430. 0009h PC-98 Graphics Controller
  36431. SeeAlso: #00732
  36432. (Table 00755)
  36433. Values for Future Domain PCI device code:
  36434. 0000h TMC-36C70 / TMC-18C30 (fast SCSI)
  36435. SeeAlso: #00732
  36436. (Table 00756)
  36437. Values for Silicon Integrated System (SIS) PCI device code:
  36438. 0001h SiS6201
  36439. 0002h SiS6202
  36440. 0006h SI 85C501/2
  36441. 0008h SI 85C503/5513
  36442. 0205h SiS6205
  36443. 0406h SiS501
  36444. 0496h SiS496
  36445. 0596h Pentium chipset
  36446. 0601h SiS601
  36447. 3602h IDE controller
  36448. 5401h 486 chipset
  36449. 5511h SiS5511 Pentium chipset
  36450. 5513h SiS5513 EIDE controller
  36451. 5581h Pentium chipset
  36452. 5582h ISA Bridge
  36453. 5596h Pentium chipset
  36454. 6204h video decoder/MPEG
  36455. 6205h PCI VGA controller
  36456. SeeAlso: #00732
  36457. (Table 00757)
  36458. Values for Hewlett-Packard PCI device code:
  36459. 1030h J2585A DeskDirect 10/100 PCI NIC
  36460. 1040h J2973A DeskDirect 10BaseT PCI NIC
  36461. 1041h J2585B DeskDirect 10/100 PCI NIC
  36462. 1042h J2970A DeskDirect 10BaseT/2 PCI NIC
  36463. 2910h E2910A PCI-bus exerciser
  36464. 2925h E2925A PCI-bus exerciser
  36465. SeeAlso: #00732
  36466. (Table 00758)
  36467. Values for PC Technology PCI device code:
  36468. 1000h RZ1000
  36469. 1001h RZ1001
  36470. SeeAlso: #00732
  36471. (Table 00759)
  36472. Values for Distributed Processing Technology (DPT) PCI device code:
  36473. A400h 2124A/9X EATA SmartCache/RAID SCSI
  36474. SeeAlso: #00732
  36475. (Table 00760)
  36476. Values for OPTi PCI device code:
  36477. A0F8h 82C750 (Vendetta) USB controller
  36478. C557h 82C557
  36479. C558h 82C558
  36480. C567h 82C750 (Vendetta, device 0)
  36481. C568h 82C750 (Vendetta, device 1)
  36482. C621h 82C621 IDE controller / 82C750 Vendetta IDE controller
  36483. C822h 82C822
  36484. C824h 82C824 FireFox PC-Card controller
  36485. C825h 82C825 FireBridge II
  36486. C861h 82C861/82C871 FireLink/FireBlast PCI-to-USB Bridge (see #00965)
  36487. D568h 82C750 Vendetta IDE controller
  36488. D768h 82C750 Vendetta IDE controller (ultra DMA)
  36489. SeeAlso: #00732
  36490. (Table 00761)
  36491. Values for SGS Thomson Microelectronics PCI device code:
  36492. 0008h SGS 2000
  36493. 0009h SGS 1764
  36494. SeeAlso: #00732
  36495. (Table 00762)
  36496. Values for BusLogic PCI device code:
  36497. 0140h MultiMaster NC
  36498. 1040h MultiMaster
  36499. 8130h FlashPoint
  36500. SeeAlso: #00732
  36501. (Table 00763)
  36502. Values for Texas Instruments PCI device code:
  36503. 0500h 100 Mbit LAN controller
  36504. 0508h tms380c2x
  36505. 1000h TI PCI Eagle i/f
  36506. 3D04h TVP4010 3D Graphics Processor !!!ti\slas155.pdf p.26
  36507. A001h TDC1570 64-bit ATM sar
  36508. A100h TDC1561 32-bit ATM sar
  36509. AC10h PCI1050 PCCard controller
  36510. AC11h PCI1053 PCCard controller
  36511. AC12h PCI1130 PCCard controller
  36512. SeeAlso: #00732
  36513. (Table 00764)
  36514. Values for Oak Technology PCI device code:
  36515. 0107h OTI-0107 (Spitfire)
  36516. SeeAlso: #00732
  36517. (Table 00765)
  36518. Values for Winbond PCI device code:
  36519. 0000h ??? Ethernet controller
  36520. 0001h 83769
  36521. 0105h 82C105
  36522. SeeAlso: #00732
  36523. (Table 00766)
  36524. Values for Hitachi Ltd. PCI device code:
  36525. 0001h PCI Bridge
  36526. 0002h PCI-bus controller
  36527. SeeAlso: #00732
  36528. (Table 00767)
  36529. Values for EFAR Microsystems PCI device code:
  36530. 0810h 486 Bridge
  36531. 0922h Pentium/P54C Bridge
  36532. 0926h ISA Bridge
  36533. SeeAlso: #00732
  36534. (Table 00768)
  36535. Values for Motorola PCI device code:
  36536. 0001h MPC105 PowerPC chipset
  36537. SeeAlso: #00732
  36538. (Table 00769)
  36539. Values for Promise Technology PCI device code:
  36540. 5300h Promise 5300
  36541. SeeAlso: #00732
  36542. (Table 00770)
  36543. Values for Number 9 Computer Company PCI device code:
  36544. 2309h Imagine 128
  36545. 2339h Imagine 128-2
  36546. SeeAlso: #00732
  36547. (Table 00771)
  36548. Values for United Microelectronics (UMC) PCI device code:
  36549. 0001h UM82C881 (486 chipset)
  36550. 0002h UM82C776 (ISA Bridge)
  36551. 0101h UM8673F
  36552. 0881h UM8881 (486 chipset)
  36553. 0886h UM8886F (ISA Bridge)
  36554. 0891h UM8891A
  36555. 1001h UM886A (dual IDE controller)
  36556. 673Ah UM8886BF
  36557. 8710h UM8710 VGA controller
  36558. 886Ah UM8886A
  36559. 8881h UM8881F
  36560. 8886h UM8886F
  36561. 8891h UM8891 (Pentium chipset)
  36562. 9017h UM9017F
  36563. E881h UM8881 (486 chipset)
  36564. E886h UM8886N
  36565. E891h UM8891N
  36566. SeeAlso: #00732
  36567. (Table 00772)
  36568. Values for 8x8 (X Tech) PCI device code:
  36569. 0001h AGX-016
  36570. 0002h IIT3204/3501 MPEG decoder
  36571. SeeAlso: #00732
  36572. (Table 00773)
  36573. Values for PicoPower PCI device code:
  36574. 0000h PT80C826 VL Bridge
  36575. 0001h Vesuvius V1-LS System Controller (see PORT 0024h"V1-LS")
  36576. Revision ID field: 03h = Rev. AA, 04h = Rev. BB, 05h = Rev. CC
  36577. 0002h Vesuvius V3-LS ISA Bridge (see #00971,PORT 0024h"V3-LS")
  36578. 0005h National Semiconductor PC87550 PCI System Controller
  36579. 8002h Vesuvius V3-LS ISA Bridge (secondary; Rev. BB and higher only)
  36580. SeeAlso: #00732,#00739
  36581. (Table 00774)
  36582. Values for Mylex Corporation PCI device code:
  36583. 0001h DAC960P Wide SCSI + RAID
  36584. SeeAlso: #00732
  36585. (Table 00775)
  36586. Values for Yamaha Corporation PCI device code:
  36587. 0001h ?? 3D graphics controller
  36588. 0002h YGV615 RPA3 3D graphics controller
  36589. SeeAlso: #00732
  36590. (Table 00776)
  36591. Values for NexGen Microsystems PCI device code:
  36592. 4E78h NexGen 82C501
  36593. SeeAlso: #00732
  36594. (Table 00777)
  36595. Values for Q Logic PCI device code:
  36596. 1020h ISP1020 Fast-Wide SCSI
  36597. 1022h ISP1022 Fast-Wide SCSI
  36598. SeeAlso: #00732
  36599. (Table 00778)
  36600. Values for Leadtek Research PCI device code:
  36601. 0000h LeadTek 805
  36602. SeeAlso: #00732
  36603. (Table 00779)
  36604. Values for Interphase PCI device code:
  36605. 0001h ATM interface
  36606. 0002h 100 vg amylan controller
  36607. SeeAlso: #00732
  36608. (Table 00780)
  36609. Values for Data Technology Corporation (DTC) PCI device code:
  36610. 0802h SL82C105 EIDE Controller
  36611. SeeAlso: #00732
  36612. (Table 00781)
  36613. Values for Contaq Microsystems PCI device code:
  36614. 0600h Contaq 82C599
  36615. SeeAlso: #00732
  36616. (Table 00782)
  36617. Values for Forex Computer Corporation PCI device code:
  36618. 0001h FR710 EIDE Controller
  36619. 0613h ??? Host Bridge
  36620. SeeAlso: #00732
  36621. (Table 00783)
  36622. Values for Bit3 Computer PCI device code:
  36623. 0001h Model 617 PCI-VME Bus Adapter
  36624. SeeAlso: #00732
  36625. (Table 00784)
  36626. Values for Olicom PCI device code:
  36627. 0001h ??? Ethernet Controller
  36628. SeeAlso: #00732
  36629. (Table 00785)
  36630. Values for Intergraph Corporation PCI device code:
  36631. 0020h 3D graphics processor
  36632. 0021h 3D graphics processor w/texture
  36633. 0040h 3D graphics frame buffer
  36634. 0041h 3D graphics frame buffer
  36635. 0060h proprietary bus bridge
  36636. 0720h Motion JPEG codec
  36637. SeeAlso: #00732
  36638. (Table 00786)
  36639. Values for National Instruments PCI device code:
  36640. C801h PCI-GPIB
  36641. SeeAlso: #00732
  36642. (Table 00787)
  36643. Values for CMD Technology, Inc. PCI device code:
  36644. 0640h CMD 640
  36645. 0642h IDE controller with RAID-1
  36646. 0646h CMD 646 EIDE
  36647. 0650h PBC0650A Fast SCSI-II
  36648. SeeAlso: #00732
  36649. (Table 00788)
  36650. Values for Appian Technology:
  36651. 0038h ??? EIDE Controller
  36652. SeeAlso: #00732
  36653. (Table 00789)
  36654. Values for Vision / Quantum Designs Ltd. PCI device code:
  36655. 0001h QD8500
  36656. 0002h QD8580
  36657. SeeAlso: #00732
  36658. (Table 00790)
  36659. Values for Brooktree Corporation PCI device code:
  36660. 0350h BT848 TV/PCI with DMA Push
  36661. 2115h BtV 2115 Mediastream Controller
  36662. 2125h BtV 2125 Mediastream Controller
  36663. 8230h Bt8230 ATM Segment/Reassembly Ctrlr (SRC) (see #00981)
  36664. SeeAlso: #00732
  36665. (Table 00791)
  36666. Values for Sierra Semiconductor PCI device code:
  36667. 0000h STB 64-bit GUI accelerator
  36668. SeeAlso: #00732
  36669. (Table 00792)
  36670. Values for ACC Microelectronics PCI device code:
  36671. 0000h ACC 2056
  36672. SeeAlso: #00732
  36673. (Table 00793)
  36674. Values for Symphony Labs PCI device code:
  36675. 0001h 83769
  36676. 0103h sl82c103 PCI-IDE Controller
  36677. 0105h 82C105 bus-master PCI-IDE controller
  36678. SeeAlso: #00732
  36679. (Table 00794)
  36680. Values for PLX Technology PCI device code:
  36681. 9036h PCI9036 interface chip
  36682. 9060h PCI9060xx interface chip
  36683. SeeAlso: #00732
  36684. (Table 00795)
  36685. Values for Madge Networks PCI device code:
  36686. 0001h Smart 16/4 Ringnode
  36687. 1000h Collage 25 ATM adapter
  36688. 1001h Collage 155 ATM adapter
  36689. SeeAlso: #00732
  36690. (Table 00796)
  36691. Values for 3com Corporation PCI device code:
  36692. 5900h 3C590
  36693. 5950h 3C595TX
  36694. 5951h 3C595T4
  36695. 5952h 3C595MII
  36696. 8811h token ring
  36697. 9000h 3C900-TPO Fast Etherlink
  36698. 9001h 3C900-COMBO Fast Etherlink
  36699. 9050h 3C905-TX Fast Etherlink 10/100
  36700. SeeAlso: #00732
  36701. (Table 00797)
  36702. Values for Standard Microsystems Corporation (SMC) PCI device code:
  36703. 1000h 37C665 floppy disk controller
  36704. 1001h 37C922 floppy disk controller
  36705. SeeAlso: #00732
  36706. (Table 00798)
  36707. Values for Acer Labs Inc. PCI device code:
  36708. 1435h M1435 VL Bridge
  36709. 1445h ALI M1445 VL bridge + EIDE
  36710. 1449h ALI M1449 ISA bridge
  36711. 1451h ALI M1451 Pentium chipset
  36712. 1461h ALI M1461 P54C chipset
  36713. 1489h ALI M1489
  36714. 1511h ALI M1511
  36715. 1513h ALI M1513
  36716. 3141h M3141 GUI accelerator VRAM
  36717. 3143h M3143 GUI accelerator VRAM/DAC
  36718. 3145h M3145 GUI accelerator VRAM
  36719. 3147h M3147 GUI accelerator VRAM/DAC
  36720. 3149h M3149 GUI accelerator VRAM
  36721. 3151h M3151 GUI accelerator VRAM
  36722. 5212h M4803
  36723. 5215h ALI MS4803 EIDE controller
  36724. 5217h m5217 I/O
  36725. 5219h m5219 I/O
  36726. 5235h m5225 I/O
  36727. SeeAlso: #00732
  36728. (Table 00799)
  36729. Values for Surecom Technology PCI device code:
  36730. 5240h IDE Controller
  36731. 5241h PCMCIA Bridge
  36732. 5242h general-purpose controller
  36733. 5243h Bus controller
  36734. 5244h Floppy-disk controller
  36735. SeeAlso: #00732
  36736. (Table 00800)
  36737. Values for Neomagic Corporation:
  36738. 0000h graphics controller
  36739. SeeAlso: #00732
  36740. (Table 00801)
  36741. Values for Advanced System Products PCI device code:
  36742. 1100h ABP940 revision A??? SCSI
  36743. 1200h ABP940 revision B??? Fast SCSI-2
  36744. 1300h Fast-Wide SCSI controller
  36745. SeeAlso: #00732
  36746. (Table 00802)
  36747. Values for Citicorp TTI PCI device code:
  36748. 2001h mb86605 Wide SCSI-2
  36749. SeeAlso: #00732
  36750. (Table 00803)
  36751. Values for CENR/ECP/EDU PCI device code:
  36752. 0001h SPSB PMC
  36753. 0002h SPSB PCI
  36754. 10DCh ATT 2C15-3 FPGA
  36755. SeeAlso: #00732
  36756. (Table 00804)
  36757. Values for Evans & Sutherland PCI device code:
  36758. 0001h 3D graphics processor
  36759. SeeAlso: #00732
  36760. (Table 00805)
  36761. Values for Emulex Corporation PCI device code:
  36762. 1AE5h Fibre Channel Host Adapter
  36763. SeeAlso: #00732
  36764. (Table 00806)
  36765. Values for Integrated Micro Solutions PCI device code:
  36766. 5026h IMS5026/27/28 VL Bridge
  36767. 5028h ISA Bridge
  36768. 8849h IMS 8849
  36769. 8853h ATM network card
  36770. 9128h IMS9129 GUI accelerator
  36771. SeeAlso: #00732
  36772. (Table 00807)
  36773. Values for TekRAM Technology Corporation Ltd. PCI device code:
  36774. 690Ch TekRAM 690c
  36775. SeeAlso: #00732
  36776. (Table 00808)
  36777. Values for Newbridge Microsystems PCI device code:
  36778. 0000h CA91C042 VMEbus Bridge
  36779. SeeAlso: #00732
  36780. (Table 00809)
  36781. Values for Applied Micro Circuits Corp. PCI device code:
  36782. 4750h S5933 PCI controller
  36783. 8043h MyriNet
  36784. SeeAlso: #00732
  36785. (Table 00810)
  36786. Values for Integraphics Systems PCI device code:
  36787. 1680h 1680
  36788. SeeAlso: #00732
  36789. (Table 00811)
  36790. Values for Artist Graphics PCI device code:
  36791. 0101h 3GA 64-bit graphics processor
  36792. SeeAlso: #00732
  36793. (Table 00812)
  36794. Values for Realtek Semiconductor PCI device code:
  36795. 8029h Realtek 8029
  36796. SeeAlso: #00732
  36797. (Table 00813)
  36798. Values for ASCII Corporation PCI device code:
  36799. 7310h V7310 VGA Video Overlay
  36800. SeeAlso: #00732
  36801. (Table 00814)
  36802. Values for NKK Corporation PCI device code:
  36803. A001h NDR4000 NR4600 Bridge
  36804. SeeAlso: #00732
  36805. (Table 00815)
  36806. Values for Truevision PCI device code:
  36807. 0000h ??? GUI Accelerator
  36808. 0001h ??? GUI Accelerator
  36809. 0002h ??? GUI Accelerator
  36810. 0003h ??? GUI Accelerator
  36811. 0004h ??? GUI Accelerator
  36812. 0005h ??? GUI Accelerator
  36813. 0006h ??? GUI Accelerator
  36814. 0007h ??? GUI Accelerator
  36815. 0008h ??? GUI Accelerator
  36816. 0009h ??? GUI Accelerator
  36817. 0010h ??? GUI Accelerator
  36818. 0011h ??? GUI Accelerator
  36819. 0012h ??? GUI Accelerator
  36820. 0013h ??? GUI Accelerator
  36821. 0014h ??? GUI Accelerator
  36822. 0015h ??? GUI Accelerator
  36823. SeeAlso: #00732
  36824. (Table 00816)
  36825. Values for Initio Corporation PCI device code:
  36826. 9100h 320P
  36827. 9400h Fast-Wide SCSI
  36828. 9700h Fast-Wide SCSI
  36829. SeeAlso: #00732
  36830. (Table 00817)
  36831. Values for VIA Technologies PCI device code:
  36832. 0505h VIA 82C505
  36833. 0561h VIA 82C561
  36834. 0571h AMD-645 Peripheral Bus Controller, function 1 (see #01034)
  36835. VT82C586A/B PCI Integrated Peripheral Controller, function 1
  36836. 0576h VIA 82C576
  36837. 0585h VT82C585VPX Host Bus-PCI bridge (see #00982)
  36838. 0586h AMD-645 Peripheral Bus Controller, function 0 (see #01011)
  36839. VT82C586A/B PCI Integrated Peripheral Controller, function 0
  36840. 0595h AMD-640 System Controller (see #00983)
  36841. VT82C595
  36842. 0597h VT82C597 / VT82C597AT
  36843. 1000h 82C570MV P54 Controller
  36844. 1106h 82C570MV ISA Bridge + IDE
  36845. 1571h VIA 82C416
  36846. 3038h AMD-645 Peripheral Bus Controller, function 2 (see #01046)
  36847. VT82C586A/B PCI Integrated Peripheral Controller, function 2
  36848. 3040h AMD-645 Peripheral Bus Controller, function 3 (see #01049)
  36849. VT82C586B PCI Integrated Peripheral Controller, function 3
  36850. SeeAlso: #00732
  36851. (Table 00818)
  36852. Values for Proteon Inc. PCI device code:
  36853. 0100h p1690plus-AA Token Ring
  36854. 0101h p1690plus-AB 2-port Token Ring
  36855. SeeAlso: #00732
  36856. (Table 00819)
  36857. Values for Cogent Data Technologies PCI device code:
  36858. 1400h EM110TX PCI Fast Ethernet
  36859. SeeAlso: #00732
  36860. (Table 00820)
  36861. Values for Siemens Nixdorf PCI device code:
  36862. 6120h SZB6120 Multimedia Adapter
  36863. SeeAlso: #00732
  36864. (Table 00821)
  36865. Values for Rockwell PCI device code:
  36866. 2200h FDDI adapter
  36867. 2300h Fast Ethernet adapter
  36868. 2340h four-port Fast Ethernet
  36869. 2400h ATM adapter
  36870. SeeAlso: #00732
  36871. (Table 00822)
  36872. Values for Datacube Inc. PCI device code:
  36873. 9500h MAX-LC SuperVGA
  36874. 9501h MAX-LC image processing
  36875. SeeAlso: #00732
  36876. (Table 00823)
  36877. Values for Vortex Computersysteme GmbH PCI device code:
  36878. 0000h GDT60x0 SCSI RAID
  36879. 0001h GDT6000B SCSI RAID
  36880. 0002h GDT6x10 SCSI RAID
  36881. 0003h GDT6x20 two-channel SCSI RAID
  36882. 0004h GDT6530 three-channel SCSI RAID
  36883. 0005h GDT6550 five-channel SCSI RAID
  36884. 0006h GDT6x17
  36885. 0007h GDT6x27
  36886. 0008h GDT6537
  36887. 0009h GDT6557
  36888. 000Ah GDT6x15
  36889. 000Bh GDT6x25
  36890. 000Ch GDT6535
  36891. 000Dh GDT6555
  36892. SeeAlso: #00732
  36893. (Table 00824)
  36894. Values for Efficient Networks, Inc. PCI device code:
  36895. 0000h 155P-MF1 ATM FPGA
  36896. 0002h ATM ASIC
  36897. SeeAlso: #00732
  36898. (Table 00825)
  36899. Values for FORE Systems PCI device code:
  36900. 0210h PCA200PC
  36901. 0300h PCA200E
  36902. SeeAlso: #00732
  36903. (Table 00826)
  36904. Values for Infomedia MicroElectronics PCI device code:
  36905. 0000h EIDE/HD and IDE/CD-ROM controller
  36906. 000Bh EIDE/HD and IDE/CD-ROM controller
  36907. SeeAlso: #00732
  36908. (Table 00827)
  36909. Values for Imaging Technology PCI device code:
  36910. 0000h ICPCI
  36911. 0001h video frame grabber/processor
  36912. SeeAlso: #00732
  36913. (Table 00828)
  36914. Values for Mercury Computer Systems PCI device code:
  36915. 0001h Raceway Bridge
  36916. SeeAlso: #00732
  36917. (Table 00829)
  36918. Values for Fuji Xerox Co Ltd. PCI device code:
  36919. 0001h Printer Controller
  36920. SeeAlso: #00732
  36921. (Table 00830)
  36922. Values for Ziatech Corporation PCI device code:
  36923. 8905h 8905 STD-32 Bridge
  36924. SeeAlso: #00732
  36925. (Table 00831)
  36926. Values for Dynamic Pictures Inc. PCI device code:
  36927. 0001h VGA-compatible 3D graphics
  36928. SeeAlso: #00732
  36929. (Table 00832)
  36930. Values for Cyclone Microsystems (PLX Technology???) PCI device code:
  36931. 0001h PLX 9060
  36932. 0911h PCI 911 i960Jx Intelligent I/O
  36933. 0912h PCI 912 i960Cx Intelligent I/O
  36934. 0913h PCI 913 i960Hx Intelligent I/O
  36935. SeeAlso: #00732
  36936. (Table 00833)
  36937. Values for Crest Microsystem PCI device code:
  36938. 0001h EIDE/ATAPI super adapter
  36939. SeeAlso: #00732
  36940. (Table 00834)
  36941. Values for Alliance Semiconductor Corp. PCI device code:
  36942. 3210h Pro Motion 3210
  36943. 6410h GUI Accelerator
  36944. 6412h GUI Accelerator
  36945. 6420h GUI Accelerator
  36946. 6422h Pro Video
  36947. 6424h GUI Accelerator
  36948. 6426h GUI Accelerator
  36949. SeeAlso: #00732
  36950. (Table 00835)
  36951. Values for Cincinnati Milacron PCI device code:
  36952. 0001h Noservo Controller
  36953. SeeAlso: #00732
  36954. (Table 00836)
  36955. Values for Schneider & Koch Co. PCI device code:
  36956. 4000h FDDI adapter
  36957. SeeAlso: #00732
  36958. (Table 00837)
  36959. Values for VMIC PCI device code:
  36960. 7587h VME
  36961. SeeAlso: #00732
  36962. (Table 00838)
  36963. Values for Digi International / Stargate PCI device code:
  36964. 0003h RightSwitch
  36965. SeeAlso: #00732
  36966. (Table 00839)
  36967. Values for Voarx R&D Inc. PCI device code:
  36968. 3011h Tokenet/vg 1001/10m anylan
  36969. 9050h Lanfleet/Truevalue
  36970. SeeAlso: #00732
  36971. (Table 00840)
  36972. Values for MuTech PCI device code:
  36973. 0001h MV1000
  36974. SeeAlso: #00732
  36975. (Table 00841)
  36976. Values for PFU Ltd. PCI device code:
  36977. 0001h Host Bridge
  36978. SeeAlso: #00732
  36979. (Table 00842)
  36980. Values for Creative Labs (vendor ID 1163h) PCI device code:
  36981. 0001h 3D Blaster
  36982. SeeAlso: #00732
  36983. (Table 00843)
  36984. Values for Imagraph Corporation PCI device code:
  36985. 0001h Motion JPEG record/play w/ audio
  36986. SeeAlso: #00732
  36987. (Table 00844)
  36988. Values for Alfa Inc. PCI device code:
  36989. AFA1h Fast Ethernet
  36990. SeeAlso: #00732
  36991. (Table 00845)
  36992. Values for Matsushita Electronics PCI device code:
  36993. 1592h ???
  36994. SeeAlso: #00732
  36995. (Table 00846)
  36996. Values for Corollary Inc. PCI device code:
  36997. 0014h PCIB C-bus II to PCI bridge chip
  36998. SeeAlso: #00732
  36999. (Table 00847)
  37000. Values for BitFlow Inc. PCI device code:
  37001. 0001h Raptor-PCI frame grabber
  37002. SeeAlso: #00732
  37003. (Table 00848)
  37004. Values for Artop Electric PCI device code:
  37005. 0001h IDE controller
  37006. 0002h IDE controller
  37007. 0003h SCSI-2 cache controller
  37008. 0004h ATP8400 ASIC cache accelerator
  37009. 8001h SCSI-2 cache controller
  37010. 8002h SCSI-2 controller
  37011. SeeAlso: #00732
  37012. (Table 00849)
  37013. Values for Zeitnet Inc. PCI device code:
  37014. 0001h Zeitnet 1221
  37015. 0002h Zeitnet 1225
  37016. SeeAlso: #00732
  37017. (Table 00850)
  37018. Values for InnoSys Inc. PCI device code:
  37019. 4240h AMCC S5933Q Intelligent Serial Card
  37020. SeeAlso: #00732
  37021. (Table 00851)
  37022. Values for Galileo Technology PCI device code:
  37023. 0146h GT-64010 System Controller for R46xx CPU
  37024. 4801h GT-48001 8-port switched Ethernet ctrlr
  37025. SeeAlso: #00732
  37026. (Table 00852)
  37027. Values for V3 Semiconductor Inc. PCI device code:
  37028. 0292h V292PBC Am29030/40 Bridge
  37029. 0960h V96xPBC i960 Bridge
  37030. C960h V96DPC i960 dual PCI Bridge
  37031. SeeAlso: #00732
  37032. (Table 00853)
  37033. Values for Pathlight Technology PCI device code:
  37034. C0EDh SSA Controller
  37035. SeeAlso: #00732
  37036. (Table 00854)
  37037. Values for Dolphin Interconnect Solutions PCI device code:
  37038. 0658h PSB PCI-SCI Bridge
  37039. SeeAlso: #00732
  37040. (Table 00855)
  37041. Values for Specialix Research Ltd. PCI device code:
  37042. 2000h PCI-9050 Target Interface
  37043. 4000h Specialix XIO (SUPI-1 Target Interface)
  37044. 8000h Specialix RIO (T255 Bridge)
  37045. SeeAlso: #00732
  37046. (Table 00856)
  37047. Values for Compex USA, Inc. PCI device code:
  37048. 1401h ReadyLINK RL2000 10MBit NIC
  37049. SeeAlso: #00732
  37050. (Table 00857)
  37051. Values for PMC-Sierra Inc. PCI device code:
  37052. 7375h PM7375 LASAR-155 ATM SAR
  37053. SeeAlso: #00732
  37054. (Table 00858)
  37055. Values for RP PCI device code:
  37056. 0001h RP8OCTA
  37057. 0002h RP8INTF
  37058. 0003h RP16INTF
  37059. 0004h RP32INTF
  37060. SeeAlso: #00732
  37061. (Table 00859)
  37062. Values for Cyclades PCI device code:
  37063. 0100h Cyclom Y Lo multiport serial card
  37064. 0101h Cyclom Y Hi
  37065. 0200h Cyclom Z Lo multiport serial card
  37066. 0201h Cyclom Z Hi
  37067. SeeAlso: #00732
  37068. (Table 00860)
  37069. Values for Ariel Corporation PCI device code:
  37070. 1220h AMCC 5933 TMS320C80 DSP/Imaging Board
  37071. SeeAlso: #00732
  37072. (Table 00861)
  37073. Values for Harris Semiconductor PCI device code:
  37074. 8130h HMP8130 NTSC/PAL Video Decoder
  37075. 8131h HMP8131 NTSC/PAL Video Decoder
  37076. SeeAlso: #00732
  37077. (Table 00862)
  37078. Values for Ensoniq PCI device code:
  37079. 1371h AudioPCI-97 ES1371
  37080. 5000h AudioPCI ES1370
  37081. SeeAlso: #00732
  37082. (Table 00863)
  37083. Values for Picture Elements PCI device code:
  37084. 0081h PCIVST PCI Thresholding Engine
  37085. SeeAlso: #00732
  37086. (Table 00864)
  37087. Values for Symphony PCI device code:
  37088. 0001h Symphony 82C101 IDE controller
  37089. SeeAlso: #00732
  37090. (Table 00865)
  37091. Values for TekRAM PCI device code:
  37092. DC29h DC290 / DC290M EIDE controller
  37093. SeeAlso: #00732
  37094. (Table 00866)
  37095. Values for 3DLabs PCI device code:
  37096. 0004h 3C0SX GUI Accelerator
  37097. SeeAlso: #00732
  37098. (Table 00867)
  37099. Values for Avance Logic, Inc. PCI device code:
  37100. 2301h AVL2301 GUI Accelerator
  37101. 2303h AVG2302 GUI Accelerator
  37102. SeeAlso: #00732
  37103. (Table 00868)
  37104. Values for 4942h PCI device code:
  37105. 4C4Ch ??? (Ensoniq AudioPCI ES1370 subsystem)
  37106. SeeAlso: #00732
  37107. (Table 00869)
  37108. Values for BusLogic Inc. PCI device code:
  37109. 3080h ??? SCSI-ti
  37110. 4010h ??? Fast-Wide SCSI-2
  37111. SeeAlso: #00732
  37112. (Table 00870)
  37113. Values for S3 PCI device code:
  37114. 5631h 86C325 ViRGE 3D GUI Accelerator
  37115. 8800h Vision 866
  37116. 8801h Vision 964
  37117. 8810h S3 Trio32
  37118. 8811h S3 Trio64, or Trio64V+
  37119. 8812h S3 Trio64UV+
  37120. 8813h S3 Trio64? v3
  37121. 883Dh S3 ViRGE/VX
  37122. 888xh S3 868
  37123. 88Bxh S3 928
  37124. 88C0h S3 864-1
  37125. 88C1h S3 864-2
  37126. 88C2h S3 864-3
  37127. 88C3h S3 864-4
  37128. 88D0h S3 964-1
  37129. 88D1h S3 964-2
  37130. 88D2h S3 964-3
  37131. 88D3h S3 964-4
  37132. 88F0h S3 968
  37133. 88F1h S3 968-2
  37134. 88F2h S3 968-3
  37135. 88F3h S3 968-3
  37136. 8900h S3 Trio64 V2/DX GUI Accelerator
  37137. 8901h S3 775 Trio64V2
  37138. 8902h S3 PLATO/PX
  37139. 8A01h S3 ViRGE/DX or ViRGE/GX
  37140. 8A10h ???
  37141. 8C00h ???
  37142. 8C01h ???
  37143. SeeAlso: #00732,#00873
  37144. (Table 00871)
  37145. Values for c't Magazin f�r Computer PCI device code:
  37146. 6773h GPPCI PCI interface
  37147. SeeAlso: #00732
  37148. (Table 00872)
  37149. Values for Quancom Electronic PCI device code:
  37150. 0010h PCI-WDOG1 Watchdog
  37151. 0011h PWDOG2 Watchdog2/PCI
  37152. SeeAlso: #00732
  37153. (Table 00873)
  37154. Values for Intel PCI device code:
  37155. 0482h 82375EB/SB PCI-EISA Bridge (see #01054)
  37156. 0483h 82424 Cache Controller (see #01063)
  37157. 0484h 82378/82379 Bus Interface (Mercury/Saturn/Neptune chipsets) (see #01064)
  37158. 0486h 82425EX/82430
  37159. 04A3h 82434 LX (Mercury) / NX (Neptune) (see #01055)
  37160. 0960h i960 RP Microprocessor/Bridge
  37161. 1221h 82092AA PCMCIA Bridge
  37162. 1222h 82092AA IDE Controller
  37163. 1223h Intel SAA7116
  37164. 1226h 82596
  37165. 1227h 82865
  37166. 1228h EtherExpress Pro/100 Smart
  37167. 1229h 82557 Fast Ethernet (see #01227)
  37168. 122Dh 82437FX (Triton)
  37169. 122Eh 82371FB ISA Bridge (Triton)
  37170. 1230h 82338 IDE controller / 82371FB IDE function (Triton)
  37171. 1234h 82371MX (see #01168)
  37172. 1235h 82437MX
  37173. 1237h 82441FX (see #01229)
  37174. 1239h 82371FB IDE Interface (Triton)
  37175. 123Ch 82380AB Mobile PCI-to-ISA Bridge (see #01090)
  37176. 124Bh 82380FB Mobile PCI-to-PCI Bridge (see #04069)
  37177. 1250h 82439HX (430HX chipset) (see #01098)
  37178. 1960h 80960RP i960RP Microprocessor
  37179. 7000h 82371SB ISA Bridge (see #01167)
  37180. 7010h 82371SB IDE controller (see #01214)
  37181. 7020h 82371SB (see #01215)
  37182. 7030h 82437VX (430VX chipset) (see #01108)
  37183. 7100h 82439TX (430TX chipset) (see #01099)
  37184. 7110h 82371AB PIIX4 ISA Bridge (see #01100)
  37185. 7111h 82371AB PIIX4 Ultra DMA IDE Controller (see #01103)
  37186. 7112h 82371AB PIIX4 USB Controller (see #01104)
  37187. 7113h 82371AB PIIX4 Power Management Controller (see #01105)
  37188. 7180h 82443LX/EX 440LX/EX Host-PCI Bridge (see #01129)
  37189. 7181h 82443LX/EX 440LX/EX AGP device (see #01130)
  37190. 7190h 82443BX 440BX PCI-Host Bridge (AGP Enabled) (see #01142)
  37191. 7191h 82443BX 440BX PCI-PCI Bridge (see #01143)
  37192. 7192h 82443BX 440BX PCI-Host Bridge (AGP Disabled) (see #01142)
  37193. 71A0h 82443GX Host Bridge/Controller (AGP enabled)
  37194. 71A1h 82443GX AGP Controller
  37195. 71A2h 82443GX Host Bridge/Controller (AGP disabled)
  37196. 84C4h 82450KX/GX PCI Bridge (Orion) (see #01240)
  37197. 84C5h 82450KX/GX Memory Ctrlr (Orion)
  37198. 84CAh 82451NX (450NX) Memory & I/O Controller (MIOC)
  37199. 84CBh 82454NX (450NX) PCI Expansion Bridge (PXB)
  37200. SeeAlso: #00732,#00870
  37201. (Table 00874)
  37202. Values for Trigem Computer PCI device code:
  37203. 2008h video assistant
  37204. SeeAlso: #00732
  37205. (Table 00875)
  37206. Values for Adaptec PCI device code:
  37207. 1078h AIC-7810C RAID Coprocessor
  37208. 5078h x940 Fast-Wide SCSI-II Ctrlr
  37209. 5578h AHA-2830P SCSI Controller
  37210. 7078h AHA-294x/AIC-7870P Fast-Wide SCSI-II
  37211. 7178h AHA-2940 Fast-Wide SCSI-II
  37212. 7278h x940 two-channel Fast-Wide SCSI
  37213. 7378h AHA-3985 4-channel RAID SCSI
  37214. 7478h AHA-2944 SCSI
  37215. 7810h AIC-7810 memory control IC
  37216. 7850h AIC-7850 SCSI IC (see #01241)
  37217. 7855h AHA-2930 SCSI
  37218. 7870h AIC-7870 SCSI IC
  37219. 7871h AHA-2940
  37220. 7872h AHA-3940
  37221. 7873h AHA-3980
  37222. 7874h AHA-2944 Differential SCSI
  37223. 7880h AIC-7880 Fast-20 SCSI
  37224. 8078h Adaptec 7880
  37225. 8178h Adaptec 2940UW
  37226. 8278h AHA-3940U/UW
  37227. 8378h Adaptec 7883
  37228. 8478h Adaptec 7884
  37229. SeeAlso: #00732
  37230. (Table 00876)
  37231. Values for Atronics PCI device code:
  37232. 2015h Atronics 2015
  37233. SeeAlso: #00732
  37234. (Table 00877)
  37235. Values for Ark Logic Inc. PCI device code:
  37236. A091h ARK 1000PV ??? Stingray
  37237. A099h ARK 2000PV ??? Stingray
  37238. A0A1h ark2000mt 64-bit GUI Accel w/DCI
  37239. SeeAlso: #00732
  37240. --------X-1AB103-----------------------------
  37241. INT 1A - PCI BIOS v2.0c+ - FIND PCI CLASS CODE
  37242. AX = B103h
  37243. ECX = class code (see also #F0085,#00878)
  37244. bits 31-24 unused
  37245. bits 23-16 class
  37246. bits 15-8 subclass
  37247. bits 7-0 programming interface
  37248. SI = device index (0-n)
  37249. Return: CF clear if successful
  37250. CF set on error
  37251. AH = status (00h,86h) (see #00729)
  37252. 00h successful
  37253. BH = bus number
  37254. BL = device/function number (bits 7-3 device, bits 2-0 func)
  37255. 86h device not found
  37256. EAX, EBX, ECX, and EDX may be modified
  37257. all other flags (except IF) may be modified
  37258. Notes: this function may require up to 1024 byte of stack; it will not enable
  37259. interrupts if they were disabled before making the call
  37260. the meanings of BL and BH on return were exchanged between the initial
  37261. drafts of the specification and final implementation
  37262. all devices sharing the same Class Code may be enumerated by
  37263. incrementing SI from 0 until error 86h is returned
  37264. SeeAlso: AX=B183h
  37265. --------X-1AB106-----------------------------
  37266. INT 1A - PCI BIOS v2.0c+ - PCI BUS-SPECIFIC OPERATIONS
  37267. AX = B106h
  37268. BL = bus number
  37269. EDX = Special Cycle data
  37270. Return: CF clear if successful
  37271. CF set on error
  37272. AH = status (00h,81h) (see #00729)
  37273. EAX, EBX, ECX, and EDX may be modified
  37274. all other flags (except IF) may be modified
  37275. Note: this function may require up to 1024 byte of stack; it will not enable
  37276. interrupts if they were disabled before making the call
  37277. SeeAlso: AX=B186h,INT 2F/AX=1684h/BX=304Ch
  37278. --------X-1AB108-----------------------------
  37279. INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION BYTE
  37280. AX = B108h
  37281. BH = bus number
  37282. BL = device/function number (bits 7-3 device, bits 2-0 function)
  37283. DI = register number (0000h-00FFh) (see #00878)
  37284. Return: CF clear if successful
  37285. CL = byte read
  37286. CF set on error
  37287. AH = status (00h,87h) (see #00729)
  37288. EAX, EBX, ECX, and EDX may be modified
  37289. all other flags (except IF) may be modified
  37290. Notes: this function may require up to 1024 byte of stack; it will not enable
  37291. interrupts if they were disabled before making the call
  37292. the meanings of BL and BH on entry were exchanged between the initial
  37293. drafts of the specification and final implementation
  37294. BUG: the Award BIOS 4.51PG (dated 05/24/96) incorrectly returns FFh for
  37295. register 00h if the PCI function number is nonzero
  37296. SeeAlso: AX=B109h,AX=B10Ah,AX=B188h,INT 2F/AX=1684h/BX=304Ch
  37297. --------X-1AB109-----------------------------
  37298. INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION WORD
  37299. AX = B109h
  37300. BH = bus number
  37301. BL = device/function number (bits 7-3 device, bits 2-0 function)
  37302. DI = register number (0000h-00FFh, must be multiple of 2) (see #00878)
  37303. Return: CF clear if successful
  37304. CX = word read
  37305. CF set on error
  37306. AH = status (00h,87h) (see #00729)
  37307. EAX, EBX, ECX, and EDX may be modified
  37308. all other flags (except IF) may be modified
  37309. Notes: this function may require up to 1024 byte of stack; it will not enable
  37310. interrupts if they were disabled before making the call
  37311. the meanings of BL and BH on entry were exchanged between the initial
  37312. drafts of the specification and final implementation
  37313. BUG: the Award BIOS 4.51PG (dated 05/24/96) incorrectly returns FFFFh for
  37314. register 00h if the PCI function number is nonzero
  37315. SeeAlso: AX=B108h,AX=B10Ah,AX=B189h,INT 2F/AX=1684h/BX=304Ch
  37316. --------X-1AB10A-----------------------------
  37317. INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD
  37318. AX = B10Ah
  37319. BH = bus number
  37320. BL = device/function number (bits 7-3 device, bits 2-0 function)
  37321. DI = register number (0000h-00FFh, must be multiple of 4) (see #00878)
  37322. Return: CF clear if successful
  37323. ECX = dword read
  37324. CF set on error
  37325. AH = status (00h,87h) (see #00729)
  37326. EAX, EBX, ECX, and EDX may be modified
  37327. all other flags (except IF) may be modified
  37328. Notes: this function may require up to 1024 byte of stack; it will not enable
  37329. interrupts if they were disabled before making the call
  37330. the meanings of BL and BH on entry were exchanged between the initial
  37331. drafts of the specification and final implementation
  37332. BUG: the Award BIOS 4.51PG (dated 05/24/96) incorrectly returns FFFFFFFFh
  37333. for register 00h if the PCI function number is nonzero
  37334. SeeAlso: AX=B108h,AX=B109h,AX=B10Ah/SF=8086h,AX=B18Ah,INT 2F/AX=1684h/BX=304Ch
  37335. Format of PCI Configuration Data:
  37336. Offset Size Description (Table 00878)
  37337. 00h WORD vendor ID (read-only) (see #00732 at AX=B102h)
  37338. FFFFh returned if requested device non-existent
  37339. 02h WORD device ID (read-only)
  37340. 04h WORD command register (see #00879)
  37341. 06h WORD status register (see #00880)
  37342. 08h BYTE revision ID
  37343. 09h 3 BYTEs class code
  37344. bits 7-0: programming interface
  37345. bits 15-8: sub-class
  37346. bits 23-16: class code (see also #F0085)
  37347. 0Ch BYTE cache line size
  37348. 0Dh BYTE latency timer
  37349. 0Eh BYTE header type
  37350. bits 6-0: header format
  37351. 00h other
  37352. 01h PCI-to-PCI bridge
  37353. 02h PCI-to-CardBus bridge
  37354. bit 7: multi-function device
  37355. 0Fh BYTE Built-In Self-Test result (see #00881)
  37356. ---header type 00h---
  37357. 10h DWORD base address 0 (see #00882)
  37358. (OpenHCI) base address of host controller registers (see #00902)
  37359. 14h DWORD base address 1
  37360. 18h DWORD base address 2
  37361. 1Ch DWORD base address 3
  37362. 20h DWORD base address 4
  37363. 24h DWORD base address 5
  37364. 28h DWORD CardBus CIS pointer (read-only) (see #00889)
  37365. 2Ch WORD subsystem vendor ID or 0000h
  37366. 2Eh WORD subsystem ID or 0000h
  37367. 30h DWORD expansion ROM base address (see #00883)
  37368. 34h BYTE offset of capabilities list within configuration space (R/O)
  37369. (only valid if status register bit 4 set) (see #00884)
  37370. 35h 3 BYTEs reserved
  37371. 38h DWORD reserved
  37372. 3Ch BYTE interrupt line
  37373. 00h = none, 01h = IRQ1 to 0Fh = IRQ15
  37374. 3Dh BYTE interrupt pin (read-only)
  37375. (00h = none, else indicates INTA# to INTD#)
  37376. 3Eh BYTE minimum time bus master needs PCI bus ownership, in 250ns units
  37377. (read-only)
  37378. 3Fh BYTE maximum latency, in 250ns units (bus masters only) (read-only)
  37379. 40h 48 DWORDs varies by device (see #00919,#00920,#01055,#01083)
  37380. ---header type 01h---
  37381. 10h DWORD base address 0 (see #00882)
  37382. 14h DWORD base address 1
  37383. 18h BYTE primary bus number (for bus closer to host processor)
  37384. 19h BYTE secondary bus number (for bus further from host processor)
  37385. 1Ah BYTE subordinate bus number
  37386. 1Bh BYTE secondary latency timer
  37387. 1Ch BYTE I/O base (see #00899)
  37388. 1Dh BYTE I/O limit (see #00899)
  37389. 1Eh WORD secondary status
  37390. 20h WORD memory base (see #00900)
  37391. 22h WORD memory limit
  37392. 24h WORD prefetchable memory base
  37393. 26h WORD prefetchable memory limit
  37394. 28h DWORD prefetchable base, upper 32 bits
  37395. 2Ch DWORD prefetchable limit, upper 32 bits
  37396. 30h WORD I/O base, upper 16 bits
  37397. 32h WORD I/O limit, upper 16 bits
  37398. 34h DWORD reserved
  37399. 38h DWORD expansion ROM base address
  37400. 3Ch BYTE interrupt line
  37401. 3Dh BYTE interrupt pin (read-only)
  37402. 3Eh WORD bridge control (see #00901)
  37403. 40h 48 DWORDs varies by device (see #00919,#00920,#01055,#01083)
  37404. ---header type 02h---
  37405. 10h DWORD CardBus Socket/ExCa base address (see #00890)
  37406. bits 31-12: start address of socket interface register block
  37407. in 4K blocks
  37408. bits 11-0: reserved (0)
  37409. 14h BYTE offset of capabilities list within configuration space (R/O)
  37410. (only valid if status register bit 4 set) (see #00884)
  37411. 15h BYTE reserved
  37412. 16h WORD secondary status
  37413. 18h BYTE PCI bus number
  37414. 19h BYTE CardBus bus number
  37415. 1Ah BYTE subordinate bus number
  37416. 1Bh BYTE CardBus latency timer
  37417. 1Ch DWORD memory base address 0
  37418. 20h DWORD memory limit 0
  37419. 24h DWORD memory base address 1
  37420. 28h DWORD memory limit 1
  37421. 2Ch WORD I/O base address 0
  37422. 2Eh WORD I/O base address 0 high word (optional)
  37423. 30h WORD I/O limit 0
  37424. 32h WORD I/O limit 0 high word (optional)
  37425. 34h WORD I/O base address 1
  37426. 36h WORD I/O base address 1 high word (optional)
  37427. 38h WORD I/O limit 1
  37428. 3Ah WORD I/O limit 1 high word (optional)
  37429. 3Ch BYTE interrupt line
  37430. 3Dh BYTE interrupt pin (read-only) (no interrupt used if 00h)
  37431. 3Eh WORD bridge control
  37432. 40h WORD subsystem vendor ID
  37433. 42h WORD subsystem device ID
  37434. 44h DWORD 16-bit PC Card legacy mode base address (for accessing ExCa
  37435. registers)
  37436. 48h 14 DWORDs reserved
  37437. 80h 32 DWORDs varies by device (see #00919,#00920,#01055,#01083)
  37438. Bitfields for PCI Configuration Command Register:
  37439. Bit(s) Description (Table 00879)
  37440. 0 I/O access enabled
  37441. 1 memory access enabled
  37442. 2 bus master enable
  37443. 3 special cycle recognition enabled
  37444. 4 memory write and invalidate enabled
  37445. 5 VGA palette snoop enabled
  37446. 6 parity error response enabled
  37447. 7 wait cycles enabled
  37448. 8 system error (SERR# line) enabled
  37449. 9 fast back-to-back transactions enabled
  37450. 15-10 reserved
  37451. SeeAlso: #00878,#00880
  37452. Format of PCI Configuration Status Register:
  37453. Bit(s) Description (Table 00880)
  37454. 3-0 reserved (0)
  37455. 4 new capabilities list is present (first entry pointed at by byte at
  37456. 34h or 14h)
  37457. 5 capable of running at 66 MHz
  37458. 6 UDF supported
  37459. 7 capable of fast back-to-back transactions
  37460. 8 data parity error reported
  37461. 10-9 device select timing
  37462. 00 fast
  37463. 01 medium
  37464. 10 slow
  37465. 11 reserved
  37466. 11 signaled target abort
  37467. 12 received target abort
  37468. 13 received master abort
  37469. 14 signaled system error (device is asserting SERR# line)
  37470. 15 detected parity error (set even if parity error reporting is disabled)
  37471. Note: bits 12, 13 and 15 are cleared by writing a 1 into the corresponding
  37472. bit
  37473. SeeAlso: #00878,#00879
  37474. Bitfields for PCI Configuration Built-In Self-Test register:
  37475. Bit(s) Description (Table 00881)
  37476. 3-0 completion code (0000 = successful)
  37477. 5-4 reserved
  37478. 6 start BIST (set to one to start, cleared automatically on completion)
  37479. 7 BIST-capable
  37480. Notes: this register is hardwired to 00h if no BIST capability
  37481. software should timeout the BIST after two seconds
  37482. SeeAlso: #00878
  37483. Bitfields for PCI Configuration Base Address:
  37484. Bit(s) Description (Table 00882)
  37485. 0 address type (0 = memory space, 1 = I/O space)
  37486. ---memory address---
  37487. 2-1 address type
  37488. 00 anywhere in first 4GB
  37489. 01 below 1MB
  37490. 10 anywhere in 64-bit address space
  37491. 11 reserved
  37492. 3 prefetchable
  37493. 31-4 bits 31-4 of base memory address if addressable in first 1MB or 4GB
  37494. 63-4 bits 63-4 of base memory address if addressable in 64-bit memory
  37495. (bits 63-32 are stored in the following base address DWORD)
  37496. ---I/O address---
  37497. 1 reserved
  37498. 31-2 bits 31-2 of base I/O port
  37499. SeeAlso: #00878,#00902
  37500. Bitfields for PCI Configuration Expansion ROM Address:
  37501. Bit(s) Description (Table 00883)
  37502. 0 address decode enable (ROM address is valid)
  37503. 10-1 reserved
  37504. 31-11 bits 31-11 of ROM's starting physical address
  37505. SeeAlso: #00878
  37506. Format of PCI Capabilities List:
  37507. Offset Size Description (Table 00884)
  37508. 00h BYTE capability identifier
  37509. 01h PCI Power Managment
  37510. 01h BYTE offset of next item (within configuration space) or 00h
  37511. N BYTEs varies by capability type
  37512. ---PCI Power Management---
  37513. 02h WORD power managment capabilities (see #00885) (read-only)
  37514. 04h WORD power managment capabilities status register (see #00886)
  37515. 06h BYTE PMCSR bridge support extensions (see #00887)
  37516. 07h BYTE (optional) read-only data register (see #00888)
  37517. Note: this information is from the v0.93 draft of the specification and is
  37518. subject to change
  37519. SeeAlso: #00878,#00880
  37520. Bitfields for PCI Power Management Capabilities:
  37521. Bit(s) Description (Table 00885)
  37522. 15 reserved (0)
  37523. 14-12 PME# support
  37524. bit 12: PME# can be asserted from power state D0
  37525. bit 13: PME# can be asserted from power state D1
  37526. bit 14: PME# can be asserted from power state D2
  37527. 11 reserved (0)
  37528. 10 D2 power state supported
  37529. 9 D1 power state supported
  37530. 8 full-speed clock is required in state D0 for proper operation
  37531. (if clear, device may be run at reduced clock except when actually
  37532. being accessed)
  37533. 7-6 dynamic clock control support
  37534. 00 not bridge, no dynamic clock control, or secondary bus' clock is
  37535. is tied to primary bus' clock
  37536. 01 bridge is capable of dynamic clock control
  37537. 10 reserved
  37538. 11 secondary bus has independent clock, but dynamic clock not supported
  37539. 5 device-specific initialization is required
  37540. 4 auxiliary power required for PME# generation
  37541. 3 PCI clock required for PME# generation
  37542. 2-0 specification version
  37543. 001 = v1.0; four bytes of power management registers
  37544. Note: this information is from the v0.93 draft of the specification and is
  37545. subject to change
  37546. SeeAlso: #00884,#00886,#00887
  37547. Bitfields for PCI Power Management Capabilities Status Register:
  37548. Bit(s) Description (Table 00886)
  37549. 15 PME status: if set, PME# is (or would be) asserted
  37550. writing a 1 to this bit clears it
  37551. 14-13 (read-only) scale factor to apply to contents of Data register
  37552. 00 unknown (or unimplemented data)
  37553. 01 x0.1
  37554. 10 x0.01
  37555. 11 x0.001
  37556. 12-9 (read-write) data select (see #00888)
  37557. 8 (read-write) enable PME# assertion
  37558. 7-5 reserved (0)
  37559. 4 (read-write) enable dynamic data reporting
  37560. when set, PME# is asserted whenever the value in the Data register
  37561. changes significantly
  37562. 3-2 reserved (0)
  37563. 1-0 (read-write) current power state
  37564. 00 = D0
  37565. ...
  37566. 11 = D3
  37567. Note: this information is from the v0.93 draft of the specification and is
  37568. subject to change
  37569. SeeAlso: #00884,#00885,#00887
  37570. Bitfields for PCI Power Management PMCSR bridge support extension:
  37571. Bit(s) Description (Table 00887)
  37572. 7 (read-only) Bus Power Control Enable
  37573. 6 (read-only) Bus Power State B3 supported
  37574. 5 (read-only) Bus Power State B2 supported
  37575. 4 dynamic clock control enable
  37576. 3-0 reserved (0)
  37577. Note: this information is from the v0.93 draft of the specification and is
  37578. subject to change
  37579. SeeAlso: #00884,#00885,#00886
  37580. (Table 00888)
  37581. Values for PCI Power Management Data Select:
  37582. 00h D0-state power consumed in watts (+20%/-10%)
  37583. 01h D1-state power consumed in watts (+20%/-10%)
  37584. 02h D2-state power consumed in watts (+20%/-10%)
  37585. 03h D3-state power consumed in watts (+20%/-10%)
  37586. 04h D0-state power dissipated into chassis in watts
  37587. 05h D1-state power dissipated into chassis in watts
  37588. 06h D2-state power dissipated into chassis in watts
  37589. 07h D3-state power dissipated into chassis in watts
  37590. 08h-0Fh reserved
  37591. SeeAlso: #00886
  37592. Bitfields for PCI Configuration CardBus CIS Pointer:
  37593. Bit(s) Description (Table 00889)
  37594. 2-0 address space
  37595. 000 in device's device-specific configuration space
  37596. 001 in memory pointed to by base address register 0
  37597. ...
  37598. 110 in memory pointed to by base address register 5
  37599. 111 in device's expansion ROM
  37600. 27-3 offset within address space defined by bits 2-0
  37601. 31-28 ROM image number (when address space is expansion ROM)
  37602. SeeAlso: #00878
  37603. Format of CardBus Socket/ExCA socket interface register space:
  37604. Offset Size Description (Table 00890)
  37605. 00h DWORD Socket Event Register (see #00892)
  37606. 04h DWORD Socket Mask Register (see #00893)
  37607. 08h DWORD Socket Present State Register (see #00894)
  37608. 0Ch DWORD Socket Force Event Register (see #00895)
  37609. 10h DWORD Socket Control Register (see #00896)
  37610. 14h 3 DWORDs reserved
  37611. 20h DWORD Socket Power Management Register
  37612. 90h BYTE (TI PCI1130) Retry Status Register
  37613. 91h BYTE (TI PCI1130) Card Control Register (see #00897)
  37614. 92h BYTE (TI PCI1130) Device Control Register (see #00898)
  37615. 93h BYTE (TI PCI1130) Buffer Control Register
  37616. 800h 64+ BYTEs ExCa Socket Interface Registers (see #00891)
  37617. Format of ExCa memory-mapped registers:
  37618. Offset Size Description (Table 00891)
  37619. 00h BYTE identification and revision register
  37620. 01h BYTE interface status register
  37621. 02h BYTE power control register
  37622. 03h BYTE interrupt and general control
  37623. 04h BYTE card status change
  37624. 05h BYTE card status change interrupt configuration
  37625. 06h BYTE address window enable
  37626. 07h BYTE I/O window control register
  37627. 08h WORD I/O window 0 start address
  37628. 0Ah WORD I/O window 0 end address
  37629. 0Ch WORD I/O window 1 start address
  37630. 0Eh WORD I/O window 1 end address
  37631. 10h WORD memory window 0 start address
  37632. 12h WORD memory window 0 end address
  37633. 14h WORD memory window 0 offset address
  37634. 16h 2 BYTEs user-defined
  37635. 18h WORD memory window 1 start address
  37636. 1Ah WORD memory window 1 end address
  37637. 1Ch WORD memory window 1 offset address
  37638. 1Eh BYTE user-defined
  37639. 1Fh BYTE reserved
  37640. 20h WORD memory window 2 start address
  37641. 22h WORD memory window 2 end address
  37642. 24h WORD memory window 2 offset address
  37643. 26h 2 BYTEs user-defined
  37644. 28h WORD memory window 3 start address
  37645. 2Ah WORD memory window 3 end address
  37646. 2Ch WORD memory window 3 offset address
  37647. 2Eh 2 BYTEs user-defined
  37648. 30h WORD memory window 4 start address
  37649. 32h WORD memory window 4 end address
  37650. 34h WORD memory window 4 offset address
  37651. 36h 10 BYTEs user-defined
  37652. ---optional---
  37653. 40h BYTE memory window 0 start address high byte
  37654. 41h BYTE memory window 1 start address high byte
  37655. 42h BYTE memory window 2 start address high byte
  37656. 43h BYTE memory window 3 start address high byte
  37657. 44h BYTE memory window 4 start address high byte
  37658. 45h-7FFh user-defined
  37659. SeeAlso: #00890
  37660. Bitfields for CardBus Socket Event Register:
  37661. Bit(s) Description (Table 00892)
  37662. 0 CSTSCHG pin asserted (status change)
  37663. 1 CCD1# (card detect 1) changed state
  37664. 2 CCD2# (card detect 2) changed state
  37665. 3 interface power cycle completed
  37666. 31-4 reserved (0)
  37667. Note: the bits in this register are set by the bridge, and cleared by writing
  37668. a one into the bits one wishes to clear
  37669. SeeAlso: #00890,#00893,#00895
  37670. Bitfields for CardBus Socket Event Mask Register:
  37671. Bit(s) Description (Table 00893)
  37672. 0 write-protect (enable status-change interrupt on WriteProtect switch)
  37673. 1 ready mask (allow status-change interrupt on Ready line change)
  37674. 3-2 battery condition (allow status-change int on battery-condition change)
  37675. 4 general wakeup enabled
  37676. 5 binary audio mode enabled on CAUDIO pin
  37677. 6 Pulse Width Modulation enabled on CAUDIO pin
  37678. (CAUDIO state undefined if both bits 5 and 6 set)
  37679. 13-7 reserved (0)
  37680. 14 Wakeup mask (enable wakeup events via status-change pin)
  37681. 15 enable card interrupts via CINT# pin and wakeup events
  37682. 31-16 reserved
  37683. SeeAlso: #00890,#00892,#00894
  37684. Bitfields for CardBus Socket Present State Register:
  37685. Bit(s) Description (Table 00894)
  37686. 0 CSTSCHG pin asserted (status change)
  37687. 1 CCD1# (card detect 1) changed state
  37688. 2 CCD2# (card detect 2) changed state
  37689. 3 interface power cycle completed
  37690. 4 16-bit PC card inserted
  37691. 5 CardBus card inserted
  37692. 6 card's interrupt pin asserted
  37693. 7 card inserted but type can not be determined
  37694. 8 data may have been lost due to abrupt card removal
  37695. 9 attempted to apply Vcc voltage not supported by the card
  37696. 10 card can accept Vcc = 5.0 volts
  37697. 11 card can accept Vcc = 3.3 volts
  37698. 12 card can accept Vcc = X.X volts
  37699. 13 card can accept Vcc = Y.Y volts
  37700. 27-14 reserved (0)
  37701. 28 socket can accept Vcc = 5.0 volts
  37702. 29 socket can accept Vcc = 3.3 volts
  37703. 30 socket can accept Vcc = X.X volts
  37704. 31 socket can accept Vcc = Y.Y volts
  37705. Note: bits 0-3 may be cleared by writing a 1 into the respective bits
  37706. SeeAlso: #00890,#00892,#00893,#00896
  37707. Bitfields for CardBus Socket Force Event Register:
  37708. Bit(s) Description (Table 00895)
  37709. 0 write-protect
  37710. 1 ready
  37711. 2 battery voltage detect 2
  37712. 3 battery voltage detect 1
  37713. 4 general wakeup
  37714. 14-5 reserved (0)
  37715. 15 enable card interrupts via CINT# pin
  37716. 31-16 reserved
  37717. Note: this register can simulate events by forcing the values of some of the
  37718. bits in the Event Mask Register; any bit of this register which is
  37719. set to 1 forces the corresponding bit in the Mask Register to 1,
  37720. while bits set to 0 leave the corresponding bit unchanged
  37721. SeeAlso: #00890,#00892,#00896
  37722. Bitfields for CardBus Socket Control Register:
  37723. Bit(s) Description (Table 00896)
  37724. 2-0 Vpp control
  37725. 000 power off
  37726. 001 12.0 Volts
  37727. 010 5.0 Volts
  37728. 011 3.3 Volts
  37729. 100 reserved (X.X Volts)
  37730. 101 reserved (Y.Y Volts)
  37731. 110 reserved
  37732. 111 reserved
  37733. 3 reserved (0)
  37734. 6-4 Vcc control (as for Vpp, but 12.0V not supported)
  37735. 31-7 reserved (0)
  37736. SeeAlso: #00890,#00893,#00895
  37737. Bitfields for TI PCI1130 Card Control Register:
  37738. Bit(s) Description (Table 00897)
  37739. 0 interrupt pending
  37740. 1 speaker output enabled
  37741. 2 reserved
  37742. 3 enable status-change interrupt routing (to INTA# for socket A, INTB#
  37743. for socket B)
  37744. 4 function interrupt routed to corresponding PCI interrupt pin
  37745. 5 PCI interrupts enabled
  37746. 6 ZOOM video mode enabled
  37747. 7 Ring Indicator enabled on IRQ15/RI_OUT pin
  37748. SeeAlso: #00890,#00898
  37749. Bitfields for TI PCI1130 Device Control Register:
  37750. Bit(s) Description (Table 00898)
  37751. 0 reserved (0)
  37752. 2-1 interrupt mode enable
  37753. 00 no interrupt
  37754. 01 ISA mode (direct IRQ routing)
  37755. 10 serialized interrupt mode
  37756. 11 reserved
  37757. 4-3 reserved
  37758. 5 3volt Socket Capable force bit
  37759. 6 5volt Socket Capable force bit
  37760. 7 reserved
  37761. SeeAlso: #00890,#00897
  37762. Bitfields for PCI Configuration I/O base and limit:
  37763. Bit(s) Description (Table 00899)
  37764. 3-0 (read-only) address decoding type
  37765. 0000 16-bit
  37766. 0001 32-bit
  37767. other reserved
  37768. 7-4 bits 15-12 of I/O address range
  37769. SeeAlso: #00878,#00900
  37770. Bitfields for PCI Configuration memory base and limit:
  37771. Bit(s) Description (Table 00900)
  37772. 3-0 address decode type
  37773. 0000 32-bit address decoder
  37774. 0001 64-bit address decoder
  37775. other reserved
  37776. 15-4 bits 31-20 of memory address range
  37777. SeeAlso: #00878,#00899
  37778. Bitfields for PCI Configuration Bridge Control Register:
  37779. Bit(s) Description (Table 00901)
  37780. 7 enable fast back-to-back cycles on secondary bus
  37781. 6 reset secondary bus
  37782. 5 master abort mode on secondary bus
  37783. 4 reserved
  37784. 3 VGA enable (when set, forward VGA memory and I/O ranges to seconary
  37785. bus)
  37786. 2 ISA enable
  37787. 1 reserved
  37788. 0 enable parity error response
  37789. SeeAlso: #00878,#01131
  37790. Format of OpenHCI Host Controller memory-mapped registers:
  37791. Offset Size Description (Table 00902)
  37792. 00h DWORD "HcRevision" OpenHCI revision (see #00903)
  37793. 04h DWORD "HcControl" HC operating modes (see #00904)
  37794. 08h DWORD "HcCommandStatus" command/status (see #00905)
  37795. 0Ch DWORD "HcInterruptStatus" interrupt status (see #00906)
  37796. 10h DWORD "HcInterruptEnable" enable interrupts (see #00907)
  37797. 14h DWORD "HcInterruptDisable" disable interrupts (see #00907)
  37798. 18h DWORD "HcHCCA" HC Communications Area (see #00908)
  37799. 1Ch DWORD "HcPeriodCurrentED" Endpoint Descriptor addr (see #00909)
  37800. 20h DWORD "HcControlHeadED" Control Endpoint Descriptor (see #00910)
  37801. 24h DWORD "HcControlCurrentED" Control Endpoint Descriptor (see #00910)
  37802. 28h DWORD "HcBulkHeadED" Bulk Endpoint Descriptor (see #00911)
  37803. 2Ch DWORD "HcBulkCurrentED" Bulk Endpoint Descriptor (see #00911)
  37804. 30h DWORD "HcDoneHead" last completed Xfer Descr. (see #00912)
  37805. 34h DWORD "HcFmInterval" Frame bit-time interval (see #00913)
  37806. 38h DWORD "HcFmRemaining" bit time remaining in Frame (see #00914)
  37807. 3Ch DWORD "HcFmNumber" Frame Number (bits 15-0)
  37808. 40h DWORD "HcPeriodicStart" earliest time to start periodic list
  37809. (bits 13-0)
  37810. 44h DWORD "HcLSThreshold" threshold for Low Speed transaction
  37811. (bits 11-0)
  37812. 48h DWORD "HcRhDescriptorA" Root Hub Descriptor A (see #00915)
  37813. 4Ch DWORD "HcRhDescriptorB" Root Hub Descriptor B (see #00916)
  37814. 50h DWORD "HcRhStatus" Root Hub status (see #00917)
  37815. 54h N DWORDs "HCRhPortStatus[1-N]" Root Hub port status N (see #00918)
  37816. Note: OpenHCI reserves a full 4K page of the systems address space for its
  37817. memory-mapped registers
  37818. SeeAlso: #00878,#00882,#F0085,#00966
  37819. Bitfields for OpenHCI "HcRevision" register:
  37820. Bit(s) Description (Table 00903)
  37821. 31-8 reserved
  37822. 7-0 BCD OpenHCI specification number (10h = 1.0, 11h = 1.1)
  37823. Note: this register is read-only
  37824. SeeAlso: #00902,#00904
  37825. Bitfields for OpenHCI "HcControl" register:
  37826. Bit(s) Description (Table 00904)
  37827. 31-11 reserved
  37828. 10 RWE enable Remote Wakeup feature
  37829. 9 RWC controller supports Remote Wakeup signalling
  37830. 8 IR Interrupt Routing
  37831. 0 normal host bus interrupt
  37832. 1 System Managment Interrupt
  37833. 7-6 HCFS USB Host Controller Functional State
  37834. 00 USBReset
  37835. 01 USBResume
  37836. 10 USBOperational
  37837. 11 USBSuspend
  37838. 5 BLE enable Bulk List processing in next frame
  37839. 4 CLE enable Control List processing in next frame
  37840. 3 IE enable Isochronous ED processing
  37841. 2 PLE enable processing of Periodic List in next frame
  37842. 1-0 CBSR Control Bulk Service Ratio
  37843. 00 1:1 Control EDs:Bulk EDs served
  37844. 01 2:1
  37845. 10 3:1
  37846. 11 4:1
  37847. SeeAlso: #00902,#00903,#00905
  37848. Bitfields for OpenHCI "HcCommandStatus" register:
  37849. Bit(s) Description (Table 00905)
  37850. 31-18 reserved
  37851. 17-16 SOC scheduling-overrun count
  37852. 15-4 reserved
  37853. 3 OCR ownership change request is pending
  37854. 2 BLF bulk list contains TDs
  37855. 1 CLF control list contains TDs
  37856. 0 HCR host controller software reset
  37857. Note: writing a 1 bit sets the corresponding bit, while a 0 bit leaves the
  37858. corresponding bit unchanged
  37859. SeeAlso: #00902,#00903,#00906
  37860. Bitfields for OpenHCI "HcInterruptStatus" register:
  37861. Bit(s) Description (Table 00906)
  37862. 31 reserved (0)
  37863. 30 OC ownership change
  37864. 29-7 reserved
  37865. 6 RHSC Root Hub status changed
  37866. 5 FNO frame number overflowed
  37867. 4 UE unrecoverable error
  37868. 3 RD resume detected
  37869. 2 SF start of frame
  37870. 1 WDH writeback done
  37871. 0 SO scheduling overrun
  37872. Note: writing a 1 bit clears the corresponding bit of the register
  37873. SeeAlso: #00902,#00903,#00905,#00907
  37874. Bitfields for OpenHCI "HcInterruptEnable" and "HcInterruptDisable" registers:
  37875. Bit(s) Description (Table 00907)
  37876. 31 MIE master interrupt enable
  37877. 30 OC ownership change
  37878. 29-7 reserved
  37879. 6 RHSC Root Hub status change
  37880. 5 FNO frame number overflow
  37881. 4 UE unrecoverable error
  37882. 3 RD Resume Detect
  37883. 2 SF start of frame
  37884. 1 WDH HcDoneHead writeback
  37885. 0 SO scheduling overrun
  37886. Note: writing a 1 bit to HcInterruptEnable enables the corresponding
  37887. interrupt, while writing a 1 bit to HcInterruptDisable disables it;
  37888. zero bits are ignored. On reading, both registers return the
  37889. same value, which reflects the currently enabled interrupts
  37890. SeeAlso: #00902
  37891. Bitfields for OpenHCI "HcHCCA" register:
  37892. Bit(s) Description (Table 00908)
  37893. 31-8 physical address of Host Controller Communications Area (bits 31-8)
  37894. 7-0 reserved (0)
  37895. Note: the required alignment for the HCCA may be determined by writing
  37896. FFFFFFFFh to this register and determining the number of low-order
  37897. zero bits
  37898. SeeAlso: #00902,#00909,#00910
  37899. Bitfields for OpenHCI "HcPeriodCurrentED" register:
  37900. Bit(s) Description (Table 00909)
  37901. 31-4 physical address of current Isochronous/Interrupt Endpoint Descriptor
  37902. (bits 31-4)
  37903. 3-0 reserved (0)
  37904. SeeAlso: #00902,#00908,#00910
  37905. Bitfields for OpenHCI "HcControlHeadED"/"HcControlCurrentED" register:
  37906. Bit(s) Description (Table 00910)
  37907. 31-4 physical address of first/current Endpoint Descriptor (bits 31-4)
  37908. 3-0 reserved (0)
  37909. Note: HcControlCurrentED is set to 0000000h to indicate the end of the
  37910. Control list
  37911. SeeAlso: #00902,#00908,#00909
  37912. Bitfields for OpenHCI "HcBulkHeadED"/"HcBulkCurrentED" register:
  37913. Bit(s) Description (Table 00911)
  37914. 31-4 physical address of first/current Endpoint Descriptor in the Bulk
  37915. list (bits 31-4)
  37916. 3-0 reserved (0)
  37917. Note: HcBulkCurrentED is set to 0000000h to indicate the end of the Bulk
  37918. list
  37919. SeeAlso: #00902,#00908,#00910
  37920. Bitfields for OpenHCI "HcDoneHead" register:
  37921. Bit(s) Description (Table 00912)
  37922. 31-4 physical address of most-recently completed Transfer Descriptor added
  37923. to the Done queue (bits 31-4)
  37924. 3-0 reserved (0)
  37925. SeeAlso: #00902,#00909,#00911
  37926. Bitfields for OpenHCI "HcFmInterval" register:
  37927. Bit(s) Description (Table 00913)
  37928. 31 "FIT" toggled each time a new value is loaded into bits 13-0
  37929. 30-16 "FSMPS" largest data packet in bits
  37930. 15-14 reserved
  37931. 13-0 "FI" Frame Interval (between to consecutive SOFs)
  37932. SeeAlso: #00902,#00914
  37933. Bitfields for OpenHCI "HcFmRemaining" register:
  37934. Bit(s) Description (Table 00914)
  37935. 31 "FRT" loaded from bit 31 of HcFmInterval whenever FR reaches 0
  37936. 30-14 reserved
  37937. 13-0 "FR" FrameRemaining -- bits times left in current frame
  37938. SeeAlso: #00902,#00913
  37939. Bitfields for OpenHCI "HcRhDescriptorA" register:
  37940. Bit(s) Description (Table 00915)
  37941. 31-24 "POTPGT" power-on to power-good time in 2ms units
  37942. 23-13 reserved
  37943. 12 "NOCP" no over-current protection supported
  37944. 11 "OCPM" over-current status reported per-port
  37945. 10 "DT" device type - is root hub compound device?
  37946. 9 "NPS" NoPowerSwitching -- ports are always powered up
  37947. 8 "PSM" power-switching mode -- if set, each port powered individually
  37948. 7-0 "NDP" number of downstream ports
  37949. SeeAlso: #00902,#00916,#00917
  37950. Bitfields for OpenHCI "HcRhDescriptorB" register:
  37951. Bit(s) Description (Table 00916)
  37952. 31-16 "PPCM" PortPowerControlMask -- bitmask of ports NOT affected by global
  37953. power control (bit 16 [port #0] is reserved)
  37954. 15-0 "DR" DeviceRemovable -- bitmap of removable devices
  37955. SeeAlso: #00902,#00915,#00917
  37956. Bitfields for OpenHCI "HcRhStatus" register:
  37957. Bit(s) Description (Table 00917)
  37958. 31 "CRWE" Clear Remote Wakeup Enable
  37959. write 1 to disable remote wakeup (writes of 0 ignored)
  37960. 30-18 reserved
  37961. 17 "OCIC" OverCurrent Indicator Change
  37962. write 1 to clear
  37963. 16 R "LPSC" Local Power Status Change
  37964. W Set Global Power mode (write 1; writes of 0 ignored)
  37965. 15 "DRWE" Device Remote Wakeup Enable
  37966. write 1 to enable (writes of 0 ignored)
  37967. read to get current status
  37968. 14-2 reserved
  37969. 1 "OCI" OverCurrent Indicator
  37970. 0 R "LPS" LocalPowerStatus (always 0 for Root Hub)
  37971. W write 1 to turn off power to all ports/ports with clear
  37972. PortPowerControlMask bits
  37973. SeeAlso: #00902,#00915,#00916,#00918
  37974. Bitfields for OpenHCI "HcRhPortStatusN" register:
  37975. Bit(s) Description (Table 00918)
  37976. 31-21 reserved
  37977. 20 "PRSC" Port Reset Status Change (write '1' to clear)
  37978. 19 "OCIC" Port OverCurrent Indiactor Change (write '1' to clear)
  37979. 18 "PSSC" Port Suspend Status Change (write '1' to clear)
  37980. 17 "PESC" Port Enable Status Change (write '1' to clear)
  37981. 16 "CSC" Connect Status Change (write '1' to clear)
  37982. 15-10 reserved
  37983. 9 R "LSDA" Low Speed Device Attached
  37984. W clear port power by writing '1'
  37985. 8 R "PPS" Port Power Status
  37986. W set port power by writing '1'
  37987. 7-5 reserved
  37988. 4 R "PRS" Port Reset Status
  37989. W set port reset by writing '1'
  37990. 3 R "POCI" Port OverCurrent Indicator
  37991. W clear suspend status by writing '1'
  37992. 2 R "PSS" Port Suspend Status
  37993. W set port suspend by writing '1'
  37994. 1 R "PES" Port Enable Status
  37995. W set port enable by writing '1'
  37996. 0 R "CCS" current connect status
  37997. W clear port enable by writing '1'
  37998. SeeAlso: #00902,#00915,#00916,#00917
  37999. --------X-1AB10ASF1004-----------------------
  38000. INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (VLSI devices)
  38001. AX = B10Ah subfn 1004h
  38002. BH = bus number
  38003. BL = device/function number (bits 7-3 device, bits 2-0 function)
  38004. DI = register number (0000h-00FFh) (see #00878)
  38005. Return: CF clear if successful
  38006. ECX = dword read
  38007. CF set on error
  38008. AH = status (00h,87h) (see #00729)
  38009. EAX, EBX, ECX, and EDX may be modified
  38010. all other flags (except IF) may be modified
  38011. Notes: this function may require up to 1024 byte of stack; it will not enable
  38012. interrupts if they were disabled before making the call
  38013. the meanings of BL and BH on entry were exchanged between the initial
  38014. drafts of the specification and final implementation
  38015. SeeAlso: AX=B10Ah,AX=B10Ah/SF=8086h
  38016. Format of PCI Configuration Data for VLSI VL82C591 Host/PCI bridge:
  38017. Offset Size Description (Table 00919)
  38018. 00h 64 BYTEs header (see #00878)
  38019. (vendor ID 1004h, device ID 0005h)
  38020. 40h BYTE bus number
  38021. 41h BYTE subordinate bus number
  38022. 42h WORD reserved
  38023. 44h 4 DWORDs reserved
  38024. 54h 2 BYTEs device-specific configuration registers
  38025. 56h WORD reserved
  38026. 58h 2 BYTEs device-specific configuration registers
  38027. 5Ah WORD reserved
  38028. 5Ch 5 BYTEs device-specific configuration registers
  38029. ...
  38030. FFh BYTE device-specific configuration register
  38031. SeeAlso: #00878,#00732,#00920
  38032. Format of PCI Configuration data for VLSI VL82C593 PCI/ISA bridge:
  38033. Offset Size Description (Table 00920)
  38034. 00h 64 BYTEs header (see #00878)
  38035. (vendor ID 1004, device ID 0006h)
  38036. 40h 4 DWORDs reserved
  38037. 50h 11 BYTEs device-specific configuration registers
  38038. 5Bh BYTE reserved
  38039. 5Ch 25 BYTEs device-specific configuration registers
  38040. 75h 138 BYTEs reserved
  38041. FFh BYTE device-specific configuration register
  38042. SeeAlso: #00878,#00919
  38043. --------X-1AB10ASF100B-----------------------
  38044. INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (National Semicond. device)
  38045. AX = B10Ah subfn 100Bh
  38046. BH = bus number
  38047. BL = device/function number (bits 7-3 device, bits 2-0 function)
  38048. DI = register number (0000h-00FFh) (see #00878)
  38049. Return: CF clear if successful
  38050. ECX = dword read
  38051. CF set on error
  38052. AH = status (00h,87h) (see #00729)
  38053. EAX, EBX, ECX, and EDX may be modified
  38054. all other flags (except IF) may be modified
  38055. Notes: this function may require up to 1024 byte of stack; it will not enable
  38056. interrupts if they were disabled before making the call
  38057. the meanings of BL and BH on entry were exchanged between the initial
  38058. drafts of the specification and final implementation
  38059. SeeAlso: AX=B10Ah,AX=B10Ah/SF=8086h
  38060. Format of National Semiconductor PC87410 EIDE Controller configuration:
  38061. Offset Size Description (Table 00921)
  38062. 00h 64 BYTEs header (see #00878)
  38063. (vendor ID 100Bh, device ID D001h)
  38064. 10h DWORD I/O base address for channel 0 control ports (def: 01F0h)
  38065. 14h DWORD I/O base address for channel 0 status port (def: 03F6h)
  38066. 18h DWORD I/O base address for channel 1 control ports (def: 0170h)
  38067. 1Ch DWORD I/O base address for channel 1 status port (def: 0376h)
  38068. 40h BYTE IDE Channel 0 timing control
  38069. 41h WORD IDE Channel 0 read-ahead counter (write-only except bit 15)
  38070. 43h BYTE IDE Channel 0 function
  38071. 44h BYTE IDE Channel 1 timing control
  38072. 45h WORD IDE Channel 1 read-ahead counter (write-only except bit 15)
  38073. 47h BYTE IDE Channel 1 function
  38074. 48h BYTE PCI control
  38075. 49h 7 BYTEs unused
  38076. 50h 176 BYTEs ??? (unused?)
  38077. !!!http://www.national.com/ds/PC/PC87410.pdf p.7
  38078. SeeAlso: #00739,#00922
  38079. Format of National Semiconductor PC87415 IDE DMA-Master configuration:
  38080. Offset Size Description (Table 00922)
  38081. 00h 64 BYTEs header (see #00878)
  38082. (vendor ID 100Bh, device ID 0002h)
  38083. 40h 3 BYTEs control register
  38084. 43h BYTE write buffer status (read-only)
  38085. 44h BYTE Channel 1 master read timing
  38086. 45h BYTE Channel 1 master write timing
  38087. 48h BYTE Channel 1 slave read timing
  38088. 49h BYTE Channel 1 slave write timing
  38089. 4Ch BYTE Channel 2 master read timing
  38090. 4Dh BYTE Channel 2 master write timing
  38091. 50h BYTE Channel 2 slave read timing
  38092. 51h BYTE Channel 2 slave write timing
  38093. 54h BYTE command and control block timing
  38094. 55h BYTE sector size
  38095. !!!http://www.national.com/ds/PC/PC87415.pdf p.8
  38096. SeeAlso: #00739,#00921
  38097. --------X-1AB10ASF1011-----------------------
  38098. INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (DEC device)
  38099. AX = B10Ah subfn 1011h
  38100. BH = bus number
  38101. BL = device/function number (bits 7-3 device, bits 2-0 function)
  38102. DI = register number (0000h-00FFh) (see #00878)
  38103. Return: CF clear if successful
  38104. ECX = dword read
  38105. CF set on error
  38106. AH = status (00h,87h) (see #00729)
  38107. EAX, EBX, ECX, and EDX may be modified
  38108. all other flags (except IF) may be modified
  38109. Notes: this function may require up to 1024 byte of stack; it will not enable
  38110. interrupts if they were disabled before making the call
  38111. the meanings of BL and BH on entry were exchanged between the initial
  38112. drafts of the specification and final implementation
  38113. SeeAlso: AX=B10Ah,AX=B10Ah/SF=8086h
  38114. Format of DEC DC21140/DC21040/DC21041 Tulip {Fast/Plus} Ethernet:
  38115. Offset Size Description (Table 00923)
  38116. 00h 64 BYTEs header (see #00878)
  38117. (vendor ID 1011h, device ID 0014h)
  38118. 10h DWORD base I/O port for access to control/status registers
  38119. 14h DWORD base memory address for access to control/status registers
  38120. 40h DWORD configuration driver area
  38121. bit 31: sleep mode \ only one of bits 31,30 may be set
  38122. bit 30: snooze mode /
  38123. bits 15-8: device driver's use
  38124. !!!digital\21041hm.pdf p.34 digital\21140ahm.pdf p.35
  38125. SeeAlso: #00742
  38126. Format of DEC 21052 PCI-PCI bridge PCI configuration data:
  38127. Offset Size Description (Table 00924)
  38128. 00h 64 BYTEs header, type 1 (see #00878)
  38129. (vendor ID 1011h, device ID 0021h)
  38130. 40h BYTE chip control
  38131. 41h BYTE diagnostic control
  38132. 42h BYTE burst counter
  38133. 43h BYTE SErr disable
  38134. 44h BYTE primary target wait timer
  38135. 45h BYTE secondary target wait timer
  38136. 46h 2 BYTEs reserved
  38137. 48h DWORD count of secondary write attempts
  38138. 4Ch DWORD count of primary write attempts
  38139. 50h 44 DWORDs reserved
  38140. !!!digital\21052ds.pdf p.117
  38141. SeeAlso: #00742
  38142. --------X-1AB10ASF1022-----------------------
  38143. INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (AMD devices)
  38144. AX = B10Ah subfn 1022h
  38145. BH = bus number
  38146. BL = device/function number (bits 7-3 device, bits 2-0 function)
  38147. DI = register number (0000h-00FFh) (see #00878)
  38148. Return: CF clear if successful
  38149. ECX = dword read
  38150. CF set on error
  38151. AH = status (00h,87h) (see #00729)
  38152. EAX, EBX, ECX, and EDX may be modified
  38153. all other flags (except IF) may be modified
  38154. Notes: this function may require up to 1024 byte of stack; it will not enable
  38155. interrupts if they were disabled before making the call
  38156. the meanings of BL and BH on entry were exchanged between the initial
  38157. drafts of the specification and final implementation
  38158. SeeAlso: AX=B10Ah,AX=B10Ah/SF=1042h,AX=B10Ah/SF=8086h
  38159. Format of AMD Am53C974A PC-SCSI PCI configuration data:
  38160. Offset Size Description (Table 00925)
  38161. 00h 64 BYTEs header (see #00878)
  38162. (vendor ID 1022h, device ID 2020h)
  38163. 10h DWORD I/O base address (see PORT xxxxh"Am53C974A")
  38164. 40h 16 BYTEs scratch registers
  38165. (used by AMD's PC-SCSI drivers as follows:
  38166. 40h/41h SCSI configuration register 0 (see #00926,#00927)
  38167. ...
  38168. 4Eh/4Fh SCSI configuration register 7)
  38169. SeeAlso: #00747
  38170. Bitfields for AMD Am53C974A Target Device Configuration Register:
  38171. Bit(s) Description (Table 00926)
  38172. 15-14 reserved
  38173. 13 "FSCSI" Fast SCSI drive is present
  38174. 12-8 "SPD" synchronous period
  38175. 7-4 synchronous offset (0 = asynchronous transfers)
  38176. 3-1 SCSI bus status
  38177. 0 target device is present and active
  38178. if 0, all other bits must be cleared to zero for target devices
  38179. SeeAlso: #00925,#00927
  38180. Bitfields for AMD Am53C974A Host Configuration Register:
  38181. Bit(s) Description (Table 00927)
  38182. 15-9 reserved
  38183. 8 SCSI bus has been reset
  38184. 7 starting BIOS number (bits 6-4) is valid
  38185. 6-4 starting BIOS number (000 = BIOS drive 80h, 001 = drive 81h, etc)
  38186. 3 this device is a SCSI host
  38187. 2 protected-mode driver initialized
  38188. 1 real-mode driver initialized
  38189. 0 target device present
  38190. =0 indicates that this is a host if bit 3 is set
  38191. SeeAlso: #00925,#00926
  38192. --------X-1AB10ASF1042-----------------------
  38193. INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (PC Technology devices)
  38194. AX = B10Ah subfn 1042h
  38195. BH = bus number
  38196. BL = device/function number (bits 7-3 device, bits 2-0 function)
  38197. DI = register number (0000h-00FFh) (see #00878)
  38198. Return: CF clear if successful
  38199. ECX = dword read
  38200. CF set on error
  38201. AH = status (00h,87h) (see #00729)
  38202. EAX, EBX, ECX, and EDX may be modified
  38203. all other flags (except IF) may be modified
  38204. Notes: this function may require up to 1024 byte of stack; it will not enable
  38205. interrupts if they were disabled before making the call
  38206. the meanings of BL and BH on entry were exchanged between the initial
  38207. drafts of the specification and final implementation
  38208. SeeAlso: AX=B10Ah,AX=B10Ah/SF=1022h,AX=B10Ah/SF=1045h,AX=B10Ah/SF=8086h
  38209. Format of PCI Configuration data for PC Technology RZ-1000 EIDE controller:
  38210. Offset Size Description (Table 00928)
  38211. 00h 64 BYTEs header (see #00878)
  38212. (vendor ID 1042h, device ID 1000h)
  38213. 10h DWORD base address for controller I/O registers
  38214. (set to 01F1h for primary controller, 0171h for secondary)
  38215. 14h DWORD base address for controller digital I/O port
  38216. (set to 03F5h for primary, 0375h for secondary)
  38217. 40h DWORD ???
  38218. bits 7-1: ???
  38219. bit 13: read-ahead mode enabled
  38220. (Read-Ahead is buggy on original RZ-1000, and is
  38221. thus typically disabled by clearing this bit)
  38222. bit 16: ???
  38223. 44h DWORD ???
  38224. 48h 8 BYTEs ???
  38225. 50h 176 BYTEs unused???
  38226. --------X-1AB10ASF1045-----------------------
  38227. INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (OPTi devices)
  38228. AX = B10Ah subfn 1045h
  38229. BH = bus number
  38230. BL = device/function number (bits 7-3 device, bits 2-0 function)
  38231. DI = register number (0000h-00FFh) (see #00878)
  38232. Return: CF clear if successful
  38233. ECX = dword read
  38234. CF set on error
  38235. AH = status (00h,87h) (see #00729)
  38236. EAX, EBX, ECX, and EDX may be modified
  38237. all other flags (except IF) may be modified
  38238. Notes: this function may require up to 1024 byte of stack; it will not enable
  38239. interrupts if they were disabled before making the call
  38240. the meanings of BL and BH on entry were exchanged between the initial
  38241. drafts of the specification and final implementation
  38242. SeeAlso: AX=B10Ah,AX=B10Ah/SF=1042h,AX=B10Ah/SF=1066h
  38243. Format of PCI Configuration data for OPTi 82C750 Vendetta (device 0):
  38244. Offset Size Description (Table 00929)
  38245. 00h 64 BYTEs header (see #00878)
  38246. (vendor ID 1045h, device ID C567h)
  38247. 40h DWORD memory control (see #00930)
  38248. 44h 6 BYTEs data path control (see #00931)
  38249. 4Ah WORD reserved
  38250. 4Ch BYTE SDRAM SDRAS/SDCAS mux control (see #00932)
  38251. 4Dh BYTE SDRAM select (see #00933)
  38252. 4Eh BYTE ECC test / I2C control (see #00934)
  38253. 4Fh BYTE ECC test data
  38254. 50h DWORD ECC control (see #00935)
  38255. 54h WORD SDRAM select (see #00936)
  38256. 56h BYTE data path control / EDO X-2-2-2 writes (see #00937)
  38257. 57h BYTE reserved
  38258. 58h DWORD ECC reporting (see #00938)
  38259. 5Ch 164 BYTEs reserved
  38260. SeeAlso: #00878,#00939,#00965
  38261. Bitfields for OPTi 82C750 Vendetta (device 0) memory control:
  38262. Bit(s) Description (Table 00930)
  38263. 31-30 reserved
  38264. 29 reserved (1)
  38265. 28-18 reserved
  38266. 17 reserved (1)
  38267. 16 HA drive-back during CPU memory access enable
  38268. 15-6 PCI video frame buffer write posting hole
  38269. 5-4 reserved
  38270. 3 PCI bus write post disable
  38271. 2 video frame buffer write post (posting enabled if bit 2 = bit 3)
  38272. 1 video memory write post(posting enabled if bit 1 = bit 3)
  38273. 0 I/O cycle write post enable
  38274. SeeAlso: #00929,#00931
  38275. Bitfields for OPTi 82C750 Vendetta (device 0) data path control:
  38276. Bit(s) Description (Table 00931)
  38277. 41-47 reserved
  38278. 40 DTY pin suspend enable
  38279. 39-38 reserved
  38280. 37 SDRAM refresh 0 sized bank RAS# disable
  38281. 36 SDRAM control signal stepping enable
  38282. 35 reserved
  38283. 34-32 SDRAM mode
  38284. 000 = normal
  38285. 001 = NOP enable
  38286. 010 = precharge all banks
  38287. 011 = mode register enable
  38288. 100 = CBR cycle enable
  38289. 101-111 = reserved
  38290. 31 SDRAM memory read access enable
  38291. 30 CPU-to-PCI FIFO clear enable
  38292. 29 PCI-to-DRAM FIFO clear enable
  38293. 28 CPU-to-DRAM FIFO clear enable
  38294. 27 82C750 register write disable
  38295. 26-15 reserved
  38296. 14 PCI master/ECC generate NMI disable
  38297. 13-12 reserved (1)
  38298. 11 memory parity checking enable
  38299. 10 reserved
  38300. 9 CPU DRAM write byte merge enable
  38301. 8 MD bus pull-up resistor disable
  38302. 7 PCI CPU write 6DW FIFO enable
  38303. 6 DRAM PCI read 24DW FIFO enable
  38304. 5 DRAM PCI write 24DW FIFO enable
  38305. 4 DRAM CPU write 8QW FIFO enable
  38306. 3 82C750 memory read access (0 = SDRAM, 1 = reserved)
  38307. 2-1 reserved
  38308. 0 82C750 memory read access (0 = FP mode, 1 = EDO/SDRAM)
  38309. SeeAlso: #00929
  38310. Bitfields for OPTi 82C750 Vendetta (device 0) SDRAM SDRAS/SDCAS mux control:
  38311. Bit(s) Description (Table 00932)
  38312. 7 MCACHE enable
  38313. 6 GWE#/BWE# (1)
  38314. 5 reserved (read-only)
  38315. 4 reserved (1)
  38316. 3 BOFF# CPU status latch enable
  38317. 2 reserved (1) (SDRAS# & SDCAS#)
  38318. 1 reserved (1) (BA1 & BA0)
  38319. 0 pin mux
  38320. 0 = RAS4# & RAS5#
  38321. 1 = SDRAS# & SDCAS#
  38322. SeeAlso: #00929
  38323. Bitfields for OPTi 82C750 Vendetta (device 0) SDRAM select:
  38324. Bit(s) Description (Table 00933)
  38325. 7-6 reserved
  38326. 5 bank 5 enable
  38327. 4 bank 4 enable
  38328. 3-0 reserved
  38329. SeeAlso: #00929
  38330. Bitfields for OPTi 82C750 Vendetta (device 0) ECC test / I2C control:
  38331. Bit(s) Description (Table 00934)
  38332. 7 ECC test mode enable
  38333. 6 reserved
  38334. 5 reserved (1 if SDRAM enabled)
  38335. 4 I2C data output read-back (read-only)
  38336. 3 I2C clock output read-back (read-only)
  38337. 2 I2C data output (refer to file I2C.LST for more details)
  38338. 1 I2C clock output
  38339. 0 I2C control enable
  38340. SeeAlso: #00929,I2C A0h,#00935
  38341. Bitfields for OPTi 82C750 Vendetta (device 0) ECC control:
  38342. Bit(s) Description (Table 00935)
  38343. 31-13 upper 19 bits of error address
  38344. 12-5 syndrome byte for reported error
  38345. 4 non-correctable error
  38346. 3 single-bit error
  38347. 2 nibble error
  38348. 1 ECC error report enable
  38349. 0 ECC data path enable
  38350. SeeAlso: #00929,#00934
  38351. Bitfields for OPTi 82C750 Vendetta (device 0) SDRAM select:
  38352. Bit(s) Description (Table 00936)
  38353. 15 SDWE# stepping enable
  38354. 14 reserved (1) (SDRAM)
  38355. 13-12 reserved
  38356. 11-6 bank 5-0 SDRAM technology
  38357. 0 = 16 Mb
  38358. 1 = 64 Mb
  38359. 5-0 bank 5-0 SDRAM timing
  38360. 0 = leadoff 7/6
  38361. 1 = leadoff 8/7
  38362. SeeAlso: #00929
  38363. Bitfields for OPTi 82C750 Vendetta (device 0) data path control / EDO X-2-2-2:
  38364. Bit(s) Description (Table 00937)
  38365. 7 CPU-to-DRAM FIFO enable
  38366. 6 1 CLK CAS enable
  38367. 5-0 RAS5#-RAS0# X-2-2-2 write enable
  38368. (CPU-to-DRAM FIFO, DRAM write post, and cache readaround write must
  38369. be enabled)
  38370. SeeAlso: #00929
  38371. Bitfields for OPTi 82C750 Vendetta (device 0) ECC reporting:
  38372. Bit(s) Description (Table 00938)
  38373. 31-26 reserved
  38374. 25-16 single-bit error counter
  38375. 15 reserved
  38376. 14 delayed write enable
  38377. 13-4 single-bit error limit
  38378. 3 correctable error reporting (0 = NMI, 1 = SMI)
  38379. 2 single-bit error counter enable (disabling resets counter)
  38380. 1 error reporting method (0 = NMI, 1 = SMI)
  38381. 0 NMI/SMI generate disable
  38382. SeeAlso: #00929
  38383. Format of PCI Configuration data for OPTi 82C750 Vendetta (device 1):
  38384. Offset Size Description (Table 00939)
  38385. 00h 64 BYTEs header (see #00824)
  38386. (vendor ID 1045h, device ID C568h)
  38387. 40h WORD keyboard control (see #00940)
  38388. 42h WORD interrupt control (see #00941)
  38389. 44h BYTE pin functionality 1 (see #00942)
  38390. 45h BYTE reserved
  38391. 46h WORD cycle control (see #00943)
  38392. 48h WORD pin functionality 2 (see #00944)
  38393. 4Ah WORD ROMCS# range control (see #00945)
  38394. 4Ch BYTE miscellaneous control 1 (see #00946)
  38395. 4Dh BYTE reserved
  38396. 4Eh BYTE miscellaneous control 2 (see #00947)
  38397. 4Fh BYTE miscellaneous control 3 (see #00948)
  38398. 50h WORD interrupt trigger control (see #00949)
  38399. 52h WORD interrupt multiplexing control (see #00950)
  38400. 54h WORD PCI master control (see #00951)
  38401. 56h WORD serial interrupt source (see #00952)
  38402. 58h BYTE serial interrupt mode control (see #00953)
  38403. 59h BYTE pin functionality 3 (see #00954)
  38404. 5Ah WORD distributed DMA master base address
  38405. 5Ch BYTE distributed DMA control (see #00955)
  38406. 5Dh 3 BYTEs reserved
  38407. 60h BYTE USB interrupt control register (see #00956)
  38408. 61h BYTE PCI reset control (see #00957)
  38409. 62h BYTE emulation control (see #00958)
  38410. 63h BYTE PCI retry control (see #00959)
  38411. 64h 153 BYTEs reserved
  38412. FDh BYTE SMI control
  38413. FEh BYTE stop grant cycle control
  38414. FFh BYTE host memory parity error
  38415. SeeAlso: #00878,#00929,#00965
  38416. Bitfields for OPTi 82C750 Vendetta (device 1) keyboard control:
  38417. Bit(s) Description (Table 00940)
  38418. 15 keyboard port read (read-only)
  38419. 14 keyboard port write (read-only)
  38420. 13 keyboard RESET CPUINIT
  38421. 0 = generate immediately
  38422. 1 = wait for halt
  38423. 12 keyboard emulation disable
  38424. 11-9 PIRQ3# IRQ generation
  38425. 000 = use interrupt trigger control register (offset 50h)
  38426. 001 = IRQ5
  38427. 010-101 = IRQ9-IRQ12
  38428. 110-111 = IRQ14-IRQ15
  38429. 8-6 PIRQ2# IRQ generation
  38430. 5-3 PIRQ1# IRQ generation
  38431. 2-0 PIRQ0# IRQ generation
  38432. SeeAlso: #00939,#00941
  38433. Bitfields for OPTi 82C750 Vendetta (device 1) interrupt control:
  38434. Bit(s) Description (Table 00941)
  38435. 15 ISA IRQ14 blocking enable
  38436. 14 ISA IRQ15 blocking enable
  38437. 13 DMA/ISA master to preempt PCI master enable
  38438. 12 PCI priority is fixed instead of rotating
  38439. 11-10 back-to-back ISA I/O delay
  38440. 00 = 3 ATCLKs
  38441. 01 = 12 ATCLKs
  38442. 10 = no delay
  38443. 11 = delay all by 12 ATCLKs
  38444. 9 PCI master ISA device access disable
  38445. 8 ISA bus control signals for memory access >16M and I/O access >64K
  38446. disable
  38447. 7-6 IRQ15-IRQ14 triggering (0 = edge, 1 = level)
  38448. 5-2 IRQ12-IRQ9 triggering (0 = edge, 1 = level)
  38449. 1 IRQ 5 triggering (0 = edge, 1 = level)
  38450. 0 pin AE16 functionality
  38451. 0 = DREQ6
  38452. 1 = EPMI0#
  38453. SeeAlso: #00939,#00940
  38454. Bitfields for OPTi 82C750 Vendetta (device 1) pin functionality 1:
  38455. Bit(s) Description (Table 00942)
  38456. 7-6 pin AC15 functionality
  38457. 00-01 = controlled by bits 1-0
  38458. 10 = DACK7#
  38459. 11 = reserved
  38460. 5-4 pin AE15 functionality
  38461. 00-01 = controlled by bits 1-0
  38462. 10 = DACK6#
  38463. 11 = reserved
  38464. 3-2 pin AF15 functionality
  38465. 00-01 = controlled by bits 1-0
  38466. 10 = DACK5#
  38467. 11 = reserved
  38468. 1-0 DACK group-wise programmable pin functionalities
  38469. 00 = DACK3#-DACK0#
  38470. 01 = DACK7#-DACK5#, DACK3#, DACK1#, DACK0#
  38471. 10 = reserved
  38472. 11 = EDACK2#-EDACK0#, EDACKEN#, PIRQ3#, PIRQ2#
  38473. SeeAlso: #00939
  38474. Bitfields for OPTi 82C750 Vendetta (device 1) cycle control:
  38475. Bit(s) Description (Table 00943)
  38476. 15 ISA bus ROM write enable
  38477. 14 hidden refresh enable
  38478. 13-12 ATCLK select
  38479. 00 = LCLK/4
  38480. 01 = LCLK/3
  38481. 10 = LCLK/2
  38482. 11 = LCLK
  38483. 11 CPU master to PCI slave write
  38484. 0 = 1 LCLK
  38485. 1 = 0 LCLK
  38486. 10-8 PCI master to PCI master preempt timer
  38487. 000 = no preempt
  38488. 001 = 260 LCLKs
  38489. 010 = 132 LCLKs
  38490. 011 = 68 LCLKs
  38491. 100 = 36 LCLKs
  38492. 101 = 20 LCLKs
  38493. 110 = 12 LCLKs
  38494. 111 = 5 LCLKs
  38495. 7 reserved
  38496. 6 XDIR achieve
  38497. 0 = accessing ROM, keyboard controller, RTC
  38498. 1 = accessing ROM, NVRAM
  38499. 5 PERR# to SERR# conversion enable
  38500. 4 address parity checking enable
  38501. 3 target abort SERR# generation enable
  38502. 2 fast back-to-back enable
  38503. 1 sample point decoding
  38504. 0 = slow
  38505. 1 = subtractive
  38506. 0 reserved
  38507. SeeAlso: #00939
  38508. Bitfields for OPTi 82C750 Vendetta (device 1) pin functionality 2:
  38509. Bit(s) Description (Table 00944)
  38510. 15 pin AF18 functionality (0 = IRQ15, 1 = reserved)
  38511. 14-13 pin AE19 functionality (00-01 = IRQ12, 10-11 = reserved)
  38512. 12 pin AD20 functionality (0 = IRQ10, 1 = MIRQ10/12)
  38513. 11 pin AE21 functionality (0 = IRQ6, 1 = reserved)
  38514. 10 pin AD22 functionality (0 = IRQ4, 1 = MIRQ4/6)
  38515. 9-8 pin AD16 functionality (00 = DREQ7, 01 = EPMI3#, 1x = reserved)
  38516. 7-6 pin AD17 functionality
  38517. 00 = DREQ3
  38518. 01 = DREQ3/7
  38519. 10 = DREQ7
  38520. 11 = reserved
  38521. 5-4 pin AD18 functionality
  38522. 00 = DREQ1
  38523. 01 = DREQ1/6
  38524. 10 = DREQ6
  38525. 11 = reserved
  38526. 3-2 pin AE18 functionality
  38527. 00 = DREQ0
  38528. 01 = DREQ0/5
  38529. 10 = DREQ5
  38530. 11 = reserved
  38531. 1-0 pin T23 functionality (0x = PREQ1#, 1x = reserved)
  38532. SeeAlso: #00939
  38533. Bitfields for OPTi 82C750 Vendetta (device 1) ROMCS# range control:
  38534. Bit(s) Description (Table 00945)
  38535. 15 FFFF8000h-FFFFFFFFh ROMCS# disable
  38536. 14 FFFF0000h-FFFF7FFFh ROMCS# disable
  38537. 13 FFFE8000h-FFFEFFFFh ROMCS# enable
  38538. 12 FFFE0000h-FFFE7FFFh ROMCS# enable
  38539. 11 FFFD8000h-FFFDFFFFh ROMCS# enable
  38540. 10 FFFD0000h-FFFD7FFFh ROMCS# enable
  38541. 9 FFFC8000h-FFFCFFFFh ROMCS# enable
  38542. 8 FFFC0000h-FFFC7FFFh ROMCS# enable
  38543. 7 F8000h-FFFFFh ROMCS# disable
  38544. 6 F0000h-F7FFFh ROMCS# disable
  38545. 5 E8000h-EFFFFh ROMCS# enable
  38546. 4 E0000h-E7FFFh ROMCS# enable
  38547. 3 D8000h-DFFFFh ROMCS# enable
  38548. 2 D0000h-D7FFFh ROMCS# enable
  38549. 1 C8000h-CFFFFh ROMCS# enable
  38550. 0 C0000h-C7FFFh ROMCS# enable
  38551. SeeAlso: #00939
  38552. Bitfields for OPTi 82C750 Vendetta (device 1) miscellaneous control 1:
  38553. Bit(s) Description (Table 00946)
  38554. 7-5 reserved
  38555. 4 game port/MPU-401 enable
  38556. 3 PREQ4#/PGNT4# mux (0 = SDA2/GP3, 1 = PREQ4#/PGNT4#)
  38557. 2 DACK5# 1-to-0 transition enable
  38558. 1-0 reserved
  38559. SeeAlso: #00939,#00947,#00948
  38560. Bitfields for OPTi 82C750 Vendetta (device 1) miscellaneous control 2:
  38561. Bit(s) Description (Table 00947)
  38562. 7-4 reserved
  38563. 3 pipeline byte merge enable
  38564. 2 EOP configuration (0 = output, 1 = input)
  38565. 1 byte merge enable
  38566. 0 ISA master data swap disable
  38567. SeeAlso: #00939,#00946,#00948
  38568. Bitfields for OPTi 82C750 Vendetta (device 1) miscellaneous control 3:
  38569. Bit(s) Description (Table 00948)
  38570. 7 pin AB15 functionality
  38571. 0 = DACK5#
  38572. 1 = PPWRL+PPWRL2
  38573. 6 IDE functionality support enable
  38574. 5 reserved (read-only)
  38575. 4 ISA bus AT command 1 wait state extension disable
  38576. 3-2 reserved
  38577. 1 pin AE14 functionality
  38578. 0 = controlled by offset 44h bits 1-0
  38579. 1 = GPCS2#
  38580. 0 reserved
  38581. SeeAlso: #00939,#00946,#00947
  38582. Bitfields for OPTi 82C750 Vendetta (device 1) interrupt trigger control:
  38583. Bit(s) Description (Table 00949)
  38584. 15 reserved (1)
  38585. 14 reserved
  38586. 13 pin AD15 functionality (0 = DACK2#, 1 = GPCS2#)
  38587. 12-11 reserved
  38588. 10 IRQ3 triggering (0 = edge, 1 = level)
  38589. 9 IRQ4 triggering (0 = edge, 1 = level)
  38590. 8 IRQ7 triggering (0 = edge, 1 = level)
  38591. 7-6 IRQ generation when PIRQ3# triggered
  38592. 00 = disable
  38593. 01 = IRQ3
  38594. 10 = IRQ4
  38595. 11 = IRQ7
  38596. 5-4 IRQ generation when PIRQ2# triggered
  38597. 00 = disable
  38598. 01 = IRQ3
  38599. 10 = IRQ4
  38600. 11 = IRQ7
  38601. 3-2 IRQ generation when PIRQ1# triggered
  38602. 00 = disable
  38603. 01 = IRQ3
  38604. 10 = IRQ4
  38605. 11 = IRQ7
  38606. 1-0 IRQ generation when PIRQ0# triggered
  38607. 00 = disable
  38608. 01 = IRQ3
  38609. 10 = IRQ4
  38610. 11 = IRQ7
  38611. SeeAlso: #00939,#00950
  38612. Bitfields for OPTi 82C750 Vendetta (device 1) interrupt multiplexing control:
  38613. Bit(s) Description (Table 00950)
  38614. 15 pin functionality
  38615. 0 = AE22:IRQ3, AF21:IRQ5, AE21:IRQ6, AD21:IRQ7, AE20:IRQ9, AF19:IRQ11
  38616. 1 = AE22:MIRQ3/5, AF21:MIRQ7/9, AE21:MIRQ11/15,
  38617. AD21:EPMI1#, AE20:EPMI2#, AF19:GMIRQ
  38618. 14 pin R22 functionality (0 = PREQ2#, 1 = EPMI0#)
  38619. 13 IRQ1 latching enable
  38620. 12 IRQ12 latching enable
  38621. 11 DACKEN# status (0 = active low, 1 = active high)
  38622. 10 system bus owned by external device
  38623. 9 flash ROM locking enable
  38624. 8 reserved
  38625. 7 IRQ6 triggering (0 = edge, 1 = level)
  38626. 6-3 IRQ generation when GMIRQ triggered
  38627. 0000 = disabled
  38628. 0001-0010 = reserved
  38629. 0011-0111 = IRQ3-IRQ7
  38630. 1000 = reserved
  38631. 1001-1100 = IRQ9-IRQ12
  38632. 1101 = reserved
  38633. 1110-1111 = IRQ14-IRQ15
  38634. 2 reserved (1)
  38635. 1 priority scheme enable
  38636. 0 concurrent refresh and IDE cycle enable
  38637. SeeAlso: #00939,#00949
  38638. Bitfields for OPTi 82C750 Vendetta (device 1) PCI master control:
  38639. Bit(s) Description (Table 00951)
  38640. 15-12 reserved
  38641. 11 interrupt request register recover enable
  38642. 10 DMA address and counter (0 = current, 1 = base)
  38643. 9 CPU/PCI master access ISA cycle retry enable
  38644. 8 CPU-to-PCI cycle AHOLD signal use enable
  38645. (used only when bit 4 = 1)
  38646. 7 PCI master X-1-1-1 write enable
  38647. 6 PCI master X-1-1-1 read enable
  38648. 5 concurrent PCI master/IDE enable
  38649. 4 new AHOLD protocol enable
  38650. 3 PCI master non-contiguous byte enable
  38651. 2 reserved
  38652. 1 simultaneous hardware PMU and IDE function operation enable
  38653. 0 ISA refresh disable
  38654. SeeAlso: #00939
  38655. Bitfields for OPTi 82C750 Vendetta (device 1) serial interrupt source:
  38656. Bit(s) Description (Table 00952)
  38657. 15-3 IRQ15-IRQ3 interrupt resource (0 = ISA, 1 = serial interrupt)
  38658. 2 SMI#, IOCHK#, PCIRQ3#-PCIRQ0# interrupt resource
  38659. 0 = ISA
  38660. 1 = serial interrupt
  38661. 1-0 IRQ1-IRQ0 interrupt resource (0 = ISA, 1 = serial interrupt)
  38662. SeeAlso: #00939,#00953
  38663. Bitfields for OPTi 82C750 Vendetta (device 1) serial interrupt mode control:
  38664. Bit(s) Description (Table 00953)
  38665. 7-6 serial interrupt control mode
  38666. 00 = continuous
  38667. 01 = idle
  38668. 1x = active
  38669. 5 reserved
  38670. 4 data frame slot support
  38671. 0 = 17 slots (IRQ15-IRQ3, IRQ1-IRQ0, SMI#, IOCHK#)
  38672. 1 = 21 slots (IRQ15-IRQ3, IRQ1-IRQ0, SMI#, IOCHK#, PCIRQ3#-PCIRQ0#)
  38673. 3-2 CPU access PCI priority
  38674. 00 = lowest
  38675. 01 = higher after 4 PCI master grants
  38676. 10 = higher after 2 PCI master grants
  38677. 11 = higher after 3 PCI master grants
  38678. 1-0 serial interrupt start frame pulse width in continuous/active mode
  38679. 00 = 4/3 CLK
  38680. 01 = 6/5 CLK
  38681. 10 = 8/7 CLK
  38682. 11 = reserved
  38683. SeeAlso: #00939,#00952
  38684. Bitfields for OPTi 82C750 Vendetta (device 1) pin functionality 3:
  38685. Bit(s) Description (Table 00954)
  38686. 7 PCI arbitration time-out mode enable
  38687. 6 0 wait state for CPU I/O access enable
  38688. 5 SMI output disable
  38689. 4 CPU request for PCI bus (0 = enabled, 1 = reserved)
  38690. 3 reserved
  38691. 2 refresh preemption disable
  38692. 1-0 reserved
  38693. SeeAlso: #00939
  38694. Bitfields for OPTi 82C750 Vendetta (device 1) distributed DMA control:
  38695. Bit(s) Description (Table 00955)
  38696. 7-5 channel 7-5 enable
  38697. 4-1 channel 3-0 enable
  38698. 0 DDMA enable
  38699. SeeAlso: #00939
  38700. Bitfields for OPTi 82C750 Vendetta (device 1) USB interrupt control register:
  38701. Bit(s) Description (Table 00956)
  38702. 7 reserved
  38703. 6-5 buffered DMA control
  38704. 00 = original DMA with old protocol
  38705. 01 = reserved
  38706. 10 = original DMA with PCI master capability
  38707. 11 = buffered DMA enable
  38708. 4 reserved
  38709. 3-0 IRQ generation when USBIRQ triggered
  38710. 0000 = disabled
  38711. 0001-0010 = reserved
  38712. 0011-0111 = IRQ3-IRQ7
  38713. 1000 = reserved
  38714. 1001-1100 = IRQ9-IRQ12
  38715. 1101 = reserved
  38716. 1110-1111 = IRQ14-IRQ15
  38717. SeeAlso: #00939
  38718. Bitfields for OPTi 82C750 Vendetta (device 1) PCI reset control:
  38719. Bit(s) Description (Table 00957)
  38720. 7 PCI soft reset generate enable
  38721. 6 PCI slave demand mode buffered DMA retry fix enable
  38722. 5 IORDY# PCI master delay fix enable
  38723. 4 ISA command deassertion IOCHRDY delay
  38724. 0 = <1 ATCLK
  38725. 1 = >=1 ATCLK
  38726. 3-2 buffered DMA fix (00 = disable, 11 = enable)
  38727. 1 reserved
  38728. 0 ISA master synchronization (1)
  38729. SeeAlso: #00939
  38730. Bitfields for OPTi 82C750 Vendetta (device 1) emulation control:
  38731. Bit(s) Description (Table 00958)
  38732. 7 PCIRST# disable
  38733. 6 SDA2 muxed with XDIR (0 = XDIR, 1 = SDA2)
  38734. 5 SPKR muxed with MIDI1 (0 = MIDI1, 1 = SPKR)
  38735. 4 audio mux (0 = MP7-MP0, DACK)
  38736. 3 audio module enable
  38737. 2 ATA-33 IDE pin mux scheme (0 = old, 1 = new)
  38738. 1 REFRESH priority (0 = high, 1 = lowest)
  38739. 0 port 92h emulation disable
  38740. SeeAlso: #00939,PORT 0092h
  38741. Bitfields for OPTi 82C750 Vendetta (device 1) PCI retry control:
  38742. Bit(s) Description (Table 00959)
  38743. 7-2 reserved
  38744. 1 reserved (1)
  38745. 0 ISA slave PCI master retry
  38746. 0 = no change
  38747. 1 = generate BOFF#
  38748. SeeAlso: #00939
  38749. Format of PCI Configuration data for OPTi 82C750 Vendetta (IDE controller):
  38750. Offset Size Description (Table 00960)
  38751. 00h 64 BYTEs header (see #00824)
  38752. (vendor ID 1045h, device ID C621h)
  38753. 40h BYTE IDE initialization control (see #00961)
  38754. 41h BYTE reserved
  38755. 42h BYTE IDE enhanced feature (see #00962)
  38756. 43h BYTE IDE enhanced mode (see #00963)
  38757. 44h WORD ultra DMA mode select (see #00964)
  38758. 46h 186 BYTEs reserved
  38759. Bitfields for OPTi 82C750 Vendetta (IDE Controller) IDE initialization control:
  38760. Bit(s) Description (Table 00961)
  38761. 7-6 bus master IDE PCI bus request when FIFO filled with
  38762. 00 = 32 bytes (early request disabled)
  38763. 01 = 30 bytes
  38764. 10 = 28 bytes
  38765. 11 = 26 bytes
  38766. 5 reserved (1)
  38767. 4 reserved
  38768. 3 secondary IDE disable
  38769. 2 I/O addresses relocatable
  38770. 1-0 IDE device default cycle time
  38771. 00 = >=600ns (PIO mode 0)
  38772. 01 = >=383ns (PIO mode 2)
  38773. 10 = >=240ns (PIO mode 1)
  38774. 11 = >=180ns (PIO mode 3)
  38775. SeeAlso: #00960
  38776. Bitfields for OPTi 82C750 Vendetta (IDE Controller) IDE enhanced feature:
  38777. Bit(s) Description (Table 00962)
  38778. 7 reserved
  38779. 6 IDE write concurrency enable
  38780. 5 slave IDE FIFO to ISA bus preemption disable
  38781. 4 IDE arbiter PCI/IDE concurrency support enable
  38782. 3 PCI memory commands enable
  38783. 2 PCI master IDE and IDE cycle concurrency enable
  38784. 1 PCI master X-1-1-1 MIDE enable
  38785. 0 reserved
  38786. SeeAlso: #00960,#00963
  38787. Bitfields for OPTi 82C750 Vendetta (IDE Controller) IDE enhanced mode:
  38788. Bit(s) Description (Table 00963)
  38789. 7-6 secondary IDE drive 1 enhanced mode
  38790. 00 = disabled
  38791. 01 = command recovery in 1 LCLK
  38792. 10 = command recovery in 0 LCLK
  38793. 11 = reserved
  38794. 5-4 secondary IDE drive 0 enhanced mode
  38795. 00 = disabled
  38796. 01 = command recovery in 1 LCLK
  38797. 10 = command recovery in 0 LCLK
  38798. 11 = reserved
  38799. 3-2 primary IDE drive 1 enhanced mode
  38800. 00 = disabled
  38801. 01 = command recovery in 1 LCLK
  38802. 10 = command recovery in 0 LCLK
  38803. 11 = reserved
  38804. 1-0 primary IDE drive 0 enhanced mode
  38805. 00 = disabled
  38806. 01 = command recovery in 1 LCLK
  38807. 10 = command recovery in 0 LCLK
  38808. 11 = reserved
  38809. SeeAlso: #00960,#00963
  38810. Bitfields for OPTi 82C750 Vendetta (IDE Controller) ultra DMA mode select:
  38811. Bit(s) Description (Table 00964)
  38812. 15 primary IDE disable
  38813. 14-12 reserved
  38814. 11-10 secondary IDE drive 1 ultra DMA mode
  38815. 00 = mode 0
  38816. 01 = mode 1
  38817. 10 = mode 2
  38818. 11 = reserved
  38819. 9-8 secondary IDE drive 0 ultra DMA mode (same values as bits 11-10)
  38820. 7-6 primary IDE drive 1 ultra DMA mode (same values as bits 11-10)
  38821. 5-4 primary IDE drive 0 ultra DMA mode (same values as bits 11-10)
  38822. 3 secondary IDE drive 1 ultra DMA 33 enable
  38823. 2 secondary IDE drive 0 ultra DMA 33 enable
  38824. 1 primary IDE drive 1 ultra DMA 33 enable
  38825. 0 primary IDE drive 0 ultra DMA 33 enable
  38826. SeeAlso: #00960
  38827. Format of PCI Configuration data for OPTi 82C861/82C871 PCI-to-USB Bus Bridge:
  38828. Offset Size Description (Table 00965)
  38829. 00h 64 BYTEs header (see #00878)
  38830. (vendor ID 1045h, device ID C861h)
  38831. 40h 4 BYTEs reserved for testing
  38832. 44h 10 BYTEs reserved
  38833. 4Eh BYTE I2C control
  38834. bits 7-5: reserved
  38835. bit 4: I2C data output read-back (read-only)
  38836. bit 3: I2C clock output read-back (read-only)
  38837. bit 2: I2C data output
  38838. bit 1: I2C clock output
  38839. bit 0: I2C control enable
  38840. 4Fh BYTE reserved
  38841. 50h BYTE PCI host feature control
  38842. bits 7-4: reserved
  38843. bit 3: subsystem vendor ID register write disable
  38844. bit 2: CLKRUN# enable
  38845. bit 1: port 2 output disable
  38846. bit 0: port 1 output disable
  38847. 51h BYTE interrupt assignment
  38848. bit 7: host controller type
  38849. 0 = Viper-N+ (send 1 data phase on IRQ driveback)
  38850. 1 = FireStar (send 2 data phases on IRQ driveback)
  38851. bit 6: IRQ driveback enable
  38852. bit 5: reserved
  38853. bits 4-0: interrupt assignment
  38854. 00000 = disabled
  38855. 00001 = PCIRQ0# (default) to 00100 = PCIRQ3#,
  38856. 00101 = ACPI0 to 01111 = ACPI10
  38857. 10000 = IRQ0 to 11111 = IRQ15
  38858. 52h 2 BYTEs reserved
  38859. 54h DWORD IRQ driveback address
  38860. bits 1-0: reserved to 00 (read-only)
  38861. 58h 20 BYTEs reserved
  38862. 6Ch DWORD reserved (test mode enable)
  38863. SeeAlso: #00878,#00929,#00939
  38864. Format of OPTi FireLink/FireBlast Host Controller memory-mapped registers:
  38865. Offset Size Description (Table 00966)
  38866. 00h 256 BYTES standard OpenHCI registers (see #00902)
  38867. 100h DWORD "HceControl" emulation control (see #00967)
  38868. 104h DWORD "HceInput" legacy Input Buffer (see #00968)
  38869. 108h DWORD "HceOutput" legacy Output Buffer (see #00969)
  38870. 10Ch DWORD "HceStatus" legacy Status (see #00970)
  38871. SeeAlso: #00902,#00965
  38872. Bitfields for OPTi FireLink/FireBlast "HceControl" register:
  38873. Bit(s) Description (Table 00967)
  38874. 31-9 reserved
  38875. 8 A20 gate state
  38876. 7 IRQ12 active (write 1 to clear)
  38877. 6 IRQ1 active (write 1 to clear)
  38878. 5 A20 gate sequence
  38879. 1 D1h written to port 64h
  38880. 0 other than D1h written to port 64h
  38881. 4 external IRQ emulation enable
  38882. 3 IRQ enable
  38883. 2 character pending emulation enable
  38884. 1 (read-only) emulation interrupt condition
  38885. 0 emulation enable
  38886. SeeAlso: #00902,PORT 0064h
  38887. Bitfields for OPTi FireLink/FireBlast "HceInput" register:
  38888. Bit(s) Description (Table 00968)
  38889. 31-8 reserved
  38890. 7-0 data written to port 60h or 64h
  38891. SeeAlso: #00902,#00970,PORT 0060h,PORT 0064h
  38892. Bitfields for OPTi FireLink/FireBlast "HceOutput" register:
  38893. Bit(s) Description (Table 00969)
  38894. 31-8 reserved
  38895. 7-0 data to be returned on read of port 60h
  38896. SeeAlso: #00902,PORT 0060h
  38897. Bitfields for OPTi FireLink/FireBlast "HceStatus" register:
  38898. Bit(s) Description (Table 00970)
  38899. 31-8 reserved
  38900. 7 parity error
  38901. 6 time-out
  38902. 5 aux output full enable
  38903. 4 keyboard inhibit switch state
  38904. 0 inhibited
  38905. 1 not inhibited
  38906. 3 data written to port:
  38907. 0 port 60h
  38908. 1 port 64h
  38909. 2 warm/cold boot flag
  38910. 1 input full
  38911. 0 output full
  38912. SeeAlso: #00902,PORT 0060h,PORT 0064h
  38913. --------X-1AB10ASF1066-----------------------
  38914. INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (PicoPower devices)
  38915. AX = B10Ah subfn 1066h
  38916. BH = bus number
  38917. BL = device/function number (bits 7-3 device, bits 2-0 function)
  38918. DI = register number (0000h-00FFh) (see #00878)
  38919. Return: CF clear if successful
  38920. ECX = dword read
  38921. CF set on error
  38922. AH = status (00h,87h) (see #00729)
  38923. EAX, EBX, ECX, and EDX may be modified
  38924. all other flags (except IF) may be modified
  38925. Notes: this function may require up to 1024 byte of stack; it will not enable
  38926. interrupts if they were disabled before making the call
  38927. the meanings of BL and BH on entry were exchanged between the initial
  38928. drafts of the specification and final implementation
  38929. SeeAlso: AX=B10Ah,AX=B10Ah/SF=8086h
  38930. Format of PicoPower Vesuvius V3-LS ISA Bridge configuration:
  38931. Offset Size Description (Table 00971)
  38932. 00h 64 BYTEs header (see #00878)
  38933. (vendor ID 1066h, device ID 0002h or 8002h)
  38934. 40h WORD distributed DMA control register (see #00972)
  38935. 42h BYTE distributed DMA status register (see #00973)
  38936. 44h DWORD slave DMAC CH0 base register (see #00974)
  38937. 48h DWORD slave DMAC CH1 base register (see #00974)
  38938. 4Ch DWORD slave DMAC CH2 base register (see #00974)
  38939. 50h DWORD slave DMAC CH3 base register (see #00974)
  38940. 54h DWORD slave DMAC CH5 base register (see #00974)
  38941. 58h DWORD slave DMAC CH6 base register (see #00974)
  38942. 5Ch DWORD slave DMAC CH7 base register (see #00974)
  38943. 90h DWORD PCI-to-ISA bridge configuration register (see #00975)
  38944. 94h DWORD ISA memory address positive decode (see #00976)
  38945. 98h DWORD I/O address positive decode (see #00977)
  38946. 9Ch WORD I/O configuration address register (see #00978)
  38947. A0h DWORD programmable ISA I/O address decoder (see #00979)
  38948. A4h 6 DWORD programmable ISA range decoder registers 1-6 (see #00980)
  38949. C0h 64 BYTEs reserved
  38950. SeeAlso: #00773
  38951. Bitfields for PicoPower Vesuvius V3-LS distributed DMA control register:
  38952. Bit(s) Description (Table 00972)
  38953. 15-6 reserved
  38954. 5 (revision BB & later) secondary slave floppy disk distributed access
  38955. enable (if bit 1 = 0)
  38956. 4 (revision BB & later) secondary slave hard disk distributed access
  38957. enable (if bit 1 = 0)
  38958. 3 slave floppy drive port distributed access enable (if bit 1 = 0)
  38959. 2 slave hard drive port distributed access enable (if bit 1 = 0)
  38960. 1 distributed DMA mode
  38961. 0 = master
  38962. 1 = slave
  38963. 0 distributed DMA function enable
  38964. SeeAlso: #00971
  38965. Bitfields for PicoPower Vesuvius V3-LS distributed DMA status register:
  38966. Bit(s) Description (Table 00973)
  38967. 7-1 reserved
  38968. 0 DDMA status (write 1 to clear)
  38969. SeeAlso: #00971
  38970. Bitfields for PicoPower Vesuvius V3-LS slave DMAC CH0-7 base register:
  38971. Bit(s) Description (Table 00974)
  38972. 31-16 reserved (0)
  38973. 15-7 channel base address
  38974. 6-4 channel base address (hardwired to channel number)
  38975. 3 extended address (0)
  38976. 2-1 size (00 for channel 0-3, 01 for channel 5-7)
  38977. 0 channel enable
  38978. SeeAlso: #00971
  38979. Bitfields for PicoPower Vesuvius V3-LS PCI-to-ISA bridge configuration:
  38980. Bit(s) Description (Table 00975)
  38981. 31-15 reserved
  38982. 14 AD/SD/SA bus staggering enable
  38983. 13 ISA bridge PCI positive decode enable
  38984. 12 ISA bridge PCI subtractive decode disable
  38985. 11-10 reserved
  38986. 9 retry enable
  38987. 8 lock input enable
  38988. 7 SERR#/NMI status flag (write 1 to clear)
  38989. 6 PERR#/NMI status flag (write 1 to clear)
  38990. 5 SERR# triggers NMI enable
  38991. 4 PERR# triggers NMI enable
  38992. 3 reserved
  38993. 2-0 (revision BB and later) system configuration setting
  38994. SeeAlso: #00971
  38995. Bitfields for PicoPower Vesuvius V3-LS ISA memory address positive decode:
  38996. Bit(s) Description (Table 00976)
  38997. 31-9 reserved
  38998. 8 ISA memory A0000h-AFFFFh and FFA0000h-FFFAFFFFh decode enable
  38999. 7 ISA memory B0000h-BFFFFh and FFB0000h-FFFBFFFFh decode enable
  39000. 6 ISA memory C0000h-C7FFFh and FFC0000h-FFFC7FFFh decode enable
  39001. 5 ISA memory C8000h-CFFFFh and FFC8000h-FFFCFFFFh decode enable
  39002. 4 ISA memory D0000h-D7FFFh and FFD0000h-FFFD7FFFh decode enable
  39003. 3 ISA memory D8000h-DFFFFh and FFD8000h-FFFDFFFFh decode enable
  39004. 2 ISA memory E0000h-E7FFFh and FFE0000h-FFFE7FFFh decode enable
  39005. 1 ISA memory E8000h-EFFFFh and FFE8000h-FFFEFFFFh decode enable
  39006. 0 ISA memory F0000h-FFFFFh and FFF0000h-FFFFFFFFh decode enable
  39007. SeeAlso: #00971
  39008. Bitfields for PicoPower Vesuvius V3-LS I/O address positive decode:
  39009. Bit(s) Description (Table 00977)
  39010. 31-24 reserved
  39011. 23 (revision BB and later) I/O read 377h decode enable
  39012. 22 (revision BB and later) I/O read 3F7h decode enable
  39013. 21 PC NET (360h-36Fh) decode enable
  39014. 20 audio 5 (388h-38Bh) decode enable
  39015. 19 audio 4 (250h-25Fh) decode enable
  39016. 18 audio 3 (240h-24Fh) decode enable
  39017. 17 audio 2 (230h-23Fh) decode enable
  39018. 16 audio 1 (220h-22Fh) decode enable
  39019. 15 audio 0 (201h) decode enable
  39020. 14 (revision BB and later) ISA secondary floppy (370h-375h, 377h write)
  39021. decode enable
  39022. 13 (revision BB and later) ISA primary floppy (3F0h-3F5h, 3F7h write)
  39023. decode enable
  39024. 12 (revision BB and later) ISA secondary IDE (170h-177h, 376h) decode
  39025. enable
  39026. 11 (revision BB and later) ISA primary IDE (1F0h-1F7h, 3F6h) decode enable
  39027. 10 ISA LPT3 (3BCh-3BFh, 7BCh-7BEh) decode enable
  39028. 9 ISA LPT2 (278h-27Fh, 678h-67Ah) decode enable
  39029. 8 ISA LPT1 (378h-37Fh, 778h-77Ah) decode enable
  39030. 7 ISA COM4 (2E8h-2EFh) decode enable
  39031. 6 ISA COM3 (3E8h-3EFh) decode enable
  39032. 5 ISA COM2 (2F8h-2FFh) decode enable
  39033. 4 ISA COM1 (3F8h-3FFh) decode enable
  39034. 3 ISA system I/O (00h-FFh) decode enable
  39035. 2 configuration (24h/26h) decode enable
  39036. 1-0 reserved
  39037. SeeAlso: #00971
  39038. Bitfields for PicoPower Vesuvius V3-LS I/O configuration address register:
  39039. Bit(s) Description (Table 00978)
  39040. 15-10 reserved
  39041. 9-1 configuration I/O address
  39042. 0 configuration address register enable
  39043. SeeAlso: #00971
  39044. Bitfields for PicoPower Vesuvius V3-LS programmable ISA I/O address decoder:
  39045. Bit(s) Description (Table 00979)
  39046. 31-18 reserved
  39047. 17 ISA range decoder 6 read enable
  39048. 16 ISA range decoder 6 write enable
  39049. 15 ISA range decoder 6 type
  39050. 0 = memory
  39051. 1 = I/O
  39052. 14 ISA range decoder 5 read enable
  39053. 13 ISA range decoder 5 write enable
  39054. 12 ISA range decoder 5 type (same values as bit 15)
  39055. 11 ISA range decoder 4 read enable
  39056. 10 ISA range decoder 4 write enable
  39057. 9 ISA range decoder 4 type (same values as bit 15)
  39058. 8 ISA range decoder 3 read enable
  39059. 7 ISA range decoder 3 write enable
  39060. 6 ISA range decoder 3 type (same values as bit 15)
  39061. 5 ISA range decoder 2 read enable
  39062. 4 ISA range decoder 2 write enable
  39063. 3 ISA range decoder 2 type (same values as bit 15)
  39064. 2 ISA range decoder 1 read enable
  39065. 1 ISA range decoder 1 write enable
  39066. 0 ISA range decoder 1 type (same values as bit 15)
  39067. SeeAlso: #00971
  39068. Bitfields for PicoPower Vesuvius V3-LS programmable ISA range decoder 1:
  39069. Bit(s) Description (Table 00980)
  39070. 31-16 ISA address compare
  39071. 15-0 ISA device address (memory address bits 23-8, I/O address bits 15-0)
  39072. SeeAlso: #00971
  39073. --------X-1AB10ASF1066-----------------------
  39074. INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (Brooktree devices)
  39075. AX = B10Ah subfn 1066h
  39076. BH = bus number
  39077. BL = device/function number (bits 7-3 device, bits 2-0 function)
  39078. DI = register number (0000h-00FFh) (see #00878)
  39079. Return: CF clear if successful
  39080. ECX = dword read
  39081. CF set on error
  39082. AH = status (00h,87h) (see #00729)
  39083. EAX, EBX, ECX, and EDX may be modified
  39084. all other flags (except IF) may be modified
  39085. Notes: this function may require up to 1024 byte of stack; it will not enable
  39086. interrupts if they were disabled before making the call
  39087. the meanings of BL and BH on entry were exchanged between the initial
  39088. drafts of the specification and final implementation
  39089. SeeAlso: AX=B10Ah,AX=B10Ah/SF=8086h
  39090. Format of Brooktree Bt8230 ATM controller configuration:
  39091. Offset Size Description (Table 00981)
  39092. 00h 64 BYTEs header (see #00878)
  39093. (vendor ID 109Eh, device ID 8230h)
  39094. 10h DWORD address at which to map external memory (multiple of 16M)
  39095. internal registers are mapped at offsets 0000h-01FFh; Bt8222
  39096. registers are mapped at 0200h-03FFh, and T1/E1 Framer
  39097. registers are mapped at 0800h-0FFFh. Only 32-bit memory
  39098. accesses are used
  39099. 40h BYTE maximum burst length (00h not allowed, default = 10h)
  39100. 41h BYTE "SPECIAL_STATUS"
  39101. bit 3: attempted to perform DMA on PCI while bus-mastering
  39102. disabled in PCI command word
  39103. bit 2: PCI/DMA synchronization error occurred
  39104. bit 1: PCI bus master encountered fatal error
  39105. bit 0: direction of transaction which encountered error
  39106. =0 write (refer to offset 48h)
  39107. =1 read (refer to offset 44h)
  39108. Note: bits 3-1 are write-clear, bit 0 is read-only
  39109. 42h 2 BYTEs unused
  39110. 44h DWORD current read target address for PCI bus master (read-only)
  39111. 48h DWORD current write target address for PCI bus master (read-only)
  39112. 4Ch 180 BYTEs reserved
  39113. SeeAlso: #00790
  39114. --------X-1AB10ASF1106-----------------------
  39115. INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (VIA Technologies devices)
  39116. AX = B10Ah subfn 1106h
  39117. BH = bus number
  39118. BL = device/function number (bits 7-3 device, bits 2-0 function)
  39119. DI = register number (0000h-00FFh) (see #00878)
  39120. Return: CF clear if successful
  39121. ECX = dword read
  39122. CF set on error
  39123. AH = status (00h,87h) (see #00729)
  39124. EAX, EBX, ECX, and EDX may be modified
  39125. all other flags (except IF) may be modified
  39126. Notes: this function may require up to 1024 byte of stack; it will not enable
  39127. interrupts if they were disabled before making the call
  39128. the meanings of BL and BH on entry were exchanged between the initial
  39129. drafts of the specification and final implementation
  39130. SeeAlso: AX=B10Ah,AX=B10Ah/SF=8086h
  39131. Format of Via Technologies' VT82C580VPX CPU-PCI bridge configuration:
  39132. Offset Size Description (Table 00982)
  39133. 00h 64 BYTEs header (see #00878)
  39134. (vendor ID 1106h, device ID 0585h)
  39135. 40h 16 BYTEs unused
  39136. 50h BYTE cache control 1
  39137. 51h BYTE cache control 2
  39138. 52h BYTE non-cacheable control
  39139. 53h BYTE system performance control
  39140. 54h BYTE non-cacheable region 1 (high)
  39141. 55h BYTE non-cacheable region 1 (low)
  39142. 56h BYTE non-cacheable region 2 (high)
  39143. 57h BYTE non-cacheable region 2 (low)
  39144. 58h BYTE DRAM configuration 1
  39145. 59h BYTE DRAM configuration 2
  39146. 5Ah 6 BYTEs DRAM row N ending address (N=0-5)
  39147. 60h BYTE DRAM type
  39148. 61h BYTE shadow RAM control 1
  39149. 62h BYTE shadow RAM control 2
  39150. 63h BYTE shadow RAM control 3
  39151. 64h BYTE DRAM reference timing
  39152. 65h BYTE DRAM timing control 1 (see #00996)
  39153. 66h BYTE DRAM timing control 2 (see #00997)
  39154. 67h BYTE 32-bit DRAM width (see #00998)
  39155. 68h BYTE
  39156. 69h BYTE reserved ("do not program")
  39157. 6Ah BYTE refresh counter
  39158. 6Bh BYTE refresh control
  39159. 6Ch BYTE SDRAM control
  39160. 6Dh BYTE DRAM control drive strength
  39161. 6Eh 2 BYTEs reserved
  39162. 70h BYTE PCI buffer control
  39163. 71h BYTE CPU-to-PCI flow control 1
  39164. 72h BYTE CPU-to-PCI flow control 2
  39165. 73h BYTE PCI master control 1
  39166. 74h BYTE PCI master control 2
  39167. 75h BYTE PCI arbitration 1
  39168. 76h BYTE PCI arbitration 2
  39169. 77h BYTE reserved for chip test
  39170. 78h 136 BYTEs reserved
  39171. !!!via\580vpx.pdf
  39172. SeeAlso: #00817
  39173. Format of AMD-640 System Controller:
  39174. Offset Size Description (Table 00983)
  39175. 00h 64 BYTEs header (see #00878)
  39176. (vendor ID 1106h, device ID 0595h)
  39177. 0Dh BYTE latency timer (bits 7-3)
  39178. 00h = 32*8 PCI clocks
  39179. 01h = 1*8 PCI clocks
  39180. N = N*8 PCI clocks
  39181. 40h 16 BYTEs unused???
  39182. 50h BYTE cache control 1 (see #00984)
  39183. 51h BYTE cache control 2 (see #00985)
  39184. 52h BYTE non-cacheable control (see #00986)
  39185. 53h BYTE system performance control (see #00987)
  39186. 54h WORD non-cacheable region 1 (see #00988)
  39187. 56h WORD non-cacheable region 2 (see #00988)
  39188. 58h BYTE DRAM configuration register 1 (see #00989)
  39189. 59h BYTE DRAM configuration register 2 (see #00990)
  39190. 5Ah 6 BYTEs end of DRAM banks 0-5
  39191. each register specifies bits 29-22 of the bank's ending address
  39192. 60h BYTE DRAM type (see #00991)
  39193. 61h BYTE shadow RAM control register 1 (see #00992)
  39194. 62h BYTE shadow RAM control register 2 (see #00993)
  39195. 63h BYTE shadow RAM control register 3 (see #00994)
  39196. 64h BYTE DRAM timing (see #00995)
  39197. 65h BYTE DRAM control register 1 (see #00996)
  39198. 66h BYTE DRAM control register 2 (see #00997)
  39199. 67h BYTE 32-bit DRAM width control register (see #00998)
  39200. 68h 2 BYTEs reserved
  39201. 6Ah BYTE DRAM refresh counter (in units of 16 CPU clocks)
  39202. 6Bh BYTE DRAM refresh control register (see #00999)
  39203. 6Ch BYTE SDRAM control register (see #01000)
  39204. 6Dh BYTE DRAM drive strength control register (see #01001)
  39205. 6Eh BYTE ECC control register (see #01002)
  39206. 6Fh BYTE ECC status register (see #01003)
  39207. 70h BYTE PCI buffer control (see #01004)
  39208. 71h BYTE CPU-to-PCI flow control 1 (see #01005)
  39209. 72h BYTE CPU-to-PCI flow control 2 (see #01006)
  39210. 73h BYTE PCI target control (see #01007)
  39211. 74h BYTE PCI initiator control (see #01008)
  39212. 75h BYTE PCI arbitration control 1 (see #01009)
  39213. 76h BYTE PCI arbitration control 2 (see #01010)
  39214. 77h 137 BYTEs reserved
  39215. Note: the AMD-640 uses PCI configuration mechanism #1; bus/device/function
  39216. are always 00h/00h/00h
  39217. SeeAlso: #00817,#01011
  39218. Bitfields for AMD-640 Cache Control Register 1:
  39219. Bit(s) Description (Table 00984)
  39220. 7-6 cache enable
  39221. 00 disabled
  39222. 01 initialization (BIOS fills L2 cache to known state)
  39223. 10 enabled (normal operation)
  39224. 11 reserved
  39225. 5 reserved (do not change)
  39226. 4-3 tag configuration
  39227. 00 eight tag bits, no "modify" bit
  39228. 01 seven tag bits, one modify bit
  39229. 10 ten tag bits, no modify bit
  39230. 11 nine tag bits, one modify bit
  39231. 2 reserved (0)
  39232. 1-0 type of cache RAM
  39233. 00 none
  39234. 01 reserved
  39235. 10 burst SRAM
  39236. 11 pipeline burst SRAM
  39237. SeeAlso: #00983,#00985
  39238. Bitfields for AMD-640 Cache Control Register 2:
  39239. Bit(s) Description (Table 00985)
  39240. 7-6 reserved (0)
  39241. 5 backoff processor until L2 cache filled
  39242. 4 reserved (0)
  39243. 3 two banks of SRAM instead of one
  39244. 2 reserved (0)
  39245. 1-0 L2 cache size
  39246. 00 = 256K
  39247. 01 = 512K
  39248. 10 = 1M
  39249. 11 = 2M
  39250. SeeAlso: #00983,#00984,#00986
  39251. Bitfields for AMD-640 Non-Cacheable Control Register:
  39252. Bit(s) Description (Table 00986)
  39253. 7 segment C000h-C7FFh cacheable and write-protected
  39254. 6 D000h-DFFFh cacheable and write-protected
  39255. 5 E000h-EFFFh cacheable and write-protected
  39256. 4 F000h-FFFFh cacheable and write-protected
  39257. 3 reserved (0)
  39258. 2 force L2 cache fill
  39259. 1 reserved (1)
  39260. 0 L2 write mode (0 = writeback, 1 = write-through)
  39261. SeeAlso: #00983,#00985,#00987
  39262. Bitfields for AMD-640 System Performance Control Register:
  39263. Bit(s) Description (Table 00987)
  39264. 7 enable read-around-write
  39265. 6 enable cache read pipeline cycle
  39266. 5 enable cache write pipeline cycle
  39267. 4 enable DRAM pipeline cycle
  39268. 3 enable PCI Peer Concurrence (PCI initiator can transfer to another
  39269. PCI device without blocking memory or CPU bus)
  39270. 2-0 reserved (0)
  39271. SeeAlso: #00983,#00986
  39272. Bitfields for AMD-640 Non-Cacheable Region register:
  39273. Bit(s) Description (Table 00988)
  39274. 15-11 bits 20-16 of region's base address
  39275. 10-8 size of non-cacheable area
  39276. 000 disabled
  39277. 001 = 64K
  39278. 010 = 128K
  39279. ...
  39280. 110 = 2M
  39281. 111 = 4M
  39282. 7-0 bits 28-21 of region's base address
  39283. SeeAlso: #00983,#00989
  39284. Bitfields for AMD-640 DRAM Configuration Register 1:
  39285. Bit(s) Description (Table 00989)
  39286. 7-5 type of address mapping for memory banks 0 and 1
  39287. ---EDO/FastPageMode---
  39288. 000 eight-bit column address
  39289. 001 nine-bit column address
  39290. 010 ten-bit column address
  39291. 011 eleven-bit column address
  39292. 100 twelve-bit column address
  39293. other reserved
  39294. ---SDRAM---
  39295. 0xx = 16-Mbit SDRAM (see #00991)
  39296. 1xx = 64-Mbit SDRAM
  39297. 4 reserved (0)
  39298. 3-1 type of address mapping ofr memory banks 2 and 3
  39299. 0 reserved (0)
  39300. SeeAlso: #00983,#00990
  39301. Bitfields for AMD-640 DRAM Configuration Register 2:
  39302. Bit(s) Description (Table 00990)
  39303. 7-5 type of address mapping for memory banks 4 and 5 (see #00989)
  39304. 4-3 reserved (0)
  39305. 2-0 last populated memory bank
  39306. 000 - 101 = Bank0 - Bank5
  39307. 110,111 reserved
  39308. Note: banks 2-4 are non-cacheable if tag RAM is ten bits + modified bit
  39309. SeeAlso: #00983,#00989
  39310. Bitfields for AMD-640 DRAM Type register:
  39311. Bit(s) Description (Table 00991)
  39312. 7-6 reserved
  39313. 5-4 type of DRAM in banks 4 and 5
  39314. 00 fast page mode (FPM)
  39315. 01 extended data out (EDO)
  39316. 10 reserved
  39317. 11 synchronous DRAM (SDRAM)
  39318. 3-2 type of DRAM in banks 2 and 3
  39319. 1-0 type of DRAM in banks 0 and 1
  39320. SeeAlso: #00983,#00989,#00990
  39321. Bitfields for AMD-640 Shadow RAM Control Register 1:
  39322. Bit(s) Description (Table 00992)
  39323. 7-6 segment CC00h-CFFFh shadow RAM control
  39324. 00 shadowing disabled
  39325. 01 write enabled
  39326. 10 read enabled
  39327. 11 both read and write enabled
  39328. 5-4 segment C800h-CBFFh shadow RAM control
  39329. 3-2 segment C400h-C7FFh shadow RAM control
  39330. 1-0 segment C000h-C3FFh shadow RAM control
  39331. SeeAlso: #00983,#00993,#00994
  39332. Bitfields for AMD-640 Shadow RAM Control Register 2:
  39333. Bit(s) Description (Table 00993)
  39334. 7-6 segment DC00h-DFFFh shadow RAM control
  39335. 00 shadowing disabled
  39336. 01 write enabled
  39337. 10 read enabled
  39338. 11 both read and write enabled
  39339. 5-4 segment D800h-DBFFh shadow RAM control
  39340. 3-2 segment D400h-D7FFh shadow RAM control
  39341. 1-0 segment D000h-D3FFh shadow RAM control
  39342. SeeAlso: #00983,#00992,#00994
  39343. Bitfields for AMD-640 Shadow RAM Control Register 3:
  39344. Bit(s) Description (Table 00994)
  39345. 7-6 segment E000h-EFFFh shadow RAM control
  39346. 00 shadowing disabled
  39347. 01 write enabled
  39348. 10 read enabled
  39349. 11 both read and write enabled
  39350. 5-4 segment F000h-FFFFh shadow RAM control
  39351. 3-2 ISA memory hole
  39352. 00 none
  39353. 01 = 512K-640K
  39354. 10 = 15M-16M
  39355. 11 = 14M-16M
  39356. 1 enable SMI redirection
  39357. if set: 30000h-3FFFFh redirected to B0000h, 40000h-4FFFFh to A0000h
  39358. 0 redirect video RAM accesses (A0000h-BFFFFh) to system DRAM rather than
  39359. PCI bus (used to initialize SMRAM at B0000h)
  39360. SeeAlso: #00983,#00992,#00993
  39361. Bitfields for AMD-640 DRAM Timing register:
  39362. Bit(s) Description (Table 00995)
  39363. 7-6 RAS# precharge time
  39364. 00 = 2T (for 50ns DRAM) [T = HCLK period]
  39365. 01 = 3T (60ns)
  39366. 10 = 4T (70ns)
  39367. 11 = 6T
  39368. 5-4 RAS# pulse width
  39369. 00 = 3T (for 50ns DRAM)
  39370. 01 = 4T (60ns)
  39371. 10 = 5T (70ns)
  39372. 11 = 6T
  39373. 3-2 CAS# pulse width
  39374. FPM: 00=1T, 01=2T, 10=3T, 11=4T
  39375. EDO: 00=4T, 01=1T, 10=2T, 11=3T
  39376. 1 write pulse width (0 = 1T, 1 = 2T)
  39377. 0 delay from column address to CAS# (0 = 1T, 1 = 2T)
  39378. SeeAlso: #00983,#00994
  39379. Bitfields for AMD-640 DRAM Control Register 1:
  39380. Bit(s) Description (Table 00996)
  39381. 7-6 page mode control
  39382. 00 close page after access
  39383. 01 reserved
  39384. 10 keep page open until timeout or page miss
  39385. 11 close page if processor has not accessed DRAM for 8 CPU cycles
  39386. 5 enable fast DRAM decoding
  39387. 4 reduce EDO DRAM leadoff cycle from 6T to 5T
  39388. 3 delay DRAM data latch by 1/2 clock
  39389. 2 (AMD-640) reserved
  39390. (VT82C580VPX) Pin88 function (0 = DB32, 1 = TA9)
  39391. 1 reserved (0)
  39392. 0 delay DRAM read cycle by 1T whenever write buffer contains data
  39393. must be set if read-around-write is enabled (see #00987)
  39394. SeeAlso: #00983,#00997,#00982
  39395. Bitfields for AMD-640 DRAM Control Register 2:
  39396. Bit(s) Description (Table 00997)
  39397. 7 enable EDO test mode
  39398. when set, EDO RAM contents will read correctly, FPM not
  39399. 6 reserved (0)
  39400. 5-3 (AMD-640) reserved (0)
  39401. 5 (VT82C580VPX) SDRAM CAS# latency (0 = latency 2, 1 = latency 3)
  39402. 4 (VT82C580VPX) reserved (0)
  39403. 3 (VT82C580VPX) enable Turbo EDO mode (0 = x-2-2-2, 1 = x-1-1-1 bursts)
  39404. 2 add one wait state for memory data-to-host data pop
  39405. 1 reduce RAS# precharge by 1T for SDRAM
  39406. 0 reduce RAS# to CAS# delay for SDRAM
  39407. Note: bits 1 and 0 have no effect unless SDRAM has been selected via the
  39408. DRAM type register (see #00991)
  39409. SeeAlso: #00983,#00996,#00982
  39410. Bitfields for AMD-640 32-bit DRAM Width Control register:
  39411. Bit(s) Description (Table 00998)
  39412. 7 RAS# to Column Address delay (0 = 1T, 1 = 2T)
  39413. 6 delay NA# by 1T
  39414. 5-0 widths of banks 5 - 0
  39415. AMD-640 documentation clains that all bits should be cleared
  39416. for VT82C580VPX, settings are 0 = 64-bit, 1 = 32-bit (only applicable
  39417. when two banks of PBSRAM are installed)
  39418. SeeAlso: #00983,#00982,#00997,#00999
  39419. Bitfields for AMD-640 DRAM Refresh Control register:
  39420. Bit(s) Description (Table 00999)
  39421. 7 enable CAS#-before-RAS# refresh
  39422. 6 enable burst refresh (four rows every 60 us, not one every 15 us)
  39423. 5-0 reserved (0)
  39424. SeeAlso: #00983,#00998
  39425. Bitfields for AMD-640 SDRAM Control Register:
  39426. Bit(s) Description (Table 01000)
  39427. 7 enable 4-bank interleave for 64-Mbit SDRAMs (when bit 5 set)
  39428. 6 enable SDRAM burst write
  39429. 5 enable SDRAM bank interleave
  39430. (when set, reduces 3-line burst from 8-1-1-1-3-1-1-1-3-1-1-1 to 8-1...)
  39431. 4 reserved (0)
  39432. 3 SDRAM CAS# latency (0 = latency 2, 1 = latency 3)
  39433. 2-0 SDRAM Operation Mode
  39434. 000 normal SDRAM
  39435. 001 enable NOP command
  39436. 010 convert CPU-to-DRAM cycles into All Banks Precharge command
  39437. 011 convert CPU-to-DRAM cycles into commands on MA[11:0]
  39438. 100 enable CAS#-before-RAS# cycles
  39439. other reserved
  39440. SeeAlso: #00983,#00999
  39441. Bitfields for AMD-640 DRAM Drive Strength Control register:
  39442. Bit(s) Description (Table 01001)
  39443. 7 bank decoding test (1="for production test only. DO NOT SET.")
  39444. 6 strength of MA[1:0] drive (0 = 12ma, 1 = 24ma)
  39445. 5 function of N17 and M17 pins
  39446. 0 N17 is RAS5#, M17 is RAS4#
  39447. 1 N17 is MA1, M17 is MA0
  39448. 4 force SMM mode (when set, act as if SMIACT# is asserted)
  39449. 3 strength of SDRAM command lines (0 = 12ma, 1 = 24ma)
  39450. 2 strength of MA[13:2] and WEx# drive (0 = 12ma, 1 = 24ma)
  39451. 1 strength of CAS# drive (0 = 12ma, 1 = 24ma)
  39452. 0 strength of RAS# drive (0 = 12ma, 1 = 24ma)
  39453. SeeAlso: #00983,#00999
  39454. Bitfields for AMD-640 ECC Control Register:
  39455. Bit(s) Description (Table 01002)
  39456. 7 ECC mode select (0 = parity, 1 = ECC)
  39457. 6 reserved (0)
  39458. 5 assert SERR# for ECC multibit errors
  39459. 4 assert SERR# for ECC single-bit errors
  39460. 3 add 1T for SDRAM read cycles with ECC (required when ECC mode enabled)
  39461. 2 enable ECC for banks 5 and 4
  39462. 1 enable ECC for banks 3 and 2
  39463. 0 enable ECC for banks 1 and 0
  39464. SeeAlso: #00983,#01003
  39465. Bitfields for AMD-640 ECC Status Register:
  39466. Bit(s) Description (Table 01003)
  39467. 7 multi-bit error detected (write-clear)
  39468. 6-4 number of DRAM bank containing multi-bit error (write-clear)
  39469. 3 single-bit error detected (write-clear)
  39470. 2-0 number of DRAM bank containing single-bit error (write-clear)
  39471. SeeAlso: #00983,#01002
  39472. Bitfields for AMD-640 PCI Buffer Control register:
  39473. Bit(s) Description (Table 01004)
  39474. 7 enable CPU-to-PCI posted writes
  39475. 6 enable PCI-to-DRAM posted writes
  39476. 5 enable PCI-to-DRAM prefetch
  39477. 4-2 reserved (0)
  39478. 1 disable PCI retry for processor QuadWord access
  39479. 0 CPU-to-PCI buffer flushing
  39480. 0 flushing has priority over bus grants
  39481. 1 bus-grant to another PCI initiator has priority over flushing
  39482. SeeAlso: #00983
  39483. Bitfields for AMD-640 CPU-to-PCI Flow Control 1 register:
  39484. Bit(s) Description (Table 01005)
  39485. 7,3 PCI burst control
  39486. 00 no bursts, every write goes to write buffer
  39487. 01 burst writes placed in write buffer, non-burst writes sent to PCI
  39488. bus immediately after write buffers flushed
  39489. 1x all writes go to write buffer; bursting performed for burstable
  39490. transactions
  39491. 6 enable byte merge
  39492. 5 reserved (1)
  39493. 4 enable posted PCI I/O cycle writes
  39494. 2 eanble fast back-to-back PCI writes
  39495. 1 enable quick frame generation (FRAME# asserted one clock early)
  39496. 0 add one wait state to IRDY#
  39497. SeeAlso: #00983,#01006
  39498. Bitfields for AMD-640 CPU-to-PCI Flow Control 2 register:
  39499. Bit(s) Description (Table 01006)
  39500. 7 unsuccessful retry (16 or 64 times) has occurred (write-clear)
  39501. 6 retry timeout action
  39502. 0 retry continuously, recording status
  39503. 1 flush buffer; if reading, return FFFFFFFFh
  39504. 5-4 retry count and backoff
  39505. 00 retry twice, backoff processor
  39506. 01 retry 16 times, set bit 7 on failure
  39507. 10 retry four times, backoff processor
  39508. 11 retry 64 times, set bit 7 on failure
  39509. 3 discard failed data from write buffer when retry fails
  39510. 2 backoff processor if PCI read retry fails
  39511. 1 assert FRAME# one cycle earlier than indicated by offset 71h bit 1
  39512. 0 reduce TRDY#-to-BRDY# by one HCLK on processor reads of PCI target
  39513. SeeAlso: #00983,#01005,#01007
  39514. Bitfields for AMD-640 PCI Target Control register:
  39515. Bit(s) Description (Table 01007)
  39516. 7 slow memory decoding (must be set if fast back-to-back cycles enabled)
  39517. 6 add one wait state to TRDY# response on reads
  39518. 5 add one wait state to TRDY# response on writes
  39519. 4 reserved (0)
  39520. 3 assert STOP# after write timeout
  39521. 2 assert STOP# after read timeout
  39522. 1 enable sampling of PCI LOCK# pin
  39523. 0 force AMD-640 to initiate PCI arbitration if FRAM# not asserted within
  39524. 16 PCI clocks of last GNT#
  39525. SeeAlso: #00983,#01006,#01008
  39526. Bitfields for AMD-640 PCI Initiator Control register:
  39527. Bit(s) Description (Table 01008)
  39528. 7 enable enhanced PCI commands (Memory Read Line, Memory Read Multiple,
  39529. and Memory Write and Invalidate)
  39530. 6 enable single-write byte merging
  39531. 5-0 reserved (0)
  39532. SeeAlso: #00983,#01007,#01008
  39533. Bitfields for AMD-640 PCI Arbitration Control 1 register:
  39534. Bit(s) Description (Table 01009)
  39535. 7 arbitration priority
  39536. 0 = fixed (high-to-low is REQ1#, REQ2#, REQ3#, REQ4#, PREQ#, and CPU)
  39537. 1 = fair (round-robin) arbitration
  39538. 6 arbitration mode
  39539. 0 arbitrate at end of REQ#
  39540. 1 arbitrate at end of each FRAME# (allows pre-emption by a
  39541. higher-priority initiator)
  39542. 5-4 reserved (0)
  39543. 3-0 number of idle time periods of 32 PCI clocks before arbitration is
  39544. forced (0000 disables timeout)
  39545. SeeAlso: #00983,#01008,#01010
  39546. Bitfields for AMD-640 PCI Arbitration Control 2 register:
  39547. Bit(s) Description (Table 01010)
  39548. 7 enable initiator priority rotation
  39549. =0 use arbitration priority as set by offset 75h bit 7 (see #01009)
  39550. 6 reserved (0)
  39551. 5-4 initiator priority rotation control
  39552. 00 disabled (use offset 75h bit 7 setting)
  39553. 01 grant to processor after every PCI initiator grant
  39554. 10 grant to processor after every other PCI initiator grant
  39555. 11 grant to processor after every three PCI initiator grants
  39556. 3-0 reserved (0)
  39557. SeeAlso: #00983,#01009
  39558. Format of AMD-645 Peripheral Bus Controller, function 0 (PCI-ISA bridge) data:
  39559. Offset Size Description (Table 01011)
  39560. 00h 64 BYTEs header (see #00878)
  39561. (vendor ID 1106h, device ID 0586h)
  39562. 40h BYTE ISA bus control (see #01012)
  39563. 41h BYTE ISA Test Mode (see #01013)
  39564. 42h BYTE ISA clock control (see #01014)
  39565. 43h BYTE ROM Decode Control (see #01015)
  39566. 44h BYTE keyboard controller control (see #01016)
  39567. 45h BYTE Type F DMA control (see #01017)
  39568. 46h BYTE Miscellaneous control 1 (see #01018)
  39569. 47h BYTE Miscellaneous control 2 (see #01019)
  39570. 48h BYTE Miscellaneous control 3 (see #01020)
  39571. 49h BYTE reserved
  39572. 4Ah BYTE IDE interrupt routing (see #01021)
  39573. 4Bh BYTE reserved
  39574. 4Ch BYTE PCI memory hole bottom, bits 23-16
  39575. 4Dh BYTE PCI memory hole top, bits 23-16
  39576. (if top is <= bottom, hole is disabled)
  39577. 4Eh WORD DMA/Master memory access control 3 (see #01022)
  39578. 50h BYTE PnP DRQ Routing (see #01023)
  39579. 51h 3 BYTEs reserved
  39580. 54h BYTE PCI IRQ Edge/Level selection (see #01024)
  39581. 55h BYTE PnP Routing for external MIRQ0/1 (see #01025)
  39582. 56h BYTE PnP Routing for PCI INTB/INTA (see #01027)
  39583. 57h BYTE PnP Routing for PCI INTD/INTC (see #01028)
  39584. 58h BYTE PnP Routing for external MIRQ2 (see #01029)
  39585. 59h BYTE MIRQ pin configuration (see #01030)
  39586. 5Ah BYTE XD Power-On Strap Options (see #01031)
  39587. 5Bh BYTE internal RTC test mode (see #01032)
  39588. 5Ch 4 BYTEs reserved
  39589. 60h WORD distributed DMA, channel 0 base address/enable (see #01033)
  39590. 62h WORD distributed DMA, channel 1 base address/enable (see #01033)
  39591. 64h WORD distributed DMA, channel 2 base address/enable (see #01033)
  39592. 66h WORD distributed DMA, channel 3 base address/enable (see #01033)
  39593. 68h WORD reserved
  39594. 6Ah WORD distributed DMA, channel 5 base address/enable (see #01033)
  39595. 6Ch WORD distributed DMA, channel 6 base address/enable (see #01033)
  39596. 6Eh WORD distributed DMA, channel 7 base address/enable (see #01033)
  39597. 70h 144 BYTEs reserved
  39598. SeeAlso: #00817,#00983,#01034,#01046
  39599. Bitfields for AMD-645 ISA Bus Control register:
  39600. Bit(s) Description (Table 01012)
  39601. 7 extra delay on ISA commands (default is disabled)
  39602. 6 enable extended ISA bus ready (default is disabled)
  39603. 5 ISA slave wait states (0=4 wait states [default], 1=5 wait states)
  39604. 4 chipset I/O wait states (0=2 wait states [default], 1=4 wait states)
  39605. 3 I/O recovery time enabled
  39606. 2 enable extended ALE
  39607. 1 no ROM wait states (default is clear, 1 wait state)
  39608. 0 enable ROM writes
  39609. SeeAlso: #01011
  39610. Bitfields for AMD-645 ISA Test Mode register:
  39611. Bit(s) Description (Table 01013)
  39612. 7-6 reserved (0)
  39613. 5 enable fast reset via PORT 0092h
  39614. 4 reserved (0)
  39615. 3 double DMA clock (=0 DMA at 1/2 ISA clock, =1 DMA at full ISA clock)
  39616. 2-0 reserved (0)
  39617. SeeAlso: #01011,#01012,#01014
  39618. Bitfields for AMD-645 ISA Clock Control register:
  39619. Bit(s) Description (Table 01014)
  39620. 7 disable "Latch IO16#"
  39621. 6-4 reserved (0)
  39622. 3 enable ISA Bus clock select via bits 2-0 (=0 use PCLK/4)
  39623. 2-0 ISA Bus clock select
  39624. 000 PCLK/3 (default)
  39625. 001 PCLK/2
  39626. 010 PCLK/4
  39627. 011 PCLK/6
  39628. 100 PCLK/5
  39629. 101 PCLK/10
  39630. 110 PCLK/12
  39631. 111 OSC/2
  39632. Note: in order to safely change the ISA clock, bit 3 must first be cleared,
  39633. then bits 2-0 may be changed, and finally bit 3 can be set again
  39634. SeeAlso: #01011,#01013
  39635. Bitfields for AMD-645 ROM Decode Control register:
  39636. Bit(s) Description (Table 01015)
  39637. 7 enable 64K ROM at FFFE00000h-FFFEFFFFh
  39638. 6 enable 384K ROM at FFF80000h-FFFDFFFFh
  39639. 5 enable 32K ROM at E8000h-EFFFFh
  39640. 4 enable 32K ROM at E0000h-E7FFFh
  39641. 3 enable 32K ROM at D8000h-D8FFFh
  39642. 2 enable 32K ROM at D0000h-D7FFFh
  39643. 1 enable 32K ROM at C8000h-CFFFFh
  39644. 0 enable 32K ROM at C0000h-C7FFFh
  39645. SeeAlso: #01011
  39646. Bitfields for AMD-645 Keyboard Controller Control register:
  39647. Bit(s) Description (Table 01016)
  39648. 7-4 reserved (0)
  39649. 3 enable Mouse Lock
  39650. 2-0 reserved (0)
  39651. SeeAlso: #01011
  39652. Bitfields for AMD-645 Type-F DMA Control register:
  39653. Bit(s) Description (Table 01017)
  39654. 7 enable line buffer from ISA Master/DMA to PCI
  39655. 6-4 enable Type F timing on DMA Channels 7, 6, 5
  39656. 3-0 enable Type F timing on DMA Channels 3-0
  39657. SeeAlso: #01011
  39658. Bitfields for AMD-645 Miscellaneous Control 1 register:
  39659. Bit(s) Description (Table 01018)
  39660. 7-5 reserved (0)
  39661. 4 enable command register test mode
  39662. (when set, PCI offset 04h bits 0-1 become writable and bit 3 read-only)
  39663. 3-2 reserved (0)
  39664. 1 disallow interruptions of PCI burst reads
  39665. 0 enable posted memory writes
  39666. SeeAlso: #01011,#01019,#01020
  39667. Bitfields for AMD-645 Miscellaneous Control 2 register:
  39668. Bit(s) Description (Table 01019)
  39669. 7 use INIT as CPU reset signal instead of CPURST
  39670. 6 enable PCI transaction delay
  39671. 5 enable ports 04D0h-04D1h (per EISA spec)
  39672. 4 enable interrupt controller shadow register
  39673. 3 reserved (0)
  39674. 2 enable write delay transaction time-out timer
  39675. 1 enable read delay transaction time-out timer
  39676. 0 software PCI reset -- set to cause a PCI reset via PCIRST pin
  39677. SeeAlso: #01011,#01018,#01020,PORT 04D0h
  39678. Bitfields for AMD-645 Miscellaneous Control 3 register:
  39679. Bit(s) Description (Table 01020)
  39680. 7-4 reserved (0)
  39681. 3 disable RTC PORT 0074h and PORT 0075h
  39682. 2 disable integrated USB controller
  39683. 1 disable integrated IDE controller
  39684. 0 add 512K to offset 4Eh bits 15-12 at top of PCI memory
  39685. SeeAlso: #01011,#01018,#01019,PORT 0074h"AMD-645"
  39686. Bitfields for AMD-645 IDE Interrupt Routing register:
  39687. Bit(s) Description (Table 01021)
  39688. 7 wait for PGNT before Grant to ISA Master/DMA
  39689. 6 port 00xxh bus select (0=access via SD bus, 1=access via XD bus)
  39690. 5-4 reserved (0)
  39691. 3-2 secondary IDE channel IRQ (same encoding as primary)
  39692. 1-0 primary IDE channel IRQ
  39693. 00 IRQ14 (default for primary)
  39694. 01 IRQ15 (default for secondary)
  39695. 10 IRQ10
  39696. 11 IRQ11
  39697. SeeAlso: #01011
  39698. Bitfields for AMD-645 DMA/Master Memory Access Control 3 register:
  39699. Bit(s) Description (Table 01022)
  39700. 15-12 top of PCI memory for ISA DMA/Master access, bits 23-20, less 1
  39701. 11 accesses to E0000h-EFFFFh forwarded to PCI
  39702. 10 accesses to A0000h-BFFFFh forwarded to PCI
  39703. 9 accesses to 80000h-9FFFFh forwarded to PCI
  39704. 8 accesses to 00000h-7FFFFh forwarded to PCI
  39705. 7 accesses to DC000h-DFFFFh forwarded to PCI
  39706. 6 accesses to D8000h-DBFFFh forwarded to PCI
  39707. 5 accesses to D4000h-D7FFFh forwarded to PCI
  39708. 4 accesses to D0000h-D3FFFh forwarded to PCI
  39709. 3 accesses to CC000h-CFFFFh forwarded to PCI
  39710. 2 accesses to C8000h-CBFFFh forwarded to PCI
  39711. 1 accesses to C4000h-C7FFFh forwarded to PCI
  39712. 0 accesses to C0000h-C3FFFh forwarded to PCI
  39713. SeeAlso: #01011
  39714. Bitfields for AMD-645 PnP DRQ Routing register:
  39715. Bit(s) Description (Table 01023)
  39716. 7-0 reserved (always read 04h)
  39717. SeeAlso: #01011,#01024
  39718. Bitfields for AMD-645 PCI IRQ Edge/Level Select register:
  39719. Bit(s) Description (Table 01024)
  39720. 7-4 reserved
  39721. 3 PIRQA# is edge-sensitive rather than level-sensitive
  39722. 2 PIRQB# is edge-sensitive
  39723. 1 PIRQC# is edge-sensitive
  39724. 0 PIRQD# is edge-sensitive
  39725. SeeAlso: #01011,#01023,#01025
  39726. Bitfields for AMD-645 PnP IRQ Routing 1 register:
  39727. Bit(s) Description (Table 01025)
  39728. 7-4 routing for MIRQ1 (see #01026)
  39729. 3-0 routing for MIRQ0 (see #01026)
  39730. SeeAlso: #01011,#01024
  39731. (Table 01026)
  39732. Values for AMD-645 IRQ routing:
  39733. 0000 disabled
  39734. 0001 IRQ1
  39735. 0010 reserved
  39736. 0011 IRQ3
  39737. ...
  39738. 0111 IRQ7
  39739. 1000 reserved
  39740. 1001 IRQ9
  39741. ...
  39742. 1100 IRQ12
  39743. 1101 reserved
  39744. 1110 IRQ14
  39745. 1111 IRQ15
  39746. SeeAlso: #01025,#01027,#01028,#01029
  39747. Bitfields for AMD-645 PnP IRQ Routing 2 register:
  39748. Bit(s) Description (Table 01027)
  39749. 7-4 routing for PIRQB# (see #01026)
  39750. 3-0 routing for PIRQA# (see #01026)
  39751. SeeAlso: #01025,#01028,#01029
  39752. Bitfields for AMD-645 PnP IRQ Routing 3 register:
  39753. Bit(s) Description (Table 01028)
  39754. 7-4 routing for PIRQD# (see #01026)
  39755. 3-0 routing for PIRQC# (see #01026)
  39756. SeeAlso: #01025,#01027,#01029
  39757. Bitfields for AMD-645 PnP IRQ Routing 4 register:
  39758. Bit(s) Description (Table 01029)
  39759. 7-4 reserved
  39760. 3-0 routing for MIRQ2# (see #01026)
  39761. SeeAlso: #01025,#01027,#01028
  39762. Bitfields for AMD-645 MIRQ Pin Configuration register:
  39763. Bit(s) Description (Table 01030)
  39764. 7-3 reserved (0)
  39765. 2 select MASTER# instead of MIRQ2
  39766. 1 select KEYLOCK instead of MIRQ1
  39767. 0 select APICCS# instead of MIRQ0
  39768. SeeAlso: #01011,#01029
  39769. Bitfields for AMD-645 XD Power-Up Strap Options register:
  39770. Bit(s) Description (Table 01031)
  39771. 7-4 Keyboard RP16-RP13
  39772. 3 reserved (0)
  39773. 2 enable internal RTC
  39774. 1 enable internal PS/2 mouse
  39775. 0 enable internal keyboard controller
  39776. Note: the default value of this register is latched from external pins at
  39777. power-up
  39778. SeeAlso: #01011
  39779. Bitfields for AMD-645 Internal RTC Test Mode register:
  39780. Bit(s) Description (Table 01032)
  39781. 7-2 reserved (0)
  39782. 1 enable access to internal RTC's RAM when RTC is disabled
  39783. (see PORT 0074h"AMD-645")
  39784. 0 reserved (0)
  39785. SeeAlso: #01011
  39786. Bitfields for AMD-645 Distributed DMA Base/Enable register:
  39787. Bit(s) Description (Table 01033)
  39788. 15-4 base address bits 15-4 for Channel N
  39789. 3 enable DMA channel
  39790. 2-0 reserved (0)
  39791. SeeAlso: #01011
  39792. Format of AMD-645 Peripheral Bus Controller, function 1 (IDE Control) data:
  39793. Offset Size Description (Table 01034)
  39794. 00h 64 BYTEs header (see #00878)
  39795. (vendor ID 1106h [VIA Technologies], device ID 0571h)
  39796. 09h BYTE programming interface
  39797. bit 7: Master IDE capability
  39798. bits 6-4: reserved (0)
  39799. bit 3: secondary channel supports operating mode selection
  39800. bit 2: use native PCI mode, not compatibility mode for sec. ch.
  39801. bit 1: primary channel supports operating mode selection
  39802. bit 0: use native PCI mode, not compatibility mode for pri. ch.
  39803. 10h DWORD primary data/command base address
  39804. 14h DWORD primary control/status base address
  39805. 18h DWORD secondary data/command base address
  39806. 1Ch DWORD secondary control/status base address
  39807. 20h DWORD bus master control base address (default 0000CC01h)
  39808. 40h BYTE chip enable (see #01035)
  39809. 41h BYTE IDE configuration (see #01036)
  39810. 42h BYTE reserved ("do not program")
  39811. 43h BYTE FIFO configuration (see #01037)
  39812. 44h BYTE miscellaneous control 1 (see #01038)
  39813. 45h BYTE miscellaneous control 2 (see #01039)
  39814. 46h BYTE miscellaneous control 3 (see #01040)
  39815. 47h BYTE unused???
  39816. 48h DWORD drive timing control (see #01041)
  39817. 4Ch BYTE address setup time (see #01042)
  39818. 4Dh BYTE reserved ("do not program")
  39819. 4Eh BYTE secondary non-01F0h port access timing (see #01043)
  39820. 4Fh BYTE primary non-01F0h port access timing (see #01043)
  39821. 50h BYTE UltraDMA/33 extended timing control, Sec. Drive 1 (see #01044)
  39822. 51h BYTE UltraDMA/33 extended timing control, Sec. Drive 0 (see #01044)
  39823. 52h BYTE UltraDMA/33 extended timing control, Pri. Drive 1 (see #01044)
  39824. 53h BYTE UltraDMA/33 extended timing control, Pri. Drive 0 (see #01044)
  39825. 54h 4 BYTEs reserved
  39826. 58h DWORD "reserved"
  39827. (appears to be an additional set of drive timing controls)
  39828. 5Ch 4 BYTEs ???
  39829. 60h WORD primary sector size (see #01045)
  39830. 62h 6 BYTEs reserved
  39831. 68h WORD secondary sector size (see #01045)
  39832. 6Ah 150 BYTEs reserved
  39833. Note: the AMD-645 IDE controller is compatible with the SFF 8038i v1.0 spec
  39834. SeeAlso: #00817,#01011,#01046
  39835. Bitfields for AMD-645 IDE Chip Enable register:
  39836. Bit(s) Description (Table 01035)
  39837. 7-2 reserved (00001)
  39838. 1 enable primary IDE channel
  39839. 0 enable secondary IDE channel
  39840. SeeAlso: #01034,#01036
  39841. Bitfields for AMD-645 IDE Configuration register :
  39842. Bit(s) Description (Table 01036)
  39843. 7 enable primary IDE read-prefetch buffer
  39844. 6 enable primary IDE post write buffer
  39845. 5 enable secondary IDE read-prefetch buffer
  39846. 4 enable secondary IDE post write buffer
  39847. 3-0 reserved (0110)
  39848. SeeAlso: #01034,#01035,3813
  39849. Bitfields for AMD-645 IDE FIFO Configuration register:
  39850. Bit(s) Description (Table 01037)
  39851. 7 reserved (0)
  39852. 6-5 FIFO configuration
  39853. 00 primary channel = 16, secondary channel = 0
  39854. 01/10 primary channel = 8, secondary channel = 8
  39855. 11 primary channel = 0, secondary channel = 16
  39856. 4 reserved (1)
  39857. 3-2 primary channel FIFO threshold
  39858. 00 = completely full
  39859. 01 = 3/4 full
  39860. 10 = 1/2 full
  39861. 11 = 1/4 full
  39862. 1-0 secondary channel FIFO threshold (same settings as bits 3-2)
  39863. SeeAlso: #01034,#01036
  39864. Bitfields for AMD-645 IDE Miscellaneous Control 1 register:
  39865. Bit(s) Description (Table 01038)
  39866. 7 reserved (0)
  39867. 6 number of wait states on Master Read Cycle IRDY#
  39868. 5 number of wait states on Master Write Cycle IRDY#
  39869. 4 enable 1/2 clock advance on FIFO output
  39870. 3 enable bus-master IDE status register read retry
  39871. 2-0 reserved (0)
  39872. SeeAlso: #01034,#01039,#01040
  39873. Bitfields for AMD-645 IDE Miscellaneous Control 2 register:
  39874. Bit(s) Description (Table 01039)
  39875. 7 reserved (0)
  39876. 6 swap interrupts between the two IDE channels
  39877. 5-0 reserved (0)
  39878. SeeAlso: #01034,#01038,#01040
  39879. Bitfields for AMD-645 IDE Miscellaneous Control 3 register:
  39880. Bit(s) Description (Table 01040)
  39881. 7 enable FIFO flush for read DMA on primary channel interrupt
  39882. 6 enable FIFO flush for read DMA on secondary channel interrupt
  39883. 5 enable FIFO flush for each sector on primary channel
  39884. 4 enable FIFO flush for each sector on secondary channel
  39885. 3-2 reserved
  39886. 1-0 maximum DRDY# pulse width
  39887. 00 unlimited
  39888. 01 64 PCI clocks
  39889. 10 128 PCI clocks
  39890. 11 192 PCI clocks
  39891. SeeAlso: #01034,#01038,#01039
  39892. Bitfields for AMD-645 IDE Drive Timing Control register:
  39893. Bit(s) Description (Table 01041)
  39894. 31-28 primary drive 0 active DIOR#/DIOW# pulse width
  39895. 27-24 primary drive 0 DIOR#/DIOW# recovery time (PCI clocks, less 1)
  39896. 23-20 primary drive 1 active pulse width (PCI clocks, less 1)
  39897. 19-16 primary drive 1 recovery time
  39898. 15-12 secondary drive 0 active pulse width
  39899. 11-8 secondary drive 0 recovery time
  39900. 7-4 secondary drive 1 active pulse width
  39901. 3-0 secondary drive 1 recover time (PCI clocks, less 1)
  39902. SeeAlso: #01034,#01042
  39903. Bitfields for AMD-645 IDE Address Setup Time register:
  39904. Bit(s) Description (Table 01042)
  39905. 7-6 primary drive 0 address setup time
  39906. 00 = 1T
  39907. 01 = 2T
  39908. 10 = 3T
  39909. 11 = 4T
  39910. 5-4 primary drive 1 address setup time (same values as above)
  39911. 3-2 secondary drive 0 address setup time
  39912. 1-0 secondary drive 1 address setup time
  39913. SeeAlso: #01034,#01041
  39914. Bitfields for AMD-645 Non-01F0h Port Access Timing register:
  39915. Bit(s) Description (Table 01043)
  39916. 7-4 width of DIOR#/DIOW# active pulse in PCI clocks (less 1)
  39917. 3-0 DIOR#/DIOW# recovery time in PCI clocks (less 1)
  39918. SeeAlso: #01011
  39919. Bitfields for AMD-645 UltraDMA/33 Extended Timing Control register:
  39920. Bit(s) Description (Table 01044)
  39921. 7 method for enabling UltraDMA mode on drive
  39922. 0 using "Set Feature" command
  39923. 1 using bit 6 of this register
  39924. 6 enable UltraDMA mode for drive
  39925. 5 UltraDMA transfer mode
  39926. 0 UltraDMA DMA mode
  39927. 1 UltraDMA PIO mode
  39928. 4-2 reserved (0)
  39929. 1-0 drive cycle time
  39930. 00 = 2T
  39931. ...
  39932. 11 = 5T
  39933. SeeAlso: #01011
  39934. Bitfields for AMD-645 Sector Size register:
  39935. Bit(s) Description (Table 01045)
  39936. 15-12 reserved
  39937. 11-0 sector size in bytes (default 200h)
  39938. SeeAlso: #01011
  39939. Format of AMD-645 Peripheral Bus Controller, function 2 (USB Controller) data:
  39940. Offset Size Description (Table 01046)
  39941. 00h 64 BYTEs header (see #00878)
  39942. (vendor ID 1106h, device ID 3038h)
  39943. 20h DWORD base address of USB I/O ports (see PORT xxxxh"AMD-645 - USB"
  39944. 40h BYTE miscellaneous control 1 (see #01047)
  39945. 41h BYTE miscellaneous control 2 (see #01048)
  39946. 42h 2 BYTEs reserved
  39947. 44h 3 BYTEs reserved ("do not program")
  39948. 47h BYTE reserved
  39949. 48h 24 BYTEs reserved
  39950. 60h BYTE USB release number (read-only, 10h)
  39951. 61h 95 BYTEs reserved
  39952. C0h WORD USB legacy support (read-only, 2000h)
  39953. C2h 62 BYTEs reserved
  39954. SeeAlso: #00817,#00983,#01011,#01034,#01049
  39955. Bitfields for AMD-645 USB Miscellaneous Control 1 register:
  39956. Bit(s) Description (Table 01047)
  39957. 7 PCI memory commands
  39958. 0 support memory-read-line, memory-read-multiple, and
  39959. memory-write-and-invalidate
  39960. 1 memory read and memory write commands only
  39961. 6 do not disable port on EOF babble
  39962. 5 eanble PCI parity checking and PERR# generation
  39963. 4 reserved (0)
  39964. 3 USB data length
  39965. 0 allow TD length up to 1280 bytes
  39966. 1 limit to 1023
  39967. 2 enable USB power management
  39968. 1 DMA limited to 8-DW burst instead of 16-DW
  39969. 0 insert one PCI wait state
  39970. SeeAlso: #01046,#01048
  39971. Bitfields for AMD-645 USB Miscellaneous Control 2 register:
  39972. Bit(s) Description (Table 01048)
  39973. 7-3 reserved (0)
  39974. 2 only trap port 60h/64h bits when trap-enable bits are set
  39975. 1 do not pass A20GATE command sequence (from UHCI) through I/O port 64h
  39976. 0 reserved (0)
  39977. SeeAlso: #01046,#01047,PORT 0064h
  39978. Format of AMD-645 Peripheral Bus Controller, function 3 (Power Mgmt) data:
  39979. Offset Size Description (Table 01049)
  39980. 00h 64 BYTEs header (see #00878)
  39981. (vendor ID 1106h, device ID 3040h)
  39982. 20h DWORD base address for I/O ports (see PORT xxxxh"AMD-645")
  39983. 40h BYTE pin configuration (see #01050)
  39984. 41h BYTE general configuration (see #01051)
  39985. 42h BYTE SCI interrupt configuration (see #01052)
  39986. 43h BYTE reserved
  39987. 44h WORD primary interrupt channel
  39988. bit 2 is reserved; setting any other bit N makes IRQN the
  39989. primary interrupt channel
  39990. 46h WORD secondary interrupt channel
  39991. bit 2 is reserved; setting any other bit N makes IRQN the
  39992. secondary interrupt channel
  39993. 48h 8 BYTEs unused???
  39994. 50h DWORD GP timer control (see #01053)
  39995. 54h 13 BYTEs reserved
  39996. 61h BYTE programming interface read value (value to be returned by
  39997. configuration register 09h) (write-only)
  39998. 62h BYTE subclass read value (value to be returned by
  39999. configuration register 0Ah) (write-only)
  40000. 63h BYTE base class read value (value to be returned by configuration
  40001. register 0Bh) (write-only)
  40002. 64h 156 BYTEs reserved
  40003. SeeAlso: #00817,#00983,#01011,#01034,#01046,#01049
  40004. Bitfields for AMD-645 PM Pin Configuration register:
  40005. Bit(s) Description (Table 01050)
  40006. 7 GPIO4 configuration (0 = Pin136 is GPO_WE, 1 = Pin136 is GPIO4)
  40007. 6 GPIO3 configuration (0 = Pin92 is GPI_RE#, 1 = Pin92 is GPIO3)
  40008. 5-0 reserved (0)
  40009. SeeAlso: #01049,#01051
  40010. Bitfields for AMD-645 PM General Configuration register:
  40011. Bit(s) Description (Table 01051)
  40012. 7 enable debounce of PWRBTN# input
  40013. 6 enable ACPI timer reset
  40014. 5-4 reserved ("do not program")
  40015. 3 select ACPI timer size (0 = 24 bits, 1 = 32 bits)
  40016. 2 enable PCI Frame Activation as Resume Event im power state C2
  40017. 1 clock-throttling cycle time
  40018. 0 = 32 usec clock, 512 usec cycle time (default)
  40019. 1 = 1 msec clock 16 msec cycle time
  40020. 0 reserved ("do not program")
  40021. SeeAlso: #01049,#01050,MEM xxxxh:xxx0h"ACPI"
  40022. Bitfields for AMD-645 PM SCI Interrupt Configuration register:
  40023. Bit(s) Description (Table 01052)
  40024. 7-4 reserved (0)
  40025. 3-0 interrupt assignment
  40026. 0000 disabled
  40027. else IRQ number (except IRQ2 is reserved)
  40028. SeeAlso: #01049
  40029. Bitfields for AMD-645 PM GP Timer Control register:
  40030. Bit(s) Description (Table 01053)
  40031. 31-30 power-conservation mode timer
  40032. 00 = 1/16 sec
  40033. 01 = 1/8 sec
  40034. 10 = 1 sec
  40035. 11 = 1 minute
  40036. 29 (read) set when system is in power-conservation mode
  40037. 28 enable power-conservation mode
  40038. 27-26 secondary event timer
  40039. 00 = 2 msec
  40040. 01 = 64 msec
  40041. 10 = 1/2 sec
  40042. 11 = 0.25 msec after EOI
  40043. 25 secondary event occurred, secondary event timer is counting down
  40044. 24 enable secondary event timer
  40045. 23-16 GP1 Timer count (see bits 5-4)
  40046. 15-8 GP0 Timer count (see bits 1-0)
  40047. 7 start GP1 timer
  40048. 6 automatically reload GP1 timer after counting down to 0
  40049. 5-4 time base for GP1 timer
  40050. 00 disabled
  40051. 01 = 32 microseconds
  40052. 10 = 1 second
  40053. 11 = 1 minute
  40054. 3 start GP0 timer
  40055. 2 automatically reload GP0 timer after counting down to 0
  40056. 1-0 time base for GP0 timer
  40057. 00 disabled
  40058. 01 = 1/16 second
  40059. 10 = 1 second
  40060. 11 = 1 minute
  40061. SeeAlso: #01049
  40062. --------X-1AB10ASF8086-----------------------
  40063. INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (Intel devices)
  40064. AX = B10Ah subfn 8086h
  40065. BH = bus number
  40066. BL = device/function number (bits 7-3 device, bits 2-0 function)
  40067. DI = register number (0000h-00FFh) (see #00878)
  40068. Return: CF clear if successful
  40069. ECX = dword read
  40070. CF set on error
  40071. AH = status (00h,87h) (see #00729)
  40072. EAX, EBX, ECX, and EDX may be modified
  40073. all other flags (except IF) may be modified
  40074. Notes: this function may require up to 1024 byte of stack; it will not enable
  40075. interrupts if they were disabled before making the call
  40076. the meanings of BL and BH on entry were exchanged between the initial
  40077. drafts of the specification and final implementation
  40078. SeeAlso: AX=B10Ah,AX=B10Ah/SF=1106h,AX=B10Dh
  40079. Format of PCI Configuration data for Intel 82375 EISA Bridge:
  40080. Offset Size Description (Table 01054)
  40081. 00h 64 BYTEs header (see #00878)
  40082. (vendor ID 8086h, device ID 0482h)
  40083. (revision numbers: 03h = 82375EB, 04h = 82375SB)
  40084. 40h BYTE PCI Control
  40085. !!!intel\29047704.pdf pg. 32
  40086. 41h BYTE PCI Arbiter Control
  40087. 42h BYTE PCI Arbiter Priority Control
  40088. 43h BYTE PCI Arbiter Priority Control Extension
  40089. 44h BYTE MEMCS# Control
  40090. 45h BYTE MEMCS# Bottom of Hole
  40091. 46h BYTE MEMCS# Top of Hole
  40092. 47h BYTE MEMCS# Top of Memory
  40093. 48h WORD EISA Address Decode Control 1
  40094. 4Ah 2 BYTEs reserved
  40095. 4Ch BYTE ISA I/O Recovery Time Control
  40096. 4Dh 7 BYTEs reserved
  40097. 54h BYTE MEMCS# Attribute Register #1
  40098. 55h BYTE MEMCS# Attribute Register #2
  40099. 56h BYTE MEMCS# Attribute Register #3
  40100. 57h BYTE reserved
  40101. 58h BYTE PCI Decode Control
  40102. 59h BYTE reserved
  40103. 5Ah BYTE EISA Address Decode Control 2
  40104. 5Bh BYTE reserved
  40105. 5Ch BYTE EISA-to-PCI Memory Region Attributes
  40106. 5Dh 3 BYTEs reserved
  40107. 60h 4 DWORDs EISA-to-PCI Memory Region Address registers 1-4
  40108. 70h 4 DWORDs EISA-to-PCI I/O Region Address registers 1-4
  40109. 80h WORD BIOS Timer base address
  40110. 82h 2 BYTEs reserved
  40111. 84h BYTE EISA Latency Timer Control Register
  40112. 85h 3 BYTEs reserved
  40113. 88h DWORD PCEB Test Control Register ("DO NOT WRITE")
  40114. 8Ch 116 BYTEs reserved
  40115. SeeAlso: #00878,#01055
  40116. Format of PCI Configuration data for Intel 82434LX/NX Cache/DRAM Controller:
  40117. Offset Size Description (Table 01055)
  40118. 00h 64 BYTEs header (see #00878)
  40119. (vendor ID 8086h, device ID 04A3h)
  40120. (revision numbers: 01h/03h are 82434LX, 1xh are 82434NX)
  40121. (command register only supports bits 8,6,2,1,0)
  40122. 40h 16 BYTEs unused (hard-wired to 00h)
  40123. 44h BYTE ??? (AMI BIOS writes 00h)
  40124. 45h BYTE ??? (AMI BIOS writes 00h)
  40125. 50h BYTE Host CPU Selection (see #01056)
  40126. 51h BYTE deturbo frequency control register
  40127. when deturbo mode is selected (see PORT 0CF9h), the chipset
  40128. places a hold on the memory bus for a fraction of the
  40129. time inversely proportional to the value in this register
  40130. by comparing it against a free-running 8-bit counter counting
  40131. at 1/8 the CPU clock speed
  40132. (i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
  40133. (only bits 7-6 writable, bits 5-0 hardwired to 0)
  40134. 52h BYTE Secondary Cache Control (see #01057)
  40135. 53h BYTE Host Read/Write Buffer Control (see #01058)
  40136. 54h BYTE PCI Read/Write Buffer Control
  40137. bits 7-3: reserved
  40138. bit 2: LBXs connected to TRDY#
  40139. bit 1: enable PCI burst writes
  40140. bit 0: enable PCI-to-memory posted writes
  40141. 55h 2 BYTEs reserved
  40142. 57h BYTE DRAM Control (see #01059)
  40143. 58h BYTE DRAM Timing (see also #01117)
  40144. bits 7-2: reserved
  40145. bit 1: (NX only) RAS# Wait State
  40146. bit 0: CAS# Wait State (one extra wait state before CAS#
  40147. within burst cycle)
  40148. 59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #01118)
  40149. 60h 8 BYTEs DRAM Row Boundary registers 0-7
  40150. (chip revisions numbered < 10h [LX] only support six rows of
  40151. DRAM)
  40152. each register N indicates the amount of cumulative amount of
  40153. memory in SIMM banks 0-N, in multiples of 1M; offset 67h
  40154. (65h on 82434LX's) contains the total amount of memory
  40155. installed in the system; on the 82434NX, two additional
  40156. bits are concatenated to each row boundary from the DRAM Row
  40157. Boundary Extension registers to allow up to 1024M of memory
  40158. to be specified (though only 512M are supported)
  40159. 68h 4 BYTEs (NX only) DRAM Row Boundary Extension registers
  40160. each nybble is concatenated with the corresponding DRAM Row
  40161. Boundary register to form a 12-bit boundary value (of which
  40162. only the low 10 bits are actually used)
  40163. 6Ch DWORD reserved (hardwired to 00000000h)
  40164. 70h BYTE Error Command (see #01060)
  40165. 71h BYTE Error Status (see #01061)
  40166. 72h BYTE System Management RAM control (see also #01123)
  40167. bits 7-6: reserved
  40168. bit 5: map SMM-mode memory (64K) into address space when bits
  40169. 2-0 = 010 (default 3000h:0000h; can be changed by
  40170. first SMM event)
  40171. bit 4: close SMRAM space (allows data accesses to be forwarded
  40172. to PCI bus while execuding SMM code)
  40173. bit 3: lock SMRAM space (can't be cleared by software)
  40174. bits 2-0: SMRAM memory address (010 = Axxxxh, 011 = Bxxxxh)
  40175. 73h 5 BYTEs reserved
  40176. 78h WORD Memory Space Gap
  40177. bit 15: enable ISA hole
  40178. bits 14-12: size of ISA hole in MB (less 1); must be power of 2
  40179. bits 11-8: reserved
  40180. bits 7-4: bottom of ISA memory hole in MB
  40181. (must be multiple of gap size)
  40182. bits 3-0: reserved
  40183. 7Ah 2 BYTEs reserved
  40184. 7Ch DWORD Frame Buffer Range (see #01062)
  40185. 80h 128 BYTEs reserved
  40186. Note: the 82434NX is part of the Intel Neptune chipset
  40187. SeeAlso: #01064,#01083
  40188. Bitfields for Intel 82434LX/NX Host CPU Selection:
  40189. Bit(s) Description (Table 01056)
  40190. 7-5 host CPU type
  40191. LX: hardwired to 100 (Pentium)
  40192. NX: "reserved" (101 on RB's system)
  40193. 4-3 reserved
  40194. 2 enable L1 cache
  40195. 1-0 Host Operating Frequency (set according to external bus speed)
  40196. 00: reserved
  40197. 01: 50 MHz
  40198. 10: 60 MHz
  40199. 11: 66 MHz
  40200. (LX: bit 1 reserved, only 60/66 MHz supported)
  40201. SeeAlso: #01055,#01057
  40202. Bitfields for Intel 82434LX/NX Secondary Cache Control:
  40203. Bit(s) Description (Table 01057)
  40204. 7-6 secondary cache size
  40205. 00 none
  40206. 01 reserved
  40207. 10 256K
  40208. 11 512K
  40209. 5 SRAM type
  40210. 0 standard SRAMs
  40211. 1 burst SRAMs
  40212. 4 secondary cache allocation
  40213. 0 cache only CPU reads of memory with CACHE# asserted
  40214. 1 cache all CPU reads of cacheable memory
  40215. 3 Cache Byte Control
  40216. 0 use single write enable and per-byte select lines
  40217. 1 use per-byte write enables on the cache
  40218. 2 (NX only) SRAM connectivity
  40219. 0 disable CCS[1:0]# / CCS1# functionality
  40220. 1 enable CCS[1:0]# functionality to de-select async SRAMs, placing them
  40221. in a low-power standby mode
  40222. 1 enable CCS1# functionality for burst SRAMs, indicating the lack of an
  40223. external address latch
  40224. 1 (LX only) Secondary Cache Write Policy
  40225. 0 write-through
  40226. 1 write-back (NX is always in write-back mode)
  40227. 0 Secondary Cache Enable
  40228. SeeAlso: #01055,#01058
  40229. Bitfields for Intel 82434LX/NX Host Read/Write Buffer Control:
  40230. Bit(s) Description (Table 01058)
  40231. 7-4 reserved
  40232. 3 enable read-around-write
  40233. 2 reserved
  40234. 1 enable CPU-to-PCI posted writes
  40235. 0 (LX only) enable CPU-to-memory posted writes
  40236. (NX always posts memory writes)
  40237. SeeAlso: #01055,#01057
  40238. Bitfields for Intel 82434LX/NX DRAM Control:
  40239. Bit(s) Description (Table 01059)
  40240. 7-6 (NX only) DRAM burst timing
  40241. 00 X-4-4-4 read/write (default)
  40242. 01 X-4-4-4 read, X-3-3-3 write
  40243. 10 reserved
  40244. 11 X-3-3-3 read/write
  40245. 5 parity error mask
  40246. 4 0-Active RAS# mode
  40247. 3 SMRAM enable (must be set to enable reg 72h)
  40248. 2 Burst-of-Four Refresh
  40249. 1 Refresh Type
  40250. =0 RAS#-only
  40251. =1 CAS#-before-RAS#
  40252. 0 DRAM Refresh Enable
  40253. SeeAlso: #01055
  40254. Bitfields for Intel 82434LX/NX Error Command register:
  40255. Bit(s) Description (Table 01060)
  40256. 7 assert SERR# on receiving target abort
  40257. 6 assert SERR# on PCI data-write parity error
  40258. 5 (NX only) assert SERR# on PCI data-read parity error
  40259. 4 (NX only) assert SERR# on PCI address parity error
  40260. 3 (NX only) assert PERR# on data parity error
  40261. 2 enable L2 cache parity
  40262. 1 enable SERR# on DRAM/L2 cache data parity error
  40263. 0 assert PEN# on data reads; allow CPU to signal parity error via PCHK#
  40264. Notes: PCI command register bit 6 is master enable for bit 3;
  40265. PCI cmd bits 6 and 8 are the master enable for bits 7-4 and 1
  40266. bits 1-0 = 10 is not permitted
  40267. SeeAlso: #01055,#01061
  40268. Bitfields for Intel 82434LX/NX Error Status register:
  40269. Bit(s) Description (Table 01061)
  40270. 7 reserved
  40271. 6 PCI-write detected parity error
  40272. 5 (NX only) PCI-read detected parity error
  40273. 4 (NX only) PCI address parity error detected
  40274. 3 main memory data parity error
  40275. 2 L2 cache data parity error
  40276. 1 reserved
  40277. 0 Shutdown cycle detected
  40278. Note: clear status bits by writing a 'one' bit to each bit to be cleared
  40279. SeeAlso: #01060,#01055
  40280. Bitfields for Intel 82434LX/NX Frame Buffer Range register:
  40281. Bit(s) Description (Table 01062)
  40282. 31-20 buffer offset (in 1MB increments; must be multiple of buffer set set
  40283. by bits 3-0)
  40284. 19-14 reserved
  40285. 13 enable byte merging
  40286. 12 128K VGA-range Attribute Enable
  40287. when set, bits 13,9,7 also apply to VGA memory range (Axxxx-Bxxxx)
  40288. 11-10 reserved
  40289. 9 no lock requests
  40290. 8 reserved
  40291. 7 enable transparent bufer writes
  40292. 6-4 reserved
  40293. 3-0 buffer size in MB (less 1); must be power of 2
  40294. Note: if bits 31-20=0, the frame buffer feature is disabled
  40295. SeeAlso: #01055
  40296. Format of PCI Configuration data for Intel 82424 Cache Controller:
  40297. Offset Size Description (Table 01063)
  40298. 00h 64 BYTEs header (see #00878)
  40299. (vendor ID 8086h, device ID 0483h)
  40300. 40h BYTE bus number
  40301. 41h BYTE subordinate bus number
  40302. 42h BYTE disconnect timer
  40303. 50h BYTE host CPU selection
  40304. 51h BYTE deturbo frequency control
  40305. when deturbo mode is selected (see PORT 0CF9h), the chipset
  40306. places a hold on the memory bus for a fraction of the
  40307. time inversely proportional to the value in this register
  40308. (i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
  40309. 52h BYTE secondary cache control
  40310. 53h BYTE write buffer control
  40311. 54h BYTE PCI features control
  40312. 55h BYTE DRAM Operation Mode Select
  40313. 56h BYTE System Exception Handling
  40314. 57h BYTE SMM Control Register
  40315. 58h BYTE reserved
  40316. 59h 7 BYTEs Programmable Attribute Map registers 0-6 (see also #01118)
  40317. 60h 4 BYTEs DRAM Row Boundary registers 0-3
  40318. each register N indicates amount of memory in rows 0-N (each
  40319. row is 64 bits wide)
  40320. boundary register 3 (offset 63h) contains the total system
  40321. memory, which may not exceed 128M
  40322. 64h 4 BYTEs unused???
  40323. 68h WORD Memory Hole-0
  40324. 6Ah WORD Memory Hole-1
  40325. Note: the above field names are those given by EduWARE's PCI Configuration
  40326. Manager v1.2
  40327. SeeAlso: #01055,#01083,#01108
  40328. Format of PCI Configuration data for Intel 82378 and 82379 ISA Bridges:
  40329. Offset Size Description (Table 01064)
  40330. 00h 64 BYTEs header (see #00878)
  40331. (vendor ID 8086h, device ID 0484h)
  40332. (revision ID:
  40333. bits 7-4: reserved
  40334. bits 3-0: revision
  40335. 0011 82378ZB A0-step
  40336. 1000 82379AB A0-step)
  40337. 40h BYTE PCI Control (see #01065)
  40338. 41h BYTE PCI Arbiter Control (see #01066)
  40339. 42h BYTE PCI Arbiter Priority Control (see #01067)
  40340. 43h BYTE (82378ZB) PCI Arbiter Priority Control Extension Register
  40341. bit 0: bank 3 fixed priority mode select (see also #01067)
  40342. =0 REQ2# has higher priority
  40343. =1 REQ3# has higher priority
  40344. 44h BYTE MEMCS# Control (see #01068)
  40345. 45h BYTE MEMCS# Bottom of Hole (address bits 23-16)
  40346. 46h BYTE MEMCS# Top of Hole (address bits 23-16)
  40347. 47h BYTE MEMCS# Top of Memory
  40348. (address bits 28-21 == size in 2M increments, less 1)
  40349. 48h BYTE ISA Address Decoder Control (see #01069)
  40350. 49h BYTE ISA Address Decoder ROM Block Enable (see #01070)
  40351. 4Ah BYTE ISA Address Decoder Bottom of Hole (address bits 23-16)
  40352. 4Bh BYTE ISA Address Decoder Top of Hole (address bits 23-16)
  40353. 4Ch BYTE ISA Controller Recovery Time (see #01087)
  40354. 4Dh BYTE ISA Clock Divisor (see #01071)
  40355. 4Eh BYTE Utility Bus Chip Select Enable A (see #01072)
  40356. 4Fh BYTE Utility Bus Chip Select Enable B (see #01073)
  40357. 50h 4 BYTEs reserved
  40358. 54h BYTE MEMCS# Attribute Register #1 (see #01074)
  40359. attributes for 16K blocks from C0000h-CFFFFh
  40360. 55h BYTE MEMCS# Attribute Register #2 (see #01074)
  40361. attributes for 16K blocks from D0000h-DFFFFh
  40362. 56h BYTE MEMCS# Attribute Register #3 (see #01074)
  40363. attributes for 16K blocks from E0000h-EFFFFh
  40364. 57h BYTE (82378) Scatter/Gather Relocation Base Adress (see #01075)
  40365. (82379AB) reserved
  40366. 58h 8 BYTEs reserved
  40367. 60h BYTE (82378ZB) IRQ0# Route Control (see #01076)
  40368. 61h BYTE (82378ZB) IRQ1# Route Control (see #01076)
  40369. 62h BYTE (82378ZB) IRQ2# Route Control (see #01076)
  40370. 63h BYTE (82378ZB) IRQ3# Route Control (see #01076)
  40371. 64h 12 BYTEs reserved
  40372. 70h BYTE (82378) reserved
  40373. (82379AB, write-only) PIC/APIC Configuration Control
  40374. (see #01077)
  40375. 71h BYTE (82378) reserved
  40376. (82379AB, write-only) APIC Base Address Relocation
  40377. (see #01078,MEM FEC00000h)
  40378. 72h 14 BYTEs reserved
  40379. 80h WORD BIOS timer base address (see PORT 0078h)
  40380. bits 15-2 are bits 15-2 of BIOS timer port address
  40381. bit 1: reserved (0)
  40382. bit 0: timer enabled (if disabled, other bits ignored)
  40383. 82h 30 BYTEs unused???
  40384. A0h BYTE SMI Control (see #01079)
  40385. A1h BYTE reserved
  40386. A2h WORD SMI Enable (see #01080)
  40387. A4h DWORD System Event Enable (SEE) (see #01081)
  40388. A8h BYTE Fast-Off Timer (in minutes)
  40389. A9h BYTE reserved
  40390. AAh WORD active SMI Requests (see #01082)
  40391. ACh BYTE (82378ZB) Clock Throttle STPCLK# Low Timer
  40392. duration of STPCLK# low period in 32 microsecond units
  40393. ADh BYTE reserved
  40394. AEh BYTE (82378ZB) Clock Throttle STPCLK# High Timer
  40395. duration of STPCLK# high period in 32 microsecond units
  40396. AFh 81 BYTEs reserved
  40397. SeeAlso: #01055,#01167,PORT 040Ah"82378ZB"
  40398. Bitfields for Intel 82378/82379 PCI Control:
  40399. Bit(s) Description (Table 01065)
  40400. 7 reserved (0)
  40401. 6 DMA Reserved Page Register Aliasing Control
  40402. =0 alias PORT 80h-8Fh to PORT 90h-9Fh
  40403. 5 Interrupt Acknowledge Enable
  40404. =0 ignore INTA cycles on the PCI bus, but still allow 8259 register
  40405. access and poll-mode functions
  40406. 4-3 Subtractive Decoding Sample Point
  40407. 00 slow sample point
  40408. 01 typical
  40409. 10 fast sample point
  40410. 11 reserved
  40411. 2 PCI Posted Write Buffer Enable
  40412. 1 ISA Master Line Buffer Configuration
  40413. =0 single-transaction mode
  40414. =1 eight-byte mode for ISA bus master transfers
  40415. 0 DMA Line Buffer Configuration
  40416. =0 single-transaction mode
  40417. =1 eight-byte mode
  40418. SeeAlso: #01064,#01066
  40419. Bitfields for Intel 82378/82379 PCI Arbiter Control:
  40420. Bit(s) Description (Table 01066)
  40421. 7-5 reserveed (0)
  40422. 4-3 Master Retry Timer
  40423. 00 disabled (retries never masked)
  40424. 01 retries unmasked after 16 PCICLKs
  40425. 10 retries unmasked after 32 PCICLKs
  40426. 11 retries unmasked after 64 PCICLKs
  40427. 2 Bus Park
  40428. =1 park CPUREQ# on PCI bus when 82378 detects PCI bus idle
  40429. 1 Bus Lock
  40430. =0 resource lock
  40431. =1 Bus lock
  40432. 0 Guaranteed Access Time
  40433. =1 ISA bus masters are guaranteed 2.5 microsecond CHRDY time-out
  40434. SeeAlso: #01064,#01065
  40435. Bitfields for Intel 82378/82379 PCI Arbiter Priority Control:
  40436. Bit(s) Description (Table 01067)
  40437. 7 bank 3 rotate control
  40438. 6 bank 2 rotate control
  40439. 5 bank 1 rotate control
  40440. 4 bank 0 rotate control
  40441. 3 bank 2 fixed priority mode select B
  40442. 2 bank 2 fixed priority mode select A
  40443. 1 bank 1 fixed priority mode select
  40444. 0 bank 0 fixed priority mode select
  40445. Note: if both 'rotate' and 'fixed' bits are set for a given bank,
  40446. that bank will be in rotating-priority mode
  40447. SeeAlso: #01064,#01066
  40448. Bitfields for Intel 82378/82379 MEMCS# Control Register:
  40449. Bit(s) Description (Table 01068)
  40450. 7-5 reserved (0)
  40451. 4 MEMCS# Master Enable
  40452. 3 write enable for 0F0000h-0FFFFFh
  40453. 2 read enable for 0F0000h-0FFFFFh
  40454. 1 write enable for 080000h-09FFFFh
  40455. 0 read enable for 080000h-09FFFFh
  40456. SeeAlso: #01064
  40457. Bitfields for Intel 82378/82379 ISA Address Decoder Control Register:
  40458. Bit(s) Description (Table 01069)
  40459. 7-4 ISA memory cycle forwarding to PCI
  40460. 0000-1111 = 1M-16M top of ISA memory; any accesses above programmed
  40461. limit are forwarded to PCI bus
  40462. 3-0 ISA/DMA memory cycle to PCI bus enables
  40463. bit 3: 896K-960K (E000h-EFFFh)
  40464. bit 2: 640K-768K (A000h-BFFFh)
  40465. bit 1: 512K-640K (8000h-9FFFh)
  40466. bit 0: 0K-512K (0000h-7FFFh)
  40467. SeeAlso: #01064,#01070
  40468. Bitfields for Intel 82378/82379 ISA Address Decoder ROM Block Enable:
  40469. Bit(s) Description (Table 01070)
  40470. 7 enable 880K-896K (EC00h-EFFFh)
  40471. 6 enable 864K-880K (E800h-EBFFh)
  40472. 5 enable 848K-864K (E400h-E7FFh)
  40473. 4 enable 832K-848K (E000h-E3FFh)
  40474. 3 enable 816K-832K (DC00h-DFFFh)
  40475. 2 enabel 800K-816K (D800h-DBFFh)
  40476. 1 enable 784K-800K (D400h-D7FFh)
  40477. 0 enable 768K-784K (D000h-D3FFh)
  40478. Note: ISA accesses within any enabled ranges are forwarded to the PCI bus
  40479. SeeAlso: #01064,#01069
  40480. Bitfields for Intel 82378/82379 ISA Clock Divisor Register:
  40481. Bit(s) Description (Table 01071)
  40482. 7 reserved (0)
  40483. 6 enable positive decode of upper 64K BIOS at 000F0000h-000FFFFFh,
  40484. FFEF0000h-FFEFFFFFh, and FFFF0000h-FFFFFFFFh
  40485. 5 coprocessor error enable
  40486. =1 FERR# is driven onto IRQ13
  40487. 4 IRQ12/Mouse Function Enable
  40488. =0 standard IRQ12
  40489. =1 mouse
  40490. 3 RSTDRV enable
  40491. =1 assert RSTDRV until this bit cleared (for use in changing ISA bus
  40492. speed)
  40493. 2-0 PCICLK-to-ISA SYSCLK divisor
  40494. 000 4
  40495. 001 3
  40496. other reserved
  40497. SeeAlso: #01064,#01069
  40498. Bitfields for Intel 82378/82379 Utility Bus Chip Select A Register:
  40499. Bit(s) Description (Table 01072)
  40500. 7 extended BIOS enable (decode accesses to FFF80000h-FFFDFFFFh)
  40501. 6 lower BIOS enable (decode accesses to E0000h-EFFFFh,
  40502. FFEE0000h-FFEEFFFFh, and FFFE0000h-FFFEFFFFh)
  40503. 5 (82378ZB) floppy disk primary/secondary address select
  40504. =1 use secondary address range
  40505. 4 (82378ZB) IDE Decode enable
  40506. 3,2 floppy disk address locations enable
  40507. 1 keyboard controller address location enable
  40508. enables I/O addresses 60h,62h,64h,66h (82378ZB) or 60h/64h (82379AB)
  40509. 0 RTC address location enabled
  40510. =1 enable decode of I/O ports 70h-77h
  40511. SeeAlso: #01064,#01089,#01073
  40512. Bitfields for Intel 82378ZB/82379 Utility Bus Chip Select B Register:
  40513. Bit(s) Description (Table 01073)
  40514. 7 configuration RAM decode enable
  40515. =1 permit write accesses to I/O port 0C00h and r/w to ports 08xxh
  40516. 6 enable PORT 0092h
  40517. 5-4 parallel port enable
  40518. 00 LPT1 (ports 03BCh-03BFh)
  40519. 01 LPT2 (ports 0378h-037Fh)
  40520. 10 LPT3 (ports 0278h-027Fh)
  40521. 11 disabled
  40522. 3-2 serial port B enable
  40523. 00 COM1 (03F8h-03FFh)
  40524. 01 COM2 (02F8h-02FFh)
  40525. 10 reserved
  40526. 11 port B disabled
  40527. 1-0 serial port A enable
  40528. 00 COM1 (03F8h-03FFh)
  40529. 01 COM2 (02F8h-02FFh)
  40530. 10 reserved
  40531. 11 port A disabled
  40532. Note: if both serial ports are set to the same address, port B is disabled
  40533. SeeAlso: #01064,#01072,PORT 0092h
  40534. Bitfields for Intel 82378/82379 MEMCS# Attribute Register 1/2/3:
  40535. Bit(s) Description (Table 01074)
  40536. 7 write-enable xC000h-xFFFFh expansion ROM
  40537. 6 read-enable xC000h-xFFFFh expansion ROM
  40538. 5 write-enable x8000h-xBFFFh expansion ROM
  40539. 4 read-enable x8000h-xBFFFh expansion ROM
  40540. 3 write-enable x4000h-x7FFFh expansion ROM
  40541. 2 read-enable x4000h-x7FFFh expansion ROM
  40542. 1 write-enable x0000h-x3FFFh expansion ROM
  40543. 0 read-enable x0000h-x3FFFh expansion ROM
  40544. Note: x = C/D/E depending on the attribute register
  40545. SeeAlso: #01064
  40546. Bitfields for Intel 82378ZB Scatter Gather Relocation Base Address:
  40547. Bit(s) Description (Table 01075)
  40548. 7-0 bits 15-8 of base address for scatter/gather I/O ports
  40549. (default 04h; low 8 bits of address are always 10h-3Fh)
  40550. SeeAlso: #01064,#01074,#01076,PORT 040Ah"82378ZB",#P0039
  40551. Bitfields for Intel 82371/82378/82379 PCI IRQ Route Control Register:
  40552. Bit(s) Description (Table 01076)
  40553. 7 disable IRQ routing
  40554. 6-4 reserved (0)
  40555. 3-0 ISA IRQ number to which to route the PCI IRQ
  40556. Note: IRQs 0-2, 8, and 13 are reserved
  40557. SeeAlso: #01064,#01167,#01100
  40558. Bitfields for Intel 82379AB PIC/APIC Configuration Control Register:
  40559. Bit(s) Description (Table 01077)
  40560. 7-2 reserved
  40561. 1 SMI Routing Control
  40562. =1 SMI via APIC
  40563. =0 SMI via SMI# signal
  40564. 0 INT Routing Control
  40565. =1 INT disabled (requires that APIC be enabled)
  40566. =0 INT enabled
  40567. SeeAlso: #01064,#01078
  40568. Bitfields for Intel 82379AB/82371 APIC Base Address Relocation:
  40569. Bit(s) Description (Table 01078)
  40570. 7 reserved
  40571. 6 (82379AB) reserved
  40572. 6 (82371) A12 mask
  40573. =1 ignore address bit 12 in APIC address
  40574. 5-0 bits 15-10 of APIC memory address (ORed with FEC00000h to form base
  40575. address)
  40576. SeeAlso: #01064,#01167,#01077,MEM FEC00000h
  40577. Bitfields for Intel 82378/82379 SMI Control Register:
  40578. Bit(s) Description (Table 01079)
  40579. 7 reserved
  40580. 6 (82378) reserved
  40581. (82379) require Stop Grant bus cycle before asserting STPCLK#
  40582. 5-4 reserved
  40583. 3 Fast-Off Timer freeze
  40584. 2 STPCLK# scaling enable
  40585. =1 enable Clock Throttle bytes in PCI configuration space
  40586. 1 STPCLK# signal enable
  40587. =1 assert STPCLK# on read from PORT 00B2h
  40588. 0 SMI# Gate
  40589. =1 enable SMI# on system management interrupt
  40590. Notes: bit 1 is cleared either with an explicit write of 0 here, or by any
  40591. write to PORT 00B2h
  40592. bit 0 does not affect the recording of SMI events, so a pending SMI
  40593. will cause an immediate SMI# when the bit is set
  40594. SeeAlso: #01064,#01080,#01081,#01222,PORT 00B2h
  40595. Bitfields for Intel 82371/82378/82379 SMI Enable Register:
  40596. Bit(s) Description (Table 01080)
  40597. 15-9 reserved
  40598. 8 (82371SB only) Legacy USB SMI enable
  40599. 7 APMC Write SMI enable
  40600. =1 generate SMI on write to PORT 00B2h
  40601. 6 EXTSMI# SMI enable
  40602. 5 Fast-Off Timer SMI enable
  40603. 4 IRQ12 (PS/2 mouse) SMI enable
  40604. 3 IRQ8 (RTC alarm) SMI enable
  40605. 2 IRQ4 (COM1/COM3) SMI enable
  40606. 1 IRQ3 (COM2/COM4) SMI enable
  40607. 0 IRQ1 (keyboard) SMI enable
  40608. SeeAlso: #01064,#01079,#01081,#01167,PORT 00B2h
  40609. Bitfields for Intel 82371/82378/82379 System Event Enable Register:
  40610. Bit(s) Description (Table 01081)
  40611. 31 Fast-Off SMI enable (system and break events)
  40612. 30 (82379 only) Fast-Off Interrupt Enable (break events only)
  40613. 30 (82371 only) INTR enable (break events only)
  40614. 29 Fast-Off NMI enable (system and break events)
  40615. 28 (82371SB only) Fast-Off APIC enable (break events only)
  40616. 27 (82379 only) Fast-Off COM enable (system events only)
  40617. 26 (82379 only) Fast-Off LPT enable (system events only)
  40618. 25 (82379 only) Fast-Off Drive enable (system events only)
  40619. 24 (82379 only) Fast-Off DMA enable (system events only)
  40620. 23-16 reserved
  40621. 15-3 Fast-Off IRQ (15-3) enable (system and break events)
  40622. 2 reserved
  40623. 1-0 Fast-Off IRQ (1-0) enable (system and break events)
  40624. Note: any enabled system event restarts the Fast-Off Timer, thus preventing
  40625. a Fast-Off powerdown; any enabled break event awakens the system from
  40626. powerdown
  40627. SeeAlso: #01064,#01079,#01080,#01082,#01167
  40628. Bitfields for Intel 82371/82378/82379 SMI Request Register:
  40629. Bit(s) Description (Table 01082)
  40630. 15-9 reserved
  40631. 8 (82371SB only) Legacy USB SMI status
  40632. 7 APM SMI Status (write to PORT 00B2h triggered SMI)
  40633. 6 EXTSMI# SMI Status (EXTSMI# line triggered SMI)
  40634. 5 Fast-Off Timer expired
  40635. 4 IRQ12 triggered SMI
  40636. 3 IRQ8 triggered SMI
  40637. 2 IRQ4 triggered SMI
  40638. 1 IRQ3 triggered SMI
  40639. 0 IRQ1 triggered SMI
  40640. Note: software must explicitly reset the appropriate bits
  40641. SeeAlso: #01064,#01081,#01167
  40642. Format of PCI Configuration data for Intel 82425EX PSC:
  40643. Offset Size Description (Table 01083)
  40644. 00h 64 BYTEs header (see #00878)
  40645. (vendor ID 8086h, device ID 0486h)
  40646. 40h BYTE PCI control register (see #01084)
  40647. 41h 3 BYTEs ???
  40648. 44h BYTE host device control register (see #01085)
  40649. 45h 3 BYTEs ???
  40650. 48h WORD PCI local-bus IDE control register (see #01086)
  40651. 4Ah 2 BYTEs ???
  40652. 4Ch BYTE ISA I/O recovery timer register (see #01087)
  40653. 4Dh BYTE part revision register (see #01088)
  40654. 4Eh BYTE X-bus Chip Select A register (see #01089)
  40655. 4Fh BYTE X-bus Chip Select B register??? (see also #01102)
  40656. 50h BYTE host select register
  40657. 51h BYTE deturbo frequency control register
  40658. when deturbo mode is selected (see PORT 0CF9h), the chipset
  40659. places a hold on the memory bus for a fraction of the
  40660. time inversely proportional to the value in this register
  40661. (i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
  40662. 52h WORD secondary (L2) cache control register
  40663. 54h 2 BYTEs ???
  40664. 56h WORD DRAM control register
  40665. 58h BYTE ???
  40666. 59h 7 BYTEs Programmable Attribute Map (PAM) registers 0-6 (see also #01118)
  40667. 60h 5 BYTEs DRAM row boundary registers 0-4
  40668. each register N indicates amount of memory in rows 0-N (each
  40669. row is 64 bits wide); the fifth row of memory (if
  40670. implemented) must contain either 8M or 16M, depending on
  40671. system configuration
  40672. boundary register 4 (offset 64h) contains the total system
  40673. memory, which may not exceed 128M
  40674. 65h BYTE ???
  40675. 66h BYTE PIRQ route control register 0
  40676. 67h BYTE PIRQ route control register 1
  40677. 68h BYTE DRAM memory hole register
  40678. 69h BYTE top of memory
  40679. 6Ah 6 BYTEs ???
  40680. 70h BYTE SMRAM control register
  40681. 71h 47 BYTEs unused???
  40682. A0h BYTE SMI control register
  40683. A1h BYTE ???
  40684. A2h WORD SMI enable register
  40685. A4h DWORD system event enable
  40686. A8h BYTE fast off timer register
  40687. A9h BYTE ???
  40688. AAh WORD SMI request register
  40689. ACh BYTE clock throttle STPCLK# low timer
  40690. ADh BYTE unused???
  40691. AEh BYTE clock throttle STPCLK# high timer
  40692. AFh BYTE ???
  40693. B0h 80 BYTEs unused???
  40694. SeeAlso: #00878,#01063,#01055,#01108,#01167
  40695. Bitfields for Intel 82425EX PCI control register:
  40696. Bit(s) Description (Table 01084)
  40697. 0 CPU-to-PCI byte merging
  40698. 1 CPU-to-PCI bursting enable
  40699. 2 PCI posted-write buffer enable
  40700. 4-3 subtractive decode sampling point
  40701. 00 slow
  40702. 01 typical
  40703. 10 fast
  40704. 11 reserved
  40705. 5 DRAM parity error enable
  40706. 6 target abort error enable
  40707. 7 reserved
  40708. SeeAlso: #01083,#01085,#01086,#01087
  40709. Bitfields for Intel 82425EX host device control register:
  40710. Bit(s) Description (Table 01085)
  40711. 0 HRDY# maximum signal sampling point
  40712. 0 slow timing
  40713. 1 fast timing
  40714. 1 HDEV# signal sampling point
  40715. 0 slow timing
  40716. 1 fast timing
  40717. 2 host device present
  40718. 7-3 reserved
  40719. SeeAlso: #01083,#01084
  40720. Bitfields for Intel 82425EX local-bus IDE control register:
  40721. Bit(s) Description (Table 01086)
  40722. 1-0 primary/secondary PCI IDE enable
  40723. 00 IDE disabled
  40724. 01 primary (ports 01F0h-01F7h,03F6,03F7h)
  40725. 10 secondary (ports 0170h-017Fh,0376h,0377h)
  40726. 11 reserved
  40727. 3-2 fast timing bank drive select 1
  40728. bit 2 = drive 0 enabled
  40729. bit 3 = drive 1 enabled
  40730. 5-4 IORDY sample point Enable Drive Select
  40731. bit 4 = drive 0 enabled
  40732. bit 5 = drive 1 enabled
  40733. 7-6 reserved
  40734. 9-8 IORDY sample point
  40735. 00 6 clocks
  40736. 01 5 clocks
  40737. 10 4 clocks
  40738. 11 3 clocks
  40739. 12-10 recover time (000 = 8 PCI clocks, 001 = 7, ..., 101 = 3, 110/111 = 3)
  40740. 15-13 reserved
  40741. SeeAlso: #01083,#01084
  40742. Bitfields for Intel chipset ISA I/O recovery timer register:
  40743. Bit(s) Description (Table 01087)
  40744. 7 (82425EX/82371) DMA reserved page register aliasing disable
  40745. =0 ports 0090h-009Fh alias ports 0080h-008Fh
  40746. =1 ports 0090h-009Fh forwarded to ISA bus
  40747. 6 8-bit I/O recovery enable
  40748. 5-3 8-bit I/O recovery time
  40749. 000 = 8 SYSCLKs
  40750. 001-110 = 1-7 SYSCLKs
  40751. 2 16-bit I/O recovery enable
  40752. 1-0 16-bit I/O recovery time
  40753. 00 = 4 SYSCLKs
  40754. 01-11 = 1-3 SYSCLKs
  40755. SeeAlso: #01064,#01083,#01084,#01167,#01170
  40756. Bitfields for Intel 82425EX part revision register:
  40757. Bit(s) Description (Table 01088)
  40758. 7-5 fabrication house identifier (read-only)
  40759. 4 E0000h-EFFFFh ISA-to-main-memory forwarding enabled
  40760. 3-0 revision ID (read-only)
  40761. SeeAlso: #01083,#01089
  40762. Bitfields for Intel 82425EX/82371 X-bus Chip Select A register:
  40763. Bit(s) Description (Table 01089)
  40764. 7 extended BIOS enabled at FFF80000h-FFFDFFFFh
  40765. 6 lower (E000h) BIOS enabled
  40766. 5 trigger IRQ13 on FERR#
  40767. 4 IRQ12 mouse function enabled
  40768. 3 (82371AB only) alias accesses to PORTs 63h/65h/67h to 61h
  40769. (else) reserved (0)
  40770. 2 BIOS memory write protect
  40771. 1 keyboard controller addresses (60h,62h,64h,66h) enabled
  40772. 0 RTC addresses (70h-77h) enabled
  40773. SeeAlso: #01083,#01167,#01088,#01102
  40774. Format of PCI Configuration Data for Intel 82380AB PCI-ISA Bridge:
  40775. Offset Size Description (Table 01090)
  40776. 00h 64 BYTEs header (see #00878)
  40777. (vender ID 8086h, device ID 123Ch)
  40778. 40h BYTE I/O Recovery Register (see #01091)
  40779. 41h BYTE reserved
  40780. 42h BYTE MISA Error Status (see #01092)
  40781. 43h 189 BYTEs reserved
  40782. SeeAlso: #00873,#01093
  40783. Bitfields for Intel 82380AB I/O Recovery Register:
  40784. Bit(s) Description (Table 01091)
  40785. 7 SYSCLK select
  40786. 0 SYSCLK = PCICLK/4
  40787. 1 SYSCLK = PCICLK/3
  40788. 6 enable 8-bit I/O recovery
  40789. 5-3 additional recovery time for 8-bit I/O cycles, in SYSCLKs
  40790. 2 enable 16-bit I/O recovery
  40791. 1-0 additional recovery time for 16-bit I/O cycles, in SYSCLKs
  40792. SeeAlso: #01090
  40793. Bitfields for Intel 82380AB MISA error status:
  40794. Bit(s) Description (Table 01092)
  40795. 7-3 reserved
  40796. 2 IOCHK# asserted
  40797. 1 reserved
  40798. 0 illegal byte lane combination for PCI I/O detected
  40799. SeeAlso: #01090
  40800. Format of PCI Configuration data for Intel 82380FB PCI-PCI Bridge (MPCI2):
  40801. Offset Size Description (Table 01093)
  40802. 00h 64 BYTEs header type 1 [bridge] (see #00878)
  40803. (vendor ID 8086h, device ID 124Bh)
  40804. 40h BYTE Connector Control (see #01094)
  40805. 41h BYTE Connector Event (see #01095)
  40806. 42h 2 BYTEs reserved
  40807. 44h WORD Serial Bus Interface/Burst Enable (see #01096)
  40808. 46h BYTE MPCI2 Miscellaneous Status (see #01097)
  40809. 47h 5 BYTEs reserved
  40810. 4Ch WORD Special Message Encode
  40811. encoded message portion of Special Cycle forwarded by MPCI2
  40812. 4Eh 178 BYTEs reserved
  40813. SeeAlso: #00873,#01090
  40814. Bitfields for Intel 82380FB Connector Control register:
  40815. Bit(s) Description (Table 01094)
  40816. 7-4 reserved
  40817. 3 QEN2 output signal
  40818. 2 QEN1 output signal
  40819. 1-0 reserved
  40820. SeeAlso: #01093
  40821. Bitfields for Intel 82380FB Connector Event register:
  40822. Bit(s) Description (Table 01095)
  40823. 7 reserved (1)
  40824. 6 activate power-no suspend
  40825. 5 (read-only) inverted state of MISAEN pin
  40826. 4 (read-only) inverted state of DSTYP pin
  40827. 3 undocking permit
  40828. software should set this bit for at least 32 microseconds; when this
  40829. bit is then cleared, the MPCI2 pulses the OPENACK signal for 256 us
  40830. to tell external hardware to "eject" the notebook
  40831. 2 reserved (1)
  40832. 1 system is docked
  40833. 0 open requested
  40834. SeeAlso: #01093
  40835. Bitfields for Intel 82380FB Serial Interface/Burst Enable register:
  40836. Bit(s) Description (Table 01096)
  40837. 15-13 reserved
  40838. 12 enable SERR# on discarding of posted write data
  40839. 11 reserved
  40840. 10 SDATA signal direction (0 = output, 1 = input)
  40841. 9 enable write posting
  40842. 8 enable read bursting
  40843. 7 enable upstream blind prefetching
  40844. 6 reserved
  40845. 5 SDATA signal state (read when bit 10 set, write when bit 10 clear)
  40846. 4 SDIN signal state
  40847. 3 do not pulse P_SERR# when S_PERR# is asserted
  40848. 2 cascade/frame determination delay (0 = 20 P_CLKs, 1 = 10 P_CLKs)
  40849. 1 serial EEPROM chip select
  40850. 0 serial EEPROM clock
  40851. SeeAlso: #01093
  40852. Bitfields for Intel 82380FB MPCI2 Miscellaneous Status register:
  40853. Bit(s) Description (Table 01097)
  40854. 7-1 reserved
  40855. 0 (write-clear) P_SERR# was asserted due to invalidation of posted write
  40856. SeeAlso: #01093
  40857. Format of PCI Configuration Data for Intel 82439HX:
  40858. Offset Size Description (Table 01098)
  40859. 00h 64 BYTEs header (see #00878)
  40860. (vender ID 8086h, device ID 1250h)
  40861. (revision ID 00h = A0 stepping)
  40862. 40h 16 BYTEs reserved
  40863. 50h BYTE PCI Control (see #01110)
  40864. 51h BYTE reserved
  40865. 52h BYTE cache control (see #01112)
  40866. 53h 3 BYTEs reserved
  40867. 56h BYTE DRAM extended control (see #01115)
  40868. 57h BYTE DRAM control (see #01116)
  40869. 58h BYTE DRAM timing (see #01117)
  40870. 59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #01118)
  40871. 60h 8 BYTEs DRAM Row Boundary registers 0-7
  40872. each register N indicates cumulative amount of memory in rows
  40873. 0-N (each 64 bits wide), in 4M units
  40874. 68h BYTE DRAM Row Type (see #01119)
  40875. bits 0-7 indicate whether each row 0-7 contains EDO DRAM
  40876. instead of page-mode DRAM
  40877. 69h BYTE ???
  40878. 6Ah 8 BYTEs reserved
  40879. 72h BYTE System Management RAM control (see #01123)
  40880. 73h 29 BYTEs reserved
  40881. 90h BYTE Error Command (see #01126)
  40882. 91h BYTE Error Status (see #01127) (read-only)
  40883. 92h BYTE Error Syndrome (read-only)
  40884. latest non-zero ECC error syndrome
  40885. 93h 109 BYTEs reserved
  40886. SeeAlso: #01108,#01229
  40887. Format of PCI Configuration Data for Intel 82439TX "MTXC":
  40888. Offset Size Description (Table 01099)
  40889. 00h 64 BYTEs header (see #00878)
  40890. (vendor ID 8086h, device ID 7100h)
  40891. (revision ID 00h = A0 stepping)
  40892. 40h 15 BYTEs reserved
  40893. 4Fh BYTE Arbitration Control register (see #01109)
  40894. 50h BYTE PCI Control register (see #01110)
  40895. 51h BYTE reserved
  40896. 52h BYTE Cache Control register (see #01112)
  40897. 53h BYTE Extended Cache Control register (see #01113)
  40898. 54h WORD SDRAM Control Register (see #01114)
  40899. 56h BYTE DRAM Extended Control register (see #01115)
  40900. 57h BYTE DRAM Control register (see #01116)
  40901. 58h BYTE DRAM Timing register (see #01117)
  40902. 59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #01118)
  40903. 60h 6 BYTEs DRAM Row Boundary registers 0-5
  40904. each register N indicates cumulative amount of memory in rows
  40905. 0-N (each 64 bits wide), in 4M units
  40906. 66h BYTE reserved
  40907. 67h BYTE DRAM Row Type High register (see #01213)
  40908. 68h BYTE DRAM Row Type Low register (see #01119)
  40909. 69h 7 BYTEs reserved
  40910. 70h BYTE Multi-Transaction Timer register
  40911. number of PCLKs guaranteed to the current agent before the
  40912. 82439TX will grant the bus to another PCI agent on request
  40913. 71h BYTE Extended System Management RAM Control register (see #01149)
  40914. 72h BYTE System Management RAM Control register (see #01123)
  40915. 73h 6 BYTEs reserved
  40916. 79h BYTE Miscellaneous Control register (see #01128)
  40917. 7Ah 134 BYTEs reserved
  40918. Note: The Intel 82439TX chipset uses PCI configuration mechanism #1
  40919. SeeAlso: #00873,PORT 0CF8h
  40920. Format of PCI Configuration Data for Intel 82371AB (PIIX4), ISA Bridge:
  40921. Offset Size Description (Table 01100)
  40922. 00h 64 BYTEs header (see #00878)
  40923. (vendor ID 8086h, device ID 7110h)
  40924. 40h 12 BYTEs reserved
  40925. 4Ch BYTE ISA I/O recovery timer (see #01101)
  40926. 4Dh BYTE reserved
  40927. 4Eh WORD X-Bus Chip Select (see #01089,#01102)
  40928. 50h 16 BYTEs reserved
  40929. 60h BYTE PIRQA route control (see #01076)
  40930. 61h BYTE PIRQB route control (see #01076)
  40931. 62h BYTE PIRQC route control (see #01076)
  40932. 63h BYTE PIRQD route control (see #01076)
  40933. !!!intel\29056201.pdf p.59
  40934. 64h BYTE serial IRQ control
  40935. 65h 4 BYTEs reserved???
  40936. 69h BYTE top of memory
  40937. 6Ah WORD miscellaneous status
  40938. 6Ch 10 BYTEs reserved???
  40939. 76h BYTE motherboard device DMA control 0
  40940. 77h BYTE motherboard device DMA control 1
  40941. 78h 9 BYTEs reserved???
  40942. 80h BYTE APIC base address relocation
  40943. 81h BYTE reserved???
  40944. 82h BYTE deterministic latency control
  40945. 83h 13 BYTEs reserved???
  40946. 90h WORD PCI DMA configuration
  40947. 92h WORD distributed DMA (channels 0-3) slave base pointer
  40948. 94h WORD distributed DMA (channels 5-7) slave base pointer
  40949. 96h 26 BYTEs reserved???
  40950. B0h DWORD general configuration
  40951. B4h 23 BYTEs reserved???
  40952. CBh BYTE real-time clock configuration
  40953. CCh 52 BYTEs reserved
  40954. SeeAlso: #00873,#01103,#01104,#01105
  40955. Bitfields for Intel PIIX4 ISA I/O recovery timer:
  40956. Bit(s) Description (Table 01101)
  40957. 7 disable aliasing PORTs 90h-9Fh into 80h-8Fh (except PORT 0092h)
  40958. 6 enable 8-bit I/O recover timer in bits 5-3
  40959. 5-3 additional 8-bit I/O recovery time (added to 3.5 SYSCLK minimum)
  40960. 000 = 8 SYSCLKs, else N SYSCLKs
  40961. 2 enable 16-bit I/O recovery timer in bits 1-0
  40962. 1-0 additional 16-bit I/O recovery time (added to 3.5 SYSCLK minimum)
  40963. 00 = 3 SYSCLKs
  40964. 01 = 1 SYSCLK
  40965. 10 = 2 SYSCLKs
  40966. 11 = 4 SYSCLKs
  40967. SeeAlso: #01100
  40968. Bitfields for Intel 82371 X-Bus Chip Select Enable (high byte):
  40969. Bit(s) Description (Table 01102)
  40970. 7-3 reserved
  40971. 2 (82371AB) enable positive PCI decode for Micro Controller at PORTs 62h
  40972. and 66h
  40973. 1 (82371AB) enable one-megabyte extended BIOS (FFF00000h-FFF7FFFFh are
  40974. forwarded to ISA bus, aliased to top of 16M region)
  40975. 0 enable I/O APIC
  40976. SeeAlso: #01089
  40977. Format of PCI Configuration Data for Intel 82371AB (PIIX4), IDE Controller:
  40978. Offset Size Description (Table 01103)
  40979. 00h 64 BYTEs header (see #00878)
  40980. (vendor ID 8086h, device ID 7111h)
  40981. 20h DWORD I/O base address (for 16 contiguous PORTs)
  40982. !!!intel\29056201.pdf p.89
  40983. 40h WORD primary channel timing register
  40984. 42h WORD secondary channel timing register
  40985. 44h BYTE slave IDE timing
  40986. 45h 3 BYTEs reserved???
  40987. 48h BYTE Ultra DMA/33 control
  40988. 49h BYTE reserved???
  40989. 4Ah WORD Ultra DMA/33 timing
  40990. 4Ch 180 BYTEs reserved
  40991. SeeAlso: #00873,#01100,#01104,#01105
  40992. Format of PCI Configuration Data for Intel 82371AB (PIIX4), USB Controller:
  40993. Offset Size Description (Table 01104)
  40994. 00h 64 BYTEs header (see #00878)
  40995. (vendor ID 8086h, device ID 7112h)
  40996. 20h DWORD I/O base address (for 32 contiguous PORTs)
  40997. !!!intel\29056201.pdf p.102
  40998. 40h 32 BYTEs reserved
  40999. 60h BYTE USB specification release number
  41000. 00h pre-release 1.0
  41001. 10h release 1.0
  41002. 61h 95 BYTEs reserved
  41003. C0h WORD legacy support
  41004. C2h 61 BYTEs reserved
  41005. FFh BYTE miscellaneous support
  41006. SeeAlso: #00873,#01100,#01103,#01105
  41007. Format of PCI Configuration Data for Intel 82371AB (PIIX4), Power Management:
  41008. Offset Size Description (Table 01105)
  41009. 00h 64 BYTEs header (see #00878)
  41010. (vendor ID 8086h, device ID 7113h)
  41011. 40h DWORD base address of power-management I/O ports
  41012. (same format as PCI base addresses; low bit hardwired to 1)
  41013. 44h DWORD initial counts of device 0-11 idle timers
  41014. 48h DWORD !!!intel\29056201.pdf p.117
  41015. 4Ch DWORD general-purpose input control
  41016. 50h 3 BYTEs "device resource D"
  41017. 53h BYTE unused???
  41018. 54h DWORD device activity event selection A
  41019. 58h DWORD device activity event selection B
  41020. 5Ch DWORD "device resource A"
  41021. 60h DWORD "device resource B"
  41022. 64h DWORD "device resource C"
  41023. 68h 3 BYTEs "device resource E"
  41024. 6Bh 5 BYTEs unused???
  41025. 70h 3 BYTEs "device resource G"
  41026. 73h BYTE unused???
  41027. 74h DWORD "device resource H"
  41028. 78h DWORD "device resource I"
  41029. 7Ch DWORD "device resource J"
  41030. 80h BYTE miscellaneous power management
  41031. 81h 15 BYTEs unused???
  41032. 90h DWORD base address for SMBus I/O ports
  41033. (same format as PCI base addresses; low bit hardwired to 1)
  41034. 94h ...
  41035. D2h BYTE SMBus host configuration
  41036. D3h BYTE SMBus slave command
  41037. D4h BYTE SMBus slave shadow port 1 address
  41038. D5h BYTE SMBus slave shadow port 2 address
  41039. D6h BYTE SMBus revision
  41040. D7h
  41041. SeeAlso: #00873,#01100,#01103,#01104
  41042. Format of PCI Configuration Data for Intel 82437MX:
  41043. Offset Size Description (Table 01106)
  41044. 00h 64 BYTEs header (see #00878)
  41045. (vendor ID 8086h, device ID 1235h)
  41046. 40h 16 BYTEs reserved
  41047. 50h BYTE PCI Control (see #01111)
  41048. 51h BYTE reserved
  41049. 52h BYTE cache control (see #01112)
  41050. 53h 4 BYTEs reserved
  41051. 57h BYTE DRAM Control (see #01116)
  41052. 58h BYTE DRAM timing (see #01117)
  41053. 59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #01118)
  41054. 60h 4 BYTEs DRAM Row Boundary Registers 0-3
  41055. each register N indicates cumulative amount of memory in rows
  41056. 0-N, in 4M units (each row is 64 bits wide)
  41057. 64h 4 BYTEs reserved
  41058. 68h BYTE DRAM Row Type (see #01121)
  41059. 69h 9 BYTEs reserved
  41060. 72h BYTE System Management RAM control (see #01123)
  41061. 73h 141 BYTEs reserved
  41062. SeeAlso: #01108,#01107
  41063. Format of PCI Configuration Data for Intel 82437FX:
  41064. Offset Size Description (Table 01107)
  41065. 00h 64 BYTEs header (see #00878)
  41066. (vendor ID 8086h, device ID 122Dh) (see #00873)
  41067. 40h 16 BYTEs reserved
  41068. 50h BYTE PCI Control (see #01111)
  41069. 51h BYTE reserved
  41070. 52h BYTE cache control (see #01112)
  41071. 53h 4 BYTEs reserved
  41072. 57h BYTE DRAM Control (see #01116)
  41073. 58h BYTE DRAM timing (see #01117)
  41074. 59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #01118)
  41075. 60h 5 BYTEs DRAM Row Boundary Registers 0-4
  41076. each register N indicates cumulative amount of memory in rows
  41077. 0-N, in 4M units (each row is 64 bits wide)
  41078. 65h 3 BYTEs reserved
  41079. 68h BYTE DRAM Row Type (see #01121)
  41080. 69h 9 BYTEs reserved
  41081. 72h BYTE System Management RAM control (see #01123)
  41082. 73h 141 BYTEs reserved
  41083. SeeAlso: #01106,#01108
  41084. Format of PCI Configuration Data for Intel 82437VX:
  41085. Offset Size Description (Table 01108)
  41086. 00h 64 BYTEs header (see #00878)
  41087. (vendor ID 8086h, device ID 7030h)
  41088. (revision ID 00h = A0 stepping)
  41089. 40h 15 BYTEs reserved
  41090. 4Fh BYTE arbitration control (see #01109)
  41091. 50h BYTE PCI Control (see #01110)
  41092. 51h BYTE reserved
  41093. 52h BYTE cache control (see #01112)
  41094. 53h BYTE cache control extensions (see #01113)
  41095. 54h WORD SDRAM control (see #01114)
  41096. 55h BYTE reserved
  41097. 56h BYTE DRAM extended control (see #01115)
  41098. 57h BYTE DRAM control (see #01116)
  41099. 58h BYTE DRAM timing (see #01117)
  41100. 59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #01118)
  41101. 60h 5 BYTEs DRAM Row Boundary registers 0-4
  41102. each register N indicates amount of memory in rows 0-N in 4M
  41103. units (each row is 64 bits wide); the fifth row of memory (if
  41104. implemented) must contain either 8M or 16M, depending on
  41105. system configuration
  41106. boundary register 4 (offset 64h) contains the total system
  41107. memory, which may not exceed 128M
  41108. 65h 2 BYTEs reserved
  41109. 67h BYTE DRAM Row Type (high)
  41110. defines memory type in DRAM row 4 in bits 4,0 (see #01119)
  41111. 68h BYTE DRAM Row Type (low) (see #01119)
  41112. 69h BYTE PCI TRDY timer (see #01122)
  41113. 6Ah 6 BYTEs reserved
  41114. 70h BYTE Multi-Transaction Timer
  41115. number of PCLKs guaranteed to the current agent before the
  41116. 82437 will grant the bus to another PCI agent on request
  41117. 71h BYTE reserved
  41118. 72h BYTE System Management RAM control (see #01123)
  41119. 73h BYTE shared memory buffer control (see #01124)
  41120. 74h BYTE shared memory buffer start address, in 0.5MB units
  41121. end address is top-of-memory at offset 64h or start of an
  41122. enabled PCI memory hole when top-of-memory is 16M
  41123. 76h 2 BYTEs reserved
  41124. 78h BYTE graphics controller latency timers (see #01125)
  41125. 79h 135 BYTEs reserved
  41126. SeeAlso: #00873,#01063,#01083,#01098,#01106
  41127. Bitfields for Intel 82437VX,82439TX Arbitration Control register:
  41128. Bit(s) Description (Table 01109)
  41129. 7 extended CPU-to-PIIX PHLDA# signalling enabled
  41130. 6-0 (82439TX) reserved
  41131. 6-4 reserved
  41132. 3 (82437VX) CPU priority enable
  41133. =1 CPU gets PCI bus after two PCI slots
  41134. =0 CPU gets PCI bus after three PCI slots
  41135. 2-0 reserved
  41136. SeeAlso: #01099,#01108,#01110
  41137. Bitfields for Intel 82437VX,82439HX/TX PCI Control register:
  41138. Bit(s) Description (Table 01110)
  41139. 7-4 reserved (82437VX,82439TX)
  41140. 7 DRAM ECC/Parity Select (82439HX)
  41141. =1 ECC
  41142. =0 parity
  41143. 6 ECC TEST enable (82439HX)
  41144. 5 shutdown to port 92h (82439HX)
  41145. =1 send 01h to PORT 0092h on Shutdown special cycle on host bus
  41146. 4 dual-processor NA# enable (82439HX)
  41147. 3 PCI Concurrency Enable
  41148. =1 CPU can access DRAM/L2 during non-PIIX PCI master cycles
  41149. =0 CPU kept off PCI bus during all PCI bus-master cycles
  41150. 2-0 reserved (82437VX,82439TX)
  41151. 2 SERR# Output Type (82439HX only)
  41152. =1 SERR# is actively driven high when negated
  41153. =0 SERR# is PCI-compatible open-drain output
  41154. 1 reserved
  41155. 0 Global TXC Enable (82439HX only)
  41156. =1 enable new 82439HX features
  41157. SeeAlso: #01099,#01108,#01098,#01112,#01111
  41158. Bitfields for Intel 82437FX/82437MX PCI Control register:
  41159. Bit(s) Description (Table 01111)
  41160. 7-5 CPU inactivity timer (in PCI Clocks less 1)
  41161. 4 reserved
  41162. 3 enable PCI Peer Concurrency
  41163. =1 CPU can access DRAM/L2 during non-PIIX PCI master cycles
  41164. =0 CPU kept off PCI bus during all PCI bus-master cycles
  41165. 2 disable PCI Bursting
  41166. 1 disable PCI Streaming
  41167. 0 disable Bus Concurrency
  41168. SeeAlso: #01106,#01107,#01110
  41169. Bitfields for Intel 82437,82439HX/TX cache control register:
  41170. Bit(s) Description (Table 01112)
  41171. 7-6 secondary cache size
  41172. 00 none
  41173. 01 256K
  41174. 10 512K
  41175. 11 reserved
  41176. 5-4 L2 RAM type
  41177. 00 pipelined burst SRAM/DRAM
  41178. 01 reserved
  41179. 10 asynchronous SRAM (82437FX/MX/VX,82439TX only)
  41180. 11 two banks of pipelined burst cache
  41181. 3 NA disable
  41182. =1 never assert NA# pin
  41183. 2 reserved (82437FX/MX/VX,82439TX)
  41184. 2 Extended Cacheability Enable (82439HX)
  41185. =1 cache up to 512M
  41186. =0 cache only first 64M
  41187. 1 Secondary Cache Force Miss or Invalidate
  41188. =1 force all memory accesses to bypass L2 cache
  41189. 0 First Level Cache Enable
  41190. =1 all memory accesses made non-cacheable by CPU L1 cache
  41191. SeeAlso: #01099,#01108,#01098,#01110,#01113,#01114,#01106
  41192. Bitfields for Intel 82437VX,82439TX cache control extensions register:
  41193. Bit(s) Description (Table 01113)
  41194. 7-6 reserved
  41195. 5 DRAM cache detected (read-only)
  41196. 4-0 DRAM cache refresh timer
  41197. number of HCLKs 82437VX,82439TX remains idle during DRAM cache refresh
  41198. SeeAlso: #01099,#01108,#01112
  41199. Bitfields for Intel 82437VX,82439TX SDRAM control register:
  41200. Bit(s) Description (Table 01114)
  41201. 15-9 reserved
  41202. 8-6 Special SDRAM Mode Select
  41203. 000 normal mode (default)
  41204. 001 enable NOP command
  41205. 010 enable All Banks Precharge command
  41206. 011 enable Mode Register Command
  41207. 100 enable CBR Cycle
  41208. 101 reserved
  41209. 11x reserved
  41210. 5 (82437VX) reserved
  41211. 5 (82439TX) RAS# to CAS# Override
  41212. =1 and CAS# latency=0, RAS# to CAS# is delayed 2 HCLKs
  41213. =0 RAS# to CAS# delay determined solely by CAS# latency setting
  41214. 4 CAS# latency
  41215. =1 latency is 2 for all SDRAM cycles
  41216. =0 latency is 3
  41217. 3 RAS# precharge and refresh timing
  41218. =0 slower
  41219. =1 faster
  41220. 2 reserved
  41221. 1 (82437VX) reserved
  41222. 1 (82439TX) 64-Mbit Technology Enable
  41223. =1 supports 64M-bit SDRAM devices
  41224. =0 supports 64M-bit EDO/FPM devices only
  41225. 0 reserved
  41226. SeeAlso: #01099,#01108,#01112
  41227. Bitfields for Intel 82437VX,82439HX/TX DRAM extended control register:
  41228. Bit(s) Description (Table 01115)
  41229. 7 reserved
  41230. 6 (VX/TX) refresh RAS# assertion length (0=4 clocks, 1=5 clocks)
  41231. 5 (VX/TX) Fast EDO Path Select
  41232. 4 Speculative Leadoff Disable
  41233. 3 (82439HX) Turn-Around Insertion Enable
  41234. =1 insert one extra clock of turnaround time after asserting MWE#
  41235. 2-1 Memory Address Drive Strength
  41236. 82437VX: 82439HX: 82439TX:
  41237. 00 reserved 00 8mA 00 10mA/10mA (MA/MWE#)
  41238. 01 10mA (default) 01 8mA/12mA (MAA/MWE#) 01 10mA/16mA (MA/MWE#)
  41239. 10 16mA 10 12mA/8mA (MAA/MWE#) 10 16mA/10mA (MA/MWE#)
  41240. 11 reserved 11 12mA 11 16mA/16mA (MA/MWE#)
  41241. 0 (82437VX) DRAM Symmetry Detect Mode
  41242. (used to force some memory address lines to fixed value for detecting
  41243. DRAM symmetry row-by-row)
  41244. 0 (82439HX) 64MBit Mode Enable
  41245. =1 enable support for 64M SIMMs
  41246. 0 (82439TX) reserved
  41247. SeeAlso: #01099,#01108,#01098,#01116
  41248. Bitfields for Intel 82437,82439HX/TX DRAM control register:
  41249. Bit(s) Description (Table 01116)
  41250. 7-6 DRAM Hole Enable
  41251. 00 none
  41252. 01 512K-640K
  41253. 10 15M-16M (82437FX/MX/VX only)
  41254. 11 14M-16M (82437VX,82439TX only)
  41255. 5 reserved
  41256. 4 (82437MX only) refresh type during Suspend
  41257. =1 self-refreshing DRAMs in system
  41258. =0 CAS-before-RAS refresh
  41259. (82439TX only) Enhanced Paging disabled
  41260. 3 EDO Detect Mode enable
  41261. (used to detect whether memory is EDO bank-by-bank)
  41262. 2-0 DRAM refresh rate
  41263. FX/VX/HX MX TX
  41264. 000 disabled 15.6 us disabled
  41265. 001 50 MHz 31.2 us 15.6 us
  41266. 010 60 MHz 62.4 us 31.2 us
  41267. 011 66 MHz 125 us 64.4 us
  41268. 100 reserved 250 us 125 us
  41269. 101 reserved reserved 256 us
  41270. 1xx reserved reserved reserved
  41271. SeeAlso: #01099,#01108,#01098,#01115,#01106
  41272. Bitfields for Intel 82437FX/MX/VX,82439HX/TX DRAM timing register:
  41273. Bit(s) Description (Table 01117)
  41274. 7 (82437FX,82439TX) reserved
  41275. 7 (82437MX) MA[11:2] buffer strength
  41276. =0 8mA
  41277. =1 12mA
  41278. 7 (82437VX) MA-to-RAS# Delay
  41279. =1 one clock
  41280. =0 two clocks
  41281. 7 (82439HX) Turbo Read Leadoff
  41282. =1 bypass first register in DRAM data pipeline, saving one clock
  41283. (may only be set in a cacheless configuration)
  41284. 6-5 DRAM Read Burst Timing
  41285. 00 x444 (EDO and Standard Page Mode)
  41286. 01 x333 (EDO), x444 (SPM)
  41287. 10 x222 (EDO), x333 (SPM)
  41288. 11 x322 (EDO), x333 (SPM) (82437VX only)
  41289. 11 reserved (other)
  41290. 4-3 DRAM Write Burst Timing
  41291. 00 x444
  41292. 01 x333
  41293. 10 x222
  41294. 11 reserved
  41295. 2 (82439TX) reserved
  41296. 2 RAS-to-CAS Delay
  41297. =1 two clocks
  41298. =0 three clocks
  41299. 1-0 DRAM Leadoff Timing
  41300. 82437FX/MX Read Leadoff Write Leadoff RAS# Precharge
  41301. 00 8 6 3
  41302. 01 7 5 3
  41303. 10 8 6 4
  41304. 11 7 5 4
  41305. 82437VX,82439TX Read Write Leadoff RAS# Precharge
  41306. 00 11 7 3
  41307. 01 10 6 3
  41308. 10 11 7 4
  41309. 11 10 6 4
  41310. 82439HX Read Leadoff Write Leadoff RAS# Precharge
  41311. 00 7 6 3
  41312. 01 6 5 3
  41313. 10 7 6 4
  41314. 11 6 5 4
  41315. SeeAlso: #01099,#01108,#01116,#01106,#01107
  41316. Bitfields for Intel 8243x/8244x Programmable Attribute Map Register:
  41317. Bit(s) Description (Table 01118)
  41318. 7 reserved
  41319. 6 cache enable (region 1)
  41320. 5 write enable (region 1)
  41321. 4 read enable (region 1)
  41322. 3 reserved
  41323. 2 cache enable (region 0)
  41324. 1 write enable (region 0)
  41325. 0 read enable (region 0)
  41326. Notes: each programmable attribute map register controls two memory
  41327. regions at the top of the first megabyte of memory
  41328. for the Intel 82441FX and 82443BX/LX, bits 6 and 2 are reserved, as
  41329. cacheability is set using the Pentium Pro/II/Celeron's MTRR registers
  41330. (see MSR 000000FEh)
  41331. Intel 82434,82437FX/MX/VX,82439HX,82441FX,82443EX/LX PAM
  41332. registers/regions:
  41333. PAM0 low: reserved [*]
  41334. PAM0 hi: segment F000-FFFF
  41335. PAM1 low: segment C000-C3FF
  41336. PAM1 hi: segment C400-C7FF
  41337. PAM2 low: segment C800-CBFF
  41338. PAM2 hi: segment CC00-CFFF
  41339. PAM3 low: segment D000-D3FF
  41340. PAM3 hi: segment D400-D7FF
  41341. PAM4 low: segment D800-DBFF
  41342. PAM4 hi: segment DC00-DFFF
  41343. PAM5 low: segment E000-E3FF
  41344. PAM5 hi: segment E400-E7FF
  41345. PAM6 low: segment E800-EBFF
  41346. PAM6 hi: segment EC00-EFFF
  41347. [*] on the 82434 (and possibly other Intel chipsets), the low nybble of
  41348. PAM0 controls segment 8000-9FFF
  41349. SeeAlso: #01055,#01108,#01098,#01099,#01229,#01106,#01107,#01142,#01129
  41350. Bitfields for Intel 82437VX,82439TX DRAM Row Type register:
  41351. Bit(s) Description (Table 01119)
  41352. 7,3 row 3 type
  41353. 6,2 row 2 type
  41354. 5,1 row 1 type
  41355. 4,0 row 0 type
  41356. 00 SPM DRAM
  41357. 01 EDO DRAM
  41358. 10 SDRAM
  41359. 11 reserved
  41360. SeeAlso: #01099,#01108,#01118,#01213
  41361. Bitfields for Intel 82439TX DRAM Row Type high register:
  41362. Bit(s) Description (Table 01213)
  41363. 7 Host Frequency detection
  41364. =1 66MHz Bus
  41365. =0 60MHz bus
  41366. 5,1 DRAM Row 5 type
  41367. 4,0 DRAM ROW 4 type
  41368. 00 SPM
  41369. 01 EDO
  41370. 10 SDRAM
  41371. 11 reserved
  41372. 6,3 reserved
  41373. 2 Memory Address select Enabled
  41374. SeeAlso: #01099,#01119
  41375. Bitfields for Intel 82437FX/82437MX DRAM Row Type register:
  41376. Bit(s) Description (Table 01121)
  41377. 7-4 reserved
  41378. 3-0 DRAM Row N is EDO instead of page-mode DRAM
  41379. SeeAlso: #01106,#01107
  41380. Bitfields for Intel 82437VX PCI TRDY timer:
  41381. Bit(s) Description (Table 01122)
  41382. 7-3 reserved
  41383. 2-0 TRDY timeout value
  41384. 000 2 PCICLKs
  41385. 001 4 PCICLKs
  41386. 010 6 PCICLKs
  41387. 011 8 PCICLKs
  41388. 1xx reserved
  41389. SeeAlso: #01108,#01123
  41390. Bitfields for Intel 82437,82439HX/TX,82443BX/EX/LX SMRAM control register:
  41391. Bit(s) Description (Table 01123)
  41392. 7 reserved
  41393. 6 SMM Space Open
  41394. =1 make SMM DRAM visible even when not in SMM if bit 4 =0
  41395. 5 SMM Space Closed
  41396. =1 no data references permitted to SMM DRAM even in SMM
  41397. 4 SMM Space Locked
  41398. =1 force bits 4 and 6 to become read-only; and clear bit 6
  41399. 3 SMRAM Enable
  41400. =1 128K DRAM are accessible for use at A000 while in SMM
  41401. 2-0 SMM Space Base Segment
  41402. 010 segment A000-BFFF
  41403. 100 segment C000-CFFF (82437MX,82443EX only)
  41404. other reserved
  41405. Note: bits 5 and 6 must never both be set at the same time
  41406. SeeAlso: #01099,#01108,#01098,#01124,#01106,#01107,#01142,#01129
  41407. Bitfields for Intel 82437VX Shared Memory Buffer control register:
  41408. Bit(s) Description (Table 01124)
  41409. 7-2 reserved
  41410. 1 enable shared memory buffer
  41411. 0 redirect shared memory buffer access
  41412. =0 treat SMB area as a hole in system DRAM
  41413. SeeAlso: #01108,#01123,#01125
  41414. Bitfields for Intel 82437VX Graphics Controller Latency Timer:
  41415. Bit(s) Description (Table 01125)
  41416. 7-6 reserved
  41417. 5-3 GC latency for PCI reads (in 4 HCLK multiples) (default=100)
  41418. 2-0 GC latency for CPU and PCI writes (in 4 HCLK multiples) (default=011)
  41419. SeeAlso: #01108,#01124
  41420. Bitfields for Intel 82439HX Error Command register:
  41421. Bit(s) Description (Table 01126)
  41422. 7 SERR# duration
  41423. =0 one PCI clock
  41424. =1 until error flags are cleared
  41425. 6-3 reserved
  41426. 2 force bad parity on multiple-bit uncorrectable error
  41427. 1 assert SERR# on multiple-bit uncorrectable error
  41428. 0 assert SERR# on single-bit correctable error
  41429. SeeAlso: #01098,#01127
  41430. Bitfields for Intel 82439HX Error Status register:
  41431. Bit(s) Description (Table 01127)
  41432. 7-5 DRAM row associated with multi-bit error
  41433. 4 multi-bit uncorrectable error occurred (write 1 bit to clear)
  41434. 3-1 DRAM row associated with single-bit correctable error
  41435. 0 single-bit correctable error occurred (write 1 bit to clear)
  41436. SeeAlso: #01098,#01126
  41437. Bitfields for Intel 82439TX miscellaneous control register:
  41438. Bit(s) Description (Table 01128)
  41439. 7 reserved
  41440. 6 ACPI control register enable
  41441. 5 Suspend refresh type (EDO/FPM DRAM only)
  41442. =1 Self refresh (Always for SDRAM)
  41443. =0 CBR refresh
  41444. 4 Normal refresh enable
  41445. When set to 1, 82439TX switches from suspend refresh to normal refresh
  41446. 3 reserved
  41447. 2 Internal clock control disable
  41448. =1 disable
  41449. =0 enable Disables 82439TX internal clocks during suspend, reducing
  41450. power consumption.
  41451. 1-0 reserved
  41452. SeeAlso: #01099
  41453. Format of PCI configuration for Intel 82443EX/LX Device 0 (Host-PCI):
  41454. Offset Size Description (Table 01129)
  41455. 00h 64 BYTEs header (see #00878)
  41456. (vendor ID 8086h, device ID 7180h)
  41457. chipset is 82443EX if revision >= 03h
  41458. 40h 16 BYTEs reserved
  41459. 50h WORD PAC Configuration register (See #01131)
  41460. 52h BYTE reserved
  41461. 53h BYTE Data Buffer Control register (see #01132)
  41462. 54h BYTE reserved
  41463. 55h WORD DRAM Row Type register (see #01133)
  41464. 57h BYTE DRAM Control register (see #01134)
  41465. 58h BYTE DRAM Timing register (see #01135)
  41466. 59h 7 BYTEs PAM Configuration registers 0-6 (See #01118)
  41467. 60h 8 BYTEs DRAM Row Boundary registers 0-7
  41468. each register indicates top of memory for a particular row, in
  41469. 8MB units; DIMMs use two rows each, with single-sided DIMMs
  41470. leaving the odd-numbered rows unpopulated
  41471. 68h BYTE Fixed DRAM Hole Control register (see #01147)
  41472. 69h BYTE reserved
  41473. 6Ah WORD DRAM Extended Mode Select register (see #01136)
  41474. 6Ch DWORD Memory Buffer Strength Control register (see #01137)
  41475. 70h BYTE Multi-Transaction Timer register (see #01140)
  41476. 71h BYTE reserved
  41477. 72h BYTE System Management RAM Control register (see #01123)
  41478. 73h 29 BYTEs reserved
  41479. 90h BYTE Error Command register (see #01156)
  41480. 91h BYTE Error Status 0 register (see #01138)
  41481. 92h BYTE Error Status 1 register (see #01139)
  41482. 93h BYTE Reset Control Register (see #01239)
  41483. 94h 12 BYTEs reserved
  41484. A0h DWORD AGP Capability register (see #01158)
  41485. A4h DWORD AGP Status register (see #01159)
  41486. A8h DWORD AGP Command register (see #01160)
  41487. ACh 4 BYTEs reserved
  41488. B0h DWORD AGP Control register (see #01161)
  41489. B4h BYTE Arpeture Size Control register (see #01162)
  41490. B5h 3 BYTEs reserved
  41491. B8h DWORD Arpeture Translation Table Base register (see #01163)
  41492. BCh BYTE AGP MTT Control register (see #01140)
  41493. BDh BYTE AGP Low Priority Transaction timer register (see #01141)
  41494. BCh 67 BYTEs reserved
  41495. Notes: The 82443EX is virtually identical to the 82443LX, except that it does
  41496. not support ECC type DRAM.
  41497. The Intel 82443EX/LX chipsets use PCI configuration mechanism #1
  41498. SeeAlso: #01130,#01142,PORT 0CF8h
  41499. Format of PCI configuration for Intel 82443EX/LX Device 1 (PCI-PCI):
  41500. Offset Size Description (Table 01130)
  41501. 00h 64 BYTEs header, type 1 [bridge] (see #00878)
  41502. (vendor ID 8086h, device ID 7181h)
  41503. chipset is 82443EX if revision >= 03h
  41504. 40h 192 BYTEs reserved
  41505. Note: The Intel 82443LX chipset uses PCI configuration mechanism #1
  41506. SeeAlso: #01129,#01143,PORT 0CF8h
  41507. Bitfields for Intel 82443EX/LX (Device 0) PAC Configuration register:
  41508. Bit(s) Description (Table 01131)
  41509. 15 WSC# Handshake Disable
  41510. 14 (82443LX) Host Frequency (read-only)
  41511. =1 60MHz
  41512. =0 66MHz
  41513. 14 (82443EX) reserved
  41514. 13-12 reserved
  41515. 11 ??? (Not documented by Intel!)
  41516. 10 PCI Agent to Arperture Access Disable
  41517. 9 Aperture Access Global Enable
  41518. 8-6 (82443EX) reserved
  41519. 8-7 (82443LX) DRAM Data Integrety Mode
  41520. 00 Non-ECC (no check, no correct)
  41521. 01 EC-only (do check, no correct)
  41522. 10 reserved
  41523. 11 ECC (do check, do correct)
  41524. 6 (82443LX) ECC-Test Diagnostic Mode Enabled
  41525. 5 MDA Present
  41526. Note: Controls routing of Monochrome Display Adaptor I/O and memory
  41527. range accesses. Works in conjunction with the VGA-bit in
  41528. Bridge Control register of device 1 (see #00901):
  41529. VGA MDA
  41530. 0 0 MDA and VGA routed to PCI bus
  41531. 0 1 reserved
  41532. 1 0 MDA and VGA routed to AGP bus
  41533. 1 1 VGA routed to AGP bus, MDA routed to PCI bus
  41534. 4-0 reserved
  41535. SeeAlso: #00901,#01129
  41536. Bitfields for Intel 82443EX/LX (Device 0) Data Buffer Control register:
  41537. Bit(s) Description (Table 01132)
  41538. 7 reserved
  41539. 6 CPU-to-PCI posting enabled
  41540. 5 Write post during I/O Bridge access enabled
  41541. 4-0 reserved
  41542. SeeAlso: #01129
  41543. Bitfields for Intel 82443EX/LX (Device 0) DRAM Row Type register:
  41544. Bit(s) Description (Table 01133)
  41545. 15-14 row 7 type
  41546. 0 0 EDO (Same values for each row)
  41547. 0 1 reserved
  41548. 1 0 SDRAM
  41549. 1 1 empty row
  41550. 13-12 row 6 type
  41551. 11-10 row 5 type
  41552. 9-8 row 4 type
  41553. 7-6 row 3 type
  41554. 5-4 row 2 type
  41555. 3-2 row 1 type
  41556. 1-0 row 0 type
  41557. SeeAlso: #01129,#01134
  41558. Bitfields for Intel 82443EX/LX (Device 0) DRAM Control register:
  41559. Bit(s) Description (Table 01134)
  41560. 7-6 reserved
  41561. 5 DRAM EDO Auto-Detect mode enabled
  41562. 4 SDRAM power management enabled
  41563. 3 reserved
  41564. 2-0 DRAM Refresh rate
  41565. 000 = Refresh disabled
  41566. 001 = Normal (Based on PAC Configuration bit 14)
  41567. 010-111 = reserved
  41568. SeeAlso: #01129,#01133,#01135
  41569. Bitfields for Intel 82443EX/LX (Device 0) DRAM Timing register:
  41570. Bit(s) Description (Table 01135)
  41571. 7 SDRAM RAS to CAS Delay (1 = 2 clocks, 0 = 3 clocks)
  41572. 6 SDRAM CAS Latency (1 = 2 clocks, 0 = 3 clocks)
  41573. 5 SDRAM RAS Precharge Time (1 = 2 clocks, 0 = 3 clocks)
  41574. 4 EDO DRAM Read Burst timing
  41575. =1 Read rate is x222
  41576. =0 Read rate is x333
  41577. 3 EDO DRAM Write Burst timing
  41578. =1 Write rate is x222
  41579. =0 write rate is x333
  41580. 2 EDO RAS Precharge Time (1 = 3 clocks, 0 = 4 clocks)
  41581. 1 EDO RAS to CAS Delay (1 = 2 clocks, 0 = 3 clocks)
  41582. 0 MA Wait State
  41583. =1 Fast (0 wait states for SDRAM, clocks run normally for EDO)
  41584. =0 Slow (1 wait state for SDRAM, add one clock to all EDO timings)
  41585. SeeAlso: #01129,#01134
  41586. Bitfields for Intel 82443EX/LX DRAM Extended Mode Select register:
  41587. Bit(s) Description (Table 01136)
  41588. 15-8 reserved
  41589. 7-5 Operating Mode
  41590. 000 Normal operating mode
  41591. 001 NOP command enabled
  41592. 010 All banks precharge enable
  41593. 011 Mode register set command enable
  41594. 100 CBR cycle enable
  41595. 101-11x reserved
  41596. 4 reserved
  41597. 3-2 Page timeout select
  41598. 00 16 clocks
  41599. 01-11 reserved
  41600. 1-0 Close both banks control
  41601. 00 close both banks on page misses
  41602. 01-11 reserved
  41603. SeeAlso: #01129
  41604. Bitfields for Intel 82443EX/LX Memory Buffer Strength Control register:
  41605. Bit(s) Description (Table 01137)
  41606. 31-30 MAA[1-0] buffer strength
  41607. 00 48mA (same values for bits 25-12,5-0)
  41608. 01 42mA
  41609. 10 22mA
  41610. 11 reserved
  41611. 29-28 (82443LX only) MECC[7-0] buffer strength
  41612. 00 42mA (same values for bits 27-26,11-6)
  41613. 01 38mA
  41614. 10 33mA
  41615. 11 reserved
  41616. 27-26 MD[63-0] buffer strength
  41617. 25-24 RCSA[0]# & RCSB[0]#/MAB[6] buffer strength
  41618. 23-22 (82443LX only) MAB[1-0] buffer strength
  41619. 21-20 MAA[13:2] buffer strength
  41620. 19-18 RCSA[1]# & RCSB[1]#/MAB[7] buffer strength
  41621. 17-16 RCSA[2]# & RCSB[2]#/MAB[8] buffer strength
  41622. 15-14 RCSA[3]# & RCSB[3]#/MAB[9] buffer strength
  41623. 13-12 (82443LX only) RCSA[4]# & RCSB[4]#/MAB[10] buffer strength
  41624. 11-10 (82443LX only) CQDB[5,1]# buffer strength
  41625. 9-8 CQDA[5,1]# buffer strength
  41626. 7-6 CQDA[7-6,4-2,0]# buffer strength
  41627. ---82443LX---
  41628. 5-4 RCSA[5]# & RCSB[5]#/MAB[11] buffer strength
  41629. 3-2 RCSA[6]#/MAB[2] & RCSB[6]#/MAB[12] buffer strength
  41630. 1-0 RCSA[7]#/MAB[3] & RCSB[7]#/MAB[13] buffer strength
  41631. ---82443EX---
  41632. 5-0 reserved
  41633. SeeAlso: #01129
  41634. Bitfields for Intel 82443EX/LX Error Status 0 register:
  41635. Bit(s) Description (Table 01138)
  41636. ---82443LX---
  41637. 7-5 Multi-bit first error (read-only) Indicates which DRAM row had the
  41638. multi-bit error
  41639. 4 Multiple-bit ECC Error occurred flag
  41640. 3-1 Single-bit first row error (read-only) Indicates which DRAM row had the
  41641. single-bit error
  41642. 0 Single-bit ECC error occurred flag
  41643. ---82443EX---
  41644. 7-0 reserved
  41645. Note: Write a 1 to bits 4 & 0 to clear the flags
  41646. SeeAlso: #01129,#01139
  41647. Bitfields for Intel 82443EX/LX Error Status 1 register:
  41648. Bit(s) Description (Table 01139)
  41649. 7-3 reserved
  41650. 2 AGP non-snoopable access outside of graphics arperture
  41651. 1 AGP non-snoopable access outside of main DRAM ranges and arperture
  41652. 0 access to invalid graphics arperture translation table entry
  41653. Note: Write a 1 to these bit(s) to clear
  41654. SeeAlso: #01129,#01138
  41655. Bitfields for Intel 82443EX/LX Multi-Transaction Timer register:
  41656. Bit(s) Description (Table 01140)
  41657. 7-3 Multi-transaction timer count value
  41658. 2-0 reserved
  41659. SeeAlso: #01129,#01141
  41660. Bitfields for Intel 82443EX/LX Low Priority Transaction Timer register:
  41661. Bit(s) Description (Table 01141)
  41662. 7-3 Low priority transaction timer count value
  41663. 2-0 reserved
  41664. SeeAlso: #01129,#01140
  41665. Format of PCI Configuration for Intel 82443BX Device 0 (Host-PCI):
  41666. Offset Size Description (Table 01142)
  41667. 00h 64 BYTEs header (see #00878)
  41668. (vendor ID 8086h, device ID 7190h/7192h)
  41669. 10h DWORD graphics aperture base address
  41670. 2Ch WORD subsystem vendor identification (write-once)
  41671. 2Eh WORD subsystem device identification (write-once)
  41672. 40h 16 BYTEs reserved (0)
  41673. 50h DWORD 440BX Configuration (see #01144)
  41674. 54h 3 BYTEs reserved (0)
  41675. 57h BYTE DRAM Control (see #01145)
  41676. 58h BYTE DRAM Timing (see #01146)
  41677. 59h 7 BYTEs Programmable Attribute Map register 0-6 (see #01118)
  41678. 60h 8 BYTEs DRAM Row Boundary registers 0-7
  41679. each register indicates top of memory for a particular row, in
  41680. 8MB units; DIMMs use two rows each, with single-sided DIMMs
  41681. leaving the odd-numbered rows unpopulated
  41682. 68h BYTE Fixed DRAM Hole Control (see #01147)
  41683. 69h 6 BYTEs Memory Buffer Strength Control (see #01148)
  41684. 6Fh 2 BYTEs reserved (0)
  41685. 71h BYTE Intel Reserved (1Fh)
  41686. 72h BYTE SMRAM Control (see #01123)
  41687. 73h BYTE Extended SMRAM Control (see #01149)
  41688. 74h WORD SDRAM Row Page Size (see #01150)
  41689. 76h WORD SDRAM Control Register (see #01151)
  41690. 78h WORD Paging Policy Register (see #01152)
  41691. 7Ah BYTE Power Management Control (see #01153)
  41692. 7Bh WORD Suspend CBR Refresh Rate Register (see #01154)
  41693. 7Dh 3 BYTEs reserved (0)
  41694. 80h DWORD Error Address Pointer (see #01155)
  41695. 84h 12 BYTEs reserved (0)
  41696. 90h BYTE Error Command Register (see #01156)
  41697. 91h WORD Error Status Register (see #01157)
  41698. 93h BYTE reserved (0)
  41699. 94h DWORD Intel Reserved (00006104h)
  41700. 98h WORD Intel Reserved (0500h)
  41701. 9Ah BYTE Intel Reserved (0)
  41702. 9Bh 5 BYTEs reserved (0)
  41703. A0h DWORD AGP Capability Identifier (see #01158)
  41704. A4h DWORD AGP Status Register (read-only) (see #01159)
  41705. A8h DWORD AGP Command Register (see #01160)
  41706. ACh 4 BYTEs reserved (0)
  41707. B0h DWORD AGP Control Register (see #01161)
  41708. B4h BYTE Aperture Size Control (see #01162)
  41709. B5h 3 BYTEs reserved (0)
  41710. B8h DWORD Aperture Translation Table (see #01163)
  41711. BCh 2 BYTEs reserved
  41712. BEh WORD reserved (0)
  41713. C0h DWORD Intel Reserved (0)
  41714. C4h DWORD Intel Reserved (0)
  41715. C8h BYTE Intel Reserved (18h)
  41716. C9h BYTE Intel Reserved (0Ch)
  41717. CAh 3 BYTEs Memory Buffer Frequency Select (see #01164)
  41718. CDh 3 BYTEs reserved (0)
  41719. D0h 8 BYTEs BIOS scratch pad (read-write, init to 0 on reset)
  41720. D8h 8 BYTEs Intel Reserved (0)
  41721. E0h 2 DWORDs DRAM Write Thermal Throttling Control (see #01165)
  41722. E8h 8 BYTEs DRAM Read Therman Throttling Control (see #01165)
  41723. F0h WORD Buffer Control Register (see #01166)
  41724. F2h 2 BYTEs Intel Reserved (0000h)
  41725. F4h DWORD Intel Reserved (0000F800h)
  41726. bits 30-29 are "Abort Disable Test Mode" configuration bits
  41727. and should always be set (according to Intel
  41728. Specification Update)
  41729. F8h DWORD Intel Reserved (00000F20h)
  41730. FCh DWORD Intel Reserved (0)
  41731. SeeAlso: #00873,#01143,PORT 0022h"82443BX"
  41732. !!!intel\29063301.pdf p.34
  41733. Format of PCI Configuration for Intel 82443BX Device 1 (PCI-AGP):
  41734. Offset Size Description (Table 01143)
  41735. 00h 64 BYTEs header, type 1 [bridge] (see #00878)
  41736. (vendor ID 8086h, device ID 7191h)
  41737. 40h 192 BYTEs reserved
  41738. SeeAlso: #00873,#01142,#01130
  41739. !!!intel\29063301.pdf p.80
  41740. Bitfields for Intel 82443BX (Device 0) NBX Configuration Register:
  41741. Bit(s) Description (Table 01144)
  41742. 31-24 SDRAM rows without ECC (each set bit indicates a row in the SDRAM array
  41743. with does NOT have error correction (bit 24 = row 0; note that double-
  41744. sided DIMMs use two rows, one for the front and one for the back)
  41745. 23-19 reserved
  41746. 18 DRAM data asserted on host bus on the same clock on which the snoop
  41747. result is sampled, instead of one clock later
  41748. 17 ECC signals are always driven for EDO memory
  41749. 16 IDSEL redirection
  41750. =0 allocate IDSEL1/AD12 to bridge, never assert external AD12
  41751. =1 allocate IDSEL7/AD18 to bridge, never assert external AD18; PCI
  41752. configuration cycles for Bus0/Device7 are redirected to Bus0/Device1
  41753. 15 disable WSC# handshake (uni-processor mode)
  41754. 14 Intel Reserved
  41755. 13:12 Host/DRAM frequency
  41756. 00 100 MHz
  41757. 01 reserved
  41758. 10 66 MHz
  41759. 11 reserved
  41760. 11 enable AGP-to-PCI access (note: AGP-to-PCI traffic is not allowed to
  41761. target ISA-bus devices)
  41762. 10 disable PCI agent access to graphis aperture (ignored if bit 9 clear)
  41763. 9 global enable graphics aperture access
  41764. 8:7 DRAM Data Integrity Mode
  41765. 00 non-ECC
  41766. 01 error checking only (e.g. parity)
  41767. 10 ECC mode
  41768. 11 ECC mdoe with hardware scrubbing
  41769. 6 enable ECC diagnostics mode (when set, ECC lines are forced to zero on
  41770. writes and compared to internally-generated ECC on reads)
  41771. 5 monochrome video adapter present on PCI/ISA bus (with primary adapter
  41772. on AGP bus)
  41773. if register 3Eh bit 3 is clear, all VGA cycles are sent to PCI
  41774. regardless of this bit
  41775. otherwise: if clear, all VGA cycles are sent to AGP; if set, all VGA
  41776. cycles except MDA ranges (memory B0000h-B7FFFh and ports 03B4h,03B5h,
  41777. 03B8h,03B9h,03BAh,03BFh) are sent to AGP
  41778. 4 reserved
  41779. 3 enable posting of host USWC (U??? Speculative Write Combine) writes to
  41780. PCI memory
  41781. 2 In-Order Queue Depth
  41782. =1 maximum (PPro supports up to 8, but 82443BX only supports depth 4)
  41783. =0 depth forced to 1 (no pipelining on processor bus)
  41784. 1:0 reserved
  41785. SeeAlso: #01142
  41786. Bitfields for 82443BX DRAM Control:
  41787. Bit(s) Description (Table 01145)
  41788. 7-6 reserved
  41789. 5 module mode configuration (read-only)
  41790. =0 self-refresh entry is staggered; if "SDRAMPWR" (offset 76h bit 4) is
  41791. set, 3 DIMMs are supported, CKE[5:0] is driven, and dynamic SDRAM
  41792. power-down is available; if "SDRAMPWR" is clear, 4 DIMMs are
  41793. supported but power-down is not available
  41794. =1 self-refresh entry is not staggered; 3 DIMMs are supported, only
  41795. CKE0 is driven, and dynamic power-down is not available
  41796. 4:3 DRAM type
  41797. 00 EDO
  41798. 01 SDRAM
  41799. 10 registered SDRAM
  41800. 11 reserved
  41801. 2:0 DRAM refresh rate
  41802. 000 disabled
  41803. 001 15.6 microseconds
  41804. 010 31.2 microseconds
  41805. 011 62.4
  41806. 100 124.8
  41807. 101 249.6
  41808. else reserved
  41809. SeeAlso: #01142
  41810. Bitfields for Intel 82443BX DRAM Timing:
  41811. Bit(s) Description (Table 01146)
  41812. 7-2 reserved
  41813. 1 add one EDO RASx# wait state for row misses (two tASR instead of one)
  41814. 0 add one wait state to first EDO CASx# assertion for page hits
  41815. (2 Tasc instead of 1 Tasc)
  41816. SeeAlso: #01142
  41817. Bitfields for Intel 82443BX/EX/LX Fixed DRAM Hole Control:
  41818. Bit(s) Description (Table 01147)
  41819. 7-6 Hole Enable
  41820. 00 none
  41821. 01 512K-640K
  41822. 10 15M-16M
  41823. 11 reserved
  41824. 5-0 reserved (0)
  41825. SeeAlso: #01142,#01129
  41826. Bitfields for Intel 82443BX Memory Buffer Strength Control:
  41827. Bit(s) Description (Table 01148)
  41828. 47-40 reserved (0)
  41829. 39-38 strengths of MAA[13:0], WEA#, SRASA#, SCASA# (settings same as below)
  41830. 37-36 strengths of MAB[12:11,9:0], MAB[13,10], WEB#, SRASB#, SCASB#
  41831. 00 = 1x (at both 66 and 100 MHz)
  41832. 01 reserved
  41833. 10 = 2x (at both 66 and 100 MHz)
  41834. 11 = 3x (at both 66 and 100 MHz)
  41835. 35-34 MD[63:0] buffer strength control 2
  41836. 4 DIMM FET config: strength for MD[63:0] path connected to DIMMs 2&3
  41837. 3/4 DIMM non-FET config: program to same value as buffer str. ctrl 1
  41838. 33-32 MD[63:0] buffer strength control 1
  41839. 4 DIMM FET config: strength for MD[63:0] path connected to DIMMs 0&1
  41840. 3/4 DIMM non-FET config: programmable based on total load detected on
  41841. all DIMM connectors
  41842. 00 = 1x (at both 66 and 100 MHz)
  41843. 01 reserved
  41844. 10 = 2x (at both 66 and 100 MHz)
  41845. 11 = 3x (at 100 MHz only)
  41846. 31-30 MECC[7:0] buffer strength control 2
  41847. 4 DIMM FET config: strength for MECC[7:0] path connected to DIMMs 2&3
  41848. 3/4 DIMM non-FET config: program to same value as buffer str. ctrl 1
  41849. 29-28 MECC[7:0] buffer strength control 1
  41850. 4 DIMM FET config: strength for MD[63:0] path connected to DIMMs 0&1
  41851. 3/4 DIMM non-FET config: programmable based on total load detected on
  41852. all DIMM connectors
  41853. (values same as for MD[63:0] buffer strength)
  41854. 27-26 CSB7#/CKE5 buffer strength (same values as bits 37-36)
  41855. 25-24 CSA7#/CKE3 buffer strength (same values as bits 37-36)
  41856. 23-22 CSB6#/CKE4 buffer strength (same values as bits 37-36)
  41857. 21-20 CSA6#/CKE2 buffer strength (same values as bits 37-36)
  41858. 19 CSA5#/RASA5#, CSB5#/RASB5# buffer strength
  41859. 0 = 1x (at both 66 and 100 MHz)
  41860. 1 = 2x (at both 66 and 100 MHz)
  41861. 18 CSA4#/RASA4#, CSB4#/RASB4# buffer strength (same values as bit 19)
  41862. 17 CSA3#/RASA3#, CSB3#/RASB3# buffer strength (same values as bit 19)
  41863. 16 CSA2#/RASA2#, CSB2#/RASB2# buffer strength (same values as bit 19)
  41864. 15 CSA1#/RASA1#, CSB1#/RASB1# buffer strength (same values as bit 19)
  41865. 14 CSA0#/RASA0#, CSB0#/RASB0# buffer strength (same values as bit 19)
  41866. 13-12 DQMA5/CASA5# buffer strength
  41867. 00 = 1x (at both 66 and 100 MHz)
  41868. 01 reserved
  41869. 10 = 2x (at both 66 and 100 MHz)
  41870. 11 = 3x (at 66 MHz only)
  41871. 11-10 DQMA1/CASA1# buffer strength (same values as bits 37-36)
  41872. 9-8 DQMB5/CASB5# buffer strength (same values as bits 13-12)
  41873. 7-6 DQMB1/CASB1# buffer strength (same values as bits 13-12)
  41874. 5-4 DQMA[7:6,4:2,0]/CASA[7:6,4:2,0]# buffer strength (as for bits 37-36)
  41875. 3-2 CKE1/GCKE buffer strength (same values as bits 37-36)
  41876. 1-0 CKE0/FENA buffer strength (same values as bits 37-36)
  41877. SeeAlso: #01142
  41878. Bitfields for Intel 82439TX/82443BX Extended SMRAM Control register:
  41879. Bit(s) Description (Table 01149)
  41880. 7 SMRAM location
  41881. =0 compatible SMRAM space at segment A000h
  41882. =1 high SMRAM space at addreses 100A0000h to 100FFFFFh (accessing
  41883. physical DRAM addresses A0000h to FFFFFh)
  41884. 6 (write-clear) access to extended SMRAM memory range when SMRAM space
  41885. is not open and not in SMM
  41886. 5 enable write-through caching of SMRAM
  41887. (forced to 1 by 82443BX, to 0 by 82439TX)
  41888. 4 enable L1 caching of SMRAM (forced to 1 by 82443BX)
  41889. 3 enable L2 caching of SMRAM (forced to 1 by 82443BX)
  41890. 2-1 TSEG size (read-only once SMRAM locked) (see #01123)
  41891. 00 128K
  41892. 01 256K
  41893. 10 512K
  41894. 11 1M
  41895. 0 enable TSEG (read-only once SMRAM locked) (see #01123)
  41896. when both SMRAM and TSEG are enabled, the top N kilobytes of physical
  41897. DRAM are no longer claimed by the memory controller, and instead
  41898. appear as extended SMRAM at an address 256M higher than the physical
  41899. address
  41900. SeeAlso: #01142,#01123,#01099
  41901. Bitfields for Intel 82443BX SDRAM Row Page Size:
  41902. Bit(s) Description (Table 01150)
  41903. 15-14 page size for row 7 (back of DIMM4)
  41904. 00 two KB
  41905. 01 four KB
  41906. 10 eight KB
  41907. 11 reserved
  41908. 13-12 page size for row 6 (front of DIMM4)
  41909. ...
  41910. 3-2 page size for row 1 (back of DIMM1)
  41911. 1-0 page size for row 0 (front of DIMM1)
  41912. SeeAlso: #01142
  41913. Bitfields for Intel 82443BX SDRAM Control Register:
  41914. Bit(s) Description (Table 01151)
  41915. 15-10 reserved (0)
  41916. 9-8 add one-clock delay to idle/pipeline DRAM leadoff when =01 (all other
  41917. values are illegal)
  41918. 7-5 SDRAM mode select
  41919. 000 normal operation
  41920. 001 issue NOP command on all CPU-to-SDRAM cycles
  41921. 010 issue All-Banks-Precharge command on all CPU-to-SDRAM cycles
  41922. 011 issue mode register set command on CPU-to-SDRAM cycles
  41923. (command is driven on memory address lines, so the proper
  41924. address must be calculated for each row of memory to drive
  41925. the correct command; MAx[2:0] must be driven to 010 for
  41926. burst-of-4 mode, MAx3 to 1 for interleave wrap type,
  41927. MAx4 to the value of the CAS# latency bit, MAx[6:5] to 01,
  41928. and MAx[12:7] to 0000000
  41929. 100 issue CBR cycles on all CPU-to-SDRAM cycles
  41930. else reserved
  41931. 4 "SDRAMPWR" specifies how CKE signals are driven for various DRAM
  41932. configurations; refer to #01145 bit 5
  41933. 3 Leadoff Command Timing
  41934. =0 four CS# clocks (100 MHz or 66 MHz desktop if MAA/MAB load > 9)
  41935. =1 three CS# clocks (66 MHz mobile platforms, or desktop w/ load <= 9)
  41936. 2 CAS# latency
  41937. =0 three DCLKs
  41938. =1 two DCLKs
  41939. 1 SDRAM RAS# to CAS# delay
  41940. =0 three clocks
  41941. =1 two clocks
  41942. 0 SDRAM RAS# precharge
  41943. =0 three clocks
  41944. =1 two clocks
  41945. SeeAlso: #01142
  41946. Bitfields for Intel 82443BX Paging Policy Register:
  41947. Bit(s) Description (Table 01152)
  41948. 15-8 banks per row (bit 7 is row 0, bit 15 is row 7)
  41949. =0 two banks
  41950. =1 four banks
  41951. 7-5 reserved
  41952. 4 Intel Reserved
  41953. 3-0 DRAM Idle Timer ("DIT")
  41954. number of clocks in idle state before all pages are precharged
  41955. 0000 no clocks
  41956. 0001 2 clocks
  41957. 0010 4 clocks
  41958. 0011 8 clocks
  41959. 0100 10 clocks
  41960. 0101 12 clocks
  41961. 0110 16 clocks
  41962. 0111 32 clocks
  41963. 1xxx never (pages are not closed on idle)
  41964. SeeAlso: #01142
  41965. Bitfields for Intel 82443BX Power Management Control Register:
  41966. Bit(s) Description (Table 01153)
  41967. 7 enable SDRAM power-down for idle rows
  41968. 6 enable ACPI control register at PORT 0022h
  41969. 5 suspend refresh type
  41970. =0 self-refresh
  41971. =1 CBR mode
  41972. 4 enable normal refresh (must be set before accessing RAM after a reset)
  41973. 3 quick-start mode enabled (read-only)
  41974. 2 enable dynamic clock gating on AGPset "IDLE" condition (all buses in
  41975. idle state)
  41976. 1 AGP disabled (read-only)
  41977. 0 enable CPU reset without PCIRST enable
  41978. SeeAlso: #01142
  41979. Bitfields for Intel 82443BX Suspend CBR Refresh Rate:
  41980. Bit(s) Description (Table 01154)
  41981. 15-13 reserved (0)
  41982. 12 enable automatic Suspend CBR Refresh Rate adjustment (based on number
  41983. of OSCCLKs in a given time); if clear, the below field must be
  41984. programmed to guarantee minimum refresh rates in the worst case
  41985. 11-0 Suspend CBR Refresh Rate (number of OSCCLKs between refresh requests)
  41986. SeeAlso: #01142
  41987. Bitfields for Intel 82443BX Error Address Pointer:
  41988. Bit(s) Description (Table 01155)
  41989. 31-12 (read-only) bits 31-12 of address in which first parity/ECC error
  41990. occurred
  41991. 11-2 reserved
  41992. 1 (write-clear) multi-bit error occurred
  41993. 0 (write-clear) single-bit error occurred
  41994. SeeAlso: #01156,#01142
  41995. Bitfields for Intel 82443BX/EX/LX Error Command Register:
  41996. Bit(s) Description (Table 01156)
  41997. 7 enable SERR# on AGP non-snoopable access outside graphics aperture
  41998. 6 enable SERR# on invalid AGP DRAM access (82443BX)
  41999. enable SERR# on AGP Non-snoopable access to location outside main DRAM
  42000. and arpeture rangles (82443EX/LX)
  42001. 5 enable SERR# on access to invalid Graphics Aperture Translation Table
  42002. 4 enable SERR# on receiving Target Abort
  42003. 3 enable SERR# when Thermal DRAM Throttling detected (82443BX)
  42004. enable SERR# on PCI Parity Error (82443EX/LX)
  42005. ---82443BX---
  42006. 2 SERR# mode
  42007. =0 asserted for one PCI clock
  42008. =1 level mode signal (for systems that connect SERR# to EXTSMI#)
  42009. 1 enable SERR# on receiving multi-bit Parity/ECC error
  42010. 0 enable SERR# on receiving single-bit (corrected) ECC error
  42011. ---82443EX/LX---
  42012. 2-0 reserved
  42013. Note: bits 1 and 0 must be clear on systems not supporting ECC
  42014. SeeAlso: #01155,#01157,#01142,#01129
  42015. Bitfields for Intel 82443BX Error Status Register:
  42016. Bit(s) Description (Table 01157)
  42017. 15-13 reserved (0)
  42018. 12 (write-clear) DRAM Read thermal throttling condition occurred
  42019. 11 (write-clear) DRAM Write thermal throttling condition occurred
  42020. 10 (write-clear) AGP non-snoopable access outside Graphics Aperture
  42021. 9 (write-clear) invalid AGP non-snoopable DRAM read access
  42022. 8 (write-clear) invalid Graphics Aperture Translation Table entry
  42023. 7-5 (read-only) number of DRAM row containing first multi-bit error
  42024. 4 (write-clear) multi-bit (uncorrectable) error occurred
  42025. 3-1 (read-only) number of DRAM row containing first single-bit error
  42026. 0 (write-clear) single-bit (correctable) error occurred
  42027. SeeAlso: #01156,#01142
  42028. Bitfields for Intel AGP Capability Identifier:
  42029. Bit(s) Description (Table 01158)
  42030. 31-24 reserved
  42031. 23-20 major version of supported AGP revision
  42032. 19-16 minor version of supported AGP revision
  42033. 15-8 offset of next capability (0 = none)
  42034. 7-0 PCI capability ID (2 = AGP, 0 = disabled)
  42035. SeeAlso: #01142,#01159,#01129
  42036. Bitfields for Intel 82443BX/EX/LX AGP Status Register:
  42037. Bit(s) Description (Table 01159)
  42038. 31-24 maximum AGP request queue depth (read-only)
  42039. 23-10 reserved
  42040. 9 AGP side band addressing is supported (read-only)
  42041. 8-2 reserved
  42042. 1-0 supported AGP data transfer type(s)
  42043. bit 0: 1x data transfer mode
  42044. bit 1: 2x data transfer mode
  42045. Note: bits 0 and 1 may not both be clear
  42046. SeeAlso: #01160,#01142,#01158,#01129
  42047. Bitfields for Intel 82443BX/EX/LX AGP Command Register:
  42048. Bit(s) Description (Table 01160)
  42049. 31-10 reserved
  42050. 9 enable AGP sideband addressing
  42051. 8 enable AGP
  42052. 7-2 reserved
  42053. 1-0 selected AGP transfer rate
  42054. 00 = default
  42055. 01 = 1x
  42056. 10 = 2x
  42057. 11 illegal
  42058. SeeAlso: #01159,#01142,#01161,#01129
  42059. Bitfields for Intel 82443BX/EX/LX AGP Control Register:
  42060. Bit(s) Description (Table 01161)
  42061. 31-16 reserved (0)
  42062. 15 disable forced ordering of snoopable writes and AGP reads (82443BX)
  42063. (82443EX/LX) reserved
  42064. 14 reserved (0)
  42065. 13 enable Graphics Aperture Write-AGP Read synchronization
  42066. 12-10 reserved (0)
  42067. 9-8 reserved (0) (82443BX)
  42068. expedite transaction throttle timer (82443EX/LX)
  42069. 00 no throttling
  42070. 01 reserved
  42071. 10 192 clocks on, 64 clocks off
  42072. 11 reserved
  42073. 7 enable Graphics Translation Lookaside Buffer (and GTLB Flush Control)
  42074. 6-0 reserved (0)
  42075. SeeAlso: #01160,#01142,#01129
  42076. Bitfields for Intel 82443BX/EX/LX Graphics Aperture Size Control:
  42077. Bit(s) Description (Table 01162)
  42078. 7-6 reserved
  42079. 5-0 aperture size
  42080. 000000 256M
  42081. 100000 128M
  42082. 110000 64M
  42083. 111000 32M
  42084. 111100 16M
  42085. 111110 8M
  42086. 111111 4M
  42087. other illegal
  42088. SeeAlso: #01142,#01163,#01129
  42089. Bitfields for Intel 82443BX/EX/LX Graphics Aperture Trans. Table Base Register:
  42090. Bit(s) Description (Table 01163)
  42091. 31-12 bits 31-12 of aperture translation table base address
  42092. 11-0 reserved (0)
  42093. SeeAlso: #01162,#01142,#01129
  42094. Bitfields for Intel 82443BX Memory Buffer Frequency Select:
  42095. Bit(s) Description (Table 01164)
  42096. 23 reserved
  42097. 22 MAA[13:0], WEA#, SRASA#, SCASA# buffer select
  42098. =0 66 MHz buffers
  42099. =1 100 MHz buffers
  42100. 21 MAB[12:11,9:0]#, MAB[13,10], WEB#, SRASB#, SCASB# buffer select
  42101. (as for bit 22)
  42102. 20 MD[63:0] (control 2) buffer select
  42103. 19 MD[63:0] (control 1) buffer select
  42104. 18 MECC[7:0] (control 2) buffer select
  42105. 17 MECC[7:0] (control 1) buffer select
  42106. 16 CSB7#/CKE5 buffer select
  42107. 15 CSA7#/CKE3 buffer select
  42108. 14 CSB6#/CKE4 buffer select
  42109. 13 CSA6#/CKE2 buffer select
  42110. 12 CSA5#/RASA5#, CSB5#/RASB5# buffer select
  42111. 11 CSA4#/RASA4#, CSB4#/RASB4# buffer select
  42112. 10 CSA3#/RASA3#, CSB3#/RASB3# buffer select
  42113. 9 CSA2#/RASA2#, CSB2#/RASB2# buffer select
  42114. 8 CAS1#/RASA1#, CSB1#/RASB1# buffer select
  42115. 7 CSA0#/RASA0#, CSB0#/RASB0# buffer select
  42116. 6 DQMA5/CASA5# buffer select
  42117. 5 DQMA1/CASA1# buffer select
  42118. 4 DQMB5/CASB5# buffer select
  42119. 3 DQMB1/CASB1# buffer select
  42120. 2 DQMA[7:6,4:2,0]/CASA[7:6,4:2,0]# buffer select
  42121. 1 CKE1/GCKE buffer select
  42122. 0 CKE0/FENA buffer select
  42123. SeeAlso: #01142,#01166
  42124. Bitfields for Intel 82443BX DRAM Read/Write Thermal Throttling Control:
  42125. Bit(s) Description (Table 01165)
  42126. 63 lock all read and write throttle control register bits (exists in Write
  42127. Throttling control register only)
  42128. 62-46 reserved
  42129. 45-38 global DRAM sampling window (in four-millisecond units)
  42130. 37-26 global QWORD threshold (documented as units of 215, but may be typo and
  42131. actually be units of 2^15 = 32768)
  42132. thermal throttling will be invoked if the number of QWORD accesses
  42133. during the sampling window exceeds the threshold count
  42134. 25-20 throttle time in multiples of the sampling window
  42135. 19-13 throttle monitoring window in 16 DRAM-clock units
  42136. 12-3 throttle QWORD maximum count -- while throttling is enabled, at most
  42137. this many QWORD accesses are permitted during each throttle
  42138. monitoring window
  42139. 2-0 DRAM Throttle Mode
  42140. 100 normal operation
  42141. else Intel Reserved
  42142. SeeAlso: #01142
  42143. Bitfields for Intel 82443BX Buffer Control Register:
  42144. Bit(s) Description (Table 01166)
  42145. 15-10 reserved
  42146. 9-6 AGP Jam Latch strength
  42147. bit 9: enable strong pull-up
  42148. bit 8: enable weak pull-up
  42149. bit 7: enable strong pull-down
  42150. bit 6: enable weak pull-down
  42151. 5-0 Intel Reserved
  42152. SeeAlso: #01142,#01164
  42153. Format of PCI Configuration for Intel 82371FB/82371SB Function 0 (ISA Bridge):
  42154. Offset Size Description (Table 01167)
  42155. 00h 64 BYTEs header (see #00878)
  42156. (vendor ID 8086h, device ID 122Eh/7000h)
  42157. (revision ID 00h = 82371SB step A-1)
  42158. (revision ID 01h = 82371SB step B-0)
  42159. 40h 12 BYTEs reserved
  42160. 4Ch BYTE ISA I/O Controller Recovery Timer (see #01087)
  42161. 4Dh BYTE reserved
  42162. 4Eh BYTE X-Bus Chip Select Enable (see #01089)
  42163. 4Fh BYTE (82371SB) X-Bus Chip Select Enable High (see #01102)
  42164. bit 0: I/O APIC enabled
  42165. 4Fh BYTE (82371FB) reserved
  42166. 50h 16 BYTEs reserved
  42167. 60h 4 BYTEs PCI IRQ Route Control (see #01076)
  42168. 64h 5 BYTEs reserved
  42169. 69h BYTE top of memory (see #01216)
  42170. 6Ah WORD miscellaneous status (see #01217)
  42171. 6Ch 4 BYTEs reserved
  42172. 70h BYTE motherboard IRQ Route Control 0 (see #01218)
  42173. 71h BYTE (82371FB) motherboard IRQ Route Control 1 (see #01218)
  42174. 72h 4 BYTEs reserved
  42175. 76h 2 BYTEs motherboard DMA control (see #01219)
  42176. 78h WORD programmable chip select control (see #01220)
  42177. 7Ah 6 BYTEs reserved
  42178. 80h BYTE (82371SB) APIC Base Address Relocation (see #01078)
  42179. 81h BYTE reserved
  42180. 82h BYTE (82371SB) Deterministic Latency Control (see #01221)
  42181. 83h 29 BYTEs reserved
  42182. A0h BYTE SMI Control (see #01222)
  42183. A1h BYTE reserved
  42184. A2h WORD SMI Enable (see #01080)
  42185. A4h DWORD System Event Enable (SEE) (see #01081)
  42186. A8h BYTE Fast-Off Timer (in minutes, PCICLKs, or milliseconds)
  42187. value is count less one; timer must be stopped before
  42188. changing its value
  42189. A9h BYTE reserved
  42190. AAh WORD SMI Request (see #01082)
  42191. ACh BYTE Clock Scale STPCLK# Low Timer
  42192. STPCLK# stays low for 1+1056*(value+1) PCICLKs
  42193. ADh BYTE reserved
  42194. AEh BYTE Clock Scale STPCLK# High Timer
  42195. STPCLK# stays high for 1+1056*(value+1) PCICLKs
  42196. AFh 81 BYTEs reserved
  42197. SeeAlso: #00873,#01214,#01215,#01064,#01083,#01108,#01098
  42198. Format of PCI configuration for Intel 82371MX MPIIX:
  42199. Offset Size Description (Table 01168)
  42200. 00h 64 BYTEs header (see #00878)
  42201. (vendor ID 8086h, device ID 1234h)
  42202. 40h 9 BYTEs reserved
  42203. 49h BYTE serial and parallel port enable (see #01169)
  42204. 4Ah 2 BYTEs reserved
  42205. 4Ch BYTE Extended I/O Controller Recovery Timer (see #01170)
  42206. 4Dh BYTE reserved
  42207. 4Eh BYTE BIOS enable (see #01171)
  42208. 4Fh BYTE FDC enable (see #01172)
  42209. 50h 16 BYTEs reserved
  42210. 60h BYTE PIRQA# Route Control (see #01076)
  42211. 61h BYTE PIRQB# Route Control (see #01076)
  42212. 62h 8 BYTEs reserved
  42213. 6Ah WORD Miscellaneous Status (see #01173)
  42214. 6Ch WORD IDE timing modes (see #01223)
  42215. 6Eh 2 BYTEs reserved
  42216. 70h BYTE Motherboard IRQ Route Control (see #01223)
  42217. 71h 5 BYTEs reserved
  42218. 76h 3 BYTEs Motherboard DMA Route Control (see #01219)
  42219. 79h 5 BYTEs reserved
  42220. 7Eh BYTE Audio enable (see #01174)
  42221. 7Fh BYTE DMA channel 5-7 address size (see #01175)
  42222. 80h BYTE PCI DMA enable (see #01176)
  42223. 81h 7 BYTEs reserved
  42224. 88h BYTE PCI DMA/PCI DMA expansion A (see #01177)
  42225. 89h BYTE PCI DMA/PCI DMA expansion B (see #01177)
  42226. 8Ah WORD Programmable Memory Address Control 0 (see #01178)
  42227. 8Ch WORD Programmable Memory Address Control 1 (see #01178)
  42228. 8Eh WORD Programmable Memory Address Mask (see #01179)
  42229. 90h BYTE Programmable Address Range Enable (see #01180)
  42230. 91h BYTE reserved
  42231. 92h WORD Programmable Chip Select Control (see #01181)
  42232. 94h WORD Programmable Address Control 1 (see #01182)
  42233. 96h WORD Programmable Address Control 2 (see #01182)
  42234. 98h WORD Programmable Address Control 3 (see #01182)
  42235. 9Ah BYTE Programmable Address Mask A (see #01183)
  42236. 9Bh BYTE Programmable Address Mask B (see #01184)
  42237. 9Ch WORD I/O configuration address (see #01185)
  42238. 9Eh 2 BYTEs reserved
  42239. A0h WORD Programmable Address Control 4 (see #01182)
  42240. A2h WORD Programmable Address Control 5 (see #01182)
  42241. A4h BYTE Programmable Address Mask C (see #01186)
  42242. A5h BYTE Peripheral Access Detect Enable 0 (see #01187)
  42243. A6h BYTE Peripheral Access Detect Enable 1 (see #01188)
  42244. A7h BYTE Peripheral Access Detect Enable 2 (see #01189)
  42245. A8h WORD Local Trap Address for Device 3 (see #01190)
  42246. AAh BYTE Local Trap Mask for Device 3 (see #01191)
  42247. ABh BYTE Local Trap SMI Enable (see #01192)
  42248. ACh 2 BYTEs reserved
  42249. AEh BYTE Local Trap SMI Status (see #01192)
  42250. AFh BYTE reserved
  42251. B0h BYTE Local Standby SMI Enable (see #01193)
  42252. B1h BYTE Local Standby Timer Reload Enable (see #01194)
  42253. B2h BYTE Local Standby SMI Status (see #01193)
  42254. B3h BYTE reserved
  42255. B4h BYTE Local Standby Timer IDE Idle (see #01195)
  42256. B5h BYTE Local Standby Timer Audio Idle (see #01195)
  42257. B6h BYTE Local Standby Timer COM Idle (see #01195)
  42258. B7h BYTE reserved
  42259. B8h BYTE Local Standby Timer Device 1 Idle (see #01195)
  42260. B9h BYTE Local Standby Timer Device 2 Idle (see #01195)
  42261. BAh BYTE Local Standby Timer Device 3 Idle (see #01195)
  42262. BBh BYTE reserved
  42263. BCh BYTE Software/EXTSMI# SMI Delay Timer (see #01195)
  42264. BDh BYTE Suspend SMI Delay Timer (see #01195)
  42265. BEh BYTE Global Standby Timer (see #01195)
  42266. BFh BYTE Clock Throttle Standby Timer (see #01195)
  42267. C0h BYTE System Management Control (see #01196)
  42268. C1h BYTE System SMI Enable (see #01197)
  42269. C2h BYTE Miscellaneous SMI Enable (see #01198)
  42270. C3h BYTE Global SMI Enable (see #01200)
  42271. C4h 2 BYTEs reserved
  42272. C6h BYTE System SMI Status (see #01197)
  42273. C7h BYTE Miscellaneous SMI Status (see #01199)
  42274. C8h BYTE Global SMI Status (see #01201)
  42275. C9h 3 BYTEs reserved
  42276. CCh BYTE Suspend/Resume Control 1 (see #01202)
  42277. CDh BYTE Suspend/Resume Control 2 (see #01203)
  42278. CEh BYTE SMOUT Control (see #01204)
  42279. CFh BYTE reserved
  42280. D0h BYTE System Event Enable 0 (see #01207)
  42281. D1h BYTE System Event Enable 1 (see #01208)
  42282. D2h BYTE System Event Enable 2 (see #01209)
  42283. D3h BYTE Burst Count Timer (see #01195)
  42284. D4h BYTE Clock Control (see #01205)
  42285. D5h BYTE reserved
  42286. D6h BYTE STPCLK# Low Timer (see #01195)
  42287. D7h BYTE STPCLK# High Timer (see #01195)
  42288. D8h BYTE Stop Break Event Enable 0 (see #01207)
  42289. D9h BYTE Stop Break Event Enable 1 (see #01208)
  42290. DAh BYTE Stop Break Event Enable 2 (see #01209)
  42291. DBh 5 BYTEs reserved
  42292. E0h BYTE Shadow Register (see #01206)
  42293. E1h 3 BYTEs reserved
  42294. E4h BYTE Burst Clock Event Enable 0 (see #01207)
  42295. E5h BYTE Burst Clock Event Enable 1 (see #01208)
  42296. E6h BYTE Burst Clock Event Enable 2 (see #01209)
  42297. E7h BYTE Burst Clock Event Enable 3 (see #01210)
  42298. E8h BYTE Burst Clock Event Enable 4 (see #01211)
  42299. E9h BYTE Burst Clock Event Enable 5 (see #01212)
  42300. EAh BYTE Burst Clock Event Enable 6 (see #01213)
  42301. EBh BYTE reserved
  42302. ECH BYTE Clock Throttle Break Event Enable 0 (see #01207)
  42303. EDh BYTE Clock Throttle Break Event Enable 1 (see #01208)
  42304. EEh BYTE Clock Throttle Break Event Enable 2 (see #01209)
  42305. EFh BYTE Clock Throttle Break Event Enable 3 (see #01210)
  42306. F0h BYTE Clock Throttle Break Event Enable 4 (see #01211)
  42307. F1h BYTE Clock Throttle Break Event Enable 5 (see #01212)
  42308. F2h BYTE Clock Throttle Break Event Enable 6 (see #01213)
  42309. F3h 13 BYTES reserved
  42310. SeeAlso: #00873,#01076
  42311. Bitfields for Intel 82371MX serial and parallel port enable register:
  42312. Bit(s) Description (Table 01169)
  42313. 7 reserved
  42314. 6 LPT3 enabled
  42315. 5 LPT2 enabled
  42316. 4 LPT1 enabled
  42317. 3 COM4 enabled
  42318. 2 COM3 enabled
  42319. 1 COM2 enabled
  42320. 0 COM1 enabled
  42321. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42322. Bitfields for Intel 82371MX Extended I/O Controller Recovery Timer register:
  42323. Bit(s) Description (Table 01170)
  42324. 7 reserved
  42325. 6 8-Bit I/O Recovery Enable
  42326. =1 Enable value programmed into bits 5-3
  42327. 5-3 8-Bit I/O Recovery Times
  42328. 000 = 8 SYSCLK
  42329. 001 = 1 SYSCLK (default)
  42330. 010 = 2 SYSCLK
  42331. 011 = 3 SYSCLK
  42332. 100 = 4 SYSCLK
  42333. 101 = 5 SYSCLK
  42334. 110 = 6 SYSCLK
  42335. 111 = 7 SYSCLK
  42336. 2-0 Reserved (0)
  42337. SeeAlso: #01168,#01087,PORT xxxxh"Intel 82371"
  42338. Bitfields for Intel 82371MX BIOS enable register:
  42339. Bit(s) Description (Table 01171)
  42340. 7 Extended BIOS Enable
  42341. 6 Lower BIOS Enable 1
  42342. 5 Lower BIOS Enable 0
  42343. 4 Lower BIOS CS# Enable 0
  42344. 3 F Segment BIOS Enable
  42345. 2 BIOSCS# Write Protect
  42346. 1-0 reserved
  42347. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42348. Bitfields for Intel 82371MX FDC Enable register:
  42349. Bit(s) Description (Table 01172)
  42350. 7 Coprocessor Error fuction Enable
  42351. 6 IRQ12/M Mouse Function Enable
  42352. 5 System Management Output 5/Disk Output Enable
  42353. 4 System Management Output 4/RTCALE Enable
  42354. 3 Motherboad DMA 2 Disable
  42355. 2 reserved
  42356. 1 Floppy Secondary Addess Enable
  42357. 0 Floppy Primary Address Enable
  42358. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42359. Bitfields for Intel 82371MX Miscellaneous Status register:
  42360. Bit(s) Description (Table 01173)
  42361. 15-3 reserved
  42362. 2-1 reserved (0)
  42363. 0 ISA Clock Divisor Status
  42364. =1 Divisor=3 (PCICLK=25MHz) default
  42365. =0 Divisor=4 (PCICLK=33MHz)
  42366. Note: This is a read-only register that reports on chipset jumper settings.
  42367. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42368. Bitfields for Intel 82371MX Audio enable register:
  42369. Bit(s) Description (Table 01174)
  42370. 7 Audio enabled
  42371. 6-4 Reserved
  42372. 3-2 Audio I/O Address
  42373. 00 0220h
  42374. 01 0230h
  42375. 10 0240h
  42376. 11 0250h
  42377. 1-0 reserved
  42378. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42379. Bitfields for Intel 82371MX DMA channel 5-7 address size register:
  42380. Bit(s) Description (Table 01175)
  42381. 7 Channel 7 16/8-Bit Count by Word/Byte
  42382. =1 16-bit, count by word
  42383. =0 8-bit, count by byte
  42384. 6 Channel 6 16/8-Bit Count by Word/Byte (same values as bit 7)
  42385. 5 Channel 5 16/8-Bit Count by Word/Byte (same values as bit 7)
  42386. 4-3 reserved (0)
  42387. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42388. Bitfields for Intel 82371MX PCI DMA Enable register:
  42389. Bit(s) Description (Table 01176)
  42390. 7 DMA CH7 is on PCI Bus
  42391. 6 DMA CH6 is on PCI Bus
  42392. 5 DMA CH5 is on PCI Bus
  42393. 4 reserved
  42394. 3 DMA CH3 is on PCI Bus
  42395. 2 DMA CH2 is on PCI Bus
  42396. 1 DMA CH1 is on PCI Bus
  42397. 0 DMA CH0 is on PCI Bus
  42398. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42399. Bitfields for Intel 82371MX PCI DMA/PCI DMA expansion registers:
  42400. Bit(s) Description (Table 01177)
  42401. 7-4 reserved
  42402. 3 Expansion enabled
  42403. 2-0 DMA channel
  42404. Note: The PCI DMA Expansion request lines (REQ[A,B]#/GNT[A,B]#) provide PCI
  42405. DMA and PCI DMA expansion support.
  42406. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42407. Bitfields for Intel 82371MX Programmable Memory Address Control registers:
  42408. Bit(s) Description (Table 01178)
  42409. 15-0 Memory Access Control
  42410. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42411. Bitfields for Intel 82371MX Programmable Memory Address Mask register:
  42412. Bit(s) Description (Table 01179)
  42413. 7-0 Memory Address Mask
  42414. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42415. Bitfields for Intel 82371MX Programmable Address Range Enable register:
  42416. Bit(s) Description (Table 01180)
  42417. 7 PCS# Enabled for Programmable Address Range 2
  42418. 6 PCS# Enabled for Programmable Address Range 1
  42419. 5 Programmable Address range 5 Enabled
  42420. 4 Programmable Address range 4 Enabled
  42421. 3 Programmable Address range 5 Enabled
  42422. 2 Programmable Address range 3 Enabled
  42423. 1 Programmable Address range 1 Enabled
  42424. 5 PCS# Address range Enabled
  42425. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42426. Bitfields for Intel 82371MX Programmable Chip Select Control register:
  42427. Bit(s) Description (Table 01181)
  42428. 15-0 PCS# Address
  42429. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42430. Bitfields for Intel 82371MX Programmable Address Control registers:
  42431. Bit(s) Description (Table 01182)
  42432. 15-0 Programmable Address Control
  42433. Note: This register selects a 16-bit I/O address range to be forwarded to
  42434. the Extended I/O Bus, if enabled in the Programmable Address Range
  42435. register.
  42436. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42437. Bitfields for Intel 82371MX Programmable Address Mask A register:
  42438. Bit(s) Description (Table 01183)
  42439. 7-4 Programmable Address Control 1 Mask
  42440. 3-0 Programmable Chip Select Mask
  42441. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42442. Bitfields for Intel 82371MX Programmable Address Mask B register:
  42443. Bit(s) Description (Table 01184)
  42444. 7-4 Programmable Address Control 3 Mask
  42445. 3-0 Programmable Address Control 2 Mask
  42446. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42447. Bitfields for Intel 82371MX I/O configuration address register:
  42448. Bit(s) Description (Table 01185)
  42449. 15-10 reserved
  42450. 9-1 I/O Configuration Address
  42451. 0 I/O Configuration Address Enabled
  42452. Note: This register provides an I/O address range to be forwarded to the
  42453. Extended I/O Bus for accesses to the configuration space of an
  42454. integrated I/O device. PCI address bits 9-1 are compared to bits
  42455. 9-1 of this register. Address bits 31-10 must be 0.
  42456. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42457. Bitfields for Intel 82371MX Programmable Address Mask C register:
  42458. Bit(s) Description (Table 01186)
  42459. 7-4 Programmable Address Control 5 Mask
  42460. 3-0 Programmable Address Control 4 Mask
  42461. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42462. Bitfields for Intel 82371MX Peripheral Access Detect Enable 0 register:
  42463. Bit(s) Description (Table 01187)
  42464. 7 Enable Audio-E
  42465. 6 Enable Audio-D
  42466. 5 Enable Audio-C
  42467. 4 Enable Audio-B
  42468. 3 Enable Audio-A
  42469. 2 Enable Parallel 3
  42470. 1 Enable Parallel 2
  42471. 0 Enable Parallel 1
  42472. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42473. Bitfields for Intel 82371MX Peripheral Access Detect Enable 1 register:
  42474. Bit(s) Description (Table 01188)
  42475. 7 Enable COM4
  42476. 6 Enable COM3
  42477. 5 Enable COM3
  42478. 4 Enable COM1
  42479. 3 Enable Secondary FDC
  42480. 2 Enable Primary FDC
  42481. 1 Enable Secondary IDE
  42482. 0 Enable Promary IDE
  42483. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42484. Bitfields for Intel 82371MX Peripheral Access Detect Enable 2 register:
  42485. Bit(s) Description (Table 01189)
  42486. 7 Enable PMAC1
  42487. 6 Enable PMAC0
  42488. 5 Enable PAC5
  42489. 4 Enable PAC4
  42490. 3 Enable PAC3
  42491. 2 Enable PAC2
  42492. 1 Enable PAC1
  42493. 0 Enable PCSC
  42494. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42495. Bitfields for Intel 82371MX Local Trap Address for Device 3 register:
  42496. Bit(s) Description (Table 01190)
  42497. 15-0 Local Trap Address base for Device 3
  42498. Note: Is compared with bits 15-0 of PCI I/O Addresses. Address bits 31-16
  42499. must be 0.
  42500. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42501. Bitfields for Intel 82371MX Local Trap Mask for Device 3 register:
  42502. Bit(s) Description (Table 01191)
  42503. 7-4 Local Trap COM Port Select
  42504. =1000 COM4 02E8h-02EFh
  42505. =0100 COM3 03E8h-83EFh
  42506. =0010 COM2 02F8h-02FFh
  42507. =0001 COM1 03F8h-03FFh
  42508. Note: These bits when set cause an SMI# when access to the corresponding I/O
  42509. port range is made.
  42510. 3-0 Local Trap Mask
  42511. Note: This field selects the range of trappable addresses (in bytes).
  42512. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42513. Bitfields for Intel 82371MX Local Trap SMI Enable/Status registers:
  42514. Bit(s) Description (Table 01192)
  42515. 7-6 reserved
  42516. 5 IDE
  42517. 4 Audio
  42518. 3 COM
  42519. 2 DEV3
  42520. 1 DEV2
  42521. 0 DEV1
  42522. Note: a set bit indicates in the Enable register turns generation of SMI# on
  42523. I/O accesses to the address region used by the selected device;
  42524. a set bit in the Status register indicates which trap caused an SMI#
  42525. interrupt.
  42526. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42527. Bitfields for Intel 82371MX Local Standby SMI Enable/Status registers:
  42528. Bit(s) Description (Table 01193)
  42529. 7-6 reserved
  42530. 5 IDE
  42531. 4 Audio
  42532. 3 COM
  42533. 2 DEV3
  42534. 1 DEV2
  42535. 0 DEV1
  42536. Note: each bit in the Enable register turns on the associated SMI Timer; a
  42537. set bit in the Status register indicates which local standby timer
  42538. caused the SMI interrupt
  42539. SeeAlso: #01168,#01194,PORT xxxxh"Intel 82371"
  42540. Bitfields for Intel 82371MX Local Standby Timer Reload Enable register:
  42541. Bit(s) Description (Table 01194)
  42542. 7 IDE
  42543. 6 Audio
  42544. 5 COM
  42545. 4 DEV3
  42546. 3 DEV2
  42547. 2 DEV1
  42548. 1 Audio MDAK2
  42549. 0 Audio MDAK1
  42550. Note: This register enables local standby timer reloading. When the
  42551. associated I/O address range is accessed, the standby timer is
  42552. reloaded with it's default value. Also note the different bit-order
  42553. for this register only.
  42554. SeeAlso: #01168,#01193,PORT xxxxh"Intel 82371"
  42555. Bitfields for Intel 82371MX Count Value registers:
  42556. Bit(s) Description (Table 01195)
  42557. 7-0 Count value
  42558. Note: This field contains the initial count value for various time-out
  42559. events. 00 is an illegal programmed value. The programmed value is
  42560. decremented by certain events or system clocks, and the event is
  42561. triggered when the count reaches 0.
  42562. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42563. Bitfields for Intel 82371MX System Management Control register:
  42564. Bit(s) Description (Table 01196)
  42565. 7-3 reserved
  42566. 2 Freeze (but not reset) all Power Management timers
  42567. 1 =0 disable all Power Management functions
  42568. 0 =0 disable SMI
  42569. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42570. Bitfields for Intel 82371MX System SMI Enable/Status registers:
  42571. Bit(s) Description (Table 01197)
  42572. 7 reserved
  42573. 6 Write to APMC Port (software SMI)
  42574. 5 EXTSMI#
  42575. 4 IRQ12
  42576. 3 IRQ8
  42577. 2 IRQ4
  42578. 1 IRQ3
  42579. 0 IRQ1
  42580. Note: each set bit in the Enable register turns on SMI# generation for the
  42581. associated hardware event; a set bit in the Status register indicates
  42582. which event caused the SMI interrupt
  42583. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42584. Bitfields for Intel 82371MX Miscellaneous SMI Enable register:
  42585. Bit(s) Description (Table 01198)
  42586. 7-4 reserved
  42587. 3 Write to APMC Port
  42588. 2 SRBTN#
  42589. 1 BATLOW#
  42590. 0 reserved
  42591. Note: Enables SMI# generation for the above hardware events
  42592. SeeAlso: #01168,#01199,PORT xxxxh"Intel 82371"
  42593. Bitfields for Intel 82371MX Miscellaneous SMI Status register:
  42594. Bit(s) Description (Table 01199)
  42595. 7-4 reserved
  42596. 3 =1 indicates system is in global standby mode
  42597. 2 SRBTN# caused SMI
  42598. 1 BATLOW# caused SMI
  42599. 0 reserved
  42600. SeeAlso: #01168,#01198,PORT xxxxh"Intel 82371"
  42601. Bitfields for Intel 82371MX Global SMI Enable register:
  42602. Bit(s) Description (Table 01200)
  42603. 7 System Events Enabled
  42604. 6 Software SMI#'s (generated by bit 0 of this register) Enabled
  42605. 5 reserved
  42606. 4 Local Traps Enabled
  42607. 3 Local Standby Timers Enabled
  42608. 2 Global Standby Timer Enabled
  42609. 1 SRBTN# and BATLOW# Enabled
  42610. Note: Enables SMI# generation for the above hardware events
  42611. SeeAlso: #01168,#01201,PORT xxxxh"Intel 82371"
  42612. Bitfields for Intel 82371MX Global SMI Status register:
  42613. Bit(s) Description (Table 01201)
  42614. 7 One of the System Events caused SMI
  42615. 6 Software SMI or EXTSMI# caused SMI
  42616. 5 Write to APMC caused SMI
  42617. 4 Access to one of the Local Traps caused SMI
  42618. 3 One of the local Standby timers caused SMI
  42619. 2 Global Standby Timer caused SMI
  42620. 1 SRBTN# or BATLOW# caused SMI
  42621. 0 reserved
  42622. SeeAlso: #01168,#01200,PORT xxxxh"Intel 82371"
  42623. Bitfields for Intel 82371MX Suspend/Resume Control 1 register:
  42624. Bit(s) Description (Table 01202)
  42625. 7 BATLOW# bypasses Suspend delay timer and activates SMI# immediately
  42626. 6 IRQ8 will NOT cause a resume
  42627. 5 COM RI (Ring) will NOT cause a resume ("Wake on Ring" function)
  42628. 4 BATLOW# will not prevent a resume
  42629. 3 is set by power management software at the end of a suspend routine
  42630. 2 can be set by power management software at the end of a suspend routine
  42631. 1-0 Set suspend mode
  42632. 00 Suspend Disabled
  42633. 01 reserved
  42634. 10 Suspend-to-DRAM
  42635. 11 Suspend-to-Disk
  42636. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42637. Bitfields for Intel 82371MX Suspend/Resume Control 2 register:
  42638. Bit(s) Description (Table 01203)
  42639. 7-1 reserved
  42640. 0 EXTSMI# will NOT cause a resume event
  42641. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42642. Bitfields for Intel 82371MX SMOUT Control register:
  42643. Bit(s) Description (Table 01204)
  42644. 7-6 reserved
  42645. 5-0 Writing to any bits sets the state of the 6 SMOUTx pins.
  42646. SMOUT5 is not effected if it is configured for DOE# function
  42647. SMOUT4 is not effected if it is configured for RTCALE function
  42648. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42649. Bitfields for Intel 82371MX Clock Control register:
  42650. Bit(s) Description (Table 01205)
  42651. 7 Clock Throttle standy by timer frequency
  42652. =1 32ms
  42653. =0 4ms
  42654. Note: Sets the granularity of the Clock Throttle Standby Timer
  42655. 6-5 reserved
  42656. 4 Enable Auto Clock Throttle
  42657. 3-2 STPCLK# Mode
  42658. 00 Disable STPCLK# Function
  42659. 01 Enable stop grant mode
  42660. 10 Enable stop clock mode
  42661. 11 reserved
  42662. 1 Enable clock throttling
  42663. 0 Enable "PCI Clock can be stopped"
  42664. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42665. (Table 01206)
  42666. Values for Intel 82371MX Shadow Register
  42667. Value AT Port Description
  42668. 00h 00h Channel 0 Base Address Register (low byte)
  42669. 01h 00h Channel 0 Base Address Register (high byte)
  42670. 02h 01h Channel 0 Base Word Count Register (low byte)
  42671. 03h 01h Channel 0 Base Word Count Register (high byte)
  42672. 04h 02h Channel 1 Base Address Register (low byte)
  42673. 05h 02h Channel 1 Base Address Register (high byte)
  42674. 06h 03h Channel 1 Base Word Count Register (low byte)
  42675. 07h 03h Channel 1 Base Word Count Register (high byte)
  42676. 08h 04h Channel 2 Base Address Register (low byte)
  42677. 09h 04h Channel 2 Base Address Register (high byte)
  42678. 0Ah 05h Channel 2 Base Word Count Register (low byte)
  42679. 0Bh 05h Channel 2 Base Word Count Register (high byte)
  42680. 0Ch 06h Channel 3 Base Address Register (low byte)
  42681. 0Dh 06h Channel 3 Base Address Register (high byte)
  42682. 0Eh 07h Channel 3 Base Word Count Register (low byte)
  42683. 0Fh 07h Channel 3 Base Word Count Register (high byte)
  42684. 10h 08h DMA1 Command Register
  42685. 11h 0Bh Channel 0 Mode Register
  42686. 12h 0Bh Channel 1 Mode Register
  42687. 13h 0Bh Channel 2 Mode Register
  42688. 14h 0Bh Channel 3 Mode Register
  42689. 15h 0Fh DMA1 Mask Register
  42690. 16h C4h Channel 5 Base Address Register (low byte)
  42691. 17h C4h Channel 5 Base Address Register (high byte)
  42692. 18h C6h Channel 5 Base Word Count Register (low byte)
  42693. 19h C6h Channel 5 Base Word Count Register (high byte)
  42694. 1Ah C8h Channel 6 Base Address Register (low byte)
  42695. 1Bh C8h Channel 6 Base Address Register (high byte)
  42696. 1Ch CAh Channel 6 Base Word Count Register (low byte)
  42697. 1Dh CAh Channel 6 Base Word Count Register (high byte)
  42698. 1Eh CCh Channel 7 Base Address Register (low byte)
  42699. 1Fh CCh Channel 7 Base Address Register (high byte)
  42700. 20h CDh Channel 7 Base Word Count Register (low byte)
  42701. 21h CDh Channel 7 Base Word Count Register (high byte)
  42702. 22h D0h DMA2 Command Register
  42703. 23h D6h Channel 5 Mode Register
  42704. 24h D6h Channel 6 Mode Register
  42705. 25h D6h Channel 7 Mode Register
  42706. 26h DEh DMA2 Mask Register
  42707. 27h 20h PIC1 ICW1
  42708. 28h 21h PIC1 ICW2
  42709. 29h 21h PIC1 ICW3
  42710. 2Ah 21h PIC1 ICW4
  42711. 2Bh 20h PIC1 OCW2
  42712. 2Ch A0h PIC2 ICW1
  42713. 2Dh A1h PIC2 ICW2
  42714. 2Eh A1h PIC2 ICW3
  42715. 2Fh A1h PIC2 ICW4
  42716. 30h A0h PIC2 OCW2
  42717. 31h 70h NMI mask / RTC address
  42718. 32h 03FAh COM1 FIFO Enable Register (only bits 0,3,6 & 7 valid)
  42719. 33h 02FAh COM2 FIFO Enable Register (only bits 0,3,6 & 7 valid)
  42720. 34h 03EAh COM3 FIFO Enable Register (only bits 0,3,6 & 7 valid)
  42721. 35h 02EAh COM4 FIFO Enable Register (only bits 0,3,6 & 7 valid)
  42722. 36h 40h TIMER 0 Count Register (low byte)
  42723. 37h 40h TIMER 0 Count Register (high byte)
  42724. 38h 20h Master PIC OCW3 Register (bits 0,2 & 5 only valid)
  42725. 39h A0h Slave PIC OCW3 Register (bits 0,2 & 5 only valid)
  42726. Desc: This register is used to read the current programmed value of certain
  42727. AT compatable I/O ports which are traditionally write-only.
  42728. Note: To read a given register, write the value from the table to the shadow
  42729. register, then immediately re-read the shadow register. The returned
  42730. value is the current value of the I/O port.
  42731. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42732. Bitfields for Intel 82371MX Burst Clock/Clock Throttle Break Enable 0 register:
  42733. Bit(s) Description (Table 01207)
  42734. 7 Enable IRQ7
  42735. 6 Enable IRQ6
  42736. 5 Enable IRQ7
  42737. 4 Enable IRQ4
  42738. 3 Enable IRQ3
  42739. 2 reserved
  42740. 1 Enable IRQ1
  42741. 0 Enable IRQ0
  42742. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42743. Bitfields for Intel 82371MX Event Enable 1 register:
  42744. Bit(s) Description (Table 01208)
  42745. 7 Enable IRQ15
  42746. 6 Enable IRQ14
  42747. 5 reserved
  42748. 4 Enable IRQ12
  42749. 3 Enable IRQ11
  42750. 2 Enable IRQ10
  42751. 1 Enable IRQ9
  42752. 0 Enable IRQ8
  42753. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42754. Bitfields for Intel 82371MX Event Enable 2 register:
  42755. Bit(s) Description (Table 01209)
  42756. 7 (Clock Throttle Break Event,Burst Clock Event)
  42757. reserved
  42758. (System Event,Stop Break Event,Clock Throttle Break Event)
  42759. Enable BATLOW# & SRBTN#
  42760. 6 Enable EXTSMI#
  42761. 5 Enable SMI#
  42762. 4 (System Event,Stop Break Event,Clock Throttle Break Event)
  42763. Enable NMI
  42764. (Burst Clock Event)
  42765. reserved
  42766. 3 (System Event,Stop Break Event,Clock Throttle Break Event)
  42767. Enable INTR
  42768. (Burst Clock Event)
  42769. reserved
  42770. 2 reserved
  42771. 1 Enable COMRI#
  42772. 0 Enable events of selected type
  42773. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42774. Bitfields for Intel 82371MX Event Enable 3 register:
  42775. Bit(s) Description (Table 01210)
  42776. 7-2 reserved
  42777. 1 Enable EXTEVNT#
  42778. 0 Enable PHLDA#
  42779. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42780. Bitfields for Intel 82371MX Event Enable 4 register:
  42781. Bit(s) Description (Table 01211)
  42782. 7 Enable PMAC1
  42783. 6 Enable PMAC0
  42784. 5 Enable PAC5
  42785. 4 Enable PAC4
  42786. 3 Enable PAC3
  42787. 2 Enable PAC2
  42788. 1 Enable PAC1
  42789. 0 Enable PCSC
  42790. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42791. Bitfields for Intel 82371MX Event Enable 5 register:
  42792. Bit(s) Description (Table 01212)
  42793. 7 Enable COM4
  42794. 6 Enable COM3
  42795. 5 Enable COM3
  42796. 4 Enable COM1
  42797. 3 Enable Secondary FDC
  42798. 2 Enable Primary FDC
  42799. 1 Enable Secondary IDE
  42800. 0 Enable Promary IDE
  42801. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42802. Bitfields for Intel 82371MX Event Enable 6 register:
  42803. Bit(s) Description (Table 01213)
  42804. 7 Enable Audio-E
  42805. 6 Enable Audio-D
  42806. 5 Enable Audio-C
  42807. 4 Enable Audio-B
  42808. 3 Enable Audio-A
  42809. 2 Enable Parallel 3
  42810. 1 Enable Parallel 2
  42811. 0 Enable Parallel 1
  42812. SeeAlso: #01168,PORT xxxxh"Intel 82371"
  42813. Format of PCI Configuration for Intel 82371FB/82371SB Function 1 (IDE):
  42814. Offset Size Description (Table 01214)
  42815. 00h 64 BYTEs header (see #00878)
  42816. (vender ID 8086h, device ID 1230h/7010h)
  42817. 20h DWORD Bus Master Interface Base Address
  42818. (see PORT xxxxh"Intel 82371SB")
  42819. 40h WORD IDE timing modes, primary channel (see #01223)
  42820. 42h WORD IDE timing modes, secondary channel (see #01223)
  42821. 44h BYTE (82371SB) slave IDE timing register (see #01224)
  42822. 45h 187 BYTEs reserved
  42823. SeeAlso: #01167,#01215,PORT xxxxh"Intel 82371SB"
  42824. Format of PCI Configuration data for Intel 82371SB Function 2 (USB):
  42825. Offset Size Description (Table 01215)
  42826. 00h 64 BYTEs header (see #00878)
  42827. (vendor ID 8086h, device ID 7020h)
  42828. 20h DWORD I/O space base address
  42829. (see PORT xxxxh"Intel 82371SB")
  42830. 40h 32 BYTEs reserved
  42831. 60h BYTE Serial Bus Specification release number
  42832. 00h pre-release 1.0
  42833. 10h Release 1.0
  42834. 61h 9 BYTEs reserved
  42835. 6Ah WORD miscellaneous status (see #01225)
  42836. 6Ch 84 BYTEs reserved
  42837. C0h WORD legacy support (see #01226)
  42838. C2h 62 BYTEs reserved
  42839. SeeAlso: #01167,#01214,PORT xxxxh"Intel 82371SB"
  42840. Bitfields for Intel 82371FB/82371SB top of memory register:
  42841. Bit(s) Description (Table 01216)
  42842. 7-4 top of ISA memory (in megabytes, less 1; i.e. 0001 = 2M)
  42843. 3 ISA/DMA lower BIOS forwarding enable
  42844. 2 (82371SB) enable A000/B000 segment forwarding to PCI bus
  42845. 1 enable forwarding ISA/DMA 512K-640K region to PCI bus
  42846. 0 reserved
  42847. SeeAlso: #01167,#01217
  42848. Bitfields for Intel 82371FB/82371SB miscellaneous status register:
  42849. Bit(s) Description (Table 01217)
  42850. 15 (82371SB) enable SERR# on delayed transaction
  42851. write 1 to clear this bit
  42852. 14-8 reserved
  42853. 7 (82371SB) NB Retry Enable
  42854. 6 (82371SB) EXTSMI# Mode Enable
  42855. allow special SERR# protocol between PCI bridge and 82371
  42856. 5 reserved
  42857. 4 (82371SB) enable USB
  42858. disable USB's master enable and I/O decode enable prior to
  42859. clearing this bit!
  42860. 3 reserved
  42861. 2 (82371FB) PCI Header Type Bit enable
  42862. =1 report multifunction device in PCI configuration header
  42863. 1 (82371FB) internal ISA DMA/external DMA Mode status (read-only)
  42864. =0 normal DMA operation
  42865. 0 (82371FB) ISA Clock Divisor status (read-only)
  42866. (82371SB) ISA Clock Divisor (read-write)
  42867. =1 SYSCLK clock divisor is 3
  42868. =0 SYSCLK clock divisor is 4
  42869. SeeAlso: #01167,#01216
  42870. Bitfields for Intel 82371FB/82371SB/82371MX motherboard IRQ Route Control:
  42871. Bit(s) Description (Table 01218)
  42872. 7 disable IRQ routing
  42873. 6 enable MIRQx/IRQx sharing
  42874. 5 (82371SB only) enable IRQ0 output
  42875. 4 reserved (0)
  42876. 3-0 ISA IRQ number to which to route the PCI IRQ
  42877. Notes: IRQs 0-2, 8, and 13 are reserved
  42878. interrupt sharing should only be enabled when the device connected to
  42879. the MIRQ line and the device connected to the IRQ line both produce
  42880. active high, level triggered interrupts.
  42881. SeeAlso: #01167,#01168,#01216,#01219
  42882. Bitfields for Intel 82371FB/82371SB/82371MX motherboard DMA control:
  42883. Bit(s) Description (Table 01219)
  42884. 7 type F DMA buffer enable
  42885. 6-4 reserved
  42886. 3 (82371FB only) disable motherboadr DMA channel
  42887. (SB/MX) reserved (0)
  42888. 2-0 DMA channel number (100 = disabled [default])
  42889. (82371FB) Type F and Motherboard DMA
  42890. (82371SB/MX) Type F DMA
  42891. SeeAlso: #01167,#01168,#01218
  42892. Bitfields for Intel 82371FB/83271SB programmable chip select control register:
  42893. Bit(s) Description (Table 01220)
  42894. 15-2 I/O address which will assert PCS# signal
  42895. 1-0 PCS address mask
  42896. 00 four bytes
  42897. 01 eight contiguous bytes
  42898. 10 disabled
  42899. 11 sixteen contiguous bytes
  42900. SeeAlso: #01167,#01219,#01221
  42901. Bitfields for Intel 82371SB Deterministic Latency Control register:
  42902. Bit(s) Description (Table 01221)
  42903. 7-4 reserved
  42904. 3 enable SERR# on delayed transaction timeout
  42905. 2 enable USB passive release
  42906. 1 enable passive release
  42907. 0 enable delayed transactions
  42908. SeeAlso: #01167,#01220
  42909. Bitfields for Intel 82371FB/82371SB SMI Control Register:
  42910. Bit(s) Description (Table 01222)
  42911. 7-5 reserved
  42912. 4-3 Fast-Off Timer freeze/granularity selection
  42913. 00 one minute granularity (assuming 33 MHz PCICLK)
  42914. 01 disabled (frozen)
  42915. 10 one PCICLK
  42916. 11 one millisecond
  42917. 2 STPCLK# scaling enable
  42918. =1 enable Clock Scale bytes in PCI configuration space
  42919. 1 STPCLK# signal enable
  42920. =1 assert STPCLK# on read from PORT 00B2h
  42921. 0 SMI# Gate
  42922. =1 enable SMI# on system management interrupt
  42923. Notes: bit 1 is cleared either with an explicit write of 0 here, or by any
  42924. write to PORT 00B2h
  42925. bit 0 does not affect the recording of SMI events, so a pending SMI
  42926. will cause an immediate SMI# when the bit is set
  42927. SeeAlso: #01167,#01079
  42928. Bitfields for Intel 82371FB/82371SB/82371MX IDE timing modes:
  42929. Bit(s) Description (Table 01223)
  42930. 15 IDE decode enable
  42931. 14 (82371SB) slave IDE timing register enable (see #01224)
  42932. (82371MX) primary/secondary address decode (=0 primary, =1 secondary)
  42933. 13-12 IORDY# sample point
  42934. 00 five clocks after DIOx# assertion
  42935. 01 four clocks
  42936. 10 three clocks
  42937. 11 two clocks
  42938. 11-10 reserved
  42939. 9-8 recovery time between IORDY# sample point and DIOx#
  42940. 00 four clocks
  42941. 01 three clocks
  42942. 10 two clocks
  42943. 11 one clock
  42944. 7 (FB/SB) DMA timing enable only, drive 1
  42945. (MX) reserved
  42946. 6 prefetch and posting enable, drive 1
  42947. 5 IORDY# sample point enable drive select 1
  42948. 4 fast timing bank drive select 1
  42949. 3 (FB/SB) DMA timing enable only, drive 0
  42950. (MX) reserved
  42951. 2 prefetch and posting enable, drive 0
  42952. 1 IORDY# sample point enable drive select 0
  42953. 0 fast timing bank drive select 0
  42954. SeeAlso: #01214,#01168
  42955. Bitfields for Intel 82371SB slave IDE timing register:
  42956. Bit(s) Description (Table 01224)
  42957. 7-6 secondary drive 1 IORDY# sample point
  42958. 00 five clocks after DIOx# assertion
  42959. 01 four clocks
  42960. 10 three clocks
  42961. 11 two clocks
  42962. 5-4 secondary drive 1 recovery time
  42963. 00 four clocks
  42964. 01 three clocks
  42965. 10 two clocks
  42966. 11 one clock
  42967. 3-2 primary drive 1 IORDY# sample point
  42968. 1-0 primary drive 1 recovery time
  42969. SeeAlso: #01223
  42970. Bitfields for Intel 82371SB miscellaneous status:
  42971. Bit(s) Description (Table 01225)
  42972. 15-1 reserved
  42973. 0 USB clock selection
  42974. =1 48 MHz
  42975. =0 24 MHz
  42976. SeeAlso: #01215,#01226
  42977. Bitfields for Intel 82371SB legacy support register:
  42978. Bit(s) Description (Table 01226)
  42979. 15 A20GATE pass-through sequence ended
  42980. write 1 to clear this bit
  42981. 14 reserved
  42982. 13 USB PIRQ enabled
  42983. 12 USR IRQ status (read-only)
  42984. 11 trap caused by write to PORT 0064h
  42985. write 1 to clear this bit
  42986. 10 trap caused by read from PORT 0064h
  42987. write 1 to clear this bit
  42988. 9 trap caused by write to PORT 0060h
  42989. write 1 to clear this bit
  42990. 8 trap caused by read from PORT 0060h
  42991. write 1 to clear this bit
  42992. 7 enable SMI at end of A20GATE Pass-Through
  42993. 6 A20GATE pass-through sequence in progress (read-only)
  42994. 5 enable A20GATE pass-through sequence
  42995. (write PORT 64h,D1h; write 60h,xxh; read 64h; write 64h,FFh)
  42996. 4 enable trap/SMI on USB IRQ
  42997. 3 enable trap/SMI on PORT 0064h write
  42998. 2 enable trap/SMI on PORT 0064h read
  42999. 1 enable trap/SMI on PORT 0060h write
  43000. 0 enable trap/SMI on PORT 0060h read
  43001. SeeAlso: #01215,#01225
  43002. Format of PCI Configuration Data for Intel 82557:
  43003. Offset Size Description (Table 01227)
  43004. 00h 64 BYTEs header (see #00878)
  43005. (vendor ID 8086h, device ID 1229h) (see #00873)
  43006. 10h DWORD base address of memory-mapped Control/Status Registers (4K)
  43007. (see #01228)
  43008. 14h DWORD base address of I/O-mapped Control/Status Registers (32 ports)
  43009. 18h DWORD base address of Flash memory (1M)
  43010. 40h 192 BYTEs unused
  43011. SeeAlso: #01098
  43012. Format of Intel 82557 Control/Status Registers:
  43013. Offset Size Description (Table 01228)
  43014. 00h WORD SCB status word
  43015. 02h WORD SCB command word
  43016. 04h DWORD SCB general pointer
  43017. 08h DWORD PORT
  43018. 0Ch WORD Flash control register
  43019. 0Eh WORD EEPROM control register
  43020. 10h DWORD MDI control register
  43021. 14h DWORD Early RCV Interrupt Rx byte count (RXBC) register
  43022. Note: see www.intel.com/design/network/datashts/64434604.pdf for additional
  43023. details
  43024. SeeAlso: #01228
  43025. Format of PCI Configuration Data for Intel 82441FX:
  43026. Offset Size Description (Table 01229)
  43027. 00h 64 BYTEs header (see #00878)
  43028. (vendor ID 8086h, device ID 1237h) (see #00873)
  43029. 40h 16 BYTEs reserved
  43030. 50h WORD PMC Configuration (see #01230)
  43031. 52h BYTE deturbo counter control
  43032. when deturbo mode is selected (see PORT 0CF9h), the chipset
  43033. places a hold on the memory bus for a fraction of the
  43034. time inversely proportional to the value in this register
  43035. (i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
  43036. 53h BYTE DBX buffer control (see #01231)
  43037. 54h BYTE auxiliary control (see #01232)
  43038. 55h WORD DRAM Row Type (see #01233)
  43039. 57h BYTE DRAM Control (see #01234)
  43040. 58h BYTE DRAM Timing (see #01235)
  43041. 59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #01118)
  43042. 60h 8 BYTEs DRAM Row Buondary registers 0-7
  43043. each register N indicates cumulative amount of memory in rows
  43044. 0-N (each 64 bits wide), in 8M units
  43045. 68h BYTE Fixed DRAM Hole Control
  43046. 69h 7 BYTEs reserved
  43047. 70h BYTE Multi-Transaction Timer
  43048. number of PCLKs guaranteed to the current agent before the
  43049. 82441 will grant the bus to another PCI agent on request
  43050. 71h BYTE CPU Latency Timer (see #01236)
  43051. 72h BYTE System Management RAM control (see #01123)
  43052. 73h 29 BYTEs reserved
  43053. 90h BYTE Error Command (see #01237)
  43054. 91h BYTE Error Status (see #01238)
  43055. 92h BYTE reserved
  43056. 93h BYTE Turbo Reset Control (see #01239)
  43057. 94h 108 BYTEs reserved
  43058. SeeAlso: #01098,#01108
  43059. Bitfields for Intel 82441FX PMC Configuration Register:
  43060. Bit(s) Description (Table 01230)
  43061. 15 WSC Protocol Enable
  43062. 14 Row Select/Extra Copy select (read-only)
  43063. =1 pins on PMC configured as two additional row selects (6/7)
  43064. =0 extra copy of two lowest memory address bits enabled
  43065. 13-10 reserved
  43066. 9-8 host frequence select
  43067. 00 reserved
  43068. 01 60 MHz
  43069. 10 66 MHz
  43070. 11 reserved
  43071. 7 reserved
  43072. 6 ECC/Parity TEST enable
  43073. 5-4 DRAM Data Integrity Mode
  43074. 00 no parity/ECC
  43075. 01 parity generated and checked
  43076. 10 ECC generated and checked, correction disabled
  43077. 10 ECC generated and checked, correction enabled
  43078. 3 reserved
  43079. 2 In-Order Queue size (0=one, 1=four)
  43080. 1-0 reserved
  43081. SeeAlso: #01229,#01231
  43082. Bitfields for Intel 82441FX DBX buffer control register:
  43083. Bit(s) Description (Table 01231)
  43084. 7 enable delayed transactions
  43085. 6 enable CPU-to-PCI IDE posting
  43086. 5 enable USWC Write Post during I/O Bridge access
  43087. 4 disable PCI Delayed Transaction timer
  43088. 3 enable CPU-to-PCI Write Post
  43089. 2 enable PCI-to-DRAM pipeline
  43090. 1 enable PCI Burst Write Combining
  43091. 0 enable Read-Around-Write
  43092. SeeAlso: #01229,#01230
  43093. Bitfields for Intel 82441FX auxiliary control register:
  43094. Bit(s) Description (Table 01232)
  43095. 7 enable RAS precharge
  43096. 6-2 reserved
  43097. 1 Lower Memory Address Buffer Set A
  43098. =0 8mA
  43099. =1 12mA
  43100. 0 reserved
  43101. SeeAlso: #01229
  43102. Bitfields for Intel 82441FX DRAM Row Type register:
  43103. Bit(s) Description (Table 01233)
  43104. 15-14 row 7 DRAM type
  43105. 13-12 row 6 DRAM type
  43106. 11-10 row 5 DRAM type
  43107. 9-8 row 4 DRAM type
  43108. 7-6 row 3 DRAM type
  43109. 5-4 row 2 DRAM type
  43110. 3-2 row 1 DRAM type
  43111. 1-0 row 0 DRAM type
  43112. 00 fast page-mode DRAM
  43113. 01 EDO DRAM
  43114. 10 BEDO DRAM
  43115. 11 empty row
  43116. SeeAlso: #01229,#01234
  43117. Bitfields for Intel 82441FX DRAM Control register:
  43118. Bit(s) Description (Table 01234)
  43119. 7 reserved
  43120. 6 enable DRAM Refresh Queue
  43121. 5 enable DRAM EDO Auto-Detect Mode
  43122. 4 DRAM Refresh Type
  43123. =0 CAS before RAS
  43124. =1 RAS only
  43125. 3 reserved
  43126. 2-0 DRAM refresh rate
  43127. 000 disabled
  43128. 001 normal (as set by PMCCFG register)
  43129. 01x reserved
  43130. 1xx reserved
  43131. 111 fast refresh (every 32 host clocks)
  43132. SeeAlso: #01229,#01233,#01235
  43133. Bitfields for Intel 82441FX DRAM Timing register:
  43134. Bit(s) Description (Table 01235)
  43135. 7 reserved
  43136. 6 enable WCBR Mode
  43137. 5-4 DRAM Read Burst Timing
  43138. BEDO EDO FPM
  43139. 00 x333 x444 x444
  43140. 01 x222 x333 x444
  43141. 10 x222 x222 x333
  43142. 11 res. res. res.
  43143. 3-2 DRAM Write Burst Timing
  43144. (B)EDO FPM
  43145. 00 x444 x444
  43146. 01 x333 x444
  43147. 10 x333 x333
  43148. 11 x222 x333
  43149. 1 RAS-to-CAS delay
  43150. =1 one clock
  43151. =0 zero clocks
  43152. 0 insert one MA Wait State
  43153. SeeAlso: #01229,#01234
  43154. Bitfields for Intel 82441FX CPU Latency Timer register:
  43155. Bit(s) Description (Table 01236)
  43156. 7-5 reserved
  43157. 4-0 snoop stall count value
  43158. SeeAlso: #01229
  43159. Bitfields for Intel 82441FX Error Command register:
  43160. Bit(s) Description (Table 01237)
  43161. 7-5 reserved
  43162. 4 enable SERR# on receiving Target Abort
  43163. 3 enable SERR# on PCI Parity Error (PERR#)
  43164. 2 reserved
  43165. 1 enable SERR# on receiving multiple-bit ECC/Parity error
  43166. 0 enable SERR# on receiving single-bit ECC error
  43167. SeeAlso: #01229,#01238
  43168. Bitfields for Intel 82441FX Error Status register:
  43169. Bit(s) Description (Table 01238)
  43170. 7-5 DRAM row causing first multi-bit error (read-only)
  43171. 4 multiple-bit uncorrectable error detected
  43172. write 1 to this bit to clear it
  43173. 3-1 DRAM row causing first single-bit error (read-only)
  43174. 0 single-bit correctable ECC error detected
  43175. write 1 to this bit to clear it
  43176. SeeAlso: #01229,#01237
  43177. Bitfields for Intel 82441FX,82443EX/LX Turbo Reset Control register:
  43178. Bit(s) Description (Table 01239)
  43179. 7-4 reserved
  43180. 3 enable BIST on hard reset
  43181. 2 reset CPU
  43182. 1 reset mode (0 = soft reset, 1 = hard reset)
  43183. 0 deturbo mode (82441FX)
  43184. reserved (82443EX/LX)
  43185. Note: BIST should not be enabled during a soft reset
  43186. SeeAlso: #01229,#01129,PORT 0CF9h
  43187. Format of PCI Configuration data for Intel 82454KX/GX:
  43188. Offset Size Description (Table 01240)
  43189. 00h 64 BYTEs header (see #00878)
  43190. (vendor ID 8086h, device ID 84C4h)
  43191. !!!intel\29052301.pdf pg. 40
  43192. 40h DWORD top of system memory
  43193. 44h 4 BYTEs reserved
  43194. 48h BYTE PCI decode mode
  43195. 49h BYTE bridge device number
  43196. 4Ah BYTE PCI bus number
  43197. 4Bh BYTE PCI subordinate bus number
  43198. 4Ch BYTE PB configuration
  43199. 4Dh 4 BYTEs reserved
  43200. 51h BYTE deturbo counter control
  43201. 52h BYTE reserved
  43202. 53h BYTE CPU read/write control
  43203. 54h WORD PCI read/write control
  43204. 56h BYTE reserved
  43205. 57h BYTE SMM Enable
  43206. 58h BYTE video buffer area enable
  43207. 59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #01118)
  43208. 60h 16 BYTEs reserved
  43209. 70h BYTE Error Command
  43210. 71h BYTE Error Status
  43211. 72h 6 BYTEs reserved
  43212. 78h WORD memory gap range
  43213. 7Ah WORD memory gap upper address
  43214. 7Ch DWORD PCI frame buffer
  43215. 80h 8 BYTEs reserved
  43216. 88h DWORD high memory gap start address
  43217. 8Ch DWORD high memory gap end address
  43218. 90h 8 BYTEs reserved
  43219. 98h DWORD (GX only) I/O Space Range #1
  43220. 9Ch BYTE PCI reset
  43221. 9Dh 3 BYTEs reserved
  43222. A0h DWORD (GX only) I/O Space Range #2
  43223. A4h DWORD I/O APIC range
  43224. A8h 8 BYTEs reserved
  43225. B0h WORD configuration values driven on reset
  43226. B2h 2 BYTEs reserved
  43227. B4h WORD captured system configuration values (read-only)
  43228. B6h 2 BYTEs reserved
  43229. B8h DWORD SMM range
  43230. BCh BYTE high BIOS register
  43231. BDh 3 BYTEs reserved
  43232. C0h DWORD PB Extended Error Reporting Command
  43233. C4h DWORD PB Extended Error Reporting Status
  43234. C8h DWORD PB Retry Timers
  43235. CCh 52 BYTEs reserved
  43236. SeeAlso: #00878
  43237. --------X-1AB10ASF9004-----------------------
  43238. INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (Adaptec devices)
  43239. AX = B10Ah subfn 9004h
  43240. BH = bus number
  43241. BL = device/function number (bits 7-3 device, bits 2-0 function)
  43242. DI = register number (0000h-00FFh) (see #01241)
  43243. Return: CF clear if successful
  43244. ECX = dword read
  43245. CF set on error
  43246. AH = status (00h,87h) (see #00729)
  43247. EAX, EBX, ECX, and EDX may be modified
  43248. all other flags (except IF) may be modified
  43249. Notes: this function may require up to 1024 byte of stack; it will not enable
  43250. interrupts if they were disabled before making the call
  43251. the meanings of BL and BH on entry were exchanged between the initial
  43252. drafts of the specification and final implementation
  43253. SeeAlso: AX=B10Ah,AX=B10Ah/SF=8086h
  43254. Format of PCI Configuration Data for AIC-78xx PCI SCSI controllers:
  43255. Offset Size Description (Table 01241)
  43256. 00h 64 BYTEs header (see #00878)
  43257. (vendor ID 9004h) (see #00875 for device ID)
  43258. 40h WORD device configuration register (DEVCONFIG) (see #01242)
  43259. SeeAlso: #00734,PORT xxxxh"Adaptec AIC-78xx"
  43260. Bitfields for AIC-78xx device configuration register (DEVCONFIG):
  43261. Bit(s) Description (Table 01242)
  43262. 15-11 reserved
  43263. 10 (AIC-787x+) multi-port mode (MPORTMODE)
  43264. 9 (AIC-787x+) external SRAM present? (RAMPSM)
  43265. 8 "VOLSENSE"
  43266. 7 SCB RAM select (SCBRAMSEL)
  43267. 6 "MRDCEN"
  43268. 5 (AIC-787x+) external SCB SRAM access time (EXTSCBTIME)
  43269. 4 (AIC-787x+) external SCB SRAM parity enable (EXTSCBPEN)
  43270. 3 "BERREN"
  43271. 2 "DACEN"
  43272. 1 SCSI terminator power level (STPWLEVEL)
  43273. 0 (AIC-787x+) differential active negation enable (DIFACTNEGEN)
  43274. Note: clearing bit 7 allows access to the external SCB SRAM
  43275. SeeAlso: #01241
  43276. --------X-1AB10B-----------------------------
  43277. INT 1A - PCI BIOS v2.0c+ - WRITE CONFIGURATION BYTE
  43278. AX = B10Bh
  43279. BH = bus number
  43280. BL = device/function number (bits 7-3 device, bits 2-0 function)
  43281. DI = register number (0000h-00FFh)
  43282. CL = byte to write
  43283. Return: CF clear if successful
  43284. CF set on error
  43285. AH = status (00h,87h) (see #00729)
  43286. EAX, EBX, ECX, and EDX may be modified
  43287. all other flags (except IF) may be modified
  43288. Notes: this function may require up to 1024 byte of stack; it will not enable
  43289. interrupts if they were disabled before making the call
  43290. the meanings of BL and BH on entry were exchanged between the initial
  43291. drafts of the specification and final implementation
  43292. SeeAlso: AX=B108h,AX=B10Ch,AX=B10Dh,AX=B18Bh,INT 2F/AX=1684h/BX=304Ch
  43293. --------X-1AB10C-----------------------------
  43294. INT 1A - PCI BIOS v2.0c+ - WRITE CONFIGURATION WORD
  43295. AX = B10Ch
  43296. BH = bus number
  43297. BL = device/function number (bits 7-3 device, bits 2-0 function)
  43298. DI = register number (multiple of 2 less than 0100h)
  43299. CX = word to write
  43300. Return: CF clear if successful
  43301. CF set on error
  43302. AH = status (00h,87h) (see #00729)
  43303. EAX, EBX, ECX, and EDX may be modified
  43304. all other flags (except IF) may be modified
  43305. Notes: this function may require up to 1024 byte of stack; it will not enable
  43306. interrupts if they were disabled before making the call
  43307. the meanings of BL and BH on entry were exchanged between the initial
  43308. drafts of the specification and final implementation
  43309. SeeAlso: AX=B109h,AX=B10Bh,AX=B10Dh,AX=B18Ch,INT 2F/AX=1684h/BX=304Ch
  43310. --------X-1AB10D-----------------------------
  43311. INT 1A - PCI BIOS v2.0c+ - WRITE CONFIGURATION DWORD
  43312. AX = B10Dh
  43313. BH = bus number
  43314. BL = device/function number (bits 7-3 device, bits 2-0 function)
  43315. DI = register number (multiple of 4 less than 0100h)
  43316. ECX = dword to write
  43317. Return: CF clear if successful
  43318. CF set on error
  43319. AH = status (00h,87h) (see #00729)
  43320. EAX, EBX, ECX, and EDX may be modified
  43321. all other flags (except IF) may be modified
  43322. Notes: this function may require up to 1024 byte of stack; it will not enable
  43323. interrupts if they were disabled before making the call
  43324. the meanings of BL and BH on entry were exchanged between the initial
  43325. drafts of the specification and final implementation
  43326. SeeAlso: AX=B10Ah,AX=B10Bh,AX=B10Ch,AX=B18Dh,INT 2F/AX=1684h/BX=304Ch
  43327. --------X-1AB10EBX0000-----------------------
  43328. INT 1A - PCI BIOS v2.1+ - GET IRQ ROUTING INFORMATION
  43329. AX = B10Eh
  43330. BX = 0000h
  43331. DS = segment/selector for PCI BIOS data
  43332. (real mode: F000h; 16-bit PM: physical 000F0000h; 32-bit PM: as
  43333. specified by BIOS32 services directory)
  43334. ES:(E)DI -> IRQ routing table header (see #01259 at AX=B406h)
  43335. Return: CF clear if successful
  43336. AH = 00h
  43337. BX = bit map of IRQ channels permanently dedicated to PCI
  43338. WORD ES:[DI] = size of returned data
  43339. CF set on error
  43340. AH = error code (59h) (see #01243)
  43341. WORD ES:[DI] = required size of buffer
  43342. SeeAlso: AX=B10Fh,AX=B406h,INT 2F/AX=1684h/BX=304Ch
  43343. --------X-1AB10F-----------------------------
  43344. INT 1A - PCI BIOS v2.1+ - SET PCI IRQ
  43345. AX = B10Fh
  43346. BH = bus number
  43347. BL = device/function number (bits 7-3 device, bits 2-0 function)
  43348. CH = number of IRQ to connect
  43349. CL = number of interrupt pin (0Ah=INTA# to 0Dh=INTD#) to reprogram
  43350. DS = segment/selector for PCI BIOS data
  43351. (real mode: F000h; 16-bit PM: physical 000F0000h; 32-bit PM: as
  43352. specified by BIOS32 services directory)
  43353. Return: CF clear if successful
  43354. AH = 00h
  43355. CF set on error
  43356. AH = error code (59h) (see #01243)
  43357. Note: assumes that the calling application has determined the IRQ routing
  43358. topology (see AX=B10Eh), has ensured that the selected IRQ will not
  43359. cause a conflict, and will update the interrupt line configuration
  43360. register on all devices which currently use the IRQ line
  43361. SeeAlso: AX=B10Eh
  43362. --------X-1AB181-----------------------------
  43363. INT 1A - PCI BIOS v2.0c+ - INSTALLATION CHECK (32-bit)
  43364. AX = B181h
  43365. Return: as for AX=B101h
  43366. SeeAlso: AX=B101h
  43367. --------X-1AB182-----------------------------
  43368. INT 1A - PCI BIOS v2.0c+ - FIND PCI DEVICE (32-bit)
  43369. AX = B182h
  43370. CX = device ID (see #00735,#00742,#00743,#00873,#00875)
  43371. DX = vendor ID (see #00732 at AX=B102h)
  43372. SI = device index (0-n)
  43373. Return: as for AX=B102h
  43374. SeeAlso: AX=B102h
  43375. --------X-1AB183-----------------------------
  43376. INT 1A - PCI BIOS v2.0c+ - FIND PCI CLASS CODE (32-bit)
  43377. AX = B183h
  43378. ECX = class code (bits 23-0)
  43379. SI = device index (0-n)
  43380. Return: as for AX=B103h
  43381. SeeAlso: AX=B103h
  43382. --------X-1AB186-----------------------------
  43383. INT 1A - PCI BIOS v2.0c+ - PCI BUS-SPECIFIC OPERATIONS (32-bit)
  43384. AX = B186h
  43385. BH = bus number
  43386. EDX = Special Cycle data
  43387. Return: as for AX=B106h
  43388. Note: the meanings of BL and BH on return were exchanged between the initial
  43389. drafts of the specification and final implementation
  43390. SeeAlso: AX=B106h
  43391. --------X-1AB188-----------------------------
  43392. INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION BYTE (32-bit)
  43393. AX = B188h
  43394. BH = bus number
  43395. BL = device/function number (bits 7-3 device, bits 2-0 function)
  43396. DI = register number (0000h-00FFh)
  43397. Return: as for AX=B108h
  43398. Note: the meanings of BL and BH on return were exchanged between the initial
  43399. drafts of the specification and final implementation
  43400. SeeAlso: AX=B108h,AX=B189h,AX=B18Ah
  43401. --------X-1AB189-----------------------------
  43402. INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION WORD (32-bit)
  43403. AX = B189h
  43404. BH = bus number
  43405. BL = device/function number (bits 7-3 device, bits 2-0 function)
  43406. DI = register number (0000h-00FFh)
  43407. Return: as for AX=B109h
  43408. Note: the meanings of BL and BH on return were exchanged between the initial
  43409. drafts of the specification and final implementation
  43410. SeeAlso: AX=B109h,AX=B188h,AX=B18Ah
  43411. --------X-1AB18A-----------------------------
  43412. INT 1A - PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (32-bit)
  43413. AX = B18Ah
  43414. BH = bus number
  43415. BL = device/function number (bits 7-3 device, bits 2-0 function)
  43416. DI = register number (0000h-00FFh)
  43417. Return: as for AX=B10Ah
  43418. Note: the meanings of BL and BH on return were exchanged between the initial
  43419. drafts of the specification and final implementation
  43420. SeeAlso: AX=B10Ah,AX=B188h,AX=B189h
  43421. --------X-1AB18B-----------------------------
  43422. INT 1A - PCI BIOS v2.0c+ - WRITE CONFIGURATION BYTE (32-bit)
  43423. AX = B18Bh
  43424. BH = bus number
  43425. BL = device/function number (bits 7-3 device, bits 2-0 function)
  43426. DI = register number (0000h-00FFh)
  43427. CL = byte to write
  43428. Return: as for AX=B10Bh
  43429. Note: the meanings of BL and BH on return were exchanged between the initial
  43430. drafts of the specification and final implementation
  43431. SeeAlso: AX=B10Bh,AX=B18Ch,AX=B18Dh
  43432. --------X-1AB18C-----------------------------
  43433. INT 1A - PCI BIOS v2.0c+ - WRITE CONFIGURATION WORD (32-bit)
  43434. AX = B18Ch
  43435. BH = bus number
  43436. BL = device/function number (bits 7-3 device, bits 2-0 function)
  43437. DI = register number (multiple of 2 less than 0100h)
  43438. CX = word to write
  43439. Return: as for AX=B10Ch
  43440. Note: the meanings of BL and BH on return were exchanged between the initial
  43441. drafts of the specification and final implementation
  43442. SeeAlso: AX=B10Ch,AX=B18Bh,AX=B18Dh
  43443. --------X-1AB18D-----------------------------
  43444. INT 1A - PCI BIOS v2.0c+ - WRITE CONFIGURATION DWORD (32-bit)
  43445. AX = B18Dh
  43446. BH = bus number
  43447. BL = device/function number (bits 7-3 device, bits 2-0 function)
  43448. DI = register number (multiple of 4 less than 0100h)
  43449. ECX = dword to write
  43450. Return: as for AX=B10Dh
  43451. Note: the meanings of BL and BH on return were exchanged between the initial
  43452. drafts of the specification and final implementation
  43453. SeeAlso: AX=B10Dh,AX=B18Bh,AX=B18Ch
  43454. --------X-1AB18EBX0000-----------------------
  43455. INT 1A - PCI BIOS v2.1+ - GET IRQ ROUTING INFORMATION (32-bit)
  43456. AX = B18Eh
  43457. BX = 0000h
  43458. DS = segment/selector for PCI BIOS data
  43459. (real mode: F000h; 16-bit PM: physical 000F0000h; 32-bit PM: as
  43460. specified by BIOS32 services directory)
  43461. ES:(E)DI -> IRQ routing table header (see #01259 at AX=B406h)
  43462. Return: CF clear if successful
  43463. AH = 00h
  43464. BX = bit map of IRQ channels permanently dedicated to PCI
  43465. WORD ES:[DI] = size of returned data
  43466. CF set on error
  43467. AH = error code (59h) (see #01243)
  43468. WORD ES:[DI] = required size of buffer
  43469. SeeAlso: AX=B10Fh,AX=B406h,INT 2F/AX=1684h/BX=304Ch
  43470. --------X-1AB18F-----------------------------
  43471. INT 1A - PCI BIOS v2.1+ - SET PCI IRQ (32-bit)
  43472. AX = B18Fh
  43473. BH = bus number
  43474. BL = device/function number (bits 7-3 device, bits 2-0 function)
  43475. CH = number of IRQ to connect
  43476. CL = number of interrupt pin (0Ah=INTA# to 0Dh=INTD#) to reprogram
  43477. DS = segment/selector for PCI BIOS data
  43478. (real mode: F000h; 16-bit PM: physical 000F0000h; 32-bit PM: as
  43479. specified by BIOS32 services directory)
  43480. Return: CF clear if successful
  43481. AH = 00h
  43482. CF set on error
  43483. AH = error code (59h) (see #01243)
  43484. Note: assumes that the calling application has determined the IRQ routing
  43485. topology (see AX=B10Eh), has ensured that the selected IRQ will not
  43486. cause a conflict, and will update the interrupt line configuration
  43487. register on all devices which currently use the IRQ line
  43488. SeeAlso: AX=B10Eh
  43489. --------X-1AB2-------------------------------
  43490. INT 1A - Reserved For PCI
  43491. AH = B2h
  43492. --------X-1AB3-------------------------------
  43493. INT 1A - Reserved For PCI
  43494. AH = B3h
  43495. --------X-1AB400-----------------------------
  43496. INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - INSTALLATION CHECK
  43497. AX = B400h
  43498. Return: CF clear if installed
  43499. AX = 0000h if installed
  43500. BH = ACFG major version (02h)
  43501. BL = ACFG minor version (08h)
  43502. CX = ??? (0002h)
  43503. EDX = 47464341h ('GFCA', which is byte-swapped 'ACFG')
  43504. SI = ??? (001Fh)
  43505. SeeAlso: AX=B401h,AX=B402h,AX=B403h,AX=B404h,AX=B405h,AX=B406h,AX=B407h
  43506. SeeAlso: @xxxxh:xxxxh"Plug-and-Play"
  43507. (Table 01243)
  43508. Values for Intel Plug-and-Play AUTO-CONFIGURATION error codes:
  43509. 0000h successful
  43510. 0001h specified action could not be completed
  43511. 0051h ???
  43512. 0055h unable to read/write configuration table from/to nonvolatile storage
  43513. 0056h not a valid configuration table or wrong table version
  43514. 0059h buffer too small
  43515. 0081h unsupported function
  43516. FFFFh ???
  43517. SeeAlso: #F0081
  43518. --------X-1AB401-----------------------------
  43519. INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET DEFAULT CONFIG TABLE
  43520. AX = B401h
  43521. Return: CF clear if successful
  43522. AX = 0000h
  43523. BX = maximum size of configuration table in bytes
  43524. CX = required configuration buffer size
  43525. (includes scratch space used by ACFG code)
  43526. EDI = linear/physical address of ESCD table (see #01244)
  43527. CF set on error
  43528. AX = error code (see #01243)
  43529. SeeAlso: AX=B400h,AX=B402h,@xxxxh:xxxxh"Plug-and-Play"
  43530. Format of Intel Plug-and-Play Extended System Configuration Data table:
  43531. Offset Size Description (Table 01244)
  43532. 00h WORD total length of this table
  43533. 02h 4 BYTEs signature "ACFG"
  43534. 06h BYTE minor version number
  43535. 07h BYTE major version number (currently 02h)
  43536. 08h BYTE number of boards listed in the configuration data
  43537. 09h 3 BYTEs reserved (00h)
  43538. 0Ch var board data
  43539. WORD checksum
  43540. Notes: this table contains information about the standard devices in the
  43541. system, such as serial ports, parallel ports, etc. For each device,
  43542. it includes at least the I/O port address (03F8h,02F8h,0378h,etc).
  43543. the sum of all words in the table, including the checksum field (with
  43544. implied zero padding if the length is odd), must equal 0000h
  43545. SeeAlso: #01245
  43546. Format of Extended System Configuration Data Board Header:
  43547. Offset Size Description (Table 01245)
  43548. 00h WORD length of this header in bytes
  43549. 02h BYTE slot number
  43550. 00h motherboard
  43551. 01h-0Fh ISA/EISA
  43552. 10h-40h PCI
  43553. 03h BYTE reserved (00h)
  43554. SeeAlso: #01244,#01246
  43555. Format of Extended System Configuration Data Freeform Board Header:
  43556. Offset Size Description (Table 01246)
  43557. 00h 4 BYTEs signature "ACFG"
  43558. 04h BYTE minor version number
  43559. 05h BYTE major version number (currently 02h)
  43560. 06h BYTE board type
  43561. 01h ISA
  43562. 02h EISA
  43563. 04h PCI
  43564. 08h PCMCIA
  43565. 10h PnPISA
  43566. 20h MCA
  43567. 07h BYTE reserved (00h)
  43568. 08h WORD disabled functions (bit N set = function N disabled)
  43569. 0Ah WORD configuration error functions
  43570. 0Ch WORD reconfigurable functions (bit N set = function N reconfig'able)
  43571. 0Eh 2 BYTEs reserved (00h)
  43572. SeeAlso: #01249,#01250
  43573. Format of Extended System Configuration Data Freeform PCI Device Data:
  43574. Offset Size Description (Table 01247)
  43575. 00h BYTE PCI bus number
  43576. 01h BYTE PCI device and function number
  43577. 02h WORD PCI device identifier
  43578. 04h WORD PCI vendor ID (see #00732 at INT 1A/AX=B102h)
  43579. 06h 2 BYTEs reserved (00h)
  43580. SeeAlso: #01247,#01250
  43581. Format of Extended System Configuration Data Freeform PnP ISA Board ID:
  43582. Offset Size Description (Table 01248)
  43583. 00h DWORD vendor ID (EISA device identifier)
  43584. 04h DWORD serial number
  43585. SeeAlso: #01248,#01249
  43586. Format of Extended System Configuration Data PnP ISA ECD Extension Function:
  43587. Offset Size Description (Table 01249)
  43588. 00h WORD 001Eh (length of this structure)
  43589. 02h BYTE 01h (selection size)
  43590. 03h BYTE 00h (selection data)
  43591. 04h BYTE C0h (function information byte) (see #01252)
  43592. 05h BYTE 18h (size of following free-format data)
  43593. 06h 16 BYTEs freeform board header (see #01246)
  43594. 16h 8 BYTEs Plug-and-Play board ID (see #01248)
  43595. Note: ECD = Extended Configuration Data; this structure must be the last
  43596. "function" for a particular ISA Plug-and-Play board
  43597. SeeAlso: #01250
  43598. Format of Extended System Configuration Data PCI ECD Extension Function:
  43599. Offset Size Description (Table 01250)
  43600. 00h WORD length of this structure (at least 001Eh, up to 0056h)
  43601. 02h BYTE 01h (selection size)
  43602. 03h BYTE 00h (selection data)
  43603. 04h BYTE C0h (function information byte) (see #01252)
  43604. 05h BYTE size of following free-format data (at least 18h, max 50h)
  43605. 06h 16 BYTEs freeform board header (see #01246)
  43606. 16h 8N BYTEs PCI board ID (see #01247) for one to eight boards
  43607. Notes: ECD = Extended Configuration Data; this structure must be the last
  43608. "function" for a particular PCI board
  43609. AMI BIOS v1.00.05.AX1 sets the length field to 001Ch for entries with
  43610. a single board ID, apparently treating the field as the length of
  43611. the remainder of the structure instead of the full structure's length
  43612. SeeAlso: #01249
  43613. Bitfields for EISA ID and Slot Information:
  43614. Bit(s) Description (Table 01251)
  43615. 3-0 selector among duplicate configuration file names (0000 if no dups)
  43616. 5-4 slot type
  43617. 00 expansion slot
  43618. 01 embedded
  43619. 10 virtual slot
  43620. 11 reserved
  43621. 6 ID is readable
  43622. 7 duplicate IDs present
  43623. 8 board can be disabled
  43624. 9 IOCHKERR supported
  43625. 10 board or entries locked
  43626. 13-11 reserved
  43627. 14 board does not have or need configuration file
  43628. 15 configuration not complete
  43629. SeeAlso: #01252
  43630. Bitfields for EISA Function Information:
  43631. Bit(s) Description (Table 01252)
  43632. 0 subtype data
  43633. 1 memory information (see #01253)
  43634. 2 IRQ information (see #01255)
  43635. 3 DMA information (see #01256)
  43636. 4 port range information (see #01257)
  43637. 5 port initialization data (see #01258)
  43638. 6 free form data
  43639. 7 function disabled
  43640. SeeAlso: #01249,#01250,#01251
  43641. Format of EISA Memory Information:
  43642. Offset Size Description (Table 01253)
  43643. 00h WORD memory information flags (see #01254)
  43644. 02h 3 BYTEs high 24 bits of memory start address (LSB first)
  43645. 05h WORD memory size in K (0000h = 65536K)
  43646. SeeAlso: #01252
  43647. Bitfields for EISA Memory Information Flags:
  43648. Bit(s) Description (Table 01254)
  43649. 0 writable (RAM rather than ROM)
  43650. 1 cached
  43651. 2 write-back cache rather than write-through
  43652. 4-3 memory type
  43653. 00 system
  43654. 01 expantion
  43655. 10 virtual
  43656. 11 other
  43657. 5 shared
  43658. 6 reserved (0)
  43659. 7 more entries follow
  43660. 9-8 memory width
  43661. 00 byte
  43662. 01 word
  43663. 10 dword
  43664. 11 reserved
  43665. 11-10 decoded address lines
  43666. 00 = 20
  43667. 01 = 24
  43668. 10 = 32
  43669. 11 reserved
  43670. 15-12 reserved (0)
  43671. SeeAlso: #01253
  43672. Bitfields for EISA IRQ Information:
  43673. Bit(s) Description (Table 01255)
  43674. 3-0 IRQ number
  43675. 4 reserved (0)
  43676. 5 IRQ triggering (0 = edge, 1 = level)
  43677. 6 IRQ is shareable
  43678. 7 more entries follow
  43679. 15-8 reserved (0)
  43680. SeeAlso: #01252
  43681. Bitfields for EISA DMA Information:
  43682. Bit(s) Description (Table 01256)
  43683. 2-0 DMA channel number
  43684. 5-3 reserved (0)
  43685. 6 shareable
  43686. 7 more entries follow
  43687. 9-8 reserved
  43688. 11-10 DMA transfer size
  43689. 00 byte
  43690. 01 word
  43691. 10 dword
  43692. 11 word, but count in bytes
  43693. 13-12 DMA timing
  43694. 00 ISA-compatible
  43695. 01 EISA type "A"
  43696. 10 EISA type "B"
  43697. 11 EISA type "C"/"F" (burst)
  43698. 15-14 reserved (0)
  43699. SeeAlso: #01252
  43700. Format of EISA Port Range Information:
  43701. Offset Size Description (Table 01257)
  43702. 00h BYTE port description
  43703. bits 4-0: number of sequential ports
  43704. bit 5 reserved (0)
  43705. bit 6: shareable
  43706. bit 7: more entries follow
  43707. 01h WORD I/O port address
  43708. SeeAlso: #01252,#01258
  43709. Format of EISA Port Initialization Data:
  43710. Offset Size Description (Table 01258)
  43711. 00h BYTE flags
  43712. bits 1-0: port size
  43713. 00 byte
  43714. 01 word
  43715. 10 dword
  43716. 11 reserved
  43717. bit 2: masked write
  43718. bits 6-3 reserved (0)
  43719. bit 7: more entries follow
  43720. 01h ???
  43721. SeeAlso: #01252,#01257
  43722. --------X-1AB402-----------------------------
  43723. INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - COPY AND VERIFY CONFIG TABLE
  43724. AX = B402h
  43725. DS:SI -> configuration table (see #01244)
  43726. ES:DI -> buffer for copy of configuration table
  43727. Return: CF clear if successful
  43728. AX = 0000h
  43729. CF set on error
  43730. AX = error code (0055h,0056h) (see #01243)
  43731. Note: the buffer pointed at by ES:DI must be at least as large as the
  43732. maximum configuration table size reported by AX=B401h
  43733. SeeAlso: AX=B400h,AX=B401h,AX=B403h
  43734. --------X-1AB403-----------------------------
  43735. INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - STORE ESCD TABLE IN NVRAM
  43736. AX = B403h
  43737. DS:SI -> configuration table (see #01244)
  43738. Return: CF clear if successful
  43739. AX = 0000h
  43740. CF set on error
  43741. AX = error code (0055h) (see #01243)
  43742. Note: sets the configuration table's checksum field, then copies the table
  43743. into nonvolatile storage (i.e. FlashROM)
  43744. SeeAlso: AX=B400h,AX=B402h
  43745. --------X-1AB404-----------------------------
  43746. INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET AVAILABLE IRQs???
  43747. AX = B404h
  43748. BX = bitmap of IRQs being used???
  43749. Return: CF clear if successful
  43750. AX = 0000h
  43751. BX = available for ISA??? (not(BXin) & A127h)
  43752. CX = available for on-board I/O??? (not(BXin) & 40D8h)
  43753. DX = available for PCI??? (either not(BXin) & 0E00h or 0000h)
  43754. CF set on error
  43755. AX = error code (0051h) (see #01243)
  43756. Note: the various vector types have also been called "shareable",
  43757. "unshareable", and "avoidable"
  43758. SeeAlso: AX=B400h,INT 2F/AX=1684h/BX=304Ch
  43759. --------X-1AB405-----------------------------
  43760. INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET ???
  43761. AX = B405h
  43762. Return: AX = ??? (0008h)
  43763. SeeAlso: AX=B400h
  43764. --------X-1AB406-----------------------------
  43765. INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET PCI IRQ ROUTING TABLE
  43766. AX = B406h
  43767. ES:DI -> IRQ routing table header (see #01259)
  43768. Return: CF clear if successful
  43769. AX = 0000h
  43770. WORD ES:[DI] = size of returned data
  43771. CF set on error
  43772. AX = error code (0059h) (see #01243)
  43773. WORD ES:[DI] = required size of buffer
  43774. SeeAlso: AX=B400h,AX=B404h,AX=B10Eh,INT 2F/AX=1684h/BX=304Ch
  43775. Format of Intel Plug-and-Play AUTO-CONFIGURATION PCI IRQ routing header:
  43776. Offset Size Description (Table 01259)
  43777. 00h WORD length of IRQ routing table buffer
  43778. 02h DWORD -> IRQ routing table array buffer (see #01260)
  43779. Format of Intel Plug-and-Play ACFG PCI IRQ routing table entry [array]:
  43780. Offset Size Description (Table 01260)
  43781. 00h BYTE PCI bus number
  43782. 01h BYTE PCI device number (bits 7-3)
  43783. 02h BYTE link value for INTA#
  43784. (if non-zero, wire-ORed together with any other PCI interrupts
  43785. with same link value)
  43786. 03h WORD IRQ connectivity bit map for INTA#
  43787. (standard AT IRQs to which PCI interrupt can be routed)
  43788. 05h BYTE link value for INTB#
  43789. 06h WORD IRQ connectivity bit map for INTB#
  43790. 08h BYTE link value for INTC#
  43791. 09h WORD IRQ connectivity bit map for INTC#
  43792. 0Bh BYTE link value for INTD#
  43793. 0Ch WORD IRQ connectivity bit map for INTD#
  43794. 0Eh BYTE (PCI BIOS v2.1+) device slot number (00h = motherboard)
  43795. 0Fh BYTE reserved
  43796. Note: each item in the routing table corresponds to a motherboard PCI
  43797. device or PCI slot
  43798. SeeAlso: #01259,#M0091
  43799. --------X-1AB407-----------------------------
  43800. INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - ???
  43801. AX = B407h
  43802. EDX = length of ???
  43803. EDI = physical address of ???
  43804. Return: CF clear if successful
  43805. AX = 0000h
  43806. EDX = ???
  43807. EDI = ???
  43808. CF set on error
  43809. AX = error code (FFFFh) (see #01243)
  43810. Notes: returns error if EDI < 000C0000h or EDI+EDX > 00100000h
  43811. seems to force EDI and EDX to align to 16K boundaries
  43812. SeeAlso: AX=B400h
  43813. --------X-1AB4-------------------------------
  43814. INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - 32-BIT API
  43815. AH = B4h
  43816. AL = function (80h-87h)
  43817. further details not yet available
  43818. Note: these functions are 32-bit versions of functions 00h-07h
  43819. --------c-1AC0-------------------------------
  43820. INT 1A U - Disk Spool II v2.07+ - ALTERNATE INSTALLATION CHECK
  43821. AH = C0h
  43822. Return: (see AH=A0h)
  43823. Notes: this call is identical to AH=A0h
  43824. this function is also supported by Vertisoft's Emulaser utility ELSPL,
  43825. as that is a licensed version of Disk Spool II
  43826. SeeAlso: AH=A0h,AH=ABh,AH=D0h
  43827. --------U-1ACCCCBXCCCC-----------------------
  43828. INT 1A U - DATEFIX - INSTALLATION CHECK
  43829. AX = CCCCh
  43830. BX = CCCCh
  43831. CX = 0000h
  43832. Return: CX = CCCCh if installed
  43833. ES:BX -> original interrupt handler
  43834. Program: DATEFIX is a public-domain TSR to correct the date on AT&T 6300
  43835. machines, where the realtime clock's calendar wraps after 1991
  43836. SeeAlso: AH=FEh,AH=FFh"AT&T"
  43837. --------c-1AD0-------------------------------
  43838. INT 1A U - Disk Spool II v2.07+ - FUNCTION CALLS
  43839. AH = D0h
  43840. AL = function code
  43841. 01h enable spooler and despooler
  43842. 02h enable spooler only
  43843. 03h enable despooler at beginning of file
  43844. 04h disable the despooler
  43845. 05h disable the despooler and spooler
  43846. 06h clear the spool file
  43847. 08h inhibit the popup menu
  43848. 09h enable the popup menu
  43849. 0Ah ??? (called by Disk Spool's INT 21 handler)
  43850. 0Bh disable the spooler
  43851. 0Ch start despooler after last successfully printed document
  43852. 0Dh start despooler at the exact point where it last left off
  43853. 0Eh pop up the menu
  43854. 0Fh ???
  43855. 11h start new spool file??? (called by Disk Spool's INT 21 handler
  43856. when a program terminates)
  43857. 14h ???
  43858. 15h delete despool file and reset ???
  43859. 16h ??? (writes something to unknown file)
  43860. 17h ??? (writes something to despool file, then reads something
  43861. else and ???)
  43862. 18h ??? (reads something from despool file, and then ???)
  43863. 19h ??? (creates/truncates spool file)
  43864. 20h clear file pointed to by the despooler
  43865. 21h ??? (writes something to unknown file)
  43866. 22h ??? (writes something to spool file if spooler/despooler using
  43867. same file)
  43868. 23h ??? (opens/creates unknown file, then ???)
  43869. 30h ???
  43870. 31h ???
  43871. 32h beep
  43872. 33h append CRLF to spool file???
  43873. 34h ???
  43874. 35h ???
  43875. 36h ???
  43876. 37h append CRLF to spool file and start a new spool file???
  43877. 38h ???
  43878. 40h ??? (v4.05)
  43879. 41h ??? (v4.05)
  43880. 51h ??? (called by Disk Spool's INT 21 handler)
  43881. 52h ??? (called by Disk Spool's INT 21 handler)
  43882. 57h ???
  43883. 5Ah ??? (v4.05)
  43884. 5Bh ??? (v4.05)
  43885. 5Ch ??? (v4.05)
  43886. Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
  43887. as that is a licensed version of Disk Spool II
  43888. SeeAlso: AH=A0h,AH=ADh
  43889. --------c-1AE0-------------------------------
  43890. INT 1A - Disk Spool II v4.0x - ENABLE/DISABLE
  43891. AH = E0h
  43892. AL = subfunction
  43893. 01h enable spooler
  43894. 02h disable spooler
  43895. 03h enable despooler
  43896. 04h disable despooler
  43897. CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  43898. Return: AH = status
  43899. 00h successful
  43900. F0h printer port not managed by Disk Spool II
  43901. FFH failed
  43902. Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
  43903. as that is a licensed version of Disk Spool II
  43904. SeeAlso: AH=A0h,AH=E1h,AX=E301h,AX=E401h
  43905. --------c-1AE1-------------------------------
  43906. INT 1A - Disk Spool II v4.0x - GET STATUS
  43907. AH = E1h
  43908. CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  43909. Return: AH = status
  43910. 00h successful
  43911. CL = despooler state (00h disabled, 41h enabled)
  43912. CH = spooler state (00h disabled, 41h enabled)
  43913. DL = despooler activity (00h standing by, 41h printing)
  43914. ES:BX -> ASCIZ name of current spool file (or next if AutoSpool
  43915. or AutoDespool enabled)
  43916. ES:SI -> ASCIZ name of current despool file
  43917. ES:DI -> 3-byte file extension used by Disk Spool II
  43918. F0h printer port not managed by Disk Spool II
  43919. Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
  43920. as that is a licensed version of Disk Spool II
  43921. SeeAlso: AH=A0h,AH=E0h,AH=E2h
  43922. --------U-1AE11B-----------------------------
  43923. INT 1A - TheGrab v4.60 - ???
  43924. AX = E11Bh
  43925. ???
  43926. Return: ??? (may destroy all registers)
  43927. SeeAlso: AX=E11Dh
  43928. --------U-1AE11D-----------------------------
  43929. INT 1A - TheGrab v4.60 - INSTALLATION CHECK
  43930. AX = E11Dh
  43931. Return: ES:DI -> signature block (see #01261) if installed
  43932. CX = length of signature block (000Fh)
  43933. Program: TheGrab is a resident ANSI screen grabber bundled with TheDraw
  43934. SeeAlso: AX=E11Bh
  43935. Format of TheGrab signature block:
  43936. Offset Size Description (Table 01261)
  43937. 00h BYTE 08h
  43938. 01h 8 BYTEs ASCIZ "THEGRAB"
  43939. 09h 6 BYTEs ??? (zeros)
  43940. --------c-1AE2-------------------------------
  43941. INT 1A - Disk Spool II v4.0x - GET SPOOL FILES
  43942. AH = E2h
  43943. AL = which
  43944. 01h first
  43945. 02h next (can only call after "first")
  43946. CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  43947. Return: AH = status
  43948. 00h successful
  43949. ES:BX -> ASCIZ filename
  43950. F0h no (more) spool files
  43951. FFh failed
  43952. Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
  43953. as that is a licensed version of Disk Spool II
  43954. SeeAlso: AH=E0h,AH=E1h
  43955. --------c-1AE301-----------------------------
  43956. INT 1A - Disk Spool II v4.0x - GET SPOOL FILE STATUS
  43957. AX = E301h
  43958. ES:BX -> ASCIZ filename (max 32 chars)
  43959. Return: AH = status
  43960. 00h successful
  43961. ES:SI -> spool file status record (see #01262)
  43962. F0h not a spool file
  43963. FFh failed
  43964. Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
  43965. as that is a licensed version of Disk Spool II
  43966. SeeAlso: AH=E0h,AX=E302h,AX=E401h
  43967. Format of Disk Spool II spool file status record:
  43968. Offset Size Description (Table 01262)
  43969. 00h BYTE hour of creation or last update
  43970. 01h BYTE minute of creation or last update
  43971. 02h BYTE year-1980 of creation or last update
  43972. 03h BYTE month of creation or last update
  43973. 04h BYTE day of creation or last update
  43974. 05h BYTE total number of copies to print
  43975. 06h BYTE number of copies already printed
  43976. 07h BYTE printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  43977. 08h BYTE save status (00h delete after printing, 01h save)
  43978. 09h BYTE file status
  43979. 01h done printing, but being saved
  43980. 02h on hold
  43981. 03h queued for printing
  43982. 04h being spooled
  43983. 05h being despooled (i.e. printed)
  43984. 0Ah 16 BYTEs ASCIZ description
  43985. 1Ah 2 WORDs file size in bytes (high,low)
  43986. 1Eh 2 WORDs bytes left to print (high,low)
  43987. --------c-1AE302-----------------------------
  43988. INT 1A - Disk Spool II v4.0x - UPDATE SPOOL FILE
  43989. AX = E302h
  43990. ES:BX -> ASCIZ filename (max 32 chars)
  43991. ES:SI -> spool file status record (see #01262)
  43992. Return: AH = status
  43993. 00h successful
  43994. F0h not a spool file
  43995. FFh failed
  43996. Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
  43997. as that is a licensed version of Disk Spool II
  43998. SeeAlso: AH=E0h,AX=E301h,AX=E401h
  43999. --------c-1AE401-----------------------------
  44000. INT 1A - Disk Spool II v4.0x - SPOOL EXISTING FILE
  44001. AX = E401h
  44002. ES:BX -> ASCIZ filename (max 32 chars)
  44003. CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  44004. Return: AH = status
  44005. 00h successful
  44006. FFh failed
  44007. Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
  44008. as that is a licensed version of Disk Spool II
  44009. SeeAlso: AH=E1h,AX=E302h,AX=E402h
  44010. --------c-1AE402-----------------------------
  44011. INT 1A U - Disk Spool II v4.0x - SPOOL EXISTING FILE???
  44012. AX = E402h
  44013. ES:BX -> ASCIZ filename (max 32 chars)
  44014. CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  44015. Return: AH = status
  44016. 00h successful
  44017. FFh failed
  44018. Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
  44019. as that is a licensed version of Disk Spool II
  44020. SeeAlso: AH=E1h,AX=E302h,AX=E401h
  44021. --------c-1AE5-------------------------------
  44022. INT 1A U - Emulaser ELSPL.COM - ???
  44023. AH = E5h
  44024. ???
  44025. Return: ???
  44026. Program: ELSPL.COM is a licensed version of Disk Spool II which is distributed
  44027. as part of Vertisoft's Emulaser PostScript emulator
  44028. SeeAlso: AH=A0h,INT 17/AH=03h
  44029. --------c-1AEE-------------------------------
  44030. INT 1A U - Disk Spool II v4.05 - ???
  44031. AH = EEh
  44032. AL = printer port???
  44033. ???
  44034. Return: ???
  44035. Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
  44036. as that is a licensed version of Disk Spool II
  44037. SeeAlso: AH=E1h
  44038. --------U-1AF7-------------------------------
  44039. INT 1A - RighTime v1.1 - TEMPORARILY DISABLE
  44040. AH = F7h
  44041. Program: RighTime is a TSR by G.T. Becker which continuously adjusts the
  44042. system time to correct for clock drift
  44043. Note: any AH value from F0h-F7h or F9h-FEh will perform this function in
  44044. version 1.1, but F7h is the function called by transient portion
  44045. SeeAlso: AH=F8h,AH=FFh"RighTime"
  44046. --------U-1AF8-------------------------------
  44047. INT 1A - RighTime v1.1 - ENABLE
  44048. AH = F8h
  44049. Program: RighTime is a TSR by G.T. Becker which continuously adjusts the
  44050. system time to correct for clock drift
  44051. Note: RighTime is TeSseRact-compatible (see INT 2F/AX=5453h) and modifies its
  44052. TeSseRact program identifier based on its current state: "RighTime"
  44053. when enabled, "RighTim"F7h when disabled.
  44054. SeeAlso: AH=F7h,AH=FFh"RighTime"
  44055. --------b-1AFE-------------------------------
  44056. INT 1A - AT&T 6300 - READ TIME AND DATE
  44057. AH = FEh
  44058. Return: BX = day count (0 = Jan 1, 1984)
  44059. CH = hour
  44060. CL = minute
  44061. DH = second
  44062. DL = hundredths
  44063. SeeAlso: AX=CCCCh/BX=CCCCh,AH=FFh"AT&T",INT 21/AH=2Ah,INT 21/AH=2Ch
  44064. --------b-1AFF-------------------------------
  44065. INT 1A - AT&T 6300 - SET TIME AND DATE
  44066. AH = FFh
  44067. BX = day count (0 = Jan 1, 1984)
  44068. CH = hour
  44069. CL = minute
  44070. DH = second
  44071. DL = hundredths
  44072. Return: ???
  44073. SeeAlso: AX=CCCCh/BX=CCCCh,AH=FEh,INT 21/AH=2Bh"DATE",INT 21/AH=2Dh
  44074. --------U-1AFF-------------------------------
  44075. INT 1A - RighTime v1.1 - PERMANENTLY DISABLE
  44076. AH = FFh
  44077. Program: RighTime is a TSR by G.T. Becker which continuously adjusts the
  44078. system time to correct for clock drift
  44079. Note: upon being permanently disabled, RighTime closes the file handle
  44080. referencing its executable (which is updated with time correction
  44081. information every two minutes while RighTime is enabled).
  44082. --------s-1AFF00-----------------------------
  44083. INT 1A - SND - INSTALLATION CHECK???
  44084. AX = FF00h
  44085. Return: AL = version??? (02h)
  44086. AH = busy flag (00h if not in a SND call, 01h if SND currently active)
  44087. Note: the SND API is also supported by IC (Internal Commands) v2.0, a
  44088. shareware TSR by Geoff Friesen which extends COMMAND.COM's internal
  44089. command set
  44090. SeeAlso: AX=FF01h,AX=FF02h,AX=FF04h,AX=FF05h
  44091. --------s-1AFF01-----------------------------
  44092. INT 1A - SND - PAUSE
  44093. AX = FF01h
  44094. DX = number of clock ticks to delay
  44095. Return: AH = status
  44096. 00h successful
  44097. 01h SND busy
  44098. Notes: if successful, execution returns to the caller after the delay expires;
  44099. if SND is busy, execution returns immediately
  44100. the IC v2.0 implementation of this API makes no special allowance for
  44101. time rollover at midnight, which can cause the delay to be over one
  44102. hour if this function is called just before the BIOS time count
  44103. rolls over and the delay extends into the next day
  44104. SeeAlso: AX=FF00h,INT 15/AH=86h,INT 62/AX=0096h,INT 7F/AH=E8h,INT 80/BX=0009h
  44105. SeeAlso: INT E0/CL=BDh
  44106. --------s-1AFF02-----------------------------
  44107. INT 1A - SND - START SOUND
  44108. AX = FF02h
  44109. DX = frequency in Hertz (14h-FFFFh)
  44110. Return: AH = status
  44111. 00h successful
  44112. 01h SND busy
  44113. SeeAlso: AX=FF00h,AX=FF01h,AX=FF03h
  44114. --------s-1AFF03-----------------------------
  44115. INT 1A - SND - STOP SOUND
  44116. AX = FF03h
  44117. Return: AH = status
  44118. 00h successful
  44119. 01h busy
  44120. Note: turns off any sound currently being emitted by the PC's speaker unless
  44121. SND is currently busy processing an API call (this includes
  44122. background music). Use AX=FF05h to stop the sound even if an API
  44123. call is in progress.
  44124. SeeAlso: AX=FF00h,AX=FF02h,AX=FF05h
  44125. --------s-1AFF04-----------------------------
  44126. INT 1A - SND - PLAY MUSIC STRING IN BACKGROUND
  44127. AX = FF04h
  44128. DS:DX -> ASCIZ music string
  44129. Return: AH = status
  44130. 00h successful (music begins playing in background)
  44131. 01h busy
  44132. Note: the music string accepted by SND is not the same as that accepted by
  44133. BASIC and other programs which process music strings
  44134. SeeAlso: AX=FF00h,AX=FF05h,INT 80/BX=0006h
  44135. --------s-1AFF05-----------------------------
  44136. INT 1A - SND - UNCONDITIONALLY STOP SOUND
  44137. AX = FF05h
  44138. Return: AH = 00h (successful)
  44139. Note: this function is the same as AX=FF03h, but will stop the sound even if
  44140. SND is currently busy, such as playing background music
  44141. SeeAlso: AX=FF00h,AX=FF03h,INT 80/BX=0007h
  44142. --------B-1B---------------------------------
  44143. INT 1B C - KEYBOARD - CONTROL-BREAK HANDLER
  44144. Desc: this interrupt is automatically called when INT 09 determines that
  44145. Control-Break has been pressed
  44146. Note: normally points to a short routine in DOS which sets the Ctrl-C flag,
  44147. thus invoking INT 23h the next time DOS checks for Ctrl-C.
  44148. SeeAlso: INT 23,MEM 0040h:0071h
  44149. --------B-1C---------------------------------
  44150. INT 1C - TIME - SYSTEM TIMER TICK
  44151. Desc: this interrupt is automatically called on each clock tick by the INT 08
  44152. handler
  44153. Notes: this is the preferred interrupt to chain when a program needs to be
  44154. invoked regularly
  44155. not available on NEC 9800-series PCs
  44156. SeeAlso: INT 08,INT E2"PC Cluster"
  44157. --------B-1D---------------------------------
  44158. INT 1D - SYSTEM DATA - VIDEO PARAMETER TABLES
  44159. Note: the default parameter table (see #01263) is located at F000h:F0A4h for
  44160. 100% compatible BIOSes
  44161. SeeAlso: INT 10/AH=00h
  44162. Format of video parameters:
  44163. Offset Size Description (Table 01263)
  44164. 00h 16 BYTEs 6845 register values for modes 00h and 01h
  44165. 10h 16 BYTEs 6845 register values for modes 02h and 03h
  44166. 20h 16 BYTEs 6845 register values for modes 04h and 05h
  44167. 30h 16 BYTEs 6845 register values for modes 06h and 07h
  44168. 40h WORD bytes in video buffer for modes 00h and 01h (0800h)
  44169. 42h WORD bytes in video buffer for modes 02h and 03h (1000h)
  44170. 44h WORD bytes in video buffer for modes 04h and 05h (4000h)
  44171. 46h WORD bytes in video buffer for mode 06h (4000h)
  44172. 48h 8 BYTEs columns on screen for each of modes 00h through 07h
  44173. 50h 8 BYTEs CRT controller mode bytes for each of modes 00h through 07h
  44174. Note: QEMM v7.5 Stealth appears to copy only the first 40h bytes of this
  44175. table into always-accessible memory
  44176. --------B-1E---------------------------------
  44177. INT 1E - SYSTEM DATA - DISKETTE PARAMETERS
  44178. Notes: the default parameter table (see #01264) is located at F000h:EFC7h for
  44179. 100% compatible BIOSes
  44180. if the table is changed, INT 13/AH=00h should be called to ensure that
  44181. the floppy-disk controller is appropriately reprogrammed
  44182. SeeAlso: INT 13/AH=0Fh,INT 41"HARD DISK 0",INT 4D/AH=0Ah
  44183. Format of diskette parameter table:
  44184. Offset Size Description (Table 01264)
  44185. 00h BYTE first specify byte
  44186. bits 7-4: step rate (Fh=2ms,Eh=4ms,Dh=6ms,etc.)
  44187. bits 3-0: head unload time (0Fh = 240 ms)
  44188. 01h BYTE second specify byte
  44189. bits 7-1: head load time (01h = 4 ms)
  44190. bit 0: non-DMA mode (always 0)
  44191. 02h BYTE delay until motor turned off (in clock ticks)
  44192. 03h BYTE bytes per sector (00h = 128, 01h = 256, 02h = 512, 03h = 1024)
  44193. 04h BYTE sectors per track
  44194. 05h BYTE length of gap between sectors (2Ah for 5.25", 1Bh for 3.5")
  44195. 06h BYTE data length (ignored if bytes-per-sector field nonzero)
  44196. 07h BYTE gap length when formatting (50h for 5.25", 6Ch for 3.5")
  44197. 08h BYTE format filler byte (default F6h)
  44198. 09h BYTE head settle time in milliseconds
  44199. 0Ah BYTE motor start time in 1/8 seconds
  44200. ---IBM SurePath BIOS---
  44201. 0Bh BYTE maximum track number
  44202. 0Ch BYTE data transfer rate
  44203. 0Dh BYTE drive type in CMOS
  44204. SeeAlso: #03226 at INT 4D/AH=09h
  44205. --------B-1F---------------------------------
  44206. INT 1F - SYSTEM DATA - 8x8 GRAPHICS FONT
  44207. Desc: this vector points at 1024 bytes of graphics data, 8 bytes for each
  44208. character 80h-FFh
  44209. Note: graphics data for characters 00h-7Fh stored at F000h:FA6Eh in 100%
  44210. compatible BIOSes
  44211. SeeAlso: INT 10/AX=5000h,INT 43
  44212. --------b-1F12-------------------------------
  44213. INT 1F U - C&T "SuperState" BIOS - POWER OFF
  44214. AH = 12h
  44215. Return: none
  44216. Note: POWER OFF
  44217. --------b-1F17-------------------------------
  44218. INT 1F U - C&T "SuperState" BIOS - EXECUTE FAR PROC ROUTINE ON SuperState
  44219. AH = 17h
  44220. ES:DI -> far procedure
  44221. Return: all registers except AH,ES,DI
  44222. Note: You can change the BIOS area (F000h:0000h - F000h:FFFFh) only through
  44223. this function
  44224. --------b-1F19-------------------------------
  44225. INT 1F U - C&T "SuperState" BIOS - ENABLE AUTO WAKEUP AND SET TIME AND DATE
  44226. AH = 19h
  44227. AL = hour in BCD
  44228. BH = minutes in BCD
  44229. BL = seconds in BCD
  44230. CH = year century in BCD (must be 19h)
  44231. CL = year low in BCD
  44232. DH = month in BCD
  44233. DL = date in BCD
  44234. Return: CF clear
  44235. --------b-1F1C-------------------------------
  44236. INT 1F U - C&T "SuperState" BIOS - SET SUSPEND TIMEOUT
  44237. AH = 1Ch
  44238. BX = sec until suspend starts
  44239. Return: None
  44240. --------b-1F1D-------------------------------
  44241. INT 1F U - C&T "SuperState" BIOS - SET SLEEP TIMEOUT
  44242. AH = 1Dh
  44243. BX = sec until sleep starts
  44244. Return: None
  44245. --------J-1F90-------------------------------
  44246. INT 1F - NEC PC-9801 - COPY EXTENDED MEMORY
  44247. AH = 90h
  44248. ES:BX -> global descriptor table (see #00499 at INT 15/AH=87h)
  44249. CX = number of bytes to copy
  44250. SI = 0000h
  44251. DI = 0000h
  44252. Return: CF clear if successful
  44253. CF set on error
  44254. ???
  44255. SeeAlso: INT 15/AH=87h
  44256. --------b-1FF5--BLFA-------------------------
  44257. INT 1F U - C&T "SuperState" BIOS - REQUEST PASSWORD INPUT
  44258. AH = F5h
  44259. BL = FAh
  44260. Return: none
  44261. Note: this function will not return until the correct password is entered
  44262. SeeAlso: AH=F5h/BL=FDh,AH=F5h/BL=FEh
  44263. --------b-1FF5--BLFD-------------------------
  44264. INT 1F U - C&T "SuperState" BIOS - ENCRYPT PASSWORD
  44265. AH = F5h
  44266. BL = FDh
  44267. CX:SI = input string
  44268. DX:DI = encrypted string
  44269. BH = length of input string
  44270. Return: CF set on error
  44271. SeeAlso: AH=F5h/BL=FAh,AH=F5h/BL=FEh
  44272. --------b-1FF5--BLFE-------------------------
  44273. INT 1F U - C&T "SuperState" BIOS - SET PASSWORD
  44274. AH = F5h
  44275. BL = FEh
  44276. CX:SI -> input string
  44277. BH = length of input string (if BH = 00h, clear password)
  44278. Return: CF set on error
  44279. Note: the input string must be encrypted by INT 1Fh/AH=F5h/BL=FDh
  44280. SeeAlso: AH=F5h/BL=FDh,AH=F5h/BL=FFh
  44281. --------b-1FF5--BLFF-------------------------
  44282. INT 1F U - C&T "SuperState" BIOS - GET ENCRYPTED PASSWORD
  44283. AH = F5h
  44284. BL = FFh
  44285. DX:DI = string buffer
  44286. Return: CF set on error
  44287. CF clear if successful
  44288. BH = length of input string (if BH = 00h, password is not valid)
  44289. DX:DI -> encrypted password string
  44290. SeeAlso: AH=F5h/BL=FDh,AH=F5h/BL=FEh
  44291. --------b-1FFB-------------------------------
  44292. INT 1F U - C&T "SuperState" BIOS - GET/SET CPU SPEED
  44293. AH = FBh
  44294. BL = function
  44295. 00h get CPU speed
  44296. Return: AL = current CPU speed (00h = fast, 01h = slow)
  44297. 01h set CPU speed
  44298. AL = new CPU speed (00h = fast, 01h = slow)
  44299. SeeAlso: AH=FCh/BL=00h
  44300. --------b-1FFC--BL00-------------------------
  44301. INT 1F U - C&T "SuperState" BIOS - GET ALARM STATUS
  44302. AH = FCh
  44303. BL = 00h
  44304. Return: AL = current alarm state (00h = disabled, 01h = enabled)
  44305. SeeAlso: AH=FCh/BL=01h,AH=FCh/BL=02h
  44306. --------b-1FFC--BL01-------------------------
  44307. INT 1F U - C&T "SuperState" BIOS - SET ALARM STATUS
  44308. AH = FCh
  44309. BL = 01h
  44310. AL = new alarm state (00h = disabled, 01h = enabled)
  44311. SeeAlso: AH=FCh/BL=00h,AH=FCh/BL=03h
  44312. --------b-1FFC--BL02-------------------------
  44313. INT 1F U - C&T "SuperState" BIOS - GET ALARM TIME
  44314. AH = FCh
  44315. BL = 02h
  44316. Return: CH = hour by BCD
  44317. CL = min by BCD
  44318. DH = sec by BCD
  44319. SeeAlso: AH=FCh/BL=00h,AH=FCh/BL=03h,AH=FCh/BL=04h
  44320. --------b-1FFC--BL03-------------------------
  44321. INT 1F U - C&T "SuperState" BIOS - SET ALARM TIME
  44322. AH = FCh
  44323. BL = 03h
  44324. CH = hour by BCD
  44325. CL = min by BCD
  44326. DH = sec by BCD
  44327. Return: CF set on error (incorrect time format or Alarm is not enable)
  44328. SeeAlso: AH=FCh/BL=01h,AH=FCh/BL=02h,AH=FCh/BL=05h
  44329. --------b-1FFC--BL04-------------------------
  44330. INT 1F U - C&T "SuperState" BIOS - GET ALARM DATE
  44331. AH = FCh
  44332. BL = 04h
  44333. Return: CH = year century by BCD
  44334. CL = year low by BCD
  44335. DH = month by BCD
  44336. DL = date by BCD
  44337. SeeAlso: AH=FCh/BL=02h,AH=FCh/BL=05h
  44338. --------b-1FFC--BL05-------------------------
  44339. INT 1F U - C&T "SuperState" BIOS - SET ALARM DATE
  44340. AH = FCh
  44341. BL = 05h
  44342. CH = year century by BCD
  44343. CL = year low by BCD
  44344. DH = month by BCD
  44345. DL = date by BCD
  44346. Return: CF set on error (incorrect date format or Alarm is not enable)
  44347. SeeAlso: AH=FCh/BL=03h,AH=FCh/BL=04h
  44348. --------b-1FFD--BL00-------------------------
  44349. INT 1F U - C&T "SuperState" BIOS - GET AUTO WAKE UP STATUS
  44350. AH = FDh
  44351. BL = 00h
  44352. Return: AL = current wake-up state (00h = disabled, 01h = enabled)
  44353. SeeAlso: AH=FDh/BL=01h,AH=FDh/BL=02h
  44354. --------b-1FFD--BL01-------------------------
  44355. INT 1F U - C&T "SuperState" BIOS - SET AUTO WAKE UP STATUS
  44356. AH = FDh
  44357. BL = 01h
  44358. AL = new wake-up state (00h = disabled, 01h = enabled)
  44359. SeeAlso: AH=FDh/BL=00h,AH=FDh/BL=03h
  44360. --------b-1FFD--BL02-------------------------
  44361. INT 1F U - C&T "SuperState" BIOS - GET AUTO WAKE UP TIME
  44362. AH = FDh
  44363. BL = 02h
  44364. Return: CH = hour by BCD
  44365. CL = min by BCD
  44366. DH = sec by BCD
  44367. SeeAlso: AH=FDh/BL=00h,AH=FDh/BL=03h
  44368. --------b-1FFD--BL03-------------------------
  44369. INT 1F U - C&T "SuperState" BIOS - SET AUTO WAKE UP TIME
  44370. AH = FDh
  44371. BL = 03h
  44372. CH = hour by BCD
  44373. CL = min by BCD
  44374. DH = sec by BCD
  44375. Return: CF set on error (incorrect Time format or Auto Wake up is not enable)
  44376. SeeAlso: AH=FDh/BL=01h,AH=FDh/BL=02h
  44377. --------b-1FFD--BL04-------------------------
  44378. INT 1F U - C&T "SuperState" BIOS - GET AUTO WAKE UP DATE
  44379. AH = FDh
  44380. BL = 04h
  44381. Return: CH = year century in BCD
  44382. CL = year low in BCD
  44383. DH = month in BCD
  44384. DL = date in BCD
  44385. SeeAlso: AH=FDh/BL=02h,AH=FDh/BL=05h
  44386. --------b-1FFD--BL05-------------------------
  44387. INT 1F U - C&T "SuperState" BIOS - SET AUTO WAKE UP DATE
  44388. AH = FDh
  44389. BL = 05h
  44390. CH = year century in BCD
  44391. CL = year low in BCD
  44392. DH = month in BCD
  44393. DL = date in BCD
  44394. Return: CF set on error (incorrect date format or Auto Wake up is not enable)
  44395. SeeAlso: AH=FDh/BL=03h"C&T",AH=FDh/BL=04h"C&T"
  44396. --------!---Section--------------------------
  44397. Interrupt List, part 6 of 18
  44398. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  44399. --------O-20---------------------------------
  44400. INT 20 - Minix - SEND/RECEIVE MESSAGE
  44401. AX = process ID of other process
  44402. BX -> message
  44403. CX = operation (1 send, 2 receive, 3 send&receive)
  44404. Program: Minix is a Version 7 Unix-compatible operating system by Andrew
  44405. Tanenbaum
  44406. Note: the message contains the system call number (numbered as in V7
  44407. Unix(tm)) and the call parameters
  44408. --------D-20---------------------------------
  44409. INT 20 - DOS 1+ - TERMINATE PROGRAM
  44410. CS = PSP segment
  44411. Return: never
  44412. Notes: (see INT 21/AH=00h)
  44413. this function sets the program's return code (ERRORLEVEL) to 00h
  44414. SeeAlso: INT 21/AH=00h,INT 21/AH=4Ch
  44415. --------G-20---------------------------------
  44416. INT 20 - COMTROL HOSTESS i/ISA DEBUGGER - INVOKE FIRMWARE DEBUGGER
  44417. ???
  44418. Return: ???
  44419. SeeAlso: INT 21"COMTROL"
  44420. --------W-20----Vx0001-----------------------
  44421. INT 20 P - Microsoft Windows - VMM - VxD SERVICES
  44422. VxD = 0001h
  44423. Note: the desired VxD and service number are identified by the data
  44424. immediately following the INT 20 instruction, as in:
  44425. INT 20h
  44426. DW service number
  44427. DW VxD identifier
  44428. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  44429. (Table 01265)
  44430. Values for VMM (VxD ID 0001h) service number:
  44431. 0000h get version
  44432. 0001h get current VM handle
  44433. 0002h test current VM handle
  44434. 0003h get system VM handle
  44435. 0004h test system VM handle
  44436. 0005h validate VM handle
  44437. 0006h get VMM reenter count
  44438. 0007h begin reentrant execution
  44439. 0008h end reentrant execution
  44440. 0009h install V86 breakpoint
  44441. 000Ah remove V86 breakpoint
  44442. 000Bh allocate V86 callback
  44443. 000Ch allocation PM callback
  44444. 000Dh call when VM returns
  44445. 000Eh schedule global event
  44446. 000Fh schedule VM event
  44447. 0010h call global event
  44448. 0011h call VM event
  44449. 0012h cancel global event
  44450. 0013h cancel VM event
  44451. 0014h call priority VM event
  44452. 0015h cancel priority VM event
  44453. 0016h get NMI handler address
  44454. 0017h set NMI handler address
  44455. 0018h hook NMI event
  44456. 0019h call when VM interrupts enabled
  44457. 001Ah enable VM interrupts
  44458. 001Bh disable VM interrupts
  44459. 001Ch map flat
  44460. 001Dh map linear to VM address
  44461. 001Eh adjust execution priority
  44462. 001Fh begin critical section
  44463. 0020h end critical section
  44464. 0021h end critical section and suspend
  44465. 0022h claim critical section
  44466. 0023h release critical section
  44467. 0024h call when not critical
  44468. 0025h create semaphore
  44469. 0026h destroy semaphore
  44470. 0027h wait on semaphore
  44471. 0028h signal semaphore
  44472. 0029h get critical section status
  44473. 002Ah call when task switched
  44474. 002Bh suspend VM
  44475. 002Ch resume VM
  44476. 002Dh no-fail resume VM
  44477. 002Eh nuke VM
  44478. 002Fh crash current VM
  44479. 0030h get execution focus
  44480. 0031h set execution focus
  44481. 0032h get time slice priority
  44482. 0033h set time slice priority
  44483. 0034h get time slice granularity
  44484. 0035h set time slice granularity
  44485. 0036h get time slice information
  44486. 0037h adjust execution time
  44487. 0038h release time slice
  44488. 0039h wake up VM
  44489. 003Ah call when idle
  44490. 003Bh get next VM handle
  44491. 003Ch set global timeout
  44492. 003Dh set VM timeout
  44493. 003Eh cancel timeout
  44494. 003Fh get system time
  44495. Return: EAX = time in milliseconds that Windows has been running
  44496. 0040h get VM execution time
  44497. 0041h hook V86 interrupt chain
  44498. 0042h get V86 interrupt vector
  44499. 0043h set V86 interrupt vector
  44500. 0044h get PM interrupt vector
  44501. 0045h set PM interrupt vector
  44502. 0046h simulate interrupt
  44503. 0047h simulate IRET
  44504. 0048h simulate far call
  44505. 0049h simulate far jump
  44506. 004Ah simulate far RET
  44507. 004Bh simulate far RET N
  44508. 004Ch build interrupt stack frame
  44509. 004Dh simulate push
  44510. 004Eh simulate pop
  44511. 004Fh _HeapAllocate
  44512. 0050h _HeapReAllocate
  44513. 0051h _HeapFree
  44514. 0052h _HeapGetSize
  44515. 0053h _PageAllocate
  44516. 0054h _PageReAllocate
  44517. 0055h _PageFree
  44518. 0056h _PageLock
  44519. 0057h _PageUnLock
  44520. 0058h _PageGetSizeAddr
  44521. 0059h _PageGetAllocInfo
  44522. 005Ah _GetFreePageCount
  44523. 005Bh _GetSysPageCount
  44524. 005Ch _GetVMPgCount
  44525. 005Dh _MapIntoV86
  44526. 005Eh _PhysIntoV86
  44527. 005Fh _TestGlobalV86Mem
  44528. 0060h _ModifyPageBits
  44529. 0061h copy page table
  44530. 0062h map linear into V86
  44531. 0063h linear page lock
  44532. 0064h linear page unlock
  44533. 0065h _SetResetV86Pageabl
  44534. 0066h _GetV86PageableArray
  44535. 0067h _PageCheckLinRange
  44536. 0068h page out dirty pages
  44537. 0069h discard pages
  44538. 006Ah _GetNulPageHandle
  44539. 006Bh get first V86 page
  44540. 006Ch map physical address to linear address
  44541. 006Dh _GetAppFlatDSAlias
  44542. 006Eh _SelectorMapFlat
  44543. 006Fh _GetDemandPageInfo
  44544. 0070h _GetSetPageOutCount
  44545. 0071h hook V86 page
  44546. 0072h assign device V86 pages
  44547. 0073h deassign device V86 pages
  44548. 0074h get array of V86 pages for device
  44549. 0075h _SetNULPageAddr
  44550. 0076h allocate GDT selector
  44551. 0077h free GDT selector
  44552. 0078h allocate LDT selector
  44553. 0079h free LDT selector
  44554. 007Ah _BuildDescriptorDWORDs
  44555. 007Bh get descriptor
  44556. 007Ch set descriptor
  44557. 007Dh toggle HMA
  44558. 007Eh get fault hook addresses
  44559. 007Fh hook V86 fault
  44560. 0080h hook PM fault
  44561. 0081h hook VMM fault
  44562. 0082h begin nested V86 execution
  44563. 0083h begin nested execution
  44564. 0084h execute V86-mode interrupt
  44565. 0085h resume execution
  44566. 0086h end nested execution
  44567. 0087h allocate PM application callback area
  44568. 0088h get current PM application callback area
  44569. 0089h set V86 execution mode
  44570. 008Ah set PM execution mode
  44571. 008Bh begin using locked PM stack
  44572. 008Ch end using locked PM stack
  44573. 008Dh save client state
  44574. 008Eh restore client state
  44575. 008Fh execute VxD interrupt
  44576. STACK: WORD interrupt number
  44577. other registers as required by interrupt call
  44578. Return: registers as returned by interrupt call
  44579. 0090h hook device service
  44580. EAX = service ID (high word = VxD ID, low = service number)
  44581. ESI -> new handler
  44582. 0091h hook device V86 API
  44583. 0092h hook device PM API
  44584. 0093h system control (see also #02657)
  44585. 0094h simulate I/O
  44586. 0095h install multiple I/O handlers
  44587. 0096h install I/O handler
  44588. DX = I/O port address
  44589. ESI -> handler to call when I/O access attempted???
  44590. 0097h enable global trapping
  44591. DX = I/O port address
  44592. 0098h enable local trapping
  44593. DX = I/O port address
  44594. 0099h disable global trapping
  44595. DX = I/O port address
  44596. 009Ah disable local trapping
  44597. DX = I/O port address
  44598. 009Bh create list
  44599. 009Ch destroy list
  44600. 009Dh allocate list
  44601. 009Eh attach list
  44602. 009Fh attach list tail
  44603. 00A0h insert into list
  44604. 00A1h remove from list
  44605. 00A2h deallocate list
  44606. 00A3h get first item in list
  44607. 00A4h get next item in list
  44608. 00A5h remove first item in list
  44609. 00A6h add instance item
  44610. 00A7h allocate device callback area
  44611. 00A8h allocate global V86 data area
  44612. 00A9h allocate temporary V86 data area
  44613. 00AAh free temporary V86 data area
  44614. 00ABh get decimal integer from profile
  44615. 00ACh convert decimal string to integer
  44616. 00ADh get fixed-point number from profile
  44617. 00AEh convert fixed-point string
  44618. 00AFh get hex integer from profile
  44619. 00B0h convert hex string to integer
  44620. 00B1h get boolean value from profile
  44621. 00B2h convert boolean string
  44622. 00B3h get string from profile
  44623. 00B4h get next string from profile
  44624. 00B5h get environment string
  44625. 00B6h get exec path
  44626. 00B7h get configuration directory
  44627. 00B8h open file
  44628. 00B9h get PSP segment
  44629. 00BAh get DOS vectors
  44630. 00BBh get machine information
  44631. 00BCh get/set HMA information
  44632. 00BDh set system exit code
  44633. 00BEh fatal error handler
  44634. 00BFh fatal memory error
  44635. 00C0h update system clock
  44636. 00C1h test if debugger installed
  44637. 00C2h output debugger string
  44638. 00C3h output debugger character
  44639. 00C4h input debugger character
  44640. 00C5h debugger convert hex to binary
  44641. 00C6h debugger convert hex to decimal
  44642. 00C7h debugger test if valid handle
  44643. 00C8h validate client pointer
  44644. 00C9h test reentry
  44645. 00CAh queue debugger string
  44646. 00CBh log procedure call
  44647. 00CCh debugger test current VM
  44648. 00CDh get PM interrupt type
  44649. 00CEh set PM interrupt type
  44650. 00CFh get last updated system time
  44651. 00D0h get last updated VM execution time
  44652. 00D1h test if double-byte character-set lead byte
  44653. 00D2h _AddFreePhysPage
  44654. 00D3h _PageResetHandlePAddr
  44655. 00D4h _SetLastV86Page
  44656. 00D5h _GetLastV86Page
  44657. 00D6h _MapFreePhysReg
  44658. 00D7h _UnmapFreePhysReg
  44659. 00D8h _XchgFreePhysReg
  44660. 00D9h _SetFreePhysRegCalBk
  44661. 00DAh get next arena (MCB)
  44662. 00DBh get name of ugly TSR
  44663. 00DCh get debug options
  44664. 00DDh set physical HMA alias
  44665. 00DEh _GetGlblRng0V86IntBase
  44666. 00DFh add global V86 data area
  44667. 00E0h get/set detailed VM error
  44668. 00E1h Is_Debug_Chr
  44669. 00E2h clear monochrome screen
  44670. 00E3h output character to mono screen
  44671. 00E4h output string to mono screen
  44672. 00E5h set current position on mono screen
  44673. 00E6h get current position on mono screen
  44674. 00E7h get character from mono screen
  44675. 00E8h locate byte in ROM
  44676. 00E9h hook invalid page fault
  44677. 00EAh unhook invalid page fault
  44678. 00EBh set delete on exit file
  44679. 00ECh close VM
  44680. 00EDh "Enable_Touch_1st_Meg"
  44681. 00EEh "Disable_Touch_1st_Meg"
  44682. 00EFh install exception handler
  44683. 00F0h remove exception handler
  44684. 00F1h "Get_Crit_Status_No_Block"
  44685. 00F2h "_Schedule_VM_RTI_Event"
  44686. 00F3h "_Trace_Out_Service"
  44687. 00F4h "_Debug_Out_Service"
  44688. 00F5h "_Debug_Flags_Service"
  44689. 00F6h VMM add import module name
  44690. 00F7h VMM Add DDB
  44691. 00F8h VMM Remove DDB
  44692. 00F9h get thread time slice priority
  44693. 00FAh set thread time slice priority
  44694. 00FBh schedule thread event
  44695. 00FCh cancel thread event
  44696. 00FDh set thread timeout
  44697. 00FEh set asynchronous timeout
  44698. 00FFh "_AllocatreThreadDataSlot"
  44699. 0100h "_FreeThreadDataSlot"
  44700. 0101h create Mutex
  44701. 0102h destroy Mutex
  44702. 0103h get Mutex owner
  44703. 0104h call when thread switched
  44704. 0105h create thread
  44705. 0106h start thread
  44706. 0107h terminate thread
  44707. 0108h get current thread handle
  44708. 0109h test current thread handle
  44709. 010Ah "Get_Sys_Thread_Handle"
  44710. 010Bh "Test_Sys_Thread_Handle"
  44711. 010Ch "Validate_Thread_Handle"
  44712. 010Dh "Get_Initial_Thread_Handle"
  44713. 010Eh "Test_Initial_Thread_Handle"
  44714. 010Fh "Debug_Test_Valid_Thread_Handle"
  44715. 0110h "Debug_Test_Cur_Thread"
  44716. 0111h "VMM_GetSystemInitState"
  44717. 0112h "Cancel_Call_When_Thread_Switched"
  44718. 0113h "Get_Next_Thread_Handle"
  44719. 0114h "Adjust_Thread_Exec_Priority"
  44720. 0115h "_Deallocate_Device_CB_Area"
  44721. 0116h "Remove_IO_Handler"
  44722. 0117h "Remove_Mult_IO_Handlers"
  44723. 0118h unhook V86 interrupt chain
  44724. 0119h unhook V86 fault handler
  44725. 011Ah unhook PM fault handler
  44726. 011Bh unhook VMM fault handler
  44727. 011Ch unhook device service
  44728. 011Dh "_PageReserve"
  44729. 011Eh "_PageCommit"
  44730. 011Fh "_PageDecommit"
  44731. 0120h "_PagerRegister"
  44732. 0121h "_PagerQuery"
  44733. 0122h "_PagerDeregister"
  44734. 0123h "_ContextCreate"
  44735. 0124h "_ContextDestroy"
  44736. 0125h "_PageAttach"
  44737. 0126h "_PageFlush"
  44738. 0127h "_SignalID"
  44739. 0128h "_PageCommitPhys"
  44740. 0129h "_Register_Win32_Services"
  44741. 012Ah "Cancel_Call_When_Not_Critical"
  44742. 012Bh "Cancel_Call_When_Idle"
  44743. 012Ch "Cancel_Call_When_Task_Switched"
  44744. 012Dh "_Debug_Printf_Service"
  44745. 012Eh enter Mutex
  44746. 012Fh leave Mutex
  44747. 0130h simulate VM I/O
  44748. 0131h "Signal_Semaphore_No_Switch"
  44749. 0132h "_MMSwitchContext"
  44750. 0133h "_MMModifyPermissions"
  44751. 0134h "_MMQuery"
  44752. 0135h "_EnterMustComplete"
  44753. 0136h "_LeaveMustComplete"
  44754. 0137h "_ResumeExecMustComplete"
  44755. 0138h get thread termination status
  44756. 0139h "_GetInstanceInfo"
  44757. 013Ah "_ExecIntMustComplete"
  44758. 013Bh "_ExecVxDIntMustComplete"
  44759. 013Ch begin V86 serialization
  44760. 013Dh unhook V86 page
  44761. 013Eh "VMM_GetVxDLocationList"
  44762. 013Fh "VMM_GetDDBList" get start of VxD chain
  44763. (see also #02657 at INT 2F/AX=1684h/BX=0017h)
  44764. 0140h unhook NMI event
  44765. 0141h "Get_Instanced_V86_Int_Vector"
  44766. 0142h get or set real DOS PSP
  44767. 0143h call priority thread event
  44768. 0144h "Get_System_Time_Address"
  44769. 0145h "Get_Crit_Status_Thread"
  44770. 0146h "Get_DDB"
  44771. 0147h "Directed_Sys_Control"
  44772. 0148h "_RegOpenKey"
  44773. 0149h "_RegCloseKey"
  44774. 014Ah "_RegCreateKey"
  44775. 014Bh "_RegDeleteKey"
  44776. 014Ch "_RegEnumKey"
  44777. 014Dh "_RegQueryValue"
  44778. 014Eh "_RegSetValue"
  44779. 014Fh "_RegDeleteValue"
  44780. 0150h "_RegEnumValue"
  44781. 0151h "_RegQueryValueEx"
  44782. 0152h "_RegSetValueEx"
  44783. 0153h "_CallRing3"
  44784. 0154h "Exec_PM_Int"
  44785. 0155h "_RegFlushKey"
  44786. 0156h "_PageCommitContig"
  44787. 0157h "_GetCurrentContext"
  44788. 0158h "_LocalizeSprintf"
  44789. 0159h "_LocalizeStackSprintf"
  44790. 015Ah "Call_Restricted_Event"
  44791. 015Bh "Cancel_Restricted_Event"
  44792. 015Ch "Register_PEF_Provider"
  44793. 015Dh "_GetPhysPageInfo"
  44794. 015Eh "_RegQueryInfoKey"
  44795. 015Fh "MemArb_Reserve_Pages"
  44796. 0160h "Time_Slice_Sys_VM_Idle"
  44797. 0161h "Time_Slice_Sleep"
  44798. 0162h "Boost_With_Decay"
  44799. 0163h "Set_Inversion_Pri"
  44800. 0164h "Reset_Inversion_Pri"
  44801. 0165h "Release_Inversion_Pri"
  44802. 0166h "Get_Thread_Win32_Pri"
  44803. 0167h "Set_Thread_Win32_Pri"
  44804. 0168h "Set_Thread_Static_Boost"
  44805. 0169h "Set_VM_Static_Boost"
  44806. 016Ah "Release_Inversion_Pri_ID"
  44807. 016Bh "Attach_Thread_To_Group"
  44808. 016Ch "Detach_Thread_From_Group"
  44809. 016Dh "Set_Group_Static_Boost"
  44810. 016Eh "_GetRegistryPath"
  44811. 016Fh "_GetRegistryKey"
  44812. 0170h "_CleanupNestedExec"
  44813. 0171h "_RegRemapPreDefKey"
  44814. 0172h "End_V86_Serialization"
  44815. 0173h "_Assert_Range"
  44816. 0174h "_Sprintf"
  44817. 0175h "_PageChangePager"
  44818. 0176h "_RegCreateDynKey"
  44819. 0177h "RegQMulti"
  44820. 0178h "Boost_Thread_With_VM"
  44821. 0179h "Get_Boot_Flags"
  44822. 017Ah "Set_Boot_Flags"
  44823. 017Bh "_lstrcpyn"
  44824. 017Ch "_lstrlen"
  44825. 017Dh "_lmemcpy"
  44826. 017Eh "_GetVxDName"
  44827. 017Fh "Force_Mutexes_Free"
  44828. 0180h "Restore_Forced_Mutexes"
  44829. 0181h "_AddReclaimableItem"
  44830. 0182h "_SetReclaimableItem"
  44831. 0183h "_EnumReclaimableItem"
  44832. 0184h "Time_Slice_Wake_Sys_VM"
  44833. 0185h "VMM_Replace_Global_Environment"
  44834. 0186h "Begin_Non_Serial_Nest_V86_Exec"
  44835. 0187h "Get_Nest_Exec_Status"
  44836. 0188h "Open_Boot_Log"
  44837. 0189h "Write_Boot_Log"
  44838. 018Ah "Close_Boot_Log"
  44839. 018Bh "EnableDisable_Boot_Log"
  44840. 018Ch "_Call_On_My_Stack"
  44841. 018Dh "Get_Inst_V86_Int_Vec_Base"
  44842. 018Eh "_lstrcmpi"
  44843. 018Fh "_strupr"
  44844. 0190h "Log_Fault_Call_Out"
  44845. 0191h "_AtEventTime"
  44846. 0191h ...last service for Windows95 SP1
  44847. 811Ch unhook device service??? (called by KEYREMAP.VXD)
  44848. EAX = service ID (high word = VxD ID, low = service number)
  44849. ESI -> handler
  44850. SeeAlso: #01266,#01267,INT 2F/AX=1684h/BX=0001h
  44851. --------W-20----Vx0002-----------------------
  44852. INT 20 P - Microsoft Windows - DEBUG - VxD SERVICES
  44853. VxD = 0002h
  44854. Note: the desired VxD and service number are identified by the data
  44855. immediately following the INT 20 instruction, as in:
  44856. INT 20h
  44857. DW service number
  44858. DW VxD identifier
  44859. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01266,#01340
  44860. (Table 01266)
  44861. Values for DEBUG (VxD ID 0002h) service number:
  44862. 0000h get version
  44863. 0001h "DEBUG_Fault"
  44864. 0002h "DEBUG_CheckFault"
  44865. 0003h "_DEBUG_LoadSyms"
  44866. SeeAlso: #01265,#01267
  44867. --------W-20----Vx0003-----------------------
  44868. INT 20 P - Microsoft Windows - VPICD - VxD SERVICES
  44869. VxD = 0003h
  44870. Note: the desired VxD and service number are identified by the data
  44871. immediately following the INT 20 instruction, as in:
  44872. INT 20h
  44873. DW service number
  44874. DW VxD identifier
  44875. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01267,#01340
  44876. (Table 01267)
  44877. Values for VPICD (VxD ID 0003h) service number:
  44878. 0000h get version
  44879. 0001h virtualize IRQ
  44880. 0002h set interrupt request
  44881. 0003h clear interrupt request
  44882. 0004h physical EOI
  44883. 0005h get complete status
  44884. 0006h get status
  44885. 0007h test physical request
  44886. 0008h physically mask
  44887. 0009h physically unmask
  44888. 000Ah set automatic masking
  44889. 000Bh get IRQ complete status
  44890. 000Ch convert handle to IRQ
  44891. 000Dh convert IRQ to interrupt
  44892. 000Eh convert interrupt to IRQ
  44893. 000Fh call on hardware interrupt
  44894. 0010h force default owner
  44895. 0011h force default behavior
  44896. 0012h "VPICD_Auto_Mask_At_Inst_Swap"
  44897. 0013h "VPICD_Begin_Inst_Page_Swap"
  44898. 0014h "VPICD_End_Inst_Page_Swap"
  44899. 0015h "VPICD_Virtual_EOI"
  44900. 0016h "VPICD_Get_Virtualization_Count"
  44901. 0017h "VPICD_Post_Sys_Critical_Init"
  44902. 0018h "VPICD_VM_SlavePIC_Mask_Change"
  44903. SeeAlso: #01265,#01268,INT 2F/AX=1684h/BX=0003h
  44904. --------W-20----Vx0004-----------------------
  44905. INT 20 P - Microsoft Windows - VDMAD - VxD SERVICES
  44906. VxD = 0004h
  44907. Note: the desired VxD and service number are identified by the data
  44908. immediately following the INT 20 instruction, as in:
  44909. INT 20h
  44910. DW service number
  44911. DW VxD identifier
  44912. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  44913. (Table 01268)
  44914. Values for VDMAD (VxD ID 0004h) service number:
  44915. 0000h get version
  44916. 0001h virtualize channel
  44917. 0002h get region information
  44918. 0003h set region information
  44919. 0004h get virtual state
  44920. 0005h set virtual state
  44921. 0006h set physical state
  44922. 0007h mask channel
  44923. 0008h unmask channel
  44924. 0009h lock DMA region
  44925. 000Ah unlock DMA region
  44926. 000Bh scatter lock
  44927. 000Ch scatter unlock
  44928. 000Dh reserve buffer space
  44929. 000Eh request buffer
  44930. 000Fh release buffer
  44931. 0010h copy to buffer
  44932. 0011h copy from buffer
  44933. 0012h default handler
  44934. 0013h disable translation
  44935. 0014h enable translation
  44936. 0015h get EISA address mode
  44937. 0016h set EISA address mode
  44938. 0017h unlock DMA region (ND)
  44939. 0018h "VDMAD_Phys_Mask_Channel"
  44940. 0019h "VDMAD_Phys_Unmask_Channel"
  44941. 001Ah "VDMAD_Unvirtualize_Channel"
  44942. 001Bh "VDMAD_Set_IO_Address"
  44943. 001Ch "VDMAD_Get_Phys_Count"
  44944. 001Dh "VDMAD_Get_Phys_Status"
  44945. 001Eh "VDMAD_Get_Max_Phys_Page"
  44946. 001Fh "VDMAD_Set_Channel_Callbacks"
  44947. 0020h "VDMAD_Get_Virt_Count"
  44948. 0021h "VDMAD_Set_Virt_Count"
  44949. 0021h ...last service for Windows95 SP1
  44950. SeeAlso: #01267,#02646,#02683 at INT 2F/AX=1684h/BX=0444h
  44951. --------W-20----Vx0005-----------------------
  44952. INT 20 P - Microsoft Windows - VTD - VxD SERVICES
  44953. VxD = 0005h
  44954. Note: the desired VxD and service number are identified by the data
  44955. immediately following the INT 20 instruction, as in:
  44956. INT 20h
  44957. DW service number
  44958. DW VxD identifier
  44959. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  44960. (Table 01269)
  44961. Values for VTD (VxD ID 0005h) service number:
  44962. 0000h get version
  44963. 0001h update system clock
  44964. 0002h get interrupt period
  44965. 0003h begin minimum interrupt period
  44966. 0004h end minimum interrupt period
  44967. 0005h disable trapping
  44968. 0006h enable trapping
  44969. 0007h get real time
  44970. Return: EDX:EAX = time in 840ns units since Windows was started
  44971. 0008h "VTD_Get_Date_And_Time"
  44972. 0009h "VTD_Adjust_VM_Count"
  44973. 000Ah "VTD_Delay"
  44974. SeeAlso: #02646 at INT 2F/AX=1684h/BX=0005h
  44975. --------W-20----Vx0006-----------------------
  44976. INT 20 P - Microsoft Windows - V86MMGR - VxD SERVICES
  44977. VxD = 0006h
  44978. Note: the desired VxD and service number are identified by the data
  44979. immediately following the INT 20 instruction, as in:
  44980. INT 20h
  44981. DW service number
  44982. DW VxD identifier
  44983. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  44984. (Table 01270)
  44985. Values for V86MMGR (VxD ID 0006h) service number:
  44986. 00h get version
  44987. 01h allocate V86 pages
  44988. 02h set EMS and XMS limits
  44989. 03h get EMS and XMS limits
  44990. 04h set mapping information
  44991. 05h get mapping information
  44992. 06h Xlat API
  44993. 07h load client pointer
  44994. 08h allocate buffer
  44995. 09h free buffer
  44996. 0Ah get Xlat buffer state
  44997. 0Bh set Xlat buffer state
  44998. 0Ch get VM flat selector
  44999. 0Dh map pages
  45000. 0Eh free page map region
  45001. 0Fh _LocalGlobalReg
  45002. 10h get page status
  45003. 11h set local A20
  45004. 12h reset base pages
  45005. 13h set available mapped pages
  45006. 14h "V86MMGR_NoUMBInitCalls"
  45007. 15h "V86MMGR_Get_EMS_XMS_Avail"
  45008. 16h "V86MMGR_Toggle_HMA"
  45009. EAX = ???
  45010. 17h "V86MMGR_Dev_Init"
  45011. 18h "V86MMGR_Alloc_UM_Page"
  45012. SeeAlso: #02646,#01271,INT 2F/AX=1684h"DEVICE API"
  45013. --------W-20----Vx0007-----------------------
  45014. INT 20 P - Microsoft Windows - PageSwap - VxD SERVICES
  45015. VxD = 0007h
  45016. Note: the desired VxD and service number are identified by the data
  45017. immediately following the INT 20 instruction, as in:
  45018. INT 20h
  45019. DW service number
  45020. DW VxD identifier
  45021. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45022. (Table 01271)
  45023. Values for PageSwap (VxD ID 0007h) service number:
  45024. 00h get version
  45025. 01h test create
  45026. 02h create swap file
  45027. 03h destroy swap file
  45028. 04h in
  45029. 05h out
  45030. 06h test if I/O valid
  45031. 07h "Read_Or_Write"
  45032. 08h "Grow_File"
  45033. 09h "Init_File"
  45034. SeeAlso: #01270,#01272,#01273,#02648
  45035. --------W-20----Vx0009-----------------------
  45036. INT 20 P - Microsoft Windows - REBOOT - VxD SERVICES
  45037. VxD = 0009h
  45038. Note: the desired VxD and service number are identified by the data
  45039. immediately following the INT 20 instruction, as in:
  45040. INT 20h
  45041. DW service number
  45042. DW VxD identifier
  45043. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45044. (Table 01272)
  45045. Values for REBOOT (VxD ID 0009h) service number:
  45046. 00h get REBOOT version???
  45047. 01h ???
  45048. 02h ???
  45049. 03h ...last service for Windows95 SP1
  45050. SeeAlso: #01271,#01273,#02642
  45051. --------W-20----Vx000A-----------------------
  45052. INT 20 P - Microsoft Windows - VDD - VxD SERVICES
  45053. VxD = 000Ah
  45054. Note: the desired VxD and service number are identified by the data
  45055. immediately following the INT 20 instruction, as in:
  45056. INT 20h
  45057. DW service number
  45058. DW VxD identifier
  45059. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45060. (Table 01273)
  45061. Values for VDD (VxD ID 000Ah) service number:
  45062. 00h get version
  45063. 01h PIF state
  45064. 02h get GrabRtn
  45065. 03h hide cursor
  45066. 04h set VM type
  45067. 05h get ModTime
  45068. 06h set HCurTrk
  45069. 07h message clear screen
  45070. 08h message foreground color
  45071. 09h message background color
  45072. 0Ah message output text
  45073. 0Bh message set cursor position
  45074. 0Ch query access
  45075. 0Dh "VDD_Check_Update_Soon"
  45076. 0Eh "VDD_Get_Mini_Dispatch_Table"
  45077. 0Fh "VDD_Register_Virtual_Port"
  45078. DX = base I/O port number
  45079. CL = number of contiguous ports???
  45080. 10h "VDD_Get_VM_Info"
  45081. 11h "VDD_Get_Special_VM_IDs"
  45082. Return: ESI = ???
  45083. EDI = ???
  45084. 12h "VDD_Register_Extra_Screen_Selector"
  45085. 13h "VDD_Takeover_VGA_Port"
  45086. DX = VGA I/O port number (03C2h, etc.)
  45087. ECX -> routine to call on I/O access
  45088. Return: ECX -> previous handler (to be jumped to at end of new handler)
  45089. 14h ???
  45090. 15h ???
  45091. 16h ...last service for Windows95 SP1
  45092. SeeAlso: #01272,#01274,#02648
  45093. --------W-20----Vx000B-----------------------
  45094. INT 20 P - Microsoft Windows - VSD - VxD SERVICES
  45095. VxD = 000Bh
  45096. Note: the desired VxD and service number are identified by the data
  45097. immediately following the INT 20 instruction, as in:
  45098. INT 20h
  45099. DW service number
  45100. DW VxD identifier
  45101. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45102. (Table 01274)
  45103. Values for VSD (VxD ID 000Bh) service number:
  45104. 00h get version
  45105. 01h bell
  45106. 02h sound on
  45107. 03h "VSD_TakeSoundPort"
  45108. SeeAlso: #01273,#01275
  45109. --------W-20----Vx000C-----------------------
  45110. INT 20 P - Microsoft Windows - VMD / VMOUSE - VxD SERVICES
  45111. VxD = 000Ch
  45112. Note: the desired VxD and service number are identified by the data
  45113. immediately following the INT 20 instruction, as in:
  45114. INT 20h
  45115. DW service number
  45116. DW VxD identifier
  45117. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45118. (Table 01275)
  45119. Values for VMD / VMOUSE (VxD ID 000Ch) service number:
  45120. 0000h get version
  45121. 0001h set mouse type
  45122. 0002h get mouse owner
  45123. 0003h "VMOUSE_Post_Pointer_Message"
  45124. 0004h "VMOUSE_Set_Cursor_Proc"
  45125. 0005h "VMOUSE_Call_Cursor_Proc"
  45126. 0006h "VMOUSE_Set_Mouse_Data~Get_Mouse_Data"
  45127. 0007h "VMOUSE_Manipulate_Pointer_Message"
  45128. 0008h "VMOUSE_Set_Middle_Button"
  45129. 0009h "VMD_Set_Middle_Button"
  45130. 000Ah "VMD_Enable_Disable_Mouse_Events"
  45131. 000Bh "VMD_Post_Absolute_Pointer_Message"
  45132. ...last service for Windows95 SP1
  45133. SeeAlso: #01274,#01276,INT 2F/AX=1684h/BX=000Ch
  45134. --------W-20----Vx000D-----------------------
  45135. INT 20 P - Microsoft Windows - VKD - VxD SERVICES
  45136. VxD = 000Dh
  45137. Note: the desired VxD and service number are identified by the data
  45138. immediately following the INT 20 instruction, as in:
  45139. INT 20h
  45140. DW service number
  45141. DW VxD identifier
  45142. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45143. (Table 01276)
  45144. Values for VKD (VxD ID 000Dh) service number:
  45145. 0000h get version
  45146. 0001h define hotkey
  45147. 0002h remove hotkey
  45148. 0003h locally enable hotkey
  45149. 0004h locally disable hotkey
  45150. 0005h reflect hotkey
  45151. 0006h cancel hotkey state
  45152. 0007h force keys
  45153. 0008h get keyboard owner
  45154. 0009h define paste mode
  45155. 000Ah start pasting
  45156. 000Bh cancel paste
  45157. 000Ch get message key
  45158. 000Dh peek message key
  45159. 000Eh flush message key queue
  45160. 000Fh "VKD_Enable_Keyboard"
  45161. 0010h "VKD_Disable_Keyboard"
  45162. 0011h "VKD_Get_Shift_State"
  45163. 0012h "VKD_Filter_Keyboard_Input"
  45164. 0013h "VKD_Put_Byte"
  45165. 0014h "VKD_Set_Shift_State"
  45166. ...last service for Windows95 SP1
  45167. SeeAlso: #01275,#01277
  45168. --------W-20----Vx000E-----------------------
  45169. INT 20 P - Microsoft Windows - VCD - VxD SERVICES
  45170. VxD = 000Eh
  45171. Note: the desired VxD and service number are identified by the data
  45172. immediately following the INT 20 instruction, as in:
  45173. INT 20h
  45174. DW service number
  45175. DW VxD identifier
  45176. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45177. (Table 01277)
  45178. Values for VCD (VxD ID 000Eh) service number:
  45179. 0000h get version
  45180. 0001h set port global
  45181. 0002h get focus
  45182. 0003h virtualize port
  45183. 0004h "VCD_Acquire_Port"
  45184. 0005h "VCD_Free_Port"
  45185. 0006h "VCD_Acquire_Port_Windows_Style"
  45186. 0007h "VCD_Free_Port_Windows_Style"
  45187. 0008h "VCD_Steal_Port_Windows_Style"
  45188. 0009h "VCD_Find_COM_Index"
  45189. 000Ah "VCD_Set_Port_Global_Special"
  45190. 000Bh "VCD_Virtualize_Port_Dynamic"
  45191. 000Ch "VCD_Unvirtualize_Port_Dynamic"
  45192. ...last service for Windows95 SP1
  45193. SeeAlso: #01276,#01278
  45194. --------W-20----Vx0010-----------------------
  45195. INT 20 P - Microsoft Windows - BlockDev / IOS - VxD SERVICES
  45196. VxD = 0010h
  45197. Note: the desired VxD and service number are identified by the data
  45198. immediately following the INT 20 instruction, as in:
  45199. INT 20h
  45200. DW service number
  45201. DW VxD identifier
  45202. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45203. (Table 01278)
  45204. Values for BlockDev/IOS (VxD ID 0010h) service number:
  45205. 0000h get version
  45206. 0001h register device
  45207. 0002h find INT 13 drive
  45208. 0003h get device list
  45209. 0004h send command
  45210. 0005h command complete
  45211. 0006h synchronous command
  45212. 0007h "IOS_Register"
  45213. 0008h "IOS_Requestor_Service"
  45214. 0009h "IOS_Exclusive_Access"
  45215. 000Ah "IOS_Send_Next_Command"
  45216. 000Bh "IOS_Set_Async_Time_Out"
  45217. 000Ch "IOS_Signal_Semaphore_No_Switch"
  45218. 000Dh "IOSIdleStatus"
  45219. 000Eh "IOSMapIORSToI24"
  45220. 000Fh "IOSMapIORSToI21"
  45221. 0010h "PrintLog"
  45222. SeeAlso: #01277,#01279
  45223. --------W-20----Vx0011-----------------------
  45224. INT 20 P - Microsoft Windows - VMCPD - VxD SERVICES
  45225. VxD = 0011h
  45226. Note: the desired VxD and service number are identified by the data
  45227. immediately following the INT 20 instruction, as in:
  45228. INT 20h
  45229. DW service number
  45230. DW VxD identifier
  45231. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45232. (Table 01279)
  45233. Values for VMCPD (VxD ID 0011h) service number:
  45234. 0000h "VMCPD_Get_Version"
  45235. 0001h "VMCPD_Get_Virt_State"
  45236. 0002h "VMCPD_Set_Virt_State"
  45237. 0003h "VMCPD_Get_CR0_State"
  45238. 0004h "VMCPD_Set_CR0_State"
  45239. 0005h "VMCPD_Get_Thread_State"
  45240. 0006h "VMCPD_Set_Thread_State"
  45241. 0007h "_VMCPD_Get_FP_Instruction_Size"
  45242. 0008h "VMCPD_Set_Thread_Precision"
  45243. SeeAlso: #01278,#01280,#02642
  45244. --------W-20----Vx0012-----------------------
  45245. INT 20 P - Microsoft Windows - EBIOS - VxD SERVICES
  45246. VxD = 0012h
  45247. Note: the desired VxD and service number are identified by the data
  45248. immediately following the INT 20 instruction, as in:
  45249. INT 20h
  45250. DW service number
  45251. DW VxD identifier
  45252. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45253. (Table 01280)
  45254. Values for EBIOS (VxD ID 0012h) service number:
  45255. 00h get EBIOS version
  45256. 01h get unused memory
  45257. SeeAlso: #01279,#01281
  45258. --------W-20----Vx0014-----------------------
  45259. INT 20 P - Microsoft Windows - VNETBIOS - VxD SERVICES
  45260. VxD = 0014h
  45261. Note: the desired VxD and service number are identified by the data
  45262. immediately following the INT 20 instruction, as in:
  45263. INT 20h
  45264. DW service number
  45265. DW VxD identifier
  45266. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45267. (Table 01281)
  45268. Values for VNETBIOS (VxD ID 0014h) service number:
  45269. 00h get version
  45270. 01h register
  45271. 02h submit
  45272. 03h enum
  45273. 04h deregister
  45274. 05h register2
  45275. 06h map
  45276. 07h enum2
  45277. SeeAlso: #01280,#01282
  45278. --------W-20----Vx0015-----------------------
  45279. INT 20 P - Microsoft Windows - DOSMGR - VxD SERVICES
  45280. VxD = 0015h
  45281. Note: the desired VxD and service number are identified by the data
  45282. immediately following the INT 20 instruction, as in:
  45283. INT 20h
  45284. DW service number
  45285. DW VxD identifier
  45286. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45287. (Table 01282)
  45288. Values for DOSMGR (VxD ID 0015h) service number:
  45289. 0000h get version
  45290. 0001h set exec VM data
  45291. 0002h coyp VM drive state
  45292. 0003h execute VM
  45293. 0004h get InDOS pointer
  45294. 0005h add device
  45295. 0006h remove device
  45296. 0007h instance device
  45297. 0008h get DOS critical status
  45298. 0009h enable InDOS polling
  45299. 000Ah backfill allowed
  45300. 000Bh "LocalGlobalReg"
  45301. 000Ch "Init_UMB_Area"
  45302. 000Dh "Begin_V86_App"
  45303. 000Eh "End_V86_App"
  45304. 000Fh "Alloc_Local_Sys_VM_Mem"
  45305. EAX = number of paragraphs??? to allocate
  45306. 0010h "DOSMGR_Grow_CDSs"
  45307. 0011h "DOSMGR_Translate_Server_DOS_Call"
  45308. 0012h "DOSMGR_MMGR_PSP_Change_Notifier"
  45309. SeeAlso: #01281,#02656 at INT 2F/AX=1684h/BX=0015h
  45310. --------W-20----Vx0017-----------------------
  45311. INT 20 P - Microsoft Windows - SHELL - VxD SERVICES
  45312. VxD = 0017h
  45313. Note: the desired VxD and service number are identified by the data
  45314. immediately following the INT 20 instruction, as in:
  45315. INT 20h
  45316. DW service number
  45317. DW VxD identifier
  45318. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45319. (Table 01283)
  45320. Values for SHELL (VxD ID 0017h) service number:
  45321. 0000h get version
  45322. 0001h resolve contention
  45323. 0002h event
  45324. 0003h SYSMODAL message
  45325. 0004h message
  45326. 0005h get VM information
  45327. 0006h "_SHELL_PostMessage"
  45328. 0007h "_SHELL_WinExec"
  45329. 0008h "_SHELL_CallDll"
  45330. 0009h "SHELL_OpenClipboard"
  45331. 000Ah "SHELL_SetClipboardData"
  45332. 000Bh "SHELL_GetClipboardData"
  45333. 000Ch "SHELL_CloseClipboard"
  45334. 000Dh "_SHELL_Install_Taskman_Hooks"
  45335. 000Eh "SHELL_Hook_Properties"
  45336. 000Fh "SHELL_Unhook_Properties"
  45337. 0010h "SHELL_OEMKeyScan"
  45338. 0011h "SHELL_Update_User_Activity"
  45339. 0012h "_SHELL_UnhookSystemBroadcast"
  45340. 0013h "_SHELL_LocalAllocEx"
  45341. 0014h "_SHELL_LocalFree"
  45342. 0015h "_SHELL_LoadLibrary"
  45343. 0016h "_SHELL_FreeLibrary"
  45344. 0017h "_SHELL_GetProcAddress"
  45345. 0018h "_SHELL_CallDll"
  45346. 0019h "_SHELL_SuggestSingleMSDOSMode"
  45347. 001Ah "SHELL_CheckHotkeyAllowed"
  45348. 001Bh "_SHELL_GetDOSAppInfo"
  45349. SeeAlso: #01282,#01284,#02657 at INT 2F/AX=1684h/BX=0017h
  45350. --------W-20----Vx0018-----------------------
  45351. INT 20 P - Microsoft Windows - VMPoll - VxD SERVICES
  45352. VxD = 0018h
  45353. Note: the desired VxD and service number are identified by the data
  45354. immediately following the INT 20 instruction, as in:
  45355. INT 20h
  45356. DW service number
  45357. DW VxD identifier
  45358. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45359. (Table 01284)
  45360. Values for VMPoll (VxD ID 0018h) service number:
  45361. 00h get version
  45362. 01h enable/disable
  45363. 02h reset detection
  45364. 03h check idle
  45365. SeeAlso: #01269,#02657 at INT 2F/AX=1684h/BX=0017h
  45366. --------W-20----Vx001A-----------------------
  45367. INT 20 P - Microsoft Windows - DOSNET - VxD SERVICES
  45368. VxD = 001Ah
  45369. Note: the desired VxD and service number are identified by the data
  45370. immediately following the INT 20 instruction, as in:
  45371. INT 20h
  45372. DW service number
  45373. DW VxD identifier
  45374. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45375. (Table 01285)
  45376. Values for DOSNET (VxD ID 001Ah) service number:
  45377. 00h get version
  45378. 01h send FILESYSCHANGE
  45379. 02h do PSP adjust
  45380. SeeAlso: #01284,#01286
  45381. --------W-20----Vx001B-----------------------
  45382. INT 20 P - Microsoft Windows - VFD - VxD SERVICES
  45383. VxD = 001Bh
  45384. Note: the desired VxD and service number are identified by the data
  45385. immediately following the INT 20 instruction, as in:
  45386. INT 20h
  45387. DW service number
  45388. DW VxD identifier
  45389. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01286,#01340
  45390. (Table 01286)
  45391. Values for VFD (VxD ID 001Bh) service number:
  45392. 0000h get version
  45393. SeeAlso: #01285,#01287
  45394. --------W-20----Vx001C-----------------------
  45395. INT 20 P - Microsoft Windows - LoadHi - VxD SERVICES
  45396. VxD = 001Ch
  45397. Note: the desired VxD and service number are identified by the data
  45398. immediately following the INT 20 instruction, as in:
  45399. INT 20h
  45400. DW service number
  45401. DW VxD identifier
  45402. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45403. (Table 01287)
  45404. Values for LoadHi (VxD ID 001Ch) service number:
  45405. 00h get version
  45406. Return: CF clear
  45407. EAX = version (AH = major, AL = minor)
  45408. ESI -> ASCIZ signature "LoadHi"
  45409. SeeAlso: #01286,#01288
  45410. --------W-20----Vx0020-----------------------
  45411. INT 20 P - Microsoft Windows - Int13 - VxD SERVICES
  45412. VxD = 0020h
  45413. Note: the desired VxD and service number are identified by the data
  45414. immediately following the INT 20 instruction, as in:
  45415. INT 20h
  45416. DW service number
  45417. DW VxD identifier
  45418. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45419. (Table 01288)
  45420. Values for Int13 (VxD ID 0020h) service number:
  45421. 00h get version
  45422. 01h device registered
  45423. 02h translate VM interrupt
  45424. 03h hooking BIOS interrupt
  45425. 04h unhooking BIOS interrupt
  45426. SeeAlso: #01287,#01289
  45427. --------W-20----Vx0021-----------------------
  45428. INT 20 P - Microsoft Windows - PAGEFILE - VxD SERVICES
  45429. VxD = 0021h
  45430. Note: the desired VxD and service number are identified by the data
  45431. immediately following the INT 20 instruction, as in:
  45432. INT 20h
  45433. DW service number
  45434. DW VxD identifier
  45435. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45436. (Table 01289)
  45437. Values for PAGEFILE (VxD ID 0021h) service number:
  45438. 00h get version
  45439. 01h init file
  45440. 02h clean up
  45441. 03h grow file
  45442. 04h read or write
  45443. 05h cancel
  45444. 06h test I/O valid
  45445. 07h "Get_Size_Info"
  45446. 08h "Set_Async_Manager"
  45447. 09h "Call_Async_Manager"
  45448. SeeAlso: #01288,#02661 at INT 2F/AX=1684h/BX=0021h
  45449. --------W-20----Vx0026-----------------------
  45450. INT 20 P - Microsoft Windows - VPOWERD - VxD SERVICES
  45451. VxD = 0026h
  45452. Note: the desired VxD and service number are identified by the data
  45453. immediately following the INT 20 instruction, as in:
  45454. INT 20h
  45455. DW service number
  45456. DW VxD identifier
  45457. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45458. (Table 01290)
  45459. Values for VPOWERD (VxD ID 0026h) service number:
  45460. 00h get version
  45461. Return: CF clear
  45462. EAX = version (AH = major, AL = minor)
  45463. 01h get APM BIOS version
  45464. Return: CF clear
  45465. EAX = APM BIOS version
  45466. 02h get current power management level
  45467. Return: CF clear
  45468. EAX = power management level
  45469. 03h enable/disable power management (see INT 15/AX=5308h)
  45470. Return: EAX = error code (see #02665) or 00000000h if successful
  45471. 04h set power state (see INT 15/AX=5307h)
  45472. ???
  45473. Return: EAX = error code (see #02665) or 00000000h if successful
  45474. 05h set system power status
  45475. Return: EAX = error code (see #02665) or 00000000h if successful
  45476. 06h restore APM power-on defaults (see INT 15/AX=5309h)
  45477. Return: EAX = error code (see #02665) or 00000000h if successful
  45478. 07h get power status (see INT 15/AX=530Ah)
  45479. Return: ???
  45480. 08h get APM 1.1 power state (see INT 15/AX=530Ch)
  45481. Return: ???
  45482. 09h invoke OEM APM function
  45483. ??? -> bufer containing parameters for INT 15/AX=5380h
  45484. Return: EAX = error code (see #02665) or 00000000h if successful
  45485. buffer updated if successful
  45486. 0Ah register power handler
  45487. ???
  45488. Return: EAX = error code (see #02665) or 00000000h if successful
  45489. 0Bh deregister power handler
  45490. ???
  45491. Return: EAX = error code (see #02665) or 00000000h if successful
  45492. 0Ch Win32 get system power status
  45493. 0Dh Win32 set system power status
  45494. SeeAlso: #01289,#01291,INT 2F/AX=1684h/BX=0026h
  45495. --------W-20----Vx0027-----------------------
  45496. INT 20 P - Microsoft Windows - VXDLDR - VxD SERVICES
  45497. VxD = 0027h
  45498. Note: the desired VxD and service number are identified by the data
  45499. immediately following the INT 20 instruction, as in:
  45500. INT 20h
  45501. DW service number
  45502. DW VxD identifier
  45503. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45504. (Table 01291)
  45505. Values for VXDLDR (VxD ID 0027h) service number:
  45506. 0000h "VXDLDR_Get_Version"
  45507. 0001h "VXDLDR_LoadDevice"
  45508. 0002h "VXDLDR_UnloadDevice"
  45509. 0003h "VXDLDR_DevInitSucceeded"
  45510. 0004h "VXDLDR_DevInitFailed"
  45511. 0005h "VXDLDR_GetDeviceList"
  45512. 0006h "VXDLDR_UnloadMe"
  45513. 0007h "PELDR_LoadModule"
  45514. 0008h "PELDR_GetModuleHandle"
  45515. 0009h "PELDR_GetModuleUsage"
  45516. 000Ah "PELDR_GetEntryPoint"
  45517. 000Bh "PELDR_GetProcAddress"
  45518. 000Ch "PELDR_AddExportTable"
  45519. 000Dh "PELDR_RemoveExportTable"
  45520. 000Eh "PELDR_FreeModule"
  45521. 000Fh "VXDLDR_Notify"
  45522. 0010h "_PELDR_InitCompleted"
  45523. 0011h "_PELDR_LoadModuleEx"
  45524. SeeAlso: #01289,#01292
  45525. --------W-20----Vx0028-----------------------
  45526. INT 20 P - Microsoft Windows - NDIS - VxD SERVICES
  45527. VxD = 0028h
  45528. Note: the desired VxD and service number are identified by the data
  45529. immediately following the INT 20 instruction, as in:
  45530. INT 20h
  45531. DW service number
  45532. DW VxD identifier
  45533. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45534. (Table 01292)
  45535. Values for NDIS (VxD ID 0028h) service number:
  45536. 00h "NdisGetVersion"
  45537. 01h "NdisAllocateSpinLock"
  45538. 02h "NdisFreeSpinLock"
  45539. 03h "NdisAcquireSpinLock"
  45540. 04h "NdisReleaseSpinLock"
  45541. 05h "NdisOpenConfiguration"
  45542. 06h "NdisReadConfiguration"
  45543. 07h "NdisCloseConfiguration"
  45544. 08h "NdisReadEisaSlotInformation"
  45545. 09h "NdisReadMcaPosInformation"
  45546. 0Ah "NdisAllocateMemory"
  45547. 0Bh "NdisFreeMemory"
  45548. 0Ch "NdisSetTimer"
  45549. 0Dh "NdisCancelTimer"
  45550. 0Eh "NdisStallExecution"
  45551. 0Fh "NdisInitializeInterrupt"
  45552. 10h "NdisRemoveInterrupt"
  45553. 11h "NdisSynchronizeWithInterrupt"
  45554. 12h "NdisOpenFile"
  45555. 13h "NdisMapFile"
  45556. 14h "NdisUnmapFile"
  45557. 15h "NdisCloseFile"
  45558. 16h "NdisAllocatePacketPool"
  45559. 17h "NdisFreePacketPool"
  45560. 18h "NdisAllocatePacket"
  45561. 19h "NdisReinitializePacket"
  45562. 1Ah "NdisFreePacket"
  45563. 1Bh "NdisQueryPacket"
  45564. 1Ch "NdisAllocateBufferPool"
  45565. 1Dh "NdisFreeBufferPool"
  45566. 1Eh "NdisAllocateBuffer"
  45567. 1Fh "NdisCopyBuffer"
  45568. 20h "NdisFreeBuffer"
  45569. 21h "NdisQueryBuffer"
  45570. 22h "NdisGetBufferPhysicalAddress"
  45571. 23h "NdisChainBufferAtFront"
  45572. 24h "NdisChainBufferAtBack"
  45573. 25h "NdisUnchainBufferAtFront"
  45574. 26h "NdisUnchainBufferAtBack"
  45575. 27h "NdisGetNextBuffer"
  45576. 28h "NdisCopyFromPacketToPacket"
  45577. 29h "NdisRegisterProtocol"
  45578. 2Ah "NdisDeregisterProtocol"
  45579. 2Bh "NdisOpenAdapter"
  45580. 2Ch "NdisCloseAdapter"
  45581. 2Dh "NdisSend"
  45582. 2Eh "NdisTransferData"
  45583. 2Fh "NdisReset"
  45584. 30h "NdisRequest"
  45585. 31h "NdisInitializeWrapper"
  45586. 32h "NdisTerminateWrapper"
  45587. 33h "NdisRegisterMac"
  45588. 34h "NdisDeregisterMac"
  45589. 35h "NdisRegisterAdapter"
  45590. 36h "NdisDeregisterAdapter"
  45591. 37h "NdisCompleteOpenAdapter"
  45592. 38h "NdisCompleteCloseAdapter"
  45593. 39h "NdisCompleteSend"
  45594. 3Ah "NdisCompleteTransferData"
  45595. 3Bh "NdisCompleteReset"
  45596. 3Ch "NdisCompleteRequest"
  45597. 3Dh "NdisIndicateReceive"
  45598. 3Eh "NdisIndicateReceiveComplete"
  45599. 3Fh "NdisIndicateStatus"
  45600. 40h "NdisIndicateStatusComplete"
  45601. 41h "NdisCompleteQueryStatistics"
  45602. 42h "NdisEqualString"
  45603. 43h "NdisNetAddressStringToBinary"
  45604. 44h "NdisReadNetworkAddress"
  45605. 45h "NdisWriteErrorLogEntry"
  45606. 46h "C_MapPhysToLinear"
  45607. 47h "C_HeapFree"
  45608. 48h "NdisAllocateSharedMemory"
  45609. 49h "NdisFreeSharedMemory"
  45610. ...
  45611. 5Fh ...last service for Windows95 SP1
  45612. SeeAlso: #01291,#01293
  45613. --------W-20----Vx002A-----------------------
  45614. INT 20 P - Microsoft Windows - VWIN32 - VxD SERVICES
  45615. VxD = 002Ah
  45616. Note: the desired VxD and service number are identified by the data
  45617. immediately following the INT 20 instruction, as in:
  45618. INT 20h
  45619. DW service number
  45620. DW VxD identifier
  45621. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45622. (Table 01293)
  45623. Values for VWIN32 (VxD ID 002Ah) service number:
  45624. 0000h "VWin32_Get_Version"
  45625. 0001h "VWin32_Wake_For_Event"
  45626. 0002h "_VWIN32_QueueUserApc"
  45627. 0003h "_VWIN32_Get_Thread_Context"
  45628. 0004h "_VWIN32_Set_Thread_Context"
  45629. 0005h "_VWIN32_CopyMem"
  45630. 0006h "_VWIN32_BlockForTermination"
  45631. 0007h "_VWIN32_Emulate_Npx"
  45632. 0008h "_VWIN32_CheckDelayedNpxTrap"
  45633. 0009h "VWIN32_EnterCrstR0"
  45634. 000Ah "VWIN32_LeaveCrstR0"
  45635. 000Bh "_VWIN32_FaultPopup"
  45636. 000Ch "VWIN32_GetContextHandle"
  45637. 000Dh "VWIN32_GetCurrentProcessHandle"
  45638. 000Eh "_VWIN32_SetWin32Event"
  45639. 000Fh "_VWIN32_PulseWin32Event"
  45640. 0010h "_VWIN32_ResetWin32Event"
  45641. 0011h "_VWIN32_WaitSingleObject"
  45642. 0012h "_VWIN32_WaitMultipleObjects"
  45643. 0013h "_VWIN32_CreateRing0Thread"
  45644. 0014h "_VWIN32_CloseVxDHandle"
  45645. 0015h "VWIN32_ActiveTimeBiasSet"
  45646. 0016h "VWIN32_GetCurrentDirectory"
  45647. 0017h "VWIN32_BlueScreenPopup"
  45648. 0018h "VWIN32_TerminateApp"
  45649. 0019h "_VWIN32_QueueKernelAPC"
  45650. 001Ah "VWIN32_SysErrorBox"
  45651. 001Bh "_VWIN32_IsClientWin32"
  45652. 001Ch "VWIN32_IFSRIPWhenLev2Taken"
  45653. SeeAlso: #01292,#01294
  45654. --------W-20----Vx002B-----------------------
  45655. INT 20 P - Microsoft Windows - VCOMM - VxD SERVICES
  45656. VxD = 002Bh
  45657. Note: the desired VxD and service number are identified by the data
  45658. immediately following the INT 20 instruction, as in:
  45659. INT 20h
  45660. DW service number
  45661. DW VxD identifier
  45662. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45663. (Table 01294)
  45664. Values for VCOMM (VxD ID 002Bh) service number:
  45665. 0000h "VCOMM_Get_Version"
  45666. 0001h "_VCOMM_Register_Port_Driver"
  45667. 0002h "_VCOMM_Acquire_Port"
  45668. 0003h "_VCOMM_Release_Port"
  45669. 0004h "_VCOMM_OpenComm"
  45670. 0005h "_VCOMM_SetCommState"
  45671. 0006h "_VCOMM_GetCommState"
  45672. 0007h "_VCOMM_SetupComm"
  45673. 0008h "_VCOMM_TransmitCommChar"
  45674. 0009h "_VCOMM_CloseComm"
  45675. 000Ah "_VCOMM_GetCommQueueStatus"
  45676. 000Bh "_VCOMM_ClearCommError"
  45677. 000Ch "_VCOMM_GetModemStatus"
  45678. 000Dh "_VCOMM_GetCommProperties"
  45679. 000Eh "_VCOMM_EscapeCommFunction"
  45680. 000Fh "_VCOMM_PurgeComm"
  45681. 0010h "_VCOMM_SetCommEventMask"
  45682. 0011h "_VCOMM_GetCommEventMask"
  45683. 0012h "_VCOMM_WriteComm"
  45684. 0013h "_VCOMM_ReadComm"
  45685. 0014h "_VCOMM_EnableCommNotification"
  45686. 0015h "_VCOMM_GetLastError"
  45687. 0016h "_VCOMM_Steal_Port"
  45688. 0017h "_VCOMM_SetReadCallBack"
  45689. 0018h "_VCOMM_SetWriteCallBack"
  45690. 0019h "_VCOMM_GetSetCommTimeouts"
  45691. 001Ah "_VCOMM_SetWriteRequest"
  45692. 001Bh "_VCOMM_SetReadRequest"
  45693. 001Ch "_VCOMM_Dequeue_Request"
  45694. 001Dh "_VCOMM_Dequeue_Request"
  45695. 001Eh "_VCOMM_Enumerate_DevNodes"
  45696. 001Fh "VCOMM_Map_Win32DCB_To_Ring0"
  45697. 0020h "VCOMM_Map_Ring0DCB_To_Win32"
  45698. 0021h "_VCOMM_Get_Contention_Handler"
  45699. 0022h "_VCOMM_Map_Name_To_Resource"
  45700. SeeAlso: #01293,#01295
  45701. --------W-20----Vx002C-----------------------
  45702. INT 20 P - Microsoft Windows - SPOOLER - VxD SERVICES
  45703. VxD = 002Ch
  45704. Note: the desired VxD and service number are identified by the data
  45705. immediately following the INT 20 instruction, as in:
  45706. INT 20h
  45707. DW service number
  45708. DW VxD identifier
  45709. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45710. (Table 01295)
  45711. Values for SPOOLER (VxD ID 002Ch) service number:
  45712. 0000h get version???
  45713. 0001h ???
  45714. 0010h ...last service for Windows95 SP1
  45715. SeeAlso: #01294,#01296
  45716. --------W-20----Vx0032-----------------------
  45717. INT 20 P - Microsoft Windows - VSERVER - VxD SERVICES
  45718. VxD = 0032h
  45719. Note: the desired VxD and service number are identified by the data
  45720. immediately following the INT 20 instruction, as in:
  45721. INT 20h
  45722. DW service number
  45723. DW VxD identifier
  45724. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45725. (Table 01296)
  45726. Values for VSERVER (VxD ID 0032h) service number:
  45727. 00h get VSERVER version
  45728. Return: CF clear
  45729. EAX = version (AH = major, AL = minor)
  45730. EBX = ??? (00000000h)
  45731. 01h allocate ???
  45732. AX = ???
  45733. ESI = ???
  45734. Return: CF clear if successful
  45735. CF set on error (table full)
  45736. 02h NOP???
  45737. Return: EBX = 00000000h
  45738. 03h ???
  45739. Return: ZF clear
  45740. SeeAlso: #01295,#01297,INT 2F/AX=1684h/BX=0032h
  45741. --------W-20----Vx0033-----------------------
  45742. INT 20 P - Microsoft Windows - CONFIGMG - VxD SERVICES
  45743. VxD = 0033h
  45744. Note: the desired VxD and service number are identified by the data
  45745. immediately following the INT 20 instruction, as in:
  45746. INT 20h
  45747. DW service number
  45748. DW VxD identifier
  45749. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45750. (Table 01297)
  45751. Values for CONFIGMG (VxD ID 0033h) service number:
  45752. 0000h "_CONFIGMG_Get_Version"
  45753. 0001h "_CONFIGMG_Initialize"
  45754. 0002h "_CONFIGMG_Locate_DevNode"
  45755. 0003h "_CONFIGMG_Get_Parent"
  45756. 0004h "_CONFIGMG_Get_Child"
  45757. 0005h "_CONFIGMG_Get_Sibling"
  45758. 0006h "_CONFIGMG_Get_Device_ID_Size"
  45759. 0007h "_CONFIGMG_Get_Device_ID"
  45760. 0008h "_CONFIGMG_Get_Depth"
  45761. 0009h "_CONFIGMG_Get_Private_DWord"
  45762. 000Ah "_CONFIGMG_Set_Private_DWord"
  45763. 000Bh "_CONFIGMG_Create_DevNode"
  45764. 000Ch "_CONFIGMG_Query_Remove_SubTree"
  45765. 000Dh "_CONFIGMG_Remove_SubTree"
  45766. 000Eh "_CONFIGMG_Register_Device_Driver"
  45767. 000Fh "_CONFIGMG_Register_Enumerator"
  45768. 0010h "_CONFIGMG_Register_Arbitrator"
  45769. 0011h "_CONFIGMG_Deregister_Arbitrator"
  45770. 0012h "_CONFIGMG_Query_Arbitrator_Free_Size"
  45771. 0013h "_CONFIGMG_Query_Arbitrator_Free_Data"
  45772. 0014h "_CONFIGMG_Sort_NodeList"
  45773. 0015h "_CONFIGMG_Yield"
  45774. 0016h "_CONFIGMG_Lock"
  45775. 0017h "_CONFIGMG_Unlock"
  45776. 0018h "_CONFIGMG_Add_Empty_Log_Conf"
  45777. 0019h "_CONFIGMG_Free_Log_Conf"
  45778. 001Ah "_CONFIGMG_Get_First_Log_Conf"
  45779. 001Bh "_CONFIGMG_Get_Next_Log_Conf"
  45780. 001Ch "_CONFIGMG_Add_Res_Des"
  45781. 001Dh "_CONFIGMG_Modify_Res_Des"
  45782. 001Eh "_CONFIGMG_Free_Res_Des"
  45783. 001Fh "_CONFIGMG_Get_Next_Res_Des"
  45784. 0020h "_CONFIGMG_Get_Performance_Info"
  45785. 0021h "_CONFIGMG_Get_Res_Des_Data_Size"
  45786. 0022h "_CONFIGMG_Get_Res_Des_Data"
  45787. 0023h "_CONFIGMG_Process_Events_Now"
  45788. 0024h "_CONFIGMG_Create_Range_List"
  45789. 0025h "_CONFIGMG_Add_Range"
  45790. 0026h "_CONFIGMG_Delete_Range"
  45791. 0027h "_CONFIGMG_Test_Range_Available"
  45792. 0028h "_CONFIGMG_Dup_Range_List"
  45793. 0029h "_CONFIGMG_Free_Range_List"
  45794. 002Ah "_CONFIGMG_Invert_Range_List"
  45795. 002Bh "_CONFIGMG_Intersect_Range_List"
  45796. 002Ch "_CONFIGMG_First_Range"
  45797. 002Dh "_CONFIGMG_Next_Range"
  45798. 002Eh "_CONFIGMG_Dump_Range_List"
  45799. 002Fh "_CONFIGMG_Load_DLVxDs"
  45800. 0030h "_CONFIGMG_Get_DDBs"
  45801. 0031h "_CONFIGMG_Get_CRC_CheckSum"
  45802. 0032h "_CONFIGMG_Register_DevLoader"
  45803. 0033h "_CONFIGMG_Reenumerate_DevNode"
  45804. 0034h "_CONFIGMG_Setup_DevNode"
  45805. 0035h "_CONFIGMG_Reset_Children_Marks"
  45806. 0036h "_CONFIGMG_Get_DevNode_Status"
  45807. 0037h "_CONFIGMG_Remove_Unmarked_Children"
  45808. 0038h "_CONFIGMG_ISAPNP_To_CM"
  45809. 0039h "_CONFIGMG_CallBack_Device_Driver"
  45810. 003Ah "_CONFIGMG_CallBack_Enumerator"
  45811. 003Bh "_CONFIGMG_Get_Alloc_Log_Conf"
  45812. 003Ch "_CONFIGMG_Get_DevNode_Key_Size"
  45813. 003Dh "_CONFIGMG_Get_DevNode_Key"
  45814. 003Eh "_CONFIGMG_Read_Registry_Value"
  45815. 003Fh "_CONFIGMG_Write_Registry_Value"
  45816. 0040h "_CONFIGMG_Disable_DevNode"
  45817. 0041h "_CONFIGMG_Enable_DevNode"
  45818. 0042h "_CONFIGMG_Move_DevNode"
  45819. 0043h "_CONFIGMG_Set_Bus_Info"
  45820. 0044h "_CONFIGMG_Get_Bus_Info"
  45821. 0045h "_CONFIGMG_Set_HW_Prof"
  45822. 0046h "_CONFIGMG_Recompute_HW_Prof"
  45823. 0047h "_CONFIGMG_Query_Change_HW_Prof"
  45824. 0048h "_CONFIGMG_Get_Device_Driver_Private_DWord"
  45825. 0049h "_CONFIGMG_Set_Device_Driver_Private_DWord"
  45826. 004Ah "_CONFIGMG_Get_HW_Prof_Flags"
  45827. 004Bh "_CONFIGMG_Set_HW_Prof_Flags"
  45828. 004Ch "_CONFIGMG_Read_Registry_Log_Confs"
  45829. 004Dh "_CONFIGMG_Run_Detection"
  45830. 004Eh "_CONFIGMG_Call_At_Appy_Time"
  45831. 004Fh "_CONFIGMG_Fail_Change_HW_Prof"
  45832. 0050h "_CONFIGMG_Set_Private_Problem"
  45833. 0051h "_CONFIGMG_Debug_DevNode"
  45834. 0052h "_CONFIGMG_Get_Hardware_Profile_Info"
  45835. 0053h "_CONFIGMG_Register_Enumerator_Function"
  45836. 0054h "_CONFIGMG_Call_Enumerator_Function"
  45837. 0055h "_CONFIGMG_Add_ID"
  45838. 0056h "_CONFIGMG_Find_Range"
  45839. 0057h "_CONFIGMG_Get_Global_State"
  45840. 0058h "_CONFIGMG_Broadcast_Device_Change_Message"
  45841. 0059h "_CONFIGMG_Call_DevNode_Handler"
  45842. 005Ah "_CONFIGMG_Remove_Reinsert_All"
  45843. Note: the VxD services appear to be identical to the PM/V86 APIs on
  45844. INT 2F/AX=1684h
  45845. SeeAlso: #01296,#01299,INT 2F/AX=1684h/BX=0033h
  45846. --------W-20----Vx0034-----------------------
  45847. INT 20 P - Microsoft Windows - DWCFGMG.SYS - VxD SERVICES
  45848. VxD = 0034h
  45849. Note: the desired VxD and service number are identified by the data
  45850. immediately following the INT 20 instruction, as in:
  45851. INT 20h
  45852. DW service number
  45853. DW VxD identifier
  45854. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45855. (Table 01298)
  45856. Values for DWCFGMG.SYS (VxD ID 0034h) service number:
  45857. 00h "CM_GetVersion" get supported DDI version
  45858. Return: EAX = 00000000h if not installed
  45859. else
  45860. AH = major version number
  45861. AL = minor version number
  45862. EBX = number of devices controlled by DWCFGMG.SYS
  45863. 01h "CM_GetConfig" get device configuration
  45864. EBX = device index
  45865. EDI -> buffer for configuration information (see #02675)
  45866. Return: EAX = status (0000h successful, 0001h index out of range)
  45867. 02h "CM_LockConfig" lock device configuration
  45868. EDI -> configuration information (see #02675)
  45869. Return: EAX = status
  45870. 0000h successful
  45871. 0001h resource conflict
  45872. 0002h invalid request
  45873. 03h "CM_UnlockConfig" unlock device configuration
  45874. EDI -> configuration information (see #02675)
  45875. Return: EAX = status (0000h successful, 0001h invalid request)
  45876. 04h "CME_QueryResources"
  45877. 05h "CME_AllocResources"
  45878. 06h "CME_DeallocResources"
  45879. SeeAlso: INT 2F/AX=1684h/BX=0034h
  45880. --------W-20----Vx0036-----------------------
  45881. INT 20 P - Microsoft Windows - VFBACKUP - VxD SERVICES
  45882. VxD = 0036h
  45883. Note: the desired VxD and service number are identified by the data
  45884. immediately following the INT 20 instruction, as in:
  45885. INT 20h
  45886. DW service number
  45887. DW VxD identifier
  45888. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45889. (Table 01299)
  45890. Values for VFBACKUP (VxD ID 0036h) service number:
  45891. 0000h get version
  45892. Return: CF clear
  45893. EAX = version (AH = major, AL = minor)
  45894. 0001h "VFBACKUP_Lock_NEC"
  45895. 0002h "VFBACKUP_UnLock_NEC"
  45896. 0003h "VFBACKUP_Register_NEC"
  45897. 0004h "VFBACKUP_Register_VFD"
  45898. 0005h "VFBACKUP_Lock_All_Ports"
  45899. SeeAlso: #01297,#01300
  45900. --------W-20----Vx0037-----------------------
  45901. INT 20 P - Microsoft Windows - VMINI / ENABLE - VxD SERVICES
  45902. VxD = 0037h
  45903. Note: the desired VxD and service number are identified by the data
  45904. immediately following the INT 20 instruction, as in:
  45905. INT 20h
  45906. DW service number
  45907. DW VxD identifier
  45908. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45909. (Table 01300)
  45910. Values for VMINI / ENABLE (VxD ID 0037h) service number:
  45911. 0000h get version
  45912. Return: CF clear
  45913. EAX = version (AH = major, AL = minor)
  45914. 0001h "VMINI_Update"
  45915. ??? (performs VMMCall 1800Eh, then falls through to service 04h)
  45916. Return: EAX = system time???
  45917. 0002h "VMINI_Status"
  45918. get current ???
  45919. Return: EAX = ???
  45920. 0003h "VMINI_DisplayError" (schedules a global event via VMMCall 1800Eh)
  45921. Return: ???
  45922. 0004h "VMINI_SetTimeStamp" (performs VMMCall 100CFh)
  45923. Return: EAX = system time
  45924. 0005h "VMINI_Siren" (call ??? priority event)
  45925. Return: nothing
  45926. 0006h "VMINI_RegisterAccess" (set ??? / get ???)
  45927. EDI -> buffer containing data to copy into VxD and space for results
  45928. Return: EDI buffer updated
  45929. 0007h "VMINI_GetData"
  45930. EBX = ??? flags (bits 2,15,17,18 checked)
  45931. EDI -> ???
  45932. ???
  45933. Return: ???
  45934. 0008h "VMINI_ShutDownItem" (schedules a global event via VMMCall 1800Eh)
  45935. Return: ???
  45936. 0009h "VMINI_RegisterSK" (get ??? data)
  45937. EDI -> buffer for data (see #01301)
  45938. Return: EDI buffer updated if large enough
  45939. SeeAlso: #01299,#01302,#02677 at INT 2F/AX=1684h/BX=0037h
  45940. Format of ENABLE.VXD ??? data:
  45941. Offset Size Description (Table 01301)
  45942. 00h DWORD (ret) length of data, including this word
  45943. (call) length of buffer
  45944. 04h DWORD -> 24-byte (or larger) buffer
  45945. 08h DWORD -> 20-byte buffer
  45946. 0Ch DWORD -> 260-byte buffer
  45947. 10h DWORD -> 260-byte buffer
  45948. SeeAlso: #01300
  45949. --------W-20----Vx0038-----------------------
  45950. INT 20 P - Microsoft Windows - VCOND - VxD SERVICES
  45951. VxD = 0038h
  45952. Note: the desired VxD and service number are identified by the data
  45953. immediately following the INT 20 instruction, as in:
  45954. INT 20h
  45955. DW service number
  45956. DW VxD identifier
  45957. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45958. (Table 01302)
  45959. Values for VCOND (VxD ID 0038h) service number:
  45960. 0000h get VCOND version
  45961. Return: CF clear
  45962. EAX = version (AH = major, AL = minor)
  45963. 0001h "VCOND_Launch_ConApp_Inherited"
  45964. SeeAlso: #01303,#01300,#01304
  45965. (Table 01303)
  45966. Values for Windows95 VCOND (Vxd ID 0038h) Win32 service number:
  45967. 00h get VCOND version
  45968. Return: EAX = version (AH = major, AL = minor)
  45969. ...
  45970. 34h ...last Win32 service for Windows95 SP1
  45971. SeeAlso: #01302
  45972. --------W-20----Vx003D-----------------------
  45973. INT 20 P - Microsoft Windows - BIOS - VxD SERVICES
  45974. VxD = 003Dh
  45975. Note: the desired VxD and service number are identified by the data
  45976. immediately following the INT 20 instruction, as in:
  45977. INT 20h
  45978. DW service number
  45979. DW VxD identifier
  45980. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45981. (Table 01304)
  45982. Values for BIOS (VxD ID 003Dh) service number:
  45983. 00h get version???
  45984. 01h ???
  45985. 02h ???
  45986. 03h ???
  45987. SeeAlso: #01302,#01305
  45988. --------W-20----Vx003E-----------------------
  45989. INT 20 P - Microsoft Windows - WSOCK - VxD SERVICES
  45990. VxD = 003Eh
  45991. Note: the desired VxD and service number are identified by the data
  45992. immediately following the INT 20 instruction, as in:
  45993. INT 20h
  45994. DW service number
  45995. DW VxD identifier
  45996. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  45997. (Table 01305)
  45998. Values for WSOCK (VxD ID 003Eh) service number:
  45999. 00h get WSOCK version
  46000. Return: CF clear
  46001. AH = major version
  46002. AL = minor version
  46003. EAX high word = 0000h
  46004. 01h ???
  46005. EAX = ??? or 00000000h
  46006. Return: CF clear if successful
  46007. EAX = 00000000h
  46008. CF set on error
  46009. EAX = ???
  46010. 02h ???
  46011. EAX = ??? or 00000000h
  46012. Return: ???
  46013. 03h ???
  46014. 04h ...last service for Windows95 SP1
  46015. SeeAlso: #01304,#01306
  46016. --------W-20----Vx0040-----------------------
  46017. INT 20 P - Microsoft Windows - IFSMgr - VxD SERVICES
  46018. VxD = 0040h
  46019. Note: the desired VxD and service number are identified by the data
  46020. immediately following the INT 20 instruction, as in:
  46021. INT 20h
  46022. DW service number
  46023. DW VxD identifier
  46024. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46025. (Table 01306)
  46026. Values for IFSMGR (VxD ID 0040h) service number:
  46027. 00h get version
  46028. 01h "RegisterMount"
  46029. 02h "RegisterNet"
  46030. 03h "RegisterMailSlot"
  46031. 04h "Attach"
  46032. 05h "Detach"
  46033. 06h "Get_NetTime"
  46034. 07h "Get_DOSTime"
  46035. 08h "SetupConnection"
  46036. 09h "DerefConnection"
  46037. 0Ah "ServerDOSCall"
  46038. 0Bh "CompleteAsync"
  46039. 0Ch "RegisterHeap"
  46040. 0Dh "GetHeap"
  46041. 0Eh "RetHeap"
  46042. 0Fh "CheckHeap"
  46043. 10h "CheckHeapItem"
  46044. 11h "FillHeapSpare"
  46045. 12h "Block"
  46046. 13h "Wakeup"
  46047. 14h "Yield"
  46048. 15h "SchedEvent"
  46049. 16h "QueueEvent"
  46050. 17h "KillEvent"
  46051. 18h "FreeIOReg"
  46052. 19h "MakeMailSlot"
  46053. 1Ah "DeleteMailSlot"
  46054. 1Bh "WriteMailSlot"
  46055. 1Ch "PopUp"
  46056. 1Dh "printf"
  46057. 1Eh "AssertFailed"
  46058. 1Fh "LogEntry"
  46059. 20h "DebugMenu"
  46060. 21h "DebugVars"
  46061. 22h "GetDebugString"
  46062. 23h "GetDebugHexNum"
  46063. 24h "NetFunction"
  46064. 25h "DoDelAllUses"
  46065. 26h "SetErrString"
  46066. 27h "GetErrString"
  46067. 28h "SetReqHook"
  46068. 29h "SetPathHook"
  46069. 2Ah "UseAdd"
  46070. 2Bh "UseDel"
  46071. 2Ch "InitUseAdd"
  46072. 2Dh "ChangeDir"
  46073. 2Eh "DelAllUses"
  46074. 2Fh "CDROM_Attach"
  46075. 30h "CDROM_Detach"
  46076. 31h "Win32DupHandle"
  46077. 32h "Ring0_FileIO"
  46078. 33h "Toggle_Extended_File_Handle"
  46079. 34h "IFSMgr_GetDrive_Info"
  46080. 35h "IFSMgr_Ring0GetDriveInfo"
  46081. 36h "IFSMgr_BlockNoEvents"
  46082. 37h "IFSMgr_NetToDosTime"
  46083. 38h "IFSMgr_DosToNetTime"
  46084. 39h "IFSMgr_DosToWin32Time"
  46085. 3Ah "IFSMgr_Win32ToDosTime"
  46086. 3Bh "IFSMgr_NetToWin32Time"
  46087. 3Ch "IFSMgr_Win32ToNetTime"
  46088. 3Dh "IFSMgr_MetaMatch"
  46089. 3Eh "IFSMgr_TransMatch"
  46090. 3Fh "IFSMgr_CallProvider"
  46091. 40h "UniToBCS"
  46092. 41h "UniToBCSPath"
  46093. 42h "BCSToUni"
  46094. 43h "UniToUpper"
  46095. 44h "UniCharToOEM"
  46096. 45h "CreateBasis"
  46097. 46h "MatchBasisName"
  46098. 47h "AppendBasisTail"
  46099. 48h "FcbToShort"
  46100. 49h "ShortToFcb"
  46101. 4Ah "IFSMgr_ParsePath"
  46102. 4Bh "Query_PhysLock"
  46103. 4Ch "_VolFlush"
  46104. 4Dh "NotifyVolumeArrival"
  46105. 4Eh "NotifyVolumeRemoval"
  46106. 4Fh "QueryVolumeRemoval"
  46107. 50h "IFSMgr_FSDUnmountCFSD"
  46108. 51h "IFSMgr_GetConversionTablePtrs"
  46109. 52h "IFSMgr_CheckAccessConflict"
  46110. 53h "IFSMgr_LockFile"
  46111. 54h "IFSMgr_UnlockFile"
  46112. 55h "IFSMgr_RemoveLocks"
  46113. 56h "IFSMgr_CheckLocks"
  46114. 57h "IFSMgr_CountLocks"
  46115. 58h "IFSMgr_ReassignLockFileInst"
  46116. 59h "IFSMgr_UnassignLockList"
  46117. 5Ah "IFSMgr_MountChildVolume"
  46118. 5Bh "IFSMgr_UnmountChildVolume"
  46119. 5Ch "IFSMgr_SwapDrives"
  46120. 5Dh "IFSMgr_FSDMapFHtoIOREQ"
  46121. 5Eh "IFSMgr_FSDParsePath"
  46122. 5Fh "IFSMgr_FSDAttachSFT"
  46123. 60h "IFSMgr_GetTimeZoneBias"
  46124. 61h "IFSMgr_PNPEvent"
  46125. 62h "IFSMgr_RegisterCFSD"
  46126. 63h "IFSMgr_Win32MapExtendedHandleToSFT"
  46127. 64h "IFSMgr_DbgSetFileHandleLimit"
  46128. 65h "IFSMgr_Win32MapSFTToExtendedHandle"
  46129. 66h "IFSMgr_FSDGetCurrentDrive"
  46130. 67h "IFSMgr_InstallFileSystemApiHook"
  46131. 68h "IFSMgr_RemoveFileSystemApiHook"
  46132. 69h "IFSMgr_RunScheduledEvents"
  46133. 6Ah "IFSMgr_CheckDelResource"
  46134. 6Bh "IFSMgr_Win32GetVMCurdir"
  46135. 6Ch "IFSMgr_SetupFailedConnection"
  46136. 6Dh "_GetMappedErr"
  46137. 6Eh "ShortToLossyFcb"
  46138. 6Fh "IFSMgr_GetLockState"
  46139. 70h "BcsToBcs"
  46140. 71h "IFSMgr_SetLoopback"
  46141. 72h "IFSMgr_ClearLoopback"
  46142. 73h "IFSMgr_ParseOneElement"
  46143. 74h "BcsToBcsUpper"
  46144. SeeAlso: #01305,#01307
  46145. --------W-20----Vx0041-----------------------
  46146. INT 20 P - Microsoft Windows - VCDFSD - VxD SERVICES
  46147. VxD = 0041h
  46148. Note: the desired VxD and service number are identified by the data
  46149. immediately following the INT 20 instruction, as in:
  46150. INT 20h
  46151. DW service number
  46152. DW VxD identifier
  46153. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46154. (Table 01307)
  46155. Values for VCDFSD (VxD ID 0041h) service number:
  46156. 00h get VCDFSD version???
  46157. 01h ???
  46158. 02h ???
  46159. 03h ???
  46160. SeeAlso: #01306,#01308
  46161. --------W-20----Vx0048-----------------------
  46162. INT 20 P - Microsoft Windows - PERF - VxD SERVICES
  46163. VxD = 0048h
  46164. Note: the desired VxD and service number are identified by the data
  46165. immediately following the INT 20 instruction, as in:
  46166. INT 20h
  46167. DW service number
  46168. DW VxD identifier
  46169. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46170. (Table 01308)
  46171. Values for PERF (VxD ID 0048h) service number:
  46172. 00h get version
  46173. Return: CF clear
  46174. EAX = version (AH = major, AL = minor)
  46175. 01h "PERF_Server_Register"
  46176. (creates/sets a registry key for the server)
  46177. 02h "PERF_Server_Deregister"
  46178. end performance monitoring (deletes registry key for server)
  46179. 03h "PERF_Server_Add_Stat"
  46180. start performance monitoring (creates/sets a registry key)
  46181. 04h "PERF_Server_Remove_Stat"
  46182. end performance monitoring (deletes registry key)
  46183. SeeAlso: #01307,#01311,#01309
  46184. --------W-20----Vx004A-----------------------
  46185. INT 20 P - Microsoft Windows - MTRR - VxD SERVICES
  46186. VxD = 004Ah
  46187. Note: the desired VxD and service number are identified by the data
  46188. immediately following the INT 20 instruction, as in:
  46189. INT 20h
  46190. DW service number
  46191. DW VxD identifier
  46192. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46193. (Table 01309)
  46194. Values for MTRR (VxD ID 004Ah) service number:
  46195. 00h get version
  46196. 01h ??? (highest service defined for Win95B)
  46197. SeeAlso: #01308,#01310
  46198. --------W-20----Vx004B-----------------------
  46199. INT 20 P - Microsoft Windows - NTKERN - VxD SERVICES
  46200. VxD = 004Bh
  46201. Note: the desired VxD and service number are identified by the data
  46202. immediately following the INT 20 instruction, as in:
  46203. INT 20h
  46204. DW service number
  46205. DW VxD identifier
  46206. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46207. (Table 01310)
  46208. Values for NTKERN (VxD ID 004Bh) service number:
  46209. 00h get version???
  46210. ...
  46211. 08h ??? (highest service defined for Win95B)
  46212. SeeAlso: #01309,#01311
  46213. --------W-20----Vx011F-----------------------
  46214. INT 20 P - Microsoft Windows - VFLATD - VxD SERVICES
  46215. VxD = 011Fh
  46216. Note: the desired VxD and service number are identified by the data
  46217. immediately following the INT 20 instruction, as in:
  46218. INT 20h
  46219. DW service number
  46220. DW VxD identifier
  46221. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46222. (Table 01311)
  46223. Values for VFLATD (VxD ID 011Fh) service number:
  46224. 00h get VFLATD version???
  46225. 01h ???
  46226. SeeAlso: #01308,#01312
  46227. --------W-20----Vx0449-----------------------
  46228. INT 20 P - Microsoft Windows - vjoyd - VxD SERVICES
  46229. VxD = 0449h
  46230. Note: the desired VxD and service number are identified by the data
  46231. immediately following the INT 20 instruction, as in:
  46232. INT 20h
  46233. DW service number
  46234. DW VxD identifier
  46235. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46236. (Table 01312)
  46237. Values for vjoyd (VxD ID 0449h) service number:
  46238. 00h get vjoyd version???
  46239. 01h ???
  46240. SeeAlso: #01311,#01313
  46241. --------W-20----Vx044A-----------------------
  46242. INT 20 P - Microsoft Windows - mmdevldr - VxD SERVICES
  46243. VxD = 044Ah
  46244. Note: the desired VxD and service number are identified by the data
  46245. immediately following the INT 20 instruction, as in:
  46246. INT 20h
  46247. DW service number
  46248. DW VxD identifier
  46249. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46250. (Table 01313)
  46251. Values for mmdevldr (VxD ID 044Ah) service number:
  46252. 00h get mmdevldr version???
  46253. 01h ???
  46254. 02h ???
  46255. 03h ???
  46256. 04h ???
  46257. 05h ???
  46258. SeeAlso: #01312,#01314
  46259. --------W-20----Vx0480-----------------------
  46260. INT 20 P - Microsoft Windows - VNetSup - VxD SERVICES
  46261. VxD = 0480h
  46262. Note: the desired VxD and service number are identified by the data
  46263. immediately following the INT 20 instruction, as in:
  46264. INT 20h
  46265. DW service number
  46266. DW VxD identifier
  46267. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46268. (Table 01314)
  46269. Values for VNetSup (VxD ID 0480h) service number:
  46270. 00h get VNetSup version???
  46271. 01h ???
  46272. 02h ???
  46273. 03h ???
  46274. 04h ???
  46275. 05h ???
  46276. 06h ???
  46277. SeeAlso: #01313,#01315
  46278. --------W-20----Vx0481-----------------------
  46279. INT 20 P - Microsoft Windows - VREDIR - VxD SERVICES
  46280. VxD = 0481h
  46281. Note: the desired VxD and service number are identified by the data
  46282. immediately following the INT 20 instruction, as in:
  46283. INT 20h
  46284. DW service number
  46285. DW VxD identifier
  46286. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46287. (Table 01315)
  46288. Values for VREDIR (VxD ID 0481h) service number:
  46289. 0000h "VRedir_Get_Version"
  46290. 0001h "VRedir_Register"
  46291. 0002h "VRedir_MakeMailSlot"
  46292. 0003h "VRedir_DeleteMailSlot"
  46293. 0004h "VRedir_ServerEnum"
  46294. 0010h ...last service for Windows95 SP1
  46295. SeeAlso: #01314,#01316
  46296. --------W-20----Vx0483-----------------------
  46297. INT 20 P - Microsoft Windows - VSHARE - VxD SERVICES
  46298. VxD = 0483h
  46299. Note: the desired VxD and service number are identified by the data
  46300. immediately following the INT 20 instruction, as in:
  46301. INT 20h
  46302. DW service number
  46303. DW VxD identifier
  46304. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46305. (Table 01316)
  46306. Values for VSHARE (VxD ID 0483h) service number:
  46307. 00h get VSHARE version???
  46308. SeeAlso: #01315,#01317
  46309. --------W-20----Vx0487-----------------------
  46310. INT 20 P - Microsoft Windows - NWLINK - VxD SERVICES
  46311. VxD = 0487h
  46312. Note: the desired VxD and service number are identified by the data
  46313. immediately following the INT 20 instruction, as in:
  46314. INT 20h
  46315. DW service number
  46316. DW VxD identifier
  46317. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46318. (Table 01317)
  46319. Values for NWLINK (VxD ID 0487h) service number:
  46320. 00h get NWLINK version???
  46321. 01h ???
  46322. 06h ...last service for Windows95 SP1
  46323. SeeAlso: #01316,#01318,#02642
  46324. --------W-20----Vx0488-----------------------
  46325. INT 20 P - Microsoft Windows - VTDI - VxD SERVICES
  46326. VxD = 0488h
  46327. Note: the desired VxD and service number are identified by the data
  46328. immediately following the INT 20 instruction, as in:
  46329. INT 20h
  46330. DW service number
  46331. DW VxD identifier
  46332. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46333. (Table 01318)
  46334. Values for VTDI (VxD ID 0488h) service number:
  46335. 00h get VTDI version???
  46336. 01h ???
  46337. 08h get ???
  46338. seen called with DWORD -> ASCIZ "MSTCP" on stack, returning EAX=???
  46339. 0Dh ...last service for Windows95 SP1
  46340. SeeAlso: #01317,#01319
  46341. --------W-20----Vx0489-----------------------
  46342. INT 20 P - Microsoft Windows - VIP - VxD SERVICES
  46343. VxD = 0489h
  46344. Note: the desired VxD and service number are identified by the data
  46345. immediately following the INT 20 instruction, as in:
  46346. INT 20h
  46347. DW service number
  46348. DW VxD identifier
  46349. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46350. (Table 01319)
  46351. Values for VIP (VxD ID 0489h) service number:
  46352. 00h get VIP version???
  46353. 01h ???
  46354. 05h ???
  46355. 06h ???
  46356. returns EAX=0/1
  46357. 08h ...last service for Windows95 SP1
  46358. ---Frontier Technologies' FTCVIP---
  46359. 09h ???
  46360. returns EAX=1
  46361. SeeAlso: #01318,#01320
  46362. --------W-20----Vx048A-----------------------
  46363. INT 20 P - Microsoft Windows - MSTCP - VxD SERVICES
  46364. VxD = 048Ah
  46365. Note: the desired VxD and service number are identified by the data
  46366. immediately following the INT 20 instruction, as in:
  46367. INT 20h
  46368. DW service number
  46369. DW VxD identifier
  46370. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46371. (Table 01320)
  46372. Values for MSTCP (VxD ID 048Ah) service number:
  46373. 00h get MSTCP version???
  46374. SeeAlso: #01319,#01321
  46375. --------W-20----Vx048B-----------------------
  46376. INT 20 P - Microsoft Windows - VCACHE - VxD SERVICES
  46377. VxD = 048Bh
  46378. Note: the desired VxD and service number are identified by the data
  46379. immediately following the INT 20 instruction, as in:
  46380. INT 20h
  46381. DW service number
  46382. DW VxD identifier
  46383. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46384. (Table 01321)
  46385. Values for VCACHE (VxD ID 048Bh) service number:
  46386. 0000h "VCACHE_Get_Version"
  46387. 0001h "VCACHE_Register"
  46388. 0002h "VCACHE_GetSize"
  46389. 0003h "VCACHE_CheckAvail"
  46390. 0004h "VCACHE_FindBlock"
  46391. 0005h "VCACHE_FreeBlock"
  46392. 0006h "VCACHE_MakeMRU"
  46393. 0007h "VCACHE_Hold"
  46394. 0008h "VCACHE_Unhold"
  46395. 0009h "VCACHE_Enum"
  46396. 000Ah "VCACHE_TestHandle"
  46397. 000Bh "VCACHE_VerifySums"
  46398. 000Ch "VCACHE_RecalcSums"
  46399. 000Dh "VCACHE_TestHold"
  46400. 000Eh "VCACHE_GetStats"
  46401. 000Fh "VCache_Deregister"
  46402. 0010h "VCache_AdjustMinimum"
  46403. 0011h "VCache_SwapBuffers"
  46404. 0012h "VCache_RelinquishPage"
  46405. 0013h "VCache_UseThisPage"
  46406. 0014h "_VCache_CreateLookupCache"
  46407. 0015h "_VCache_CloseLookupCache"
  46408. 0016h "_VCache_DeleteLookupCache"
  46409. 0017h "_VCache_Lookup"
  46410. 0018h "_VCache_UpdateLookup"
  46411. SeeAlso: #01320,#01322
  46412. --------W-20----Vx048E-----------------------
  46413. INT 20 P - Microsoft Windows - NWREDIR - VxD SERVICES
  46414. VxD = 048Eh
  46415. Note: the desired VxD and service number are identified by the data
  46416. immediately following the INT 20 instruction, as in:
  46417. INT 20h
  46418. DW service number
  46419. DW VxD identifier
  46420. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46421. (Table 01322)
  46422. Values for NWREDIR (VxD ID 048Eh) service number:
  46423. 00h get NWREDIR version???
  46424. 01h ???
  46425. SeeAlso: #01321,#01323
  46426. --------W-20----Vx0491-----------------------
  46427. INT 20 P - Microsoft Windows - FILESEC - VxD SERVICES
  46428. VxD = 0491h
  46429. Note: the desired VxD and service number are identified by the data
  46430. immediately following the INT 20 instruction, as in:
  46431. INT 20h
  46432. DW service number
  46433. DW VxD identifier
  46434. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46435. (Table 01323)
  46436. Values for FILESEC (VxD ID 0491h) service number:
  46437. 00h get FILESEC version???
  46438. 01h ???
  46439. 10h ...last service for Windows95 SP1
  46440. SeeAlso: #01322,#01324
  46441. --------W-20----Vx0492-----------------------
  46442. INT 20 P - Microsoft Windows - NWSERVER - VxD SERVICES
  46443. VxD = 0492h
  46444. Note: the desired VxD and service number are identified by the data
  46445. immediately following the INT 20 instruction, as in:
  46446. INT 20h
  46447. DW service number
  46448. DW VxD identifier
  46449. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46450. (Table 01324)
  46451. Values for NWSERVER (VxD ID 0492h) service number:
  46452. 00h get NWSERVER version???
  46453. 01h ???
  46454. 02h ???
  46455. 03h ???
  46456. SeeAlso: #01323,#01325
  46457. --------W-20----Vx0493-----------------------
  46458. INT 20 P - Microsoft Windows - MSSP / NWSP - VxD SERVICES
  46459. VxD = 0493h
  46460. Note: the desired VxD and service number are identified by the data
  46461. immediately following the INT 20 instruction, as in:
  46462. INT 20h
  46463. DW service number
  46464. DW VxD identifier
  46465. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46466. (Table 01325)
  46467. Values for MSSP/NWSP (VxD ID 0493h) service number:
  46468. 00h get NSSP / NWSP version???
  46469. 01h ???
  46470. 06h ...last service for Windows95 SP1
  46471. SeeAlso: #01324,#01326
  46472. --------W-20----Vx0494-----------------------
  46473. INT 20 P - Microsoft Windows - NSCL - VxD SERVICES
  46474. VxD = 0494h
  46475. Note: the desired VxD and service number are identified by the data
  46476. immediately following the INT 20 instruction, as in:
  46477. INT 20h
  46478. DW service number
  46479. DW VxD identifier
  46480. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46481. (Table 01326)
  46482. Values for NSCL (VxD ID 0494h) service number:
  46483. 00h get NSCL version???
  46484. 01h ???
  46485. 02h ???
  46486. SeeAlso: #01325,#01327
  46487. --------W-20----Vx0495-----------------------
  46488. INT 20 P - Microsoft Windows - AFVXD - VxD SERVICES
  46489. VxD = 0495h
  46490. Note: the desired VxD and service number are identified by the data
  46491. immediately following the INT 20 instruction, as in:
  46492. INT 20h
  46493. DW service number
  46494. DW VxD identifier
  46495. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46496. (Table 01327)
  46497. Values for AFVXD (VxD ID 0495h) service number:
  46498. 00h get version
  46499. Return: CF clear
  46500. AX = version (AH = high, AL = low)
  46501. 01h ???
  46502. EAX -> ???
  46503. EBX -> ???
  46504. ECX = ???
  46505. Return: ???
  46506. 02h ???
  46507. EAX -> ???
  46508. Return: ???
  46509. SeeAlso: #01326,#01328
  46510. --------W-20----Vx0496-----------------------
  46511. INT 20 P - Microsoft Windows - NDIS2SUP - VxD SERVICES
  46512. VxD = 0496h
  46513. Note: the desired VxD and service number are identified by the data
  46514. immediately following the INT 20 instruction, as in:
  46515. INT 20h
  46516. DW service number
  46517. DW VxD identifier (see #02642)
  46518. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46519. (Table 01328)
  46520. Values for NDIS2SUP (VxD ID 0496h) service number:
  46521. 00h get NDIS2SUP version???
  46522. 01h ???
  46523. SeeAlso: #01327,#01329
  46524. --------W-20----Vx0498-----------------------
  46525. INT 20 P - Microsoft Windows - Splitter - VxD SERVICES
  46526. VxD = 0498h
  46527. Note: the desired VxD and service number are identified by the data
  46528. immediately following the INT 20 instruction, as in:
  46529. INT 20h
  46530. DW service number
  46531. DW VxD identifier (see #02642)
  46532. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46533. (Table 01329)
  46534. Values for Splitter (VxD ID 0498h) service number:
  46535. 00h get Splitter version
  46536. Return: CF clear
  46537. EAX = version (00000001h)
  46538. 01h ???
  46539. 02h ???
  46540. 03h hook/unhook VMM "hook device service" service
  46541. EAX = request (0 = unhook, nonzero = hook)
  46542. Return: if EAX nonzero on entry, Splitter's service 04h replaces VMM
  46543. service 0090h; otherwise, default handler is restored
  46544. 04h Splitter "hook device service" handler
  46545. SeeAlso: #01328,#01330
  46546. --------W-20----Vx0499-----------------------
  46547. INT 20 P - Microsoft Windows - PPPMAC - VxD SERVICES
  46548. VxD = 0499h
  46549. Note: the desired VxD and service number are identified by the data
  46550. immediately following the INT 20 instruction, as in:
  46551. INT 20h
  46552. DW service number
  46553. DW VxD identifier (see #02642)
  46554. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46555. (Table 01330)
  46556. Values for PPPMAC (VxD ID 0499h) service number:
  46557. 00h ???
  46558. 09h ...last service for Windows95 SP1
  46559. SeeAlso: #01329,#01331,#02642
  46560. --------W-20----Vx049A-----------------------
  46561. INT 20 P - Microsoft Windows - VDHCP - VxD SERVICES
  46562. VxD = 049Ah
  46563. Note: the desired VxD and service number are identified by the data
  46564. immediately following the INT 20 instruction, as in:
  46565. INT 20h
  46566. DW service number
  46567. DW VxD identifier (see #02642)
  46568. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46569. (Table 01331)
  46570. Values for VDHCP (VxD ID 049Ah) service number:
  46571. 00h get VDHCP version???
  46572. 01h ???
  46573. 02h ???
  46574. 03h ???
  46575. SeeAlso: #01330,#01332
  46576. --------W-20----Vx049B-----------------------
  46577. INT 20 P - Microsoft Windows - VNBT - VxD SERVICES
  46578. VxD = 049Bh
  46579. Note: the desired VxD and service number are identified by the data
  46580. immediately following the INT 20 instruction, as in:
  46581. INT 20h
  46582. DW service number
  46583. DW VxD identifier (see #02642)
  46584. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46585. (Table 01332)
  46586. Values for VNBT (VxD ID 049Bh) service number:
  46587. 00h get VNBT version???
  46588. SeeAlso: #01331,#01333
  46589. --------W-20----Vx049D-----------------------
  46590. INT 20 P - Microsoft Windows - LOGGER - VxD SERVICES
  46591. VxD = 049Dh
  46592. Note: the desired VxD and service number are identified by the data
  46593. immediately following the INT 20 instruction, as in:
  46594. INT 20h
  46595. DW service number
  46596. DW VxD identifier (see #02642)
  46597. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46598. (Table 01333)
  46599. Values for LOGGER (VxD ID 049Dh) service number:
  46600. 00h get LOGGER version???
  46601. 01h ???
  46602. 02h ???
  46603. 03h ???
  46604. 04h ???
  46605. SeeAlso: #01332,#01334
  46606. --------W-20----Vx097C-----------------------
  46607. INT 20 P - Microsoft Windows - PCCARD - VxD SERVICES
  46608. VxD = 097Ch
  46609. Note: the desired VxD and service number are identified by the data
  46610. immediately following the INT 20 instruction, as in:
  46611. INT 20h
  46612. DW service number
  46613. DW VxD identifier (see #02642)
  46614. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01334,#01340
  46615. (Table 01334)
  46616. Values for PCCARD (VxD ID 097Ch) service number:
  46617. 0000h "PCCARD_Get_Version"
  46618. 0001h "PCCARD_Card_Services"
  46619. SeeAlso: #01333,#01337
  46620. ----------20----Vx3048-----------------------
  46621. INT 20 P - Frontier Technologies ??? - VxD SERVICES
  46622. VxD = 3048h
  46623. Note: the desired VxD and service number are identified by the data
  46624. immediately following the INT 20 instruction, as in:
  46625. INT 20h
  46626. DW service number
  46627. DW VxD identifier
  46628. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01335
  46629. (Table 01335)
  46630. Values for ??? (VxD ID 3048h) service number:
  46631. 00h get version???
  46632. 03h ???
  46633. called with 5 DWORDs on stack, returns EAX=???, ECX nonzero on error
  46634. 04h ???
  46635. called with DWORD on stack, returns EAX=???, ECX nonzero on error
  46636. 06h ???
  46637. called with DWORD on stack, returns EAX=???, ECX nonzero on error
  46638. 07h ???
  46639. called with 3 DWORDs on stack, returns EAX=???, ECX nonzero on error
  46640. 0Bh ???
  46641. called with 2 DWORDs on stack, returns EAX=???, ECX nonzero on error
  46642. 0Ch ???
  46643. called with 2 DWORDs on stack, returns EAX=???, ECX nonzero on error
  46644. 0Dh ???
  46645. called with 6 DWORDs on stack, returns EAX=???, ECX nonzero on error
  46646. 1Ah ???
  46647. called with 3 DWORDs on stack
  46648. SeeAlso: #01336
  46649. ----------20----Vx3049-----------------------
  46650. INT 20 P - Frontier Technologies ??? - VxD SERVICES
  46651. VxD = 3049h
  46652. Note: the desired VxD and service number are identified by the data
  46653. immediately following the INT 20 instruction, as in:
  46654. INT 20h
  46655. DW service number
  46656. DW VxD identifier
  46657. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01336
  46658. (Table 01336)
  46659. Values for ??? (VxD ID 3049h) service number:
  46660. 00h get version???
  46661. 1Dh ???
  46662. called with 2 DWORDs on stack; returns EAX=???, ECX nonzero on error
  46663. 1Eh ???
  46664. called with 6 DWORDs on stack; returns EAX=???, ECX nonzero on error
  46665. SeeAlso: #01335
  46666. --------W-20----Vx3098-----------------------
  46667. INT 20 P - QEMM - VstlthD - VxD SERVICES
  46668. VxD = 3098h
  46669. Note: the desired VxD and service number are identified by the data
  46670. immediately following the INT 20 instruction, as in:
  46671. INT 20h
  46672. DW service number
  46673. DW VxD identifier
  46674. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46675. (Table 01337)
  46676. Values for VStlthD (VxD ID 3098h) service number:
  46677. 00h get version
  46678. Return: CF clear
  46679. EAX = version (AH = major, AL = BCD minor)
  46680. 01h ???
  46681. 02h get current ???
  46682. Return: CF clear
  46683. EDX = current value of ???
  46684. 03h ???
  46685. SeeAlso: #01334,#01338
  46686. --------W-20----Vx30F6-----------------------
  46687. INT 20 P - Microsoft Windows - WSVV - VxD SERVICES
  46688. VxD = 30F6h
  46689. Note: the desired VxD and service number are identified by the data
  46690. immediately following the INT 20 instruction, as in:
  46691. INT 20h
  46692. DW service number
  46693. DW VxD identifier
  46694. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46695. (Table 01338)
  46696. Values for WSVV (VxD ID 30F6h) service number:
  46697. 00h get WSVV version???
  46698. SeeAlso: #01337,#01339
  46699. --------W-20----Vx33FC-----------------------
  46700. INT 20 P - Microsoft Windows - APSIENUM - VxD SERVICES
  46701. VxD = 33FCh
  46702. Note: the desired VxD and service number are identified by the data
  46703. immediately following the INT 20 instruction, as in:
  46704. INT 20h
  46705. DW service number
  46706. DW VxD identifier
  46707. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46708. (Table 01339)
  46709. Values for ASPIENUM (VxD ID 33FCh) service number:
  46710. 00h get ASPIENUM version???
  46711. 01h ???
  46712. 02h ???
  46713. 03h ???
  46714. SeeAlso: #01338,#01340
  46715. --------W-20----Vx357E-----------------------
  46716. INT 20 P - Microsoft Windows - DSOUND - VxD SERVICES
  46717. VxD = 357Eh
  46718. Note: the desired VxD and service number are identified by the data
  46719. immediately following the INT 20 instruction, as in:
  46720. INT 20h
  46721. DW service number
  46722. DW VxD identifier
  46723. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46724. (Table 01340)
  46725. Values for DSOUND (VxD ID 357Eh) service number:
  46726. 00h get DSOUND version???
  46727. 01h ???
  46728. 02h ???
  46729. SeeAlso: #01339,#01341
  46730. --------W-20----Vx39E6-----------------------
  46731. INT 20 P - Microsoft Windows - A3D - VxD SERVICES
  46732. VxD = 39E6h
  46733. Note: the desired VxD and service number are identified by the data
  46734. immediately following the INT 20 instruction, as in:
  46735. INT 20h
  46736. DW service number
  46737. DW VxD identifier
  46738. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46739. (Table 01341)
  46740. Values for A3D (VxD ID 39E6h) service number:
  46741. 00h get version???
  46742. 01h ???
  46743. 02h ??? (highest service defined)
  46744. SeeAlso: #01340,#01342
  46745. --------W-20----Vx3BFD-----------------------
  46746. INT 20 P - Microsoft Windows - CWCPROXY - VxD SERVICES
  46747. VxD = 3BFDh
  46748. Note: the desired VxD and service number are identified by the data
  46749. immediately following the INT 20 instruction, as in:
  46750. INT 20h
  46751. DW service number
  46752. DW VxD identifier
  46753. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46754. (Table 01342)
  46755. Values for CWCPROXY (VxD ID 3BFDh) service number:
  46756. 00h get version???
  46757. ...
  46758. 03h ??? (highest service defined)
  46759. SeeAlso: #01341,#01343
  46760. --------W-20----Vx3C78-----------------------
  46761. INT 20 P - Microsoft Windows - VGARTD - VxD SERVICES
  46762. VxD = 3C78h
  46763. Note: the desired VxD and service number are identified by the data
  46764. immediately following the INT 20 instruction, as in:
  46765. INT 20h
  46766. DW service number
  46767. DW VxD identifier
  46768. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#01265,#01340
  46769. (Table 01343)
  46770. Values for VGARTD (VxD ID 3C78h) service number:
  46771. 00h get version???
  46772. ...
  46773. 05h ??? (highest service defined)
  46774. SeeAlso: #01342,#02642
  46775. --------G-21---------------------------------
  46776. INT 21 - COMTROL HOSTESS i/ISA DEBUGGER - GET SEGMENT FOR CONTROL PROGRAM USE
  46777. ???
  46778. Return: AX = first segment available for control program use
  46779. SeeAlso: INT 20"COMTROL",INT 22"COMTROL"
  46780. --------D-2100-------------------------------
  46781. INT 21 - DOS 1+ - TERMINATE PROGRAM
  46782. AH = 00h
  46783. CS = PSP segment
  46784. Notes: Microsoft recommends using INT 21/AH=4Ch for DOS 2+
  46785. this function sets the program's return code (ERRORLEVEL) to 00h
  46786. execution continues at the address stored in INT 22 after DOS performs
  46787. whatever cleanup it needs to do (restoring the INT 22,INT 23,INT 24
  46788. vectors from the PSP assumed to be located at offset 0000h in the
  46789. segment indicated by the stack copy of CS, etc.)
  46790. if the PSP is its own parent, the process's memory is not freed; if
  46791. INT 22 additionally points into the terminating program, the
  46792. process is effectively NOT terminated
  46793. not supported by MS Windows 3.0 DOSX.EXE DOS extender
  46794. SeeAlso: AH=26h,AH=31h,AH=4Ch,INT 20,INT 22
  46795. --------D-2101-------------------------------
  46796. INT 21 - DOS 1+ - READ CHARACTER FROM STANDARD INPUT, WITH ECHO
  46797. AH = 01h
  46798. Return: AL = character read
  46799. Notes: ^C/^Break are checked, and INT 23 executed if read
  46800. ^P toggles the DOS-internal echo-to-printer flag
  46801. ^Z is not interpreted, thus not causing an EOF if input is redirected
  46802. character is echoed to standard output
  46803. standard input is always the keyboard and standard output the screen
  46804. under DOS 1.x, but they may be redirected under DOS 2+
  46805. SeeAlso: AH=06h,AH=07h,AH=08h,AH=0Ah
  46806. --------v-21010F-----------------------------
  46807. INT 21 - VIRUS - "Susan" - INSTALLATION CHECK
  46808. AX = 010Fh
  46809. Return: AX = 7553h ("Su") if resident
  46810. SeeAlso: INT 16/AH=DDh"VIRUS",INT 21/AX=0B56h
  46811. --------D-2102-------------------------------
  46812. INT 21 - DOS 1+ - WRITE CHARACTER TO STANDARD OUTPUT
  46813. AH = 02h
  46814. DL = character to write
  46815. Return: AL = last character output (despite the official docs which state
  46816. nothing is returned) (at least DOS 2.1-7.0)
  46817. Notes: ^C/^Break are checked, and INT 23 executed if pressed
  46818. standard output is always the screen under DOS 1.x, but may be
  46819. redirected under DOS 2+
  46820. the last character output will be the character in DL unless DL=09h
  46821. on entry, in which case AL=20h as tabs are expanded to blanks
  46822. if standard output is redirected to a file, no error checks (write-
  46823. protected, full media, etc.) are performed
  46824. SeeAlso: AH=06h,AH=09h
  46825. --------D-2103-------------------------------
  46826. INT 21 - DOS 1+ - READ CHARACTER FROM STDAUX
  46827. AH = 03h
  46828. Return: AL = character read
  46829. Notes: keyboard checked for ^C/^Break, and INT 23 executed if detected
  46830. STDAUX is usually the first serial port
  46831. SeeAlso: AH=04h,INT 14/AH=02h,INT E0/CL=03h
  46832. --------D-2104-------------------------------
  46833. INT 21 - DOS 1+ - WRITE CHARACTER TO STDAUX
  46834. AH = 04h
  46835. DL = character to write
  46836. Notes: keyboard checked for ^C/^Break, and INT 23 executed if detected
  46837. STDAUX is usually the first serial port
  46838. if STDAUX is busy, this function will wait until it becomes free
  46839. SeeAlso: AH=03h,INT 14/AH=01h,INT E0/CL=04h
  46840. --------D-2105-------------------------------
  46841. INT 21 - DOS 1+ - WRITE CHARACTER TO PRINTER
  46842. AH = 05h
  46843. DL = character to print
  46844. Notes: keyboard checked for ^C/^Break, and INT 23 executed if detected
  46845. STDPRN is usually the first parallel port, but may be redirected under
  46846. DOS 2+
  46847. if the printer is busy, this function will wait
  46848. SeeAlso: INT 17/AH=00h
  46849. --------D-2106-------------------------------
  46850. INT 21 - DOS 1+ - DIRECT CONSOLE OUTPUT
  46851. AH = 06h
  46852. DL = character (except FFh)
  46853. Return: AL = character output (despite official docs which state nothing is
  46854. returned) (at least DOS 2.1-7.0)
  46855. Notes: does not check ^C/^Break
  46856. writes to standard output, which is always the screen under DOS 1.x,
  46857. but may be redirected under DOS 2+
  46858. SeeAlso: AH=02h,AH=09h
  46859. --------D-2106--DLFF-------------------------
  46860. INT 21 - DOS 1+ - DIRECT CONSOLE INPUT
  46861. AH = 06h
  46862. DL = FFh
  46863. Return: ZF set if no character available
  46864. AL = 00h
  46865. ZF clear if character available
  46866. AL = character read
  46867. Notes: ^C/^Break are NOT checked
  46868. if the returned character is 00h, the user pressed a key with an
  46869. extended keycode, which will be returned by the next call of this
  46870. function
  46871. this function reads from standard input, which is always the keyboard
  46872. under DOS 1.x, but may be redirected under DOS 2+
  46873. although the return of AL=00h when no characters are available is not
  46874. documented, some programs rely on this behavior
  46875. SeeAlso: AH=0Bh
  46876. --------D-2107-------------------------------
  46877. INT 21 - DOS 1+ - DIRECT CHARACTER INPUT, WITHOUT ECHO
  46878. AH = 07h
  46879. Return: AL = character read from standard input
  46880. Notes: does not check ^C/^Break
  46881. standard input is always the keyboard under DOS 1.x, but may be
  46882. redirected under DOS 2+
  46883. if the interim console flag is set (see AX=6301h), partially-formed
  46884. double-byte characters may be returned
  46885. SeeAlso: AH=01h,AH=06h,AH=08h,AH=0Ah
  46886. --------D-2108-------------------------------
  46887. INT 21 - DOS 1+ - CHARACTER INPUT WITHOUT ECHO
  46888. AH = 08h
  46889. Return: AL = character read from standard input
  46890. Notes: ^C/^Break are checked, and INT 23 executed if detected
  46891. standard input is always the keyboard under DOS 1.x, but may be
  46892. redirected under DOS 2+
  46893. if the interim console flag is set (see AX=6301h), partially-formed
  46894. double-byte characters may be returned
  46895. SeeAlso: AH=01h,AH=06h,AH=07h,AH=0Ah,AH=64h"DOS 3.2+"
  46896. --------D-2109-------------------------------
  46897. INT 21 - DOS 1+ - WRITE STRING TO STANDARD OUTPUT
  46898. AH = 09h
  46899. DS:DX -> '$'-terminated string
  46900. Return: AL = 24h (the '$' terminating the string, despite official docs which
  46901. state that nothing is returned) (at least DOS 2.1-7.0 and
  46902. NWDOS)
  46903. Notes: ^C/^Break are checked, and INT 23 is called if either pressed
  46904. standard output is always the screen under DOS 1.x, but may be
  46905. redirected under DOS 2+
  46906. under the FlashTek X-32 DOS extender, the pointer is in DS:EDX
  46907. SeeAlso: AH=02h,AH=06h"OUTPUT"
  46908. --------D-210A-------------------------------
  46909. INT 21 - DOS 1+ - BUFFERED INPUT
  46910. AH = 0Ah
  46911. DS:DX -> buffer (see #01344)
  46912. Return: buffer filled with user input
  46913. Notes: ^C/^Break are checked, and INT 23 is called if either detected
  46914. reads from standard input, which may be redirected under DOS 2+
  46915. if the maximum buffer size (see #01344) is set to 00h, this call returns
  46916. immediately without reading any input
  46917. SeeAlso: AH=0Ch,INT 2F/AX=4810h
  46918. Format of DOS input buffer:
  46919. Offset Size Description (Table 01344)
  46920. 00h BYTE maximum characters buffer can hold
  46921. 01h BYTE (call) number of chars from last input which may be recalled
  46922. (ret) number of characters actually read, excluding CR
  46923. 02h N BYTEs actual characters read, including the final carriage return
  46924. --------K-210A00-----------------------------
  46925. INT 21 - WCED v1.6+ - INSTALLATION CHECK
  46926. AX = 0A00h
  46927. DS:DX -> 6-byte buffer whose first two bytes must be 00h
  46928. Return: buffer offset 02h-05h filled with "Wced" if installed
  46929. Program: WCED is a free command-line editor and history utility by Stuart
  46930. Russell
  46931. SeeAlso: AH=FFh"CED"
  46932. --------D-210B-------------------------------
  46933. INT 21 - DOS 1+ - GET STDIN STATUS
  46934. AH = 0Bh
  46935. Return: AL = status
  46936. 00h if no character available
  46937. FFh if character is available
  46938. Notes: ^C/^Break are checked, and INT 23 is called if either pressed
  46939. standard input is always the keyboard under DOS 1.x, but may be
  46940. redirected under DOS 2+
  46941. if the interim console flag is set (see AX=6301h), this function
  46942. returns AL=FFh if a partially-formed double-byte character is
  46943. available
  46944. SeeAlso: AH=06h"INPUT",AX=4406h
  46945. --------v-210B56-----------------------------
  46946. INT 21 - VIRUS - "Perfume" - INSTALLATION CHECK
  46947. AX = 0B56h
  46948. Return: AX = 4952h if resident
  46949. SeeAlso: AX=0D20h,INT 12/AX=4350h/BX=4920h,INT 13/AH=F2h,INT 21/AX=010Fh
  46950. --------D-210C-------------------------------
  46951. INT 21 - DOS 1+ - FLUSH BUFFER AND READ STANDARD INPUT
  46952. AH = 0Ch
  46953. AL = STDIN input function to execute after flushing buffer
  46954. other registers as appropriate for the input function
  46955. Return: as appropriate for the specified input function
  46956. Note: if AL is not one of 01h,06h,07h,08h, or 0Ah, the buffer is flushed but
  46957. no input is attempted
  46958. SeeAlso: AH=01h,AH=06h"INPUT",AH=07h,AH=08h,AH=0Ah
  46959. --------D-210D-------------------------------
  46960. INT 21 - DOS 1+ - DISK RESET
  46961. AH = 0Dh
  46962. Return: (DOS 6 only) CF clear (earlier versions preserve CF)
  46963. Notes: This function writes all modified disk buffers to disk, but does not
  46964. update the directory information (that is only done when files are
  46965. closed or a SYNC call is issued)
  46966. SeeAlso: AX=5D01h,AX=710Dh,INT 13/AH=00h,INT 2F/AX=1120h
  46967. --------v-210D20-----------------------------
  46968. INT 21 - VIRUS - "Crazy Imp" - INSTALLATION CHECK
  46969. AX = 0D20h
  46970. Return: AX = 1971h if resident
  46971. SeeAlso: AX=0B56h,AX=1812h,AX=2C2Ch,AX=710Dh,AH=30h/DX=ABCDh
  46972. --------D-210E-------------------------------
  46973. INT 21 - DOS 1+ - SELECT DEFAULT DRIVE
  46974. AH = 0Eh
  46975. DL = new default drive (00h = A:, 01h = B:, etc)
  46976. Return: AL = number of potentially valid drive letters
  46977. Notes: under Novell NetWare, the return value is always 32, the number of
  46978. drives that NetWare supports
  46979. under DOS 3.0+, the return value is the greatest of 5, the value of
  46980. LASTDRIVE= in CONFIG.SYS, and the number of drives actually present
  46981. on a DOS 1.x/2.x single-floppy system, AL returns 2 since the floppy
  46982. may be accessed as either A: or B:
  46983. otherwise, the return value is the highest drive actually present
  46984. DOS 1.x supports a maximum of 16 drives, 2.x a maximum of 63 drives,
  46985. and 3+ a maximum of 26 drives
  46986. under Novell DOS 7, this function returns the correct LASTDRIVE value
  46987. even when the undocumented LASTDRIVE=27..32 directive was used in
  46988. CONFIG.SYS
  46989. "parse FCB" (see AH=29h) can be used to determine whether a drive
  46990. letter is valid
  46991. SeeAlso: AH=19h,AH=3Bh,AH=DBh
  46992. --------v-210E--DLAD-------------------------
  46993. INT 21 U - Novell DOS 7 - SDRes v27.03 - INSTALLATION CHECK
  46994. AH = 0Eh
  46995. DL = ADh
  46996. Return: AL = BAh if installed
  46997. Program: SDRes is the resident portion of the Search&Destroy antiviral by
  46998. Fifth Generation Systems, as bundled with Novell DOS 7
  46999. Note: SDRes will terminate programs which test for the presence of viruses
  47000. using interrupt-based installation calls, saying that the program
  47001. may be infected
  47002. SeeAlso: AH=0Eh/DL=AEh,AH=0Eh/DL=AFh,AH=4Ah/BX=00B6h,INT 13/AX=A759h
  47003. --------v-210E--DLAE-------------------------
  47004. INT 21 U - Novell DOS 7 - SDRes v27.03 - CLEAR ??? FLAG
  47005. AH = 0Eh
  47006. DL = AEh
  47007. SeeAlso: AH=0Eh/DL=ADh,AH=0Eh/DL=AFh,INT 13/AX=A759h
  47008. --------v-210E--DLAF-------------------------
  47009. INT 21 U - Novell DOS 7 - SDRes v27.03 - SET ??? FLAG
  47010. AH = 0Eh
  47011. DL = AFh
  47012. SeeAlso: AH=0Eh/DL=ADh,AH=0Eh/DL=AEh,INT 13/AX=A759h
  47013. --------D-210F-------------------------------
  47014. INT 21 - DOS 1+ - OPEN FILE USING FCB
  47015. AH = 0Fh
  47016. DS:DX -> unopened File Control Block (see #01345,#01346)
  47017. Return: AL = status
  47018. 00h successful
  47019. FFh file not found or access denied
  47020. Notes: (DOS 3.1+) file opened for read/write in compatibility mode
  47021. an unopened FCB has the drive, filename, and extension fields filled
  47022. in and all other bytes cleared
  47023. not supported by MS Windows 3.0 DOSX.EXE DOS extender
  47024. DR DOS checks password attached with AX=4303h
  47025. (FAT32 drive) this function will only succeed for creating a volume
  47026. label; FAT32 does not support FCBs for file I/O
  47027. BUG: APPEND for DOS 3.3+ corrupts DX if the file is not found
  47028. SeeAlso: AH=10h,AH=16h,AH=3Dh,AX=4303h
  47029. Format of File Control Block:
  47030. Offset Size Description (Table 01345)
  47031. 00h BYTE drive number (0 = default, 1 = A, etc)
  47032. FFh is not allowed (signals extended FCB, see #01346)
  47033. 01h 8 BYTEs blank-padded file name
  47034. 09h 3 BYTEs blank-padded file extension
  47035. 0Ch WORD current block number
  47036. 0Eh WORD logical record size
  47037. 10h DWORD file size
  47038. 14h WORD date of last write (see #01666 at AX=5700h)
  47039. 16h WORD time of last write (see #01665 at AX=5700h) (DOS 1.1+)
  47040. 18h 8 BYTEs reserved (see #01347,#01348,#01349,#01350,#01351)
  47041. 20h BYTE record within current block
  47042. 21h DWORD random access record number (if record size is > 64 bytes, high
  47043. byte is omitted)
  47044. SeeAlso: #01346
  47045. Format of Extended File Control Block (XFCB):
  47046. Offset Size Description (Table 01346)
  47047. 00h BYTE FFh signature for extended FCB
  47048. 01h 5 BYTEs reserved
  47049. 06h BYTE file attribute if extended FCB
  47050. 07h 36 BYTEs standard FCB (all offsets are shifted by seven bytes)
  47051. SeeAlso: #01246
  47052. Format of FCB reserved field for DOS 1.0:
  47053. Offset Size Description (Table 01347)
  47054. 16h WORD location in directory (if high byte = FFh, low byte is device
  47055. ID)
  47056. 18h WORD number of first cluster in file
  47057. 1Ah WORD current absolute cluster number on disk
  47058. 1Ch WORD current relative cluster number within file
  47059. (0 = first cluster of file, 1 = second cluster, etc.)
  47060. 1Eh BYTE dirty flag (00h = not dirty)
  47061. 1Fh BYTE unused
  47062. Format of FCB reserved field for DOS 1.10-1.25:
  47063. Offset Size Description (Table 01348)
  47064. 18h BYTE bit 7: set if logical device
  47065. bit 6: not dirty
  47066. bits 5-0: disk number or logical device ID
  47067. 19h WORD starting cluster number on disk
  47068. 1Bh WORD current absolute cluster number on disk
  47069. 1Dh WORD current relative cluster number within file
  47070. 1Fh BYTE unused
  47071. Format of FCB reserved field for DOS 2.x:
  47072. Offset Size Description (Table 01349)
  47073. 18h BYTE bit 7: set if logical device
  47074. bit 6: set if open???
  47075. bits 5-0: ???
  47076. 19h WORD starting cluster number on disk
  47077. 1Bh WORD ???
  47078. 1Dh BYTE ???
  47079. 1Eh BYTE ???
  47080. 1Fh BYTE ???
  47081. Format of FCB reserved field for DOS 3.x:
  47082. Offset Size Description (Table 01350)
  47083. 18h BYTE number of system file table entry for file
  47084. 19h BYTE attributes
  47085. bits 7,6: 00 = SHARE.EXE not loaded, disk file
  47086. 01 = SHARE.EXE not loaded, character device
  47087. 10 = SHARE.EXE loaded, remote file
  47088. 11 = SHARE.EXE loaded, local file or device
  47089. bits 5-0: low six bits of device attribute word
  47090. ---SHARE.EXE loaded, local file---
  47091. 1Ah WORD starting cluster of file on disk
  47092. 1Ch WORD (DOS 3.x) offset within SHARE of sharing record
  47093. (see #01637 at AH=52h)
  47094. 1Eh BYTE file attribute
  47095. 1Fh BYTE ???
  47096. ---SHARE.EXE loaded, remote file---
  47097. 1Ah WORD number of sector containing directory entry (see #01352)
  47098. 1Ch WORD relative cluster within file of last cluster accessed
  47099. 1Eh BYTE absolute cluster number of last cluster accessed
  47100. 1Fh BYTE ???
  47101. ---SHARE.EXE not loaded---
  47102. 1Ah BYTE (low byte of device attribute word AND 0Ch) OR open mode
  47103. 1Bh WORD starting cluster of file
  47104. 1Dh WORD number of sector containing directory entry (see #01352)
  47105. 1Fh BYTE number of directory entry within sector
  47106. Note: if FCB opened on character device, DWORD at 1Ah is set to the address
  47107. of the device driver header, then the BYTE at 1Ah is overwritten.
  47108. SeeAlso: #01646
  47109. Format of FCB reserved field for DOS 5.0:
  47110. Offset Size Description (Table 01351)
  47111. 18h BYTE number of system file table entry for file
  47112. 19h BYTE attributes
  47113. bits 7,6: 00 = SHARE.EXE not loaded, disk file
  47114. 01 = SHARE.EXE not loaded, character device
  47115. 10 = SHARE.EXE loaded, remote file
  47116. 11 = SHARE.EXE loaded, local file or device
  47117. bits 5-0: low six bits of device attribute word
  47118. ---SHARE.EXE loaded, local file---
  47119. 1Ah WORD starting cluster of file on disk
  47120. 1Ch WORD unique sequence number of sharing record
  47121. 1Eh BYTE file attributes
  47122. 1Fh BYTE unused???
  47123. ---SHARE.EXE loaded, remote file---
  47124. 1Ah WORD network handle
  47125. 1Ch DWORD network ID
  47126. ---SHARE not loaded, local device---
  47127. 1Ah DWORD pointer to device driver header (see #01646)
  47128. 1Eh 2 BYTEs unused???
  47129. ---SHARE not loaded, local file---
  47130. 1Ah BYTE extra info
  47131. bit 7: read-only attribute from SFT
  47132. bit 6: archive attribute from SFT
  47133. bits 5-0: high bits of sector number
  47134. 1Bh WORD starting cluster of file
  47135. 1Dh WORD low word of sector number containing directory entry
  47136. (see #01352)
  47137. 1Fh BYTE number of directory entry within sector
  47138. --------D-2110-------------------------------
  47139. INT 21 - DOS 1+ - CLOSE FILE USING FCB
  47140. AH = 10h
  47141. DS:DX -> File Control Block (see #01345)
  47142. Return: AL = status
  47143. 00h successful
  47144. FFh failed
  47145. Notes: a successful close forces all disk buffers used by the file to be
  47146. written and the directory entry to be updated
  47147. not supported by MS Windows 3.0 DOSX.EXE DOS extender
  47148. SeeAlso: AH=0Fh,AH=16h,AH=3Eh
  47149. --------D-2111-------------------------------
  47150. INT 21 - DOS 1+ - FIND FIRST MATCHING FILE USING FCB
  47151. AH = 11h
  47152. DS:DX -> unopened FCB (see #01345), may contain '?' wildcards
  47153. Return: AL = status
  47154. 00h successful
  47155. [DTA] unopened FCB for first matching file
  47156. FFh no matching filename, or bad FCB
  47157. Notes: the type of the returned FCB depends on whether the input FCB was a
  47158. normal or an extended FCB
  47159. the data returned in the DTA (disk transfer area) is actually the
  47160. drive number (or extended FCB header and drive number) followed by
  47161. the file's directory entry (see #01352); this format happens to be
  47162. compatible with an unopened FCB
  47163. for extended FCBs with search attribute 08h, the volume label (if any)
  47164. will be returned even if the current directory is not the root dir.
  47165. DOS 3.0+ also allows the '*' wildcard
  47166. the search FCB at DS:DX must not be modified if AH=12h will be used to
  47167. continue searching; DOS 3.3 has set the following parts of the FCB:
  47168. 0Ch BYTE ???
  47169. 0Dh WORD directory entry number of matching file
  47170. 0Fh WORD cluster number of current directory
  47171. 11h 4 BYTEs ???
  47172. 15h BYTE drive number (1=A:)
  47173. this function is used by many copy protection schemes to obtain the
  47174. starting cluster of a file
  47175. BUG: under Windows95, if a .EXE program ("MZ" header) rather than a true
  47176. .COM calls this function from a DOS box, the ten bytes of the
  47177. directory entry from 0Ch to 15h may be filled with zeros rather than
  47178. the additional file times
  47179. SeeAlso: AH=12h,AH=1Ah,AH=4Eh,INT 2F/AX=111Bh
  47180. Format of DOS directory entry:
  47181. Offset Size Description (Table 01352)
  47182. 00h 8 BYTEs blank-padded filename
  47183. first character is set to E5h for deleted files (05h for
  47184. pending delete files under Novell DOS / OpenDOS)
  47185. 08h 3 BYTEs blank-padded file extension
  47186. 0Bh BYTE attributes
  47187. 0Ch 10 BYTEs (MS-DOS 1.0-6.22) reserved
  47188. (DR DOS) used to store file password / owner (see #01354)
  47189. (see also INT 21/AX=4302h)
  47190. (Novell DOS 7) DELWATCH data (see #01354)
  47191. (MS-DOS 7/Windows95) additional file times (see #01353)
  47192. 16h WORD time of creation or last update (see #01665 at AX=5700h)
  47193. 18h WORD date of creation or last update (see #01666 at AX=5700h)
  47194. 1Ah WORD starting cluster number (see also AX=440Dh/CX=0871h)
  47195. (may not be set in INT 21/AH=11h return data for FAT32 drives)
  47196. 1Ch DWORD file size
  47197. SeeAlso: #01355,#02628,#02629
  47198. Format of MS-DOS 7/Windows95 additional file times:
  47199. Offset Size Description (Table 01353)
  47200. 00h BYTE reserved
  47201. 01h BYTE 10-millisecond units past creation time below
  47202. 02h WORD file creation time
  47203. 04h WORD file creation date
  47204. 06h WORD last-access date
  47205. 08h WORD (FAT32) high word of starting cluster number
  47206. Note: this data is stored beginning at offset 0Ch in a standard directory
  47207. entry
  47208. SeeAlso: #01352
  47209. Format of DR DOS 6/Novell DOS 7 additional file information:
  47210. Offset Size Description (Table 01354)
  47211. 0Ch BYTE reserved (00h)
  47212. 0Dh BYTE first character of original filename for deleted file
  47213. 0Eh WORD encrypted file/directory password
  47214. 10h WORD reserved (00h)
  47215. (Novell DOS 7 DELWATCH) original file time
  47216. cleared when file is undeleted or purged
  47217. 12h WORD (DR DOS 6) file owner ID
  47218. (Novell DOS 7 DELWATCH) original file date
  47219. cleared when file is undeleted or purged
  47220. 14h WORD single/multiuser file/directory access rights (see AX=4302h)
  47221. ---deleted files---
  47222. 16h WORD (Novell DOS 7 DELWATCH) time of deletion
  47223. 18h WORD (Novell DOS 7 DELWATCH) date of deletion
  47224. Note: offsets are within the full directory entry
  47225. SeeAlso: #01352
  47226. Format of MS-DOS 7/Windows95 long-filename directory entry:
  47227. Offset Size Description (Table 01355)
  47228. 00h BYTE LFN record sequence and flags
  47229. bits 5-0: sequence number
  47230. bit 6: set if last long-filename record for file
  47231. bit 7: set if file deleted
  47232. 01h 10 BYTEs long filename, first part
  47233. 0Bh BYTE 0Fh (otherwise impossible file attribute, used as signature)
  47234. 0Ch BYTE reserved??? (00h)
  47235. 0Dh BYTE checksum for short filename
  47236. 0Eh 12 BYTEs long filename, second part
  47237. 1Ah WORD first cluster number (always 0000h for LFN records)
  47238. 1Ch 4 BYTEs long filename, third part
  47239. Notes: long-filename entries are always stored in the directory just prior
  47240. to the short-name entry for a file
  47241. multiple LFN records are used if the long filename does not fit into
  47242. a single record
  47243. the short-filename checksum byte is computed by adding up the
  47244. eleven bytes of the short filename, rotating the intermediate
  47245. sum right one bit before adding the next character
  47246. the long filename is encoded as 16-bit Unicode characters; for most
  47247. filenames, this appears in the directory as the ASCII character
  47248. followed by 00h
  47249. SeeAlso: #01352,INT 21/AX=5704h,INT 21/AH=71h
  47250. --------D-2112-------------------------------
  47251. INT 21 - DOS 1+ - FIND NEXT MATCHING FILE USING FCB
  47252. AH = 12h
  47253. DS:DX -> unopened FCB (see #01345)
  47254. Return: AL = status
  47255. 00h successful
  47256. Disk Transfer Area filled with unopened FCB
  47257. FFh no more matching filenames
  47258. Note: (see AH=11h)
  47259. assumes that successful FindFirst executed on search FCB before call
  47260. SeeAlso: AH=1Ah,AH=4Fh,INT 2F/AX=111Ch
  47261. --------D-2113-------------------------------
  47262. INT 21 - DOS 1+ - DELETE FILE USING FCB
  47263. AH = 13h
  47264. DS:DX -> unopened FCB (see #01345), filename filled with template for
  47265. deletion ('?' wildcards allowed)
  47266. Return: AL = status
  47267. 00h one or more files successfully deleted
  47268. FFh no matching files or all were read-only or locked
  47269. Notes: DOS 1.25+ deletes everything in the current directory (including
  47270. subdirectories) and sets the first byte of the name to 00h (entry
  47271. never used) instead of E5h if called on an extended FCB with
  47272. filename '???????????' and bits 0-4 of the attribute set (bits 1 and
  47273. 2 for DOS 1.x). This may have originally been an optimization to
  47274. minimize directory searching after a mass deletion (DOS 1.25+ stop
  47275. the directory search upon encountering a never-used entry), but can
  47276. corrupt the filesystem under DOS 2+ because subdirectories are
  47277. removed without deleting the files they contain.
  47278. currently-open files should not be deleted
  47279. MS-DOS allows deletion of read-only files with an extended FCB, whereas
  47280. Novell NetWare, DR DOS 6, and Novell DOS 7/OpenDOS 7.01 do not
  47281. this function generates a trap "D" under OS/2 v4.x (Warp4) when called
  47282. on an HPFS partition with a wildcard in the filename; it operates
  47283. correctly on FAT partitions and when called without wildcards
  47284. SeeAlso: AH=41h,INT 2F/AX=1113h
  47285. --------D-2114-------------------------------
  47286. INT 21 - DOS 1+ - SEQUENTIAL READ FROM FCB FILE
  47287. AH = 14h
  47288. DS:DX -> opened FCB (see #01345)
  47289. Return: AL = status
  47290. 00h successful
  47291. 01h end of file (no data)
  47292. 02h segment wrap in DTA
  47293. 03h end of file, partial record read
  47294. Disk Tranfer Area filled with record read from file
  47295. Notes: reads a record of the size specified in the FCB beginning at the
  47296. current file position, then updates the current block and current
  47297. record fields in the FCB
  47298. if a partial record was read, it is zero-padded to the full size
  47299. not supported by MS Windows 3.0 DOSX.EXE DOS extender
  47300. SeeAlso: AH=0Fh,AH=15h,AH=1Ah,AH=3Fh"DOS",INT 2F/AX=1108h
  47301. --------D-2115-------------------------------
  47302. INT 21 - DOS 1+ - SEQUENTIAL WRITE TO FCB FILE
  47303. AH = 15h
  47304. DS:DX -> opened FCB (see #01345)
  47305. Disk Tranfer Area contains record to be written
  47306. Return: AL = status
  47307. 00h successful
  47308. 01h disk full
  47309. 02h segment wrap in DTA
  47310. Notes: writes a record of the size specified in the FCB beginning at the
  47311. current file position, then updates the current block and current
  47312. record fields in the FCB
  47313. if less than a full sector is written, the data is placed in a DOS
  47314. buffer to be written out at a later time
  47315. not supported by MS Windows 3.0 DOSX.EXE DOS extender
  47316. SeeAlso: AH=0Fh,AH=14h,AH=1Ah,AH=40h,INT 2F/AX=1109h
  47317. --------D-2116-------------------------------
  47318. INT 21 - DOS 1+ - CREATE OR TRUNCATE FILE USING FCB
  47319. AH = 16h
  47320. DS:DX -> unopened FCB (see #01345), wildcards not allowed
  47321. Return: AL = status
  47322. 00h successful
  47323. FFh directory full or file exists and is read-only or locked
  47324. Notes: if file already exists, it is truncated to zero length
  47325. if an extended FCB is used, the file is given the attribute in the
  47326. FCB; this is how to create a volume label in the disk's root dir
  47327. not supported by MS Windows 3.0 DOSX.EXE DOS extender
  47328. (FAT32 drive) this function will only succeed for creating a volume
  47329. label; FAT32 does not support FCBs for file I/O
  47330. SeeAlso: AH=0Fh,AH=10h,AH=3Ch
  47331. --------D-2117-------------------------------
  47332. INT 21 - DOS 1+ - RENAME FILE USING FCB
  47333. AH = 17h
  47334. DS:DX -> modified FCB (see also #01345)
  47335. the old filename ('?' wildcards OK) is in the standard location
  47336. while the new filename ('?' wildcards OK, no drive) is stored
  47337. in the 11 bytes beginning at offset 11h
  47338. Return: AL = status
  47339. 00h successfully renamed
  47340. FFh no matching files,file is read-only, or new name already exists
  47341. Notes: subdirectories may be renamed using an extended FCB with the
  47342. appropriate attribute, as may volume labels
  47343. DR DOS checks password attached with AX=4303h before permitting rename
  47344. SeeAlso: AH=0Fh,AH=13h,AX=4303h,AH=56h,INT 2F/AX=1111h
  47345. --------D-2118-------------------------------
  47346. INT 21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY
  47347. AH = 18h
  47348. Return: AL = 00h
  47349. Note: corresponds to the CP/M BDOS function "get bit map of logged drives",
  47350. which is meaningless under MS-DOS
  47351. SeeAlso: AH=1Dh,AH=1Eh,AH=20h,AX=4459h,INT 60/DI=0513h
  47352. --------v-211812------------------------
  47353. INT 21 - VIRUS - "Tasha Yar" - INSTALLATION CHECK
  47354. AX = 1812h
  47355. Return: AL = 00h if resident
  47356. DX = 4310h if resident
  47357. SeeAlso: INT 21/AX=0B56h"VIRUS",INT 21/AX=187Fh,INT 21/AX=2C2Ch"VIRUS"
  47358. --------v-21187FBX4453-----------------------
  47359. INT 21 - VIRUS - "DS-3783" -INSTALLATION CHECK
  47360. AX = 187Fh
  47361. BX = 4453h
  47362. Return: BX = 87A1h if resident
  47363. SeeAlso: AX=1812h"VIRUS",AX=18FFh"VIRUS"
  47364. --------v-2118FF-----------------------------
  47365. INT 21 - VIRUS - "Pathogen:SMEG" - INSTALLATION CHECK
  47366. AX = 18FFh
  47367. Return: AX = E701h if resident
  47368. SeeAlso: INT 21/AX=1812h"VIRUS",INT 21/AX=2080h"VIRUS"
  47369. --------D-2119-------------------------------
  47370. INT 21 - DOS 1+ - GET CURRENT DEFAULT DRIVE
  47371. AH = 19h
  47372. Return: AL = drive (00h = A:, 01h = B:, etc)
  47373. Note: Novell NetWare uses the fact that DOS 2.x COMMAND.COM issues this call
  47374. from a particular location every time it starts a command to
  47375. determine when to issue an automatic EOJ
  47376. SeeAlso: AH=0Eh,AH=47h,AH=BBh
  47377. --------D-211A-------------------------------
  47378. INT 21 - DOS 1+ - SET DISK TRANSFER AREA ADDRESS
  47379. AH = 1Ah
  47380. DS:DX -> Disk Transfer Area (DTA)
  47381. Notes: the DTA is set to PSP:0080h when a program is started
  47382. under the FlashTek X-32 DOS extender, the pointer is in DS:EDX
  47383. SeeAlso: AH=11h,AH=12h,AH=2Fh,AH=4Eh,AH=4Fh
  47384. --------D-211B-------------------------------
  47385. INT 21 - DOS 1+ - GET ALLOCATION INFORMATION FOR DEFAULT DRIVE
  47386. AH = 1Bh
  47387. Return: AL = sectors per cluster (allocation unit)
  47388. CX = bytes per sector
  47389. DX = total number of clusters
  47390. DS:BX -> media ID byte (see #01356)
  47391. Notes: under DOS 1.x, DS:BX points at an actual copy of the FAT; later
  47392. versions return a pointer to a copy of the FAT's ID byte
  47393. this function may not be properly supported on CD-ROMs and other
  47394. installable file systems (use AX=4402h"CD-ROM" for CD-ROMs
  47395. instead)
  47396. BUG: DOS 7.10 (Win95B/Win98) reportedly returns incorrect values in AL and
  47397. DX for FAT12/FAT16 drives, even though it manages correct results
  47398. for FAT32 drives (DOS windows are not affected, only real-mode
  47399. DOS)
  47400. SeeAlso: AH=1Ch,AH=36h
  47401. (Table 01356)
  47402. Values for media ID byte:
  47403. FFh floppy, double-sided, 8 sectors per track (320K)
  47404. FEh floppy, single-sided, 8 sectors per track (160K)
  47405. FDh floppy, double-sided, 9 sectors per track (360K)
  47406. FCh floppy, single-sided, 9 sectors per track (180K)
  47407. FAh HP 200LX D: ROM disk, 16 sectors per track (995K)
  47408. HP 200LX E: (Stacker host drive ???)
  47409. F9h floppy, double-sided, 15 sectors per track (1.2M)
  47410. floppy, double-sided, 9 sectors per track (720K,3.5")
  47411. F8h hard disk
  47412. F0h other media
  47413. (e.g. floppy, double-sized, 18 sectors per track -- 1.44M,3.5")
  47414. --------D-211C-------------------------------
  47415. INT 21 - DOS 1+ - GET ALLOCATION INFORMATION FOR SPECIFIC DRIVE
  47416. AH = 1Ch
  47417. DL = drive (00h = default, 01h = A:, etc)
  47418. Return: AL = sectors per cluster (allocation unit), or FFh if invalid drive
  47419. CX = bytes per sector
  47420. DX = total number of clusters
  47421. DS:BX -> media ID byte (see #01356)
  47422. Notes: under DOS 1.x, DS:BX points at an actual copy of the FAT; later
  47423. versions return a pointer to a copy of the FAT's ID byte
  47424. on a DBLSPACE drive, the total number of clusters is based on the
  47425. estimated compression ratio
  47426. this function may not be properly supported on CD-ROMs and other
  47427. installable file systems (use AX=4402h"CD-ROM" for CD-ROMs
  47428. instead)
  47429. BUG: DOS 7.10 (Win95B/Win98) reportedly returns incorrect values in AL and
  47430. DX for FAT12/FAT16 drives, even though it manages correct results
  47431. for FAT32 drives (DOS windows are not affected, only real-mode
  47432. DOS)
  47433. SeeAlso: AH=1Bh,AH=36h
  47434. --------D-211D-------------------------------
  47435. INT 21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY
  47436. AH = 1Dh
  47437. Return: AL = 00h
  47438. Note: corresponds to the CP/M BDOS function "get bit map of read-only
  47439. drives", which is meaningless under MS-DOS
  47440. SeeAlso: AH=18h,AH=1Eh,AH=20h,AX=4459h
  47441. --------D-211E-------------------------------
  47442. INT 21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY
  47443. AH = 1Eh
  47444. Return: AL = 00h
  47445. Note: corresponds to the CP/M BDOS function "set file attributes" which was
  47446. meaningless under MS-DOS 1.x
  47447. SeeAlso: AH=18h,AH=1Dh,AH=20h
  47448. --------D-211F-------------------------------
  47449. INT 21 - DOS 1+ - GET DRIVE PARAMETER BLOCK FOR DEFAULT DRIVE
  47450. AH = 1Fh
  47451. Return: AL = status
  47452. 00h successful
  47453. DS:BX -> Drive Parameter Block (DPB) (see #01357 for DOS 1.x,
  47454. AH=32h for DOS 2+)
  47455. FFh invalid drive
  47456. Note: this call was undocumented prior to the release of DOS 5.0; however,
  47457. only the DOS 4.0+ version of the DPB has been documented
  47458. SeeAlso: AH=32h,AX=7302h
  47459. Format of DOS 1.1 and MS-DOS 1.25 drive parameter block:
  47460. Offset Size Description (Table 01357)
  47461. 00h BYTE sequential device ID
  47462. 01h BYTE logical drive number (0=A:)
  47463. 02h WORD bytes per sector
  47464. 04h BYTE highest sector number within a cluster
  47465. 05h BYTE shift count to convert clusters into sectors
  47466. 06h WORD starting sector number of first FAT
  47467. 08h BYTE number of copies of FAT
  47468. 09h WORD number of directory entries
  47469. 0Bh WORD number of first data sector
  47470. 0Dh WORD highest cluster number (number of data clusters + 1)
  47471. 0Fh BYTE sectors per FAT
  47472. 10h WORD starting sector of directory
  47473. 12h WORD address of allocation table
  47474. Note: the DOS 1.0 table is the same except that the first and last fields
  47475. are missing; see INT 21/AH=32h for the DOS 2+ version
  47476. SeeAlso: #01395,#04039
  47477. --------D-2120-------------------------------
  47478. INT 21 - DOS 1+ - NULL FUNCTION FOR CP/M COMPATIBILITY
  47479. AH = 20h
  47480. Return: AL = 00h
  47481. Note: corresponds to the CP/M BDOS function "get/set default user
  47482. (sublibrary) number", which is meaningless under MS-DOS
  47483. SeeAlso: AH=18h,AH=1Dh,AH=1Eh,AX=4459h
  47484. --------v-212080-----------------------------
  47485. INT 21 - VIRUS - "New-Year" - INSTALLATION CHECK
  47486. AX = 2080h
  47487. Return: AH = 00h if resident (normal DOS return would be AX = 2000h)
  47488. SeeAlso: INT 21/AX=18FFh"VIRUS",INT 21/AX=2C2Ch"VIRUS"
  47489. --------D-2121-------------------------------
  47490. INT 21 - DOS 1+ - READ RANDOM RECORD FROM FCB FILE
  47491. AH = 21h
  47492. DS:DX -> opened FCB (see #01345)
  47493. Return: AL = status
  47494. 00h successful
  47495. 01h end of file, no data read
  47496. 02h segment wrap in DTA, no data read
  47497. 03h end of file, partial record read
  47498. Disk Tranfer Area filled with record read from file
  47499. Notes: the record is read from the current file position as specified by the
  47500. random record and record size fields of the FCB
  47501. the file position is not updated after reading the record
  47502. if a partial record is read, it is zero-padded to the full size
  47503. not supported by MS Windows 3.0 DOSX.EXE DOS extender
  47504. SeeAlso: AH=14h,AH=22h,AH=27h,AH=3Fh"DOS"
  47505. --------D-2122-------------------------------
  47506. INT 21 - DOS 1+ - WRITE RANDOM RECORD TO FCB FILE
  47507. AH = 22h
  47508. DS:DX -> opened FCB (see #01345)
  47509. Disk Transfer Area contains record to be written
  47510. Return: AL = status
  47511. 00h successful
  47512. 01h disk full
  47513. 02h segment wrap in DTA
  47514. Notes: the record is written to the current file position as specified by the
  47515. random record and record size fields of the FCB
  47516. the file position is not updated after writing the record
  47517. if the record is located beyond the end of the file, the file is
  47518. extended but the intervening data remains uninitialized
  47519. if the record only partially fills a disk sector, it is copied to a
  47520. DOS disk buffer to be written out to disk at a later time
  47521. not supported by MS Windows 3.0 DOSX.EXE DOS extender
  47522. SeeAlso: AH=15h,AH=21h,AH=28h,AH=40h
  47523. --------D-2123-------------------------------
  47524. INT 21 - DOS 1+ - GET FILE SIZE FOR FCB
  47525. AH = 23h
  47526. DS:DX -> unopened FCB (see #01345), wildcards not allowed
  47527. Return: AL = status
  47528. 00h successful (matching file found)
  47529. FCB random record field filled with size in records, rounded up
  47530. to next full record
  47531. FFh failed (no matching file found)
  47532. Notes: not supported by MS Windows 3.0 DOSX.EXE DOS extender
  47533. MS-DOS returns nonsense if the FCB record number field is set to a very
  47534. large positive number, and status FFh if negative; DR DOS returns the
  47535. correct file size in both cases
  47536. BUG: APPEND for DOS 3.3+ corrupts DX if the file is not found
  47537. SeeAlso: AH=42h
  47538. --------D-2124-------------------------------
  47539. INT 21 - DOS 1+ - SET RANDOM RECORD NUMBER FOR FCB
  47540. AH = 24h
  47541. DS:DX -> opened FCB (see #01345)
  47542. Notes: computes the random record number corresponding to the current record
  47543. number and record size, then stores the result in the FCB
  47544. normally used when switching from sequential to random access
  47545. not supported by MS Windows 3.0 DOSX.EXE DOS extender
  47546. SeeAlso: AH=21h,AH=27h,AH=42h
  47547. --------D-2125-------------------------------
  47548. INT 21 - DOS 1+ - SET INTERRUPT VECTOR
  47549. AH = 25h
  47550. AL = interrupt number
  47551. DS:DX -> new interrupt handler
  47552. Notes: this function is preferred over direct modification of the interrupt
  47553. vector table
  47554. some DOS extenders place an API on this function, as it is not
  47555. directly meaningful in protected mode
  47556. under DR DOS 5.0+, this function does not use any of the DOS-internal
  47557. stacks and may thus be called at any time
  47558. Novell NetWare (except the new DOS Requester) monitors the offset of
  47559. any INT 24 set, and if equal to the value at startup, substitutes
  47560. its own handler to allow handling of network errors; this introduces
  47561. the potential bug that any program whose INT 24 handler offset
  47562. happens to be the same as COMMAND.COM's will not have its INT 24
  47563. handler installed
  47564. SeeAlso: AX=2501h,AH=35h
  47565. --------E-212501-----------------------------
  47566. INT 21 P - Phar Lap 386/DOS-Extender - RESET DOS EXTENDER DATA STRUCTURES
  47567. AX = 2501h
  47568. SS = application's original SS or DS (FlashTek X-32VM)
  47569. Return: CF clear if successful
  47570. CF set on error
  47571. caller is operating on X-32 stack (FlashTek X-32VM)
  47572. Notes: Phar Lap uses INT 21/AH=25h as the entry point for all 386/DOS-Extender
  47573. system calls. Only available when directly using 386/DOS-Extender or
  47574. a compatible DOS extender, or when using a product that was created
  47575. using 386-DOS/Extender or a compatible
  47576. this function is also supported by FlashTek X-32VM
  47577. SeeAlso: AH=30h"Phar Lap"
  47578. --------E-212502-----------------------------
  47579. INT 21 P - Phar Lap 386/DOS-Extender - GET PROTECTED-MODE INTERRUPT VECTOR
  47580. AX = 2502h
  47581. CL = interrupt number
  47582. Return: CF clear
  47583. ES:EBX = CS:EIP of protected-mode interrupt handler
  47584. Note: this function is also supported by FlashTek X-32VM
  47585. SeeAlso: AX=2503h,AX=2504h,INT 31/AX=0204h
  47586. --------E-212503-----------------------------
  47587. INT 21 P - Phar Lap 386/DOS-Extender - GET REAL-MODE INTERRUPT VECTOR
  47588. AX = 2503h
  47589. CL = interrupt number
  47590. Return: CF clear
  47591. EBX = CS:IP of real-mode interrupt handler
  47592. Note: this function is also supported by FlashTek X-32VM
  47593. SeeAlso: AX=2502h,AX=2504h,AH=35h,INT 31/AX=0200h
  47594. --------E-212504-----------------------------
  47595. INT 21 P - Phar Lap 386/DOS-Extender - SET PROTECTED-MODE INTERRUPT VECTOR
  47596. AX = 2504h
  47597. CL = interrupt number
  47598. DS:EDX = CS:EIP of protected-mode interrupt handler
  47599. Return: CF clear
  47600. Note: this function is also supported by FlashTek X-32VM
  47601. SeeAlso: AX=2502h,AX=2505h,INT 31/AX=0205h
  47602. --------E-212505-----------------------------
  47603. INT 21 P - Phar Lap 386/DOS-Extender - SET REAL-MODE INTERRUPT VECTOR
  47604. AX = 2505h
  47605. CL = interrupt number
  47606. EBX = CS:IP of real-mode interrupt handler
  47607. Return: CF clear
  47608. Note: this function is also supported by FlashTek X-32VM
  47609. SeeAlso: AX=2503h,AX=2504h,INT 31/AX=0201h
  47610. --------E-212506-----------------------------
  47611. INT 21 P - Phar Lap 386/DOS-Extender - SET INT TO ALWAYS GAIN CNTRL IN PR. MODE
  47612. AX = 2506h
  47613. CL = interrupt number
  47614. DS:EDX = CS:EIP of protected-mode interrupt handler
  47615. Return: CF clear
  47616. Notes: this function modifies both the real-mode low-memory interrupt
  47617. vector table and the protected-mode Interrupt Descriptor Table (IDT)
  47618. interrupts occurring in real mode are resignaled in protected mode
  47619. this function is also supported by FlashTek X-32VM
  47620. --------E-212507-----------------------------
  47621. INT 21 P - Phar Lap 386/DOS-Extender - SET REAL- & PROTECTED-MODE INT VECTORS
  47622. AX = 2507h
  47623. CL = interrupt number
  47624. DS:EDX = CS:EIP of protected-mode interrupt handler
  47625. EBX = CS:IP of real-mode interrupt handler
  47626. Return: CF clear
  47627. Notes: interrupts are disabled until both vectors have been modified
  47628. this function is also supported by FlashTek X-32VM
  47629. SeeAlso: AX=2504h,AX=2505h
  47630. --------E-212508-----------------------------
  47631. INT 21 P - Phar Lap 386/DOS-Extender - GET SEGMENT LINEAR BASE ADDRESS
  47632. AX = 2508h
  47633. BX = segment selector
  47634. Return: CF clear if successful
  47635. ECX = linear base address of segment
  47636. CF set if invalid segment selector
  47637. Note: this function is also supported by FlashTek X-32VM
  47638. SeeAlso: AX=2509h
  47639. --------E-212509-----------------------------
  47640. INT 21 P - Phar Lap 386/DOS-Extender - CONVERT LINEAR TO PHYSICAL ADDRESS
  47641. AX = 2509h
  47642. EBX = linear address to convert
  47643. Return: CF clear if successful
  47644. ECX = physical address (carry flag clear)
  47645. CF set if linear address not mapped in page tables
  47646. SeeAlso: AX=2508h
  47647. --------E-212509-----------------------------
  47648. INT 21 P - FlashTek X-32VM - GET SYSTEM SEGMENTS AND SELECTORS
  47649. AX = 2509h
  47650. Return: CF clear
  47651. EAX high word = default DS
  47652. AX = alias for 16-bit data segment
  47653. BX = real mode code segment
  47654. EDX high word = selector covering full 4GB address space
  47655. DX = default SS
  47656. ESI high word = PSP selector
  47657. SI = environment selector
  47658. --------E-21250A-----------------------------
  47659. INT 21 P - Phar Lap 386/DOS-Extender - MAP PHYSICAL MEMORY AT END OF SEGMENT
  47660. AX = 250Ah
  47661. ES = segment selector in the Local Descriptor Table (LDT) of segment
  47662. to modify
  47663. EBX = physical base address of memory to map (multiple of 4K)
  47664. ECX = number of physical 4K pages to map
  47665. Return: CF clear if successful
  47666. EAX = 32-bit offset in segment of mapped memory
  47667. CF set on error
  47668. EAX = error code
  47669. 08h insufficient memory to create page tables
  47670. 09h invalid segment selector
  47671. SeeAlso: INT 31/AX=0800h
  47672. --------E-21250C-----------------------------
  47673. INT 21 P - Phar Lap 386/DOS-Extender - GET HARDWARE INTERRUPT VECTORS
  47674. AX = 250Ch
  47675. Return: CF clear
  47676. AL = base interrupt vector for IRQ0-IRQ7
  47677. AH = base interrupt vector for IRQ8-IRQ15
  47678. BL = interrupt vector for BIOS print screen function (Phar Lap only)
  47679. Note: this function is also supported by FlashTek X-32VM
  47680. SeeAlso: INT 31/AX=0400h,INT 67/AX=DE0Ah
  47681. --------E-21250D-----------------------------
  47682. INT 21 P - Phar Lap 386/DOS-Extender - GET REAL-MODE LINK INFORMATION
  47683. AX = 250Dh
  47684. Return: CF clear
  47685. EAX = CS:IP of real-mode callback procedure (see #01358) that will
  47686. call through from real mode to a protected-mode routine
  47687. EBX = 32-bit real-mode address of intermode call data buffer
  47688. ECX = size in bytes of intermode call data buffer
  47689. ES:EDX = protected-mode address of intermode call data buffer
  47690. Notes: this function is also supported by FlashTek X-32VM
  47691. X-32VM guarantees the intermode buffer to be at least 4 KB
  47692. SeeAlso: AX=250Eh
  47693. (Table 01358)
  47694. Call Phar Lap real-mode callback with:
  47695. STACK: DWORD offset to protected-mode code
  47696. WORD placeholder for protected-mode CS
  47697. DWORD pointer to selector structure (see #01359)
  47698. or 0000h:0000h for defaults
  47699. var parameters for protected-mode procedure
  47700. Return: via FAR return
  47701. Format of Phar Lap selector structure:
  47702. Offset Size Description (Table 01359)
  47703. 00h WORD protected-mode GS selector
  47704. 02h WORD protected-mode FS selector
  47705. 04h WORD protected-mode ES selector
  47706. 06h WORD protected-mode DS selector
  47707. --------E-21250E-----------------------------
  47708. INT 21 P - Phar Lap 386/DOS-Extender - CALL REAL-MODE PROCEDURE
  47709. AX = 250Eh
  47710. EBX = CS:IP of real-mode procedure to call
  47711. ECX = number of two-byte words to copy from protected-mode stack
  47712. to real-mode stack
  47713. Return: CF clear if successful
  47714. all segment registers unchanged
  47715. all general registers contain values set by real-mode procedure
  47716. all other flags set as they were left by real-mode procedure
  47717. stack unchanged
  47718. CF set on error
  47719. EAX = error code
  47720. 01h not enough real-mode stack space
  47721. Note: this function is also supported by FlashTek X-32VM; under X-32VM, the
  47722. call will fail if ECX > 0000003Fh
  47723. SeeAlso: AX=250Dh,AX=2510h,AH=E1h"OS/286",INT 31/AX=0301h
  47724. --------E-21250F-----------------------------
  47725. INT 21 P - Phar Lap 386/DOS-Extender - CONVERT PROTECTED-MODE ADDRESS TO MS-DOS
  47726. AX = 250Fh
  47727. ES:EBX = 48-bit protected-mode address to convert
  47728. ECX = 00000000h or length of data in bytes
  47729. Return: CF clear if successful (address < 1MB and contiguous)
  47730. ECX = 32-bit real-mode MS-DOS address
  47731. CF set on error (address >= 1MB or not contiguous)
  47732. ECX = linear address
  47733. Note: this function is also supported by FlashTek X-32VM
  47734. SeeAlso: AX=2510h
  47735. --------E-212510-----------------------------
  47736. INT 21 P - Phar Lap 386/DOS-Extender - CALL REAL-MODE PROCEDURE, REGISTERS
  47737. AX = 2510h
  47738. EBX = CS:IP of real-mode procedure to call
  47739. ECX = number of two-byte words to copy to protected-mode stack to
  47740. real-mode stack
  47741. DS:EDX -> pointer to parameter block (see #01360)
  47742. Return: CF clear if successful
  47743. all segment registers unchanged,
  47744. EDX unchanged
  47745. all other general registers contain values set by real-mode proc
  47746. all other flags are set as they were left by real-mode procedure
  47747. real-mode register values are returned in the parameter block
  47748. CF set on error
  47749. EAX = error code
  47750. 01h not enough real-mode stack space
  47751. Note: unlike most of the preceding 25xxh functions, this one is not
  47752. supported by FlashTek X-32VM
  47753. SeeAlso: AX=250Eh,AX=250Fh
  47754. Format of Phar Lap real-mode call parameter block:
  47755. Offset Size Description (Table 01360)
  47756. 00h WORD real-mode DS value
  47757. 02h WORD real-mode ES value
  47758. 04h WORD real-mode FS value
  47759. 06h WORD real-mode GS value
  47760. 08h DWORD real-mode EAX value
  47761. 0Ch DWORD real-mode EBX value
  47762. 10h DWORD real-mode ECX value
  47763. 14h DWORD real-mode EDX value
  47764. --------E-212511-----------------------------
  47765. INT 21 P - Phar Lap 386/DOS-Extender - ISSUE REAL-MODE INTERRUPT
  47766. AX = 2511h
  47767. DS:EDX -> parameter block (see #01361)
  47768. Return: all segment registers unchanged
  47769. EDX unchanged
  47770. all other registers contain values set by the real-mode int handler
  47771. the flags are set as they were left by the real-mode interrupt handler
  47772. real-mode register values are returned in the parameter block
  47773. Note: this function is also supported by FlashTek X-32VM
  47774. SeeAlso: AX=2503h,AX=2505h,AX=250Eh,AH=E3h"OS/286",INT 31/AX=0300h
  47775. Format of Phar Lap real-mode interrupt parameter block:
  47776. Offset Size Description (Table 01361)
  47777. 00h WORD interrupt number
  47778. 02h WORD real-mode DS value
  47779. 04h WORD real-mode ES value
  47780. 06h WORD real-mode FS value
  47781. 08h WORD real-mode GS value
  47782. 0Ah DWORD real-mode EAX value
  47783. 0Eh DWORD real-mode EDX value
  47784. Note: all other real-mode values set from protected-mode registers
  47785. --------E-212512-----------------------------
  47786. INT 21 P - Phar Lap 386/DOS-Extender - LOAD PROGRAM FOR DEBUGGING
  47787. AX = 2512h
  47788. DS:EDX -> pointer to ASCIZ program name
  47789. ES:EBX -> pointer to parameter block (see #01363)
  47790. ECX = size in bytes of LDT buffer
  47791. Return: CF clear if successful
  47792. EAX = number of segment descriptors in LDT
  47793. CF set on error
  47794. EAX = error code (see #01362)
  47795. SeeAlso: AX=2517h
  47796. (Table 01362)
  47797. Values for Phar Lap error code:
  47798. 02h file not found or path invalid
  47799. 05h access denied
  47800. 08h insufficient memory
  47801. 0Ah environment invalid
  47802. 0Bh invalid file format
  47803. 80h LDT too small
  47804. Format of Phar Lap program load parameter block:
  47805. Offset Size Description (Table 01363)
  47806. Input:
  47807. 00h DWORD 32-bit offset of environment string
  47808. 04h WORD segment of environment string
  47809. 06h DWORD 32-bit offset of command-tail string
  47810. 0Ah WORD segment of command-tail string
  47811. 0Ch DWORD 32-bit offset of LDT buffer (size in ECX)
  47812. 10h WORD segment of LDT buffer
  47813. Output:
  47814. 12h WORD real-mode paragraph address of PSP (see also AH=26h)
  47815. 14h WORD real/protected mode flag
  47816. 0000h real mode
  47817. 0001h protected mode
  47818. 16h DWORD initial EIP value
  47819. 1Ah WORD initial CS value
  47820. 1Ch DWORD initial ESP value
  47821. 20h WORD initial SS value
  47822. 22h WORD initial DS value
  47823. 24h WORD initial ES value
  47824. 26h WORD initial FS value
  47825. 28h WORD initial GS value
  47826. --------E-212513-----------------------------
  47827. INT 21 P - Phar Lap 386/DOS-Extender - ALIAS SEGMENT DESCRIPTOR
  47828. AX = 2513h
  47829. BX = segment selector of descriptor in GDT or LDT
  47830. CL = access-rights byte for alias descriptor
  47831. CH = use-type bit (USE16 or USE32) for alias descriptor
  47832. Return: CF clear if successful
  47833. AX = segment selector for created alias
  47834. CF set on error
  47835. EAX = error code
  47836. 08h insufficient memory (can't grow LDT)
  47837. 09h invalid segment selector in BX
  47838. --------E-212514-----------------------------
  47839. INT 21 P - Phar Lap 386/DOS-Extender - CHANGE SEGMENT ATTRIBUTES
  47840. AX = 2514h
  47841. BX = segment selector of descriptor in GDT or LDT
  47842. CL = new access-rights byte
  47843. CH = new use-type bit (USE16 or USE32)
  47844. Return: CF clear if successful
  47845. CF set on error
  47846. EAX = error code
  47847. 09h invalid selector in BX
  47848. SeeAlso: AX=2515h,INT 31/AX=0009h
  47849. --------E-212515-----------------------------
  47850. INT 21 P - Phar Lap 386/DOS-Extender - GET SEGMENT ATTRIBUTES
  47851. AX = 2515h
  47852. BX = segment selector of descriptor in GDT or LDT
  47853. Return: CF clear if successful
  47854. CL = access-rights byte for segment
  47855. CH = use-type bit (USE16 or USE32)
  47856. ECX<16-31> destroyed
  47857. CF set on error
  47858. EAX = error code
  47859. 09h invalid segment selector in BX
  47860. SeeAlso: AX=2514h
  47861. --------E-212516-----------------------------
  47862. INT 21 P - Phar Lap 386/DOS-Extender v2.2+ - FREE ALL MEMORY OWNED BY LDT
  47863. AX = 2516h
  47864. Return: CF clear
  47865. Note: this function must be called from Ring 0 or the CS descriptor is freed
  47866. --------E-212517-----------------------------
  47867. INT 21 P - Phar Lap 386/DOS-Extender v2.1c+ - GET INFO ON DOS DATA BUFFER
  47868. AX = 2517h
  47869. Return: CF clear
  47870. ES:EBX -> data buffer (protected mode address)
  47871. ECX -> data buffer (real mode address)
  47872. EDX = size of data buffer in bytes
  47873. Note: the data buffer's address changes after calls to AX=2512h and AX=252Ah
  47874. SeeAlso: AX=2512h,AX=252Ah,AX=2530h
  47875. --------E-212518-----------------------------
  47876. INT 21 P - Phar Lap 386/DOS-Extender 2.1c+ - SPECIFY HANDLER FOR MOVED SEGMENTS
  47877. AX = 2518h
  47878. ES:EBX -> function to call when a segment is moved
  47879. Return: CF clear
  47880. ES:EBX -> previous handler
  47881. --------E-212519-----------------------------
  47882. INT 21 P - Phar Lap 386/DOS-Extender VMM - GET ADDITIONAL MEMORY ERROR INFO
  47883. AX = 2519h
  47884. Return: CF clear
  47885. EAX = error code
  47886. 0000h no error
  47887. 0001h out of physical memory
  47888. 0002h out of swap space (unable to grow swap file)
  47889. 0003h out of LDT entries and unable to grow LDT
  47890. 0004h unable to change extended memory allocation mark
  47891. FFFFFFFFh paging disabled
  47892. Note: VMM is the Virtual Memory Manager option
  47893. --------E-21251A-----------------------------
  47894. INT 21 P - Phar Lap 386/DOS-Extender VMM - LOCK PAGES IN MEMORY
  47895. AX = 251Ah
  47896. EDX = number of 4k pages to lock
  47897. if BL = 00h
  47898. ECX = linear address of first page to lock
  47899. if BL = 01h
  47900. ES:ECX -> pointer to first page to lock
  47901. Return: CF clear if successful
  47902. CF set on error
  47903. EAX = error code
  47904. 08h insufficient memory
  47905. 09h invalid address range
  47906. SeeAlso: AX=251Bh,AX=EB06h,INT 31/AX=0600h
  47907. --------E-21251B-----------------------------
  47908. INT 21 P - Phar Lap 386/DOS-Extender VMM - UNLOCK PAGES
  47909. AX = 251Bh
  47910. EDX = number of pages to unlock
  47911. if BL = 00h
  47912. ECX = linear address of first page to unlock
  47913. if BL = 01h
  47914. ES:ECX -> pointer to first page to unlock
  47915. Return: CF clear if successful
  47916. CF set on error
  47917. EAX = error code
  47918. 09h invalid address range
  47919. SeeAlso: AX=251Ah,AX=EB07h,INT 31/AX=0601h
  47920. --------E-21251C-----------------------------
  47921. INT 21 P - Phar Lap 386/DOS-Extender VMM v2.1c+ - FREE PHYSICAL MEMORY PAGES
  47922. AX = 251Ch
  47923. BH = preservation flag (00h preserve contents, 01h discard contents)
  47924. EDX = number of pages to free
  47925. BL = address type
  47926. 00h linear address
  47927. ECX = linear address of first page to be freed
  47928. 01h pointer
  47929. ES:ECX -> first page to be freed
  47930. Return: CF clear if successful
  47931. CF set on error
  47932. EAX = error code
  47933. 08h memory error, swap space full, no VMM or DPMI
  47934. 09h invalid address
  47935. --------E-21251D-----------------------------
  47936. INT 21 OP - Phar Lap 386/DOS-Extender VMM v2.1c - READ PAGE-TABLE ENTRY
  47937. AX = 251Dh
  47938. BL = address type
  47939. 00h linear address
  47940. ECX = linear address of page table entry to read
  47941. 01h pointer
  47942. ES:ECX -> page table entry to read
  47943. Return: CF clear if successful
  47944. EAX = contents of page table entry
  47945. CF set on error
  47946. EAX = error code
  47947. 09h invalid address or NOPAGE option set
  47948. 78h invalid under DPMI
  47949. Note: this function is obsolete; use AX=252Bh/BH=09h instead
  47950. SeeAlso: AX=251Eh,AX=252Bh/BH=09h,AX=EB00h,INT 31/AX=0506h
  47951. --------E-21251E-----------------------------
  47952. INT 21 OP - Phar Lap 386/DOS-Extender VMM v2.1c - WRITE PAGE-TABLE ENTRY
  47953. AX = 251Eh
  47954. BL = address type
  47955. 00h linear address
  47956. ECX = linear address of page table entry to read
  47957. 01h pointer
  47958. ES:ECX -> page table entry to read
  47959. EDX = new value for page table entry
  47960. Return: CF clear if successful
  47961. CF set on error
  47962. EAX = error code
  47963. 09h invalid address or NOPAGE option set
  47964. 82h not compatible with DPMI
  47965. Note: this call is obsolete; use AX=252Bh/BH=0Ah instead
  47966. SeeAlso: AX=251Dh,AX=252Bh/BH=0Ah,INT 31/AX=0507h
  47967. --------E-21251F-----------------------------
  47968. INT 21 P - Phar Lap 386/DOS-Extender VMM - EXHANGE TWO PAGE-TABLE ENTRIES
  47969. AX = 251Fh
  47970. BL = address type
  47971. 00h linear address
  47972. ECX = linear address of first page table entry
  47973. EDX = linear address of second page table entry
  47974. 01h pointer
  47975. ES:ECX -> first page table entry
  47976. ES:EDX -> second page table entry
  47977. Return: CF clear if successful
  47978. CF set on error
  47979. EAX = error code
  47980. 09h invalid address or NOPAGE option set
  47981. 82h not compatible with DPMI
  47982. SeeAlso: AX=251Dh,AX=251Eh
  47983. --------E-212520-----------------------------
  47984. INT 21 P - Phar Lap 386/DOS-Extender VMM - GET MEMORY STATISTICS
  47985. AX = 2520h
  47986. DS:EDX -> pointer to buffer at least 100 bytes in size (see #01364)
  47987. BL = 0 (don't reset VM stats), 1 (reset VM stats)
  47988. Return: carry flag clear
  47989. Format of Phar Lap VM statistics buffer:
  47990. Offset Size Description (Table 01364)
  47991. 00h DWORD VM status
  47992. 0001h VM subsystem is present
  47993. 0000h VM not present
  47994. 04h DWORD "nconvpg" number of conventional memory pages available
  47995. 08h DWORD "nbimpg" number of Compaq built-in memory pages available
  47996. 0Ch DWORD "nextpg" total number of extended memory pages
  47997. 10h DWORD "extlim" extender memory pages limit
  47998. 14h DWORD "aphyspg" number of physical memory pages allocated to appl
  47999. 18h DWORD "alockpg" number of locked pages owned by application
  48000. 1Ch DWORD "sysphyspg" number physical memory pages allocated to system
  48001. 20h DWORD "nfreepg" number of free physical pages; approx if EMS VCPI
  48002. 24h DWORD linear address of beginning of application address space
  48003. 28h DWORD linear address of end of application address space
  48004. 2Ch DWORD number of seconds since last time VM stats were reset
  48005. 30h DWORD number of page faults since last time
  48006. 34h DWORD number of pages written to swap file since last time
  48007. 38h DWORD number of reclaimed pages (page faults on swapped pages)
  48008. 3Ch DWORD number of virtual pages allocated to the application
  48009. 40h DWORD size in pages of swap file
  48010. 44h DWORD number of system pages allocated with EMS calls
  48011. 48h DWORD minimum number of conventional memory pages
  48012. 4Ch DWORD maximum size in pages to which swap file can be increased
  48013. 50h DWORD "vmflags"
  48014. bit 0 = 1 if page fault in progress
  48015. ---v4.0+ ---
  48016. 54h DWORD number of physical pages guaranteed to be free
  48017. 58h DWORD number of free physical pages currently available
  48018. 5Ch DWORD size in pages of largest free block of memory (including disk
  48019. swap space)
  48020. 60h DWORD reserved
  48021. --------E-212521-----------------------------
  48022. INT 21 P - Phar Lap 386/DOS-Extender VMM - LIMIT PROGRAM'S EXTENDED MEM USAGE
  48023. AX = 2521h
  48024. EBX = max 4k pages of physical extended memory which program may use
  48025. Return: CF clear if successful
  48026. EBX = maximum limit in pages
  48027. ECX = minimum limit in pages
  48028. CF set on error
  48029. EAX = error code
  48030. 08h insufficient memory or -nopage switch used
  48031. SeeAlso: AX=2522h
  48032. --------E-212522-----------------------------
  48033. INT 21 P - Phar Lap 386/DOS-Ext VMM v2.2+ - SPECIFY ALTERNATE PAGE-FAULT HANDLR
  48034. AX = 2522h
  48035. ES:EBX -> alternate handler for page faults
  48036. Return: CF clear
  48037. ES:EBX -> previous page-fault handler
  48038. SeeAlso: AX=2523h
  48039. --------E-212523-----------------------------
  48040. INT 21 P - Phar Lap 386/DOS-Ext VMM v2.2+ - SPECIFY OUT-OF-SWAP-SPACE HANDLER
  48041. AX = 2523h
  48042. ???
  48043. Return: ???
  48044. Note: this function takes a DWORD pointer and a DWORD pointer to a DWORD
  48045. pointer as arguments
  48046. SeeAlso: AX=2522h
  48047. --------E-212524-----------------------------
  48048. INT 21 P - Phar Lap 386/DOS-Ext VMM v2.2+ - INSTALL PAGE-REPLACEMENT HANDLERS
  48049. AX = 2524h
  48050. ???
  48051. Return: ???
  48052. Note: this function takes three DWORD pointers and three DWORD pointers to
  48053. DWORD pointers as arguments
  48054. --------E-212525-----------------------------
  48055. INT 21 P - Phar Lap 386/DOS-Extender VMM - LIMIT PROGRAM'S CONVENT'L MEM USAGE
  48056. AX = 2525h
  48057. EBX = limit in 4k pages of physical conventional memory which program
  48058. may use
  48059. Return: CF clear if successful
  48060. EBX = maximum limit in pages
  48061. ECX = minimum limit in pages
  48062. CF set on error
  48063. EAX = error code
  48064. 08h insufficient memory or -nopage switch used
  48065. SeeAlso: AX=2521h
  48066. --------E-212526-----------------------------
  48067. INT 21 P - Phar Lap 386/DOS-Extender - GET CONFIGURATION INFORMATION
  48068. AX = 2526h
  48069. ???
  48070. Return: ???
  48071. Notes: details are not yet available
  48072. this function takes a pointer to the configuration buffer (see #01365)
  48073. and a poitner to a BYTE as arguments
  48074. Format of Phar Lap configuration buffer:
  48075. Offset Size Description (Table 01365)
  48076. 00h DWORD flags 1 (see #01366)
  48077. 04h DWORD flags 2 (unused through v5.0)
  48078. 08h DWORD flags 3 (unused through v5.0)
  48079. 0Ch DWORD 386|DOS-Extender major version
  48080. 10h DWORD 386|DOS-Extender minor version
  48081. 14h DWORD first letter of text after minor version number in version str
  48082. 18h DWORD beta flag (00h normal release, 01h beta release)
  48083. 1Ch DWORD processor (3 = 386, 4 = 486)
  48084. 20h DWORD coprocessor (4 = none, 6 = 287, 7 = 387/486)
  48085. 24h DWORD Weitek coprocessor flag (0 = none, 1 = present)
  48086. 28h DWORD machine type (0 = IBM PC compatible, 1 = NEC 9800 series)
  48087. 2Ch DWORD machine class
  48088. IBM: bus type (0=ISA, 1=MCA, 2=XT, 3=EISA)
  48089. NEC: 0=normal mode, 1=high-res mode
  48090. 30h DWORD VCPI flag (0 = none, 1 = present)
  48091. 34h DWORD -WEITEK/-1167 switch (0 = AUTO, 1 = ON, 2 = OFF)
  48092. 38h DWORD -MINREAL setting
  48093. 3Ch DWORD -MAXREAL setting
  48094. 40h DWORD -MINIBUF setting
  48095. 44h DWORD -MAXIBUF setting
  48096. 48h DWORD size in bytes of DOS call data buffer
  48097. 4Ch DWORD number of interrupt stacks (-NISTACK)
  48098. 50h DWORD interrupt stack size (-ISTKSIZE)
  48099. 54h DWORD -REALBREAK setting
  48100. 58h DWORD -CALLBUFS
  48101. 5Ch DWORD -HWIVEC
  48102. 60h DWORD -PRIVEC
  48103. 64h DWORD -INTMAP
  48104. 68h DWORD -PRIMAP
  48105. 6Ch DWORD VCPI: master 8259 interrupt vector base (IRQ0 mapping)
  48106. 70h DWORD VCPI: slave 8259 interrupt vector base (IRQ8 mapping)
  48107. 74h DWORD BIOS print screen interrupt vector (0 if NEC)
  48108. 78h DWORD -EXTLOW setting
  48109. 7Ch DWORD -EXTHIGH setting
  48110. 80h DWORD lowest physical extended-memory address allocatable
  48111. 84h DWORD highest physical extended-memory address allocatable + 1
  48112. 88h DWORD special memory's physical base address (00000000h if none)
  48113. 8Ch DWORD special memory size in bytes (00000000h if none)
  48114. 90h DWORD -MAXVCPIMEM setting
  48115. 94h DWORD -VSCAN
  48116. 98h DWORD -SWAPCHK (0 = OFF, 1 = ON, 2 = FORCE, 3 = MAX)
  48117. 9Ch DWORD -CODESIZE setting
  48118. A0h DWORD minimum swap file size (-MINSWFSIZE)
  48119. A4h DWORD maximum swap fiel size (-MAXSWFSIZE)
  48120. A8h DWORD page replacement policy (0 = LFU, 1 = NUR)
  48121. ACh DWORD number of GDT entries (-NGDTENT)
  48122. B0h DWORD number of LDT entries (-NLDTENT)
  48123. B4h DWORD program's privilege level (0-3)
  48124. ---386|DOS-Extender v3.0+ ---
  48125. B8h DWORD -LOCKSTACK setting
  48126. BCh DWORD -MAXEXTMEM
  48127. C0h DWORD -MAXXMSMEM
  48128. C4h DWORD -MAXPGMMEM
  48129. C8h DWORD -DATATHRESHOLD
  48130. CCh DWORD virtual memory manager flag (0 = not present, 1 = present)
  48131. D0h DWORD Cyrix coprocessor flag (0 = no Cyrix EMC387, 1 = present)
  48132. D4h DWORD -CYRIX setting (0 = AUTO, 1 = ON, 2 = OFF)
  48133. D8h DWORD DPMI flag (0 = not present, 1 = present)
  48134. DCh DWORD DPMI major version
  48135. E0h DWORD DPMI minor version
  48136. E4h DWORD DPMI capabilities flags (see #01367)
  48137. E8h DWORD VCPI major version
  48138. ECh DWORD VCPI minor version
  48139. F0h WORD VCPI: IRQ0-7 physical base interrupt vector
  48140. F2h WORD VCPI: IRQ8-15 physical base interrupt vector
  48141. F4h DWORD XMS flag (0 = none, 1 = present)
  48142. F8h DWORD XMS major version
  48143. FCh DWORD XMS minor version
  48144. 100h WORD application's CS selector
  48145. 102h WORD application's DS selector
  48146. 104h WORD application's PSP selector
  48147. 106h WORD application's environment selector
  48148. 108h WORD selector mapping entire first megabyte
  48149. 10Ah WORD selector mapping text video memory
  48150. 10Ch WORD selector mapping video memory (text for IBM, graphics for NEC)
  48151. 10Eh WORD selector mapping Weitek address space, 0000h if not present
  48152. 110h WORD selector mapping Cyrix EMC387 address space, 0000h if none
  48153. 112h WORD reserved (0)
  48154. 114h DWORD real-mode FAR entry point to call to switch to protected mode
  48155. with no saved context
  48156. 118h DWORD size of LDT in bytes
  48157. ---386|DOS-Extender v5.0+ ---
  48158. 11Ch DWORD Windows flag (0 = not present, 1 = Windows present)
  48159. 120h DWORD Windows major version
  48160. 124h DWORD Windows minor version
  48161. 128h DWORD Windows mode (0 = real/standard, 1 = enhanced)
  48162. 12Ch DWORD OS/2 flag (0 = not present, 1 = OS/2 present)
  48163. 130h DWORD OS/2 major version
  48164. 134h DWORD OS/2 minor version
  48165. 138h 50 DWORDs reserved (0)
  48166. Bitfields for flags 1:
  48167. Bit(s) Description (Table 01366)
  48168. 0 -NOPAGE specified
  48169. 1 -A20 specified
  48170. 2 -VDISK specified
  48171. 3 -XT specified
  48172. 4 -AT specified
  48173. 5 -MCA specified
  48174. 6 -EISA specified
  48175. 7 -NORMRES specified (NEC only)
  48176. 8 -HIGHRES specified (NEC only)
  48177. 9 set if -SWFGROW1ST, clear if -NOSWFGROW1ST
  48178. 10 -NOVM specified
  48179. 11 -SAVEREGS specified
  48180. 12 unused (clear)
  48181. 13 -NOVCPI specified
  48182. 14 -NOMUL specified
  48183. 15 -NOBMCHK specified
  48184. 16 -NOSPCLMEM or -NOBIM
  48185. 17 -NOPGEXP specified
  48186. 18 -SWAPDEFDISK specified
  48187. ---v3.0+ ---
  48188. 19 -SAVEINTS specified
  48189. 20 -NOLOAD specified
  48190. 21 -PAGELOG specified
  48191. 22 -OPENDENY specified
  48192. 23 -ERRATA17 specified
  48193. ---v4.1+ ---
  48194. 24 -NESTDPMI specified
  48195. 25 -NONESTDPMI specified
  48196. 26 -NODPMI specified
  48197. 27 -NOPCDWEITEK specified
  48198. ---v4.2+ ---
  48199. 28 -WININT21 specified
  48200. Bitfields for DPMI capabilities flags:
  48201. Bit(s) Description (Table 01367)
  48202. 0 paging supported
  48203. 1 physical device mapping
  48204. 2 conventional memory mapping
  48205. 3 exceptions restartable
  48206. --------E-212527-----------------------------
  48207. INT 21 P - Phar Lap 386/DOS-Extender VMM - EN/DISABLE STATE SAVE ON INTERRUPTS
  48208. AX = 2527h
  48209. EBX = new status (00h disabled, 01h enabled)
  48210. Return: CF clear
  48211. EBX = previous state save flag
  48212. SeeAlso: AX=2528h
  48213. --------E-212528-----------------------------
  48214. INT 21 P - Phar Lap 386/DOS-Extender VMM - READ REGISTERS AFTER CTRL-C INT
  48215. AX = 2528h
  48216. DS:EBX -> buffer for registers (see #01368)
  48217. Return: CF clear if successful
  48218. DS:EBX buffer filled
  48219. CF set on error
  48220. EAX = error code
  48221. 83h interrupt state save not enabled
  48222. 84h no active interrupt
  48223. SeeAlso: AX=2527h
  48224. Format of Phar Lap buffer for registers:
  48225. Offset Size Description (Table 01368)
  48226. 00h 8 BYTEs unused
  48227. 08h 4 DWORDs EAX,EBX,ECX,EDX
  48228. 18h 4 DWORDs ESI,EDI,EBP,ESP
  48229. 28h 6 WORDs CS,DS,SS,ES,FS,GS
  48230. 34h DWORD EIP
  48231. 38h DWORD EFLAGS
  48232. --------E-212529-----------------------------
  48233. INT 21 P - Phar Lap 386/DOS-Extender - LOAD FLAT MODEL .EXP or .REX FILE
  48234. AX = 2529h
  48235. ???
  48236. Return: ES:EBX -> parameter block (see #01369)
  48237. ???
  48238. Note: details not available at this time
  48239. SeeAlso: AX=252Ah
  48240. Format of Phar Lap program load parameter block:
  48241. Offset Size Description (Table 01369)
  48242. 00h DWORD initial EIP
  48243. 04h WORD initial CS
  48244. 06h DWORD initial ESP
  48245. 0Ah WORD initial SS
  48246. 0Ch 4 WORDs initial DS, ES, FS, GS
  48247. 14h DWORD minimum size in bytes of program segment
  48248. 18h DWORD bytes of additional memory allocated
  48249. 1Ch DWORD flags
  48250. bit 0: child linked with -UNPRIVILEGED
  48251. ---v6.0+ ---
  48252. bit 1: child is PE file instead of .EXP
  48253. bit 2: loaded file is a DLL
  48254. bits 3-31 reserved
  48255. ---v6.0+ ---
  48256. 20h DWORD module handles (PE files only)
  48257. 24h 7 DWORDs reserved (0)
  48258. --------E-21252A-----------------------------
  48259. INT 21 P - Phar Lap 386/DOS-Extender VMM - NEW LOAD PROGRAM FOR DEBUG
  48260. AX = 252Ah
  48261. DS:EDX -> ASCIZ program name
  48262. ES:EBX -> parameter block (see #01363)
  48263. ECX = size of LDT buffer in bytes
  48264. ESI = bit flags
  48265. bit 0: allow demand paging rather than loading entire program
  48266. bit 1: demand page from swap file rather than from .EXP
  48267. Return: CF clear if successful
  48268. EAX = VMM handle or FFFFFFFFh if none
  48269. ECX = number of descriptors in LDT buffer
  48270. CF set on error
  48271. EAX = error code
  48272. 02h file error
  48273. EBX = file error code (see #01370)
  48274. ECX = DOS error code if EBX=1,2,3, or 8
  48275. 08h insufficient memory
  48276. EBX = memory error code (see #01371)
  48277. 80h LDT buffer too small
  48278. 87h called twice without intervening call to AX=2531h
  48279. SeeAlso: AX=2512h,AX=2517h,AX=2529h,AX=2531h
  48280. (Table 01370)
  48281. Values for Phar Lap file error code:
  48282. 01h DOS open error
  48283. 02h DOS seek error
  48284. 03h DOS read error
  48285. 04h not an .EXP or .REX file
  48286. 05h invalid file format
  48287. 06h -OFFSET is not a multiple of 64K
  48288. 07h -NOPAGE incompatible with -REALBREAK/-OFFSET
  48289. 08h DOS error loading .EXE file
  48290. (Table 01371)
  48291. Values for Phar Lap memory error code:
  48292. 01h out of physical memory
  48293. 02h out of swap space
  48294. 04h unable to change extended memory allocation
  48295. 05h -MAXPGMMEM exceeded
  48296. 06h insufficient low memory to REALBREAK value
  48297. 07h insufficient low memory for PSP and environment
  48298. --------E-21252BBH00-------------------------
  48299. INT 21 Pu - Phar Lap 386/DOS-Extender - CREATE UNMAPPED PAGES
  48300. AX = 252Bh
  48301. BH = 00h
  48302. ???
  48303. Return: ???
  48304. --------E-21252BBH01-------------------------
  48305. INT 21 Pu - Phar Lap 386/DOS-Extender - CREATE ALLOCATED PAGES
  48306. AX = 252Bh
  48307. BH = 01h
  48308. ???
  48309. Return: ???
  48310. --------E-21252BBH02-------------------------
  48311. INT 21 Pu - Phar Lap 386/DOS-Extender - CREATE PHYSICAL DEVICE PAGES
  48312. AX = 252Bh
  48313. BH = 02h
  48314. ???
  48315. Return: ???
  48316. --------E-21252BBH03-------------------------
  48317. INT 21 Pu - Phar Lap 386/DOS-Extender - MAP DATA FILE
  48318. AX = 252Bh
  48319. BH = 03h
  48320. ???
  48321. Return: ???
  48322. SeeAlso: AX=252Bh/BH=0Bh
  48323. --------E-21252BBH04-------------------------
  48324. INT 21 Pu - Phar Lap 386/DOS-Extender - GET PAGE TYPES
  48325. AX = 252Bh
  48326. BH = 04h
  48327. ???
  48328. Return: ???
  48329. Note: returns one word per page
  48330. SeeAlso: #01372
  48331. Bitfields for Phar Lap page information:
  48332. Bit(s) Description (Table 01372)
  48333. 7 mapped to read/write data file
  48334. 6 mapped to read-only data file
  48335. 5 swapped to disk
  48336. 4 locked
  48337. 3-0 page type
  48338. 0 unmapped
  48339. 1 allocated
  48340. 2 physical device page
  48341. --------E-21252B-----------------------------
  48342. INT 21 P - Phar Lap 386/DOS-Extender - VIRTUAL MEMORY MANAGEMENT - PAGE LOCKING
  48343. AX = 252Bh
  48344. BH = function
  48345. 05h lock pages
  48346. 06h unlock pages
  48347. BL = address type
  48348. 00h linear address
  48349. ECX = linear start address of memory region
  48350. 01h segmented address
  48351. ES:ECX -> start of memory region
  48352. EDX = size of memory region in bytes
  48353. Return: CF clear if successful
  48354. CF set on error
  48355. Note: this function is also supported by FlashTek X-32VM; if X-32 is not
  48356. using virtual memory, this function always succeeds
  48357. --------E-21252B-----------------------------
  48358. INT 21 Pu - Phar Lap 386/DOS-Extender - FREE PHYSICAL PAGES
  48359. AX = 252Bh
  48360. BH = function (07h,08h)
  48361. ???
  48362. Return: ???
  48363. --------E-21252BBH09-------------------------
  48364. INT 21 P - Phar Lap 386/DOS-Extender v4.1 - GET PAGETABLE ENTRY/PAGE TABLE INFO
  48365. AX = 252Bh
  48366. BH = 09h
  48367. BL = subfunction
  48368. 00h get page table entry by linear address
  48369. ECX = linear address for which to get page table entry
  48370. 01h get page table entry by logical address
  48371. ES:ECX = address for which to get page table entry
  48372. Return: CF clear if successful
  48373. EAX = page table entry
  48374. EBX = additional page table information
  48375. CF set on error
  48376. EAX = error code
  48377. 0009h invalid address
  48378. 0082h running under DPMI
  48379. SeeAlso: AX=251Dh,AX=252Bh/BH=0Ah
  48380. --------E-21252BBH0A-------------------------
  48381. INT 21 P - Phar Lap 386/DOS-Extender v4.1 - SET PAGETABLE ENTRY/PAGE TABLE INFO
  48382. AX = 252Bh
  48383. BH = 0Ah
  48384. BL = subfunction
  48385. 00h set page table entry for linear address
  48386. ECX = linear address for which to get page table entry
  48387. 01h set page table entry for logical address
  48388. ES:ECX = address for which to get page table entry
  48389. ESI = page table entry
  48390. EDI = additional page table information
  48391. Return: CF clear if successful
  48392. CF set on error
  48393. EAX = error code
  48394. 0009h invalid address
  48395. 0082h running under DPMI
  48396. SeeAlso: AX=252Bh/BH=09h
  48397. --------E-21252BBH0B-------------------------
  48398. INT 21 P - Phar Lap 386/DOS-Extender v4.1+ - MAP DATA FILE AT FILE OFFSET
  48399. AX = 252Bh
  48400. BH = 0Bh
  48401. BL = subfunction
  48402. 00h by linear address
  48403. ECX = linear address at which to map data file
  48404. 01h by logical address
  48405. ES:ECX = logical address at which to map data file
  48406. EDX = number of bytes to map
  48407. DS:ESI -> mapping structure (see #01373)
  48408. DS:EDI -> ASCIZ filename
  48409. Return: CF clear if successful
  48410. CF set on error
  48411. EAX = error code
  48412. 0002h file error
  48413. ECX = phase (01h opening file, 02h seeking, 03h reading)
  48414. EDX = error code returned by DOS
  48415. 0009h invalid address
  48416. 0081h invalid parameters or 386|VMM not present
  48417. 0086h all 386|VMM file handles already in use
  48418. SeeAlso: AX=252Bh/BH=03h,AX=252Bh/BH=09h
  48419. Format of Phar Lap mapping structure:
  48420. Offset Size Description (Table 01373)
  48421. 00h DWORD starting file offset to be mapped
  48422. 04h DWORD DOS file access and sharing modes (see #01403 at INT 21/AH=3Dh)
  48423. --------E-21252C-----------------------------
  48424. INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0 - ADD UNMAPPED PAGES AT END OF SEGMENT
  48425. AX = 252Ch
  48426. BX = segment selector
  48427. ECX = number of 4K pages to add
  48428. Return: CF clear if successful
  48429. EAX = offset in segment of beginning of unmapped pages
  48430. CF set on error
  48431. EAX = error code
  48432. 08h insufficent memory
  48433. 09h invalid selector
  48434. 82h not supported by current DPMI
  48435. --------E-21252D-----------------------------
  48436. INT 21 P - Phar Lap 386/DOS-Extender VMM v2.3+ - CLOSE VMM FILE HANDLE
  48437. AX = 252Dh
  48438. EBX = VMM file handle
  48439. Return: CF clear if successful
  48440. CF set on error
  48441. EAX = error code (81h invalid VMM handle)
  48442. --------E-21252E-----------------------------
  48443. INT 21 P - Phar Lap 386/DOS-Extender VMM v2.3+ - GET/SET VMM PARAMETERS
  48444. AX = 252Eh
  48445. CL = direction (00h get parameters, 01h set parameters)
  48446. DS:EBX -> parameter buffer (see #01374)
  48447. Return: CF clear if successful
  48448. CF set on error
  48449. EAX = error code (81h bad parameter value)
  48450. Format of Phar Lap VMM parameter buffer:
  48451. Offset Size Description (Table 01374)
  48452. 00h DWORD flags
  48453. bit 0: page fault logging enabled
  48454. ---v5.0+ ---
  48455. bit 1: swap extender to disk during DOS EXEC call
  48456. bit 2: don't zero allocated memory
  48457. 04h DWORD scan period for page aging, in milliseconds
  48458. 08h DWORD maximum size (in bytes) to check on each page scan
  48459. 0Ch 52 BYTEs unused
  48460. --------E-21252F-----------------------------
  48461. INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0 - WRITE RECORD TO VMM PAGE LOG FILE
  48462. AX = 252Fh
  48463. DS:EBX -> data to be written
  48464. CX = size of data in bytes
  48465. Return: CF clear if successful
  48466. CF set on error
  48467. EAX = error code (85h no page log file or not 386/VMM)
  48468. --------E-212530-----------------------------
  48469. INT 21 P - Phar Lap 386/DOS-Ext VMM v2.3+ - SET SIZE OF BUFFER FOR DOS CALLS
  48470. AX = 2530h
  48471. ECX = size of data buffer in bytes (1024 to 65536)
  48472. Return: CF clear if successful
  48473. CF set on error
  48474. EAX = error code
  48475. 08h insufficient low memory
  48476. 81h invalid size
  48477. SeeAlso: AX=2517h
  48478. --------E-212531-----------------------------
  48479. INT 21 P - Phar Lap 386/DOS-Extender VMM v3.0 - READ/WRITE LDT DESCRIPTOR
  48480. AX = 2531h
  48481. BX = segment selector
  48482. ECX = direction (00h read, 01h write)
  48483. DS:EDX -> 8-byte buffer for descriptor contents
  48484. Return: CF clear if successful
  48485. CF set on error
  48486. EAX = error code
  48487. 81h invalid selector
  48488. 82h DPMI running, or not a code or data segment
  48489. --------E-212532-----------------------------
  48490. INT 21 P - Phar Lap 386/DOS-Extender - GET EXCEPTION HANDLER VECTOR
  48491. AX = 2532h
  48492. CL = exception number (00h-0Fh)
  48493. Return: CF clear if successful
  48494. ES:EBX = CS:EIP of current exception handler
  48495. CF set on error (CL > 0Fh)
  48496. Notes: this call is also supported by the FlashTek X-32VM extender
  48497. this function is incompatible with 386|VMM; use AX=2522h instead
  48498. SeeAlso: AX=2522h,AX=2533h
  48499. --------E-212533-----------------------------
  48500. INT 21 P - Phar Lap 386/DOS-Extender - SET EXCEPTION HANDLER VECTOR
  48501. AX = 2533h
  48502. CL = exception number (00h-0Fh)
  48503. DS:EDX = CS:EIP of new exception handler
  48504. Return: CF clear if successful
  48505. CF set on error (CL > 0Fh)
  48506. Notes: this call is also supported by the FlashTek X-32VM extender
  48507. this function is incompatible with 386|VMM; use AX=2522h instead
  48508. SeeAlso: AX=2522h,AX=2532h
  48509. --------E-212534-----------------------------
  48510. INT 21 P - Phar Lap 386/DOS-Extender v3.0+ - GET INTERRUPT FLAG
  48511. AX = 2534h
  48512. Return: CF clear
  48513. EAX = interrupt state (00h disabled, 01h enabled)
  48514. --------E-212535-----------------------------
  48515. INT 21 P - Phar Lap 386/DOS-Extender v3.0+ - READ/WRITE SYSTEM REGISTERS
  48516. AX = 2535h
  48517. EBX = direction (00h read registers, 01h write)
  48518. DS:EDX -> system register record (see #01375)
  48519. Return: CF clear
  48520. Note: this call is only available under MS Windows if PHARLAP.386 VDD is
  48521. installed
  48522. Format of Phar Lap system register record:
  48523. Offset Size Description (Table 01375)
  48524. 00h DWORD CR0
  48525. 04h 4 DWORDs DR0,DR1,DR2,DR3
  48526. 14h 2 DWORDs reserved
  48527. 1Ch 2 DWORDs DR6,DR7
  48528. 24h 3 DWORDs reserved
  48529. --------E-212536----------------------------
  48530. INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0+ - MIN/MAX EXTENDED/CONV MEMORY USAGE
  48531. AX = 2536h
  48532. EBX = bit flags
  48533. bit 0: modifying conventional memory rather than extended memory
  48534. bit 1: setting maximum memory usage rather than minimum
  48535. ECX = new limit in 4K pages
  48536. Return: CF clear if successful
  48537. EAX = new limit
  48538. CF set on error
  48539. EAX = error code (08h memory error or -NOPAGE set)
  48540. EBX = maximum limit in pages
  48541. ECX = minimum limit in pages
  48542. --------E-212537----------------------------
  48543. INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0 - ALLOCATE DOS MEMORY ABOVE DOS BUFFER
  48544. AX = 2537h
  48545. BX = number of paragraphs to allocate
  48546. Return: CF clear if successful
  48547. AX = real-mode segment of allocated block
  48548. CF set on error
  48549. AX = error code
  48550. 07h MS-DOS memory chain corrupted
  48551. 08h insufficient low memory
  48552. BX = size in paragraphs of largest free block
  48553. SeeAlso: AH=48h
  48554. --------E-212538----------------------------
  48555. INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0 - READ PROTMODE REGS AFTER SFTWARE INT
  48556. AX = 2538h
  48557. DS:EBX -> buffer for registers (see #01368)
  48558. ECX = register record to retrieve
  48559. 00h first interrupt state
  48560. 01h next interrupt state
  48561. EDX = handle for current interrupt state
  48562. Return: CF clear if successful
  48563. DS:EBX buffer filled
  48564. EDX = handle of current interrupt state
  48565. ESI = number of interrupt which occurred
  48566. CF set on error
  48567. EAX = error code
  48568. 81h invalid handle in EDX
  48569. 83h register saving not enabled
  48570. 84h no more interrupt states
  48571. SeeAlso: AX=2527h,AX=2528h
  48572. --------E-212539----------------------------
  48573. INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0 - GET OFFSET OF .EXP FILE HEADER
  48574. AX = 2539h
  48575. BX = MS-DOS file handle for open file
  48576. Return: CF clear if successful
  48577. EAX = offset of .EXP header in file
  48578. CF set on error
  48579. EAX = error code (02h file error)
  48580. EBX = file error code
  48581. 02h DOS error seeking
  48582. 03h DOS error reading
  48583. 04h invalid file type
  48584. 05h invalid file format
  48585. ECX = DOS error code if EBX=02h or 03h
  48586. current file position in file modified
  48587. --------E-21253A----------------------------
  48588. INT 21 P - Phar Lap 386/DOS-Extender v3.0+ - INSTALL MOD. SEG FAILURE HANDLER
  48589. AX = 253Ah
  48590. ES:EBX -> function to be called when INT 21/AH=4Ah is about to return
  48591. an error
  48592. Return: CF clear
  48593. ES:EBX -> previous handler
  48594. SeeAlso: AH=4Ah
  48595. --------E-21253B----------------------------
  48596. INT 21 P - Phar Lap 386/DOS-Extender v3.0+ - JUMP TO REAL MODE CODE, NO CONTEXT
  48597. AX = 253Bh
  48598. DS:EBX -> buffer containing register contents (see #01368)
  48599. Return: never returns
  48600. SeeAlso: AX=2528h
  48601. --------E-21253C-----------------------------
  48602. INT 21 P - Phar Lap 386/DOS-Extender VMM v3.0+ - SHRINK 386|VMM SWAP FILE
  48603. AX = 253Ch
  48604. Return: CF clear
  48605. EAX = old size of swap file in bytes
  48606. EBX = new size of swap file in bytes
  48607. --------E-21253D-----------------------------
  48608. INT 21 P - Phar Lap 386/DOS-Extender v4.0+ - READ/WRITE IDT DESCRIPTOR
  48609. AX = 253Dh
  48610. BL = interrupt number
  48611. ECX = direction (0 = read, 1 = write)
  48612. DS:EDX -> 8-byte buffer for descriptor
  48613. Return: CF clear if successful
  48614. DS:EDX filled if reading
  48615. CF set on error
  48616. EAX = error code (0082h if running under DPMI)
  48617. Desc: access hardware-level IDT rather than the internal 386/DOS-Extender
  48618. shadow IDT
  48619. Notes: this call will always fail under DPMI because it is not possible to
  48620. access the IDT
  48621. the descriptor is not checked when writing
  48622. this call can normally be used only by programs running in ring 0
  48623. because the processor does not allow an interrupt to be vectored to
  48624. a less privileged ring
  48625. --------E-21253F-----------------------------
  48626. INT 21 Pu - Phar Lap 386/DOS-Extender v6.0+ - ALLOCATE LDT DESCRIPTOR
  48627. AX = 253Fh
  48628. BX = LDT descriptor to allocate (0000h for any)
  48629. ???
  48630. Return: ???
  48631. --------E-212540-----------------------------
  48632. INT 21 Pu - Phar Lap 386/DOS-Extender v6.0+ - FORCE ALIAS OF SEGMENT
  48633. AX = 2540h
  48634. ???
  48635. Return: ???
  48636. --------E-212544-----------------------------
  48637. INT 21 Pu - Phar Lap 386/DOS-Extender v6.0+ - FREE DLL
  48638. AX = 2544h
  48639. ???
  48640. Return: ???
  48641. --------E-212545-----------------------------
  48642. INT 21 Pu - Phar Lap 386/DOS-Extender v6.0+ - GET/SET PROCEDURE ADDRESS
  48643. AX = 2545h
  48644. ECX = direction (00h get, 01h set)
  48645. ???
  48646. Return: ???
  48647. --------E-212546-----------------------------
  48648. INT 21 Pu - Phar Lap 386/DOS-Extender v6.0+ - GET MODULE HANDLE
  48649. AX = 2546h
  48650. ???
  48651. Return: ???
  48652. --------E-2125C0-----------------------------
  48653. INT 21 P - Phar Lap 386/DOS-Extender - ALLOCATE MS-DOS MEMORY BLOCK
  48654. AX = 25C0h
  48655. BX = number of 16-byte paragraphs of MS-DOS memory requested
  48656. Return: CF clear if successful
  48657. AX = real-mode paragraph address of memory
  48658. CF set on error
  48659. AX = error code
  48660. 07h MS-DOS memory control blocks destroyed
  48661. 08h insufficient memory
  48662. BX = size in paragraphs of largest available memory block
  48663. SeeAlso: AX=25C1h,AX=25C2h
  48664. --------E-2125C1-----------------------------
  48665. INT 21 P - Phar Lap 386/DOS-Extender - RELEASE MS-DOS MEMORY BLOCK
  48666. AX = 25C1h
  48667. CX = real-mode paragraph address of memory block to free
  48668. Return: CF clear if successful
  48669. EAX destroyed
  48670. CF set on error
  48671. AX = error code
  48672. 07h MS-DOS memory control blocks destroyed
  48673. 09h invalid memory block address in CX
  48674. SeeAlso: AX=25C0h,AX=25C2h
  48675. --------E-2125C2-----------------------------
  48676. INT 21 P - Phar Lap 386/DOS-Extender - MODIFY MS-DOS MEMORY BLOCK
  48677. AX = 25C2h
  48678. BX = new requested block size in paragraphs
  48679. CX = real-mode paragraph address of memory block to modify
  48680. Return: CF clear if successful
  48681. EAX destroyed
  48682. CF set on error
  48683. AX = error code
  48684. 07h MS-DOS memory control blocks destroyed
  48685. 08h insufficient memory
  48686. 09h invalid memory block address in CX
  48687. BX = size in paragraphs of largest available memory block
  48688. SeeAlso: AX=25C0h,AX=25C1h
  48689. --------E-2125C3-----------------------------
  48690. INT 21 P - Phar Lap 386/DOS-Extender - EXECUTE PROGRAM
  48691. AX = 25C3h
  48692. ES:EBX -> pointer to parameter block (see #01377)
  48693. DS:EDX -> pointer to ASCIZ program filename
  48694. Return: CF clear if successful
  48695. all registers unchanged
  48696. CF set on error
  48697. EAX = error code (see #01376)
  48698. (Table 01376)
  48699. Values for Phar Lap error code:
  48700. 01h function code in AL is invalid ???
  48701. 02h file not found or path invalid
  48702. 05h access denied
  48703. 08h insufficient memory to load program
  48704. 0Ah environment invalid
  48705. 0Bh invalid file format
  48706. Format of parameter block:
  48707. Offset Size Description (Table 01377)
  48708. 00h DWORD 32-bit offset of environment string
  48709. 04h WORD segment selector of environment string
  48710. 06h DWORD 32-bit offset of command-tail string
  48711. 0Ah WORD segment selector of command-tail string
  48712. --------D-2126-------------------------------
  48713. INT 21 - DOS 1+ - CREATE NEW PROGRAM SEGMENT PREFIX
  48714. AH = 26h
  48715. DX = segment at which to create PSP (see #01378)
  48716. Return: AL destroyed
  48717. Notes: new PSP is updated with memory size information; INTs 22h, 23h, 24h
  48718. taken from interrupt vector table; the parent PSP field is set to 0
  48719. (DOS 2+) DOS assumes that the caller's CS is the segment of the PSP to
  48720. copy
  48721. SeeAlso: AH=4Bh,AH=50h,AH=51h,AH=55h,AH=62h,AH=67h
  48722. Format of Program Segment Prefix (PSP):
  48723. Offset Size Description (Table 01378)
  48724. 00h 2 BYTEs INT 20 instruction for CP/M CALL 0 program termination
  48725. the CDh 20h here is often used as a signature for a valid PSP
  48726. 02h WORD segment of first byte beyond memory allocated to program
  48727. 04h BYTE (DOS) unused filler
  48728. (OS/2) count of fake DOS version returns
  48729. 05h BYTE CP/M CALL 5 service request (FAR CALL to absolute 000C0h)
  48730. BUG: (DOS 2+ DEBUG) PSPs created by DEBUG point at 000BEh
  48731. 06h WORD CP/M compatibility--size of first segment for .COM files
  48732. 08h 2 BYTEs remainder of FAR JMP at 05h
  48733. 0Ah DWORD stored INT 22 termination address
  48734. 0Eh DWORD stored INT 23 control-Break handler address
  48735. 12h DWORD DOS 1.1+ stored INT 24 critical error handler address
  48736. 16h WORD segment of parent PSP
  48737. 18h 20 BYTEs DOS 2+ Job File Table, one byte per file handle, FFh = closed
  48738. 2Ch WORD DOS 2+ segment of environment for process (see #01379)
  48739. 2Eh DWORD DOS 2+ process's SS:SP on entry to last INT 21 call
  48740. 32h WORD DOS 3+ number of entries in JFT (default 20)
  48741. 34h DWORD DOS 3+ pointer to JFT (default PSP:0018h)
  48742. 38h DWORD DOS 3+ pointer to previous PSP (default FFFFFFFFh in 3.x)
  48743. used by SHARE in DOS 3.3
  48744. 3Ch BYTE DOS 4+ (DBCS) interim console flag (see AX=6301h)
  48745. Novell DOS 7 DBCS interim flag as set with AX=6301h
  48746. (possibly also used by Far East MS-DOS 3.2-3.3)
  48747. 3Dh BYTE (APPEND) TrueName flag (see INT 2F/AX=B711h)
  48748. 3Eh BYTE (Novell NetWare) flag: next byte initialized if CEh
  48749. (OS/2) capabilities flag
  48750. 3Fh BYTE (Novell NetWare) Novell task number if previous byte is CEh
  48751. 40h 2 BYTEs DOS 5+ version to return on INT 21/AH=30h
  48752. 42h WORD (MSWindows3) selector of next PSP (PDB) in linked list
  48753. Windows keeps a linked list of Windows programs only
  48754. 44h WORD (MSWindows3) "PDB_Partition"
  48755. 46h WORD (MSWindows3) "PDB_NextPDB"
  48756. 48h BYTE (MSWindows3) bit 0 set if non-Windows application (WINOLDAP)
  48757. 49h BYTE unused by DOS versions <= 6.00
  48758. 4Ch WORD (MSWindows3) "PDB_EntryStack"
  48759. 4Eh 2 BYTEs unused by DOS versions <= 6.00
  48760. 50h 3 BYTEs DOS 2+ service request (INT 21/RETF instructions)
  48761. 53h 2 BYTEs unused in DOS versions <= 6.00
  48762. 55h 7 BYTEs unused in DOS versions <= 6.00; can be used to make first FCB
  48763. into an extended FCB
  48764. 5Ch 16 BYTEs first default FCB, filled in from first commandline argument
  48765. overwrites second FCB if opened
  48766. 6Ch 16 BYTEs second default FCB, filled in from second commandline argument
  48767. overwrites beginning of commandline if opened
  48768. 7Ch 4 BYTEs unused
  48769. 80h 128 BYTEs commandline / default DTA
  48770. command tail is BYTE for length of tail, N BYTEs for the tail,
  48771. followed by a BYTE containing 0Dh
  48772. Notes: in DOS v3+, the limit on simultaneously open files may be increased by
  48773. allocating memory for a new open file table, filling it with FFh,
  48774. copying the first 20 bytes from the default table, and adjusting the
  48775. pointer and count at 34h and 32h. However, DOS will only copy the
  48776. first 20 file handles into a child PSP (including the one created on
  48777. EXEC).
  48778. in an OS/2 DOS box, values of D0h-FEh in the open file table indicate
  48779. device drivers
  48780. network redirectors based on the original MS-Net implementation use
  48781. values of 80h-FEh in the open file table to indicate remote files;
  48782. Novell NetWare also uses values from FEh down to 80h or one more than
  48783. FILES= (whichever is greater) to indicate remote files (except on
  48784. OS/2, where is uses CFh down to 80h)
  48785. MS-DOS 5.00 incorrectly fills the FCB fields when loading a program
  48786. high; the first FCB is empty and the second contains the first
  48787. parameter
  48788. some DOS extenders place protected-mode values in various PSP fields
  48789. such as the "parent" field, which can confuse PSP walkers. Always
  48790. check either for the CDh 20h signature or that the suspected PSP is
  48791. at the beginning of a memory block which owns itself (the preceding
  48792. paragraph should be a valid MCB with "owner" the same as the
  48793. suspected PSP).
  48794. Novell NetWare updates the fields at offsets 3Eh and 3Fh without
  48795. checking that a legal PSP segment is current; see AH=50h for further
  48796. discussion
  48797. for 4DOS and Windows95, the command tail may be more than 126
  48798. characters; in that case, the length byte will be set to 7Fh (with
  48799. an 0Dh in the 127th position at offset FFh), and the first 126
  48800. characters will be stored in the PSP, with the entire command line
  48801. in the environment variable CMDLINE; under at least some versions
  48802. of 4DOS, the byte at offset FFh is *not* set to 0Dh, so there is no
  48803. terminating carriage return in the PSP's command tail.
  48804. Format of environment block:
  48805. Offset Size Description (Table 01379)
  48806. 00h N BYTEs first environment variable, ASCIZ string of form "var=value"
  48807. N BYTEs second environment variable, ASCIZ string
  48808. ...
  48809. N BYTEs last environment variable, ASCIZ string of form "var=value"
  48810. BYTE 00h
  48811. ---DOS 3.0+ ---
  48812. WORD number of strings following environment (normally 1)
  48813. N BYTEs ASCIZ full pathname of program owning this environment
  48814. other strings may follow
  48815. --------D-2127-------------------------------
  48816. INT 21 - DOS 1+ - RANDOM BLOCK READ FROM FCB FILE
  48817. AH = 27h
  48818. CX = number of records to read
  48819. DS:DX -> opened FCB (see #01345)
  48820. Return: AL = status
  48821. 00h successful, all records read
  48822. 01h end of file, no data read
  48823. 02h segment wrap in DTA, no data read
  48824. 03h end of file, partial read
  48825. Disk Transfer Area filled with records read from file
  48826. CX = number of records read (return AL = 00h or 03h)
  48827. Notes: read begins at current file position as specified in FCB; the file
  48828. position is updated after reading
  48829. not supported by MS Windows 3.0 DOSX.EXE DOS extender
  48830. SeeAlso: AH=21h,AH=28h,AH=3Fh"DOS"
  48831. --------D-2128-------------------------------
  48832. INT 21 - DOS 1+ - RANDOM BLOCK WRITE TO FCB FILE
  48833. AH = 28h
  48834. CX = number of records to write
  48835. DS:DX -> opened FCB (see #01345)
  48836. Disk Transfer Area contains records to be written
  48837. Return: AL = status
  48838. 00h successful
  48839. 01h disk full or file read-only
  48840. 02h segment wrap in DTA
  48841. CX = number of records written
  48842. Notes: write begins at current file position as specified in FCB; the file
  48843. position is updated after writing
  48844. if CX = 0000h on entry, no data is written; instead the file size is
  48845. adjusted to be the same as the file position specified by the random
  48846. record and record size fields of the FCB
  48847. if the data to be written is less than a disk sector, it is copied into
  48848. a DOS disk buffer, to be written out to disk at a later time
  48849. not supported by MS Windows 3.0 DOSX.EXE DOS extender
  48850. SeeAlso: AH=22h,AH=27h,AH=40h,AH=59h/BX=0000h
  48851. --------D-2129-------------------------------
  48852. INT 21 - DOS 1+ - PARSE FILENAME INTO FCB
  48853. AH = 29h
  48854. AL = parsing options (see #01380)
  48855. DS:SI -> filename string (both '*' and '?' wildcards OK)
  48856. ES:DI -> buffer for unopened FCB
  48857. Return: AL = result code
  48858. 00h successful parse, no wildcards encountered
  48859. 01h successful parse, wildcards present
  48860. FFh failed (invalid drive specifier)
  48861. DS:SI -> first unparsed character
  48862. ES:DI buffer filled with unopened FCB (see #01345)
  48863. Notes: asterisks expanded to question marks in the FCB
  48864. all processing stops when a filename terminator is encountered
  48865. cannot be used with filespecs which include a path (DOS 2+)
  48866. Novell NetWare monitors the result code since an 'invalid drive' may
  48867. signal an attempt to reconnect a network drive; if there are no
  48868. connections to the specified drive, NetWare attempts to build a
  48869. connection and map the drive to the SYS:LOGIN directory
  48870. SeeAlso: AH=0Fh,AH=16h,AH=26h
  48871. Bitfields for parsing options:
  48872. Bit(s) Description (Table 01380)
  48873. 0 skip leading separators
  48874. 1 use existing drive number in FCB if no drive is specified, instead of
  48875. setting field to zero
  48876. 2 use existing filename in FCB if no base name is specified, instead of
  48877. filling field with blanks
  48878. 3 use existing extension in FCB if no extension is specified, instead of
  48879. filling field with blanks
  48880. 4-7 reserved (0)
  48881. --------D-212A-------------------------------
  48882. INT 21 - DOS 1+ - GET SYSTEM DATE
  48883. AH = 2Ah
  48884. Return: CX = year (1980-2099)
  48885. DH = month
  48886. DL = day
  48887. ---DOS 1.10+---
  48888. AL = day of week (00h=Sunday)
  48889. SeeAlso: AH=2Bh"DOS",AH=2Ch,AH=E7h"Novell",INT 1A/AH=04h,INT 2F/AX=120Dh
  48890. --------D-212B-------------------------------
  48891. INT 21 - DOS 1+ - SET SYSTEM DATE
  48892. AH = 2Bh
  48893. CX = year (1980-2099)
  48894. DH = month (1-12)
  48895. DL = day (1-31)
  48896. Return: AL = status
  48897. 00h successful
  48898. FFh invalid date, system date unchanged
  48899. Note: DOS 3.3+ also sets CMOS clock; due to the limitations of the CLOCK$
  48900. driver interface, the CMOS time is also updated to the current
  48901. DOS time (which is the BIOS time-of-day clock with the default
  48902. CLOCK$ driver)
  48903. SeeAlso: AH=2Ah,AH=2Dh,INT 1A/AH=05h
  48904. --------E-212B--CX4149-----------------------
  48905. INT 21 - AI Architects - ??? - INSTALLATION CHECK
  48906. AH = 2Bh
  48907. CX = 4149h ('AI')
  48908. DX = 413Fh ('A?')
  48909. Return: AL <> FFh if installed
  48910. Note: Borland's TKERNEL makes this call
  48911. --------c-212B--CX4358-----------------------
  48912. INT 21 - Super PC-Kwik v3.20+ - INSTALLATION CHECK
  48913. AH = 2Bh
  48914. CX = 4358h ('CX')
  48915. Return: AL = FFh if PC-Kwik/PC-Cache not installed
  48916. AL = 00h if installed
  48917. CF clear
  48918. CX = 6378h ('cx')
  48919. BX = ???
  48920. DX = version (DH = major version, DL = binary minor version)
  48921. Note: PC Tools PC-Cache v5.x and Qualitas Qcache v4.00 are OEM versions of
  48922. Super PC-Kwik, and thus support this call (PC-Cache 5.1 corresponds
  48923. to PC-Kwik v3.20)
  48924. SeeAlso: INT 13/AH=A0h,INT 13/AH=B0h,INT 16/AX=FFA5h/CX=1111h
  48925. Index: PC-Cache;installation check|Qualitas Qcache;installation check
  48926. Index: installation check;PC-Cache 5.x|installation check;Qualitas Qcache
  48927. --------Q-212B--CX4445-----------------------
  48928. INT 21 - DESQview - INSTALLATION CHECK
  48929. AH = 2Bh
  48930. CX = 4445h ('DE')
  48931. DX = 5351h ('SQ')
  48932. AL = subfunction (DV v2.00+)
  48933. 01h get version
  48934. Return: BX = version (BH = major, BL = minor)
  48935. Note: early copies of v2.00 return 0002h
  48936. 02h get shadow buffer info, and start shadowing
  48937. Return: BH = rows in shadow buffer
  48938. BL = columns in shadow buffer
  48939. DX = segment of shadow buffer
  48940. 04h get shadow buffer info
  48941. Return: BH = rows in shadow buffer
  48942. BL = columns in shadow buffer
  48943. DX = segment of shadow buffer
  48944. 05h stop shadowing
  48945. Return: AL = FFh if DESQview not installed
  48946. Notes: in DESQview v1.x, there were no subfunctions; this call only identified
  48947. whether or not DESQview was loaded. DESQview v2.52 performs function
  48948. 01h for all subfunction requests 0Ch and higher and appears to ignore
  48949. all lower-numbered functions not listed here.
  48950. DESQview versions 2.50-2.52 are part of DESQview/X v1.0x; version 2.53
  48951. is part of DESQview/X v1.10; and version 2.63 is part of DESQview/X
  48952. v2.00.
  48953. BUG: subfunction 05h does not appear to work correctly in DESQview 2.52
  48954. SeeAlso: INT 10/AH=FEh,INT 10/AH=FFh,INT 15/AX=1024h,INT 15/AX=DE30h
  48955. --------U-212B--CX454C-----------------------
  48956. INT 21 - ELRES v1.1 - INSTALLATION CHECK
  48957. AH = 2Bh
  48958. CX = 454Ch ('EL')
  48959. DX = 5253h ('RS')
  48960. Return: ES:BX -> ELRES history structure (see #01381)
  48961. DX = DABEh (signature, DAve BEnnett)
  48962. Program: ELRES is an MS-DOS return code (errorlevel) recorder by David H.
  48963. Bennett which stores recent errorlevel values, allows them to be
  48964. retrieved for use in batch files, and can place them in an
  48965. environment variable
  48966. SeeAlso: AH=4Bh"ELRES",AH=4Dh
  48967. Format of ELRES history structure:
  48968. Offset Size Description (Table 01381)
  48969. 00h WORD number of return codes which can be stored by following buffer
  48970. 02h WORD current position in buffer (treated as a ring)
  48971. 04h N BYTEs ELRES buffer
  48972. --------l-212B00CX5643-----------------------
  48973. INT 21 - The Volkov Commander - GET POINTER TO LEFT PANEL DATA STRUCTURE
  48974. AX = 2B00h
  48975. CX = 5643h ('VC')
  48976. DX = 4F4Dh ('OM')
  48977. Return: AL = 0
  48978. ES:BX -> left panel data structure
  48979. Program: Volcov Commander is a shell for MS-DOS by Vsevolod V. Volkov
  48980. SeeAlso: AX=2B01h/CX=5643h,AX=2B02h/CX=5643h
  48981. --------l-212B01CX5643-----------------------
  48982. INT 21 - The Volkov Commander - GET POINTER TO RIGHT PANEL DATA STRUCTURE
  48983. AX = 2B01h
  48984. CX = 5643h ('VC')
  48985. DX = 4F4Dh ('OM')
  48986. Return: AL = 0
  48987. ES:BX -> right panel data structure
  48988. SeeAlso: AX=2B00h/CX=5643h,AX=2B02h/CX=5643h
  48989. --------l-212B02CX5643-----------------------
  48990. INT 21 - The Volkov Commander - GET POINTER TO GLOBAL VARIABLES
  48991. AX = 2B02h
  48992. CX = 5643h ('VC')
  48993. DX = 4F4Dh ('OM')
  48994. Return: AL = 0
  48995. ES:BX -> global variables
  48996. SeeAlso: AX=2B00h/CX=5643h,AX=2B01h/CX=5643h
  48997. --------m-212B01CX444D-----------------------
  48998. INT 21 - Quarterdeck DOS-UP.SYS v2.00 - INSTALLATION CHECK
  48999. AX = 2B01h
  49000. CX = 444Dh ('DM')
  49001. DX = 4158h ('AX')
  49002. Return: AX = 0000h if installed
  49003. BX = DOS-UP version (BH = minor, BL = major)
  49004. CX = 4845h ('HE')
  49005. DX = 5245h ('RE')
  49006. ES = DOS-UP driver segment
  49007. --------T-212B01CX5441-----------------------
  49008. INT 21 - TAME v2.10+ - INSTALLATION CHECK
  49009. AX = 2B01h
  49010. CX = 5441h ('TA')
  49011. DX = 4D45h ('ME')
  49012. ---v2.60---
  49013. BH = ???
  49014. 00h skip ???, else do
  49015. Return: AL = 02h if installed
  49016. ES:DX -> data area in TAME-RES (see #01382,#01386,#01388)
  49017. Program: TAME is a shareware program by David G. Thomas which gives up CPU
  49018. time to other partitions under a multitasker when the current
  49019. partition's program incessantly polls the keyboard or system time
  49020. Format of TAME 2.10-2.20 data area:
  49021. Offset Size Description (Table 01382)
  49022. 00h BYTE data structure minor version number (01h in TAME 2.20)
  49023. 01h BYTE data structure major version number (07h in TAME 2.20)
  49024. 02h DWORD number of task switches
  49025. 06h DWORD number of keyboard polls
  49026. 0Ah DWORD number of time polls
  49027. 0Eh DWORD number of times DESQview told program runs only in foreground
  49028. 12h DWORD original INT 10h
  49029. 16h DWORD original INT 14h
  49030. 1Ah DWORD original INT 15h
  49031. 1Eh DWORD original INT 16h
  49032. 22h DWORD original INT 17h
  49033. 26h DWORD original INT 21h
  49034. 2Ah DWORD original INT 28h
  49035. 2Eh WORD offset of TAME INT 10h handler
  49036. 30h WORD offset of TAME INT 14h handler
  49037. 32h WORD offset of TAME INT 15h handler
  49038. 34h WORD offset of TAME INT 16h handler
  49039. 36h WORD offset of TAME INT 17h handler
  49040. 38h WORD offset of TAME INT 21h handler
  49041. 3Ah WORD offset of TAME INT 28h handler
  49042. 3Ch WORD X in /max:X,Y or /freq:X,Y
  49043. 3Eh WORD Y in /max:X,Y or /freq:X,Y
  49044. 40h WORD number of polls remaining before next task switch
  49045. 42h WORD /KEYIDLE value
  49046. 44h BYTE interrupts already grabbed by TAME (see #01383)
  49047. 45h BYTE flags for interrupts which may be acted on (same bits as above)
  49048. 46h BYTE TAME enabled (01h) or disabled (00h)
  49049. 47h BYTE /TIMEPOLL (01h) or /NOTIMEPOLL (00h)
  49050. 48h BYTE /NOTIMER (01h) or /TIMER (00h)
  49051. 49h BYTE window or task number for this task
  49052. 4Ah BYTE multitasker type (see #01384)
  49053. 4Bh BYTE type of task switching selected
  49054. bit 0: DESQview???
  49055. bit 1: DoubleDOS???
  49056. bit 2: TopView???
  49057. bit 3: KeySwitch
  49058. bit 4: HLT instruction
  49059. 4Ch BYTE ???
  49060. 4Dh BYTE flags
  49061. bit 1: /FREQ instead of /MAX
  49062. 4Eh BYTE /FG: value
  49063. 4Fh BYTE task switches left until next FGONLY DESQview API call
  49064. 50h BYTE ???
  49065. Bitfields for interrupts already grabbed by TAME:
  49066. Bit(s) Description (Table 01383)
  49067. 0 INT 10h
  49068. 1 INT 14h
  49069. 2 INT 15h
  49070. 3 INT 16h
  49071. 4 INT 17h
  49072. 5 INT 21h
  49073. 6 INT 28h
  49074. (Table 01384)
  49075. Values for multitasker type:
  49076. 01h DESQview
  49077. 02h DoubleDOS
  49078. 03h TopView
  49079. 04h OmniView
  49080. 05h VM/386
  49081. Bitfields for type of task switching selected:
  49082. Bit(s) Description (Table 01385)
  49083. 0 DESQview
  49084. 1 DoubleDOS
  49085. 2 TopView
  49086. 3 OmniView
  49087. 4 KeySwitch
  49088. 5 HLT instruction
  49089. Format of TAME 2.30 data area:
  49090. Offset Size Description (Table 01386)
  49091. 00h BYTE data structure minor version number (02h in TAME 2.30)
  49092. 01h BYTE data structure major version number (0Ah in TAME 2.30)
  49093. 02h DWORD number of task switches
  49094. 06h DWORD number of keyboard polls
  49095. 0Ah DWORD number of time polls
  49096. 0Eh DWORD number of times DESQview told program runs only in foreground
  49097. 12h DWORD time of last /CLEAR or TAME-RES load
  49098. 16h DWORD time yielded
  49099. 1Ah DWORD time spent polling
  49100. 1Eh DWORD time spent waiting on key input with INT 16/AH=01h,11h
  49101. 22h DWORD original INT 10h
  49102. 26h DWORD original INT 14h
  49103. 2Ah DWORD original INT 15h
  49104. 2Eh DWORD original INT 16h
  49105. 32h DWORD original INT 17h
  49106. 36h DWORD original INT 21h
  49107. 3Ah DWORD original INT 28h
  49108. 3Eh WORD offset of TAME INT 10h handler
  49109. 40h WORD offset of TAME INT 14h handler
  49110. 42h WORD offset of TAME INT 15h handler
  49111. 44h WORD offset of TAME INT 16h handler
  49112. 46h WORD offset of TAME INT 17h handler
  49113. 48h WORD offset of TAME INT 21h handler
  49114. 4Ah WORD offset of TAME INT 28h handler
  49115. 4Ch WORD X in /max:X,Y or /freq:X,Y
  49116. 4Eh WORD Y in /max:X,Y or /freq:X,Y
  49117. 50h WORD number of polls remaining before next task switch
  49118. 52h WORD /KEYIDLE value
  49119. 54h WORD /FG: value
  49120. 56h WORD task switches left until next FGONLY DESQview API call
  49121. 58h WORD multitasker version
  49122. 5Ah WORD virtual screen segment
  49123. 5Ch BYTE interrupts already grabbed by TAME (see #01383)
  49124. 5Dh BYTE flags for interrupts which may be acted on (same bits as above)
  49125. 5Eh BYTE window or task number for this task
  49126. 5Fh BYTE multitasker type (see #01384)
  49127. 60h BYTE type of task switching selected (bit flags) (see #01385)
  49128. 61h BYTE watch_DOS
  49129. 62h BYTE action flags (see #01387)
  49130. 63h BYTE old status
  49131. 64h WORD signature DA34h
  49132. Bitfields for TAME action flags:
  49133. Bit(s) Description (Table 01387)
  49134. 0 TAME enabled
  49135. 1 /FREQ instead of /MAX (X and Y count fields are per tick)
  49136. 2 /TIMEPOLL
  49137. 3 /KEYPOLL
  49138. 4 inhibit timer
  49139. 5 enable status monitoring
  49140. SeeAlso: #01386,#01388
  49141. Format of TAME 2.60 data area:
  49142. Offset Size Description (Table 01388)
  49143. 00h BYTE data structure minor version number (02h in TAME 2.60)
  49144. 01h BYTE data structure major version number (0Bh in TAME 2.60)
  49145. 02h DWORD number of task switches
  49146. 06h DWORD number of keyboard polls
  49147. 0Ah DWORD number of time polls
  49148. 0Eh DWORD number of times DESQview told program runs only in foreground
  49149. 12h DWORD time of last /CLEAR or TAME-RES load
  49150. 16h DWORD time yielded
  49151. 1Ah DWORD time spent polling
  49152. 1Eh DWORD time spent waiting on key input with INT 16/AH=01h,11h
  49153. 22h 4 BYTEs ???
  49154. 26h DWORD original INT 10h
  49155. 2Ah DWORD original INT 14h
  49156. 2Eh DWORD original INT 15h
  49157. 32h DWORD original INT 16h
  49158. 36h DWORD original INT 17h
  49159. 3Ah DWORD original INT 21h
  49160. 3Eh DWORD original INT 28h
  49161. 42h WORD offset of TAME INT 10h handler
  49162. 44h WORD offset of TAME INT 14h handler
  49163. 46h WORD offset of TAME INT 15h handler
  49164. 48h WORD offset of TAME INT 16h handler
  49165. 4Ah WORD offset of TAME INT 17h handler
  49166. 4Ch WORD offset of TAME INT 21h handler
  49167. 4Eh WORD offset of TAME INT 28h handler
  49168. 50h WORD X in /max:X,Y or /freq:X,Y
  49169. 52h WORD Y in /max:X,Y or /freq:X,Y
  49170. 54h WORD number of polls remaining before next task switch
  49171. 56h WORD /KEYIDLE value
  49172. 58h 4 BYTEs ???
  49173. 5Ch WORD X in /boost:X,Y
  49174. 5Eh WORD Y in /boost:X,Y
  49175. 60h WORD /FG: value
  49176. 62h WORD task switches remaining until next FGONLY DESQview API call
  49177. 64h WORD multitasker version ???
  49178. 66h WORD virtual screen segment
  49179. 68h BYTE interrupts already grabbed by TAME (see #01383)
  49180. 69h BYTE flags for interrupts which may be acted on (same bits as above)
  49181. 6Ah BYTE window or task number for this task
  49182. 6Bh BYTE multitasker type (see #01384)
  49183. 6Ch BYTE type of task switching selected (bit flags) (see #01385)
  49184. 6Dh BYTE watch_DOS
  49185. 6Eh BYTE action flags (see #01387)
  49186. 6Fh BYTE old status
  49187. 70h WORD signature DA34h
  49188. --------v-212B16CX0643-----------------------
  49189. INT 21 - VIRUS - "Maltese Amoeba" - INSTALLATION CHECK
  49190. AX = 2B16h
  49191. CX = 0643h
  49192. Return: AX = 1603h if installed
  49193. --------R-212B44BX4D41-----------------------
  49194. INT 21 - pcANYWHERE IV/LAN - INSTALLATION CHECK
  49195. AX = 2B44h ('D')
  49196. BX = 4D41h ('MA')
  49197. CX = 7063h ('pc')
  49198. DX = 4157h ('AW')
  49199. Return: AX = resident program
  49200. 4F4Bh ('OK') if large host resident
  49201. 6F6Bh ('ok') if small host resident
  49202. CX:DX -> API entry point (see #01389)
  49203. SeeAlso: INT 16/AH=79h
  49204. (Table 01389)
  49205. Call pcANYWHERE API entry point with:
  49206. AX = 0000h get pcANYWHERE IV version
  49207. DS:SI -> BYTE buffer for host type code
  49208. Return: AH = version number
  49209. AL = revision number
  49210. DS:DI buffer byte filled with
  49211. 00h full-featured host
  49212. 01h limited-feature LAN host
  49213. other API may not be supported
  49214. AX = 0001h initialize operation
  49215. DS:SI -> initialization request structure (see #01390)
  49216. Return: AX = function status (see #01393)
  49217. AX = 0002h get status
  49218. Return: AH = current operating mode (see #01390)
  49219. AL = current connection status (see #01392)
  49220. AX = 0003h suspend remote screen updates
  49221. Return: AX = function status (see #01393)
  49222. AX = 0004h resume screen updates
  49223. Return: AX = function status (see #01393)
  49224. AX = 0005h end current remote access session
  49225. DS:SI -> termination request structure (see #01391)
  49226. Return: AX = function status (see #01393)
  49227. AX = 0006h remove pcANYWHERE IV from memory
  49228. Return: AX = status (see #01393)
  49229. AX = 8000h read data from communications channel
  49230. DS:BX -> buffer
  49231. CX = buffer size
  49232. Return: AX >= number of characters read/available
  49233. AX < 0 on error
  49234. AX = 8001h write data to communications channel
  49235. DS:BX -> buffer
  49236. CX = buffer size
  49237. Return: AX >= number of characters written
  49238. AX < 0 on error
  49239. AX = 8002h get connection status
  49240. Return: AX = status
  49241. > 0000h if connection active
  49242. = 0000h if connection lost
  49243. < 0000h on error
  49244. Format of pcANYWHERE initialization request structure:
  49245. Offset Size Description (Table 01390)
  49246. 00h BYTE operating mode
  49247. 00h wait for a call
  49248. 01h hot key activates
  49249. 02h incoming call activates
  49250. 03h initiate a call
  49251. 01h 3 BYTEs user ID to append to config file names
  49252. 04h WORD DS-relative pointer to path for config files
  49253. 06h WORD DS-relative pointer to path for program files
  49254. Format of pcANYWHERE termination request structure:
  49255. Offset Size Description (Table 01391)
  49256. 00h BYTE operating mode after termination
  49257. 00h wait for a call
  49258. 01h hot key activates
  49259. 02h incoming call activates
  49260. 80h use current mode
  49261. FFh remove from memory
  49262. Bitfields for current connection status:
  49263. Bit(s) Description (Table 01392)
  49264. 0 a physical connection is active
  49265. 1 remove screen updating is active
  49266. 2 connection checking is active
  49267. 3 hot key detection is active
  49268. 4 background file transfer is active
  49269. (Table 01393)
  49270. Values for pcANYWHERE function status:
  49271. 0000h function completed successfully
  49272. FFD1h unable to release interrupt vectors
  49273. FFD2h unable to release allocated memory
  49274. FFF2h unable to establish a connection when operating mode is
  49275. "Initiate a call"
  49276. FFF3h modem configuration is invalid (corrupt config)
  49277. FFF4h modem initialization failed (no modem response)
  49278. FFF5h the communications device could not be initialized
  49279. FFF6h the host operator aborted the function
  49280. FFF7h the communications driver type specified in the configuration file is
  49281. different than the one loaded when pcANYWHERE IV was started
  49282. FFF9h the configuration file is invalid
  49283. FFFAh the configuration file could not be found
  49284. FFFBh no session is active
  49285. FFFCh a remote access session is active
  49286. FFFDh the specified operating mode is invalid
  49287. --------l-212B--CX5643-----------------------
  49288. INT 21 - Volkov Commander - INSTALLATION CHECK
  49289. AH = 2Bh
  49290. CX = 5643h ('VC')
  49291. DX = 4F4Dh ('OM')
  49292. AL = function number
  49293. 00h get left window data address
  49294. 01h get right window data address
  49295. 02h get address of general variables
  49296. Return: AL = 00h if Volkov Commander installed
  49297. AH = version code (27h for v4.00.039)
  49298. ES:BX -> requested data
  49299. Program: Volkov Commander is a Norton Commander-like DOS shell
  49300. --------G-212B--CX6269-----------------------
  49301. INT 21 - WDTSR.COM - INSTALLATION CHECK
  49302. AH = 2Bh
  49303. CX = 6269h ('bi')
  49304. DX = 742Dh ('t-')
  49305. Return: AL = FFh if not installed
  49306. AL = 77h ('w') if WDTSR is installed
  49307. CX = 6174h ('at')
  49308. DX = 6368h ('ch')
  49309. ES = resident code segment
  49310. ES:DI -> identification and configuration data
  49311. Program: WDTSR is a driver for the bitWatch watchdog hardware by bit-design
  49312. GmbH
  49313. SeeAlso: AH=2Bh/CX=6269h"bitFOSSI",INT 14/AH=14h"FOSSIL",INT 15/AH=C3h
  49314. --------S-212B--CX6269-----------------------
  49315. INT 21 - bitFOSS - INSTALLATION CHECK
  49316. AH = 2Bh
  49317. CX = 6269h ('bi')
  49318. DX = 7446h ('tF')
  49319. Return: AL = FFh if not installed
  49320. AL = 4Fh ('O') if bitFOSS is installed
  49321. CX = 5353h ('SS')
  49322. DX = 494Ch ('IL')
  49323. ES = resident code segment
  49324. ES:DI -> identification data
  49325. Program: bitFOSS is a revision 5 FOSSIL driver
  49326. SeeAlso: AH=2Bh/CX=6269h"bitFOSSI",INT 11/AH=BCh
  49327. --------S-212B--CX6269-----------------------
  49328. INT 21 - bitFOSSI - INSTALLATION CHECK
  49329. AH = 2Bh
  49330. CX = 6269h ('bi')
  49331. DX = 7449h ('tI')
  49332. Return: AL = FFh if not installed
  49333. AL = 53h ('S') if bitFOSSI is installed
  49334. CX = 444Eh ('DN')
  49335. DX = 2D46h ('-F')
  49336. ES = resident code segment
  49337. ES:DI -> identification data
  49338. Program: bitFOSSI is a revision 5 FOSSIL driver for ???'s ISDN board
  49339. SeeAlso: AH=2Bh/CX=6269h"bitFOSS",INT 11/AH=BCh
  49340. --------D-212C-------------------------------
  49341. INT 21 - DOS 1+ - GET SYSTEM TIME
  49342. AH = 2Ch
  49343. Return: CH = hour
  49344. CL = minute
  49345. DH = second
  49346. DL = 1/100 seconds
  49347. Note: on most systems, the resolution of the system clock is about 5/100sec,
  49348. so returned times generally do not increment by 1
  49349. on some systems, DL may always return 00h
  49350. SeeAlso: AH=2Ah,AH=2Dh,AH=E7h"Novell",INT 1A/AH=00h,INT 1A/AH=02h,INT 1A/AH=FEh
  49351. SeeAlso: INT 2F/AX=120Dh
  49352. --------v-212C--------------------------
  49353. INT 21 - VIRUS - "Anti Pode 2.0" - INSTALLATION CHECK
  49354. AH = 2Ch
  49355. Return: DL = F2h if resident
  49356. SeeAlso: AX=1812h"VIRUS",AX=2C2Ch
  49357. --------v-212C00CX534B-----------------------
  49358. INT 21 - SKUDO - INSTALLATION CHECK
  49359. AX = 2C00h
  49360. CX = 534Bh ('SK')
  49361. DX = 5544h ('UD')
  49362. BX = 4F21h ('O!')
  49363. Return: AX = 5349h ('SI') if installed
  49364. CH = version number
  49365. CL = subversion
  49366. Program: SKUDO is an antivirus TSR by Jordi Mas
  49367. --------v-212C2C------------------------
  49368. INT 21 - VIRUS - "LockJaw/Proto-T" - INSTALLATION CHECK
  49369. AX = 2C2Ch
  49370. Return: AX = 0DCDh if resident
  49371. SeeAlso: AH=2Ch"VIRUS",AX=3000h"VIRUS"
  49372. --------D-212D-------------------------------
  49373. INT 21 - DOS 1+ - SET SYSTEM TIME
  49374. AH = 2Dh
  49375. CH = hour
  49376. CL = minute
  49377. DH = second
  49378. DL = 1/100 seconds
  49379. Return: AL = result
  49380. 00h successful
  49381. FFh invalid time, system time unchanged
  49382. Note: DOS 3.3+ also sets CMOS clock; due to the limitations of the CLOCK$
  49383. driver interface, the CMOS date is also updated to the current
  49384. DOS date
  49385. SeeAlso: AH=2Bh"DOS",AH=2Ch,INT 1A/AH=01h,INT 1A/AH=03h,INT 1A/AH=FFh"AT&T"
  49386. --------T-212D01CX7820-----------------------
  49387. INT 21 - PC-Mix - INSTALLATION CHECK
  49388. AX = 2D01h
  49389. CX = 7820h ('X ')
  49390. DX = 6D69h ('MI')
  49391. Return: AL = 00h if installed
  49392. --------D-212E--DL00-------------------------
  49393. INT 21 - DOS 1+ - SET VERIFY FLAG
  49394. AH = 2Eh
  49395. DL = 00h (DOS 1.x/2.x only)
  49396. AL = new state of verify flag
  49397. 00h off
  49398. 01h on
  49399. Notes: default state at system boot is OFF
  49400. when ON, all disk writes are verified provided the device driver
  49401. supports read-after-write verification
  49402. SeeAlso: AH=54h
  49403. --------D-212F-------------------------------
  49404. INT 21 - DOS 2+ - GET DISK TRANSFER AREA ADDRESS
  49405. AH = 2Fh
  49406. Return: ES:BX -> current DTA
  49407. Note: under the FlashTek X-32 DOS extender, the pointer is in ES:EBX
  49408. SeeAlso: AH=1Ah
  49409. --------D-2130-------------------------------
  49410. INT 21 - DOS 2+ - GET DOS VERSION
  49411. AH = 30h
  49412. ---DOS 5+ ---
  49413. AL = what to return in BH
  49414. 00h OEM number (as for DOS 2.0-4.0x)
  49415. 01h version flag
  49416. Return: AL = major version number (00h if DOS 1.x)
  49417. AH = minor version number
  49418. BL:CX = 24-bit user serial number (most versions do not use this)
  49419. ---if DOS <5 or AL=00h---
  49420. BH = MS-DOS OEM number (see #01394)
  49421. ---if DOS 5+ and AL=01h---
  49422. BH = version flag
  49423. bit 3: DOS is in ROM
  49424. other: reserved (0)
  49425. Notes: the OS/2 v1.x Compatibility Box returns major version 0Ah (10)
  49426. the OS/2 v2.x Compatibility Box returns major version 14h (20)
  49427. OS/2 Warp 3.0 Virtual DOS Machines report v20.30; Warp 4 VDMs report
  49428. v20.40.
  49429. the WindowsNT DOS box returns version 5.00, subject to SETVER
  49430. DOS 4.01 and 4.02 identify themselves as version 4.00; use
  49431. INT 21/AH=87h to distinguish between the original European MS-DOS 4.0
  49432. and the later PC-DOS 4.0x and MS-DOS 4.0x
  49433. IBM DOS 6.1 reports its version as 6.00; use the OEM number to
  49434. distinguish between MS-DOS 6.00 and IBM DOS 6.1 (there was never an
  49435. IBM DOS 6.0)
  49436. MS-DOS 6.21 reports its version as 6.20; version 6.22 returns the
  49437. correct value
  49438. Windows95 returns version 7.00 (the underlying MS-DOS), as did the
  49439. "Chicago" beta (reported in _Microsoft_Systems_Journal_,August 1994);
  49440. Windows95 OSR2 returns version 7.10
  49441. DR DOS 5.0 and 6.0 report version 3.31; Novell DOS 7 reports IBM v6.00,
  49442. which some software displays as IBM DOS v6.10 (because of the version
  49443. mismatch in true IBM DOS, as mentioned above). The Novell DOS 7
  49444. SETVER.EXE has an undocumented option /G x.y which sets the "global"
  49445. DOS version returned by this function for all executables not given
  49446. a specific version number in SETVER to major version x and minor
  49447. version y.
  49448. generic MS-DOS 3.30, Compaq MS-DOS 3.31, and others identify themselves
  49449. as PC-DOS by returning OEM number 00h
  49450. the version returned under DOS 4.0x may be modified by entries in
  49451. the special program list (see #01662 at AH=52h); the version returned
  49452. under DOS 5+ may be modified by SETVER--use AX=3306h to get the true
  49453. version number
  49454. SeeAlso: AX=3000h/BX=3000h,AX=3306h,AX=4452h,AH=87h,INT 15/AX=4900h
  49455. SeeAlso: INT 2F/AX=122Fh,INT 2F/AX=4010h,INT 2F/AX=4A33h,INT 2F/AX=E002h
  49456. (Table 01394)
  49457. Values for DOS OEM number:
  49458. 00h IBM
  49459. 01h Compaq
  49460. 02h MS Packaged Product
  49461. 04h AT&T
  49462. 05h ZDS (Zenith Electronics)
  49463. 06h Hewlett-Packard
  49464. 07h ZDS (Groupe Bull)
  49465. 0Dh Packard-Bell
  49466. 16h DEC
  49467. 23h Olivetti
  49468. 28h Texas Instruments
  49469. 29h Toshiba
  49470. 33h Novell (Windows/386 device IDs only)
  49471. 34h MS Multimedia Systems (Windows/386 device IDs only)
  49472. 35h MS Multimedia Systems (Windows/386 device IDs only)
  49473. 4Dh Hewlett-Packard
  49474. 5Eh RxDOS
  49475. 66h PhysTechSoft (PTS-DOS)
  49476. 99h General Software's Embedded DOS
  49477. EEh DR DOS
  49478. EFh Novell DOS
  49479. FDh FreeDOS
  49480. FFh Microsoft, Phoenix
  49481. --------E-2130-------------------------------
  49482. INT 21 - Phar Lap 386/DOS-Extender, Intel Code Builder - INSTALLATION CHECK
  49483. AH = 30h
  49484. EAX = 00003000h
  49485. EBX = 50484152h ("PHAR")
  49486. Return: AL = major DOS version
  49487. AH = minor DOS version
  49488. EAX bits 31-16 = 4458h ('DX') if 386/DOS-extender installed
  49489. BL = ASCII major version number
  49490. EAX bits 31-16 = 4243h ('BC') if Intel Code Builder installed
  49491. EDX = address of GDA
  49492. SeeAlso: AX=2501h,AX=FF00h,INT 2F/AX=F100h
  49493. --------v-2130--DXABCD-----------------------
  49494. INT 21 - VIRUS - "Possessed" - INSTALLATION CHECK
  49495. AH = 30h
  49496. DX = ABCDh
  49497. Return: DX = DCBAh if installed
  49498. SeeAlso: AX=0D20h,AH=30h/SI=1234h,AX=3000h"VIRUS",AX=30F1h
  49499. --------v-2130--SI1234---------------------
  49500. INT 21 - VIRUS - "ANDROMEDA-758" -INSTALLATION CHECK
  49501. AH = 30h
  49502. SI = 1234h
  49503. Return: AX = FFDDh if resident
  49504. SeeAlso: AH=30h/DX=ABCDh,AX=3000h"VIRUS"
  49505. --------T-213000BX1234-----------------------
  49506. INT 21 - CTask 2.0+ - INSTALLATION CHECK
  49507. AX = 3000h
  49508. BX = 1234h
  49509. DS:DX -> 8-byte version string (DX < FFF0h) "CTask21",00h for v2.1-2.2
  49510. Return: AL = DOS major version
  49511. AH = DOS minor version
  49512. CX:BX -> Ctask global data block
  49513. Program: CTask is a multitasking kernel for C written by Thomas Wagner
  49514. Note: if first eight bytes of returned data block equal eight bytes passed
  49515. in, CTask is resident
  49516. --------O-213000BX3000-----------------------
  49517. INT 21 - PC-MOS/386 v3.0 - INSTALLATION CHECK/GET VERSION
  49518. AX = 3000h
  49519. BX = 3000h
  49520. CX = DX = 3000h
  49521. Return: AX = PC-MOS version
  49522. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  49523. system by The Software Link, Inc.
  49524. SeeAlso: AH=30h,INT D4/AH=02h,INT D4/AH=10h
  49525. --------v-213000BX614A------------------
  49526. INT 21 - VIRUS - "Jackal" - INSTALLATION CHECK
  49527. AX = 3000h
  49528. BX = 614Ah ('aJ')
  49529. CX = 6B63h ('kc')
  49530. DX = 6C61h ('la')
  49531. Return: BX = ???
  49532. SeeAlso: AX=2C2Ch"VIRUS",AX=3030h"VIRUS"
  49533. --------G-213022-----------------------------
  49534. INT 21 - StopPrg v2.0 - INSTALLATION CHECK
  49535. AX = 3022h
  49536. Return: AX = DOS version (see AH=30h)
  49537. CX = 1112h if StopPrg installed
  49538. BX = segment of resident code
  49539. Program: StopPrg is a resident program aborter by MAK-TRAXON's Prophet
  49540. Note: StopPrg may be temporarily disabled by storing 9090h in the word at
  49541. 0000h:04FEh
  49542. --------v-213030BX694D-----------------------
  49543. INT 21 - VIRUS - "IMTC" -INSTALLATION CHECK
  49544. AX = 3030h
  49545. BX = 694Dh
  49546. Return: DX = 7443h if resident
  49547. SeeAlso: AX=3000h/BX=614Ah"VIRUS",AX=3032h"VIRUS"
  49548. --------v-213032DX1234-----------------------
  49549. INT 21 - VIRUS - "Uruguay" - INSTALLATION CHECK
  49550. AX = 3032h
  49551. DX = 1234h
  49552. Return: AX = 5678h if resident
  49553. SeeAlso: AX=3030h"VIRUS",AX=30F1h"VIRUS"
  49554. --------v-2130F1-----------------------------
  49555. INT 21 - VIRUS - "Dutch-555"/"Quit 1992" - INSTALLATION CHECK
  49556. AX = 30F1h
  49557. Return: AL = 00h if resident
  49558. SeeAlso: AH=30h/DX=ABCDh,AX=3032h,AX=330Fh,AX=33DAh
  49559. ----------2130FFCX4445-----------------------
  49560. INT 21 - DESQ??? - INSTALLATION CHECK
  49561. AX = 30FFh
  49562. CX = 4445h ("DE")
  49563. DX = 5351h ("SQ")
  49564. Return: BH = 05h if installed
  49565. ???
  49566. Note: called by DUBLDISK.COM v2.6; this function is not supported by
  49567. DESQview, so it may be for DESQview's precursor DESQ.
  49568. SeeAlso: AX=4404h"DUBLDISK"
  49569. --------D-2131-------------------------------
  49570. INT 21 - DOS 2+ - TERMINATE AND STAY RESIDENT
  49571. AH = 31h
  49572. AL = return code
  49573. DX = number of paragraphs to keep resident
  49574. Return: never
  49575. Notes: the value in DX only affects the memory block containing the PSP;
  49576. additional memory allocated via AH=48h is not affected
  49577. the minimum number of paragraphs which will remain resident is 11h
  49578. for DOS 2.x and 06h for DOS 3.0+
  49579. most TSRs can save some memory by releasing their environment block
  49580. before terminating (see #01378 at AH=26h,AH=49h)
  49581. any open files remain open, so one should close any files which will
  49582. not be used before going resident; to access a file which is left
  49583. open from the TSR, one must switch PSP segments first (see AH=50h)
  49584. SeeAlso: AH=00h,AH=4Ch,AH=4Dh,INT 20,INT 22,INT 27
  49585. --------D-2132-------------------------------
  49586. INT 21 - DOS 2+ - GET DOS DRIVE PARAMETER BLOCK FOR SPECIFIC DRIVE
  49587. AH = 32h
  49588. DL = drive number (00h = default, 01h = A:, etc)
  49589. Return: AL = status
  49590. 00h successful
  49591. DS:BX -> Drive Parameter Block (DPB) (see #01395) for specified
  49592. drive
  49593. FFh invalid or network drive
  49594. Notes: the OS/2 compatibility box supports the DOS 3.3 version of this call
  49595. except for the DWORD at offset 12h
  49596. this call updates the DPB by reading the disk; the DPB may be accessed
  49597. via the DOS list of lists (see #01627 at AH=52h) if disk access is not
  49598. desirable.
  49599. undocumented prior to the release of DOS 5.0; only the DOS 4.0+
  49600. version of the DPB has been documented, however
  49601. supported by DR DOS 3.41+; DR DOS 3.41-6.0 return the same data as
  49602. MS-DOS 3.31
  49603. IBM ROM-DOS v4.0 also reports invalid/network (AL=FFh) on the ROM drive
  49604. SeeAlso: AH=1Fh,AH=52h,AX=7302h
  49605. Format of DOS Drive Parameter Block:
  49606. Offset Size Description (Table 01395)
  49607. 00h BYTE drive number (00h = A:, 01h = B:, etc)
  49608. 01h BYTE unit number within device driver
  49609. 02h WORD bytes per sector
  49610. 04h BYTE highest sector number within a cluster
  49611. 05h BYTE shift count to convert clusters into sectors
  49612. 06h WORD number of reserved sectors at beginning of drive
  49613. 08h BYTE number of FATs
  49614. 09h WORD number of root directory entries
  49615. 0Bh WORD number of first sector containing user data
  49616. 0Dh WORD highest cluster number (number of data clusters + 1)
  49617. 16-bit FAT if greater than 0FF6h, else 12-bit FAT
  49618. 0Fh BYTE number of sectors per FAT
  49619. 10h WORD sector number of first directory sector
  49620. 12h DWORD address of device driver header (see #01646)
  49621. 16h BYTE media ID byte (see #01356)
  49622. 17h BYTE 00h if disk accessed, FFh if not
  49623. 18h DWORD pointer to next DPB
  49624. ---DOS 2.x---
  49625. 1Ch WORD cluster containing start of current directory, 0000h=root,
  49626. FFFFh = unknown
  49627. 1Eh 64 BYTEs ASCIZ pathname of current directory for drive
  49628. ---DOS 3.x---
  49629. 1Ch WORD cluster at which to start search for free space when writing
  49630. 1Eh WORD number of free clusters on drive, FFFFh = unknown
  49631. ---DOS 4.0-6.0---
  49632. 0Fh WORD number of sectors per FAT
  49633. 11h WORD sector number of first directory sector
  49634. 13h DWORD address of device driver header (see #01646)
  49635. 17h BYTE media ID byte (see #01356)
  49636. 18h BYTE 00h if disk accessed, FFh if not
  49637. 19h DWORD pointer to next DPB
  49638. 1Dh WORD cluster at which to start search for free space when writing,
  49639. usually the last cluster allocated
  49640. 1Fh WORD number of free clusters on drive, FFFFh = unknown
  49641. SeeAlso: #01357,#01663,#01787 at AX=7302h,#04039 at INT E0/CL=71h
  49642. --------D-2133-------------------------------
  49643. INT 21 - DOS 2+ - EXTENDED BREAK CHECKING
  49644. AH = 33h
  49645. AL = subfunction
  49646. 00h get current extended break state
  49647. Return: DL = current state, 00h = off, 01h = on
  49648. 01h set state of extended ^C/^Break checking
  49649. DL = new state
  49650. 00h off, check only on character I/O functions
  49651. 01h on, check on all DOS functions
  49652. Return: (Novell DOS 7) DL = old state of extended Break checks
  49653. Note: under DOS 3.1+ and DR DOS, this function does not use any of the
  49654. DOS-internal stacks and may thus be called at any time
  49655. SeeAlso: AX=3302h
  49656. --------D-213302-----------------------------
  49657. INT 21 - DOS 3.x+ internal - GET AND SET EXTENDED CONTROL-BREAK CHECKING STATE
  49658. AX = 3302h
  49659. DL = new state (00h for OFF, 01h for ON)
  49660. Return: DL = old state of extended BREAK checking
  49661. Notes: this function does not use any of the DOS-internal stacks and may thus
  49662. be called at any time; one possible use is modifying Control-Break
  49663. checking from within an interrupt handler or TSR
  49664. not supported by DR DOS through version 6.0 (error code 01h);
  49665. newly-supported by Novell DOS 7
  49666. SeeAlso: AH=33h
  49667. --------D-213303-----------------------------
  49668. INT 21 - DOS 4.0+ - UNUSED
  49669. AX = 3303h
  49670. Return: nothing
  49671. Note: this function and AX=3304h were intended to support a proposed
  49672. code-page switching flag (using two of the ten reserved bytes in
  49673. the DOS directory entry for codepage information); however, this
  49674. function has always been a NOP in public releases of DOS and OS/2.
  49675. See _DOS_Internals_ Chapter 2 for more information
  49676. SeeAlso: AX=3304h
  49677. --------D-213304-----------------------------
  49678. INT 21 - DOS 4.0+ - UNUSED
  49679. AX = 3304h
  49680. Return: nothing
  49681. Note: this function and AX=3303h were intended to support a proposed
  49682. code-page switching flag (using two of the ten reserved bytes in
  49683. the DOS directory entry for codepage information); however, this
  49684. function has always been a NOP in public releases of DOS and OS/2.
  49685. See _DOS_Internals_ Chapter 2 for more information
  49686. SeeAlso: AX=3303h
  49687. --------D-213305-----------------------------
  49688. INT 21 - DOS 4.0+ - GET BOOT DRIVE
  49689. AX = 3305h
  49690. Return: DL = boot drive (1=A:,...)
  49691. Notes: fully reentrant
  49692. NEC 9800-series PCs always call the boot drive A: and assign the other
  49693. drive letters sequentially to the other drives in the system
  49694. this call is supported by OS/2 Warp 3.0, but not earlier versions of
  49695. OS/2; it is also supported by Novell DOS 7
  49696. --------D-213306-----------------------------
  49697. INT 21 - DOS 5+ - GET TRUE VERSION NUMBER
  49698. AX = 3306h
  49699. Return: BL = major version
  49700. BH = minor version
  49701. DL = revision (bits 2-0, all others 0)
  49702. DH = version flags
  49703. bit 3: DOS is in ROM
  49704. bit 4: DOS is in HMA
  49705. AL = FFh if true DOS version < 5.0
  49706. Notes: this function always returns the true version number, unlike AH=30h,
  49707. whose return value may be changed with SETVER
  49708. because of the conflict from the CBIS redirector (see next
  49709. entry), programs should check whether BH is less than 100 (64h)
  49710. and BL is at least 5 before accepting the returned BX as the true
  49711. version number; however, even this is not entirely reliable when
  49712. that redirector is loaded
  49713. fully reentrant
  49714. OS/2 v2.1 will return BX=0A14h (version 20.10)
  49715. the Windows NT DOS box returns BX=3205h (version 5.50)
  49716. Novell DOS 7 returns IBM v6.00, which some software displays as
  49717. IBM DOS v6.10 (because of the version mismatch in true IBM DOS
  49718. mentioned for INT 21/AH=30h); versions through Update 15 all
  49719. return revision code 00h
  49720. Windows95 and Windows95 SP1 return version 7.00; Windows95 OSR2 returns
  49721. version 7.10
  49722. BUG: DR DOS 5.0 and 6.0 return CF set/AX=0001h for INT 21/AH=33h
  49723. subfunctions other than 00h-02h and 05h, while MS-DOS returns AL=FFh
  49724. for invalid subfunctions
  49725. SeeAlso: AH=30h,INT 2F/AX=122Fh,INT 2F/AX=E000h"SETDRVER"
  49726. --------N-213306-----------------------------
  49727. INT 21 - CBIS network - NETWORK REDIRECTOR - ???
  49728. AX = 3306h
  49729. Return: AX = 3306h
  49730. BL = ??? (usually 00h)
  49731. BH = ??? (usually 00h or FFh)
  49732. Note: unknown function, is in conflict with DOS 5+ version call
  49733. SeeAlso: AX=3306h"DOS"
  49734. --------D-213307-----------------------------
  49735. INT 21 - Windows95 - SET/CLEAR DOS_FLAG
  49736. AX = 3307h
  49737. DL = subfunction
  49738. 00h clear bit 5 of "DOS_FLAG"
  49739. 01h set bit 5 of "DOS_FLAG"
  49740. Return: ???
  49741. --------v-21330F-----------------------------
  49742. INT 21 - VIRUS - "Burghofer" - INSTALLATION CHECK
  49743. AX = 330Fh
  49744. Return: AL = 0Fh if resident (DOS returns AL=FFh)
  49745. SeeAlso: AX=30F1h,AX=33DAh,AX=33E0h
  49746. --------k-213341-----------------------------
  49747. INT 21 - Diet Disk v1.0 - INSTALLATION CHECK
  49748. AX = 3341h
  49749. Return: DX = 1234h if installed
  49750. CX = resident code segment
  49751. Program: Diet Disk is a public domain transparent data file compressor by
  49752. Barry Nance
  49753. --------v-2133DA------------------------
  49754. INT 21 - VIRUS - "CoffeeShop" - INSTALLATION CHECK
  49755. AX = 33DAh
  49756. Return: AH = A5h if resident
  49757. AL = virus version
  49758. SeeAlso: AX=33DB,AX=33DCh,AX=330Fh,AX=33E0h,AX=5643h"VIRUS"
  49759. --------v-2133DB------------------------
  49760. INT 21 - VIRUS - "CoffeeShop" - GENERATE RANDOM NUMBER
  49761. AX = 33DBh
  49762. Return: ???
  49763. SeeAlso: AX=33DAh,AX=33DCh
  49764. --------v-2133DC------------------------
  49765. INT 21 - VIRUS - "CoffeeShop" - DISPLAY "LEGALIZE CANNABIS" GRAPHIC
  49766. AX = 33DCh
  49767. Return: ???
  49768. SeeAlso: AX=33DAh,AX=33DBh
  49769. --------v-2133E0-----------------------------
  49770. INT 21 - VIRUS - "Oropax" - INSTALLATION CHECK
  49771. AX = 33E0h
  49772. Return: AL = E0h if resident (DOS returns AL=FFh)
  49773. SeeAlso: AX=330Fh,AX=33DAh,AX=357Fh
  49774. --------D-2134-------------------------------
  49775. INT 21 - DOS 2+ - GET ADDRESS OF INDOS FLAG
  49776. AH = 34h
  49777. Return: ES:BX -> one-byte InDOS flag
  49778. Notes: this function executes on the DOS stack, and thus cannot be called
  49779. while another DOS function is already executing; you should use
  49780. this function once at the beginning of the program and store the
  49781. returned pointer rather than calling it when requiring DOS access
  49782. the value of InDOS is incremented whenever an INT 21 function begins
  49783. and decremented whenever one completes
  49784. during an INT 28 call, it is safe to call some INT 21 functions even
  49785. though InDOS may be 01h instead of zero
  49786. InDOS alone is not sufficient for determining when it is safe to
  49787. enter DOS, as the critical error handling decrements InDOS and
  49788. increments the critical error flag for the duration of the critical
  49789. error. Thus, it is possible for InDOS to be zero even if DOS is
  49790. busy.
  49791. SMARTDRV 4.0 sets the InDOS flag while flushing its buffers to disk,
  49792. then zeros it on completion
  49793. the critical error flag is the byte immediately following InDOS in
  49794. DOS 2.x, and the byte BEFORE the InDOS flag in DOS 3.0+ and
  49795. DR DOS 3.41+ (except COMPAQ DOS 3.0, where the critical error flag
  49796. is located 1AAh bytes BEFORE the critical section flag)
  49797. for DOS 3.1+, an undocumented call exists to get the address of the
  49798. critical error flag (see AX=5D06h)
  49799. this function was undocumented prior to the release of DOS 5.0.
  49800. SeeAlso: AX=5D06h,AX=5D0Bh,INT 15/AX=DE1Fh,INT 28
  49801. --------D-2135-------------------------------
  49802. INT 21 - DOS 2+ - GET INTERRUPT VECTOR
  49803. AH = 35h
  49804. AL = interrupt number
  49805. Return: ES:BX -> current interrupt handler
  49806. Note: under DR DOS 5.0+, this function does not use any of the DOS-internal
  49807. stacks and may thus be called at any time
  49808. SeeAlso: AH=25h,AX=2503h
  49809. --------E-213501-----------------------------
  49810. INT 21 P - FlashTek X-32VM - ALLOCATE PROTECTED-MODE SELECTOR
  49811. AX = 3501h
  49812. Return: CF clear if successful
  49813. BX = new selector
  49814. CF set on error (no more selectors available)
  49815. Note: the new selector will be an expand-up read/write data selector with
  49816. undefined base and limit
  49817. SeeAlso: AX=3502h,INT 31/AX=0000h
  49818. --------E-213502-----------------------------
  49819. INT 21 P - FlashTek X-32VM - DEALLOCATE PROTECTED-MODE SELECTOR
  49820. AX = 3502h
  49821. BX = selector
  49822. Return: CF clear if successful
  49823. CF set on error (invalid selector)
  49824. Note: only selectors allocated via AX=3501h should be deallocated
  49825. SeeAlso: AX=3501h,INT 31/AX=0001h
  49826. --------E-213503-----------------------------
  49827. INT 21 P - FlashTek X-32VM - SET SELECTOR BASE ADDRESS
  49828. AX = 3503h
  49829. BX = selector
  49830. ECX = base address
  49831. Return: CF clear if successful
  49832. CF set on error (invalid selector)
  49833. SeeAlso: AX=3504h,AX=3505h,INT 31/AX=0007h
  49834. --------E-213504-----------------------------
  49835. INT 21 P - FlashTek X-32VM - GET SELECTOR BASE ADDRESS
  49836. AX = 3504h
  49837. BX = selector
  49838. Return: CF clear if successful
  49839. ECX = absolute base address of selector
  49840. CF set on error (invalid selector)
  49841. SeeAlso: AX=3503h,INT 31/AX=0006h
  49842. --------E-213505-----------------------------
  49843. INT 21 P - FlashTek X-32VM - SET SELECTOR LIMIT
  49844. AX = 3505h
  49845. BX = selector
  49846. ECX = desired limit
  49847. Return: CF clear if successful
  49848. ECX = actual limit set
  49849. CF set on error (no more selectors available)
  49850. Note: the limit will be rounded down to nearest 4K boundary if the requested
  49851. limit is greater than 1MB
  49852. SeeAlso: AX=3503h,INT 31/AX=0008h
  49853. --------E-21350A-----------------------------
  49854. INT 21 P - FlashTek X-32VM - PHYSICAL ADDRESS MAPPING
  49855. AX = 350Ah
  49856. EBX = absolute physical address
  49857. ECX = size in bytes of area to map
  49858. Return: CF clear if successful
  49859. CF set on error (insufficient memory or service refused by DPMI host)
  49860. Notes: should not make repeated calls for the same physical address
  49861. there is no provision for unmapping memory
  49862. --------E-21350B-----------------------------
  49863. INT 21 P - FlashTek X-32VM - UPDATE AND RETURN AVAILABLE FREE MEMORY
  49864. AX = 350Bh
  49865. DS = default selector for DS
  49866. Return: CF clear
  49867. EAX = maximum amount of memory which can be allocated via AX=350Ch
  49868. SeeAlso: AX=350Ch
  49869. --------E-21350C-----------------------------
  49870. INT 21 P - FlashTek X-32VM - ALLOCATE A BLOCK OF MEMORY
  49871. AX = 350Ch
  49872. ECX = size of block in bytes
  49873. DS = default DS
  49874. Return: CF clear if successful
  49875. EAX = near pointer to new block
  49876. EDX = new lowest legal value for stack
  49877. CF set on error (requested size not multiple of 4K)
  49878. SeeAlso: AX=350Bh,AX=350Dh
  49879. --------E-21350D-----------------------------
  49880. INT 21 P - FlashTek X-32VM - RESERVE BLOCK OF MEMORY FOR 32-BIT STACK
  49881. AX = 350Dh
  49882. EBX = current ESP value
  49883. ECX = size of block in bytes
  49884. DS = default DS
  49885. Return: CF clear if successful
  49886. EBX = new value for ESP
  49887. EDX = suggested new limit for SS
  49888. CF set on error
  49889. Note: this function should only be called once during initialization
  49890. SeeAlso: AX=350Bh,AX=350Ch
  49891. --------v-21357F-----------------------------
  49892. INT 21 - VIRUS - "Agiplan"/"Month 4-6" - INSTALLATION CHECK
  49893. AX = 357Fh
  49894. Return: DX = FFFFh if installed
  49895. SeeAlso: AX=33E0h,AX=3DFFh
  49896. --------D-2136-------------------------------
  49897. INT 21 - DOS 2+ - GET FREE DISK SPACE
  49898. AH = 36h
  49899. DL = drive number (00h = default, 01h = A:, etc)
  49900. Return: AX = FFFFh if invalid drive
  49901. else
  49902. AX = sectors per cluster
  49903. BX = number of free clusters
  49904. CX = bytes per sector
  49905. DX = total clusters on drive
  49906. Notes: free space on drive in bytes is AX * BX * CX
  49907. total space on drive in bytes is AX * CX * DX
  49908. "lost clusters" are considered to be in use
  49909. according to Dave Williams' MS-DOS reference, the value in DX is
  49910. incorrect for non-default drives after ASSIGN is run
  49911. this function does not return proper results on CD-ROMs;
  49912. use AX=4402h"CD-ROM" instead
  49913. (FAT32 drive) the reported total and free space are limited to 2G-32K
  49914. should they exceed that value
  49915. SeeAlso: AH=1Bh,AH=1Ch,AX=4402h"CD-ROM",AX=7303h
  49916. --------D-213700-----------------------------
  49917. INT 21 - DOS 2+ - "SWITCHAR" - GET SWITCH CHARACTER
  49918. AX = 3700h
  49919. Return: AL = status
  49920. 00h successful
  49921. DL = current switch character
  49922. FFh unsupported subfunction
  49923. Desc: Determine the character which is used to introduce command switches.
  49924. This setting is ignored by MS-DOS commands in version 4.0 and higher,
  49925. but is honored by many third-party programs and by Novell DOS 7
  49926. external commands
  49927. BUG: Novell DOS 7's COMMAND.COM (prior to Update 15) fails to honor the
  49928. SwitChar setting for internal commands even though COMMAND.COM
  49929. honors it in its own command tail (i.e. COMMAND /?); even in Update
  49930. 15, internal commands fail to honor SwitChar for the /? help option
  49931. Notes: documented in some OEM versions of some releases of DOS
  49932. supported by OS/2 compatibility box
  49933. always returns AL=00h/DL=2Fh for MS-DOS 5+ and DR DOS 3.41-6.0
  49934. Novell DOS 7 COMMAND.COM indicates switch characters other than '/'
  49935. by changing the first backslash (and only the first one) in the
  49936. path it prints for PROMPT $p with a forward slash
  49937. SeeAlso: AX=3701h
  49938. --------D-213701-----------------------------
  49939. INT 21 - DOS 2+ - "SWITCHAR" - SET SWITCH CHARACTER
  49940. AX = 3701h
  49941. DL = new switch character
  49942. Return: AL = status
  49943. 00h successful
  49944. FFh unsupported subfunction
  49945. Notes: documented in some OEM versions of some releases of DOS; DOS 2.x had
  49946. a SWITCHAR=c setting in CONFIG.SYS
  49947. supported by OS/2 compatibility box and Novell DOS 7
  49948. ignored by MS-DOS 5+ and DR DOS 3.41-6.0; DR DOS 6.0 and Novell DOS 7
  49949. leave AX unchanged
  49950. SeeAlso: AX=3700h
  49951. --------D-2137-------------------------------
  49952. INT 21 - DOS 2.x and 3.3+ only - "AVAILDEV" - SPECIFY \DEV\ PREFIX USE
  49953. AH = 37h
  49954. AL = subfunction
  49955. 02h get availdev flag
  49956. Return: DL = 00h \DEV\ must precede character device names
  49957. = nonzero \DEV\ is optional
  49958. 03h set availdev flag
  49959. DL = new state
  49960. 00h \DEV\ is mandatory
  49961. nonzero \DEV\ is optional
  49962. Return: AL = status
  49963. 00h successful
  49964. FFh unsupported subfunction
  49965. Notes: all versions of DOS from 2.00 allow \DEV\ to be prepended to device
  49966. names without generating an error even if the directory \DEV does
  49967. not actually exist (other paths generate an error if they do not
  49968. exist); DOS 2.x has an AVAILDEV= option in CONFIG.SYS to make \DEV
  49969. mandatory
  49970. although MS-DOS 3.3+, DR DOS 3.41+, and Novell DOS 7 accept these
  49971. calls, they have no effect, and AL=02h always returns DL=FFh (except
  49972. for Novell DOS 7, which leaves AX unchanged for both subfunctions)
  49973. --------k-2137A0BX6A6D-----------------------
  49974. INT 21 - XPACK v1.52+ - TSR INSTALLATION CHECK
  49975. AX = 37A0h
  49976. BX = 6A6Dh ('jm')
  49977. Return: AL = FFh if not present as TSR (default return value from DOS)
  49978. AX = 0000h if installed as a TSR
  49979. CX = 6A6Dh ('jm')
  49980. DX = version ID (0152h)
  49981. Program: XPACK is a transparent file compressor/decompressor by JauMing Tseng
  49982. SeeAlso: AX=37A1h/BX=6A6Dh,AX=37A3h/BX=6A6Dh
  49983. --------k-2137A1BX6A6D-----------------------
  49984. INT 21 - XPACK v1.52+ - UNINSTALL
  49985. AX = 37A1h
  49986. BX = 6A6Dh ('jm')
  49987. Return: AX = status
  49988. 0000h successful
  49989. FFFFh failed
  49990. Program: XPACK is a transparent file compressor/decompressor by JauMing Tseng
  49991. SeeAlso: AX=37A0h/BX=6A6Dh
  49992. --------k-2137A2BX6A6D-----------------------
  49993. INT 21 - XPACK v1.52+ - GET TSR STATUS
  49994. AX = 37A2h
  49995. BX = 6A6Dh ('jm')
  49996. Return: AX = 0000h (successful)
  49997. DL = status (01h active, 00h disabled)
  49998. SeeAlso: AX=37A3h/BX=6A6Dh
  49999. --------k-2137A3BX6A6D-----------------------
  50000. INT 21 - XPACK v1.52+ - SET TSR STATUS
  50001. AX = 37A3h
  50002. BX = 6A6Dh ('jm')
  50003. DL = status (01h active, 00h disabled)
  50004. Return: AX = 0000h (successful)
  50005. SeeAlso: AX=37A0h/BX=6A6Dh,AX=37A2h/BX=6A6Dh
  50006. ----------2137A6BX6A6D-----------------------
  50007. INT 21 - XPACK v1.65 - GET TEMPORARY DIRECTORY NAME
  50008. AX = 37A6h
  50009. BX = 6A6Dh ('jm')
  50010. Return: AX = 0000h
  50011. DS:DX -> name of temporary directory
  50012. Program: XPACK is a transparent file compressor/decompressor by JauMing Tseng
  50013. SeeAlso: AX=37A0h/BX=6A6Dh,AX=37A7h/BX=6A6Dh
  50014. ----------2137A7BX6A6D-----------------------
  50015. INT 21 - XPACK v1.65 - SET TEMPORARY DIRECTORY NAME
  50016. AX = 37A7h
  50017. BX = 6A6Dh ('jm')
  50018. DS:DX -> ASCIZ name of temporary directory (max 64 chars)
  50019. Return: AX = 0000h
  50020. Note: the specified directory name must include a drive letter and end with
  50021. a backslash (e.g. 'c:\dos\',0)
  50022. SeeAlso: AX=37A0h/BX=6A6Dh,AX=37A6h/BX=6A6Dh
  50023. --------k-2137D0BX899D-----------------------
  50024. INT 21 - DIET v1.43e - TSR INSTALLATION CHECK
  50025. AX = 37D0h
  50026. BX = 899Dh ('DI' + 'ET')
  50027. Return: AL = FFh if not present as TSR (default return value from DOS)
  50028. AX = 0000h if installed as a TSR
  50029. CX = 899Dh
  50030. DX = version ID
  50031. Program: DIET is a transparent file compressor/decompressor by Teddy Matsumoto
  50032. SeeAlso: AX=37D1h,AX=37D2h,AX=37D4h,AX=37D6h,AX=37DFh,AX=4BF0h,AX=4BF1h
  50033. --------k-2137D1BX899D-----------------------
  50034. INT 21 - DIET v1.43e - GET DIET.EXE RESIDENT SEGMENT
  50035. AX = 37D1h
  50036. BX = 899Dh ('DI' + 'ET')
  50037. Return: AX = 0000h
  50038. CX = code segment of TSR part of DIET.EXE
  50039. DX = memory block segment of TSR DIET.EXE
  50040. (0000h if installed as device driver)
  50041. SeeAlso: AX=37D0h,AX=37DFh
  50042. --------k-2137D2BX899D-----------------------
  50043. INT 21 - DIET v1.43e - GET TSR CONTROL FLAGS
  50044. AX = 37D2h
  50045. BX = 899Dh ('DI' + 'ET')
  50046. Return: AX = 0000h
  50047. DL = control flag (00h active, else disabled)
  50048. DH = skip flag (nonzero while TSR active)
  50049. SeeAlso: AX=37D0h,AX=37D3h,AX=37D4h
  50050. --------k-2137D3BX899D-----------------------
  50051. INT 21 - DIET v1.43e - SET TSR CONTROL FLAGS
  50052. AX = 37D3h
  50053. BX = 899Dh ('DI' + 'ET')
  50054. DL = control flag (00h active, else disabled)
  50055. DH = skip flag (00h)
  50056. Return: AX = 0000h
  50057. SeeAlso: AX=37D0h,AX=37D2h,AX=37D5h
  50058. --------k-2137D4BX899D-----------------------
  50059. INT 21 - DIET v1.43e - GET TSR OPTIONS
  50060. AX = 37D4h
  50061. BX = 899Dh ('DI' + 'ET')
  50062. Return: AX = 0000h
  50063. DX = TSR options (see #01396)
  50064. SeeAlso: AX=37D0h,AX=37D2h,AX=37D5h
  50065. Bitfields for DIET TSR options:
  50066. Bit(s) Description (Table 01396)
  50067. 0 automated compression of DIETed file
  50068. 1 automated compression of newly-created file
  50069. 2 suppress DIET message
  50070. 3 display original file size
  50071. 4-15 reserved (0)
  50072. --------k-2137D5BX899D-----------------------
  50073. INT 21 - DIET v1.43e - SET TSR OPTIONS
  50074. AX = 37D5h
  50075. BX = 899Dh ('DI' + 'ET')
  50076. DX = TSR options (see #01396)
  50077. Return: AX = 0000h
  50078. Program: DIET is a transparent file compressor/decompressor by Teddy Matsumoto
  50079. SeeAlso: AX=37D0h,AX=37D3h,AX=37D4h
  50080. --------k-2137D6BX899D-----------------------
  50081. INT 21 - DIET v1.43e - GET TEMPORARY DIRECTORY NAMES
  50082. AX = 37D6h
  50083. BX = 899Dh ('DI' + 'ET')
  50084. Return: AX = 0000h
  50085. DS:DX -> name of temporary directory or 0000h:0000h for current dir
  50086. SeeAlso: AX=37D0h,AX=37D7h
  50087. --------k-2137D7BX899D-----------------------
  50088. INT 21 - DIET v1.43e - SET TEMPORARY DIRECTORY NAMES
  50089. AX = 37D7h
  50090. BX = 899Dh ('DI' + 'ET')
  50091. DS:DX -> ASCIZ name of temporary directory (max 61 chars)
  50092. 0000h:0000h for current directory
  50093. Return: AX = 0000h
  50094. Note: the specified directory name must include a drive letter and end with
  50095. a backslash
  50096. SeeAlso: AX=37D0h,AX=37D6h
  50097. --------k-2137DCBX899D-----------------------
  50098. INT 21 - DIET v1.43e - SET ADDRESS OF EXTERNAL PROCEDURE
  50099. AX = 37DCh
  50100. BX = 899Dh ('DI' + 'ET')
  50101. DS:DX -> external procedure (see #01397)
  50102. Return: AX = 0000h
  50103. Note: the resident code will call the specified external procedure at the
  50104. beginning of decompression and when compression is exited on failure
  50105. SeeAlso: AX=37DDh
  50106. (Table 01397)
  50107. Values DIET external procedure is called with:
  50108. STACK: WORD class
  50109. FFFDh creation failed for unknown reasons
  50110. FFFEh creation failed due to lack of space
  50111. FFFFh file creation error
  50112. else file handle of DIETed file to be decompressed
  50113. DWORD -> compressed filename
  50114. DWORD -> decompressed or temporary filename
  50115. Return: SI,DI,BP,DS,ES must be preserved by external procedure
  50116. --------k-2137DDBX899D-----------------------
  50117. INT 21 - DIET v1.43e - RELEASE EXTERNAL PROCEDURE
  50118. AX = 37DDh
  50119. BX = 899Dh ('DI' + 'ET')
  50120. Program: DIET is a transparent file compressor/decompressor by Teddy Matsumoto
  50121. Note: unlinks the external procedure specified by AX=37DCh
  50122. SeeAlso: AX=37DCh
  50123. --------k-2137DEBX899D-----------------------
  50124. INT 21 - DIET v1.43e - READ EMS STATUS
  50125. AX = 37DEh
  50126. BX = 899Dh ('DI' + 'ET')
  50127. Return: AX = 0000h
  50128. CX = EMS status
  50129. 0000h not used
  50130. 0001h used as work area
  50131. 0002h used for code and as work area
  50132. DX = EMM handle when EMS is in use
  50133. --------k-2137DFBX899D-----------------------
  50134. INT 21 - DIET v1.43e - UNINSTALL TSR
  50135. AX = 37DFh
  50136. BX = 899Dh ('DI' + 'ET')
  50137. Return: AX = status
  50138. 0000h successful
  50139. 00FFh failed
  50140. Program: DIET is a transparent file compressor/decompressor by Teddy Matsumoto
  50141. SeeAlso: AX=37D0h
  50142. Index: uninstall;DIET
  50143. --------D-2138-------------------------------
  50144. INT 21 - DOS 2+ - GET COUNTRY-SPECIFIC INFORMATION
  50145. AH = 38h
  50146. --DOS 2.x--
  50147. AL = 00h get current-country info
  50148. DS:DX -> buffer for returned info (see #01398,#01399)
  50149. Return: CF set on error
  50150. AX = error code (02h)
  50151. CF clear if successful
  50152. AX = country code (MS-DOS 2.11 only)
  50153. buffer at DS:DX filled
  50154. --DOS 3.0+--
  50155. AL = 00h for current country
  50156. AL = 01h thru 0FEh for specific country with code <255 (see #01400)
  50157. AL = 0FFh for specific country with code >= 255
  50158. BX = 16-bit country code (see #01400)
  50159. DS:DX -> buffer for returned info (see #01399)
  50160. Return: CF set on error
  50161. AX = error code (02h)
  50162. CF clear if successful
  50163. AX = country code (Novell NWDOS v7.0)
  50164. BX = country code
  50165. DS:DX buffer filled
  50166. Note: this function is not supported by the Borland DPMI host, but no error
  50167. is returned; as a workaround, one should allocate a buffer in
  50168. conventional memory with INT 31/AX=0100h and simulate an INT 21 with
  50169. INT 31/AX=0300h
  50170. SeeAlso: AH=65h,INT 10/AX=5001h,INT 2F/AX=110Ch,INT 2F/AX=1404h
  50171. Format of DOS 2.00-2.10 country info:
  50172. Offset Size Description (Table 01398)
  50173. 00h WORD date format 0 = USA mm dd yy
  50174. 1 = Europe dd mm yy
  50175. 2 = Japan yy mm dd
  50176. 02h BYTE currency symbol
  50177. 03h BYTE 00h
  50178. 04h BYTE thousands separator char
  50179. 05h BYTE 00h
  50180. 06h BYTE decimal separator char
  50181. 07h BYTE 00h
  50182. 08h 24 BYTEs reserved
  50183. Format of DOS 2.11+ country info:
  50184. Offset Size Description (Table 01399)
  50185. 00h WORD date format (see #01398)
  50186. 02h 5 BYTEs ASCIZ currency symbol string
  50187. 07h 2 BYTEs ASCIZ thousands separator
  50188. 09h 2 BYTEs ASCIZ decimal separator
  50189. 0Bh 2 BYTEs ASCIZ date separator
  50190. 0Dh 2 BYTEs ASCIZ time separator
  50191. 0Fh BYTE currency format
  50192. bit 2 = set if currency symbol replaces decimal point
  50193. bit 1 = number of spaces between value and currency symbol
  50194. bit 0 = 0 if currency symbol precedes value
  50195. 1 if currency symbol follows value
  50196. 10h BYTE number of digits after decimal in currency
  50197. 11h BYTE time format
  50198. bit 0 = 0 if 12-hour clock
  50199. 1 if 24-hour clock
  50200. 12h DWORD address of case map routine
  50201. (FAR CALL, AL = character to map to upper case [>= 80h])
  50202. 16h 2 BYTEs ASCIZ data-list separator
  50203. 18h 10 BYTEs reserved
  50204. (Table 01400)
  50205. Values for country code:
  50206. 001h (1) United States
  50207. 002h (2) Canadian-French
  50208. 003h (3) Latin America
  50209. 004h (4) Canada (English)
  50210. 007h (7) Russia
  50211. 014h (20) Egypt
  50212. 01Bh (27) South Africa
  50213. 01Eh (30) Greece
  50214. 01Fh (31) Netherlands
  50215. 020h (32) Belgium
  50216. 021h (33) France
  50217. 022h (34) Spain
  50218. 023h (35) Bulgaria???
  50219. 024h (36) Hungary (not supported by DR DOS 5.0)
  50220. 026h (38) Yugoslavia (not supported by DR DOS 5.0) -- obsolete
  50221. 027h (39) Italy / San Marino / Vatican City
  50222. 028h (40) Romania
  50223. 029h (41) Switzerland / Liechtenstein
  50224. 02Ah (42) Czechoslovakia / Tjekia / Slovakia (not supported by DR DOS 5.0)
  50225. 02Bh (43) Austria (DR DOS 5.0)
  50226. 02Ch (44) United Kingdom
  50227. 02Dh (45) Denmark
  50228. 02Eh (46) Sweden
  50229. 02Fh (47) Norway
  50230. 030h (48) Poland (not supported by DR DOS 5.0)
  50231. 031h (49) Germany
  50232. 033h (51) Peru
  50233. 034h (52) Mexico
  50234. 035h (53) Cuba
  50235. 036h (54) Argentina
  50236. 037h (55) Brazil (not supported by DR DOS 5.0)
  50237. 038h (56) Chile
  50238. 039h (57) Columbia
  50239. 03Ah (58) Venezuela
  50240. 03Ch (60) Malaysia
  50241. 03Dh (61) International English / Australia
  50242. 03Eh (62) Indonesia / East Timor
  50243. 03Fh (63) Philippines
  50244. 040h (64) New Zealand
  50245. 041h (65) Singapore
  50246. 042h (66) Taiwan???
  50247. 051h (81) Japan (DR DOS 5.0, MS-DOS 5.0+)
  50248. 052h (82) South Korea (DR DOS 5.0)
  50249. 054h (84) Vietnam
  50250. 056h (86) China (MS-DOS 5.0+)
  50251. 058h (88) Taiwan (MS-DOS 5.0+)
  50252. 05Ah (90) Turkey (MS-DOS 5.0+)
  50253. 05Bh (91) India
  50254. 05Ch (92) Pakistan
  50255. 05Dh (93) Afghanistan
  50256. 05Eh (94) Sri Lanka
  50257. 062h (98) Iran
  50258. 063h (99) Asia (English)
  50259. 070h (112) Belarus
  50260. 0C8h (200) Thailand
  50261. 0D4h (212) Morocco
  50262. 0D5h (213) Algeria
  50263. 0D8h (216) Tunisia
  50264. 0DAh (218) Libya
  50265. 0DCh (220) Gambia
  50266. 0DDh (221) Senegal
  50267. 0DEh (222) Maruitania
  50268. 0DFh (223) Mali
  50269. 0E0h (224) African Guinea
  50270. 0E1h (225) Ivory Coast
  50271. 0E2h (226) Burkina Faso
  50272. 0E3h (227) Niger
  50273. 0E4h (228) Togo
  50274. 0E5h (229) Benin
  50275. 0E6h (230) Mauritius
  50276. 0E7h (231) Liberia
  50277. 0E8h (232) Sierra Leone
  50278. 0E9h (233) Ghana
  50279. 0EAh (234) Nigeria
  50280. 0EBh (235) Chad
  50281. 0ECh (236) Centra African Republic
  50282. 0EDh (237) Cameroon
  50283. 0EEh (238) Cape Verde Islands
  50284. 0EFh (239) Sao Tome and Principe
  50285. 0F0h (240) Equatorial Guinea
  50286. 0F1h (241) Gabon
  50287. 0F2h (242) Congo
  50288. 0F3h (243) Zaire
  50289. 0F4h (244) Angola
  50290. 0F5h (245) Guinea-Bissau
  50291. 0F6h (246) Diego Garcia
  50292. 0F7h (247) Ascension Isle
  50293. 0F8h (248) Seychelles
  50294. 0F9h (249) Sudan
  50295. 0FAh (250) Rwhanda
  50296. 0FBh (251) Ethiopia
  50297. 0FCh (252) Somalia
  50298. 0FDh (253) Djibouti
  50299. 0FEh (254) Kenya
  50300. 0FFh (255) Tanzania
  50301. 100h (256) Uganda
  50302. 101h (257) Burundi
  50303. 103h (259) Mozambique
  50304. 104h (260) Zambia
  50305. 105h (261) Madagascar
  50306. 106h (262) Reunion Island
  50307. 107h (263) Zimbabwe
  50308. 108h (264) Namibia
  50309. 109h (265) Malawi
  50310. 10Ah (266) Lesotho
  50311. 10Bh (267) Botswana
  50312. 10Ch (268) Swaziland
  50313. 10Dh (269) Comoros
  50314. 10Eh (270) Mayotte
  50315. 122h (290) St. Helena
  50316. 129h (297) Aruba
  50317. 12Ah (298) Faroe Islands
  50318. 12Bh (299) Greenland
  50319. 15Eh (350) Gibraltar
  50320. 15Fh (351) Portugal
  50321. 160h (352) Luxembourg
  50322. 161h (353) Ireland
  50323. 162h (354) Iceland
  50324. 163h (355) Albania
  50325. 164h (356) Malta
  50326. 165h (357) Cyprus
  50327. 166h (358) Finland
  50328. 167h (359) Bulgaria
  50329. 172h (370) Lithuania
  50330. 173h (371) Latvia
  50331. 174h (372) Estonia
  50332. 175h (373) Moldova
  50333. 17Dh (381) Serbia / Montenegro
  50334. 180h (384) Croatia???
  50335. 181h (385) Croatia
  50336. 182h (386) Slovenia
  50337. 183h (387) Bosnia-Herzegovina (Latin)
  50338. 184h (388) Bosnia-Herzegovina (Cyrillic)
  50339. 185h (389) FYR Macedonia
  50340. 1A5h (421) Czech Republic
  50341. 1A6h (422) Slovakia
  50342. 1F4h (500) Falkland Islands
  50343. 1F5h (501) Belize
  50344. 1F6h (502) Guatemala
  50345. 1F7h (503) El Salvador
  50346. 1F8h (504) Honduras
  50347. 1F9h (505) Nicraragua
  50348. 1FAh (506) Costa Rica
  50349. 1FBh (507) Panama
  50350. 1FCh (508) St. Pierre and Miquelon
  50351. 1FDh (509) Haiti
  50352. 24Eh (590) Guadeloupe
  50353. 24Fh (591) Bolivia
  50354. 250h (592) Guyana
  50355. 251h (593) Ecuador
  50356. 252h (594) rench Guiana
  50357. 253h (595) Paraguay
  50358. 254h (596) Martinique / French Antilles
  50359. 255h (597) Suriname
  50360. 256h (598) Uruguay
  50361. 257h (599) Netherland Antilles
  50362. 29Eh (670) Saipan / N. Mariana Island
  50363. 29Fh (671) Guam
  50364. 2A0h (672) Norfolk Island (Australia) / Christmas Island/Cocos Islands / Antartica
  50365. 2A1h (673) Brunei Darussalam
  50366. 2A2h (674) Nauru
  50367. 2A3h (675) Papua New Guinea
  50368. 2A4h (676) Tonga Islands
  50369. 2A5h (677) Solomon Islands
  50370. 2A6h (678) Vanuatu
  50371. 2A7h (679) Fiji
  50372. 2A8h (680) Palau
  50373. 2A9h (681) Wallis & Futuna
  50374. 2AAh (682) Cook Islands
  50375. 2ABh (683) Niue
  50376. 2ACh (684) American Samoa
  50377. 2ADh (685) Western Samoa
  50378. 2AEh (686) Kiribati
  50379. 2AFh (687) New Caledonia
  50380. 2B0h (688) Tuvalu
  50381. 2B1h (689) French Polynesia
  50382. 2B2h (690) Tokealu
  50383. 2B3h (691) Micronesia
  50384. 2B4h (692) Marshall Islands
  50385. 2C7h (711) ??? (currency = EA$)
  50386. 311h (785) Arabic (Middle East/Saudi Arabia/etc.)
  50387. 324h (804) Ukraine
  50388. 329h (809) Antigua and Barbuda / Anguilla / Bahamas / Barbados / Bermuda
  50389. British Virgin Islands / Cayman Islands / Dominica
  50390. Dominican Republic / Grenada / Jamaica / Montserra
  50391. St. Kitts and Nevis / St. Lucia / St. Vincent and Grenadines
  50392. Trinidad and Tobago / Turks and Caicos
  50393. 352h (850) North Korea
  50394. 354h (852) Hong Kong
  50395. 355h (853) Macao
  50396. 357h (855) Cambodia
  50397. 358h (856) Laos
  50398. 370h (880) Bangladesh
  50399. 376h (886) Taiwan (DOS 6.22+)
  50400. 3C0h (960) Maldives
  50401. 3C1h (961) Lebanon
  50402. 3C2h (962) Jordan
  50403. 3C3h (963) Syrian Arab Republic
  50404. 3C4h (964) Ireq
  50405. 3C5h (965) Kuwait
  50406. 3C6h (966) Saudi Arabia
  50407. 3C7h (967) Yemen
  50408. 3C8h (968) Oman
  50409. 3CBh (971) United Arab Emirates
  50410. 3CCh (972) Israel (Hebrew) (DR DOS 5.0,MS-DOS 5.0+)
  50411. 3CDh (973) Bahrain
  50412. 3CEh (974) Qatar
  50413. 3CFh (975) Bhutan
  50414. 3D0h (976) Mongolia
  50415. 3D1h (977) Nepal
  50416. 3E3h (995) Myanmar (Burma)
  50417. Note: not all country codes are supported by all versions of DOS
  50418. --------D-2138--DXFFFF-----------------------
  50419. INT 21 - DOS 3.0+ - SET COUNTRY CODE
  50420. AH = 38h
  50421. DX = FFFFh
  50422. AL = 01h thru FEh for specific country with code <255
  50423. AL = FFh for specific country with code >= 255
  50424. BX = 16-bit country code (see #01400)
  50425. Return: CF set on error
  50426. AX = error code (see #01680 at AH=59h/BX=0000h)
  50427. CF clear if successful
  50428. Note: not supported by OS/2
  50429. SeeAlso: INT 2F/AX=1403h
  50430. --------D-2139-------------------------------
  50431. INT 21 - DOS 2+ - "MKDIR" - CREATE SUBDIRECTORY
  50432. AH = 39h
  50433. DS:DX -> ASCIZ pathname
  50434. Return: CF clear if successful
  50435. AX destroyed
  50436. CF set on error
  50437. AX = error code (03h,05h) (see #01680 at AH=59h/BX=0000h)
  50438. Notes: all directories in the given path except the last must exist
  50439. fails if the parent directory is the root and is full
  50440. DOS 2.x-3.3 allow the creation of a directory sufficiently deep that
  50441. it is not possible to make that directory the current directory
  50442. because the path would exceed 64 characters
  50443. under the FlashTek X-32 DOS extender, the pointer is in DS:EDX
  50444. SeeAlso: AH=3Ah,AH=3Bh,AH=6Dh,AX=7139h,AH=E2h/SF=0Ah,AX=43FFh/BP=5053h
  50445. SeeAlso: INT 2F/AX=1103h,INT 60/DI=0511h
  50446. --------D-213A-------------------------------
  50447. INT 21 - DOS 2+ - "RMDIR" - REMOVE SUBDIRECTORY
  50448. AH = 3Ah
  50449. DS:DX -> ASCIZ pathname of directory to be removed
  50450. Return: CF clear if successful
  50451. AX destroyed
  50452. CF set on error
  50453. AX = error code (03h,05h,06h,10h) (see #01680 at AH=59h/BX=0000h)
  50454. Notes: directory must be empty (contain only '.' and '..' entries)
  50455. under the FlashTek X-32 DOS extender, the pointer is in DS:EDX
  50456. SeeAlso: AH=39h,AH=3Bh,AX=713Ah,AH=E2h/SF=0Bh,INT 2F/AX=1101h,INT 60/DI=0512h
  50457. --------D-213B-------------------------------
  50458. INT 21 - DOS 2+ - "CHDIR" - SET CURRENT DIRECTORY
  50459. AH = 3Bh
  50460. DS:DX -> ASCIZ pathname to become current directory (max 64 bytes)
  50461. Return: CF clear if successful
  50462. AX destroyed
  50463. CF set on error
  50464. AX = error code (03h) (see #01680 at AH=59h/BX=0000h)
  50465. Notes: if new directory name includes a drive letter, the default drive is
  50466. not changed, only the current directory on that drive
  50467. changing the current directory also changes the directory in which
  50468. FCB file calls operate
  50469. under the FlashTek X-32 DOS extender, the pointer is in DS:EDX
  50470. SeeAlso: AH=47h,AX=713Bh,INT 2F/AX=1105h
  50471. --------D-213C-------------------------------
  50472. INT 21 - DOS 2+ - "CREAT" - CREATE OR TRUNCATE FILE
  50473. AH = 3Ch
  50474. CX = file attributes (see #01401)
  50475. DS:DX -> ASCIZ filename
  50476. Return: CF clear if successful
  50477. AX = file handle
  50478. CF set on error
  50479. AX = error code (03h,04h,05h) (see #01680 at AH=59h/BX=0000h)
  50480. Notes: if a file with the given name exists, it is truncated to zero length
  50481. under the FlashTek X-32 DOS extender, the pointer is in DS:EDX
  50482. DR DOS checks the system password or explicitly supplied password at
  50483. the end of the filename against the reserved field in the directory
  50484. entry before allowing access
  50485. SeeAlso: AH=16h,AH=3Dh,AH=5Ah,AH=5Bh,AH=93h,INT 2F/AX=1117h
  50486. Bitfields for file attributes:
  50487. Bit(s) Description (Table 01401)
  50488. 0 read-only
  50489. 1 hidden
  50490. 2 system
  50491. 3 volume label (ignored)
  50492. 4 reserved, must be zero (directory)
  50493. 5 archive bit
  50494. 7 if set, file is shareable under Novell NetWare
  50495. --------D-213D-------------------------------
  50496. INT 21 - DOS 2+ - "OPEN" - OPEN EXISTING FILE
  50497. AH = 3Dh
  50498. AL = access and sharing modes (see #01402)
  50499. DS:DX -> ASCIZ filename
  50500. CL = attribute mask of files to look for (server call only)
  50501. Return: CF clear if successful
  50502. AX = file handle
  50503. CF set on error
  50504. AX = error code (01h,02h,03h,04h,05h,0Ch,56h) (see #01680 at AH=59h)
  50505. Notes: file pointer is set to start of file
  50506. if SHARE or a network is loaded, the file open may fail if the file
  50507. is already open, depending on the combination of sharing modes
  50508. (see #01403,#01404)
  50509. file handles which are inherited from a parent also inherit sharing
  50510. and access restrictions
  50511. files may be opened even if given the hidden or system attributes
  50512. under the FlashTek X-32 DOS extender, the pointer is in DS:EDX
  50513. DR DOS checks the system password or explicitly supplied password at
  50514. the end of the filename (following a semicolon) against the reserved
  50515. field in the directory entry before allowing access
  50516. sharing modes are only effective on local drives if SHARE is loaded
  50517. BUG: Novell DOS 7 SHARE v1.00 would refuse file access in the cases in
  50518. #01403 marked with [1] (read-only open of a read-only file
  50519. which had previously been opened in compatibility mode); this was
  50520. fixed in SHARE v1.01 of 09/29/94
  50521. SeeAlso: AH=0Fh,AH=3Ch,AX=4301h,AX=5D00h,INT 2F/AX=1116h,INT 2F/AX=1226h
  50522. Bitfields for access and sharing modes:
  50523. Bit(s) Description (Table 01402)
  50524. 2-0 access mode
  50525. 000 read only
  50526. 001 write only
  50527. 010 read/write
  50528. 011 (DOS 5+ internal) passed to redirector on EXEC to allow
  50529. case-sensitive filenames
  50530. 3 reserved (0)
  50531. 6-4 sharing mode (DOS 3.0+) (see #01403)
  50532. 000 compatibility mode
  50533. 001 "DENYALL" prohibit both read and write access by others
  50534. 010 "DENYWRITE" prohibit write access by others
  50535. 011 "DENYREAD" prohibit read access by others
  50536. 100 "DENYNONE" allow full access by others
  50537. 111 network FCB (only available during server call)
  50538. 7 inheritance
  50539. if set, file is private to current process and will not be inherited
  50540. by child processes
  50541. SeeAlso: #01782,#01403
  50542. (Table 01403)
  50543. Values of DOS 2-6.22 file sharing behavior:
  50544. | Second and subsequent Opens
  50545. First |Compat Deny Deny Deny Deny
  50546. Open | All Write Read None
  50547. |R W RW R W RW R W RW R W RW R W RW
  50548. - - - - -| - - - - - - - - - - - - - - - - -
  50549. Compat R |Y Y Y N N N 1 N N N N N 1 N N
  50550. W |Y Y Y N N N N N N N N N N N N
  50551. RW|Y Y Y N N N N N N N N N N N N
  50552. - - - - -|
  50553. Deny R |C C C N N N N N N N N N N N N
  50554. All W |C C C N N N N N N N N N N N N
  50555. RW|C C C N N N N N N N N N N N N
  50556. - - - - -|
  50557. Deny R |2 C C N N N Y N N N N N Y N N
  50558. Write W |C C C N N N N N N Y N N Y N N
  50559. RW|C C C N N N N N N N N N Y N N
  50560. - - - - -|
  50561. Deny R |C C C N N N N Y N N N N N Y N
  50562. Read W |C C C N N N N N N N Y N N Y N
  50563. RW|C C C N N N N N N N N N N Y N
  50564. - - - - -|
  50565. Deny R |2 C C N N N Y Y Y N N N Y Y Y
  50566. None W |C C C N N N N N N Y Y Y Y Y Y
  50567. RW|C C C N N N N N N N N N Y Y Y
  50568. Legend: Y = open succeeds, N = open fails with error code 05h
  50569. C = open fails, INT 24 generated
  50570. 1 = open succeeds if file read-only, else fails with error code
  50571. 2 = open succeeds if file read-only, else fails with INT 24
  50572. SeeAlso: #01636,#01404
  50573. (Table 01404)
  50574. Values for DOS 7.x file sharing behavior:
  50575. | Second and subsequent Opens
  50576. First |Compat Deny Deny Deny Deny
  50577. Open | All Write Read None
  50578. |R W RW A R W RW A R W RW A R W RW A R W RW A
  50579. - - - - -| - - - - - - - - - - - - - - - - - - - - - - - -
  50580. Compat R |Y Y Y Y N N N N Y N N Y N N N Y Y N N Y
  50581. W |Y Y Y C N N N N N N N N N N N Y Y N N Y
  50582. RW|Y Y Y C N N N N N N N N N N N Y Y N N Y
  50583. NA|Y C C Y N N N N Y N N Y N N N Y Y N N Y
  50584. - - - - -|
  50585. Deny R |C C C C N N N N N N N N N N N N N N N N
  50586. All W |C C C C N N N N N N N N N N N N N N N N
  50587. RW|C C C C N N N N N N N N N N N N N N N N
  50588. NA|C C C C N N N N N N N N N N N N N N N N
  50589. - - - - -|
  50590. Deny R |Y C C Y N N N N Y N N Y N N N Y Y N N Y
  50591. Write W |C C C C N N N N N N N N Y N N Y Y N N Y
  50592. RW|C C C C N N N N N N N N N N N Y Y N N Y
  50593. NA|Y C C Y N N N N Y N N Y N N N Y Y N N Y
  50594. - - - - -|
  50595. Deny R |C C C C N N N N N Y N N N N N N N Y N N
  50596. Read W |C C C C N N N N N N N N N Y N N N Y N N
  50597. RW|C C C C N N N N N N N N N N N N N Y N N
  50598. NA|Y Y Y Y N N N N Y Y Y Y N N N Y Y Y Y Y
  50599. - - - - -|
  50600. Deny R |Y Y Y Y N N N N Y Y Y Y N N N Y Y Y Y Y
  50601. None W |C C C C N N N N N N N N Y Y Y Y Y Y Y Y
  50602. RW|C C C C N N N N N N N N N N N Y Y Y Y Y
  50603. NA|Y Y Y Y N N N N Y Y Y Y N N N Y Y Y Y Y
  50604. Legend: R -> reading, W -> writing, RW -> both reading & writing,
  50605. A/NA -> reading without access time update
  50606. Y = open succeeds, N = open fails with error code 05h
  50607. C = open fails, INT 24 generated
  50608. SeeAlso: #01403,#01636
  50609. --------v-213D76-----------------------------
  50610. INT 21 - VIRUS - "GT-SPOOF" -INSTALLATION CHECK
  50611. AX = 3D76h
  50612. Return: AX = 763Dh if resident
  50613. SeeAlso: AX=357Fh,AX=3DFFh
  50614. --------v-213DFF-----------------------------
  50615. INT 21 - VIRUS - "JD-448" - INSTALLATION CHECK
  50616. AX = 3DFFh
  50617. Return: AX = 4A44h if resident
  50618. SeeAlso: AX=3D76h,AX=4203h
  50619. --------D-213E-------------------------------
  50620. INT 21 - DOS 2+ - "CLOSE" - CLOSE FILE
  50621. AH = 3Eh
  50622. BX = file handle
  50623. Return: CF clear if successful
  50624. AX destroyed
  50625. CF set on error
  50626. AX = error code (06h) (see #01680 at AH=59h/BX=0000h)
  50627. Notes: if the file was written to, any pending disk writes are performed, the
  50628. time and date stamps are set to the current time, and the directory
  50629. entry is updated
  50630. recent versions of DOS preserve AH because some versions of Multiplan
  50631. had a bug which depended on AH being preserved
  50632. SeeAlso: AH=10h,AH=3Ch,AH=3Dh,INT 2F/AX=1106h,INT 2F/AX=1227h
  50633. --------D-213F-------------------------------
  50634. INT 21 - DOS 2+ - "READ" - READ FROM FILE OR DEVICE
  50635. AH = 3Fh
  50636. BX = file handle
  50637. CX = number of bytes to read
  50638. DS:DX -> buffer for data
  50639. Return: CF clear if successful
  50640. AX = number of bytes actually read (0 if at EOF before call)
  50641. CF set on error
  50642. AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h)
  50643. Notes: data is read beginning at current file position, and the file position
  50644. is updated after a successful read
  50645. the returned AX may be smaller than the request in CX if a partial
  50646. read occurred
  50647. if reading from CON, read stops at first CR
  50648. under the FlashTek X-32 DOS extender, the pointer is in DS:EDX
  50649. BUG: Novell NETX.EXE v3.26 and 3.31 do not set CF if the read fails due to
  50650. a record lock (see AH=5Ch), though it does return AX=0005h; this
  50651. has been documented by Novell
  50652. SeeAlso: AH=27h,AH=40h,AH=93h,INT 2F/AX=1108h,INT 2F/AX=1229h
  50653. --------G-213F-------------------------------
  50654. INT 21 - Turbo Debug HARDWARE BREAKPOINTS - READ STATUS BLOCK
  50655. AH = 3Fh
  50656. BX = handle for character device "TDHDEBUG"
  50657. CX = number of bytes to read
  50658. DS:DX -> buffer for status block (see #01406)
  50659. Return: CF clear if successful
  50660. AX = number of bytes actually read
  50661. CF set on error
  50662. AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h)
  50663. SeeAlso: AH=40h"Turbo Debug"
  50664. (Table 01405)
  50665. Values for status of Turbo Debugger command:
  50666. 00h successful
  50667. 01h invalid handle
  50668. 02h no more breakpoints available
  50669. 03h hardware does not support specified breakpoint type
  50670. 04h previous command prevents execution
  50671. 05h debugger hardware not found
  50672. 06h hardware failure
  50673. 07h invalid command
  50674. 08h driver not initialized yet
  50675. FEh recursive entry (hardware breakpoint inside hw bp handler)
  50676. Format of Turbo Debugger status block:
  50677. Offset Size Description (Table 01406)
  50678. 00h BYTE status of command (see #01405)
  50679. ---status for command 01h---
  50680. 01h WORD device driver interface version number (currently 1)
  50681. 03h WORD device driver software version
  50682. 05h BYTE maximum simultaneous hardware breakpoints
  50683. 06h BYTE configuration bits (see #01407)
  50684. 07h BYTE supported breakpoint types (see #01408)
  50685. 08h WORD supported addressing match modes (see #01409)
  50686. 0Ah WORD supported data matches (see #01410)
  50687. 0Ch BYTE maximum data match length (01h, 02h, or 04h)
  50688. 0Dh WORD size of onboard memory (in KB)
  50689. 0Fh WORD maximum number of trace-back events
  50690. 11h WORD hardware breakpoint enable byte address segment (0000h if not
  50691. supported)
  50692. ---status for command 04h---
  50693. 01h BYTE handle to use when referring to the just-set breakpoint
  50694. Bitfields for Turbo Debugger configuration bits:
  50695. Bit(s) Description (Table 01407)
  50696. 0 CPU and DMA accesses are distinct
  50697. 1 can detect DMA transfers
  50698. 2 supports data mask
  50699. 3 hardware pass counter on breakpoints
  50700. 4 can match on data as well as addresses
  50701. Bitfields for Turbo Debugger supported breakpoint types:
  50702. Bit(s) Description (Table 01408)
  50703. 0 memory read
  50704. 1 memory write
  50705. 2 memory read/write
  50706. 3 I/O read
  50707. 4 I/O write
  50708. 5 I/O read/write
  50709. 6 instruction fetch
  50710. Bitfields for Turbo Debugger supported addressing match modes:
  50711. Bit(s) Description (Table 01409)
  50712. 0 any address
  50713. 1 equal to test value
  50714. 2 not equal
  50715. 3 above test value
  50716. 4 below test value
  50717. 5 below or equal
  50718. 6 above or equal
  50719. 7 within range
  50720. 8 outside range
  50721. Bitfields for Turbo Debugger supported data matches:
  50722. Bit(s) Description (Table 01410)
  50723. 0 any data
  50724. 1 equal to test value
  50725. 2 not equal
  50726. 3 above test value
  50727. 4 below test value
  50728. 5 below or equal
  50729. 6 above or equal
  50730. 7 within range
  50731. 8 outside range
  50732. --------N-213F-------------------------------
  50733. INT 21 - PC/TCP IPCUST.SYS - READ CONFIGURATION DATA
  50734. AH = 3Fh
  50735. BX = handle for character device "$IPCUST"
  50736. CX = number of bytes to read
  50737. DS:DX -> buffer for configuration data (see #01411)
  50738. Return: CF clear if successful
  50739. AX = number of bytes actually read
  50740. CF set on error
  50741. AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h)
  50742. Notes: if less than the entire data is read or written, the next read/write
  50743. continues where the previous one ended; IOCTL calls AX=4402h and
  50744. AX=4403h both reset the location at which the next operation starts
  50745. to zero
  50746. the data pointer is also reset to zero if the previous read or write
  50747. reached or exceeded the end of the data, when the current function
  50748. is read and the previous was write, or vice versa
  50749. v2.1+ uses a new configuration method, but allows the installation
  50750. of IPCUST.SYS for backward compatibility with other software which
  50751. must read the PC/TCP configuration
  50752. SeeAlso: AH=40h"IPCUST",AX=4402h"IPCUST",AX=4402h"FTPSOFT"
  50753. Format of PC/TCP configuration data:
  50754. Offset Size Description (Table 01411)
  50755. 00h 12 BYTEs IPCUST.SYS device driver header (see #01646)
  50756. 12h BYTE ???
  50757. 13h BYTE ???
  50758. 14h WORD ???
  50759. 16h BYTE bit flags
  50760. bit 0: send BS rather than DEL for BackSpace key
  50761. bit 1: wrap long lines
  50762. 17h BYTE ???
  50763. 18h 64 BYTEs ASCIZ hostname
  50764. 58h 64 BYTEs ASCIZ domain name
  50765. (fully qualified domain name is hostname.domain-name)
  50766. 98h 16 BYTEs ASCIZ username
  50767. A8h 64 BYTEs ASCIZ full name
  50768. E8h 64 BYTEs ASCIZ office address
  50769. 128h 32 BYTEs ASCIZ phone number
  50770. 148h WORD offset from GMT in minutes
  50771. 14Ah 4 BYTEs ASCIZ timezone name
  50772. 14Eh WORD number of time servers
  50773. 150h ? DWORDs (big-endian) IP addresses for time servers
  50774. ???
  50775. 164h WORD number of old-style name servers
  50776. 166h 3 DWORDs (big-endian) IP addresses for name servers
  50777. 172h WORD number of domain name servers
  50778. 174h 3 DWORDs (big-endian) IP addresses for domain name servers
  50779. 180h DWORD (big-endian) IP address of default gateway
  50780. 184h DWORD (big-endian) IP address of log server
  50781. 188h DWORD (big-endian) IP address of cookie server
  50782. 18Ch DWORD (big-endian) IP address of lpr server
  50783. 190h DWORD (big-endian) IP address of imagen print server
  50784. 194h 54 BYTEs ???
  50785. 1E8h WORD TCP default window size in bytes
  50786. 1EAh WORD TCP low window size
  50787. 1ECh 64 BYTEs ASCIZ host tabel filename
  50788. 22Ch 2 BYTEs ???
  50789. 22Eh 80 BYTEs ASCIZ mail relay host name
  50790. 27Eh BYTE ???
  50791. 27Fh BYTE ??? bit flags
  50792. 280h 44 BYTEs ???
  50793. 2ACh WORD ???
  50794. 2AEh 202 BYTEs ???
  50795. --------N-213F-------------------------------
  50796. INT 21 - WORKGRP.SYS - GET ENTRY POINT
  50797. AH = 3Fh
  50798. BX = file handle for device "NET$HLP$"
  50799. CX = 0008h
  50800. DS:DX -> buffer for entry point record (see #01485)
  50801. Return: CF clear if successful
  50802. AX = number of bytes actually read (0 if at EOF before call)
  50803. CF set on error
  50804. AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h)
  50805. Program: WORKGRP.SYS is the portion of Microsoft's Workgroup Connection which
  50806. permits communication with PCs running Windows for Workgroups or
  50807. LAN Manager
  50808. SeeAlso: AX=4402h"WORKGRP.SYS",INT 2F/AX=9400h
  50809. --------N-213F-------------------------------
  50810. INT 21 - BW-TCP - GET DRIVER INFO
  50811. AH = 3Fh
  50812. BX = file handle for device "ETHDEV27"
  50813. CX = 002Bh
  50814. DS:DX -> buffer for driver info (see #01412)
  50815. Return: CF clear if successful
  50816. AX = number of bytes actually read (0 if at EOF before call)
  50817. CF set on error
  50818. AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h)
  50819. Program: BW-TCP is a TCP/IP protocol stack by Beame & Whiteside Software
  50820. InstallCheck: for the TCP/IP stack, test for the existence of the character
  50821. device UDP-IP10
  50822. Note: the B&W socket library performs an INT 21/AX=4401h with DX=0060h before
  50823. making this call to retrieve the driver information; one should also
  50824. call the private API interrupt with AH=15h
  50825. SeeAlso: INT 14/AH=56h,INT 62/AH=00h"ETHDEV",INT 63/AH=03h,INT 64/AH=01h
  50826. Index: installation check;BW-TCP hardware driver
  50827. Index: installation check;BW-TCP TCPIP.SYS
  50828. Format of BW-TCP driver info:
  50829. Offset Size Description (Table 01412)
  50830. 00h WORD I/O base address
  50831. 02h BYTE shared memory page (01h = segment 0100h, etc.)
  50832. 03h BYTE interrupt vector for private API
  50833. 04h BYTE IRQ used by board
  50834. 05h WORD size of data buffer
  50835. 07h WORD maximum transfer window
  50836. 09h WORD time zone
  50837. 0Bh BYTE address type (01h user, 04h RARP, 05h BOOTP)
  50838. 0Ch DWORD internet address
  50839. 10h WORD "value" ???
  50840. 12h BYTE subnet mask
  50841. 13h WORD "ether_pointer" ???
  50842. 15h WORD offset in device driver of log server records (see #01413)
  50843. 17h WORD offset in device driver of name server records (see #01413)
  50844. 19h WORD offset in device driver of print server records (see #01413)
  50845. 1Bh WORD offset in device driver of time server records (see #01413)
  50846. 1Dh WORD offset in device driver of gateway records (see #01413)
  50847. 1Fh WORD segment address of device driver
  50848. 21h BYTE transfer size
  50849. 22h 9 BYTEs network adapter board name
  50850. ---11/21/91+ ---
  50851. 23h BYTE ETHDEV version (major in high nybble, minor in low nybble)
  50852. 24h BYTE ETHDEV revision
  50853. 25h BYTE TCPIP version (major in high nybble, minor in low nybble)
  50854. 26h BYTE TCPIP revision
  50855. 27h BYTE BWRPC version (major in high nybble, minor in low nybble)
  50856. 28h BYTE BWRPC revision
  50857. 29h BYTE BWNFS version (major in high nybble, minor in low nybble)
  50858. 2Ah BYTE BWNFS revision
  50859. 2Bh BYTE Telnet version (major in high nybble, minor in low nybble)
  50860. 2Ch BYTE Telnet revision
  50861. 2Dh BYTE NETBIOS version (major in high nybble, minor in low nybble)
  50862. 2Eh BYTE NETBIOS revision
  50863. Note: for each driver, if version=0, the driver is not installed or does
  50864. not support the version check
  50865. Format of BW-TCP server records:
  50866. Offset Size Description (Table 01413)
  50867. 00h BYTE number of server records following
  50868. 01h N DWORDs internet addresses of servers
  50869. --------y-213F-------------------------------
  50870. INT 21 - Trusted Access - NB.SYS - GET STATE
  50871. AH = 3Fh
  50872. BX = file handle for device "$$NB$$NB"
  50873. CX = 0002h (size of state)
  50874. DS:DX -> buffer for state record (see #01414)
  50875. Return: CF clear if successful
  50876. AX = number of bytes actually read (0 if at EOF before call)
  50877. CF set on error
  50878. AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h)
  50879. Program: Trusted Access is a security and access-control package by Lassen
  50880. Software, Inc.; NB.SYS is a device driver to prevent the user from
  50881. terminating CONFIG.SYS or AUTOEXEC.BAT with Ctrl-Break
  50882. SeeAlso: AH=40h"NB.SYS",AX=4101h
  50883. Format of Trusted Access state record:
  50884. Offset Size Description (Table 01414)
  50885. 00h BYTE 00h off, 01h on
  50886. 01h BYTE keys being disabled
  50887. bit 0: Ctrl-Break
  50888. bit 1: SysReq
  50889. bit 2: Ctrl and Alt
  50890. bit 3: Ctrl-Alt-Del
  50891. bit 7: all keys (overrides other bits)
  50892. ----------213F-------------------------------
  50893. INT 21 U - IFSHLP.SYS - GET ENTRY POINT
  50894. AH = 3Fh
  50895. BX = file handle for device "IFS$HLP$"
  50896. CX = 0008h (size of buffer in bytes)
  50897. DS:DX -> buffer for entry point record (see #01415)
  50898. Return: CF clear if successful
  50899. AX = number of bytes actually read (0 if at EOF before call)
  50900. CF set on error
  50901. AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h)
  50902. Program: IFSHLP.SYS is a support driver for Microsoft Windows for Workgroups
  50903. SeeAlso: AX=4402h"IFSHLP"
  50904. Format of IFSHLP.SYS entry point record:
  50905. Offset Size Description (Table 01415)
  50906. 00h 4 BYTEs (call) required signature if called via IOCTL
  50907. 70h E9h 34h 37h for Windows 3.11
  50908. 70h E9h 35h 37h for Windows 3.11
  50909. (ret) signature 34h 37h 70h EFh (Windows 3.11)
  50910. (ret) signature 35h 37h 70h EFh (Windows95)
  50911. 04h DWORD (ret) pointer to FAR call entry point (see #01416)
  50912. (Table 01416)
  50913. Call IFSHLP.SYS entry point with:
  50914. STACK: WORD function number (00h-0Ch)
  50915. 00h get ??? data
  50916. 01h set interrupt intercepts (trap)
  50917. 02h remove interrupt intercepts (untrap)
  50918. 03h ??? LPT2
  50919. 04h ??? LPT1
  50920. 05h revector INT 2F to trap and remove trap for others
  50921. 06h set ??? flag
  50922. 07h clear ??? flag
  50923. 08h get ??? flag word
  50924. ---Windows 3.11 only---
  50925. 09h ???
  50926. 0Ah ???
  50927. 0Bh ???
  50928. 0Ch get ???
  50929. ---if function 00h---
  50930. Return: DX:AX -> ??? data (see #01417)
  50931. BX destroyed
  50932. ---if function 01h---
  50933. STACK: DWORD new intercept (trap) address
  50934. Return: AX = status
  50935. 0000h successful
  50936. 0001h failed (already set)
  50937. DX = 0000h
  50938. BX destroyed
  50939. Note: the trap handler is called with a function number in BX, and the
  50940. original BX on top of the stack; a null handler must perform a
  50941. POP BX and an IRET
  50942. ---if function 02h---
  50943. Return: AX = status
  50944. 0000h successful
  50945. 0001h failed (not set)
  50946. DX = 0000h
  50947. BX destroyed
  50948. ---if function 03h,04h---
  50949. STACK: WORD ???
  50950. Return: AX = 0000h
  50951. DX = 0000h
  50952. BX destroyed
  50953. ---if function 05h---
  50954. ???
  50955. Return: BX destroyed
  50956. ---if function 06h---
  50957. Return: AX = 0001h and DX = 0000h if already set
  50958. AX,DX unchanged if successful
  50959. BX destroyed
  50960. ---if function 07h---
  50961. Return: AX = 0001h and DX = 0000h if not set
  50962. AX,DX unchanged if successful
  50963. BX destroyed
  50964. ---if function 08h---
  50965. Return: DX = 0000h
  50966. AX = flags
  50967. bit 0: set/cleared by functions 06h and 07h
  50968. bit 1: trap is currently set (refer to functions 01h/02h)
  50969. BX destroyed
  50970. ---if function 09h---
  50971. Return: AX = status
  50972. 0000h successful
  50973. 0001h failed (already called)
  50974. BX destroyed
  50975. ---if function 0Ah---
  50976. STACK: WORD ???
  50977. ???
  50978. Return: BX destroyed
  50979. ---if function 0Bh---
  50980. Return: AX = status
  50981. 0000h successful
  50982. 0001h failed (not set)
  50983. BX destroyed
  50984. ---if function 0Ch---
  50985. Return: AX = 0000h
  50986. ES:BX -> ??? data
  50987. ---if function > 0Ch---
  50988. Return: AX = 0001h
  50989. DX = 0000h
  50990. BX destroyed
  50991. Format of IFSHLP ??? data:
  50992. Offset Size Description (Table 01417)
  50993. 00h DWORD -> DOS Swappable Data Area (see #01687,#01689)
  50994. 02h WORD ??? offset in DOS data segment?
  50995. 04h WORD offset in DOS data segment of current-PSP WORD
  50996. 06h WORD ???
  50997. 08h WORD ???
  50998. 0Ah WORD ???
  50999. 0Ch DWORD -> DOS List of Lists (see #01627)
  51000. 10h ???
  51001. SeeAlso: #01416
  51002. --------v-213F--BXFEB0-----------------------
  51003. INT 21 - VIRUS - "KYZ/LieWait" - INSTALLATION CHECK
  51004. AH = 3Fh
  51005. BX = FEB0h
  51006. Return: BX = 1212h if resident
  51007. SeeAlso: AX=3032h"VIRUS",AX=4BF1h"VIRUS"
  51008. --------D-2140-------------------------------
  51009. INT 21 - DOS 2+ - "WRITE" - WRITE TO FILE OR DEVICE
  51010. AH = 40h
  51011. BX = file handle
  51012. CX = number of bytes to write
  51013. DS:DX -> data to write
  51014. Return: CF clear if successful
  51015. AX = number of bytes actually written
  51016. CF set on error
  51017. AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h)
  51018. Notes: if CX is zero, no data is written, and the file is truncated or
  51019. extended to the current position
  51020. data is written beginning at the current file position, and the file
  51021. position is updated after a successful write
  51022. for FAT32 drives, the file must have been opened with AX=6C00h with
  51023. the "extended size" flag in order to expand the file beyond 2GB;
  51024. otherwise the write will fail with error code 0005h (access denied)
  51025. the usual cause for AX < CX on return is a full disk
  51026. BUG: a write of zero bytes will appear to succeed when it actually failed
  51027. if the write is extending the file and there is not enough disk
  51028. space for the expanded file (DOS 5.0-6.0); one should therefore check
  51029. whether the file was in fact extended by seeking to 0 bytes from
  51030. the end of the file (INT 21/AX=4202h/CX=0000h/DX=0000h)
  51031. under the FlashTek X-32 DOS extender, the pointer is in DS:EDX
  51032. SeeAlso: AH=28h,AH=3Fh"DOS",AH=93h,INT 2F/AX=1109h
  51033. --------G-2140-------------------------------
  51034. INT 21 - Turbo Debug HARDWARE BREAKPOINTS - SEND CMD TO HARDWARE BRKPNT DRIVER
  51035. AH = 40h
  51036. BX = handle for character device "TDHDEBUG"
  51037. CX = number of bytes to write
  51038. DS:DX -> hardware breakpoint command (see #01418)
  51039. Return: CF clear if successful
  51040. AX = number of bytes actually written
  51041. CF set on error
  51042. AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h)
  51043. Note: results are retrieved by reading from the device
  51044. SeeAlso: AH=3Fh"Turbo Debug"
  51045. Format of Turbo Debugger hardware breakpoint commands:
  51046. Offset Size Description (Table 01418)
  51047. 00h BYTE command code
  51048. 00h install interrupt vectors
  51049. 01h get hardware capabilities
  51050. 02h enable hardware breakpoints
  51051. 03h disable hardware breakpoints
  51052. 04h set hardware breakpoint
  51053. 05h clear hardware breakpoint
  51054. 06h set I/O base address and reset hardware
  51055. 07h restore interrupt vectors
  51056. ---command code 00h---
  51057. 01h DWORD pointer to Turbo Debugger entry point to be jumped to on
  51058. hardware breakpoint; call with CPU state the same as on
  51059. the breakpoint except for pushing AX and placing an entry
  51060. code (FFh if breakout button or breakpoint handle) in AH
  51061. ---command code 04h---
  51062. 01h BYTE breakpoint type
  51063. 00h memory read
  51064. 01h memory write
  51065. 02h memory read/write
  51066. 03h I/O read
  51067. 04h I/O write
  51068. 05h I/O read/write
  51069. 06h instruction fetch
  51070. 02h BYTE address matching mode (see #01419)
  51071. 03h DWORD 32-bit linear low address
  51072. 07h DWORD 32-bit linear high address
  51073. 0Bh WORD pass count
  51074. 0Dh BYTE data size (01h, 02h, or 04h)
  51075. 0Eh BYTE source of matched bus cycle (01h CPU, 02h DMA, 03h either)
  51076. 0Fh BYTE data-matching mode (see #01419)
  51077. 10h DWORD low data value
  51078. 14h DWORD high data value
  51079. 18h DWORD data mask specifying which bits of the data are tested
  51080. ---command code 05h---
  51081. 01h BYTE handle of breakpoint to clear (breakpoint returned from command
  51082. 04h)
  51083. ---command code 06h---
  51084. 01h WORD base address of hardware debugger board
  51085. (Table 01419)
  51086. Values for Turbo Debugger address/data matching mode:
  51087. 00h match any
  51088. 01h equal to test value
  51089. 02h different from test value
  51090. 03h above test value
  51091. 04h below test value
  51092. 05h below or equal to test value
  51093. 06h above or equal to test value
  51094. 07h within inclusive range
  51095. 08h outside specified range
  51096. --------N-2140-------------------------------
  51097. INT 21 - PC/TCP IPCUST.SYS - WRITE CONFIGURATION DATA
  51098. AH = 40h
  51099. BX = handle for character device "$IPCUST"
  51100. CX = number of bytes to write
  51101. DS:DX -> buffer for configuration data (AH=3Fh"IPCUST")
  51102. Return: CF clear if successful
  51103. AX = number of bytes actually written
  51104. CF set on error
  51105. AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h)
  51106. Notes: if less than the entire data is read or written, the next read/write
  51107. continues where the previous one ended; IOCTL calls AX=4402h and
  51108. AX=4403h both reset the location at which the next operation starts
  51109. to zero
  51110. the data pointer is also reset to zero if the previous read or write
  51111. reached or exceeded the end of the data, when the current function
  51112. is read and the previous was write, or vice versa
  51113. v2.1+ uses a new configuration method, but allows the installation
  51114. of IPCUST.SYS for backward compatibility with other software which
  51115. must read the PC/TCP configuration
  51116. SeeAlso: AH=3Fh"IPCUST",AX=4402h"IPCUST"
  51117. --------y-2140-------------------------------
  51118. INT 21 U - Trusted Access - NB.SYS - SET STATE
  51119. AH = 40h
  51120. BX = handle for character device "$$NB$$NB"
  51121. DS:DX -> state record (see #01414)
  51122. CX ignored
  51123. Return: CF clear if successful
  51124. AX = number of bytes actually written
  51125. CF set on error
  51126. AX = error code (05h,06h) (see #01680 at AH=59h/BX=0000h)
  51127. Program: Trusted Access is a security and access-control package by Lassen
  51128. Software, Inc.; NB.SYS is a device driver to prevent the user from
  51129. terminating CONFIG.SYS or AUTOEXEC.BAT with Ctrl-Break
  51130. SeeAlso: AH=3Fh"NB.SYS"
  51131. --------j-214000BX0002-----------------------
  51132. INT 21 - FARTBELL.EXE - INSTALLATION CHECK
  51133. AX = 4000h
  51134. BX = 0002h
  51135. CX = 0000h
  51136. DS:DX = 0000h:0000h
  51137. Return: CF clear if installed
  51138. AX = CS of resident code
  51139. Program: FARTBELL is a joke program by Guenther Thiele which makes various
  51140. noises when programs output a bell
  51141. SeeAlso: AX=4001h
  51142. --------j-214001BX0002-----------------------
  51143. INT 21 - FARTBELL.EXE - FORCE NOISE
  51144. AX = 4001h
  51145. BX = 0002h
  51146. CX = 0000h
  51147. DS:DX = 0000h:0000h
  51148. Program: FARTBELL is a joke program by Guenther Thiele which makes various
  51149. noises when programs output a bell
  51150. SeeAlso: AX=4000h
  51151. --------D-2141-------------------------------
  51152. INT 21 - DOS 2+ - "UNLINK" - DELETE FILE
  51153. AH = 41h
  51154. DS:DX -> ASCIZ filename (no wildcards, but see notes)
  51155. CL = attribute mask for deletion (server call only, see notes)
  51156. Return: CF clear if successful
  51157. AX destroyed (DOS 3.3) AL seems to be drive of deleted file
  51158. CF set on error
  51159. AX = error code (02h,03h,05h) (see #01680 at AH=59h/BX=0000h)
  51160. Notes: (DOS 3.1+) wildcards are allowed if invoked via AX=5D00h, in which case
  51161. the filespec must be canonical (as returned by AH=60h), and only
  51162. files matching the attribute mask in CL are deleted
  51163. DR DOS 5.0-6.0 returns error code 03h if invoked via AX=5D00h; DR DOS
  51164. 3.41 crashes if called via AX=5D00h with wildcards
  51165. DOS does not erase the file's data; it merely becomes inaccessible
  51166. because the FAT chain for the file is cleared
  51167. deleting a file which is currently open may lead to filesystem
  51168. corruption. Unless SHARE is loaded, DOS does not close the handles
  51169. referencing the deleted file, thus allowing writes to a nonexistant
  51170. file.
  51171. under DR DOS and DR Multiuser DOS, this function will fail if the file
  51172. is currently open
  51173. under the FlashTek X-32 DOS extender, the pointer is in DS:EDX
  51174. BUG: DR DOS 3.41 crashes if called via AX=5D00h
  51175. SeeAlso: AH=13h,AX=4301h,AX=4380h,AX=5D00h,AH=60h,AX=7141h,AX=F244h
  51176. SeeAlso: INT 2F/AX=1113h
  51177. --------y-214101DXFFFE-----------------------
  51178. INT 21 - SoftLogic Data Guardian - ???
  51179. AX = 4101h
  51180. DX = FFFEh
  51181. Return: AX = 0000h if installed
  51182. Note: resident code sets several internal variables on this call
  51183. SeeAlso: AH=3Fh"NB.SYS",INT 16/AX=FFA3h/BX=0000h
  51184. --------D-2142-------------------------------
  51185. INT 21 - DOS 2+ - "LSEEK" - SET CURRENT FILE POSITION
  51186. AH = 42h
  51187. AL = origin of move
  51188. 00h start of file
  51189. 01h current file position
  51190. 02h end of file
  51191. BX = file handle
  51192. CX:DX = (signed) offset from origin of new file position
  51193. Return: CF clear if successful
  51194. DX:AX = new file position in bytes from start of file
  51195. CF set on error
  51196. AX = error code (01h,06h) (see #01680 at AH=59h/BX=0000h)
  51197. Notes: for origins 01h and 02h, the pointer may be positioned before the
  51198. start of the file; no error is returned in that case (except under
  51199. Windows NT), but subsequent attempts at I/O will produce errors
  51200. if the new position is beyond the current end of file, the file will
  51201. be extended by the next write (see AH=40h); for FAT32 drives, the
  51202. file must have been opened with AX=6C00h with the "extended size"
  51203. flag in order to expand the file beyond 2GB
  51204. BUG: using this method to grow a file from zero bytes to a very large size
  51205. can corrupt the FAT in some versions of DOS; the file should first
  51206. be grown from zero to one byte and then to the desired large size
  51207. SeeAlso: AH=24h,INT 2F/AX=1228h
  51208. --------v-214203-----------------------------
  51209. INT 21 - VIRUS - "Shake" - INSTALLATION CHECK
  51210. AX = 4203h
  51211. Return: AX = 1234h if resident
  51212. SeeAlso: AX=3DFFh,AX=4243h
  51213. --------v-214243-----------------------------
  51214. INT 21 - VIRUS - "Invader" - INSTALLATION CHECK
  51215. AX = 4243h
  51216. Return: AX = 5678h if resident
  51217. SeeAlso: AX=4203h,AX=44A0h,AX=4B04h
  51218. --------D-214300-----------------------------
  51219. INT 21 - DOS 2+ - GET FILE ATTRIBUTES
  51220. AX = 4300h
  51221. DS:DX -> ASCIZ filename
  51222. Return: CF clear if successful
  51223. CX = file attributes (see #01420)
  51224. AX = CX (DR DOS 5.0)
  51225. CF set on error
  51226. AX = error code (01h,02h,03h,05h) (see #01680 at AH=59h)
  51227. Notes: under the FlashTek X-32 DOS extender, the filename pointer is in DS:EDX
  51228. under DR DOS 3.41 and 5.0, attempts to change the subdirectory bit are
  51229. simply ignored without an error
  51230. BUG: Windows for Workgroups returns error code 05h (access denied) instead
  51231. of error code 02h (file not found) when attempting to get the
  51232. attributes of a nonexistent file. This causes open() with O_CREAT
  51233. and fopen() with the "w" mode to fail in Borland C++.
  51234. SeeAlso: AX=4301h,AX=4310h,AX=7143h,AH=B6h,INT 2F/AX=110Fh,INT 60/DI=0517h
  51235. --------D-214301-----------------------------
  51236. INT 21 - DOS 2+ - "CHMOD" - SET FILE ATTRIBUTES
  51237. AX = 4301h
  51238. CX = new file attributes (see #01420)
  51239. DS:DX -> ASCIZ filename
  51240. Return: CF clear if successful
  51241. AX destroyed
  51242. CF set on error
  51243. AX = error code (01h,02h,03h,05h) (see #01680 at AH=59h)
  51244. Notes: will not change volume label or directory attribute bits, but will
  51245. change the other attribute bits of a directory (the directory
  51246. bit must be cleared to successfully change the other attributes of a
  51247. directory, but the directory will not be changed to a normal file as
  51248. a result)
  51249. MS-DOS 4.01 reportedly closes the file if it is currently open
  51250. for security reasons, the Novell NetWare execute-only bit can never
  51251. be cleared; the file must be deleted and recreated
  51252. under the FlashTek X-32 DOS extender, the filename pointer is in DS:EDX
  51253. DOS 5.0 SHARE will close the file if it is currently open in sharing-
  51254. compatibility mode, otherwise a sharing violation critical error is
  51255. generated if the file is currently open
  51256. DR DOS 3.41/5.0 will silently ignore attempts to change the 'directory'
  51257. attribute bit
  51258. SeeAlso: AX=4300h,AX=4311h,AX=7143h,INT 2F/AX=110Eh
  51259. Bitfields for file attributes:
  51260. Bit(s) Description (Table 01420)
  51261. 7 shareable (Novell NetWare)
  51262. 7 pending deleted files (Novell DOS, OpenDOS)
  51263. 6 unused
  51264. 5 archive
  51265. 4 directory
  51266. 3 volume label
  51267. execute-only (Novell NetWare)
  51268. 2 system
  51269. 1 hidden
  51270. 0 read-only
  51271. --------D-214302-----------------------------
  51272. INT 21 - MS-DOS 7 - GET COMPRESSED FILE SIZE
  51273. AX = 4302h
  51274. DS:DX -> ASCIZ pathname for file or directory
  51275. Return: CF clear if successful
  51276. ??? = compressed size of file/directory in bytes
  51277. CF set on error
  51278. AX = error code
  51279. Note: on volumes which do not support compression, the returned size is the
  51280. actual file size rounded up to the next cluster boundary
  51281. SeeAlso: AH=71h,AH=72h
  51282. --------O-214302-----------------------------
  51283. INT 21 - DR DOS 3.41+ internal - GET ACCESS RIGHTS
  51284. AX = 4302h
  51285. DS:DX -> ASCIZ pathname
  51286. Return: CF clear if successful
  51287. CX = access rights (see #01421)
  51288. AX = CX (DR DOS 5.0)
  51289. CF set on error
  51290. AX = error code
  51291. Desc: Determine which operations the calling program may perform on a
  51292. specified file without being required to provide a password.
  51293. Notes: this protection scheme has been coordinated on all current Digital
  51294. Research/Novell operating systems (DR DOS 3.41+, DRMDOS 5.x, and
  51295. FlexOS 2+)
  51296. this function is documented in DR DOS 6.0 and corresponds to the
  51297. "Get/Set File Attributes" function, subfunction 2, documented in
  51298. Concurrent DOS.
  51299. only FlexOS actually uses the "execution" bits; DR DOS 3.41+ treats
  51300. them as "read" bits.
  51301. DR DOS 3.41-5.x only use bits 0-3. Only DR DOS 6.0 using a
  51302. DRMDOS 5.x security system allowing for users and groups uses bits
  51303. 4-11.
  51304. SeeAlso: AX=4303h,#01354 at INT 21/AH=11h
  51305. Bitfields for DR DOS file access rights:
  51306. Bit(s) Description (Table 01421)
  51307. 0 owner delete requires password
  51308. 1 owner execution requires password (FlexOS)
  51309. 2 owner write requires password
  51310. 3 owner read requires password
  51311. 4 group delete requires password
  51312. 5 group execution requires password (FlexOS)
  51313. 6 group write requires password
  51314. 7 group read requires password
  51315. 8 world delete requires password
  51316. 9 world execution requires password (FlexOS)
  51317. 10 world write requires password
  51318. 11 world read requires password
  51319. --------O-214303-----------------------------
  51320. INT 21 - DR DOS 3.41+ internal - SET ACCESS RIGHTS AND PASSWORD
  51321. AX = 4303h
  51322. CX = access rights
  51323. bits 11-0: access rights (see #01421)
  51324. bit 15: new password is to be set
  51325. DS:DX -> ASCIZ pathname
  51326. [DTA] = new password if CX bit 15 is set (blank-padded to 8 characters)
  51327. Return: CF clear if successful
  51328. CF set on error
  51329. AX = error code
  51330. Notes: if the file is already protected, the old password must be added after
  51331. the pathname, separated by a ";". As with all password handling in
  51332. DR DOS, the old password is processed by the kernel, not any
  51333. applications or utilities making the call.
  51334. this function is documented in DR DOS 6.0 and corresponds to the
  51335. "Get/Set File Attributes" function, subfunction 3, documented in
  51336. Concurrent DOS.
  51337. SeeAlso: AH=0Fh,AH=17h,AX=4302h"DR DOS",AX=4305h,AX=4454h
  51338. --------O-214304-----------------------------
  51339. INT 21 U - DR DOS 5.0-6.0 internal - GET ENCRYPTED PASSWORD
  51340. AX = 4304h
  51341. DS:DX -> ASCIZ filename
  51342. ???
  51343. Return: CF clear if successful
  51344. CX = AX = 0000h if no password assigned to file
  51345. CF set on error
  51346. AX = error code (see #01680 at AH=59h/BX=0000h)
  51347. Note: this function is only supported by DR DOS 5.0 and 6.0 and DRMDOS 5.1
  51348. SeeAlso: AX=4303h,AX=4305h
  51349. --------O-214305-----------------------------
  51350. INT 21 U - DR DOS 5.0-6.0 internal - SET EXTENDED FILE ATTRIBUTES
  51351. AX = 4305h
  51352. DS:DX -> ASCIZ filename
  51353. ???
  51354. Return: CF clear if successful
  51355. CF set on error
  51356. AX = error code (see #01680 at AH=59h/BX=0000h)
  51357. Desc: this function allows the extended attributes, and optionally the
  51358. encrypted password, of a file to be set.
  51359. Note: this function is only supported by DR DOS 5.0 and 6.0 and DRMDOS 5.1
  51360. SeeAlso: AX=4304h,AX=4311h
  51361. --------O-214306-----------------------------
  51362. INT 21 O - DR DOS 6.0 - GET FILE OWNER
  51363. AX = 4306h
  51364. DS:DX -> ASCIZ filename
  51365. Return: CF clear if successful
  51366. AX = CX = value set with AX=4307h
  51367. CF set on error
  51368. AX = error code (see #01680 at AH=59h/BX=0000h)
  51369. Note: no longer supported by Novell DOS 7 / OpenDOS
  51370. SeeAlso: AX=4307h
  51371. --------O-214307-----------------------------
  51372. INT 21 O - DR DOS 6.0 - SET FILE OWNER
  51373. AX = 4307h
  51374. CX = ??? (owner identification number?)
  51375. DS:DX -> ASCIZ filename
  51376. Return: CF clear if successful
  51377. CF set on error
  51378. AX = error code (see #01680 at AH=59h/BX=0000h)
  51379. Note: no longer supported by Novell DOS 7 / OpenDOS
  51380. SeeAlso: AX=4306h
  51381. --------N-214310-----------------------------
  51382. INT 21 - Banyan VINES 2.1+ - GET EXTENDED FILE ATTRIBUTES
  51383. AX = 4310h
  51384. DS:DX -> ASCIZ filename
  51385. Return: CF clear if successful
  51386. CH = attributes (see #01422)
  51387. CF set on error
  51388. AX = error code (01h,02h,03h,05h) (see #01680 at AH=59h/BX=0000h)
  51389. Note: the filename may be a directory but must be on a VINES file service
  51390. SeeAlso: AX=4300h,AX=4311h,AH=B6h,INT 2F/AX=110Fh
  51391. --------N-214311-----------------------------
  51392. INT 21 - Banyan VINES 2.1+ - SET EXTENDED FILE ATTRIBUTES
  51393. AX = 4311h
  51394. CH = new attributes (see #01422)
  51395. DS:DX -> ASCIZ filename
  51396. Return: CF clear if successful
  51397. CF set on error
  51398. AX = error code (01h,02h,03h,05h) (see #01680 at AH=59h/BX=0000h)
  51399. Note: the filename may be a directory but must be on a VINES file service
  51400. SeeAlso: AX=4301h,AX=4305h,AX=4310h,INT 2F/AX=110Eh
  51401. Bitfields for VINES extended file attributes:
  51402. Bit(s) Description (Table 01422)
  51403. 7 unused
  51404. 6 shareable
  51405. 5 execute-only
  51406. 4-0 unused
  51407. --------u-214321BX0000-----------------------
  51408. INT 21 - Q87, Q387 - INSTALLATION CHECK
  51409. AX = 4321h
  51410. BX = 0000h
  51411. EAX = 87654321h (entire EAX value is required, not just AX)
  51412. Return: EAX = 12345678h if installed
  51413. Program: Q387 (renamed to Q87 as of v3.7) is a math coprocessor emulator from
  51414. Quickware
  51415. Note: this function is available only in virtual-86 mode in older versions;
  51416. newer versions also provide it in MS Windows 16- and 32-bit protected
  51417. mode
  51418. SeeAlso: AX=4321h/BX=0001h,AX=4321h/BX=0002h,INT 67/AX=4321h
  51419. --------u-214321BX0001-----------------------
  51420. INT 21 - Q87, Q387 - ENABLE EMULATOR
  51421. AX = 4321h
  51422. BX = 0001h
  51423. EAX = 87654321h (entire EAX value is required, not just AX)
  51424. Desc: enable the emulator by setting the CPU MSW's EM bit and updating
  51425. the BIOS equipment list
  51426. Note: this function is available only in virtual-86 mode in older versions;
  51427. newer versions also provide it in MS Windows 16- and 32-bit protected
  51428. mode
  51429. SeeAlso: AX=4321h/BX=0000h,AX=4321h/BX=0002h
  51430. --------u-214321BX0002-----------------------
  51431. INT 21 - Q87, Q387 - DISABLE EMULATOR
  51432. AX = 4321h
  51433. BX = 0002h
  51434. EAX = 87654321h (entire EAX value is required, not just AX)
  51435. Desc: disable the emulator by clearing the CPU MSW's EM bit and updating
  51436. the BIOS equipment list
  51437. Note: this function is available only in virtual-86 mode in older versions;
  51438. newer versions also provide it in MS Windows 16- and 32-bit protected
  51439. mode
  51440. SeeAlso: AX=4321h/BX=0000h,AX=4321h/BX=0001h
  51441. --------O-214380-----------------------------
  51442. INT 21 - Novell DOS 7 - UNDELETE PENDING DELETE FILE
  51443. AX = 4380h
  51444. ???
  51445. Return: ???
  51446. SeeAlso: AH=41h,AX=4381h
  51447. --------O-214381-----------------------------
  51448. INT 21 - Novell DOS 7 - PURGE PENDING DELETE FILE
  51449. AX = 4381h
  51450. ???
  51451. Return: ???
  51452. SeeAlso: AH=41h,AX=4380h
  51453. --------D-2143FFBP5053-----------------------
  51454. INT 21 - MS-DOS 7.20 (Win98) - EXTENDED-LENGTH FILENAME OPERATIONS
  51455. AX = 43FFh
  51456. BP = 5053h ('PS')
  51457. CL = function
  51458. 39h "mkdir" create directory
  51459. DS:DX -> ASCIZ pathname
  51460. 56h rename file
  51461. DS:DX -> ASCIZ filename of existing file (no wildcards)
  51462. ES:DI -> ASCIZ new filename (no wildcards)
  51463. Return: CF clear if successful
  51464. AX destroyed
  51465. CF set on error
  51466. AX = error code (03h,05h) (see #01680 at AH=59h/BX=0000h)
  51467. Note: these functions are equivalent to INT 21/AH=39h and INT 21/AH=56h,
  51468. but with a maximum path length of 128 characters instead of 67;
  51469. unlike INT 21/AX=71xxh, these functions are available under bare
  51470. DOS and not just in a Windows DOS box
  51471. SeeAlso: AH=39h,AH=56h,AX=7139h,AX=7156h
  51472. --------!---Section--------------------------
  51473. Interrupt List, part 7 of 18
  51474. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  51475. --------D-214400-----------------------------
  51476. INT 21 - DOS 2+ - IOCTL - GET DEVICE INFORMATION
  51477. AX = 4400h
  51478. BX = handle
  51479. Return: CF clear if successful
  51480. DX = device information word (see #01423)
  51481. AX destroyed
  51482. CF set on error
  51483. AX = error code (01h,05h,06h) (see #01680 at AH=59h/BX=0000h)
  51484. Notes: value in DH corresponds to high byte of device driver's attribute word
  51485. if handle refers to a character device
  51486. Novell NetWare reportedly does not return a drive number in bits 5-0
  51487. for a disk file
  51488. this function was not supported by Digital Research's DOS-Plus
  51489. SeeAlso: AX=4401h,INT 2F/AX=122Bh
  51490. Bitfields for device information word:
  51491. Bit(s) Description (Table 01423)
  51492. character device
  51493. 14 device driver can process IOCTL requests (see AX=4402h"DOS 2+")
  51494. 13 output until busy supported
  51495. 11 driver supports OPEN/CLOSE calls
  51496. 8 ??? (set by MS-DOS 6.2x KEYB)
  51497. 7 set (indicates device)
  51498. 6 EOF on input
  51499. 5 raw (binary) mode
  51500. 4 device is special (uses INT 29)
  51501. 3 clock device
  51502. 2 NUL device
  51503. 1 standard output
  51504. 0 standard input
  51505. disk file
  51506. 15 file is remote (DOS 3.0+)
  51507. 14 don't set file date/time on closing (DOS 3.0+)
  51508. 11 media not removable
  51509. 8 (DOS 4 only) generate INT 24 if no disk space on write or read past
  51510. end of file
  51511. 7 clear (indicates file)
  51512. 6 file has not been written
  51513. 5-0 drive number (0 = A:)
  51514. SeeAlso: INT 29
  51515. --------D-214401-----------------------------
  51516. INT 21 - DOS 2+ - IOCTL - SET DEVICE INFORMATION
  51517. AX = 4401h
  51518. BX = handle (must refer to character device)
  51519. DX = device information word (see #01423)
  51520. (DH must be zero for DOS version prior to 6.x)
  51521. Return: CF clear if successful
  51522. CF set on error
  51523. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  51524. Note: this function was not supported by Digital Research's DOS-Plus
  51525. SeeAlso: AX=4400h,INT 2F/AX=122Bh
  51526. --------D-214402-----------------------------
  51527. INT 21 - DOS 2+ - IOCTL - READ FROM CHARACTER DEVICE CONTROL CHANNEL
  51528. AX = 4402h
  51529. BX = file handle referencing character device
  51530. CX = number of bytes to read
  51531. DS:DX -> buffer
  51532. Return: CF clear if successful
  51533. AX = number of bytes actually read
  51534. CF set on error
  51535. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  51536. Notes: format of data is driver-specific
  51537. (also see separate entries below for some specific cases)
  51538. this function was not supported by Digital Research's DOS-Plus
  51539. SeeAlso: AX=4400h,AX=4403h"DOS",AX=4404h"DOS",INT 2F/AX=122Bh
  51540. --------N-214402-----------------------------
  51541. INT 21 - Network Driver Interface Specification (NDIS) 2.0.1 - PROTOCOL MANAGER
  51542. AX = 4402h
  51543. BX = file handle for device "PROTMAN$"
  51544. CX = 000Eh (size of request block)
  51545. DS:DX -> request block (see #01424,#01425,#01426,#01427,#01428,#01432,#01433)
  51546. Return: CF clear if successful
  51547. AX = number of bytes actually read
  51548. CF set on error
  51549. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  51550. SeeAlso: AX=4402h"FTPSOFT"
  51551. Format of NDIS request block for GetProtocolManagerInfo:
  51552. Offset Size Description (Table 01424)
  51553. 00h WORD 01h
  51554. 02h WORD returned status (see #01434)
  51555. 04h DWORD returned pointer to structure representing parsed user config
  51556. 08h DWORD unused
  51557. 0Ch WORD returned BCD version of NDIS on which Protocol Manager is based
  51558. SeeAlso: #01425,#01426,#01427,#01428,#01429,#01430,#01431,#01432,#01433
  51559. Format of NDIS request block for RegisterModule:
  51560. Offset Size Description (Table 01425)
  51561. 00h WORD 02h
  51562. 02h WORD returned status (see #01434)
  51563. 04h DWORD pointer to module's common characteristics table (see #01435)
  51564. 08h DWORD pointer to list of modules to which the module is to be bound
  51565. 0Ch WORD unused
  51566. SeeAlso: #01424,#01426,#01427,#01428,#01429,#01430,#01431,#01432,#01433
  51567. Format of NDIS request block for BindAndStart:
  51568. Offset Size Description (Table 01426)
  51569. 00h WORD 03h
  51570. 02h WORD returned status (see #01434)
  51571. 04h DWORD caller's virtual address in FailingModules structure
  51572. 08h DWORD unused
  51573. 0Ch WORD unused
  51574. SeeAlso: #01424,#01425,#01427,#01428,#01429,#01430,#01431,#01432,#01433
  51575. Format of NDIS request block for GetProtocolManagerLinkage:
  51576. Offset Size Description (Table 01427)
  51577. 00h WORD 04h
  51578. 02h WORD returned status (see #01434)
  51579. 04h DWORD returned dispatch point
  51580. 08h DWORD unused
  51581. 0Ch WORD returned protocol manager DS
  51582. Note: the dispatch point may be called as follows instead of using this IOCTL
  51583. STACK: WORD protocol manager DS
  51584. DWORD pointer to request block
  51585. Return: AX = returned status
  51586. STACK popped
  51587. SeeAlso: #01424,#01425,#01426,#01428,#01429,#01430,#01431,#01432,#01433
  51588. Format of NDIS request block for GetProtocolIniPath:
  51589. Offset Size Description (Table 01428)
  51590. 00h WORD 05h
  51591. 02h WORD returned status (see #01434)
  51592. 04h DWORD pointer to a buffer for the ASCIZ pathname of PROTOCOL.INI
  51593. 08h DWORD unused
  51594. 0Ch WORD buffer length
  51595. SeeAlso: #01424,#01425,#01426,#01427,#01429,#01430,#01431,#01432,#01433
  51596. Format of NDIS request block for RegisterProtocolManagerInfo:
  51597. Offset Size Description (Table 01429)
  51598. 00h WORD 06h
  51599. 02h WORD returned status (see #01434)
  51600. 04h DWORD pointer to structure containing parsed user config file
  51601. 08h DWORD unused
  51602. 0Ch WORD length of structure
  51603. SeeAlso: #01424,#01425,#01426,#01427,#01428,#01430,#01431,#01432,#01433
  51604. Format of NDIS request block for InitAndRegister:
  51605. Offset Size Description (Table 01430)
  51606. 00h WORD 07h
  51607. 02h WORD returned status (see #01434)
  51608. 04h DWORD unused
  51609. 08h DWORD poitner to ASCIZ name of the module to be prebind initialized
  51610. 0Ch WORD unused
  51611. SeeAlso: #01424,#01425,#01426,#01427,#01428,#01429,#01431,#01432,#01433
  51612. Format of NDIS request block for UnbindAndStop:
  51613. Offset Size Description (Table 01431)
  51614. 00h WORD 08h
  51615. 02h WORD returned status (see #01434)
  51616. 04h DWORD failing modules as for BindAndStart
  51617. 08h DWORD if not 0000h:0000h, pointer to ASCIZ name of module to unbind
  51618. if 0000h:0000h, terminate a set of previously dynamically
  51619. bound protocol modules
  51620. 0Ch WORD unused
  51621. SeeAlso: #01424,#01425,#01426,#01427,#01428,#01429,#01430,#01432,#01433
  51622. Format of NDIS request block for BindStatus:
  51623. Offset Size Description (Table 01432)
  51624. 00h WORD 09h
  51625. 02h WORD returned status (see #01434)
  51626. 04h DWORD must be 0000h:0000h
  51627. on return, points to root tree
  51628. 08h DWORD 0000h:0000h
  51629. 0Ch WORD unused under DOS
  51630. SeeAlso: #01424,#01425,#01426,#01427,#01428,#01429,#01430,#01431,#01433
  51631. Format of NDIS request block for RegisterStatus:
  51632. Offset Size Description (Table 01433)
  51633. 00h WORD 0Ah
  51634. 02h WORD returned status (0000h, 0008h, 002Ch) (see #01434)
  51635. 04h DWORD 0000h:0000h
  51636. 08h DWORD pointer to 16-byte ASCIZ module name
  51637. 0Ch WORD 0000h
  51638. Note: not supported by the 10NET v5.0 PROTMAN$ driver
  51639. SeeAlso: #01424,#01425,#01426,#01427,#01428,#01429,#01430,#01431,#01432
  51640. (Table 01434)
  51641. Values for NDIS status code:
  51642. 0000h success
  51643. 0001h wait for release--protocol has retained control of the data buffer
  51644. 0002h request queued
  51645. 0003h frame not recognized
  51646. 0004h frame rejected
  51647. 0005h frame should be forwarded
  51648. 0006h out of resource
  51649. 0007h invalid parameter
  51650. 0008h invalid function
  51651. 0009h not supported
  51652. 000Ah hardware error
  51653. 000Bh transmit error
  51654. 000Ch unrecognized destination
  51655. 000Dh buffer too small
  51656. 0020h already started
  51657. 0021h binding incomplete
  51658. 0022h driver not initialized
  51659. 0023h hardware not found
  51660. 0024h hardware failure
  51661. 0025h configuration failure
  51662. 0026h interrupt conflict
  51663. 0027h MAC incompatible
  51664. 0028h initialization failed
  51665. 0029h no binding
  51666. 002Ah network may be disconnected
  51667. 002Bh incompatible OS version
  51668. 002Ch already registered
  51669. 002Dh path not found
  51670. 002Eh insufficient memory
  51671. 002Fh info not found
  51672. 00FFh general failure
  51673. F000h-FFFFh reserved for vendor-specific codes, treated as general failure
  51674. Format of NDIS common characteristics table:
  51675. Offset Size Description (Table 01435)
  51676. 00h WORD size of table in bytes
  51677. 02h BYTE NDIS major version
  51678. 03h BYTE NDIS minor version
  51679. 04h WORD reserved
  51680. 06h BYTE module major version
  51681. 07h BYTE module minor version
  51682. 08h DWORD module function flag bits
  51683. bit 0: binding at upper boundary supported
  51684. bit 1: binding at lower boundary supported
  51685. bit 2: dynamically bound
  51686. bits 3-31 reserved, must be 0
  51687. 0Ch 16 BYTEs ASCIZ module name
  51688. 1Ch BYTE upper boundary protocol level (see #01436)
  51689. 1Dh BYTE upper boundary interface type
  51690. for MACs: 1 = MAC
  51691. for data links and transports: to be defined
  51692. for session: 1 = NCB
  51693. any level: 0 = private (ISV-defined)
  51694. 1Eh BYTE lower boundary protocol level (see #01436)
  51695. 1Fh BYTE lower boundary interface type
  51696. same as offset 1Dh
  51697. 20h WORD module ID filled in by protocol manager
  51698. 22h WORD module DS
  51699. 24h DWORD system request entry point
  51700. 28h DWORD pointer to service-specific characteristics (see #01438,#01440)
  51701. 0000h:0000h if none
  51702. 2Ch DWORD pointer to service-specific status, or 0000h:0000h if none
  51703. (see #01441)
  51704. 30h DWORD pointer to upper dispatch table (see #01437)
  51705. 0000h:0000h if none
  51706. 34h DWORD pointer to lower dispatch table (see #01437)
  51707. 0000h:0000h if none
  51708. 38h 2 DWORDs reserved, must be 0
  51709. Note: for compatibility with NDIS 1.x.x, a major version of 00h is
  51710. interpreted as 01h
  51711. (Table 01436)
  51712. Values for NDIS boundary protocol level:
  51713. 00h physical
  51714. 01h Media Access Control
  51715. 02h Data link
  51716. 03h network
  51717. 04h transport
  51718. 05h session
  51719. FFh not specified
  51720. Format of NDIS dispatch table:
  51721. Offset Size Description (Table 01437)
  51722. 00h DWORD -> common characteristics table (see #01435)
  51723. 04h 4 BYTEs ???
  51724. 08h DWORD -> ??? function (called with 12 bytes of stack arguments)
  51725. 0Ch DWORD -> ??? function (called with 10 bytes of stack arguments)
  51726. 10h DWORD -> ??? function (called with 16 bytes of stack arguments)
  51727. 14h DWORD -> ??? function (called with 4 bytes of stack arguments)
  51728. 18h DWORD -> ??? function (called with 18 bytes of stack arguments)
  51729. 1Ch DWORD -> ??? function (called with 12 bytes of stack arguments)
  51730. Format of MAC Service-Specific Characteristics Table:
  51731. Offset Size Description (Table 01438)
  51732. 00h WORD length of table in bytes
  51733. 02h 16 BYTEs ASCIZ MAC type name, "802.3", "802.4", "802.5", "802.6", "DIX",
  51734. "DIX+802.3", "APPLETALK", "ARCNET", "FDDI", "SDLC", "BSC",
  51735. "HDLC", or "ISDN"
  51736. 12h WORD length of station addresses in bytes
  51737. 14h 16 BYTEs permanent station address
  51738. 24h 16 BYTEs current station address
  51739. 34h DWORD current functional adapter address (00000000h if none)
  51740. 38h DWORD pointer to multicast address list
  51741. 3Ch DWORD link speed in bits/sec
  51742. 40h DWORD service flags (see #01439)
  51743. 44h WORD maximum frame size which may be both sent and received
  51744. 46h DWORD total transmit buffer capacity in bytes
  51745. 4Ah WORD transmit buffer allocation block size in bytes
  51746. 4Ch DWORD total receive buffer capacity in bytes
  51747. 50h WORD receive buffer allocation block size in bytes
  51748. 52h 3 BYTEs IEEE vendor code
  51749. 55h BYTE vendor adapter code
  51750. 56h DWORD pointer to ASCIZ vendor adapter description
  51751. 5Ah WORD IRQ used by adapter
  51752. 5Ch WORD transmit queue depth
  51753. 5Eh WORD maximum supported number of data blocks in buffer descriptors
  51754. 60h N BYTEs vendor-specific info
  51755. SeeAlso: #01440
  51756. Bitfields for service flags:
  51757. Bit(s) Description (Table 01439)
  51758. 0 supports broadcast
  51759. 1 supports multicast
  51760. 2 supports functional/group addressing
  51761. 3 supports promiscuous mode
  51762. 4 station address software settable
  51763. 5 statistics always current
  51764. 6 supports InitiateDiagnostics
  51765. 7 supports loopback
  51766. 8 MAC does primarily ReceiveChain indications instead of ReceiveLookahead
  51767. indications
  51768. 9 supports IBM source routing
  51769. 10 supports MAC reset
  51770. 11 supports Open/Close adapter
  51771. 12 supports interrupt request
  51772. 13 supports source routing bridge
  51773. 14 supports GDT virtual addresses (OS/2 version)
  51774. 15 multiple TransferDatas allowed durign a single indication
  51775. 16 MAC normally sets FrameSize = 0 in ReceiveLookahead
  51776. 17-31 reserved, must be 0
  51777. Format of NetBIOS Service-Specific Characteristics Table:
  51778. Offset Size Description (Table 01440)
  51779. 00h WORD length of table in bytes
  51780. 02h 16 BYTEs ASCIZ type name of NetBIOS module
  51781. 12h WORD NetBIOS module code
  51782. 14h N BYTEs vendor-specific info
  51783. SeeAlso: #01438
  51784. Format of MAC Service-Specific Status Table:
  51785. Offset Size Description (Table 01441)
  51786. 00h WORD length of table in bytes
  51787. 02h DWORD seconds since 0:00 1/1/70 when diagnostics last run
  51788. (FFFFFFFFh = never)
  51789. 06h DWORD MAC status bits (see #01442)
  51790. 0Ah WORD current packet filter flags (see #01443)
  51791. 0Ch DWORD pointer to media-specific status table or 0000h:0000h
  51792. 10h DWORD seconds past 0:00 1/1/70 of last ClearStatistics
  51793. 14h DWORD total frames received (FFFFFFFFh = not counted)
  51794. 18h DWORD frames with CRC error (FFFFFFFFh = not counted)
  51795. 1Ch DWORD total bytes received (FFFFFFFFh = not counted)
  51796. 20h DWORD frames discarded--no buffer space (FFFFFFFFh = not counted)
  51797. 24h DWORD multicast frames received (FFFFFFFFh = not counted)
  51798. 28h DWORD broadcast frames received (FFFFFFFFh = not counted)
  51799. 2Ch DWORD frames with errors (FFFFFFFFh = not counted)
  51800. 30h DWORD overly large frames (FFFFFFFFh = not counted)
  51801. 34h DWORD frames less than minimum size (FFFFFFFFh = not counted)
  51802. 38h DWORD multicast bytes received (FFFFFFFFh = not counted)
  51803. 3Ch DWORD broadcast bytes received (FFFFFFFFh = not counted)
  51804. 40h DWORD frames discarded--hardware error (FFFFFFFFh = not counted)
  51805. 44h DWORD total frames transmitted (FFFFFFFFh = not counted)
  51806. 48h DWORD total bytes transmitted (FFFFFFFFh = not counted)
  51807. 4Ch DWORD multicast frames transmitted (FFFFFFFFh = not counted)
  51808. 50h DWORD broadcast frames transmitted (FFFFFFFFh = not counted)
  51809. 54h DWORD broadcast bytes transmitted (FFFFFFFFh = not counted)
  51810. 58h DWORD multicast bytes transmitted (FFFFFFFFh = not counted)
  51811. 5Ch DWORD frames not transmitted--timeout (FFFFFFFFh = not counted)
  51812. 60h DWORD frames not transmitted--hardware error (FFFFFFFFh = not countd)
  51813. 64h N BYTEs vendor-specific info
  51814. Bitfields for MAC status bits:
  51815. Bit(s) Description (Table 01442)
  51816. 0-2 operational status
  51817. 000 hardware not installed
  51818. 001 hardware failed startup diagnostics
  51819. 010 hardware configuration problem
  51820. 011 hardware fault
  51821. 100 operating marginally due to soft faults
  51822. 101 reserved
  51823. 110 reserved
  51824. 111 hardware fully operational
  51825. 3 MAC bound
  51826. 4 MAC open
  51827. 5 diagnostics in progress
  51828. 6-31 reserved
  51829. Bitfields for packet filter flags:
  51830. Bit(s) Description (Table 01443)
  51831. 0 directed/multicast or group/functional
  51832. 1 broadcast
  51833. 2 promiscuous
  51834. 3 all source routing
  51835. 4-15 reserved, must be zero
  51836. --------D-214402-----------------------------
  51837. INT 21 U - MS-DOS 7.0+ - CONFIG$ device - GET CONFIGURATION INFORMATION
  51838. AX = 4402h
  51839. BX = file handle for character device "CONFIG$"
  51840. CX = number of bytes to read (at least 5)
  51841. DS:DX -> buffer for ??? data (see #01444)
  51842. Return: CF clear if successful
  51843. AX = number of bytes actually read
  51844. CF set on error
  51845. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  51846. SeeAlso: AX=4403h"CONFIG$"
  51847. Format of MS-DOS 7.0 CONFIG$ ??? data:
  51848. Offset Size Description (Table 01444)
  51849. 00h WORD ??? (0000h)
  51850. 02h WORD ??? (0000h or value read from IO.SYS segment 70h)
  51851. 04h BYTE ??? (value read from IO.SYS segment 70h)
  51852. --------I-214402-----------------------------
  51853. INT 21 U - IBM SYSTEM 36/38 WORKSTATION EMULATION - VDI.SYS - GET ???
  51854. AX = 4402h
  51855. BX = handle for character device "GDMS"
  51856. CX = number of bytes to read (>= 4)
  51857. DS:DX -> buffer (see #01445)
  51858. Return: CF set on error
  51859. AX = error code (see #01680 at AH=59h/BX=0000h)
  51860. CF clear if successful
  51861. AX = number of bytes read
  51862. Format of System 36/38 emulator returned data:
  51863. Offset Size Description (Table 01445)
  51864. 00h 4 BYTEs ???
  51865. 04h DWORD pointer to ???
  51866. 08h 4 BYTEs ???
  51867. --------m-214402-----------------------------
  51868. INT 21 U - LASTBYTE.SYS v1.19 - IOCTL - GET ??? TABLE
  51869. AX = 4402h
  51870. BX = handle for device "LA$TBYTE"
  51871. CX = 0004h
  51872. DS:DX -> DWORD to hold address of 39-byte table of ???
  51873. Return: CF set on error
  51874. AX = error code (see #01680 at AH=59h/BX=0000h)
  51875. CF clear if successful
  51876. AX = number of bytes read
  51877. Program: LASTBYTE.SYS is part of the shareware "The Last Byte" memory
  51878. management package by Key Software Products
  51879. SeeAlso: AX=4402h"HIGHUMM"
  51880. --------m-214402-----------------------------
  51881. INT 21 - HIGHUMM.SYS v1.17+ - IOCTL - GET API ADDRESS
  51882. AX = 4402h
  51883. BX = handle for device "KSP$UMM"
  51884. CX = 0004h
  51885. DS:DX -> DWORD to hold entry point (see #01446)
  51886. Return: CF set on error
  51887. AX = error code (see #01680 at AH=59h/BX=0000h)
  51888. CF clear if successful
  51889. AX = number of bytes read
  51890. Program: HIGHUMM.SYS is part of the shareware "The Last Byte" memory
  51891. management package by Key Software Products
  51892. SeeAlso: AX=4402h"LASTBYTE"
  51893. (Table 01446)
  51894. Call HIGHUMM.SYS entry point with:
  51895. AH = 00h allocate UMB (same as XMS function 10h) (see INT 2F/AX=4310h)
  51896. DX = size in paragraphs
  51897. Return: BX = segment number (if successful)
  51898. DX = size of requested block/size of largest block
  51899. AH = 01h deallocate UMB (same as XMS func 11h) (see INT 2F/AX=4310h)
  51900. DX = segment number of UMB
  51901. AH = 02h request a bank-switched memory block
  51902. DX = size in paragraphs
  51903. Return: BX = segment number (if successful)
  51904. DX = size of requested block/size of largest block
  51905. AH = 03h release a bank-switched memory block
  51906. DX = segment number
  51907. AH = 04h transfer data to/from high memory
  51908. DS:SI -> source
  51909. ES:DI -> destination
  51910. CX = length in bytes
  51911. Note: enables bank-switched memory, does the copy, then disables
  51912. bank-switched memory
  51913. AH = 05h get a word from bank-switched memory
  51914. ES:DI -> word to read
  51915. Return: DX = word
  51916. AH = 06h put a word to bank-switched memory
  51917. ES:DI -> word to write
  51918. DX = word
  51919. AH = 07h put a byte to bank-switched memory
  51920. ES:DI -> byte to write
  51921. DL = byte
  51922. AH = 08h enable bank-switched memory
  51923. DS:SI -> 6-byte status save area
  51924. AH = 09h disable bank-switched memory
  51925. DS:SI -> 6-byte save area from enable call (AH=08h)
  51926. AH = 0Ah assign name to UMB or high bank-switched block
  51927. DX = segment number
  51928. DS:SI -> 8-byte blank-padded name
  51929. AH = 0Bh locate UMB block by name
  51930. DS:SI -> 8-byte blank-padded name
  51931. Return: BX = segment number (if successful)
  51932. DX = size of block
  51933. AH = 0Ch locate bank-switched block by name
  51934. DS:SI -> 8-byte blank-padded name
  51935. Return: BX = segment number (if successful)
  51936. DX = size of block
  51937. Return: AX = status code
  51938. 0001h successful
  51939. 0000h failed
  51940. BL = error code
  51941. 80h not implemented
  51942. B0h insufficient memory, smaller block available
  51943. B1h insufficient memory, no blocks available
  51944. B2h invalid segment number
  51945. Note: only functions 00h and 01h are always available; the remaining
  51946. functions are only enabled if the proper commandline switch is given
  51947. --------c-214402-----------------------------
  51948. INT 21 - SMARTDRV.SYS v3.x only - IOCTL - GET CACHE STATUS
  51949. AX = 4402h
  51950. BX = file handle for device "SMARTAAR"
  51951. CX = number of bytes to read (min 28h)
  51952. DS:DX -> buffer for status record (see #01447)
  51953. Return: CF clear if successful
  51954. AX = number of bytes actually read
  51955. CF set on error
  51956. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  51957. Note: NCache2 (from the Norton Utilities v8.0) attempts to support this
  51958. interface, but does not do so correctly, often hanging the system;
  51959. one should use the SmartDrive v4.x or NCache private interfaces
  51960. (see INT 2F/AX=4A10h/BX=0000h,INT 2F/AX=FE00h/DI=4E55h)
  51961. SeeAlso: AX=4403h"SMARTDRV",INT 2F/AX=4A10h/BX=0000h
  51962. Format of SMARTDRV status record:
  51963. Offset Size Description (Table 01447)
  51964. 00h BYTE write-through flag (always 01h)
  51965. 01h BYTE writes should be buffered (always 00h)
  51966. 02h BYTE cache enabled if 01h
  51967. 03h BYTE driver type (01h extended memory, 02h expanded)
  51968. 04h WORD clock ticks between cache flushes (currently unused)
  51969. 06h BYTE cache contains locked tracks if nonzero
  51970. 07h BYTE flush cache on INT 19 reboot if nonzero
  51971. 08h BYTE cache full track writes if nonzero
  51972. 09h BYTE double buffering (for VDS) state (00h off, 01h on, 02h dynamic)
  51973. 0Ah DWORD original INT 13 vector
  51974. 0Eh BYTE minor version number
  51975. 0Fh BYTE major version number
  51976. 10h WORD unused
  51977. 12h WORD sectors read \
  51978. 14h WORD sectors already in cache > may be scaled rather than
  51979. 16h WORD sectors already in track buffer / absolute counts
  51980. 18h BYTE cache hit rate in percent
  51981. 19h BYTE track buffer hit rate in percent
  51982. 1Ah WORD total tracks in cache
  51983. 1Ch WORD number of tracks in use
  51984. 1Eh WORD number of locked tracks
  51985. 20h WORD number of dirty tracks
  51986. 22h WORD current cache size in 16K pages
  51987. 24h WORD original (maximum) cache size in 16K pages
  51988. 26h WORD minimum cache size in 16K pages
  51989. 28h DWORD pointer to byte flag to increment for locking cache contents
  51990. --------d-214402-----------------------------
  51991. INT 21 - CD-ROM device driver - IOCTL INPUT
  51992. AX = 4402h
  51993. BX = file handle referencing character device for CD-ROM driver
  51994. CX = number of bytes to read
  51995. DS:DX -> control block (see #01449)
  51996. Return: CF clear if successful
  51997. AX = number of bytes actually read
  51998. CF set on error
  51999. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  52000. Notes: the data returned depends on the first byte of the control block
  52001. (two bytes for functions 01h/07h/0Bh, see #01449); the remainder of
  52002. the control block is filled by the driver
  52003. some device drivers support several subunits (that is more than one
  52004. drive) but it is not possible to distinguish between them with this
  52005. function; use INT 2F/AX=1510h or INT 2F/AX=0802h instead
  52006. under Windows95, the "mscd$$$$" device cannot be opened so you cannot
  52007. obtain the handle required by this function: use INT 2F/AX=1510h
  52008. or INT 2F/AX=0802h instead
  52009. SeeAlso: AX=4403h"CD-ROM",INT 2F/AX=0802h,INT 2F/AX=1510h
  52010. (Table 01448)
  52011. Values for CD-ROM data being requested:
  52012. 00h device driver header address
  52013. 01h drive head location
  52014. 02h reserved
  52015. 03h error statistics
  52016. 04h audio channel info
  52017. 05h raw drive bytes (uninterpreted and device-specific)
  52018. 06h device status
  52019. 07h sector size
  52020. 08h volume size
  52021. 09h media change status
  52022. 0Ah audio disk info
  52023. 0Bh audio track info
  52024. 0Ch audio Q-Channel info
  52025. 0Dh audio sub-channel info
  52026. 0Eh UPC code
  52027. 0Fh audio status info
  52028. Format of CD-ROM control block:
  52029. Offset Size Description (Table 01449)
  52030. 00h BYTE data being requested (see #01448)
  52031. ---function 00h---
  52032. 01h DWORD device driver header address (see also AH=52h,#01646)
  52033. ---function 01h---
  52034. 01h BYTE (call) addressing mode
  52035. 00h HSG
  52036. 01h Red Book
  52037. 02h DWORD current location of drive's head
  52038. logical sector number in HSG mode
  52039. frame/second/minute/unused in Red Book mode
  52040. (HSG sector = minute * 4500 + second * 75 + frame - 150)
  52041. ---function 03h---
  52042. 01h N BYTEs undefined as of 5 Aug 88 specification
  52043. ---function 04h---
  52044. 01h BYTE input channel (0-3) for output channel 0
  52045. 02h BYTE volume for output channel 0
  52046. 03h BYTE input channel (0-3) for output channel 1
  52047. 04h BYTE volume for output channel 1
  52048. 05h BYTE input channel (0-3) for output channel 2
  52049. 06h BYTE volume for output channel 2
  52050. 07h BYTE input channel (0-3) for output channel 3
  52051. 08h BYTE volume for output channel 3
  52052. Notes: output channels 0 and 1 are left and right, 2 and 3 are left prime and
  52053. right prime; a volume of 00h is off
  52054. the default setting is for each input channel to be assigned to the
  52055. same-numbered output channel at full (FFh) volume
  52056. ---function 05h---
  52057. 01h BYTE number of bytes read
  52058. 02h 128 BYTEs buffer for drive bytes
  52059. ---function 06h---
  52060. 01h DWORD device parameters (see #01450)
  52061. ---function 07h---
  52062. 01h BYTE (call) read mode
  52063. 00h cooked
  52064. 01h raw
  52065. 02h WORD (return) sector size in bytes
  52066. ---function 08h---
  52067. 01h DWORD volume size in sectors
  52068. BUGS: Aztech device driver v1.10 and v1.27 (at least) return the last sector
  52069. number, i.e. total number of sectors - 1
  52070. Windows95 returns the total number of sectors + 150 (see the Red Book
  52071. to HSG conversion formula at function 01h to understand why this
  52072. happens)
  52073. ---function 09h---
  52074. 01h BYTE media change status
  52075. 00h don't know
  52076. 01h media unchanged
  52077. FFh media has been changed
  52078. ---function 0Ah---
  52079. 01h BYTE lowest audio track number
  52080. 02h BYTE highest audio track number
  52081. 03h DWORD start address of lead-out track (Red Book format)
  52082. --function 0Bh---
  52083. 01h BYTE (call) track number
  52084. 02h DWORD starting point of track (Red Book format)
  52085. 06h BYTE track control info
  52086. bits 15,14,12: track type (notice: bits not contiguous!)
  52087. 000 two audio channels, no pre-emphasis
  52088. 001 two audio channels with pre-emphasis
  52089. 010 data track
  52090. 100 four audio channels, no pre-emphasis
  52091. 101 four audio channels with pre-emphasis
  52092. other reserved
  52093. bit 13: digital copy permitted
  52094. ---function 0Ch---
  52095. 01h BYTE CONTROL and ADR byte (as received from drive)
  52096. 02h BYTE track number
  52097. 03h BYTE point or index
  52098. 04h BYTE minute \
  52099. 05h BYTE second > running time within track
  52100. 06h BYTE frame /
  52101. 07h BYTE zero
  52102. 08h BYTE "AMIN" or "PMIN" \
  52103. 09h BYTE "ASEC" or "PSEC" > running time on disk
  52104. 0Ah BYTE "AFRAME" or "PFRAME" /
  52105. ---function 0Dh---
  52106. 01h DWORD starting frame address (Red Book format)
  52107. 05h DWORD transfer address
  52108. 09h DWORD number of sectors to read
  52109. Note: copies 96 bytes of sub-channel info per sector into buffer
  52110. ---function 0Eh---
  52111. 01h BYTE CONTROL and ADR byte
  52112. 02h 7 BYTEs UPC/EAN code (13 BCD digits,low-order nybble of last byte is 0)
  52113. 09h BYTE zero
  52114. 0Ah BYTE "AFRAME"
  52115. ---function 0Fh---
  52116. ??? documentation not yet available
  52117. 01h WORD pause status (0000h not paused, 0001h paused)
  52118. 03h DWORD audio play start address
  52119. 07h DWORD ??? audio play length or end address
  52120. Bitfields for CD-ROM device parameters:
  52121. Bit(s) Description (Table 01450)
  52122. 0 door open
  52123. 1 door unlocked
  52124. 2 supports raw reading in addition to cooked
  52125. 3 writable
  52126. 4 can play audio/video tracks
  52127. 5 supports interleaving
  52128. 6 reserved
  52129. 7 supports prefetch requests
  52130. 8 supports audio channel control
  52131. 9 supports Red Book addressing in addition to HSG
  52132. 10 audio is playing
  52133. 11 no disk in drive
  52134. 12 supports R-W subchannels
  52135. --------m-214402-----------------------------
  52136. INT 21 - Quarterdeck - QEMM-386 v5+ - GET API ENTRY POINT
  52137. AX = 4402h
  52138. BX = file handle for device "QEMM386$"
  52139. CX = 0004h
  52140. DS:DX -> DWORD buffer for API entry point
  52141. Return: CF clear if successful
  52142. buffer filled (refer to INT 67/AH=3Fh for entry point parameters)
  52143. CF set on error
  52144. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  52145. Note: Quarterdeck recently (June 1993) documented this function, but the
  52146. documentation incorrectly states that it is only available for
  52147. QEMM 6+
  52148. SeeAlso: AX=4402h"HOOKROM",INT 2F/AX=D201h/BX=5145h,INT 67/AH=3Fh
  52149. --------Q-214402-----------------------------
  52150. INT 21 U - Quarterdeck - HOOKROM.SYS - GET HOOKED VECTOR TABLE
  52151. AX = 4402h
  52152. BX = file handle for device "HOOKROM$"
  52153. CX = 0004h
  52154. DS:DX -> DWORD buffer for address of hooked vector table (see #01451)
  52155. Return: CF clear if successful
  52156. DS:DX buffer filled
  52157. CF set on error
  52158. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  52159. SeeAlso: AX=4402h/SF=01h
  52160. Format of HOOKROM.SYS hooked vector table entry:
  52161. Offset Size Description (Table 01451)
  52162. 00h 5 BYTEs FAR jump to actual interrupt handler
  52163. (end of table if first byte is not EAh)
  52164. 05h BYTE interrupt vector number
  52165. --------d-214402-----------------------------
  52166. INT 21 - Advanced SCSI Programming Interface (ASPI) - INTERFACE
  52167. AX = 4402h
  52168. BX = file handle for device "SCSIMGR$"
  52169. CX = 0004h or 0005h (refer to notes below)
  52170. DS:DX -> buffer for result (see #01452), set to zeros before call
  52171. Return: CF clear if successful
  52172. AX = 0004h or 0005h (refer to notes below)
  52173. CF set on error
  52174. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  52175. Notes: the variant of the call requesting five bytes is an UNDOCUMENTED
  52176. extension supported by Adaptec's ASPI2DOS.SYS, ASPI4DOS.SYS, and
  52177. ASPI7DOS.SYS; if made of a host manager which does not support the
  52178. variant, only four bytes will be returned. If the variant is
  52179. supported, Adaptec's WINASPI.DLL assumes that the host manager is
  52180. an "advanced" one which operates in either real or protected mode
  52181. (and thus does not require a DPMI INT 31/AX=0301h call to be invoked
  52182. from protected mode). Support of the five-byte variant also appears
  52183. to imply that an advanced ASPI host manager uses no temporary
  52184. storage space except the SRB (see #01454) and the stack, and that it
  52185. is fully reentrant.
  52186. if called with a standard request for four bytes, even Adaptec's
  52187. advanced drivers return only the requested four bytes containing the
  52188. ASPI entry point address
  52189. the function address is called with the address of a SCSI Request
  52190. Block (see #01454) on the stack and the caller must clean up the
  52191. stack
  52192. SeeAlso: AX=440Ch"ASPITAPE",INT 11/AH=FFh"WD7000"
  52193. Format of ASPI IOCTL result:
  52194. Offset Size Description (Table 01452)
  52195. 00h DWORD function address
  52196. 04h BYTE number of SCSI host adapters supported by host manager
  52197. (Table 01453)
  52198. Values for ASPI request number:
  52199. 00h "HA_INQ" host adapter inquiry / extended host adapter inquiry
  52200. 01h "GET_TYPE" get device type
  52201. 02h "EXEC_SIO" execute SCSI I/O
  52202. 03h "ABORT_SRB" abort SRB
  52203. 04h "RESET_DEV" reset SCSI device
  52204. 05h "SET_HAPRMS" set host adapter parameters
  52205. 06h get disk drive information
  52206. Format of SCSI Request Block (64 bytes):
  52207. Offset Size Description (Table 01454)
  52208. 00h BYTE request number (see #01453)
  52209. 01h BYTE request status (see #01455)
  52210. 02h BYTE host adapter ID
  52211. 03h BYTE request flags (see #01456)
  52212. 04h DWORD reserved (0)
  52213. ---request 00h---
  52214. 08h BYTE (ret) number of host adapters
  52215. 09h BYTE (ret) target adapter ID
  52216. 0Ah 16 BYTEs (ret) SCSI manager ID
  52217. 1Ah 16 BYTEs (ret) host adapter ID
  52218. 2Ah 16 BYTEs (ret) host adapter-unique parameters
  52219. ---extended request 00h---
  52220. 04h 2 BYTEs (call) extended request signature 55h AAh
  52221. (ret) if extended request supported, reply AAh 55h
  52222. 06h WORD (call) length of extended buffer at offset 3Ah
  52223. (ret) number of bytes returned in extended buffer
  52224. 08h BYTE (ret) number of host adapters
  52225. 09h BYTE (ret) target adapter ID
  52226. 0Ah 16 BYTEs (ret) SCSI manager ID
  52227. 1Ah 16 BYTEs (ret) host adapter ID
  52228. 2Ah 16 BYTEs (ret) host adapter-unique parameters
  52229. 3Ah N BYTEs extended buffer
  52230. 3Ah WORD features (see #01457)
  52231. 3Ch WORD maximum scatter/gather list length
  52232. 3Eh DWORD maximum SCIS data transfer size (0 = unlimited)
  52233. ---request 01h---
  52234. 08h BYTE target ID
  52235. 09h BYTE logical unit number
  52236. 0Ah BYTE (ret) device type (see #01460)
  52237. ---request 02h---
  52238. 08h BYTE target ID
  52239. 09h BYTE logical unit number
  52240. 0Ah DWORD data allocation length
  52241. (ret) residual byte length (if supported and requested)
  52242. 0Eh BYTE sense allocation length
  52243. 0Fh DWORD data buffer pointer
  52244. 13h DWORD next request pointer (for linking)
  52245. 17h BYTE CDB length
  52246. 18h BYTE (ret) host adapter status (see #01454)
  52247. 19h BYTE (ret) target status (see #01459)
  52248. 1Ah DWORD post routine address (see #01466)
  52249. 1Eh WORD real mode Post DS
  52250. 20h DWORD SRB pointer
  52251. 24h WORD reserved
  52252. 26h DWORD SRB physical address
  52253. 2Ah 22 BYTEs SCSIMGR$ workspace
  52254. 40h N BYTEs CCB, including sense data (20-24 bytes)
  52255. ---request 03h---
  52256. 08h DWORD address of SRB to abort
  52257. ---request 04h---
  52258. 08h BYTE target ID
  52259. 09h BYTE logical unit number
  52260. 0Ah 14 BYTEs reserved
  52261. 18h BYTE (ret) host adapter status (see #01458)
  52262. 19h BYTE (ret) target status (see #01459)
  52263. 1Ah DWORD post routine address
  52264. 1Eh 34 BYTEs workspace
  52265. ---request 05h---
  52266. 08h 16 BYTEs host adapter-unique parameters
  52267. ---request 06h---
  52268. 08h BYTE target ID
  52269. 09h BYTE logical unit number
  52270. 0Ah BYTE disk drive flags (see #01461)
  52271. 0Bh BYTE INT 13h drive number
  52272. 0Ch BYTE preferred head number translation
  52273. 0Dh BYTE preferred sector size translation
  52274. 0Eh 10 BYTEs reserved
  52275. SeeAlso: #01462
  52276. (Table 01455)
  52277. Values for ASPI request status:
  52278. 00h not done yet
  52279. 01h completed successfully
  52280. 02h aborted by host
  52281. 04h SCSI I/O error
  52282. 80h invalid
  52283. 81h no adapter
  52284. 82h no device attached
  52285. else status
  52286. SeeAlso: #01454
  52287. Bitfields for ASPI request flags:
  52288. Bit(s) Description (Table 01456)
  52289. 0 posting enabled
  52290. 1 linking enabled
  52291. 2 residual byte length reported in Data Allocation Length field
  52292. 3 transfer from SCSI target to host
  52293. 4 transfer from host to SCSI target
  52294. 5 scatter/gather
  52295. 7-6 reserved
  52296. Note: no data is transferred if both bits 3 and 4 are set; if neither is
  52297. set, the direction is determined by the SCSI command
  52298. SeeAlso: #01454
  52299. Bitfields for ASPI extended features:
  52300. Bit(s) Description (Table 01457)
  52301. 0 scatter/gather supported
  52302. 1 residual byte length reported
  52303. 2 Wide SCSI 16 host adapter
  52304. 3 Wide SCSI 32 host adapter
  52305. 15-4 reserved
  52306. SeeAlso: #01454
  52307. (Table 01458)
  52308. Values for host adapter status:
  52309. 00h no error detected
  52310. 11h select timeout
  52311. 12h data overrun
  52312. 13h bus error
  52313. 14h bus failure
  52314. (Table 01459)
  52315. Values for target status:
  52316. 00h no status
  52317. 02h sense data stored in SRB
  52318. 08h target busy
  52319. 18h reservation error
  52320. (Table 01460)
  52321. Values for device type:
  52322. 00h disk drive
  52323. 01h tape drive (streamer)
  52324. 02h printer
  52325. 03h processor
  52326. 04h WORM drive
  52327. 05h CD-ROM drive
  52328. 06h scanner
  52329. 07h optical drive
  52330. 08h autochanger
  52331. 09h communications device
  52332. (Table 01461)
  52333. Values for disk drive flags:
  52334. 00h no INT 13 access
  52335. 01h INT 13 with DOS access
  52336. 02h INT 13 without DOS access
  52337. 03h invalid flags
  52338. Format of CCB:
  52339. Offset Size Description (Table 01462)
  52340. 00h BYTE command code (see #01463)
  52341. 01h BYTE flags
  52342. bits 4-0: vary by function
  52343. bits 7-5: logical unit number
  52344. 02h BYTE "adr_1"
  52345. 03h BYTE "adr_0"
  52346. 04h BYTE length
  52347. 05h BYTE control
  52348. ...
  52349. 06h/0Ah 14 BYTEs buffer for sense data (see #01464)
  52350. SeeAlso: #01454
  52351. (Table 01463)
  52352. Values for CCB command code:
  52353. 00h test unit ready
  52354. 01h rewind
  52355. 03h request sense data
  52356. 05h get block size limits
  52357. 08h Group 0 read
  52358. 0Ah Group 0 write
  52359. 10h write file marks
  52360. 11h SCSI Space (set position?)
  52361. 12h SCSI Inquire
  52362. 15h set mode information
  52363. 16h reserve SCSI device
  52364. 17h release SCSI device
  52365. 19h erase
  52366. 1Ah request mode information
  52367. 1Bh load/unload media
  52368. 1Dh request target self-check
  52369. 24h set window parameters
  52370. 25h get window parameters
  52371. 28h Group 1 read
  52372. 2Ah Group 1 write
  52373. 31h document feeder control
  52374. 34h get scan data status
  52375. ---vendor-specific commands---
  52376. D3h get document feeder status
  52377. D4h set document feeder mode
  52378. Format of sense data:
  52379. Offset Size Description (Table 01464)
  52380. 00h BYTE error code (bit 7 set if valid)
  52381. 01h BYTE segment number
  52382. 02h BYTE sense key
  52383. bit 6: EOM
  52384. bit 5: ILI
  52385. bits 0-3: sense key (see #01465)
  52386. 03h 4 BYTEs information bytes
  52387. 07h BYTE additional sense length (0Ah)
  52388. 08h 4 BYTEs command-specific information
  52389. 0Ch BYTE additional sense code
  52390. 0Dh BYTE additional sense code qualifier
  52391. 0Eh BYTE field replaceable unit code
  52392. 0Fh 3 BYTEs sense key specific bytes
  52393. (Table 01465)
  52394. Values for sense key:
  52395. 00h no sense data
  52396. 02h SCSI unit not ready
  52397. 03h media error
  52398. 04h unrecoverable hardware error
  52399. 05h illegal parameter in CDB
  52400. 06h target has been reset
  52401. 0Bh target aborted command
  52402. (Table 01466)
  52403. Values APSI post function is called with:
  52404. STACK: DWORD -> SRB (see #01454) which completed
  52405. interrupts disabled
  52406. Return: EBP, EBX, ESI, EDI must be preserved
  52407. interrupts disabled
  52408. Note: the post function may issue any APSI function except an abort; it
  52409. should complete as quickly as possible
  52410. --------m-214402-----------------------------
  52411. INT 21 U - Qualitas 386MAX v6.00+ - IOCTL INPUT - GET STATE
  52412. AX = 4402h
  52413. BX = file handle for device "386MAX$$"
  52414. CX = number of bytes to read
  52415. DS:DX -> BYTE 03h followed by 386MAX state buffer (see #01467)
  52416. Return: CF clear if successful
  52417. buffer at DS:DX+1 filled
  52418. AX = number of bytes actually copied
  52419. CF set on error
  52420. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  52421. Notes: if the value given in CX is less than the size of the state record
  52422. (5Ah for v6.01, 66h for v7.00), only a partial state record will be
  52423. returned
  52424. the state is 40h bytes for 386MAX (actually ASTEMM) v2.20 ("386MAX$$"
  52425. did not exist yet, use "QMMXXXX0" and then "EMMXXXX0" instead) and
  52426. 56h bytes for v5.11.
  52427. to invoke 386MAX API functions, push DX onto the stack, load DX with
  52428. the word at offset 25h in the returned state, load all other
  52429. registers as needed for the desired function, and execute an
  52430. OUT DX,AL or OUT DX,AX; DX will be set to the pushed value on return
  52431. if it is not otherwise modified by the API function. For safety,
  52432. in case a function is not supported or 386MAX is not present, SP
  52433. should be saved and restored around the API call.
  52434. Windows 3.1 Standard mode, LAN Manager, and Windows for Workgroups all
  52435. use the 386MAX API; LAN Manager and Windows for Workgroups reportedly
  52436. make some calls incorrectly
  52437. SeeAlso: AX=4403h/SF=03h"386MAX",INT 67/AH=3Fh
  52438. Format of 386MAX v6.01+ state:
  52439. Offset Size Description (Table 01467)
  52440. -1 BYTE (call) 03h
  52441. 00h 6 BYTEs signature "386MAX"
  52442. 06h 4 BYTEs version string "N;NN" or "N.NN" (i.e. "6;01" for v6.01)
  52443. (';' by default; apparently changed to a period when 386MAX
  52444. has linked high RAM into DOS's memory chain)
  52445. 0Ah WORD segment of low-memory portion of 386MAX.SYS
  52446. 0Ch 2 BYTEs ???
  52447. 0Eh WORD segment of ??? memory block or 0000h
  52448. 10h WORD bit flags 1 (see #01468)
  52449. 12h WORD starting address of video memory in KB
  52450. 14h 2 BYTEs ???
  52451. 16h WORD total high DOS memory in KB
  52452. 18h 2 BYTEs ???
  52453. 1Ah WORD available shared memory in KB
  52454. 1Ch WORD KBytes extended memory used by 386MAX
  52455. 1Eh 2 BYTEs ???
  52456. 20h WORD total extended memory in KB
  52457. 22h WORD IO port to write (OUT DX,AL) to invoke 386MAX INT 15 functions
  52458. 24h WORD IO port to write (OUT DX,AL) to invoke 386MAX API functions
  52459. (see #01481)
  52460. 26h WORD ??? (depends on DOS version)
  52461. 28h WORD size of ??? in paragraphs
  52462. 2Ah DWORD machine type (see #01476)
  52463. 2Eh DWORD -> first DOS memory control block
  52464. 32h WORD system configuration flags (see #01469)
  52465. 34h WORD debugging flags 1 (see #01470)
  52466. 36h WORD debugging flags 2 (see #01471)
  52467. 38h 2 BYTEs ???
  52468. 3Ah WORD segment of first MCB in high memory chain
  52469. 3Ch WORD feature flags 1 (see #01473)
  52470. 3Eh WORD feature flags 2 (see #01474)
  52471. 40h WORD feature flags 3 (see #01475)
  52472. 42h WORD segment of first 386MAX control block??? (see #01477)
  52473. 44h WORD amount of memory to report available on INT 15/AH=88h
  52474. 46h 4 BYTEs ???
  52475. 4Ah WORD number of K at start of address space swapped with fast
  52476. extended memory (SWAP= parameter)
  52477. 4Ch 2 BYTEs ???
  52478. 4Eh WORD segment address of ???
  52479. 50h WORD debugging flags 3 (see #01472)
  52480. 52h DWORD old INT 21h
  52481. 56h DWORD pointer to 386MAX's EMS (INT 67h) handler
  52482. ---386MAX v7.00---
  52483. 5Ah DWORD KB of extended memory managed by 386MAX
  52484. 5Eh DWORD bytes of extended memory (EXT= parameter)
  52485. 62h 4 BYTEs ???
  52486. Bitfields for 386MAX bit flags 1:
  52487. Bit(s) Description (Table 01468)
  52488. 1 ???
  52489. 2 allow A20 to be enabled/disabled???
  52490. 3 ??? (cleared by calling INT 67 functions or starting MSWindows)
  52491. 4 high RAM present???
  52492. 5 386MAX in AUTO mode
  52493. 6 386MAX enabled
  52494. 7 386MAX is providing EMS services
  52495. 8 ??? (affects API function 08h)
  52496. 9 A20 gate closed (A20 disabled) (see INT 15/AX=2402h)
  52497. 10 Weitek support enabled
  52498. 11 ???
  52499. 12 ROMs not shadowed???
  52500. 13 QPMS has been used
  52501. 14 ???
  52502. 15 ???
  52503. Bitfields for 386MAX system configuration flags:
  52504. Bit(s) Description (Table 01469)
  52505. 1 ROM compressed???
  52506. 3 ???
  52507. 5 386MAX loaded into high memory
  52508. 6 Microchannel bus
  52509. 7 Weitek math coprocessor detected
  52510. 9 ??? (also generates INT 01 on ??? and INT 03 on ???)
  52511. 11 PC/XT (thus only single 8259 interrupt controller present, DMA only
  52512. in 1st megabyte, etc)
  52513. 13 LMLTOP= specified
  52514. 14 enable A20 control???
  52515. 15 ???
  52516. Bitfields for 386MAX debugging flags 1:
  52517. Bit(s) Description (Table 01470)
  52518. 0 DEBUG=LED
  52519. 1 DEBUG=X67
  52520. 2 DEBUG=INV
  52521. 3 DEBUG=EMSPTED
  52522. 4 DEBUG=JMP
  52523. 5 DEBUG=CALL
  52524. 6 DEBUG=HLT
  52525. 7 DEBUG=PMR
  52526. 8 DEBUG=CR3
  52527. 9 DEBUG=CAPS or DEBUG=INT
  52528. 10 DEBUG=RC
  52529. 11 DEBUG=ROM
  52530. 12 DEBUG=XM
  52531. 13 DEBUG=SOR
  52532. 14 DEBUG=XR
  52533. 15 DEBUG=EMSERR (generate INT 01 on returning error from EMS call)
  52534. Bitfields for 386MAX debugging flags 2:
  52535. Bit(s) Description (Table 01471)
  52536. 0 DEBUG=ROMSWAP
  52537. 1 DEBUG=UNSHADOWROM
  52538. 2 DEBUG=COMPROM
  52539. 3 DEBUG=DPMIPHYS
  52540. 4 DEBUG=ALLROM
  52541. 5 DEBUG=VMS
  52542. 6 DEBUG=XMS (generate INT 01 on XMS calls)
  52543. 7 DEBUG=I06
  52544. 8 DEBUG=VCPI
  52545. 9 DEBUG=XDMA
  52546. 10 DEBUG=X09
  52547. 13 DEBUG=I67 (generate INT 01 on every INT 67 call)
  52548. 14 DEBUG=EVM (generate INT 01 on entering V86 mode)
  52549. 15 DEBUG=EMSSAVE or DEBUG=VDS
  52550. Bitfields for 386MAX debugging flags 3:
  52551. Bit(s) Description (Table 01472)
  52552. 10 DEBUG=EPM
  52553. 12 DEBUG=ABIOS
  52554. 13 DEBUG=XMSPTED
  52555. 14 DEBUG=TIME
  52556. 15 DEBUG=SCRUB
  52557. Bitfields for 386MAX feature flags 1:
  52558. Bit(s) Description (Table 01473)
  52559. 1 Weitek present
  52560. 2 no DPMI services
  52561. 3 NODMA
  52562. 4 TERSE
  52563. 5 NOROM
  52564. 6 NOPARITY
  52565. 8 NOFLEX (IGNOREFLEXFRAME)
  52566. 11 don't create UMBs
  52567. 12 don't backfill below video memory (NOLOW)
  52568. 13 FRAME= specified
  52569. 14 EXT= specified
  52570. 15 NOEMS, allow prior expanded memory manager to provide EMS
  52571. Bitfields for 386MAX feature flags 2:
  52572. Bit(s) Description (Table 01474)
  52573. 0 UNSHIFT specified (FORCEA20 disabled)
  52574. 1 NOXRAM
  52575. 2 NOSCSI specified
  52576. 3 SCREEN specified
  52577. 4 enabled EISADMA
  52578. 5 slow DMA
  52579. 6 RESETKEYB specified
  52580. 7 ???
  52581. 9 TOP384
  52582. 10 ???
  52583. 11 NOWARMBOOT
  52584. 12 USE= specified
  52585. 13 ROM= specified
  52586. Bitfields for 386MAX feature flags 3:
  52587. Bit(s) Description (Table 01475)
  52588. 0 Windows3 support enabled
  52589. 1 SHADOWROM
  52590. 2 don't compress ROM (NOCOMPROM)
  52591. 3 ??? (related to PRGREG=)
  52592. 4 ??? (related to PRGREG=)
  52593. 5 SHADOWRAM
  52594. 6 DOS4 specified
  52595. 7 NOLOADHIGH
  52596. 8 NOPULSE
  52597. 11 FORCEA20
  52598. 12 DMA buffer enabled
  52599. 13 NOSCRUB
  52600. 15 NOFRAME
  52601. Bitfields for 386MAX machine type:
  52602. Bit(s) Description (Table 01476)
  52603. 12 Amstrad
  52604. 13 Epson
  52605. 14 Zenith Data Systems
  52606. 15 "ASEM"
  52607. 16 NEC
  52608. 17 "HPRS" model codes 69h and 6Ah
  52609. 18 Dell
  52610. 19 "CA"
  52611. 20 ITT (Xtra Business Systems/Alcatel)
  52612. 21 Toshiba 5100
  52613. 22 Olivetti
  52614. 23 Quadram Quad386 (BIOS model FEh, submodel A6h)
  52615. 24 Tandy???
  52616. 25 AST 386
  52617. 26 INBOARD, ??? version
  52618. 27 INBOARD, ??? version
  52619. 28 INBOARD, ??? version
  52620. 29 "HPRS"
  52621. 30 Compaq 386
  52622. 31 JET386
  52623. Format of 386MAX control block:
  52624. Offset Size Description (Table 01477)
  52625. 00h WORD segment of next block (FFFFh if last)
  52626. 02h WORD segment of previous block (FFFFh if first)
  52627. 04h 12 BYTEs filename
  52628. 10h WORD resident size in paragraphs
  52629. 12h WORD environment size???
  52630. 14h WORD real prsent environment size + 1 (0000h if ENVSAVE used)
  52631. 16h 2 BYTEs ???
  52632. 18h DWORD initial size or SIZE=n in 386LOAD commandline
  52633. 1Ch DWORD SIZE=-1 ???
  52634. 20h DWORD SIZE= ???
  52635. 24h BYTE PRGREG= if specified, else FFh
  52636. 25h BYTE ENVREG= if specified, else FFh
  52637. 26h BYTE FlexFrame (00h not present, 01h present)
  52638. 27h 3 BYTEs ???
  52639. 2Ah BYTE GROUP= or 00h if not present
  52640. 2Bh BYTE ???
  52641. 2Ch WORD PSP
  52642. Format of 386MAX high memory info record:
  52643. Offset Size Description (Table 01478)
  52644. 00h WORD segment address of memory region
  52645. 02h WORD size of memory region in paragraphs
  52646. 04h BYTE type or flags???
  52647. 00h if locked out
  52648. 02h if EMS page frame
  52649. 04h if high RAM
  52650. 42h if ROM
  52651. 05h BYTE ???
  52652. Format of 386MAX ROM shadowing record:
  52653. Offset Size Description (Table 01479)
  52654. 00h WORD logical start segment of ROM??? (may be used by BlueMAX when it
  52655. squeezes together the ROMs to make room)
  52656. 02h WORD physical start segment of ROM
  52657. 04h 2 BYTEs ???
  52658. 06h WORD size of shadowed ROM in paragraphs
  52659. 08h 2 BYTEs ???
  52660. 0Ah WORD flags
  52661. bit 15: shadowing enabled for this ROM???
  52662. bit 14: ???
  52663. bit 13: ???
  52664. bit 12: ???
  52665. bit 10: ???
  52666. (Table 01480)
  52667. Values for 386MAX memory type:
  52668. 00h unused by EMS
  52669. 01h DOS
  52670. 04h page frame overlapping ROM???
  52671. 80h high memory
  52672. 84h page frame???
  52673. 87h video ROM???
  52674. Note: the type may be 00h (unused) if the 16K page is split among different
  52675. uses (such as ROM and high RAM)
  52676. (Table 01481)
  52677. Call 386MAX API (via OUT DX,AL) with:
  52678. STACK: WORD value for DX
  52679. AH = 00h unused
  52680. Return: AH = 84h (unsupported function)
  52681. AH = 01h get high memory information
  52682. ES:DI -> buffer for array of high memory info records
  52683. (see #01478)
  52684. Return: CX = number of records placed in buffer
  52685. AH = 02h get shadowed ROM info
  52686. ES:DI -> buffer for array of ROM shadowing records (see #01479)
  52687. Return: CX = number of records placed in buffer
  52688. AH = 03h get 386MAX state
  52689. ES:DI -> 90-byte buffer for state (see #01467)
  52690. Return: AH = 00h (successful)
  52691. buffer filled
  52692. AH = 04h get memory types???
  52693. ES:DI -> buffer for memory type info (array of bytes, one per
  52694. 16K page) (see #01480)
  52695. Return: CX = number of bytes placed in buffer
  52696. AH = 05h get page table entries
  52697. AL = A20 control (00h enable A20 first, 01h leave unchanged)
  52698. CX = buffer size in bytes (0000h = enough for all memory from
  52699. given start to end of memory managed by 386MAX)
  52700. SI = first K to report (rounded down to 4K page)
  52701. ES:DI -> buffer for returned page table entries
  52702. Return: CX = number of bytes returned (four per 4K page)
  52703. ES:DI buffer filled
  52704. AH = 06h get memory speed info
  52705. ES:DI -> buffer for memory speed records (see #01482)
  52706. Return: AH = 00h (successful)
  52707. CX = number of bytes placed in buffer
  52708. Note: this function can take over a second to execute
  52709. AH = 07h map/unmap multiple handle pages
  52710. DX = EMS handle (on stack)
  52711. STACK: DWORD -> EMS mapping record
  52712. Return: AH = status (00h,80h,83h,8Ah,8Bh)
  52713. Format of EMS mapping record:
  52714. Offset Size Description
  52715. 00h WORD function
  52716. 0000h use physical page numbers
  52717. 0001h use segment addresses
  52718. 02h WORD EMS handle
  52719. 04h WORD number of mapping entries following
  52720. 06h 2N WORDs logical page number and physical page/segment
  52721. logical page FFFFh means unmap physical page
  52722. SeeAlso: INT 67/AH=50h
  52723. AH = 08h "EMM2_GOREAL" check whether possible to disable 386MAX
  52724. AL = ??? (00h or nonzero)
  52725. Return: AH = status (00h OK, A4h not possible at this time)
  52726. Note: if AL=00h, this function always returns success
  52727. AH = 09h toggle Bit Flags 1 flags
  52728. BX = bitmask of bit flags 1's flags to toggle (see #01468)
  52729. Return: AH = 00h (successful)
  52730. Note: enables A20 first
  52731. AH = 0Ah toggle Debugging Flags 1 flags
  52732. BX = bitmask of Debugging Flags 1's bits to toggle (see #01470)
  52733. Return: AH = 00h (successful)
  52734. Notes: enables A20 first
  52735. does ??? if bit 3 on after specified bits are toggled
  52736. AH = 0Bh toggle Debugging Flags 2 flags
  52737. BX = bitmask of Debugging Flags 2's bits to toggle (see #01471)
  52738. Return: AH = 00h (successful)
  52739. Note: enables A20 first
  52740. AH = 0Ch toggle feature flags 3
  52741. BX = bitmask of feature flags 3's bits to toggle (see #01475)
  52742. Return: AH = 00h (successful)
  52743. Note: enables A20 first
  52744. AH = 0Dh specify 386MAX high-memory location
  52745. BX = segment address of high-memory real-mode portion of 386MAX
  52746. CX = current segment of real-mode stub???
  52747. Return: AH = status (00h successful)
  52748. ???
  52749. AH = 0Eh CRT controller register virtualization
  52750. AL = subfunction
  52751. 00h allow access to CRTC I/O ports 03B4h/03B5h, 03D4h/03D5h
  52752. 01h trap accesses to CRTC I/O ports
  52753. AH = 0Fh reboot system
  52754. Return: never
  52755. AH = 10h unused
  52756. Return: AH = 84h (unsupported function)
  52757. AH = 11h get high memory information
  52758. ES:DI -> 96-byte buffer for high memory info
  52759. Return: AH = 00h (successful)
  52760. ES:DI buffer filled
  52761. Notes: each byte in buffer contains bit flags for a 4K page in
  52762. the A000h-FFFFh region
  52763. bit 0: page is writeable
  52764. bit 1: physical address same as linear address
  52765. bit 2: EMS page frame
  52766. bit 6: page is part of the QPMS window
  52767. this function can take over a second to execute,
  52768. because it does a 128K read for each page in an
  52769. attempt to flush any RAM cache the system may have
  52770. AH = 12h shadow RAM mapping
  52771. AL = subfunction
  52772. 00h unshadow ROMs (except page FFh if NOWARMBOOT set)
  52773. 01h map shadow RAM into ROM regions???
  52774. Return: AH = 00h (successful) if AL=00h or 01h
  52775. AH = 8Fh otherwise
  52776. AH = 13h shadow RAM page protection
  52777. AL = subfunction
  52778. 00h set all shadowed ROM 4K pages to read-only
  52779. 01h set all shadowed ROM 4K pages to read-write
  52780. Return: AH = 00h (successful) if AL=00h or 01h
  52781. AH = 8Fh otherwise
  52782. AH = 14h get Programmable Option Select info???
  52783. ES:DI -> 54-byte buffer for POS data???
  52784. Return: AH = 00h if successful
  52785. AH = A4h on error
  52786. Note: the buffer consists of nine 6-byte fields; the first
  52787. eight for slots 1-8, the last for the system board
  52788. AH = 15h ???
  52789. ???
  52790. Return: ???
  52791. AH = 16h get 386MAX memory usage screen
  52792. ES:DI -> buffer for memory info display
  52793. CX = size of buffer in bytes
  52794. Return: ES:DI buffer filled with '$'-terminated string (if
  52795. large enough to hold entire usage screen)
  52796. Note: the screen is 0303h bytes in v7.00
  52797. AH = 17h Windows 3 startup/termination
  52798. AL = subfunction
  52799. 00h Windows3 initializing
  52800. DX (on stack) = Windows startup flags
  52801. DI = Windows version number (major in upper byte)
  52802. ES:BX = 0000h:0000h
  52803. DS:SI = 0000h:0000h
  52804. Return: CX = 0000h if OK for Windows to load
  52805. <> 0 if Windows should not load
  52806. ES:BX -> startup info structure
  52807. DS:SI -> Virtual86 mode enable/disable callback
  52808. 01h Windows3 terminating
  52809. ES:BX -> ???
  52810. DX (on stack) = Windows exit flags
  52811. Return: ???
  52812. AH = 18h QPMS (Qualitas Protected Memory Services)
  52813. AL = subfunction
  52814. 00h get QPMS configuration
  52815. Return: BX = starting segment of QPMS memory window
  52816. CX = number of 4K pages reserved for QPMS???
  52817. DX = number of 4K pages in QPMS window???
  52818. 01h map QPMS memory page???
  52819. BX = 4K page number within memory reserved for QPMS???
  52820. CL = 4K page number within QPMS memory window???
  52821. 02h mark all QPMS memory read-only
  52822. 03h mark all QPMS memory read-write
  52823. Return: AH = status (00h,8Ah,8Bh,8Fh)
  52824. AH = 19h get linear address for physical address
  52825. EDX = physical address (low word on stack)
  52826. Return: AH = status
  52827. 00h successful
  52828. EDX = linear address at which physical address
  52829. may be accessed
  52830. 8Bh physical address currently not addressable
  52831. Note: enables A20 first
  52832. AH = 1Ah set page table entry
  52833. EDX = new page table entry (low word on stack)
  52834. ESI = linear address of page to map (bits 0-11 clear)
  52835. Return: AH = status (00h,8Bh)
  52836. Note: enables A20 first
  52837. AH = 1Bh get ???
  52838. Return: AH = status
  52839. BX = ???
  52840. CX = number of ???
  52841. EDX = physical address of ???
  52842. AH = 1Ch get original interrupt vector
  52843. AL = interrupt vector (00h-7Fh)
  52844. Return: AH = 00h (successful)
  52845. EDX = original vector before 386MAX loaded (segment in
  52846. high word, offset in low word)
  52847. Note: no range checking is performed; requests for INTs 80h-
  52848. FFh will return random values
  52849. AH = 1Dh display string???
  52850. SI = ???
  52851. Return: AH = 00h (successful)
  52852. ???
  52853. Note: this function appears to be broken in v7.00
  52854. AH = 1Eh get memory info
  52855. ES:DI -> memory info (see #01483)
  52856. Return: ???
  52857. AH = 1Fh get DPMI host information
  52858. Return: AX = 0000h if successful
  52859. BX = DPMI flags (see #03152 at INT 31/AX=0400h)
  52860. CL = CPU type (02h = 80286, 03h = 80386, etc.)
  52861. DX = DPMI ver supported (DH=major, DL=2-digit minor)
  52862. SI = ???
  52863. ES???:DI -> ???
  52864. Note: NOP if NODPMI switch specified
  52865. AH = 20h (v7.00) get ???
  52866. AL = index of ???
  52867. Return: EDX = ??? for specified ???
  52868. AH = 21h (v7.00) STACKS support
  52869. AL = 00h get STACKS parameters
  52870. Return: BX = ??? (0060h for v7.00)
  52871. CX = number of stacks for hardware interrupts
  52872. DX = size of each stack in bytes
  52873. SI = ??? (low and high bytes are separate values)
  52874. DI = ??? (low and high bytes are separate values)
  52875. low byte = logical page number set by subfn 02h
  52876. ES = ???
  52877. AL = 01h set ??? "EMM2_DSTKS"
  52878. EBX = ???
  52879. ECX = ???
  52880. AL = 02h set ???
  52881. BL = logical page number for ??? (00h-03h)
  52882. Return: AH = status (00h,8Ah)
  52883. AH = 22h (v7.00) call ??? for every load module
  52884. AL = which function to call
  52885. 00h call ???
  52886. else call ????
  52887. Return: AH = 00h
  52888. Note: if AL=00h, calls the protected-mode function pointed at by
  52889. the DWORD at offset 22h from the start of each module installed
  52890. by a LOAD= directive; if AL<>00h, it calls the function
  52891. pointed at by the DWORD at offset 28h of the load module
  52892. AH = 23h (v7.00) ???
  52893. AL = 00h set ???
  52894. BL = ???
  52895. Return: AH = 00h or unchanged (depending on ???)
  52896. AL = 01h set ???
  52897. BL = ???
  52898. BH = ???
  52899. CX = ???
  52900. DX = ??? (on top of stack)
  52901. Return: AH = status (00h if successful, 8Fh once table full)
  52902. Note: this call adds one entry to an internal table on each
  52903. call, until the table is full
  52904. AL = 02h get ???
  52905. CX = size of buffer
  52906. ES:DI -> buffer for ??? (60 bytes total data)
  52907. Return: CX = number of bytes actually returned
  52908. Note: returns the array storing the values set with AX=2301h
  52909. Format of one entry in array:
  52910. Offset Size Description
  52911. 00h BYTE ??? (BL from subfn 01h)
  52912. 01h WORD ??? (CX from subfn 01h)
  52913. 03h BYTE ??? (BH from subfn 01h)
  52914. 04h WORD ??? (DX from subfn 01h)
  52915. AL = 03h set ??? name/path
  52916. ES:DI -> buffer containing ASCIZ ???
  52917. AL = 04h get ???
  52918. ES:DI -> buffer for ASCIZ ???
  52919. Note: the ASCIZ string for subfunctions 03h and 04h does not appear
  52920. to be used by 386MAX, and may serve merely for communication
  52921. between two other Qualitas programs
  52922. AH = 24h (v7.00) high memory control
  52923. AL = 00h get high memory state
  52924. Return: BX = current state
  52925. 00h high memory removed from DOS memory chain
  52926. 01h high memory included in DOS memory chain
  52927. AL = 01h set high memory state
  52928. BX = new state
  52929. 00h high memory removed from DOS memory chain
  52930. 01h high memory included in DOS memory chain
  52931. else
  52932. Return: ??? (error, but return varies according to ???)
  52933. AH = 25h (v7.00) remove high RAM from DOS memory chain
  52934. AH = 26h (v7.00) ???
  52935. BX = ???
  52936. CX = ???
  52937. SI = ???
  52938. DI = ???
  52939. Return: AH = status
  52940. BX = ???
  52941. CX = ???
  52942. AH = 27h (v7.00) ???
  52943. AL = 00h get ???
  52944. Return: BX = number of paragraphs for ???
  52945. AL = 01h ???
  52946. BX = ???
  52947. ES??? = ???
  52948. AL = 02h ???
  52949. ???
  52950. AL = 03h ???
  52951. CX = ???
  52952. DX = ???
  52953. ES??? = ???
  52954. Return: ???
  52955. AH = 28h (v7.00) get ???
  52956. Return: AH = status (00h,8Fh) (see #03648 at INT 67/AH=40h)
  52957. if AH=00h,
  52958. CX = ???
  52959. DX = ???
  52960. AH = 29h (v7.00) get ???
  52961. Return: AX = ???
  52962. AH = 40h-5Dh EMS services (see INT 67/AH=40h, etc.)
  52963. AH = DEh VCPI services (see INT 67/AX=DE00h, etc.)
  52964. Return: AH = status (as for EMS INT 67 calls)
  52965. 00h successful
  52966. 80h internal error
  52967. 81h hardware malfunction
  52968. 83h invalid handle
  52969. 84h undefined function
  52970. 8Ah invalid logical page nuber
  52971. 8Bh illegal physical page number
  52972. 8Fh undefined subfunction
  52973. A4h access denied
  52974. etc.
  52975. STACK popped (value placed in DX if no specific return value for DX)
  52976. Format of 386MAX memory speed record:
  52977. Offset Size Description (Table 01482)
  52978. 00h DWORD page table entry for 4K page
  52979. 04h WORD number of microticks (840ns units) required for REP LODSD of
  52980. entire 4K page
  52981. Format of 386MAX memory info [array]:
  52982. Offset Size Description (Table 01483)
  52983. 00h DWORD linear start address
  52984. 04h DWORD size in bytes
  52985. 08h WORD XMS handle (if next byte = 04h)
  52986. ??? (if next byte = 05h)
  52987. ??? (if next byte = 06h)
  52988. ??? (if next byte = 13h)
  52989. ??? (if next byte = 14h)
  52990. ??? (if next byte = 15h)
  52991. ??? (if next byte = 23h)
  52992. ??? (if next byte = 24h)
  52993. ??? (if next byte = 26h)
  52994. else unused
  52995. 0Ah BYTE type
  52996. 00h = ???, 01h = VDISK,
  52997. 02h = INT 15h extended memory, 03h = ??? extended,
  52998. 04h = XMS handle's memory, 05h = ???, 06h = ???, 07h = ???,
  52999. 08h = ???, 09h = ???, 0Ah = ???, 0Bh = ???,
  53000. 11h = ???, 12h = ???, 14h = ???, 15h = ???,
  53001. 19h = ???, 1Ah = ???, 1Bh = ???,
  53002. 1Ch = ???, 1Dh = ???, 1Eh = ???, 1Fh = ???,
  53003. 20h = ???, 21h = ???, 23h = ???, 24h = ???,
  53004. 26h = ???
  53005. 0Bh BYTE ??? (00h for types 00h-03h, 07h-0Bh, 19h-21h;
  53006. 80h for types 04h/13h-15h/23h-26h;
  53007. ??? for type 05h)
  53008. --------V-214402-----------------------------
  53009. INT 21 - PGS1600.DEV - IOCTL - GET CONFIGURATION INFO
  53010. AX = 4402h
  53011. BX = file handle for device "PGS1600$"
  53012. CX = 0018h (size of buffer)
  53013. DS:DX -> configuration buffer (see #01484)
  53014. Return: CF clear if successful
  53015. buffer filled
  53016. AX = number of bytes actually copied
  53017. CF set on error
  53018. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53019. Program: PGS1600.DEV is a device driver for the Cornerstone Technology PG1600
  53020. display adapter, which provides a 1600x1200 monochrome display as
  53021. well as one of two emulations, MDA or CGA.
  53022. SeeAlso: AX=4403h"PGS1600"
  53023. Format of PGS1600.DEV configuration information:
  53024. Offset Size Description (Table 01484)
  53025. 00h WORD version (high byte = major, low byte = minor)
  53026. 02h WORD board initialisation mode
  53027. 04h WORD board I/O address
  53028. 03D0h CGA emulation
  53029. 03B0h MDA emulation
  53030. 0390h no emulation
  53031. 0350h no emulation, alternate
  53032. 06h WORD emulation buffer segment
  53033. B800h CGA emulation
  53034. B000h MDA emulation
  53035. 0000h no emulation
  53036. 08h WORD PG1600 graphics buffer segment
  53037. 0Ah WORD number of bytes between consecutive graphic rows
  53038. 0Ch WORD horizontal pixel size
  53039. 0Eh WORD vertical pixel size
  53040. 10h WORD horizontal dots per inch
  53041. 12h WORD vertical dots per inch
  53042. 14h WORD graphics buffer bits per pixel
  53043. 16h WORD monitor bits per pixel
  53044. --------N-214402-----------------------------
  53045. INT 21 - PC/TCP IPCUST.SYS - RESET CONFIGURATION DATA READ POINTER
  53046. AX = 4402h
  53047. BX = file handle referencing device "$IPCUST"
  53048. CX, DS:DX ignored
  53049. Return: CF clear if successful
  53050. AX destroyed
  53051. CF set on error
  53052. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53053. Notes: there are a total of 378h bytes of configuration data for IPCUST.SYS
  53054. version 2.05. If less than the entire data is read or written,
  53055. the next read/write continues where the previous one ended; this
  53056. call and AX=4403h both reset the location at which the next
  53057. operation starts to zero
  53058. v2.1+ uses a new configuration method, but allows the installation
  53059. of IPCUST.SYS for backward compatibility with other software which
  53060. must read the PC/TCP configuration
  53061. SeeAlso: AH=3Fh"IPCUST",AH=40h"IPCUST",AX=4403h"IPCUST"
  53062. --------N-214402-----------------------------
  53063. INT 21 - WORKGRP.SYS - GET API ENTRY POINT
  53064. AX = 4402h
  53065. BX = file handle for device "NET$HLP$"
  53066. CX = 0008h
  53067. DS:DX -> buffer for entry point record (see #01485)
  53068. Return: CF clear if successful
  53069. AX = number of bytes actually read
  53070. CF set on error
  53071. AX = error code
  53072. Program: WORKGRP.SYS is the portion of Microsoft's Workgroup Connection which
  53073. permits communication with PCs running Windows for Workgroups or
  53074. LAN Manager
  53075. SeeAlso: AH=3Fh"WORKGRP.SYS"
  53076. Format of WORKGRP.SYS entry point record:
  53077. Offset Size Description (Table 01485)
  53078. 00h WORD 3633h \ signature???
  53079. 02h WORD EF6Fh /
  53080. 04h DWORD address of entry point (see #01486)
  53081. Note: first four bytes of buffer must be 6Fh E9h 33h 36h on entry when using
  53082. IOCTL rather than READ to get the entry point record
  53083. (Table 01486)
  53084. Call WORKGRP entry point with:
  53085. STACK: WORD function number (0000h-0009h)
  53086. Return: STACK unchanged
  53087. SeeAlso: #01487,#01488,#01489,#01490,#01491,#01492,#01493,#01494
  53088. (Table 01487)
  53089. Call WORKGRP function 00h with:
  53090. STACK: WORD 0000h (function "get ???")
  53091. Return: DX:AX -> data table
  53092. (Table 01488)
  53093. Call WORKGRP function 01h with:
  53094. STACK: WORD 0001h (function "hook ???")
  53095. Return: STACK: DWORD pointer to ???
  53096. WORD 0001h (function number)
  53097. (Table 01489)
  53098. Call WORKGRP function 02h with:
  53099. STACK: WORD 0002h (function "unhook ???")
  53100. ???
  53101. Return: ???
  53102. (Table 01490)
  53103. Call WORKGRP function 03h with:
  53104. STACK: WORD 0003h (function "reenable printer port")
  53105. WORD LPT port number
  53106. Return: ???
  53107. (Table 01491)
  53108. Call WORKGRP function 04h with:
  53109. STACK: WORD 0004h (function "disable printer port")
  53110. WORD LPT port number
  53111. Return: ???
  53112. (Table 01492)
  53113. Call WORKGRP function 05h with:
  53114. STACK: WORD 0005h (function "???")
  53115. ???
  53116. Return: ???
  53117. (Table 01493)
  53118. Call WORKGRP function 06h with:
  53119. STACK: WORD 0006h (function "???")
  53120. Return: STACK unchanged
  53121. AX = 0000h
  53122. DX = 0000h
  53123. (Table 01494)
  53124. Call WORKGRP functions 07h-09h with:
  53125. STACK: WORD 0007h-0009h (NOP functions)
  53126. Return: STACK unchanged
  53127. AX = 0001h
  53128. DX = 0000h
  53129. --------N-214402-----------------------------
  53130. INT 21 - 10NET v5.0 - 10BEUI.DOS - API
  53131. AX = 4402h
  53132. BX = file handle referencing device "10BEUI$"
  53133. DS:DX -> parameter record (see #01495)
  53134. CX ignored
  53135. Return: CF clear if successful
  53136. AX destroyed
  53137. CF set on error
  53138. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53139. SeeAlso: AX=4402h"10MEMMGR",INT 6F/AH=00h"10NET"
  53140. Format of 10NET 10BEUI.DOS parameter record:
  53141. Offset Size Description (Table 01495)
  53142. 00h WORD 000Ah (function number???)
  53143. 02h WORD ???
  53144. 04h DWORD pointer to buffer for ???
  53145. 08h 4 BYTEs ???
  53146. 0Ch WORD transfer size
  53147. --------N-214402-----------------------------
  53148. INT 21 - 10NET v5.0 - 10MEMMGR.SYS - API
  53149. AX = 4402h
  53150. BX = file handle referencing device "MEMMGR0$"
  53151. DS:DX -> 6-byte buffer for interface info (see #01496)
  53152. CX ignored
  53153. Return: CF clear if successful
  53154. AX destroyed
  53155. CF set on error
  53156. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53157. SeeAlso: AX=4402h"10BEUI",INT 6F/AH=00h"10NET"
  53158. Format of 10NET 10MEMMGR.SYS interface info:
  53159. Offset Size Description (Table 01496)
  53160. 00h DWORD address of entry point (see #01497)
  53161. 04h WORD version (0500h for v5.00)
  53162. (Table 01497)
  53163. Call 10NET 10MEMMGR.SYS entry point with:
  53164. AL = 01h ???
  53165. BX = ???
  53166. Return: CF clear if successful
  53167. CF set on error
  53168. AX = error code
  53169. AL = 02h ???
  53170. ???
  53171. AL = 03h ???
  53172. ???
  53173. AL = 04h set/restore memory allocation strategy
  53174. BX = subfunction
  53175. 0000h set strategy
  53176. 0001h restore strategy
  53177. Return: CF clear if successful
  53178. CF set on error (if function disabled)
  53179. various registers destroyed
  53180. AL = other
  53181. Return: CF set
  53182. AX = 0000h
  53183. BL = 01h
  53184. --------V-214402-----------------------------
  53185. INT 21 - Compaq AG1024.SYS - RGDI - GET DRIVER LOCATION
  53186. AX = 4402h
  53187. BX = file handle for device "$$$$RGDI"
  53188. CX = 0006h (size of returned data)
  53189. DS:DX -> location record (see #01498)
  53190. Return: CF clear if successful
  53191. buffer filled
  53192. CF set on error
  53193. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53194. Program: AG1024.SYS is a device driver for the Advanced Graphics 1024 adapter
  53195. SeeAlso: AX=4403h"RGDI"
  53196. Format of Compaq AG1024.SYS location record:
  53197. Offset Size Description (Table 01498)
  53198. 00h WORD signature 55AAh
  53199. 02h WORD segment of ???
  53200. 04h WORD segment of device driver's code
  53201. --------N-214402-----------------------------
  53202. INT 21 - FTPSOFT.DOS v3.1 - GET ???
  53203. AX = 4402h
  53204. BX = file handle for device "FTPSOFT$"
  53205. CX = size of buffer
  53206. DS:DX -> buffer for data (see #01499)
  53207. Return: CF clear if successful
  53208. buffer filled
  53209. CF set on error
  53210. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53211. Program: FTPSOFT.DOS is a device driver for Protocol Manager support from
  53212. FTP Software, Inc.
  53213. SeeAlso: AH=3Fh"PC/TCP",AX=4402h"NDIS"
  53214. Format of FTPSOFT.DOS data:
  53215. Offset Size Description (Table 01499)
  53216. 00h WORD (call) BA98h (if different, no data returned)
  53217. 02h DWORD -> NDIS common characteristics table
  53218. (see #01435 at AX=4402h"NDIS")
  53219. 06h DWORD (call) -> new dispatch table (see #01437 at AX=4402h"NDIS")
  53220. 0Ah DWORD -> 28-byte buffer for ??? data
  53221. 0Eh DWORD ???
  53222. 12h DWORD -> FAR function to reset dispatch jump table to defaults
  53223. 16h BYTE ???
  53224. Note: the addresses in the new dispatch table are copied into an internal
  53225. jump table which may be reset by calling the function pointed at by
  53226. offset 12h
  53227. --------n-214402-----------------------------
  53228. INT 21 U - PenDOS PENDEV.SYS - GET ENTRY POINTS
  53229. AX = 4402h
  53230. BX = file handle for device "$$PENDOS" or "$$PD_REG"
  53231. CX = size of buffer (4 for $$PENDOS and a 4,8,12, or 16 for $$PD_REG)
  53232. DS:DX -> buffer for entry point record (see #01500)
  53233. Return: CF clear if successful
  53234. buffer filled
  53235. CF set on error
  53236. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53237. Program: A limited version of PenDOS by Communication Intelligence Corporation,
  53238. which provides pen capability to keyboard-based programs, is bundled
  53239. with IBM DOS 6.1
  53240. SeeAlso: AX=4403h"PENDEV.SYS"
  53241. Format of PENDEV.SYS entry point record:
  53242. Offset Size Description (Table 01500)
  53243. 00h DWORD -> array of jumps
  53244. 04h WORD offset of function to retrieve entry point (see #01501)
  53245. 06h 2 BYTEs signature "Pe"
  53246. 08h WORD offset of function to set entry point (see #01502)
  53247. 0Ah 2 BYTEs signature "nD"
  53248. 0Ch WORD offset of function to clear entry point (see #01503)
  53249. 0Eh WORD signature "OS"
  53250. (Table 01501)
  53251. Call PENDEV.SYS function to retrieve entry point with:
  53252. AX = index of entry point (0-9)
  53253. Return: CF clear if successful
  53254. DX:AX -> desired entry point
  53255. CF set on error (AX out of range)
  53256. (Table 01502)
  53257. Call PENDEV.SYS function to set entry point with:
  53258. AX = index of entry point (0-9)
  53259. DX:SI -> new handler
  53260. Return: CF clear if successful
  53261. CF set on error (AX out of range)
  53262. (Table 01503)
  53263. Call PENDEV.SYS function to clear entry point with:
  53264. AX = index of entry point (0-9)
  53265. Return: CF clear if successful
  53266. CF set on error (AX out of range)
  53267. Note: resets the jump at the specified entry point to its default target,
  53268. which simply returns
  53269. --------N-214402-----------------------------
  53270. INT 21 U - LAN Manager - TCPDRV.DOS - API
  53271. AX = 4402h
  53272. BX = file handle referencing device "TCPDRV$"
  53273. CX = 0019h
  53274. DS:DX -> buffer containing request block (see #01504)
  53275. Return: CF clear if successful
  53276. buffer filled
  53277. CF set on error
  53278. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53279. Program: TCPDRV.DOS is the low-level device driver supporting LAN Manager's
  53280. TCP/IP protocol stack
  53281. Format of TCPDRV.DOS request block:
  53282. Offset Size Description (Table 01504)
  53283. 00h BYTE (call) function number
  53284. 00h initialize ???
  53285. 06h get ???
  53286. 07h get ???
  53287. 01h BYTE (call) 00h
  53288. (ret) error code if error, unchanged if successful
  53289. 02h WORD signature 4354h ('CT')
  53290. ---function 00h---
  53291. 04h DWORD (call) pointer to ??? FAR function
  53292. function is called with ES:BX -> device driver request used to
  53293. invoke this function
  53294. 08h 4 BYTEs ???
  53295. 0Ch DWORD (call) pointer to ??? record, WORD at offset 22h is read
  53296. 10h DWORD (ret) -> ??? buffer if 0000h:0000h on call
  53297. ---function 06h---
  53298. 04h 4 BYTEs ???
  53299. 08h DWORD (ret) pointer to ???
  53300. ---function 07h---
  53301. 04h DWORD (ret) pointer to ??? record
  53302. --------y-214402-----------------------------
  53303. INT 21 U - PC Tools 9 CPRLOW.EXE - GET CODE AND DATA ADDRESSES
  53304. AX = 4402h
  53305. BX = file handle referencing device "RECLOWLD"
  53306. DS:DX -> buffer for address list (see #01505)
  53307. CX ignored
  53308. Return: CF clear if successful
  53309. buffer filled
  53310. CF set on error
  53311. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53312. Format of CPRLOW address list:
  53313. Offset Size Description (Table 01505)
  53314. 00h WORD segment of CPRLOW code
  53315. 02h WORD offset in code segment of ??? entry point
  53316. (switches into protected mode)
  53317. 04h WORD offset in code segment of jump array (see #01506)
  53318. 06h WORD segment of copy of interrupt vector table at CPRLOW load time
  53319. Note: neither the entry point nor the jump array is valid until after a
  53320. CPR /LOAD, because CPR.EXE installs the code into CPRLOW at runtime.
  53321. Format of CPRLOW jump array:
  53322. Offset Size Description (Table 01506)
  53323. 00h 3 BYTEs initialize CPRLOW interrupt hooks
  53324. 03h 3 BYTEs reset timers and enable CPR (hotkey enable)
  53325. 06h 3 BYTEs disable CPR (hotkey disable)
  53326. 09h 3 BYTEs clear ??? flag, hotkey disable, and ???
  53327. 0Ch 3 BYTEs initialize delay loop counter (destroys AX,BX,CX,DX)
  53328. 0Fh 3 BYTEs disable CPR completely (commandline /DISABLE)
  53329. 12h 3 BYTEs enable ??? if CPR enabled by both cmdline and hotkey
  53330. 15h 3 BYTEs enable CPR (commandline /ENABLE)
  53331. --------s-214402-----------------------------
  53332. INT 21 U - Creative Technology CTMMSYS.SYS v1.00.01 - API
  53333. AX = 4402h
  53334. BX = file handle for device "CTMMSYS$"
  53335. CX = 0004h (size of data)
  53336. DS:DX -> buffer for entry point (see #01507)
  53337. Return: CF clear if successful
  53338. buffer updated
  53339. CF set on error
  53340. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53341. Program: CTMMSYS.SYS is the Creative DOS Multimedia Architecture Integration
  53342. driver
  53343. SeeAlso: AX=4402h"CTSB2",INT 80/BX=0000h"SBFM"
  53344. Format of CTMMSYS.SYS entry point record:
  53345. Offset Size Description (Table 01507)
  53346. 00h DWORD (call) signature 4D6D7443h (ASCII "CtmM")
  53347. (ret) pointer to CTMMSYS entry point (see #01508)
  53348. SeeAlso: #01509
  53349. (Table 01508)
  53350. Call CTMMSYS.SYS entry point with:
  53351. AX = ???
  53352. STACK: WORD ???
  53353. WORD ???
  53354. WORD ??? (0001h,0002h,0005h,0006h)
  53355. WORD ???
  53356. DWORD -> ???
  53357. WORD ???
  53358. WORD ???
  53359. Return: DX:AX = ??? or error code
  53360. 0000h:000Bh invalid value for ???
  53361. 0000h:000Fh API call already in progress
  53362. SeeAlso: #01507
  53363. --------s-214402-----------------------------
  53364. INT 21 U - Creative Technology CTSB2.SYS v1.01.01 - API
  53365. AX = 4402h
  53366. BX = file handle for device "CTSOUND0"
  53367. CX = 0004h (size of data)
  53368. DS:DX -> buffer for entry point (see #01509)
  53369. Return: CF clear if successful
  53370. buffer updated
  53371. CF set on error
  53372. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53373. Program: CTMMSYS.SYS is the Creative DOS Multimedia Architecture Integration
  53374. driver
  53375. SeeAlso: AX=4402h"CTMMSYS",INT 80/BX=0000h"SBFM"
  53376. Format of CTSB2.SYS entry point record:
  53377. Offset Size Description (Table 01509)
  53378. 00h DWORD (call) signature 4D6D7443h (ASCII "CtmM")
  53379. (ret) pointer to CTSB2 entry point (see #01510)
  53380. SeeAlso: #01507
  53381. (Table 01510)
  53382. Call CTSB2.SYS entry point with:
  53383. AX = ???
  53384. STACK: DWORD -> ???
  53385. WORD function number
  53386. (0100h,0200h,0300h,0400h,0500h,0600h,0701h)
  53387. DWORD -> ???
  53388. WORD ???
  53389. WORD ???
  53390. Return: DX:AX = ??? or error code
  53391. 0000h:0004h invalid subfunction???
  53392. 0000h:000Bh invalid value for ???
  53393. 0000h:000Fh API call already in progress
  53394. SeeAlso: #01509
  53395. --------m-214402-----------------------------
  53396. INT 21 U - Novell DOS 7 EMM386.EXE - GET STATE RECORD???
  53397. AX = 4402h
  53398. BX = file handle for device "EMMXXXX0"
  53399. CX = 003Eh (size of state record)
  53400. DS:DX -> buffer for state record (see #01511)
  53401. Return: CF clear if successful
  53402. buffer filled (see #03603 at INT 67/AH=3Fh)
  53403. CF set on error
  53404. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53405. Format of Novell DOS 7 EMM386.EXE state record:
  53406. Offset Size Description (Table 01511)
  53407. 00h WORD signature EDC0h
  53408. 02h 60 BYTEs ???
  53409. --------m-214402SF00-------------------------
  53410. INT 21 U - Memory Managers - GET API ENTRY POINT
  53411. AX = 4402h subfn 00h
  53412. BX = file handle for device "EMMXXXX0"
  53413. CX = 0006h (size of buffer in bytes)
  53414. DS:DX -> buffer for API entry point record (see #01512)
  53415. first byte must be 00h on entry
  53416. Return: CF clear if successful
  53417. buffer filled (see #03603 at INT 67/AH=3Fh)
  53418. CF set on error
  53419. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53420. Notes: this function is supported by Microsoft EMM386.EXE v4.45+ and
  53421. CEMM v5.10+, and is intended for use by MS Windows as it starts up
  53422. if no other program has hooked INT 67, an alternate installation
  53423. check for CEMM is testing for the string
  53424. "COMPAQ EXPANDED MEMORY MANAGER 386" at offset 14h in the INT 67
  53425. handler's segment; if present, the word at offset 12h contains the
  53426. offset of the API entry point
  53427. SeeAlso: AX=4402h/SF=01h,AX=4402h/SF=02h,AX=4402h"EMM386",INT 67/AH=3Fh
  53428. Format of memory manager API entry point record:
  53429. Offset Size Description (Table 01512)
  53430. 00h WORD ??? (0022h for CEMM 5.11, 0025h for MS EMM386 v4.45)
  53431. 02h DWORD manager's private API entry point
  53432. (see #01513,#03666 at INT 67/AX=FFA5h)
  53433. (Table 01513)
  53434. Call CEMM v5.10+ entry point with:
  53435. AH = 00h get memory manager's state
  53436. Return: AH = state
  53437. bit 0: turned OFF
  53438. bit 1: AUTO mode enabled
  53439. AH = 01h set memory manager's state
  53440. AL = new state (00h ON, 01h OFF, 02h AUTO)
  53441. Return: CF clear if successful
  53442. CF set on error
  53443. AH = 02h Weitek coprocessor support
  53444. AL = subfunction
  53445. 00h get Weitek support state
  53446. Return: AL = status
  53447. bit 0: Weitek coprocessor is present
  53448. bit 1: Weitek support is enabled
  53449. 01h turn on Weitek support
  53450. 02h turn off Weitek support
  53451. Return: CF clear if successful
  53452. CF set on error
  53453. AH = error code (01h invalid subfunc, 02h no Weitek)
  53454. AH = 05h get statistics
  53455. ???
  53456. AH > 06h
  53457. Return: CF set
  53458. AH = 01h (invalid function)
  53459. Notes: AH=03h,04h,06h are NOPs which return CF clear, presumably for backwards
  53460. compatibility with earlier versions of CEMM
  53461. in v5.11, AH=05h merely prints an error message (using INT 21/AH=09h)
  53462. stating that a different version of CEMM is installed and it is
  53463. therefore not possible to display the statistics
  53464. --------m-214402SF01-------------------------
  53465. INT 21 U - Memory Managers - GET EMM IMPORT STRUCTURE ADDRESS
  53466. AX = 4402h subfn 01h
  53467. BX = file handle for device "EMMXXXX0"
  53468. CX = 0006h (size of buffer in bytes)
  53469. DS:DX -> buffer for EMM import structure record (see #01514)
  53470. first byte must be 01h on entry
  53471. Return: CF clear if successful
  53472. buffer filled (see also #03603 at INT 67/AH=3Fh)
  53473. CF set on error
  53474. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53475. Notes: this function is supported by Microsoft EMM386.EXE v4.45+,
  53476. QEMM-386 v6+, and CEMM v5.10+, and is intended for use by MS Windows
  53477. as it starts up
  53478. for QEMM-386, this call always returns an error if Windows3 support
  53479. has been disabled with the NW3 switch
  53480. SeeAlso: AX=4402h/SF=00h,AX=4402h"EMM386",INT 2F/AX=D201h/BX=5145h
  53481. SeeAlso: INT 67/AH=3Fh
  53482. Format of EMM import structure record:
  53483. Offset Size Description (Table 01514)
  53484. 00h DWORD physical address of EMM import structure (see #01515)
  53485. 04h BYTE EMM import structure major version
  53486. 05h BYTE EMM import structure minor version
  53487. Note: vession 1.00 contains only EMS information (Windows 3.0+)
  53488. version 1.10 contains UMB/XMS/HMA/EMS information (Windows 3.1)
  53489. version 1.11 is version 1.10 plus memory manager maker/product name
  53490. SeeAlso: #03643
  53491. Format of Global EMM Import record:
  53492. Offset Size Description (Table 01515)
  53493. 00h BYTE bit flags
  53494. bit 2: ???
  53495. bit 3: free EMM386 virtual HMA only if hma_page_table_paddr!=0
  53496. bit 4: no UMB???
  53497. 01h BYTE reserved (0)
  53498. 02h WORD size of structure in bytes
  53499. 04h WORD structure version
  53500. 06h DWORD reserved
  53501. 0Ah 384 BYTEs 64 EMS frame status records (see #01516), one per 16K of
  53502. real-mode 1M address space
  53503. 18Ah BYTE ??? (must be at least 3*number_of_EMS_frames+4)
  53504. 18Bh BYTE number of UMB frame descriptors following
  53505. 18Ch 4N DWORDs UMB frame descriptors
  53506. each is 4 DWORDs giving physical page numbers for the four
  53507. 4K pages of a 16K EMS frame (00000000h if non-UMB page)
  53508. var BYTE number of EMS handle info records following
  53509. 16N BYTEs EMS handle info records (see #01518)
  53510. ---version 1.10+ ---
  53511. DWORD realmode INT 67 vector (used by Windows to set breakpoints)
  53512. DWORD physical address of HMA page table values
  53513. BYTE number of free page entries following
  53514. 2N DWORDs free page entries
  53515. each is:
  53516. DWORD physical page number
  53517. DWORD number of consecutive physical pages
  53518. BYTE number of XMS handle info records following
  53519. 00h if memory manager does not emulate XMS or has real mode
  53520. XMS code which can execute in the Windows environment
  53521. 12N BYTEs XMS handle info records (see #01519)
  53522. BYTE number of free UMB info records following
  53523. 2N WORDs free UMB info records
  53524. each is:
  53525. WORD real mode start segment
  53526. WORD size in paragraphs
  53527. ---version 1.11---
  53528. 20 BYTEs blank-padded maker name
  53529. 20 BYTEs blank-padded product name
  53530. Format of EMS frame status record:
  53531. Offset Size Description (Table 01516)
  53532. 00h BYTE frame type (see #01517)
  53533. 01h BYTE owner handle (00h/FFh = none) from frame including UMB
  53534. index to UMB frame descriptors
  53535. 02h WORD logical page for frame, 7FFFh if none, FFFFh if non-EMS frame
  53536. 04h BYTE EMS physical page number (FFh for non-EMS = don't care???)
  53537. 05h BYTE flags for non-EMS frames (00h for EMS frame)
  53538. bits 0,1 for first 4K, bits 2,3 for second 4K, etc:
  53539. 10: direct mapping (linear address = physical address)
  53540. 01: UMB mapping
  53541. Bitfields for EMS frame type:
  53542. Bit(s) Description (Table 01517)
  53543. 0 EMS frame
  53544. 1 (if EMS frame) in standard 64K page frame
  53545. 2 first 4K of frame is UMB
  53546. 3 second 4K of frame is UMB
  53547. 4 third 4K of frame is UMB
  53548. 5 last 4K of frame is UMB
  53549. Format of EMS handle info record:
  53550. Offset Size Description (Table 01518)
  53551. 00h BYTE handle number (00h = system handle)
  53552. 01h BYTE flags
  53553. bit 0: normal handle rather than system handle
  53554. bit 2: ??? (set by some EMS managers)
  53555. 02h 8 BYTEs EMS handle's name
  53556. 0Ah WORD number of 16K pages for handle
  53557. 0Ch DWORD physical address of page table entries forming page map
  53558. Note: all values should be zero for the system handle if no large frame
  53559. support is present
  53560. Format of XMS handle info record:
  53561. Offset Size Description (Table 01519)
  53562. 00h WORD handle
  53563. 02h WORD flags
  53564. bit 0: handle usable by Windows
  53565. (already in use when Windows started if clear)
  53566. bit 1: reserved (0)
  53567. 04h DWORD size in KB (may be zero, used only if flags bit 0 set)
  53568. 08h DWORD physical address (only if flags bit 0 set)
  53569. --------m-214402SF02-------------------------
  53570. INT 21 U - Memory Managers - GET MEMORY MANAGER VERSION
  53571. AX = 4402h subfn 02h
  53572. BX = file handle for device "EMMXXXX0"
  53573. CX = 0002h (size of buffer in bytes)
  53574. DS:DX -> buffer for memory manager version (see #01520)
  53575. first byte must be 02h on entry
  53576. Return: CF clear if successful
  53577. buffer filled
  53578. CF set on error
  53579. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53580. Note: this function is supported by Microsoft EMM386.EXE v4.45+ and
  53581. CEMM v5.10+, and is intended for use by MS Windows as it starts up
  53582. SeeAlso: AX=4402h/SF=00h,AX=4402h"EMM386",INT 67/AH=3Fh
  53583. Format of memory manager version:
  53584. Offset Size Description (Table 01520)
  53585. 00h BYTE major version
  53586. 01h BYTE minor version (binary)
  53587. --------m-214402-----------------------------
  53588. INT 21 U - Microsoft EMM386.EXE v4.45 - GET MEMORY MANAGER INFORMATION
  53589. AX = 4402h
  53590. BX = file handle for device "EMMXXXX0"
  53591. CX = size of buffer in bytes (varies, see #01521)
  53592. DS:DX -> buffer for returned data (see #01521)
  53593. first byte must be set on entry to indicate desired data
  53594. Return: CF clear if successful
  53595. buffer filled
  53596. CF set on error
  53597. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53598. Notes: an error is returned if the number of bytes to be read does not match
  53599. the number of bytes returned for the specified data item
  53600. this function is part of the interface which allows MS Windows to
  53601. cooperate with memory managers
  53602. SeeAlso: AX=4402h/SF=00h,AX=4402h/SF=01h,AX=4402h/SF=02h,INT 67/AX=FFA5h
  53603. Format of EMM386.EXE data buffer:
  53604. Offset Size Description (Table 01521)
  53605. 00h BYTE (call) function
  53606. 03h get ???
  53607. 04h get ???
  53608. ---function 03h---
  53609. 00h WORD ???
  53610. 02h WORD ???
  53611. ---function 04h---
  53612. 00h WORD segment of UMB containing EMM386 code/data
  53613. 02h WORD number of paragraphs of EMM386 code/data in UMB
  53614. 04h WORD ???
  53615. ----------214402-----------------------------
  53616. INT 21 U - IFSHLP.SYS - GET ENTRY POINT
  53617. AX = 4402h
  53618. BX = file handle for device "IFS$HLP$"
  53619. CX = 0008h (size of buffer in bytes)
  53620. DS:DX -> buffer for entry point record (see #01415 at AH=3Fh"IFSHLP")
  53621. Return: CF clear if successful
  53622. buffer filled
  53623. CF set on error
  53624. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53625. SeeAlso: AH=3Fh"IFSHLP"
  53626. --------D-214403-----------------------------
  53627. INT 21 - DOS 2+ - IOCTL - WRITE TO CHARACTER DEVICE CONTROL CHANNEL
  53628. AX = 4403h
  53629. BX = file handle referencing character device
  53630. CX = number of bytes to write
  53631. DS:DX -> data to write
  53632. Return: CF clear if successful
  53633. AX = number of bytes actually written
  53634. CF set on error
  53635. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53636. Notes: format of data is driver-specific
  53637. (also see separate entries below for some specific cases)
  53638. if the file handle refers to "4DOSSTAK", the 4DOS (v2.x-3.03)
  53639. KEYSTACK.SYS driver will push the specified characters on the
  53640. keyboard stack; similarly for "NDOSSTAK", the NDOS KEYSTACK.SYS
  53641. driver will push the characters onto the keyboard stack
  53642. this function was not supported by Digital Research's DOS-Plus
  53643. SeeAlso: AX=4400h,AX=4402h"DOS 2+",AX=4405h"DOS",INT 2F/AX=122Bh
  53644. SeeAlso: INT 2F/AX=D44Dh,INT 2F/AX=D44Fh
  53645. --------c-214403-----------------------------
  53646. INT 21 - SMARTDRV.SYS v3.x only - IOCTL - CACHE CONTROL
  53647. AX = 4403h
  53648. BX = handle for device "SMARTAAR"
  53649. CX = number of bytes to write
  53650. DS:DX -> SMARTDRV control block (see #01523)
  53651. Return: CF clear if successful
  53652. AX = number of bytes actually written
  53653. 0000h if control block too small for given command
  53654. CF set on error
  53655. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53656. Note: NCache2 (from the Norton Utilities v8.0) attempts to support this
  53657. interface, but does not do so correctly, often hanging the system;
  53658. one should use the SmartDrive v4.x or NCache private interfaces
  53659. (see INT 2F/AX=4A10h/BX=0000h,INT 2F/AX=FE00h/DI=4E55h)
  53660. SeeAlso: AX=4402h"SMARTDRV",INT 2F/AX=4A10h/BX=0000h
  53661. (Table 01522)
  53662. Values for SMARTDRV function code:
  53663. 00h flush cache
  53664. 01h flush and discard cache
  53665. 02h disable caching (flushes and discards cache first)
  53666. 03h enable caching
  53667. 04h control write caching
  53668. 05h set flushing tick count
  53669. 06h lock cache contents
  53670. 07h unlock cache contents
  53671. 08h set flush-on-reboot flag
  53672. 09h unused
  53673. 0Ah control full-track caching
  53674. 0Bh reduce cache size
  53675. 0Ch increase cache size
  53676. 0Dh set INT 13 chain address
  53677. Format of SMARTDRV control block:
  53678. Offset Size Description (Table 01523)
  53679. 00h BYTE function code (see #01522)
  53680. ---functions 00h-03h,06h,07h---
  53681. no additional fields
  53682. ---function 04h---
  53683. 01h BYTE write caching control action
  53684. 00h turn off write-through
  53685. 01h turn on write-through
  53686. 02h turn off write buffering (also flushes cache)
  53687. 03h turn on write buffering (also flushes cache)
  53688. ---function 05h---
  53689. 01h WORD number of timer ticks between cache flushes
  53690. ---function 08h---
  53691. 01h BYTE new flush-on-reboot flag (00h off, 01h on)
  53692. ---function 0Ah---
  53693. 01h BYTE full-track writes are
  53694. 00h not cached
  53695. 01h cached
  53696. ---functions 0Bh,0Ch---
  53697. 01h WORD number of 16K pages by which to increase/reduce cache size
  53698. ---function 0Dh---
  53699. 01h DWORD new address to which to chain on INT 13
  53700. Note: the previous address is not preserved
  53701. --------d-214403-----------------------------
  53702. INT 21 - CD-ROM device driver - IOCTL OUTPUT
  53703. AX = 4403h
  53704. BX = file handle referencing character device for CD-ROM driver
  53705. CX = number of bytes to write
  53706. DS:DX -> control block (see #01524)
  53707. Return: CF clear if successful
  53708. AX = number of bytes actually written
  53709. CF set on error
  53710. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53711. Notes: some device drivers support several subunits (that is more than one
  53712. drive) but it is not possible to distinguish between them with this
  53713. function; use INT 2F/AX=1510h or INT 2F/AX=0802h instead
  53714. under Windows95, the "mscd$$$$" device cannot be opened so you cannot
  53715. obtain the handle required by this function: use INT 2F/AX=1510h
  53716. or INT 2F/AX=0802h instead
  53717. SeeAlso: AX=4402h"CD-ROM",INT 2F/AX=0802h,INT 2F/AX=1510h
  53718. Format of CR-ROM control block:
  53719. Offset Size Description (Table 01524)
  53720. 00h BYTE function code
  53721. 00h eject disk
  53722. 01h lock/unlock door
  53723. 02h reset drive
  53724. 03h control audio channel
  53725. 04h write device control string
  53726. 05h close tray
  53727. ---functions 00h,02h,05h---
  53728. no further fields
  53729. ---function 01h---
  53730. 01h BYTE lock function
  53731. 00h unlock door
  53732. 01h lock door
  53733. ---function 03h---
  53734. 01h BYTE input channel (0-3) for output channel 0
  53735. 02h BYTE volume for output channel 0
  53736. 03h BYTE input channel (0-3) for output channel 1
  53737. 04h BYTE volume for output channel 1
  53738. 05h BYTE input channel (0-3) for output channel 2
  53739. 06h BYTE volume for output channel 2
  53740. 07h BYTE input channel (0-3) for output channel 3
  53741. 08h BYTE volume for output channel 3
  53742. Note: output channels 0 and 1 are left and right, 2 and 3 are left prime and
  53743. right prime; a volume of 00h is off
  53744. ---function 04h---
  53745. 01h N BYTEs bytes to send directly to the CD-ROM drive without
  53746. interpretation
  53747. --------D-214403-----------------------------
  53748. INT 21 U - MS-DOS 7.0+ - CONFIG$ device - SET??? CONFIGURATION INFORMATION
  53749. AX = 4403h
  53750. BX = file handle for character device "CONFIG$"
  53751. CX = number of bytes to write
  53752. DS:DX -> buffer containing ???
  53753. Return: CF clear if successful
  53754. AX = number of bytes actually written
  53755. CF set on error
  53756. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53757. Note: IOCTL Output to CONFIG$ is only available while IO.SYS is booting
  53758. the system; once CONFIG.SYS has been processed, this call always
  53759. succeeds, ignoring any input
  53760. SeeAlso: AX=4403h"CONFIG$"
  53761. --------d-214403-----------------------------
  53762. INT 21 - Brian Antoine Seagate ST-01 SCSI.SYS - IOCTL - EXECUTE COMMANDS
  53763. AX = 4403h
  53764. BX = handle for device "SCSITAPE"
  53765. CX = number of bytes to write
  53766. DS:DX -> SCSITAPE control block (see #01525)
  53767. Return: CF clear if successful
  53768. AX = number of bytes actually written
  53769. CF set on error
  53770. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53771. SeeAlso: AX=4405h"ST-01",INT 78/AH=10h
  53772. Format of SCSITAPE control block:
  53773. Offset Size Description (Table 01525)
  53774. 00h WORD command type
  53775. 'F' Format (argument 1 = interleave, argument 2 = format type)
  53776. 'E' Erase
  53777. 'R' Rewind
  53778. 'L' Load
  53779. 'N' No Load
  53780. 'S' Space (argument 1 = count, argument 2 = type)
  53781. 'M' File Mark (argument 1 = count)
  53782. 'A' Reassign
  53783. 02h WORD argument 1
  53784. 04h WORD argument 2
  53785. 06h WORD segment of command buffer
  53786. 08h WORD offset of command buffer
  53787. 0Ah WORD length of command buffer
  53788. --------E-214403-----------------------------
  53789. INT 21 U - AI Architects - OS/x86??? - API
  53790. AX = 4403h
  53791. BX = handle for device "AIA_OS"
  53792. CX = number of bytes to write (ignored)
  53793. DS:DX -> 12-byte buffer (see #01526), first byte is command:
  53794. 81h installation check
  53795. 82h get API entry point
  53796. 84h uninstall
  53797. Return: CF clear if successful
  53798. AX = number of bytes actually written
  53799. DS:DX buffer filled
  53800. CF set on error
  53801. AX = error code (01h,05h,06h,0Ch,0Dh) (see #01680 at AH=59h)
  53802. Notes: these functions are only available if the DOS extender was loaded as a
  53803. device driver in CONFIG.SYS
  53804. called by TKERNEL (a licensed version of AI Architects/Ergo OS/x86)
  53805. SeeAlso: INT 2F/AX=FBA1h/BX=0081h,INT 2F/AX=FBA1h/BX=0082h
  53806. Index: installation check;OS/x86|entry point;OS/x86|uninstall;OS/x86
  53807. Format of buffer on return:
  53808. Offset Size Description (Table 01526)
  53809. 00h 4 BYTEs signature "IABH"
  53810. ---if function 81h---
  53811. (no additional fields)
  53812. ---if function 82h---
  53813. 04h DWORD pointer to API entry point (see INT 2F/AX=FBA1h/BX=0082h)
  53814. ---if function 84h---
  53815. 04h WORD success indicator
  53816. 06h WORD segment of ???
  53817. 08h WORD segment of ??? memory block to free if nonzero
  53818. 0Ah WORD segment of ??? memory block to free if nonzero
  53819. --------V-214403-----------------------------
  53820. INT 21 - PGS1600.DEV - IOCTL - SET CONFIGURATION???
  53821. AX = 4403h
  53822. BX = file handle for device "PGS1600$"
  53823. CX = 0018h (size of buffer)
  53824. DS:DX -> configuration buffer (see #01484 at AX=4402h"PGS1600")
  53825. Return: CF clear if successful
  53826. AX = number of bytes actually written
  53827. CF set on error
  53828. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53829. Program: PGS1600.DEV is a device driver for the Cornerstone Technology PG1600
  53830. display adapter, which provides a 1600x1200 monochrome display as
  53831. well as one of two emulations, MDA or CGA.
  53832. SeeAlso: AX=4402h"PGS1600"
  53833. --------N-214403-----------------------------
  53834. INT 21 - PC/TCP IPCUST.SYS - RESET CONFIGURATION DATA READ POINTER
  53835. AX = 4403h
  53836. BX = file handle referencing device "$IPCUST"
  53837. CX, DS:DX ignored
  53838. Return: CF clear if successful
  53839. AX destroyed
  53840. CF set on error
  53841. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53842. Notes: there are a total of 378h bytes of configuration data for IPCUST.SYS
  53843. version 2.05. If less than the entire data is read or written,
  53844. the next read/write continues where the previous one ended; this
  53845. call and AX=4402h both reset the location at which the next
  53846. operation starts to zero
  53847. v2.1+ uses a new configuration method, but allows the installation
  53848. of IPCUST.SYS for backward compatibility with other software which
  53849. must read the PC/TCP configuration
  53850. SeeAlso: AH=3Fh"IPCUST",AH=40h"IPCUST",AX=4402h"IPCUST"
  53851. --------V-214403-----------------------------
  53852. INT 21 - Compaq AG1024.SYS - CPQ_MGES - IOCTL OUTPUT
  53853. AX = 4403h
  53854. BX = file handle referencing device "CPQ_MGES"
  53855. DS:DX -> request packet (see #01527)
  53856. CX ignored
  53857. Return: CF clear if successful
  53858. AX destroyed
  53859. data buffer filled (if applicable)
  53860. first word of request packet set to number of bytes of data
  53861. available (amount returned is smaller of this and requested
  53862. amount)
  53863. CF set on error
  53864. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53865. Program: AG1024.SYS is a device driver for the Advanced Graphics 1024 adapter
  53866. SeeAlso: AX=4403h"RGDI"
  53867. Format of Compaq AG1024.SYS request packet:
  53868. Offset Size Description (Table 01527)
  53869. 00h WORD function
  53870. 0000h get ??? (26h bytes)
  53871. 0001h get ??? (36h bytes)
  53872. 0002h set ??? (same as returned by function 0001h)
  53873. 0003h get ??? (6 bytes)
  53874. 0004h get ???
  53875. 0005h get ???
  53876. 0006h get ??? (10h bytes)
  53877. 0007h set ??? (same as returned by function 0006h)
  53878. ---functions 00h-03h,06h,07h---
  53879. 02h WORD size of data buffer
  53880. 04h DWORD -> buffer for function's data
  53881. ---functions 04h,05h---
  53882. 02h WORD ???
  53883. 04h WORD size of data buffer
  53884. 06h DWORD -> buffer to receive data
  53885. --------V-214403-----------------------------
  53886. INT 21 - Compaq AG1024.SYS - RGDI - IOCTL OUTPUT
  53887. AX = 4403h
  53888. BX = file handle referencing device "$$$$RGDI"
  53889. DS:DX -> request packet (see #01528)
  53890. CX ignored
  53891. Return: CF clear if successful
  53892. AX destroyed
  53893. data buffer filled (if applicable)
  53894. first word of request packet set to number of bytes of data
  53895. available (amount returned is smaller of this and requested
  53896. amount)
  53897. CF set on error
  53898. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53899. Program: AG1024.SYS is a device driver for the Advanced Graphics 1024 adapter
  53900. SeeAlso: AX=4402h"RGDI",AX=4403h"CPQ_MGES"
  53901. Format of Compaq AG1024.SYS request packet:
  53902. Offset Size Description (Table 01528)
  53903. 00h WORD function
  53904. 0000h get entry points
  53905. 0001h get ???
  53906. 02h DWORD address of buffer for returned data
  53907. --------m-214403SF01-------------------------
  53908. INT 21 U - Qualitas 386MAX v6.01+ - TURN 386MAX OFF
  53909. AX = 4403h subfn 01h
  53910. BX = handle for device "386MAX$$"
  53911. DS:DX -> BYTE 01h
  53912. CX ignored
  53913. Return: DS:DX -> BYTE status (00h = successful)
  53914. CF clear if successful
  53915. AX destroyed
  53916. CF set on error
  53917. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53918. Note: this function will fail if any EMS or UMBs are in use
  53919. SeeAlso: AX=4403h/SF=02h,AX=4403h/SF=03h,AX=4403h/SF=05h
  53920. --------m-214403SF02-------------------------
  53921. INT 21 U - Qualitas 386MAX v6.01+ - TURN 386MAX ON
  53922. AX = 4403h subfn 02h
  53923. BX = handle for device "386MAX$$"
  53924. DS:DX -> BYTE 02h
  53925. CX ignored
  53926. Return: DS:DX -> BYTE status (00h = successful)
  53927. CF clear if successful
  53928. AX destroyed
  53929. CF set on error
  53930. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53931. SeeAlso: AX=4403h/SF=01h,AX=4403h/SF=03h,AX=4403h/SF=05h
  53932. --------m-214403SF03-------------------------
  53933. INT 21 U - Qualitas 386MAX v6.01+ - SET STATE
  53934. AX = 4403h subfn 03h
  53935. BX = handle for device "386MAX$$"
  53936. CX = number of bytes to copy (up to size of state buffer)
  53937. DS:DX -> BYTE 03h followed by state buffer
  53938. (see #01467 at AX=4402h"386MAX")
  53939. Return: CF clear if successful
  53940. AX = number of bytes actually written
  53941. CF set on error
  53942. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53943. Note: the first byte of the buffer must be either 01h, 02h, or 03h
  53944. (specifying the version of the state record) and the buffer must
  53945. contain CX bytes AFTER the initial byte
  53946. SeeAlso: AX=4402h"386MAX"
  53947. --------m-214403SF05-------------------------
  53948. INT 21 U - Qualitas 386MAX v7.00+ - LIMIT AUTOMATIC ACTIVATION TO STD EMS CALLS
  53949. AX = 4403h subfn 05h
  53950. BX = handle for device "386MAX$$"
  53951. DS:DX -> BYTE 05h
  53952. CX ignored
  53953. Return: CF clear if successful
  53954. AX destroyed
  53955. CF set on error
  53956. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53957. Desc: specifies that 386MAX will only shift from AUTO to ON mode on standard
  53958. EMS calls INT 67/AH=40h-5Dh
  53959. SeeAlso: AX=4403h/SF=02h,AX=4403h/SF=03h,AX=4403h/SF=06h
  53960. --------m-214403SF06-------------------------
  53961. INT 21 U - Qualitas 386MAX v7.00+ - ALLOW AUTOMATIC ACTIVATION ON ANY INT 67
  53962. AX = 4403h subfn 06h
  53963. BX = handle for device "386MAX$$"
  53964. DS:DX -> BYTE 06h
  53965. CX ignored
  53966. Return: CF clear if successful
  53967. AX destroyed
  53968. CF set on error
  53969. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53970. Desc: specified that 386MAX should shift from AUTO to ON mode on any INT 67
  53971. call other than INT 67/AH=3Fh
  53972. SeeAlso: AX=4403h/SF=01h,AX=4403h/SF=03h,AX=4403h/SF=05h
  53973. --------n-214403-----------------------------
  53974. INT 21 U - PenDOS PENDEV.SYS - ???
  53975. AX = 4403h
  53976. BX = file handle for device "$$PENDOS" or "$$PD_REG"
  53977. CX = size of buffer
  53978. DS:DX -> buffer containing ???
  53979. Return: CF clear if successful
  53980. buffer filled
  53981. CF set on error
  53982. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53983. Program: A limited version of PenDOS by Communication Intelligence Corporation,
  53984. which provides pen capability to keyboard-based programs, is bundled
  53985. with IBM DOS 6.1
  53986. Note: this call sets the WORD at offset 1Ah into the device driver request
  53987. header used to call the driver to 0000h.
  53988. SeeAlso: AX=4402h"PENDEV.SYS"
  53989. --------D-214404-----------------------------
  53990. INT 21 - DOS 2+ - IOCTL - READ FROM BLOCK DEVICE CONTROL CHANNEL
  53991. AX = 4404h
  53992. BL = drive number (00h = default, 01h = A:, etc.)
  53993. CX = number of bytes to read
  53994. DS:DX -> buffer
  53995. Return: CF clear if successful
  53996. AX = number of bytes actually read
  53997. CF set on error
  53998. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  53999. Notes: format of data is driver-specific
  54000. this function was not supported by Digital Research's DOS-Plus
  54001. SeeAlso: AX=4402h"DOS 2+",AX=4405h"DOS",INT 2F/AX=122Bh
  54002. --------k-214404-----------------------------
  54003. INT 21 - Stacker - GET DEVICE DRIVER ADDRESS AND SET VOLUME NUMBER
  54004. AX = 4404h
  54005. BL = drive number (00h = default, 01h = A:, etc.)
  54006. CX = 0004h
  54007. DS:DX -> DWORD buffer to receive device driver address
  54008. Return: buffer filled with pointer into Stacker device driver (see #02550):
  54009. driver + 19h if Stacker Anywhere controls this drive
  54010. driver + 1Ah if Stacker controls this drive
  54011. unchanged else
  54012. Notes: in addition to returning the address of the Stacker device driver,
  54013. this call also sets the volume number at offset 58h in the device
  54014. driver (see #02550 at INT 25/AX=CDCDh)
  54015. Stacker Anywhere does not link its built-in device driver into
  54016. the standard device driver chain, but it can be found via CDS/DPB
  54017. this call can be used as an installation check for all versions of
  54018. Stacker and Stacker Anywhere to avoid the INT 25 call
  54019. SeeAlso: AX=4408h,AX=440Eh,AH=52h,INT 25/AX=CDCDh
  54020. --------k-214404-----------------------------
  54021. INT 21 - Stacker - GET STACVOL FILE SECTORS
  54022. AX = 4404h
  54023. BL = drive number (0 is current drive)
  54024. CX = byte count (i.e., 200h = 1 sector)
  54025. DS:DX -> buffer (see #01529)
  54026. Return: Data Buffer contains the number of sectors requested from the
  54027. STACVOL physical file for the drive specified.
  54028. Format of Stacker buffer:
  54029. Offset Size Description (Table 01529)
  54030. 00h WORD 01CDh
  54031. 02h WORD sector count
  54032. 04h DWORD number of starting sector
  54033. 08h DWORD far pointer to Data Buffer
  54034. --------k-214404-----------------------------
  54035. INT 21 - DUBLDISK.SYS v2.6 - GET INFO
  54036. AX = 4404h
  54037. BL = drive number of DoubleDisk drive (00h = default, 01h = A:, etc.)
  54038. CX = number of bytes (000Ah-0014h, call ignored otherwise)
  54039. DS:DX -> data record (see #01530)
  54040. Return: CF clear if successful
  54041. AX = number of bytes read
  54042. CF set on error
  54043. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  54044. Program: DUBLDISK.SYS is the device driver portion of DoubleDisk, a disk
  54045. expander by Vertisoft Systems, Inc.
  54046. InstallCheck: for v2.6, scan memory for the signature "FAT 2.6 byte:",
  54047. which is immediately followed by a data table (see #01531)
  54048. BUG: VOPT (a disk optimizer by Golden Bow Software) assumes that any driver
  54049. which returns the "correct" number of bytes when the first word of
  54050. the buffer for the data record contains the signature value 4444h is
  54051. DoubleDisk; a workaround is for the non-DoubleDisk driver to return
  54052. no data if the signature is present
  54053. SeeAlso: AX=440Dh"DOS 3.2+"
  54054. Index: installation check;DUBLDISK.SYS
  54055. Format of DUBLDISK data record:
  54056. Offset Size Description (Table 01530)
  54057. 00h WORD (call) signature 4444h
  54058. 02h BYTE (call) function
  54059. 00h ???
  54060. 01h ???
  54061. ---function 00h---
  54062. 02h BYTE (ret) ???
  54063. 03h BYTE (ret) ???
  54064. ---function 01h---
  54065. 02h WORD (ret) 4444h
  54066. 04h WORD allocation unit size???
  54067. 06h WORD ???
  54068. 08h WORD ???
  54069. 0Ah BYTE ???
  54070. Format of DUBLDISK signature data table:
  54071. Offset Size Description (Table 01531)
  54072. 00h 5 BYTEs ???
  54073. 05h BYTE first drive number
  54074. 06h BYTE number of drives
  54075. 07h ???
  54076. --------k-214404-----------------------------
  54077. INT 21 - DBLSPACE.BIN - IOCTL - FLUSH OR INVALIDATE INTERNAL CACHES
  54078. AX = 4404h
  54079. BL = drive number (00h = default, 01h = A:, etc)
  54080. CX = 000Ah (size of DSPACKET structure)
  54081. DS:DX -> DSPACKET structure (see #01532)
  54082. Return: CF clear if IOCTL successful -- check DSPACKET for actual status
  54083. AX = number of bytes actually transferred
  54084. CF set on error
  54085. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  54086. SeeAlso: AX=4405h"DBLSPACE",INT 2F/AX=4A11h/BX=0000h
  54087. Format of DoubleSpace DSPACKET structure:
  54088. Offset Size Description (Table 01532)
  54089. 00h WORD signature 444Dh ("DM")
  54090. 02h BYTE command code
  54091. 46h ('F') flush internal caches
  54092. 49h ('I') flush and invalidate internal caches
  54093. 03h WORD result code
  54094. (ret) 4F4Bh ("OK") if successful, else unchanged
  54095. 05h 5 BYTEs padding
  54096. --------k-214404-----------------------------
  54097. INT 21 - DBLSPACE.BIN v6.2 - IOCTL - GET ??? FOR SPECIFIED DRIVE
  54098. AX = 4404h
  54099. BL = drive number (00h = default, 01h = A:, etc)
  54100. CX = size of DSPACKET structure (ignored in DOS 6.2)
  54101. DS:DX -> DSPACKET structure (see #01533)
  54102. Return: CF clear if IOCTL successful -- check DSPACKET for actual status
  54103. AX = number of bytes actually transferred
  54104. CF set on error
  54105. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  54106. SeeAlso: AX=4405h"DBLSPACE",INT 2F/AX=4A11h/BX=0000h
  54107. Format of DoubleSpace DSPACKET structure:
  54108. Offset Size Description (Table 01533)
  54109. 00h WORD signature 444Dh ("DM")
  54110. 02h BYTE command code
  54111. 53h ('S') get ??? for specified drive
  54112. 03h WORD result code
  54113. (ret) 4F4Bh ("OK") if successful, else unchanged
  54114. 05h DWORD (ret) pointer to 96-byte ??? data
  54115. 09h DWORD (ret) pointer to ??? data
  54116. 0Dh 3 BYTEs reserved
  54117. --------k-214404-----------------------------
  54118. INT 21 U - DoubleTools v1.0 - GET ???
  54119. AX = 4404h
  54120. BL = drive number (00h = default, 01h = A:, etc)
  54121. CX = 0006h
  54122. DS:DX -> DoubleTools structure (see #01534)
  54123. Return: CF clear if IOCTL successful -- check DSPACKET for actual status
  54124. AX = number of bytes actually transferred
  54125. CF set on error
  54126. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  54127. Note: the Transporter device driver has the signature 55h 61h 50h 74h
  54128. ("DaPt") twelve bytes after it beginning
  54129. Format of DoubleTools structure:
  54130. Offset Size Description (Table 01534)
  54131. 00h WORD (call) signature 55h AAh
  54132. (ret) signature 78h 70h ("xp")
  54133. 02h WORD (call) signature 52h 16h
  54134. (ret) ???
  54135. 04h WORD (ret) segment of driver's DS (same as its PSP)
  54136. --------d-214404-----------------------------
  54137. INT 21 U - xDISK v3.31 - CONFIGURE
  54138. AX = 4404h
  54139. BL = drive number (00h = default, 01h = A:, etc)
  54140. CX = 0047h (length of version string)
  54141. DS:DX -> 79-byte buffer for version string and ???
  54142. DS:0081h = commandline containing new switches for driver
  54143. Return: CF clear if successful
  54144. AX = number of bytes actually transferred
  54145. CF set on error
  54146. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  54147. Program: xDISK is a shareware resizeable EMS RAMdisk by FM de Monasterio
  54148. SeeAlso: AX=4405h"xDISK",INT 2F/AH=DDh/BX=7844h"xDISK"
  54149. --------c-214404-----------------------------
  54150. INT 21 - COMBI-disk v1.13 - GET DATA RECORD
  54151. AX = 4404h
  54152. BL = drive number (00h = default, 01h = A:, etc)
  54153. CX = 0032h (length of data packet)
  54154. DS:DX -> buffer for data packet (see #01535)
  54155. Return: CF clear if successful
  54156. AX = number of bytes actually transferred
  54157. CF set on error
  54158. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  54159. Program: COMBI-disk is a shareware combination cache and RAMdisk sharing a
  54160. single pool of memory by Vadim V. Vlasov
  54161. InstallCheck: scan the valid drives for one which returns a correctly-sized
  54162. data packet with the proper signature in the first field
  54163. SeeAlso: AX=4405h"COMBI"
  54164. Index: installation check;COMBI-disk
  54165. Format of COMBI-disk data packet:
  54166. Offset Size Description (Table 01535)
  54167. 00h 6 BYTEs ASCIZ signature "COMBI"
  54168. 06h WORD version (high byte = major, low = decimal minor version)
  54169. 08h BYTE current options
  54170. 09h BYTE sectors per allocation block
  54171. 0Ah WORD maximum buffer in KB
  54172. 0Ch WORD current buffer in KB (less than max if XMS memory being lent)
  54173. 0Eh WORD total number of allocation blocks
  54174. 10h WORD current number of allocation blocks
  54175. 12h WORD number of blocks being used by RAM disk
  54176. 14h WORD number of blocks being used by cache or unused
  54177. 16h WORD number of dirty cache blocks
  54178. 18h WORD number of blocks which could not be written out due to errors
  54179. 1Ah WORD total number of read requests
  54180. 1Ch WORD total number of sectors read
  54181. 1Eh WORD number of BIOS read requests (cache misses)
  54182. 20h WORD number of sectors read via BIOS (cache misses)
  54183. 22h WORD total number of write requests
  54184. 24h WORD total number of sectors written
  54185. 26h WORD number of BIOS write requests
  54186. 28h WORD number of sectors written via BIOS
  54187. 2Ah WORD number of RAM disk read requests
  54188. 2Ch WORD number of sectors read from RAM disk
  54189. 2Eh WORD number of RAM disk write requests
  54190. 30h WORD number of sectors written to RAM disk
  54191. --------d-214404-----------------------------
  54192. INT 21 - SFS v1.00 - GET CONFIGURATION INFORMATION
  54193. AX = 4404h
  54194. BL = drive number (00h = default, 01h = A:, etc)
  54195. CX = 001Ah (length of data packet)
  54196. DS:DX -> buffer for data packet (see #01536)
  54197. Return: CF clear if successful
  54198. AX = number of bytes actually transferred
  54199. CF set on error
  54200. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  54201. Program: SFS (Secure FileSystem) is a shareware encrypting disk driver by
  54202. Peter C. Gutmann
  54203. SeeAlso: AX=4405h"SFS"
  54204. Format of SFS data packet:
  54205. Offset Size Description (Table 01536)
  54206. 00h 4 BYTEs signature string "SFS1"
  54207. 04h WORD SFS unit number (0-based)
  54208. 06h WORD drive on which the SFS volume is mounted
  54209. 08h DWORD sector offset of logical volume from start of physical volume
  54210. 0 if logical volume = physical volume
  54211. 0Ch WORD flag: 00h = no disk mounted, 01h = disk mounted
  54212. 0Eh WORD flag: 00h read/write, 01h read-only
  54213. 10h WORD quick-unmount hotkey
  54214. (high byte = shift state, low = scan code) (see #00006)
  54215. 12h WORD auto-unmount time in minutes, or 0000h if already expired, or
  54216. FFFFh if not set
  54217. 14h WORD time in minutes remaining before auto-unmount
  54218. 16h WORD internal driver check code
  54219. 0000h no error
  54220. 0001h driver consistency check failed
  54221. 0002h unit consistency check failed
  54222. 18h WORD disk access mode
  54223. 0000h BIOS
  54224. 0001h IDE direct access
  54225. 0002h SCSI direct access
  54226. --------D-214405-----------------------------
  54227. INT 21 - DOS 2+ - IOCTL - WRITE TO BLOCK DEVICE CONTROL CHANNEL
  54228. AX = 4405h
  54229. BL = drive number (00h = default, 01h = A:, etc)
  54230. CX = number of bytes to write
  54231. DS:DX -> data to write
  54232. Return: CF clear if successful
  54233. AX = number of bytes actually written
  54234. CF set on error
  54235. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  54236. Notes: format of data is driver-specific
  54237. this function was not supported by Digital Research's DOS-Plus
  54238. SeeAlso: AX=4403h"DOS",AX=4404h"DOS",INT 2F/AX=122Bh
  54239. --------d-214405-----------------------------
  54240. INT 21 - Brian Antoine Seagate ST-01 SCSI.SYS - IOCTL - EXECUTE COMMANDS
  54241. AX = 4405h
  54242. BX = drive number (00h = default, 01h = A:, etc)
  54243. CX = number of bytes to write
  54244. DS:DX -> SCSIDISK control block (see also #01525 at AX=4403h"ST-01")
  54245. Return: CF clear if successful
  54246. AX = number of bytes actually written
  54247. CF set on error
  54248. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  54249. SeeAlso: AX=4403h"ST-01"
  54250. --------k-214405-----------------------------
  54251. INT 21 U - DBLSPACE.BIN - IOCTL - FLUSH OR INVALIDATE INTERNAL CACHES
  54252. AX = 4405h
  54253. BL = drive number (00h = default, 01h = A:, etc)
  54254. CX = 000Ah (size of DSPACKET structure)
  54255. DS:DX -> DSPACKET structure (see #01537)
  54256. Return: CF clear if IOCTL successful -- check DSPACKET for actual status
  54257. AX = number of bytes actually transferred
  54258. CF set on error
  54259. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  54260. Note: this call is identical to the documented AX=4404h
  54261. SeeAlso: AX=4404h"DBLSPACE",INT 2F/AX=4A11h/BX=0000h
  54262. Format of DoubleSpace DSPACKET structure:
  54263. Offset Size Description (Table 01537)
  54264. 00h WORD signature 444Dh ("DM")
  54265. 02h BYTE command code
  54266. 46h ('F') flush internal caches
  54267. 49h ('I') flush and invalidate internal caches
  54268. 03h WORD result code
  54269. (ret) 4F4Bh ("OK") if successful, else unchanged
  54270. 05h 5 BYTEs padding
  54271. --------d-214405-----------------------------
  54272. INT 21 U - xDISK v3.31 - ???
  54273. AX = 4405h
  54274. BL = drive number (00h = default, 01h = A:, etc)
  54275. CX = number of bytes to write
  54276. DS:DX -> buffer containing version string
  54277. ???
  54278. Return: CF clear if successful
  54279. AX = number of bytes actually transferred
  54280. CF set on error
  54281. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  54282. Program: xDISK is a shareware resizeable EMS RAMdisk by FM de Monasterio
  54283. SeeAlso: AX=4404h"xDISK",INT 2F/AH=DDh/BX=7844h"xDISK"
  54284. --------d-214405-----------------------------
  54285. INT 21 - COMBI-disk v1.13 - CONTROL COMBI-disk
  54286. AX = 4405h
  54287. BL = drive number (00h = default, 01h = A:, etc) for RAM disk
  54288. CX = number of bytes to write
  54289. DS:DX -> buffer containing command packet (see #01539)
  54290. Return: CF clear if successful
  54291. AX = number of bytes actually transferred
  54292. CF set on error
  54293. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  54294. SeeAlso: AX=4404h"COMBI"
  54295. (Table 01538)
  54296. Values for COMBI-disk command code:
  54297. 80h flush cache
  54298. 81h change options byte
  54299. 82h shrink memory
  54300. 83h expand memory
  54301. 84h get dirty block information
  54302. 85h reset write errors
  54303. 86h reset counters
  54304. Format of COMBI-disk command packet:
  54305. Offset Size Description (Table 01539)
  54306. 00h WORD version
  54307. 02h BYTE command code (see #01538)
  54308. ---command code 80h---
  54309. no additional fields
  54310. ---command code 81h---
  54311. 03h BYTE new options byte (see #01540)
  54312. ---command code 82h---
  54313. 03h WORD number of KB to release
  54314. ---command code 83h---
  54315. 03h WORD number of KB to expand
  54316. ---command code 84h---
  54317. 03h DWORD -> buffer for block info (see #01541)
  54318. ---command code 85h---
  54319. 03h DWORD block ID
  54320. ---command code 86h---
  54321. 03h BYTE which counters to reset
  54322. bit 0: hard disk read counts
  54323. bit 1: hard disk write counts
  54324. bit 2: RAM disk read/write counts
  54325. Note: multiple commands may be placed in a single packet by stringing
  54326. together as many command/argument pairs as desired
  54327. Bitfields for COMBI-disk options byte:
  54328. Bit(s) Description (Table 01540)
  54329. 0 cache off
  54330. 1 cache frozen
  54331. 2 write caching enabled
  54332. 3 delayed writing disabled
  54333. 5 fix memory allocation (no XMS lending)
  54334. 6 no 'sector not found' error
  54335. Format of COMBI-disk block info:
  54336. Offset Size Description (Table 01541)
  54337. 00h DWORD block ID
  54338. 04h BYTE bitmask of valid sectors in block
  54339. 05h BYTE bitmask of dirty sectors in block
  54340. 06h BYTE last error returned by BIOS
  54341. 07h BYTE number of errors
  54342. --------D-214405-----------------------------
  54343. INT 21 - SFS v1.00 - DRIVER CONTROL
  54344. AX = 4405h
  54345. BL = drive number (00h = default, 01h = A:, etc)
  54346. CX = number of bytes to write
  54347. DS:DX -> data to write (see #01543)
  54348. Return: CF clear if successful
  54349. AX = number of bytes actually written
  54350. CF set on error
  54351. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  54352. Program: SFS (Secure FileSystem) is a shareware encrypting disk driver by
  54353. Peter C. Gutmann
  54354. SeeAlso: AX=4404h"SFS"
  54355. (Table 01542)
  54356. Values for SFS control function:
  54357. 00h "PACKET_SET_DISKINFO" set disk parameters
  54358. 01h "PACKET_SET_KEYINFO" set keying information
  54359. 02h "PACKET_SET_READONLY" select read/write or read-only
  54360. 03h "PACKET_SET_DRIVENO" set drive number to mount
  54361. 04h "PACKET_SET_MOUNTSTATUS" set mount status
  54362. 05h "PACKET_SET_UNMOUNT" set/clear quick-unmount hotkey
  54363. 06h "PACKET_SET_TIMEOUT" set/clear auto-unmount timeout
  54364. Format of SFS control data packet:
  54365. Offset Size Description (Table 01543)
  54366. 00h WORD signature 4330h ('C0')
  54367. 02h WORD function (see #01542)
  54368. ---function 00h---
  54369. 04h WORD sector size in bytes
  54370. 06h BYTE sectors per cluster
  54371. 07h WORD number of boot sectors
  54372. 09h BYTE number of copies of FAT
  54373. 0Ah WORD size of root directory in entries
  54374. 0Ch WORD number of sectors on disk, 16-bit
  54375. 0Eh BYTE media descriptor byte
  54376. 0Fh WORD sectors per FAT
  54377. 11h WORD sectors per track
  54378. 13h WORD number of heads
  54379. 15h DWORD number of hidden sectors
  54380. 19h DWORD number of sectors on disk, 32-bit
  54381. ---function 01h---
  54382. 04h 20 BYTEs master IV for encrypted disk
  54383. 18h 64 BYTEs NDC/SHS keying information
  54384. ---function 02h---
  54385. 04h WORD read-only state: 00h read-only, 01h read/write
  54386. ---function 03h---
  54387. 04h WORD drive number (see #01544)
  54388. 06h DWORD sector offset of logical volume from start of physical volume
  54389. 0 if logical volume = physical volume
  54390. ---function 04h---
  54391. 04h WORD mount status (00h unmounted, 01h mounted)
  54392. ---function 05h---
  54393. 04h WORD hotkey (high byte = shift state, low byte = scan code or 00h)
  54394. (see #00006)
  54395. 0000h to disable hotkey
  54396. ---function 06h---
  54397. 04h WORD timeout in minutes before automatic unmount
  54398. 0000h to disable auto-unmount
  54399. Notes: the data for function 00h corresponds to a DOS BPB (see AH=53h)
  54400. functions 00h, 01h, and 03h automatically unmount the encrypted drive
  54401. unmounting a drive with function 04h also destroys the encryption
  54402. information in the driver and forces all dirty buffers to be flushed
  54403. Bitfields for SFS drive number:
  54404. Bit(s) Description (Table 01544)
  54405. 15-12 drive access mode
  54406. 0000 BIOS access
  54407. 0001 direct IDE access
  54408. 0010 direct SCSI access
  54409. ---if BIOS access---
  54410. 11-8 unused (0)
  54411. 7-0 BIOS drive number
  54412. ---if IDE access---
  54413. 11-8 unused (0)
  54414. 7-0 IDE drive number
  54415. ---if SCSI access---
  54416. 11-8 SCSI host number
  54417. 7-4 SCSI target ID
  54418. 3-0 SCSI logical unit number
  54419. --------D-214406-----------------------------
  54420. INT 21 - DOS 2+ - IOCTL - GET INPUT STATUS
  54421. AX = 4406h
  54422. BX = file handle
  54423. Return: CF clear if successful
  54424. AL = input status
  54425. 00h not ready (device) or at EOF (file)
  54426. FFh ready
  54427. AH may be destroyed (refer to note)
  54428. CF set on error
  54429. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  54430. Notes: files may not register as being at EOF if positioned there by AH=42h
  54431. under DOS 5.0, on a successful return, AH contains either the next
  54432. character which will be read or 1Ah if at EOF; under a Windows95
  54433. DOS box, AH seems to be either unchanged or 00h
  54434. this function was not supported by Digital Research's DOS-Plus
  54435. BUG: the CLOCK$ device under DR DOS 3.41 always indicates 'Ready'; this was
  54436. corrected in v5.0
  54437. SeeAlso: AX=4407h,INT 2F/AX=122Bh
  54438. --------D-214407-----------------------------
  54439. INT 21 - DOS 2+ - IOCTL - GET OUTPUT STATUS
  54440. AX = 4407h
  54441. BX = file handle
  54442. Return: CF clear if successful
  54443. AL = input status
  54444. 00h not ready
  54445. FFh ready
  54446. CF set on error
  54447. AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
  54448. Notes: for DOS 2+, files are always ready for output, even if the disk is
  54449. full or no media is in the drive
  54450. this function was not supported by Digital Research's DOS-Plus
  54451. SeeAlso: AX=4406h,INT 2F/AX=122Bh
  54452. --------D-214408-----------------------------
  54453. INT 21 - DOS 3.0+ - IOCTL - CHECK IF BLOCK DEVICE REMOVABLE
  54454. AX = 4408h
  54455. BL = drive number (00h = default, 01h = A:, etc)
  54456. Return: CF clear if successful
  54457. AX = media type (0000h removable, 0001h fixed)
  54458. CF set on error
  54459. AX = error code (01h,0Fh) (see #01680 at AH=59h/BX=0000h)
  54460. Notes: in addition to the normal operation, if Stacker is installed, this
  54461. call also sets the volume number at offset 58h in the Stacker
  54462. device driver (except under DR DOS 3.41-5.0, which do not pass
  54463. through this call to the driver; use AX=440Eh instead)
  54464. (see AX=4404h"Stacker",AX=440Eh,INT 25/AX=CDCDh)
  54465. this function was not supported by Digital Research's DOS-Plus
  54466. SeeAlso: AX=4400h,AX=4404h"Stacker",AX=4409h,INT 2F/AX=122Bh
  54467. --------D-214409-----------------------------
  54468. INT 21 - DOS 3.1+ - IOCTL - CHECK IF BLOCK DEVICE REMOTE
  54469. AX = 4409h
  54470. BL = drive number (00h = default, 01h = A:, etc)
  54471. Return: CF clear if successful
  54472. DX = device attribute word
  54473. bit 15: drive is SUBSTituted
  54474. bit 13: (DR DOS 3.41/5.0 local drives only) always set
  54475. media ID needed
  54476. bit 12: drive is remote
  54477. bit 9: direct I/O not allowed
  54478. CF set on error
  54479. AX = error code (01h,0Fh,15h) (see #01680 at AH=59h/BX=0000h)
  54480. Notes: on local drives, DX bits not listed above are the attribute word from
  54481. the device driver header (see #01646 at AH=52h); for remote drives,
  54482. the other bits appear to be undefined for MS-DOS versions prior to
  54483. 5.0 (they are all cleared in DOS 5+)
  54484. checking whether DX=0800h on return appears to be a fairly reliable
  54485. method for detecting Microsoft's RAMDRIVE, though not for other
  54486. ramdisks (there appears to be no simple yet foolproof method for
  54487. detecting ramdisks, although the presence of only a single copy of
  54488. the FAT and only a single head on non-removable devices is a fairly
  54489. good indicator); for Windows95, RAMDRIVE returns DX=4800h
  54490. for non-existent remote drives, this function sometimes returns
  54491. AX=0015h (drive not ready) instead of AX=000Fh (invalid drive) on
  54492. the first call; a subsequent call will return the correct error
  54493. code
  54494. this function was not supported by Digital Research's DOS-Plus
  54495. SeeAlso: AX=4400h,AX=4408h,AX=440Ah,INT 2F/AX=122Bh
  54496. --------D-21440A-----------------------------
  54497. INT 21 - DOS 3.1+ - IOCTL - CHECK IF HANDLE IS REMOTE
  54498. AX = 440Ah
  54499. BX = handle
  54500. Return: CF clear if successful
  54501. DX = attribute word (as stored in SFT)
  54502. bit 15: set if remote
  54503. bit 14: date/time not set on close
  54504. CF set on error
  54505. AX = error code (01h,06h) (see #01680 at AH=59h/BX=0000h)
  54506. Notes: if file is remote, Novell Advanced NetWare 2.0 returns the number of
  54507. the file server on which the handle is located in CX
  54508. DR DOS 3.41 and 5.0 clear all bits of DX except bit 15; Novell DOS 7
  54509. fully supports this function
  54510. this function was not supported by Digital Research's DOS-Plus
  54511. SeeAlso: AX=4400h,AX=4409h,AH=52h,INT 2F/AX=122Bh
  54512. --------D-21440B-----------------------------
  54513. INT 21 - DOS 3.1+ - IOCTL - SET SHARING RETRY COUNT
  54514. AX = 440Bh
  54515. CX = pause between retries (default 1)
  54516. DX = number of retries (default 3)
  54517. Return: CF clear if successful
  54518. CF set on error
  54519. AX = error code (01h) (see #01680 at AH=59h/BX=0000h)
  54520. Notes: delay is dependent on processor speed (value in CX specifies number of
  54521. 64K-iteration empty loops to execute)
  54522. if DX=0000h on entry, the retry count is left unchanged
  54523. this function was not supported by Digital Research's DOS-Plus
  54524. SeeAlso: AH=52h,INT 2F/AX=1224h,INT 2F/AX=122Bh
  54525. --------D-21440C-----------------------------
  54526. INT 21 - DOS 3.2+ - IOCTL - GENERIC CHARACTER DEVICE REQUEST
  54527. AX = 440Ch
  54528. BX = device handle
  54529. CH = category code (see #01545)
  54530. CL = function number (see #01546)
  54531. DS:DX -> parameter block (see #01547,#01548,#01549,#01550,#01551,#01552)
  54532. SI = parameter to pass to driver (European MS-DOS 4.0, OS/2 comp box)
  54533. DI = parameter to pass to driver (European MS-DOS 4.0, OS/2 comp box)
  54534. Return: CF set on error
  54535. AX = error code (see #01680 at AH=59h/BX=0000h)
  54536. CF clear if successful
  54537. DS:DX -> iteration count if CL=65h
  54538. SI = returned value (European MS-DOS 4.0, OS/2 comp box)
  54539. DI = returned value (European MS-DOS 4.0, OS/2 comp box)
  54540. Note: DR DOS 3.41 and 5.0 return error code 16h on CL=45h,65h if the device
  54541. does not support a retry counter
  54542. SeeAlso: AX=440Dh"DOS 3.2+",INT 2F/AX=0802h,INT 2F/AX=122Bh,INT 2F/AX=14FFh
  54543. SeeAlso: INT 2F/AX=1A01h
  54544. (Table 01545)
  54545. Values for IOCTL category code:
  54546. 00h unknown (DOS 3.3+)
  54547. 01h COMn: (DOS 3.3+)
  54548. 03h CON (DOS 3.3+)
  54549. 05h LPTn:
  54550. 9Eh Media Access Control driver (STARLITE)
  54551. 00h-7Fh reserved for Microsoft
  54552. 80h-FFh reserved for OEM/user-defined
  54553. (Table 01546)
  54554. Values for generic character IOCTL function:
  54555. 00h MAC driver Bind (STARLITE) (see #01547)
  54556. 45h set iteration (retry) count (see #01548)
  54557. 4Ah select code page (see #01549)
  54558. 4Ch start code-page preparation (see #01550)
  54559. 4Dh end code-page preparation (see #01551)
  54560. 5Fh set display information (DOS 4.0+) (see #01552)
  54561. 65h get iteration (retry) count
  54562. 6Ah query selected code page (see #01549)
  54563. 6Bh query prepare list (see #01553)
  54564. 7Fh get display information (DOS 4.0+) (see #01552)
  54565. Note: bit assignments for function code:
  54566. bit 7: set to ignore if unsupported, clear to return error
  54567. bit 6: set if passed to driver, clear if intercepted by DOS
  54568. bit 5: set if queries data from device, clear if sends command
  54569. bits 4-0: subfunction
  54570. Format of parameter block for function 00h:
  54571. Offset Size Description (Table 01547)
  54572. 00h 8 BYTEs ASCIZ signature "STARMAC"
  54573. 08h WORD version
  54574. 0Ah WORD flags
  54575. bit 0: media requires connect or listen request before use
  54576. bit 1: network is a LAN (broadcast/multicast supported)
  54577. bit 2: point-to-point network
  54578. 0Ch WORD handle for use with MAC driver's private interface (filled in
  54579. by MAC driver)
  54580. 0Eh WORD context
  54581. 10h WORD approximate speed in KB/sec (filled in by MAC driver)
  54582. 12h WORD approximate cost in cents per hour (filled in by MAC driver)
  54583. 14h WORD maximum packet size in bytes (filled in by MAC driver)
  54584. 16h WORD addressing format (filled in by MAC driver)
  54585. 0000h general addressing
  54586. 0001h Ethernet addressing
  54587. 0002h Token Ring addressing
  54588. 0003h Token Bus addressing
  54589. 18h DWORD Send entry point (filled in by MAC driver)
  54590. 1Ch DWORD RegisterEventHandler entry point (filled in by MAC driver)
  54591. 20h DWORD SetPacketFilter entry point (filled in by MAC driver)
  54592. 24h DWORD UnBind entry point (filled in by MAC driver)
  54593. Format of parameter block for function 45h:
  54594. Offset Size Description (Table 01548)
  54595. 00h WORD number of times output is attempted before driver assumes
  54596. device is busy
  54597. Format of parameter block for functions 4Ah and 6Ah:
  54598. Offset Size Description (Table 01549)
  54599. 00h WORD length of data
  54600. 02h WORD code page ID (see #01757 at INT 21/AX=6602h)
  54601. 04h 2N BYTEs DCBS (double byte character set) lead byte range
  54602. start/end for each of N ranges (DOS 4.0)
  54603. WORD 0000h end of data (DOS 4.0)
  54604. Format of parameter block for function 4Ch:
  54605. Offset Size Description (Table 01550)
  54606. 00h WORD flags
  54607. DISPLAY.SYS = 0000h
  54608. PRINTER.SYS bit 0 clear to prepare downloaded font, set to
  54609. prepare cartridge selection
  54610. 02h WORD length of remainder of parameter block
  54611. 04h WORD number of code pages following
  54612. 06h N WORDs code page 1,...,N
  54613. Format of parameter block for function 4Dh:
  54614. Offset Size Description (Table 01551)
  54615. 00h WORD length of data
  54616. 02h WORD code page ID (see #01757 at INT 21/AX=6602h)
  54617. Format of parameter block for functions 5Fh and 7Fh:
  54618. Offset Size Description (Table 01552)
  54619. 00h BYTE level (0 for DOS 4.x-6.0)
  54620. 01h BYTE reserved (0)
  54621. 02h WORD length of following data (14)
  54622. 04h WORD control flags
  54623. bit 0 set for blink, clear for intensity
  54624. bits 1-15 reserved
  54625. 06h BYTE mode type (1=text, 2=graphics)
  54626. 07h BYTE reserved (0)
  54627. 08h WORD colors
  54628. 0000h = monochrome
  54629. else N bits per pixel
  54630. 0Ah WORD pixel columns
  54631. 0Ch WORD pixel rows
  54632. 0Eh WORD character columns
  54633. 10h WORD character rows
  54634. Format of parameter block for function 6Bh:
  54635. Offset Size Description (Table 01553)
  54636. 00h WORD length of following data
  54637. 02h WORD number of hardware code pages
  54638. 04h N WORDs hardware code pages 1,...,N
  54639. WORD number of prepared code pages
  54640. N WORDs prepared code pages 1,...,N
  54641. --------d-21440C-----------------------------
  54642. INT 21 - Greg Shenaut ASPITAPE.SYS - INTERFACE
  54643. AX = 440Ch
  54644. BX = device handle
  54645. CH = category code
  54646. 07h tape (ASPITAPE.SYS)
  54647. CL = function
  54648. 01h "mtop" - perform tape operation
  54649. 02h "mtget" - get tape status
  54650. 03h ignore end-of-tape errors
  54651. 04h enable end-of-tape errors
  54652. DS:DX -> parameter block (see #01554,#01555)
  54653. Return: CF set on error
  54654. AX = error code (see #01680 at AH=59h/BX=0000h)
  54655. CF clear if successful
  54656. DS:DX -> data block
  54657. Notes: This device driver is a simple DOS interface to the Adaptec Advanced
  54658. SCSI Programming Interface (ASPI). It provides the following device
  54659. names as access to the SCSI tape, 'RMTx' (rewind on close) and
  54660. 'NRMTx' (NO rewind on close) where x can go from 0 to 3. There may
  54661. also be the following names 'MTx' and 'NMTx' which default to 1024
  54662. byte blocks. The names may also have a '$' appended to try and make
  54663. them unique from file names of 'RMT0' etc.
  54664. once opend these devices must be put into RAW mode
  54665. SeeAlso: AX=4402h"ASPI"
  54666. Format of ASPITAPE.SYS mtop parameter block:
  54667. Offset Size Description (Table 01554)
  54668. 00h WORD operation code
  54669. 00h "MTWEOF" - write an end-of-file record
  54670. 01h "MTFSF" - forward space file
  54671. 02h "MTBSF" - backward space file
  54672. 03h "MTFSR" - forward space record
  54673. 04h "MTBSR" - backward space record
  54674. 05h "MTREW" - rewind
  54675. 06h "MTOFFL" - rewind and unload
  54676. 07h "MTNOP" - perform TEST UNIT READY
  54677. 02h DWORD repetition count
  54678. Format of ASPITAPE.SYS mtget parameter block:
  54679. Offset Size Description (Table 01555)
  54680. 00h BYTE ASPI host ID
  54681. 01h BYTE SCSI target ID
  54682. 02h BYTE SCSI logical unit number
  54683. 03h BYTE device parameters
  54684. bit 0: drive must use fixed-block read and write
  54685. bit 7: drive is an ASPI device
  54686. 04h BYTE current device state (see #01556)
  54687. 05h BYTE unit number within driver
  54688. 06h WORD fixed block blocksize
  54689. 08h BYTE last SCSI status
  54690. 09h BYTE last SCSI sense key
  54691. 0Ah WORD last SCSI opcode (packed) (see #01557)
  54692. 0Ch WORD residual bytes from SCSI opcode
  54693. Bitfields for ASPITAPE.SYS current device state:
  54694. Bit(s) Description (Table 01556)
  54695. 0 device currently opened in buffered mode
  54696. 1 drive currently opened in nonbuffered mode
  54697. 2 rewind drive on last close
  54698. 3 drive has been written on
  54699. 4 drive has been read from
  54700. 5 next read will return 0 bytes
  54701. 6 EOM will resemble EOF
  54702. 7 drive may be busy rewinding
  54703. Bitfields for SCSI opcode:
  54704. Bit(s) Description (Table 01557)
  54705. 0-7 SCSI operation (SCSI packet byte 0)
  54706. 8-10 SCSI flags (SCSI packet byte 1)
  54707. 11-12 ASPI "Direction Bits" (ASPI SRB byte 3)
  54708. --------D-21440D-----------------------------
  54709. INT 21 - DOS 3.2+ - IOCTL - GENERIC BLOCK DEVICE REQUEST
  54710. AX = 440Dh
  54711. BL = drive number (00h=default,01h=A:,etc)
  54712. CH = category code (see #01558)
  54713. CL = minor code (function) (see #01559)
  54714. DS:DX -> (DOS) parameter block (see #01560,#01562,#01563,#01564,#01565)
  54715. SI:DI -> (OS/2 comp box) parameter block (see #01566,#01568,#01569,#01572)
  54716. Return: CF set on error
  54717. AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h)
  54718. CF clear if successful
  54719. DS:DX -> data block if CL=60h or CL=61h
  54720. Notes: DOS 4.01 seems to ignore the high byte of the number of directory
  54721. entries in the BPB for diskettes.
  54722. functions 46h and 66h undocumented in DOS 4.x, documented for DOS 5+
  54723. the DUBLDISK.SYS v2.6 driver only supports minor codes 60h and 67h
  54724. DR DOS 3.41-6.0 only support minor codes 40h-42h and 60h-62h; all
  54725. other minor codes return error code 16h
  54726. some PCMCIA calls reportedly appear to be dangerous for MS-DOS versions
  54727. prior to 5.0
  54728. minor code 60h normally produces no I/O except with AutoMount=1 for
  54729. DBLSPACE/DRVSPACE
  54730. SeeAlso: AX=440Ch,AX=440Dh/CX=084Ah,AX=440Dh/CX=0871h,AH=69h,INT 2F/AX=0802h
  54731. SeeAlso: INT 2F/AX=122Bh
  54732. (Table 01558)
  54733. Values for block device IOCTL category code:
  54734. 08h disk drive
  54735. 48h FAT32 disk drive
  54736. 00h-7Fh reserved for Microsoft
  54737. 80h-FFh reserved for OEM/user-defined
  54738. (Table 01559)
  54739. Values for generic block IOCTL minor code:
  54740. 00h (OS/2) \ used to lock/unlock a drive
  54741. 01h (OS/2) /
  54742. 40h set device parameters (see #01560)
  54743. 41h write logical device track (see #01562)
  54744. 42h format and verify logical device track (see #01563)
  54745. 46h (DOS 4.0+) set volume serial number (see #01565,AH=69h)
  54746. 47h (DOS 4.0+) set access flag (see #01566)
  54747. 48h (Enh. Disk Drive Spec) set media lock state (see #01567,INT 13/AH=45h)
  54748. 49h (Enh. Disk Drive Spec) eject media in drive (see INT 13/AH=49h)
  54749. no parameter block required
  54750. 4Ah (MS-DOS 7.0) lock logical volume (see AX=440Dh/CX=084Ah)
  54751. 4Bh (MS-DOS 7.0) lock physical volume (see AX=440Dh/CX=084Bh)
  54752. 50h (PCMCIA) attribute memory write
  54753. 51h (PCMCIA) common memory write
  54754. 52h (PCMCIA) force media change (DOS 5+ ???) (see #01568)
  54755. 53h (PCMCIA) erase drive
  54756. 54h (PCMCIA) erase media
  54757. 56h (PCMCIA) set erase status callback
  54758. 57h (PCMCIA) append Card Information Structure (CIS) tuple
  54759. 58h (PCMCIA) erase CIS tuples
  54760. 60h get device parameters (see #01560)
  54761. 61h read logical device track (see #01562)
  54762. 62h verify logical device track (see #01564)
  54763. 66h (DOS 4.0+) get volume serial number (see #01565,AH=69h)
  54764. 67h (DOS 4.0+) get access flag (see #01566)
  54765. 68h (DOS 5.0+) sense media type (see #01569)
  54766. 6Ah (MS-DOS 7.0) unlock logical volume (see AX=440Dh/CX=086Ah)
  54767. no parameter block required
  54768. 6Bh (MS-DOS 7.0) unlock physical volume (see AX=440Dh/CX=086Bh)
  54769. no parameter block required
  54770. 6Ch (MS-DOS 7.0) get lock flag (see AX=440Dh/CX=086Ch)
  54771. no parameter block required
  54772. 6Dh (MS-DOS 7.0) enumerate open files (see AX=440Dh/CX=086Dh)
  54773. 6Eh (MS-DOS 7.0) find swap file (see AX=440Dh/CX=086Eh)
  54774. 6Fh (MS-DOS 7.0) get drive map information (see #01570)
  54775. 70h (PCMCIA) attribute memory read
  54776. 70h (MS-DOS 7.0) get current lock state (see AX=440Dh/CX=0870h)
  54777. no parameter block required
  54778. 71h (MS-DOS 7.0) get first cluster (see AX=440Dh/CX=0871h)
  54779. 73h (PCMCIA) get memory media information (DOS 5+ ???) (see #01572)
  54780. 76h (PCMCIA) get erase status callback
  54781. 77h (PCMCIA) get first Card Information Structure (CIS) tuple
  54782. 78h (PCMCIA) get next CIS tuple
  54783. 7Fh (PCMCIA) get ??? information (see #01573,#01574)
  54784. Format of parameter block for functions 40h, 60h:
  54785. Offset Size Description (Table 01560)
  54786. 00h BYTE special functions
  54787. bit 0 set if function to use current BPB, clear if Device
  54788. BIOS Parameter Block field contains new default BPB
  54789. bit 1 set if function to use track layout fields only
  54790. must be clear if CL=60h
  54791. bit 2 set if all sectors in track same size (should be set)
  54792. bits 3-7 reserved (MS-DOS, Novell DOS 7)
  54793. bit 5: skip head settling time (WinDOS 2.11)
  54794. bit 6: format access flag (WinDOS 2.11)
  54795. 01h BYTE device type (see #01561)
  54796. 02h WORD device attributes
  54797. bit 0 set if nonremovable medium
  54798. bit 1 set if door lock ("changeline") supported
  54799. bits 2-15 reserved
  54800. 04h WORD number of cylinders
  54801. 06h BYTE media type
  54802. for 1.2M drive
  54803. 00h 1.2M disk (default)
  54804. 01h 320K/360K disk
  54805. F8h for DUBLDISK.SYS v2.6 expanded drives
  54806. always 00h for other drive types
  54807. 07h 31 BYTEs device BPB (see #01663 at AH=53h), bytes after BPB offset 1Eh
  54808. omitted; final six bytes only transferred on function 40h
  54809. with BYTE 00h bit 0 set for MS-DOS 5.0
  54810. ---function 40h only---
  54811. 26h WORD number of sectors per track (start of track layout field)
  54812. (maximum 63)
  54813. 28h N word pairs: number,size of each sector in track
  54814. ---category code 48h (FAT32), function 40h---
  54815. 07h 53 BYTEs extended BPB (see #01664)
  54816. 3Ch 32 BYTEs reserved
  54817. 5Ch WORD number of track table entries
  54818. 5Eh 2N WORDs sector table (word pairs: number/size of each sector in track)
  54819. ---category code 48h (FAT32), function 60h---
  54820. 07h 53 BYTEs extended BPB (see #01664)
  54821. 3Ch 32 BYTEs reserved
  54822. (Table 01561)
  54823. Values for device type:
  54824. 00h 320K/360K disk
  54825. 01h 1.2M disk
  54826. 02h 720K disk
  54827. 03h single-density 8-inch disk
  54828. 04h double-density 8-inch disk
  54829. 05h fixed disk
  54830. 06h tape drive
  54831. 07h (DOS 3.3+) other type of block device, normally 1.44M floppy
  54832. 08h read/write optical disk
  54833. 09h (DOS 5+) 2.88M floppy
  54834. Format of parameter block for functions 41h, 61h:
  54835. Offset Size Description (Table 01562)
  54836. 00h BYTE special functions (reserved, must be zero)
  54837. 01h WORD number of disk head
  54838. 03h WORD number of disk cylinder
  54839. 05h WORD number of first sector to read/write
  54840. 07h WORD number of sectors
  54841. 09h DWORD transfer address
  54842. Note: under Windows95, a volume must be locked (see AX=440Dh/CX=084Bh) in
  54843. order to perform direct accesses such as track reads and writes
  54844. with this IOCTL function
  54845. Format of parameter block for function 42h:
  54846. Offset Size Description (Table 01563)
  54847. 00h BYTE reserved, must be zero (DOS <3.2)
  54848. bit 0=0: format/verify track
  54849. 1: format status call (DOS 3.2+), don't actually format
  54850. bit 1: format multiple tracks, require additional WORD
  54851. (hard disks only)
  54852. bits 2-7 reserved, must be zero
  54853. value on return (DOS 3.3+):
  54854. 00h specified tracks, sectors/track supported by BIOS
  54855. 01h function not supported by BIOS
  54856. 02h specified tracks, sectors/track not allowed for drive
  54857. 03h no disk in drive
  54858. 01h WORD number of disk head
  54859. 03h WORD number of disk cylinder
  54860. ---BYTE 00h bit 1 set---
  54861. 05h WORD number of tracks to format
  54862. Format of parameter block for function 62h:
  54863. Offset Size Description (Table 01564)
  54864. 00h BYTE reserved, must be zero (DOS <3.2)
  54865. bit 0=0: verify single track
  54866. 1: verify multiple tracks
  54867. bits 1-7 reserved, must be zero
  54868. value on return (DOS 3.3+):
  54869. 00h specified tracks, sectors/track supported by BIOS
  54870. 01h function not supported by BIOS
  54871. 02h specified tracks, sectors/track not allowed for drive
  54872. 03h no disk in drive
  54873. 01h WORD number of disk head
  54874. 03h WORD number of disk cylinder
  54875. 05h WORD number of tracks to verify (equivalent to 255 or fewer sectors)
  54876. Format of parameter block for functions 46h, 66h:
  54877. Offset Size Description (Table 01565)
  54878. 00h WORD (call) info level (should be 0000h)
  54879. 02h DWORD disk serial number (binary)
  54880. 06h 11 BYTEs volume label or "NO NAME "
  54881. 11h 8 BYTEs filesystem type "FAT12 " or "FAT16 "
  54882. (generally CL=66h only, but MS-DOS 5.0 will write the
  54883. given filesystem type to the disk)
  54884. Note: under MS-DOS 7.0 or a Windows95 DOS box, the volume label field can
  54885. return as all blanks even when a volume label has been set (the Win95
  54886. installation seems to blank the volume label field in the partition
  54887. boot sector; once LABEL has been run, the volume label is reported
  54888. correctly)
  54889. SeeAlso: AH=69h
  54890. Format of parameter block for functions 47h, 67h:
  54891. Offset Size Description (Table 01566)
  54892. 00h BYTE special-function field (must be zero)
  54893. 01h BYTE disk-access flag, nonzero if access allowed by driver
  54894. Format of parameter block for function 48h:
  54895. Offset Size Description (Table 01567)
  54896. 00h BYTE (call) locking operation
  54897. 00h lock media in drive
  54898. 01h unlock media
  54899. 02h get locking status
  54900. 01h BYTE (ret) drive's lock status (number of pending locks on drive)
  54901. Note: also supported by MS-DOS 7.0+
  54902. Format of parameter block for function 52h:
  54903. 00h BYTE (call) unused??? (Table 01568)
  54904. (ret) 00h if flash/ATA drive but no card inserted
  54905. unchanged otherwise
  54906. Notes: the absense of a flash card should be tested by checking the DOS error
  54907. code rather than the returned byte
  54908. the parameter byte is cleared to 00h erroneously by the Award
  54909. PCDISK.EXE v1.02c PCMCIA/ATA driver if no ATA card is inserted
  54910. (bug corrected in PCDISK.EXE v1.02h and later)
  54911. not supported by the SystemSoft ATADRV.EXE and the Phoenix PCMATA.SYS
  54912. PCMCIA/ATA drivers
  54913. Format of parameter block for function 68h:
  54914. Offset Size Description (Table 01569)
  54915. 00h BYTE 01h for default media type, 00h for any other media type
  54916. (see also INT 13/AH=20h"Compaq")
  54917. 01h BYTE 02h for 720K, 07h for 1.44M, 09h for 2.88M
  54918. Format of parameter block for function 6Fh:
  54919. Offset Size Description (Table 01570)
  54920. 00h BYTE (call) length of this buffer (in bytes)
  54921. 01h BYTE (ret) number of bytes in parameter block actually used
  54922. 02h BYTE (ret) drive flags (see #01571)
  54923. 03h BYTE (ret) physical drive number
  54924. 00h-7Fh floppy
  54925. 80h-FEh hard
  54926. FFh no physical drive
  54927. 04h DWORD (ret) bitmap of logical drives associated with physical drive
  54928. bit 0 = drive A:, etc.
  54929. 08h QWORD (ret) relative block address of partition start
  54930. Bitfields for Get Drive Map Information drive flags:
  54931. Bit(s) Description (Table 01571)
  54932. 0 protected-mode driver for logical drive
  54933. 1 protected-mode driver in use for physical drive corresponding to the
  54934. logical drive
  54935. 2 drive available only in protected mode
  54936. 3 protected-mode drive supports media ejection
  54937. 4 drive issues media insertion and removal notifications
  54938. SeeAlso: #01570
  54939. Format of parameter block for function 73h:
  54940. Offset Size Description (Table 01572)
  54941. 00h BYTE ???
  54942. 00h ATA card inserted ???
  54943. 80h ATA card not inserted ???
  54944. 01h BYTE length of parameter block ???
  54945. apparently always 40h
  54946. 02h BYTE ???
  54947. 00h ATA card not inserted ???
  54948. 0Dh ATA card inserted ???
  54949. 03h 2 BYTEs ??? (apparently always 00h)
  54950. 05h BYTE drive number (0=first) ???
  54951. 06h BYTE total number of drives ???
  54952. 07h BYTE ???
  54953. 00h ATA card not inserted ???
  54954. 01h ATA card inserted ???
  54955. 08h 17 BYTEs ???
  54956. 19h BYTE ???
  54957. 00h ATA card not inserted ???
  54958. 01h ATA card inserted ???
  54959. 1Ah BYTE ??? (apparently always 01h)
  54960. 1Bh BYTE ???
  54961. 00h ATA card not inserted ???
  54962. 01h ATA card inserted ???
  54963. 1Ch 2 BYTEs ??? (apparently always 0015h)
  54964. 1Eh 2 BYTEs ???
  54965. 20h 2 BYTEs ??? (apparently always 0110h)
  54966. 22h 15 BYTEs ???
  54967. 31h 2 BYTEs ??? (apparently always 7000h)
  54968. 33h 11 BYTEs driver signature
  54969. "AWARD PDISK" for Award PCDISK.EXE PCMCIA/ATA driver
  54970. "MS-BIOS " for HP 200LX generic ATA driver
  54971. 3Eh 2 BYTEs ???
  54972. Notes: parameter structure possibly depends on driver
  54973. this function is not supported by the SystemSoft ATADRV.EXE and the
  54974. Phoenix PCMATA.SYS PCMCIA/ATA drivers
  54975. Format of parameter block for function 7Fh for SystemSoft ATADRV.EXE:
  54976. Offset Size Description (Table 01573)
  54977. 00h DWORD -> unknown location within driver
  54978. Note: function supported by the SystemSoft ATADRV.EXE PCMCIA/ATA driver
  54979. but not by the Award PCDISK.EXE PCMCIA/ATA driver
  54980. SeeAlso: #01574
  54981. Format of parameter block for function 7Fh for Phoenix PCMATA.SYS:
  54982. Offset Size Description (Table 01574)
  54983. 00h 8 BYTEs ???
  54984. Note: this function supported by the Phoenix PCMATA.SYS PCMCIA/ATA driver
  54985. but not by the Award PCDISK.EXE PCMCIA/ATA driver
  54986. SeeAlso: #01573
  54987. --------D-21440DCX084A-----------------------
  54988. INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - LOCK LOGICAL VOLUME
  54989. AX = 440Dh
  54990. CX = 084Ah (category code 08h, minor code 4Ah)
  54991. BL = drive number (01h=A:,02h=B:,etc)
  54992. BH = lock level (00h-04h)
  54993. DX = drive permissions (see #01575) for Level 1 lock or second
  54994. Level 0 lock when formatting
  54995. Return: CF set on error
  54996. AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h)
  54997. CF clear if successful
  54998. Notes: the logical volume must be locked before direct disk accesses are
  54999. permitted by Windows95/98
  55000. the commandline LOCK issues a level 4 lock
  55001. Windows98 only permits lock levels 0 and 4
  55002. BUG: Windows98 will return an error (invalid function) if the specified
  55003. drive number is zero or more than 32, but only allocated 26 bytes
  55004. for recording locks, so BL=1Bh..20h will trash internal data
  55005. structures
  55006. SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=084Bh,AX=440Dh/CX=086Ah
  55007. SeeAlso: AX=440Dh/CX=086Ch
  55008. Bitfields for drive permissions:
  55009. Bit(s) Description (Table 01575)
  55010. 0 allow writes
  55011. 1 disallow new file mappings
  55012. 2 volume locked for formatting
  55013. --------D-21440DCX084B-----------------------
  55014. INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - LOCK PHYSICAL VOLUME
  55015. AX = 440Dh
  55016. CX = 084Bh (category code 08h, minor code 4Bh)
  55017. BL = logical drive number (00h = default, 01h = A:, etc.)
  55018. BH = lock level (00h-03h)
  55019. DX = drive permissions (see #01575) for Level 1 lock or second
  55020. Level 0 lock when formatting
  55021. Return: CF set on error
  55022. AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h)
  55023. CF clear if successful
  55024. Desc: lock all logical volumes on the same physical volume as the indicated
  55025. drive
  55026. Note: the physical volume must be locked before direct disk writes via
  55027. INT 13 are permitted by Windows95
  55028. SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=084Ah,AX=440Dh/CX=086Bh
  55029. SeeAlso: AX=440Dh/CX=086Ch
  55030. --------D-21440DCX086A-----------------------
  55031. INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - UNLOCK LOGICAL VOLUME
  55032. AX = 440Dh
  55033. CX = 086Ah (category code 08h, minor code 6Ah)
  55034. BL = drive number (00h=default,01h=A:,etc)
  55035. Return: CF set on error
  55036. AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h)
  55037. CF clear if successful
  55038. Note: the logical volume must be locked before direct disk accesses via
  55039. INT 13 are permitted by Windows95
  55040. BUG: Windows98 will return an error (invalid function) if the specified
  55041. drive number is zero or more than 32, but only allocated 26 bytes
  55042. for recording locks, so BL=1Bh..20h will trash internal data
  55043. structures
  55044. SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=084Ah,AX=440Dh/CX=086Bh
  55045. --------D-21440DCX086B-----------------------
  55046. INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - UNLOCK PHYSICAL VOLUME
  55047. AX = 440Dh
  55048. CX = 086Bh (category code 08h, minor code 6Bh)
  55049. BL = logical drive number (00h = default, 01h = A:, etc.)
  55050. Return: CF set on error
  55051. AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h)
  55052. CF clear if successful
  55053. Desc: lock all logical volumes on the same physical volume as the indicated
  55054. drive
  55055. SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=084Bh,AX=440Dh/CX=086Ah
  55056. --------D-21440DCX086C-----------------------
  55057. INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - GET LOCK FLAG STATE
  55058. AX = 440Dh
  55059. CX = 086Ch (category code 08h, minor code 6Ch)
  55060. BL = drive number (00h=default,01h=A:,etc)
  55061. Return: CF set on error
  55062. AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h)
  55063. CF clear if successful
  55064. AX = access flag (see #01576)
  55065. SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=084Ah,AX=440Dh/CX=084Bh
  55066. SeeAlso: AX=440Dh/CX=0870h
  55067. (Table 01576)
  55068. Values for drive access flag:
  55069. 0000h no writes/file mappings since last call
  55070. 0001h write operation has occurred since last call
  55071. 0002h file mapping has occurred since last call
  55072. Note: function 6Ch resets the access flag every time it is called
  55073. --------D-21440DCX086D-----------------------
  55074. INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - ENUMERATE OPEN FILES
  55075. AX = 440Dh
  55076. CX = 086Dh (category code 08h, minor code 6Dh)
  55077. BL = drive number (00h=default,01h=A:,etc)
  55078. DS:DX -> buffer for ASCIZ pathname
  55079. SI = file index (0000h to number of open files-1)
  55080. DI = enumeration type (0000h all files, 0001h unmovable files)
  55081. Return: CF set on error
  55082. AX = error code (01h,02h,12h,etc.) (see #01680 at AH=59h/BX=0000h)
  55083. 0012h if file index is out of range
  55084. CF clear if successful
  55085. AX = file open mode (BX from AX=6C00h or AX=716Ch)
  55086. CX = file type (see #01577)
  55087. SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=084Ah,AX=440Dh/CX=086Ch
  55088. SeeAlso: AX=440Dh/CX=086Eh,AX=6C00h,AX=716Ch
  55089. (Table 01577)
  55090. Values for file type:
  55091. 0000h normal file
  55092. 0001h memory-mapped file (unmovable)
  55093. 0002h unmovable file
  55094. 0004h swap file
  55095. --------D-21440DCX086E-----------------------
  55096. INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - FIND SWAP FILE
  55097. AX = 440Dh
  55098. CX = 086Eh (category code 08h, minor code 6Eh)
  55099. BL = drive number (00h=default,01h=A:,etc)
  55100. DS:DX -> buffer for ASCIZ pathname
  55101. SI = file index
  55102. DI = enumeration type
  55103. Return: CF set on error
  55104. AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h)
  55105. CF clear if successful
  55106. AX = pager type
  55107. 0001h no pager
  55108. 0002h paging through MS-DOS
  55109. 0003h protected-mode pager
  55110. CX:BX = swap file size in 4K pages
  55111. SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=086Dh
  55112. --------D-21440DCX0870-----------------------
  55113. INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - GET CURRENT LOCK STATE
  55114. AX = 440Dh
  55115. CX = 0870h (category code 08h, minor code 70h)
  55116. BL = drive number (00h=default,01h=A:,etc)
  55117. Return: CF set on error
  55118. AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h)
  55119. CF clear if successful
  55120. AX = current lock level (0-3) or FFFFh if not locked
  55121. CX = lock permissions if AX<>FFFFh (see #01575)
  55122. SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=086Ch
  55123. --------D-21440DCX0871-----------------------
  55124. INT 21 - MS-DOS 7.0+ - GENERIC IOCTL - GET FIRST CLUSTER
  55125. AX = 440Dh
  55126. CX = 0871h (category code 08h, minor code 71h)
  55127. BX = filename character set (see #01578)
  55128. DS:DX -> ASCIZ pathname for file or directory
  55129. Return: CF set on error
  55130. AX = error code (01h,02h,etc.) (see #01680 at AH=59h/BX=0000h)
  55131. CF clear if successful
  55132. DX:AX = first cluster number
  55133. Note: this function finds any file or directory regardless of attributes,
  55134. except that it will not find volume labels
  55135. SeeAlso: AX=440Dh"DOS 3.2+",AX=440Dh/CX=086Ch,#01352
  55136. (Table 01578)
  55137. Values for character set:
  55138. 00h Windows ANSI
  55139. 01h current OEM character set
  55140. 02h Unicode
  55141. --------D-21440E-----------------------------
  55142. INT 21 - DOS 3.2+ - IOCTL - GET LOGICAL DRIVE MAP
  55143. AX = 440Eh
  55144. BL = drive number (00h=default,01h=A:,etc)
  55145. Return: CF set on error
  55146. AX = error code (01h,0Fh) (see #01680 at AH=59h/BX=0000h)
  55147. CF clear if successful
  55148. AL = 00h block device has only one logical drive assigned
  55149. 1..26 the last letter used to reference the drive (1=A:,etc)
  55150. Notes: DR DOS 3.41-5.0 DRIVER.SYS does not support drive mapping and thus
  55151. always returns AL=00h; Windows NT 4.0 also always returns AL=00h
  55152. in addition to the normal operation, if Stacker is installed, this
  55153. call also sets the volume number at offset 58h in the Stacker
  55154. device driver (DR DOS 3.41-5.0 only; use AX=4408h otherwise)
  55155. (see AX=4404h"Stacker",INT 25/AX=CDCDh)
  55156. SeeAlso: AX=4408h,AX=440Fh,INT 2F/AX=122Bh
  55157. --------D-21440F-----------------------------
  55158. INT 21 - DOS 3.2+ - IOCTL - SET LOGICAL DRIVE MAP
  55159. AX = 440Fh
  55160. BL = physical drive number (00h=default,01h=A:,etc))
  55161. Return: CF set on error
  55162. AX = error code (01h,0Fh) (see #01680 at AH=59h/BX=0000h)
  55163. CF clear if successful
  55164. drive now responds to next logical drive number
  55165. Notes: maps logical drives to physical drives, similar to DOS's treatment of
  55166. a single physical floppy drive as both A: and B:
  55167. DR DOS 3.41-5.0 DRIVER.SYS does not support drive mapping and thus
  55168. always returns an error on this function
  55169. SeeAlso: AX=440Eh,INT 2F/AX=122Bh
  55170. --------D-214410-----------------------------
  55171. INT 21 - DOS 5+ - IOCTL - QUERY GENERIC IOCTL CAPABILITY (HANDLE)
  55172. AX = 4410h
  55173. BX = handle for device
  55174. CH = category code (see #01545)
  55175. CL = function code (see #01546)
  55176. Return: CF clear if successful
  55177. AX = 0000h specified IOCTL function is supported
  55178. CF set on error
  55179. AL = 01h IOCTL capability not available
  55180. Note: a program which wishes to use Generic IOCTL calls beyond those in the
  55181. standard DOS 3.2 set may use this call first to see whether a
  55182. particular call is supported
  55183. SeeAlso: AX=440Ch,AX=440Dh"DOS 3.2+",AX=4411h
  55184. --------d-214410BXFFFF-----------------------
  55185. INT 21 U - NewSpace - ENABLE DRIVER
  55186. AX = 4410h
  55187. BX = FFFFh
  55188. Program: NewSpace is a TSR by Isogon Corporation which automatically compresses
  55189. all files as they are written and decompresses them as they are read
  55190. Note: compressed files are not accessible unless the driver is enabled
  55191. SeeAlso: AX=4411h/BX=FFFFh
  55192. --------D-214411-----------------------------
  55193. INT 21 - DOS 5+ - IOCTL - QUERY GENERIC IOCTL CAPABILITY (DRIVE)
  55194. AX = 4411h
  55195. BL = drive number
  55196. CH = category code (see #01558)
  55197. CL = function code (see #01559)
  55198. Return: CF clear if successful
  55199. AX = 0000h specified IOCTL function is supported
  55200. CF set on error
  55201. AL = 01h IOCTL capability not available
  55202. Note: a program which wishes to use Generic IOCTL calls beyond those in the
  55203. standard DOS 3.2 set may use this call first to see whether a
  55204. particular call is supported
  55205. SeeAlso: AX=440Ch,AX=440Dh"DOS 3.2+",AX=4410h
  55206. --------d-214411BXFFFF-----------------------
  55207. INT 21 U - NewSpace - DISABLE DRIVER
  55208. AX = 4411h
  55209. BX = FFFFh
  55210. Program: NewSpace is a TSR by Isogon Corporation which automatically compresses
  55211. all files as they are written and decompresses them as they are read
  55212. Note: compressed files are not accessible unless the driver is enabled
  55213. SeeAlso: AX=4410h/BX=FFFFh
  55214. --------O-214412-----------------------------
  55215. INT 21 O - DR DOS 5.0-6.0 - DETERMINE DOS TYPE
  55216. AX = 4412h
  55217. CF set
  55218. Return: CF set if not DR DOS
  55219. AX = error code (see #01680 at AH=59h/BX=0000h)
  55220. CF clear if DR DOS
  55221. DX = AX = version code (see #01580)
  55222. Note: this obsolete call, which is no longer supported in Novell DOS 7, is
  55223. identical to AX=4452h
  55224. SeeAlso: AX=4452h
  55225. --------d-214412BXFFFF-----------------------
  55226. INT 21 U - NewSpace - INSTALLATION CHECK???
  55227. AX = 4412h
  55228. BX = FFFFh
  55229. Return: AX = PSP segment of NewRes (resident driver for NewSpace)
  55230. BX:DX -> ???
  55231. CX = ???
  55232. SeeAlso: AX=4411h/BX=FFFFh
  55233. --------d-214413BXFFFF-----------------------
  55234. INT 21 U - NewSpace - GET ???
  55235. AX = 4413h
  55236. BX = FFFFh
  55237. Return: AX = code segment of NewRes (resident driver for NewSpace)
  55238. BX = offset of ???
  55239. SeeAlso: AX=4412h/BX=FFFFh
  55240. --------O-214414-----------------------------
  55241. INT 21 OU - DR DOS 5.0-6.0 - SET GLOBAL PASSWORD
  55242. AX = 4414h
  55243. DS:DX -> password string (blank-padded to 8 characters)
  55244. Desc: Specify the master password for accessing files.
  55245. Note: this obsolete call, which is no longer supported in Novell DOS 7, is
  55246. identical to AX=4454h
  55247. SeeAlso: AX=4454h
  55248. --------d-214414BXFFFF-----------------------
  55249. INT 21 U - NewSpace - DEBUGGING DUMP
  55250. AX = 4414h
  55251. BX = FFFFh
  55252. Return: debugging dump written to X:\NEWSPACE.SMP
  55253. SeeAlso: AX=4413h/BX=FFFFh,AX=44FFh/BX=FFFFh
  55254. --------O-214416-----------------------------
  55255. INT 21 OU - DR DOS 5.0-6.0 - HISTORY BUFFER, SHARE, AND HILOAD CONTROL
  55256. AX = 4416h to 4418h
  55257. Note: these obsolete subfunctions (which are no longer supported in Novell
  55258. DOS 7) are identical to AX=4456h through 4458h
  55259. SeeAlso: AX=4456h,AX=4457h,AX=4458h
  55260. --------O-214451-----------------------------
  55261. INT 21 - Concurrent DOS v3.2+ - INSTALLATION CHECK
  55262. AX = 4451h
  55263. Return: CF set if not Concurrent DOS
  55264. AX = error code (see #01680 at AH=59h/BX=0000h)
  55265. CF clear if successful
  55266. AH = single-user/multiuser nature (see #01581)
  55267. 10h single-user
  55268. AL = operating system version ID (see #01580)
  55269. 14h multiuser
  55270. AL = operating system version ID (see #01579)
  55271. Notes: as of Concurrent DOS/XM 5.0 (possibly earlier), the version is stored
  55272. in the environment variable VER
  55273. use this function if you are looking for multiuser capabilities,
  55274. AX=4452h for single-user
  55275. this function should never return the single-user values
  55276. SeeAlso: AX=4452h,AX=4459h
  55277. (Table 01579)
  55278. Values for Digital Research operating system version ID:
  55279. 32h Concurrent PC DOS 3.2
  55280. 41h Concurrent DOS 4.1
  55281. 50h Concurrent DOS/XM 5.0 or Concurrent DOS/386 1.1
  55282. 60h Concurrent DOS/XM 6.0 or Concurrent DOS/386 2.0
  55283. 62h Concurrent DOS/XM 6.2 or Concurrent DOS/386 3.0
  55284. 66h DR Multiuser DOS 5.1
  55285. 67h Concurrent DOS 5.1
  55286. SeeAlso: #01581,#04023
  55287. --------O-214452-----------------------------
  55288. INT 21 - DR DOS 3.41+ - DETERMINE DOS TYPE/GET DR DOS VERSION
  55289. AX = 4452h ("DR")
  55290. CF set
  55291. Return: CF set if not DR DOS
  55292. AX = error code (see #01680 at AH=59h/BX=0000h)
  55293. CF clear if DR DOS
  55294. AX = version code
  55295. AH = single-user/multiuser nature (see #01581)
  55296. 10h single-user
  55297. AL = operating system version ID (see #01580)
  55298. 14h multiuser
  55299. AL = operating system version ID (see #01579)
  55300. DX modified (refer to note below)
  55301. Notes: the DR DOS version is stored in the environment variable VER
  55302. use this function if looking for single-user capabilities, AX=4451h
  55303. if looking for multiuser; this call should never return multiuser
  55304. values
  55305. in DR DOS 3.41-6.0, DX=AX on return; for Novell DOS 7, DH=AH but DL=00h
  55306. (reportedly, DH=00h when booting NWDOS7 from installation disks)
  55307. Novell DOS 7 returns error code 0001h if SETVER x.255 is in effect for
  55308. the calling program, or SETVER /G x.255 is in effect
  55309. SeeAlso: AX=4412h,AX=4451h,AX=4459h
  55310. (Table 01580)
  55311. Values for Digital Research operating system version ID:
  55312. 41h DOS Plus 1.2
  55313. 60h DOS Plus 2.0 or 2.1
  55314. 63h DR DOS 3.41
  55315. 64h DR DOS 3.42
  55316. 65h DR DOS 5.0
  55317. 67h DR DOS 6.0
  55318. 70h PalmDOS
  55319. 71h DR DOS 6.0 March 1993 "business update"
  55320. 72h Novell DOS 7.0
  55321. 73h OpenDOS 7.02
  55322. SeeAlso: #01579,#01581,#04023
  55323. Bitfields for CP/M type indicator:
  55324. Bit(s) Description (Table 01581)
  55325. 7-4 CPU type
  55326. 0000 = 8080
  55327. 0001 = 8086
  55328. 3-0 OS type
  55329. 0000 = CP/M
  55330. 0001 = MP/M
  55331. 0002 = CP/Net
  55332. 0004 = multiuser
  55333. SeeAlso: #01580
  55334. --------O-214454-----------------------------
  55335. INT 21 U - DR DOS 3.41+ - SET GLOBAL PASSWORD
  55336. AX = 4454h
  55337. DS:DX -> password string (blank-padded to 8 characters)
  55338. Desc: Specify the master password for accessing files.
  55339. SeeAlso: AX=4303h,AX=4414h
  55340. --------O-214456-----------------------------
  55341. INT 21 U - DR DOS 5.0+ - HISTORY BUFFER CONTROL
  55342. AX = 4456h
  55343. DL = control flags (see #01582)
  55344. Return: AL = previous value of state flags (see #01583)
  55345. Note: DR DOS 6.0 only checks bit 0 and ignores the rest of DL
  55346. SeeAlso: #01584
  55347. Bitfields for control flags:
  55348. Bit(s) Description (Table 01582)
  55349. 0 whose buffer: 0=application, 1=COMMAND.COM
  55350. ---Novell DOS 7---
  55351. 1 toggle HISTORY usage
  55352. 2 toggle INSERT state
  55353. Note: only one bit at a time may be used
  55354. Bitfields for state flags:
  55355. Bit(s) Description (Table 01583)
  55356. 0 HISTORY buffer enabled
  55357. 1 INSERT enabled
  55358. 2-5 unused
  55359. 7 whose buffer: 0=application, 1=COMMAND.COM
  55360. --------O-214457-----------------------------
  55361. INT 21 U - DR DOS 5.0-6.0 - SHARE/HILOAD CONTROL
  55362. AX = 4457h
  55363. DH = subfunction
  55364. 00h enable/disable SHARE
  55365. DL = 00h disable
  55366. = 01h enable
  55367. else Return: AX = ???
  55368. 01h get HILOAD status
  55369. Return: AX = status
  55370. 0000h off
  55371. 0001h on
  55372. 02h set HILOAD status
  55373. DL = new state (00h off, 01h on)
  55374. Return: AX = ???
  55375. other
  55376. Return: AX = ???
  55377. Note: This was seen called by COMMAND.COM of DR DOS 6.0; it does not seem
  55378. to be supported by Novell DOS 7
  55379. SeeAlso: AX=4457h/DX=FFFFh
  55380. --------O-214457DXFFFF-----------------------
  55381. INT 21 OU - DR DOS 6.0 - GET SHARE STATUS
  55382. AX = 4457h
  55383. DX = FFFFh
  55384. Return: AX = SHARE status
  55385. Note: not supported by Novell DOS 7
  55386. SeeAlso: INT 2F/AX=1000h
  55387. --------O-214458-----------------------------
  55388. INT 21 U - DR DOS 5.0+ internal - GET POINTER TO INTERNAL VARIABLE TABLE
  55389. AX = 4458h
  55390. Return: ES:BX -> internal variable table (see #01584,#01585)
  55391. AX = ??? (0B50h for DR DOS 5.0, 0A56h for DR DOS 6.0, 0FE4h for
  55392. Novell DOS 7)
  55393. SeeAlso: AX=4452h
  55394. Format of DR DOS 5.0-6.0 internal variable table:
  55395. Offset Size Description (Table 01584)
  55396. 00h WORD ???
  55397. 02h WORD segment of ???
  55398. 04h WORD offset within DOS data segment of history control structure
  55399. for COMMAND.COM history buffer (see #01586)
  55400. 06h WORD offset within DOS data segment of history control structure
  55401. for application history buffer (see #01586)
  55402. 08h BYTE initial history state flags (see #01583)
  55403. 09h 2 BYTEs ???
  55404. 0Bh WORD KB of extended memory at startup
  55405. 0Dh BYTE number of far jump entry points
  55406. 0Eh WORD segment containing far jumps to DR DOS entry points (see #01587)
  55407. 10h WORD (only if kernel loaded in HMA) offset in HMA of first free HMA
  55408. memory block (see #01588) or 0000h if none; segment is FFFFh
  55409. 12h WORD pointer to segment of environment variables set in CONFIG,
  55410. or 0000h if already used
  55411. ---DR DOS 6.0---
  55412. 14h WORD (only if kernel loaded in HMA) offset in HMA of first used HMA
  55413. memory block (see #01588) or 0000h if none; segment is FFFFh
  55414. 16h 8 BYTEs ???
  55415. 1Eh WORD offset in DOS data segment of full COUNTRY.SYS filename
  55416. 20h 8 BYTEs ???
  55417. 28h WORD offset in DOS data segment of SHARE hook table
  55418. 2Ah 2 BYTEs ???
  55419. 2Ch WORD offset in DOS data segment of far pointer to INT 2F/AX=1000h
  55420. handler
  55421. Notes: the segment used for the DR DOS 6.0 CONFIG environment variables
  55422. (excluding COMSPEC, VER and OS) is only useful for programs/drivers
  55423. called from CONFIG.SYS. The word is set to zero later when the area
  55424. is copied to the COMMAND.COM environment space. This allows
  55425. CONFIG.SYS to pass information to AUTOEXEC.BAT.
  55426. the Novell DOS 7 KEYB uses offsets 10h,14h, and 2Ch in the same was
  55427. as for DR DOS 6.0, so it is likely that the entire table is the same
  55428. Format of Novell DOS 7 internal variable table:
  55429. Offset Size Description (Table 01585)
  55430. 00h ???
  55431. 1Eh WORD offset of COUNTRY.SYS filename
  55432. 42h 16 DWORDs pointers to ??? entry points
  55433. ???
  55434. Format of history control structure:
  55435. Offset Size Description (Table 01586)
  55436. 00h WORD segment of buffer
  55437. 02h WORD size of buffer in bytes
  55438. 04h WORD ???
  55439. Format of kernel entry jump table for DR DOS 5.0-6.0:
  55440. Offset Size Description (Table 01587)
  55441. 00h 5 BYTEs far jump to kernel entry point for CP/M CALL 5
  55442. 05h 5 BYTEs far jump to kernel entry point for INT 20
  55443. 0Ah 5 BYTEs far jump to kernel entry point for INT 21
  55444. 0Fh 5 BYTEs far jump to kernel entry point for INT 22 (RETF)
  55445. 14h 5 BYTEs far jump to kernel entry point for INT 23 (RETF)
  55446. 19h 5 BYTEs far jump to kernel entry point for INT 24
  55447. 1Eh 5 BYTEs far jump to kernel entry point for INT 25
  55448. 23h 5 BYTEs far jump to kernel entry point for INT 26
  55449. 28h 5 BYTEs far jump to kernel entry point for INT 27
  55450. 2Dh 5 BYTEs far jump to kernel entry point for INT 28
  55451. 32h 5 BYTEs far jump to kernel entry point for INT 2A (IRET)
  55452. 37h 5 BYTEs far jump to kernel entry point for INT 2B (IRET)
  55453. 3Ch 5 BYTEs far jump to kernel entry point for INT 2C (IRET)
  55454. 41h 5 BYTEs far jump to kernel entry point for INT 2D (IRET)
  55455. 46h 5 BYTEs far jump to kernel entry point for INT 2E (IRET)
  55456. 4Bh 5 BYTEs far jump to kernel entry point for INT 2F
  55457. Notes: all of these entry points are indirected through this jump table
  55458. to allow the kernel to be relocated into high memory while leaving
  55459. the actual entry addresses in low memory for maximum compatibility
  55460. some of these entry points (22h,23h,24h,2Eh,2Fh) are replaced as soon
  55461. as COMMAND.COM is loaded, and return immediately to the caller, some
  55462. returning an error code (the original handler for INT 2F returns
  55463. AL=03h [fail]).
  55464. Format of HMA Memory Block (DR DOS 6.0 kernel loaded in HMA):
  55465. Offset Size Description (Table 01588)
  55466. 00h WORD offset of next HMA Memory Block (0000h if last block)
  55467. 02h WORD size of this block in bytes (at least 10h)
  55468. 04h BYTE type of HMA Memory Block (interpreted by MEM)
  55469. 00h system
  55470. 01h KEYB
  55471. 02h NLSFUNC
  55472. 03h SHARE
  55473. 04h TaskMAX
  55474. 05h COMMAND
  55475. 05h var TSR (or system) code and data. DR DOS TSR's, such as KEYB,
  55476. hooks interrupts using segment FFFEh instead FFFFh.
  55477. --------O-214459-----------------------------
  55478. INT 21 - DR Multiuser DOS 5.0 - API
  55479. AX = 4459h
  55480. CL = function (see #04019 at INT E0"CP/M-86")
  55481. DS,DX = parameters
  55482. Notes: DR DOS 5.0 and Novell DOS 7 return CF set and AX=0001h
  55483. this API is also available on INT E0
  55484. SeeAlso: AX=4452h,INT E0"CP/M-86"
  55485. --------v-2144A0-----------------------------
  55486. INT 21 - VIRUS - "Horns" - INSTALLATION CHECK
  55487. AX = 44A0h
  55488. Return: AH = FFh if installed
  55489. SeeAlso: AX=4243h"VIRUS",AX=4B04h"VIRUS"
  55490. --------N-2144E0-----------------------------
  55491. INT 21 U - Sun PC-NFS - API???
  55492. AX = 44E0h
  55493. DS:DX -> ???
  55494. SS:BP -> stack frame (see #01589)
  55495. Return: ???
  55496. Note: this function is also supported by Beame&Whiteside's BWPCNFS shim; the
  55497. description presented here was derived from that shim
  55498. Format of PC-NFS stack frame:
  55499. Offset Size Description (Table 01589)
  55500. 00h WORD -> previous stack frame
  55501. 02h DWORD return address
  55502. --------d-2144FFBXFFFF-----------------------
  55503. INT 21 U - NewSpace - ???
  55504. AX = 44FFh
  55505. BX = FFFFh
  55506. DX = ???
  55507. Program: NewSpace is a TSR by Isogon Corporation which automatically compresses
  55508. all files as they are written and decompresses them as they are read
  55509. SeeAlso: AX=4414h/BX=FFFFh
  55510. --------D-2145-------------------------------
  55511. INT 21 - DOS 2+ - "DUP" - DUPLICATE FILE HANDLE
  55512. AH = 45h
  55513. BX = file handle
  55514. Return: CF clear if successful
  55515. AX = new handle
  55516. CF set on error
  55517. AX = error code (04h,06h) (see #01680 at AH=59h/BX=0000h)
  55518. Notes: moving file pointer for either handle will also move it for the other,
  55519. because both will refer to the same system file table
  55520. for DOS versions prior to 3.3, file writes may be forced to disk by
  55521. duplicating the file handle and closing the duplicate
  55522. SeeAlso: AH=3Dh,AH=46h
  55523. --------D-2146-------------------------------
  55524. INT 21 - DOS 2+ - "DUP2", "FORCEDUP" - FORCE DUPLICATE FILE HANDLE
  55525. AH = 46h
  55526. BX = file handle
  55527. CX = file handle to become duplicate of first handle
  55528. Return: CF clear if successful
  55529. CF set on error
  55530. AX = error code (04h,06h) (see #01680 at AH=59h/BX=0000h)
  55531. Notes: closes file with handle CX if it is still open
  55532. DOS 3.30 hangs if BX=CX on entry
  55533. moving file pointer for either handle will also move it for the other,
  55534. because both will refer to the same system file table
  55535. SeeAlso: AH=3Dh,AH=45h
  55536. --------D-2147-------------------------------
  55537. INT 21 - DOS 2+ - "CWD" - GET CURRENT DIRECTORY
  55538. AH = 47h
  55539. DL = drive number (00h = default, 01h = A:, etc)
  55540. DS:SI -> 64-byte buffer for ASCIZ pathname
  55541. Return: CF clear if successful
  55542. AX = 0100h (undocumented)
  55543. CF set on error
  55544. AX = error code (0Fh) (see #01680 at AH=59h/BX=0000h)
  55545. Notes: the returned path does not include a drive or the initial backslash
  55546. many Microsoft products for Windows rely on AX being 0100h on success
  55547. under the FlashTek X-32 DOS extender, the buffer pointer is in DS:ESI
  55548. SeeAlso: AH=19h,AH=3Bh,AH=71h,INT 15/AX=DE25h
  55549. --------D-2148-------------------------------
  55550. INT 21 - DOS 2+ - ALLOCATE MEMORY
  55551. AH = 48h
  55552. BX = number of paragraphs to allocate
  55553. Return: CF clear if successful
  55554. AX = segment of allocated block
  55555. CF set on error
  55556. AX = error code (07h,08h) (see #01680 at AH=59h/BX=0000h)
  55557. BX = size of largest available block
  55558. Notes: DOS 2.1-6.0 coalesces free blocks while scanning for a block to
  55559. allocate
  55560. .COM programs are initially allocated the largest available memory
  55561. block, and should free some memory with AH=49h before attempting any
  55562. allocations
  55563. under the FlashTek X-32 DOS extender, EBX contains a protected-mode
  55564. near pointer to the allocated block on a successful return
  55565. SeeAlso: AH=49h,AH=4Ah,AH=58h,AH=83h
  55566. --------D-2149-------------------------------
  55567. INT 21 - DOS 2+ - FREE MEMORY
  55568. AH = 49h
  55569. ES = segment of block to free
  55570. Return: CF clear if successful
  55571. CF set on error
  55572. AX = error code (07h,09h) (see #01680 at AH=59h/BX=0000h)
  55573. Notes: apparently never returns an error 07h, despite official docs; DOS 2.1+
  55574. code contains only an error 09h exit
  55575. DOS 2.1-6.0 does not coalesce adjacent free blocks when a block is
  55576. freed, only when a block is allocated or resized
  55577. the code for this function is identical in DOS 2.1-6.0 except for
  55578. calls to start/end a critical section in DOS 3.0+
  55579. SeeAlso: AH=48h,AH=4Ah
  55580. --------D-214A-------------------------------
  55581. INT 21 - DOS 2+ - RESIZE MEMORY BLOCK
  55582. AH = 4Ah
  55583. BX = new size in paragraphs
  55584. ES = segment of block to resize
  55585. Return: CF clear if successful
  55586. CF set on error
  55587. AX = error code (07h,08h,09h) (see #01680 at AH=59h/BX=0000h)
  55588. BX = maximum paragraphs available for specified memory block
  55589. Notes: under DOS 2.1-6.0, if there is insufficient memory to expand the block
  55590. as much as requested, the block will be made as large as possible
  55591. DOS 2.1-6.0 coalesces any free blocks immediately following the block
  55592. to be resized
  55593. SeeAlso: AH=48h,AH=49h,AH=83h
  55594. --------v-214A--BX00B6-----------------------
  55595. INT 21 - VIRUS???
  55596. AH = 4Ah
  55597. BX = 00B6h
  55598. ES = CX
  55599. Return: ???
  55600. Note: this call is intercepted by the Search&Destroy SDRes v27.03 bundled
  55601. with Novell DOS 7, and is presumably some virus's installation check
  55602. SeeAlso: AH=0Eh/DL=ADh,AH=4Ah/BX=FFFFh,AH=D2h"VIRUS"
  55603. --------v-214A--BXFFFF-----------------------
  55604. INT 21 - VIRUS???
  55605. AH = 4Ah
  55606. BX = FFFFh
  55607. CX = 0568h
  55608. SI = 0129h
  55609. DI = 0000h
  55610. ES = BP
  55611. Return: ???
  55612. Note: this call is intercepted by the Search&Destroy SDRes v27.03 bundled
  55613. with Novell DOS 7, and is presumably some virus's installation check
  55614. SeeAlso: AH=0Eh/DL=ADh,AH=4Ah/BX=00B6h
  55615. --------D-214B-------------------------------
  55616. INT 21 - DOS 2+ - "EXEC" - LOAD AND/OR EXECUTE PROGRAM
  55617. AH = 4Bh
  55618. AL = type of load
  55619. 00h load and execute
  55620. 01h load but do not execute
  55621. 03h load overlay (see #01591)
  55622. 04h load and execute in background (European MS-DOS 4.0 only)
  55623. "Exec & Go" (see also AH=80h)
  55624. DS:DX -> ASCIZ program name (must include extension)
  55625. ES:BX -> parameter block (see #01590,#01591,#01592)
  55626. CX = mode (subfunction 04h only)
  55627. 0000h child placed in zombie mode after termination
  55628. 0001h child's return code discarded on termination
  55629. Return: CF clear if successful
  55630. BX,DX destroyed
  55631. if subfunction 01h, process ID set to new program's PSP; get with
  55632. INT 21/AH=62h
  55633. CF set on error
  55634. AX = error code (01h,02h,05h,08h,0Ah,0Bh) (see #01680 at AH=59h)
  55635. Notes: DOS 2.x destroys all registers, including SS:SP
  55636. under ROM-based DOS, if no disk path characters (colons or slashes)
  55637. are included in the program name, the name is searched for in the
  55638. ROM module headers (see #01595) before searching on disk
  55639. for functions 00h and 01h, the calling process must ensure that there
  55640. is enough unallocated memory available; if necessary, by releasing
  55641. memory with AH=49h or AH=4Ah
  55642. for function 01h, the AX value to be passed to the child program is put
  55643. on top of the child's stack
  55644. for function 03h, DOS assumes that the overlay is being loaded into
  55645. memory allocated by the caller
  55646. function 01h was undocumented prior to the release of DOS 5.0
  55647. some versions (such as DR DOS 6.0) check the parameters and parameter
  55648. block and return an error if an invalid value (such as an offset of
  55649. FFFFh) is found
  55650. background programs under European MS-DOS 4.0 must use the new
  55651. executable format
  55652. this function ignores the filename extension, instead checking the
  55653. first two bytes of the file to determine whether there is a valid
  55654. .EXE header (see #01594); if not, the file is assumed to be in .COM
  55655. format. If present, the file may be in any of several formats which
  55656. are extensions of the original .EXE format (see #01593)
  55657. .COM-format executables begin running with the following register
  55658. values:
  55659. AL = 00h if first FCB has valid drive letter, FFh if not
  55660. AH = 00h if second FCB has valid drive letter, FFh if not
  55661. CS,DS,ES,SS = PSP segment
  55662. SP = offset of last word available in first 64K segment
  55663. (note: AX is always 0000h under DESQview)
  55664. old-format executables begin running with the following register
  55665. values:
  55666. AL = 00h if first FCB has valid drive letter, FFh if not
  55667. AH = 00h if second FCB has valid drive letter, FFh if not
  55668. DS,ES = PSP segment
  55669. SS:SP as defined in .EXE header
  55670. (note: AX is always 0000h under DESQview)
  55671. new executables begin running with the following register values
  55672. AX = environment segment
  55673. BX = offset of command tail in environment segment
  55674. CX = size of automatic data segment (0000h = 64K)
  55675. ES,BP = 0000h
  55676. DS = automatic data segment
  55677. SS:SP = initial stack
  55678. the command tail corresponds to an old executable's PSP:0081h and
  55679. following, except that the 0Dh is turned into a NUL (00h); new
  55680. format executables have no PSP
  55681. under the FlashTek X-32 DOS extender, only function 00h is supported
  55682. and the pointers are passed in DS:EDX and ES:EBX
  55683. DR DOS 6 always loads .EXE-format programs with no fixups and
  55684. .COM-format programs starting with 9Ch 55h (PUSHF/PUSH BP) above the
  55685. 64K mark to avoid the EXEPACK bug, by extending the memory block
  55686. containing the program's environment; this code is disabled if the
  55687. name of the parent program as stored in the MCB is 'WIN'.
  55688. DR DOS 3.41 and 5.0 check for a valid filename before testing the
  55689. subfunction number, so the otherwise invalid subfunction 02h will
  55690. only return error code 01h if the given filename actually exists;
  55691. otherwise, errors 02h, 03h, or 05h are returned
  55692. BUGS: DOS 2.00 assumes that DS points at the current program's PSP
  55693. Load Overlay (subfunction 03h) loads up to 512 bytes too many if the
  55694. file contains additional data after the actual overlay
  55695. Load but Do Not Execute (subfunction 01h) is reported to corrupt the
  55696. top word of the caller's stack if the loaded module terminates with
  55697. INT 21/AH=4Ch in some versions of MS-DOS, including v5.00.
  55698. SeeAlso: AX=4B05h,AH=4Ch,AH=4Dh,AH=64h/BX=0025h,AH=8Ah,INT 2E,INT 60/DI=0604h
  55699. Format of EXEC parameter block for AL=00h,01h,04h:
  55700. Offset Size Description (Table 01590)
  55701. 00h WORD segment of environment to copy for child process (copy caller's
  55702. environment if 0000h)
  55703. 02h DWORD pointer to command tail to be copied into child's PSP
  55704. 06h DWORD pointer to first FCB to be copied into child's PSP
  55705. 0Ah DWORD pointer to second FCB to be copied into child's PSP
  55706. 0Eh DWORD (AL=01h) will hold subprogram's initial SS:SP on return
  55707. 12h DWORD (AL=01h) will hold entry point (CS:IP) on return
  55708. SeeAlso: #01591,#01592
  55709. Format of EXEC parameter block for AL=03h:
  55710. Offset Size Description (Table 01591)
  55711. 00h WORD segment at which to load overlay
  55712. 02h WORD relocation factor to apply to overlay if in .EXE format
  55713. SeeAlso: #01590,#01592
  55714. Format of EXEC parameter block for FlashTek X-32:
  55715. Offset Size Description (Table 01592)
  55716. 00h PWORD 48-bit far pointer to environment string
  55717. 06h PWORD 48-bit far pointer to command tail string
  55718. SeeAlso: #01590,#01591
  55719. (Table 01593)
  55720. Values for the executable types understood by various environments:
  55721. MZ old-style DOS executable (see #01594)
  55722. NE Windows or OS/2 1.x segmented ("new") executable (see #01596)
  55723. LE Windows virtual device driver (VxD) linear executable (see #01609)
  55724. LX variant of LE used in OS/2 2.x (see #01609)
  55725. W3 Windows WIN386.EXE file; a collection of LE files
  55726. W4 Windows95 VMM32.VXD file
  55727. PE Win32 (Windows NT and Win32s) portable executable based on Unix COFF
  55728. DL HP 100LX/200LX system manager compliant executable (.EXM)
  55729. MP old PharLap .EXP (see #01619)
  55730. P2 PharLap 286 .EXP (see #01620)
  55731. P3 PharLap 386 .EXP (see #01620)
  55732. Format of .EXE file header:
  55733. Offset Size Description (Table 01594)
  55734. 00h 2 BYTEs .EXE signature, either "MZ" or "ZM" (5A4Dh or 4D5Ah)
  55735. (see also #01593)
  55736. 02h WORD number of bytes in last 512-byte page of executable
  55737. 04h WORD total number of 512-byte pages in executable (includes any
  55738. partial last page)
  55739. 06h WORD number of relocation entries
  55740. 08h WORD header size in paragraphs
  55741. 0Ah WORD minimum paragraphs of memory required to allocate in addition
  55742. to executable's size
  55743. 0Ch WORD maximum paragraphs to allocate in addition to executable's size
  55744. 0Eh WORD initial SS relative to start of executable
  55745. 10h WORD initial SP
  55746. 12h WORD checksum (one's complement of sum of all words in executable)
  55747. 14h DWORD initial CS:IP relative to start of executable
  55748. 18h WORD offset within header of relocation table
  55749. 40h or greater for new-format (NE,LE,LX,W3,PE,etc.) executable
  55750. 1Ah WORD overlay number (normally 0000h = main program)
  55751. ---new executable---
  55752. 1Ch 4 BYTEs ???
  55753. 20h WORD behavior bits
  55754. 22h 26 BYTEs reserved for additional behavior info
  55755. 3Ch DWORD offset of new executable (NE,LE,etc) header within disk file,
  55756. or 00000000h if plain MZ executable
  55757. ---Borland TLINK---
  55758. 1Ch 2 BYTEs ??? (apparently always 01h 00h)
  55759. 1Eh BYTE signature FBh
  55760. 1Fh BYTE TLINK version (major in high nybble, minor in low nybble)
  55761. 20h 2 BYTEs ??? (v2.0 apparently always 72h 6Ah, v3.0+ seems always 6Ah 72h)
  55762. ---ARJ self-extracting archive---
  55763. 1Ch 4 BYTEs signature "RJSX" (older versions, new signature is "aRJsfX" in
  55764. the first 1000 bytes of the file)
  55765. ---LZEXE 0.90 compressed executable---
  55766. 1Ch 4 BYTEs signature "LZ09"
  55767. ---LZEXE 0.91 compressed executable---
  55768. 1Ch 4 BYTEs signature "LZ91"
  55769. ---PKLITE compressed executable---
  55770. 1Ch BYTE minor version number
  55771. 1Dh BYTE bits 0-3: major version
  55772. bit 4: extra compression
  55773. bit 5: huge (multi-segment) file
  55774. 1Eh 6 BYTEs signature "PKLITE" (followed by copyright message)
  55775. ---LHarc 1.x self-extracting archive---
  55776. 1Ch 4 BYTEs unused???
  55777. 20h 3 BYTEs jump to start of extraction code
  55778. 23h 2 BYTEs ???
  55779. 25h 12 BYTEs signature "LHarc's SFX "
  55780. ---LHA 2.x self-extracting archive---
  55781. 1Ch 8 BYTEs ???
  55782. 24h 10 BYTEs signature "LHa's SFX " (v2.10) or "LHA's SFX " (v2.13)
  55783. ---TopSpeed C 3.0 CRUNCH compressed file---
  55784. 1Ch DWORD 018A0001h
  55785. 20h WORD 1565h
  55786. ---PKARCK 3.5 self-extracting archive---
  55787. 1Ch DWORD 00020001h
  55788. 20h WORD 0700h
  55789. ---BSA (Soviet archiver) self-extracting archive---
  55790. 1Ch WORD 000Fh
  55791. 1Eh BYTE A7h
  55792. ---LARC self-extracting archive---
  55793. 1Ch 4 BYTEs ???
  55794. 20h 11 BYTEs "SFX by LARC "
  55795. ---LH self-extracting archive---
  55796. 1Ch 8 BYTEs ???
  55797. 24h 8 BYTEs "LH's SFX "
  55798. ---RAR self-extracting archive---
  55799. 1Ch 4 BYTEs signature "RSFX"
  55800. ---other linkers---
  55801. 1Ch var optional information
  55802. ---
  55803. N N DWORDs relocation items
  55804. each is the segment:offset from start of load image at which
  55805. to add the actual load segment to the indicated WORD
  55806. Notes: if the word at offset 02h is 4, it should be treated as 00h, since
  55807. pre-1.10 versions of the MS linker set it that way
  55808. if both minimum and maximum allocation (offset 0Ah/0Ch) are zero, the
  55809. program is loaded as high in memory as possible (DOS only checks
  55810. the maximum allocation, however)
  55811. the maximum allocation is set to FFFFh by default
  55812. additional data may be contained in the file beyond the end of the
  55813. load image described by the .EXE header; this data may be overlays,
  55814. the actual executable for newer-format executables, or debugging
  55815. information (see #01600,#01624)
  55816. relocations entries need not be in any particular order, although they
  55817. are typically stored in order from beginning to end of the load
  55818. image
  55819. SeeAlso: #01596
  55820. Format of ROM Module Header:
  55821. Offset Size Description (Table 01595)
  55822. 00h 2 BYTEs ROM signature 55h, AAh
  55823. 02h BYTE size of ROM in 512-byte blocks
  55824. 03h 3 BYTEs POST initialization entry point (near JMP instruction)
  55825. 06h ROM Program Name List [array]
  55826. Offset Size Description
  55827. 00h BYTE length of ROM program's name (00h if end of name list)
  55828. 01h N BYTEs program name
  55829. N+1 3 BYTEs program entry point (near JMP instruction)
  55830. Format of new executable header:
  55831. Offset Size Description (Table 01596)
  55832. 00h 2 BYTEs "NE" (4Eh 45h) signature
  55833. 02h 2 BYTEs linker version (major, then minor)
  55834. 04h WORD offset from start of this header to entry table (see #01603)
  55835. 06h WORD length of entry table in bytes
  55836. 08h DWORD file load CRC (0 in Borland's TPW)
  55837. 0Ch BYTE program flags (see #01597)
  55838. 0Dh BYTE application flags (see #01598)
  55839. 0Eh WORD auto data segment index
  55840. 10h WORD initial local heap size
  55841. 12h WORD initial stack size (added to data seg, 0000h if SS <> DS)
  55842. 14h DWORD program entry point (CS:IP), "CS" is index into segment table
  55843. 18h DWORD initial stack pointer (SS:SP), "SS" is segment index
  55844. if SS=automatic data segment and SP=0000h, the stack pointer is
  55845. set to the top of the automatic data segment, just below the
  55846. local heap
  55847. 1Ch WORD segment count
  55848. 1Eh WORD module reference count
  55849. 20h WORD length of nonresident names table in bytes
  55850. 22h WORD offset from start of this header to segment table (see #01601)
  55851. 24h WORD offset from start of this header to resource table
  55852. 26h WORD offset from start of this header to resident names table
  55853. 28h WORD offset from start of this header to module reference table
  55854. 2Ah WORD offset from start of this header to imported names table
  55855. (array of counted strings, terminated with a string of length
  55856. 00h)
  55857. 2Ch DWORD offset from start of file to nonresident names table
  55858. 30h WORD count of moveable entry point listed in entry table
  55859. 32h WORD file alignment size shift count
  55860. 0 is equivalent to 9 (default 512-byte pages)
  55861. 34h WORD number of resource table entries
  55862. 36h BYTE target operating system
  55863. 00h unknown
  55864. 01h OS/2
  55865. 02h Windows
  55866. 03h European MS-DOS 4.x
  55867. 04h Windows 386
  55868. 05h BOSS (Borland Operating System Services)
  55869. 81h PharLap 286|DOS-Extender, OS/2
  55870. 82h PharLap 286|DOS-Extender, Windows
  55871. 37h BYTE other EXE flags (see #01599)
  55872. 38h WORD offset to return thunks or start of gangload area
  55873. 3Ah WORD offset to segment reference thunks or length of gangload area
  55874. 3Ch WORD minimum code swap area size
  55875. 3Eh 2 BYTEs expected Windows version (minor version first)
  55876. Note: this header is documented in detail in the Windows 3.1 SDK Programmer's
  55877. Reference, Vol 4.
  55878. SeeAlso: #01594
  55879. Bitfields for new executable program flags:
  55880. Bit(s) Description (Table 01597)
  55881. 0-1 DGROUP type
  55882. 0 = none
  55883. 1 = single shared
  55884. 2 = multiple (unshared)
  55885. 3 = (null)
  55886. 2 global initialization
  55887. 3 protected mode only
  55888. 4 8086 instructions
  55889. 5 80286 instructions
  55890. 6 80386 instructions
  55891. 7 80x87 instructions
  55892. Bitfields for new executable application flags:
  55893. Bit(s) Description (Table 01598)
  55894. 0-2 application type
  55895. 001 full screen (not aware of Windows/P.M. API)
  55896. 010 compatible with Windows/P.M. API
  55897. 011 uses Windows/P.M. API
  55898. 3 is a Family Application (OS/2)
  55899. 5 0=executable, 1=errors in image
  55900. 6 non-conforming program (valid stack is not maintained)
  55901. 7 DLL or driver rather than application
  55902. (SS:SP info invalid, CS:IP points at FAR init routine called with
  55903. AX=module handle which returns AX=0000h on failure, AX nonzero on
  55904. successful initialization)
  55905. Bitfields for other new .EXE flags:
  55906. Bit(s) Description (Table 01599)
  55907. 0 supports long filenames
  55908. 1 2.X protected mode
  55909. 2 2.X proportional font
  55910. 3 gangload area
  55911. Format of Codeview trailer (at end of executable):
  55912. Offset Size Description (Table 01600)
  55913. 00h WORD signature 4E42h ('NB')
  55914. 02h WORD Microsoft debug info version number
  55915. 04h DWORD Codeview header offset
  55916. SeeAlso: #01624
  55917. Format of new executable segment table record:
  55918. Offset Size Description (Table 01601)
  55919. 00h WORD offset in file (shift left by alignment shift to get byte offs)
  55920. 02h WORD length of image in file (0000h = 64K)
  55921. 04h WORD segment attributes (see #01602)
  55922. 06h WORD number of bytes to allocate for segment (0000h = 64K)
  55923. Note: the first segment table entry is entry number 1
  55924. SeeAlso: #01604
  55925. Bitfields for segment attributes:
  55926. Bit(s) Description (Table 01602)
  55927. 0 data segment rather than code segment
  55928. 1 unused???
  55929. 2 real mode
  55930. 3 iterated
  55931. 4 movable
  55932. 5 sharable
  55933. 6 preloaded rather than demand-loaded
  55934. 7 execute-only (code) or read-only (data)
  55935. 8 relocations (directly following code for this segment)
  55936. 9 debug info present
  55937. 10,11 80286 DPL bits
  55938. 12 discardable
  55939. 13-15 discard priority
  55940. Format of new executable entry table item (list):
  55941. Offset Size Description (Table 01603)
  55942. 00h BYTE number of entry points (00h if end of entry table list)
  55943. 01h BYTE segment number (00h if end of entry table list)
  55944. 02h 3N BYTEs entry records
  55945. Offset Size Description
  55946. 00h BYTE flags
  55947. bit 0: exported
  55948. bit 1: single data
  55949. bits 2-7: unused???
  55950. 01h WORD offset within segment
  55951. Format of new executable relocation data (immediately follows segment image):
  55952. Offset Size Description (Table 01604)
  55953. 00h WORD number of relocation items
  55954. 02h 8N BYTEs relocation items
  55955. Offset Size Description
  55956. 00h BYTE relocation type
  55957. 00h LOBYTE
  55958. 02h BASE
  55959. 03h PTR
  55960. 05h OFFS
  55961. 0Bh PTR48
  55962. 0Dh OFFS32
  55963. 01h BYTE flags
  55964. bit 2: additive
  55965. 02h WORD offset within segment
  55966. 04h WORD target address segment
  55967. 06h WORD target address offset
  55968. SeeAlso: #01601,#01605
  55969. Format of new executable resource data:
  55970. Offset Size Description (Table 01605)
  55971. 00h WORD alignment shift count for resource data
  55972. 02h N RECORDs resources
  55973. Format of resource record:
  55974. Offset Size Description
  55975. 00h WORD type ID
  55976. 0000h if end of resource records
  55977. >= 8000h if integer type
  55978. else offset from start of resource table to type string
  55979. 02h WORD number of resources of this type
  55980. 04h DWORD reserved for runtime use
  55981. 08h N Resources (see #01606)
  55982. Note: resource type and name strings are stored immediately following the
  55983. resource table, and are not null-terminated
  55984. SeeAlso: #01606
  55985. Format of new executable resource entry:
  55986. Offset Size Description (Table 01606)
  55987. 00h WORD offset in alignment units from start of file to contents of
  55988. the resource data
  55989. 02h WORD length of resource image in bytes
  55990. 04h WORD flags
  55991. bit 4: moveable
  55992. bit 5: shareable
  55993. bit 6: preloaded
  55994. 06h WORD resource ID
  55995. >= 8000h if integer resource
  55996. else offset from start of resource table to resource string
  55997. 08h DWORD reserved for runtime use
  55998. Notes: resource type and name strings are stored immediately following the
  55999. resource table, and are not null-terminated
  56000. strings are counted strings, with a string of length 0 indicating the
  56001. end of the resource table
  56002. SeeAlso: #01605,#01607
  56003. Format of new executable module reference table [one bundle of entries]:
  56004. Offset Size Description (Table 01607)
  56005. 00h BYTE number of records in this bundle (00h if end of table)
  56006. 01h BYTE segment indicator
  56007. 00h unused
  56008. FFh movable segment, segment number is in entry
  56009. else segment number of fixed segment
  56010. 02h N RECORDs
  56011. Format of segment record
  56012. Offset Size Description
  56013. 00h BYTE flags
  56014. bit 0: entry is exported
  56015. bit 1: entry uses global (shared) data
  56016. bits 7-3: number of parameter words
  56017. ---fixed segment---
  56018. 01h WORD offset
  56019. ---moveable segment---
  56020. 01h 2 BYTEs INT 3F instruction (CDh 3Fh)
  56021. 03h BYTE segment number
  56022. 05h WORD offset
  56023. Note: table entries are numbered starting from 1
  56024. SeeAlso: #01608
  56025. Format of new executable resident/nonresident name table entry:
  56026. Offset Size Description (Table 01608)
  56027. 00h BYTE length of string (00h if end of table)
  56028. 01h N BYTEs ASCII text of string
  56029. N+1 WORD ordinal number (index into entry table)
  56030. Notes: the first string in the resident name table is the module name; the
  56031. first entry in the nonresident name table is the module description
  56032. the strings are case-sensitive; if the executable was linked with
  56033. /IGNORECASE, all strings are in uppercase
  56034. SeeAlso: #01607
  56035. Format of Linear Executable (enhanced mode executable) header:
  56036. Offset Size Description (Table 01609)
  56037. 00h 2 BYTEs "LE" (4Ch 45h) signature (Windows)
  56038. "LX" (4Ch 58h) signature (OS/2)
  56039. 02h BYTE byte order (00h = little-endian, nonzero = big-endian)
  56040. 03h BYTE word order (00h = little-endian, nonzero = big-endian)
  56041. 04h DWORD executable format level
  56042. 08h WORD CPU type (see also INT 15/AH=C9h)
  56043. 01h Intel 80286 or upwardly compatible
  56044. 02h Intel 80386 or upwardly compatible
  56045. 03h Intel 80486 or upwardly compatible
  56046. 04h Intel Pentium (80586) or upwardly compatible
  56047. 20h Intel i860 (N10) or compatible
  56048. 21h Intel "N11" or compatible
  56049. 40h MIPS Mark I (R2000, R3000) or compatible
  56050. 41h MIPS Mark II (R6000) or compatible
  56051. 42h MIPS Mark III (R4000) or compatible
  56052. 0Ah WORD target operating system
  56053. 01h OS/2
  56054. 02h Windows
  56055. 03h European DOS 4.0
  56056. 04h Windows 386
  56057. 0Ch DWORD module version
  56058. 10h DWORD module type (see #01610)
  56059. 14h DWORD number of memory pages
  56060. 18h Initial CS:EIP
  56061. DWORD object number
  56062. DWORD offset
  56063. 20h Initial SS:ESP
  56064. DWORD object number
  56065. DWORD offset
  56066. 28h DWORD memory page size
  56067. 2Ch DWORD (Windows LE) bytes on last page
  56068. (OS/2 LX) page offset shift count
  56069. 30h DWORD fixup section size
  56070. 34h DWORD fixup section checksum
  56071. 38h DWORD loader section size
  56072. 3Ch DWORD loader section checksum
  56073. 40h DWORD offset of object table (see #01611)
  56074. 44h DWORD object table entries
  56075. 48h DWORD object page map table offset (see #01613)
  56076. 4Ch DWORD object iterate data map offset
  56077. 50h DWORD resource table offset
  56078. 54h DWORD resource table entries
  56079. 58h DWORD resident names table offset (see #01614)
  56080. 5Ch DWORD entry table offset (see #01615,#01616)
  56081. 60h DWORD module directives table offset
  56082. 64h DWORD Module Directives entries
  56083. 68h DWORD Fixup page table offset
  56084. 6Ch DWORD Fixup record table offset (see #01618)
  56085. 70h DWORD imported modules name table offset
  56086. 74h DWORD imported modules count
  56087. 78h DWORD imported procedures name table offset
  56088. 7Ch DWORD per-page checksum table offset
  56089. 80h DWORD data pages offset
  56090. 84h DWORD preload page count
  56091. 88h DWORD non-resident names table offset
  56092. 8Ch DWORD non-resident names table length
  56093. 90h DWORD non-resident names checksum
  56094. 94h DWORD automatic data object
  56095. 98h DWORD debug information offset
  56096. 9Ch DWORD debug information length
  56097. A0h DWORD preload instance pages number
  56098. A4h DWORD demand instance pages number
  56099. A8h DWORD extra heap allocation
  56100. ACh 12 BYTEs reserved
  56101. B8h DWORD offset of VERSIONINFO resource (MS-Windows VxD only)
  56102. BCh DWORD pointer to ??? (dynamically-loadable VxDs only???)
  56103. C0h WORD device ID (MS-Windows VxD only)
  56104. C2h WORD DDK version (MS-Windows VxD only)
  56105. Note: used by EMM386.EXE, QEMM, and Windows 3.0 Enhanced Mode drivers
  56106. Bitfields for Linear Executable module type:
  56107. Bit(s) Description (Table 01610)
  56108. 2 initialization (only for DLLs) 0 = global, 1 = per-process
  56109. 4 no internal fixups in executable image
  56110. 5 no external fixups in executable image
  56111. 8-10 API compatibility
  56112. 0 = unknown
  56113. 1 = incompatible with PM windowing \
  56114. 2 = compatible with PM windowing > (only for
  56115. 3 = uses PM windowing API / programs)
  56116. 13 module not loadable (only for programs)
  56117. 15-17 module type
  56118. 000 program
  56119. 001 library (DLL)
  56120. 011 protected memory library module
  56121. 100 physical device driver
  56122. 110 virtual device driver
  56123. 30 per-process library termination
  56124. (requires valid CS:EIP, can't be set for .EXE)
  56125. Format of object table entry:
  56126. Offset Size Description (Table 01611)
  56127. 00h DWORD virtual size in bytes
  56128. 04h DWORD relocation base address
  56129. 08h DWORD object flags (see #01612)
  56130. 0Ch DWORD page map index
  56131. 10h DWORD page map entries (see #01613)
  56132. 14h 4 BYTEs reserved??? (apparently always zeros)
  56133. Bitfields for object flags:
  56134. Bit(s) Description (Table 01612)
  56135. 0 readable
  56136. 1 writable
  56137. 2 executable
  56138. 3 resource
  56139. 4 discardable
  56140. 5 shared
  56141. 6 preloaded
  56142. 7 invalid
  56143. 8-9 type
  56144. 00 normal
  56145. 01 zero-filled
  56146. 10 resident
  56147. 11 resident and contiguous
  56148. 10 resident and long-lockable
  56149. 11 reserved
  56150. 12 16:16 alias required
  56151. 13 "BIG" (Huge: 32-bit)
  56152. 14 conforming
  56153. 15 "OBJECT_I/O_PRIVILEGE_LEVEL"
  56154. 16-31 reserved
  56155. Format of object page map table entry:
  56156. Offset Size Description (Table 01613)
  56157. 00h BYTE ??? (usually 00h)
  56158. 01h WORD (big-endian) index to fixup table
  56159. 0000h if no relocation info
  56160. 03h BYTE type (00h hard copy in file, 03h some relocation needed)
  56161. Format of resident names table entry:
  56162. Offset Size Description (Table 01614)
  56163. 00h BYTE length of name
  56164. 01h N BYTEs name
  56165. N+1 3 BYTEs ???
  56166. Format of LE linear executable entry table:
  56167. Offset Size Description (Table 01615)
  56168. 00h BYTE number of entries in table
  56169. 01h 10 BYTEs per entry
  56170. Offset Size Description
  56171. 00h BYTE bit flags
  56172. bit 0: non-empty bundle
  56173. bit 1: 32-bit entry
  56174. 01h WORD object number
  56175. 03h BYTE entry type flags
  56176. bit 0: exported
  56177. bit 1: uses single data rather than instance
  56178. bit 2: reserved
  56179. bits 3-7: number of stack parameters
  56180. 04h DWORD offset of entry point
  56181. 08h 2 BYTEs ???
  56182. Note: empty bundles (bit flags at 00h = 00h) are used to skip unused indices,
  56183. and do not contain the remaining nine bytes
  56184. Format of LX linear executable entry table [array]:
  56185. Offset Size Description (Table 01616)
  56186. 00h BYTE number of bundles following (00h = end of entry table)
  56187. 01h BYTE bundle type
  56188. 00h empty
  56189. 01h 16-bit entry
  56190. 02h 286 callgate entry
  56191. 03h 32-bit entry
  56192. 04h forwarder entry
  56193. bit 7 set if additional parameter typing information is present
  56194. ---bundle type 00h---
  56195. no additional fields
  56196. ---bundle type 01h---
  56197. 02h WORD object number
  56198. 04h BYTE entry flags
  56199. bit 0: exported
  56200. bits 7-3: number of stack parameters
  56201. 05h WORD offset of entry point in object (shifted by page size shift)
  56202. ---bundle type 02h---
  56203. 02h WORD object number
  56204. 04h BYTE entry flags
  56205. bit 0: exported
  56206. bits 7-3: number of stack parameters
  56207. 05h WORD offset of entry point in object
  56208. 07h WORD reserved for callgate selector (used by loader)
  56209. ---bundle type 03h---
  56210. 02h WORD object number
  56211. 04h BYTE entry flags
  56212. bit 0: exported
  56213. bits 7-3: number of stack parameters
  56214. 05h DWORD offset of entry point in object
  56215. ---bundle type 04h---
  56216. 02h WORD reserved
  56217. 04h BYTE forwarder flags
  56218. bit 0: import by ordinal
  56219. bits 7-1 reserved
  56220. 05h WORD module ordinal
  56221. (forwarder's index into Import Module Name table)
  56222. 07h DWORD procedure name offset or import ordinal number
  56223. Note: all fields after the first two bytes are repeated N times
  56224. Bitfields for linear executable fixup type:
  56225. Bit(s) Description (Table 01617)
  56226. 7 ordinal is BYTE rather than WORD
  56227. 6 16-rather than 8-object number/module ordinal
  56228. 5 addition with DWORD rather than WORD
  56229. 4 relocation info has size with new two bytes at end
  56230. 3 reserved (0)
  56231. 2 set if add to destination, clear to replace destination
  56232. 1-0 type
  56233. 00 internal fixup
  56234. 01 external fixup, imported by ordinal
  56235. 10 external fixup, imported by name
  56236. 11 internal fixup via entry table
  56237. Format of linear executable fixup record:
  56238. Offset Size Description (Table 01618)
  56239. 00h BYTE type
  56240. bits 7-4: modifier (0001 single, 0011 multiple)
  56241. bits 3-0: type
  56242. 0000 byte offset
  56243. 0010 word segment
  56244. 0011 16-bit far pointer (DWORD)
  56245. 0101 16-bit offset
  56246. 0110 32-bit far pointer (PWORD)
  56247. 0111 32-bit offset
  56248. 1000 near call or jump, WORD/DWORD based on seg attrib
  56249. 01h BYTE linear executable fixup type (see #01617)
  56250. ---if single type---
  56251. 02h WORD offset within page
  56252. 04h relocation information
  56253. ---internal fixup---
  56254. BYTE object number
  56255. ---external,ordinal---
  56256. BYTE one-based module number in Import Module table
  56257. BYTE/WORD ordinal number
  56258. WORD/DWORD value to add (only present if modifier bit 4 set)
  56259. ---external,name---
  56260. BYTE one-based module number in Import Module table
  56261. WORD offset in Import Procedure names
  56262. WORD/DWORD value to add (only present if modifier bit 4 set)
  56263. ---if multiple type---
  56264. 02h BYTE number of items
  56265. 03h var relocation info as for "single" type (above)
  56266. N WORDs offsets of items to relocate
  56267. Format of old Phar Lap .EXP file header:
  56268. Offset Size Description (Table 01619)
  56269. 00h 2 BYTEs "MP" (4Dh 50h) signature
  56270. 02h WORD remainder of image size / page size (page size = 512h)
  56271. 04h WORD size of image in pages
  56272. 06h WORD number of relocation items
  56273. 08h WORD header size in paragraphs
  56274. 0Ah WORD minimum number of extra 4K pages to be allocated at the end
  56275. of program, when it is loaded
  56276. 0Ch WORD maximum number of extra 4K pages to be allocated at the end
  56277. of program, when it is loaded
  56278. 0Eh DWORD initial ESP
  56279. 12h WORD word checksum of file
  56280. 14h DWORD initial EIP
  56281. 18h WORD offset of first relocation item
  56282. 1Ah WORD overlay number
  56283. 1Ch WORD ??? (wants to be 1)
  56284. SeeAlso: #01620
  56285. Format of new Phar Lap .EXP file header:
  56286. Offset Size Description (Table 01620)
  56287. 00h 2 BYTEs signature ("P2" for 286 .EXP executable, "P3" for 386 .EXP)
  56288. 02h WORD level (01h flat-model file, 02h multisegmented file)
  56289. 04h WORD header size
  56290. 06h DWORD file size in bytes
  56291. 0Ah WORD checksum
  56292. 0Ch DWORD offset of run-time parameters within file (see #01622)
  56293. 10h DWORD size of run-time parameters in bytes
  56294. 14h DWORD offset of relocation table within file
  56295. 18h DWORD size of relocation table in bytes
  56296. 1Ch DWORD offset of segment information table within file (see #01621)
  56297. 20h DWORD size of segment information table in bytes
  56298. 24h WORD size of segment information table entry in bytes
  56299. 26h DWORD offset of load image within file
  56300. 2Ah DWORD size of load image on disk
  56301. 2Eh DWORD offset of symbol table within file or 00000000h
  56302. 32h DWORD size of symbol table in bytes
  56303. 36h DWORD offset of GDT within load image
  56304. 3Ah DWORD size of GDT in bytes
  56305. 3Eh DWORD offset of LDT within load image
  56306. 42h DWORD size of LDT in bytes
  56307. 46h DWORD offset of IDT within load image
  56308. 4Ah DWORD size of IDT in bytes
  56309. 4Eh DWORD offset of TSS within load image
  56310. 52h DWORD size of TSS in bytes
  56311. 56h DWORD minimum number of extra bytes to be allocated at end of program
  56312. (level 1 executables only)
  56313. 5Ah DWORD maximum number of extra bytes to be allocated at end of program
  56314. (level 1 executables only)
  56315. 5Eh DWORD base load offset (level 1 executables only)
  56316. 62h DWORD initial ESP
  56317. 66h WORD initial SS
  56318. 68h DWORD initial EIP
  56319. 6Ch WORD initial CS
  56320. 6Eh WORD initial LDT
  56321. 70h WORD initial TSS
  56322. 72h WORD flags
  56323. bit 0: load image is packed
  56324. bit 1: 32-bit checksum is present
  56325. bits 4-2: type of relocation table
  56326. 74h DWORD memory requirements for load image
  56327. 78h DWORD 32-bit checksum (optional)
  56328. 7Ch DWORD size of stack segment in bytes
  56329. 80h 256 BYTEs reserved (0)
  56330. SeeAlso: #01619,#01623
  56331. Format of Phar Lap segment information table entry:
  56332. Offset Size Description (Table 01621)
  56333. 00h WORD selector number
  56334. 02h WORD flags
  56335. 04h DWORD base offset of selector
  56336. 08h DWORD minimum number of extra bytes to be allocated to the segment
  56337. Format of 386|DOS-Extender run-time parameters:
  56338. Offset Size Description (Table 01622)
  56339. 00h 2 BYTEs signature "DX" (44h 58h)
  56340. 02h WORD minimum number of real-mode params to leave free at run time
  56341. 04h WORD maximum number of real-mode params to leave free at run time
  56342. 06h WORD minimum interrupt buffer size in KB
  56343. 08h WORD maximum interrupt buffer size in KB
  56344. 0Ah WORD number of interrupt stacks
  56345. 0Ch WORD size in KB of each interrupt stack
  56346. 0Eh DWORD offset of byte past end of real-mode code and data
  56347. 12h WORD size in KB of call buffers
  56348. 14h WORD flags
  56349. bit 0: file is virtual memory manager
  56350. bit 1: file is a debugger
  56351. 16h WORD unprivileged flag (if nonzero, executes at ring 1, 2, or 3)
  56352. 18h 104 BYTEs reserved (0)
  56353. Format of Phar Lap repeat block header:
  56354. Offset Size Description (Table 01623)
  56355. 00h WORD byte count
  56356. 02h BYTE repeat string length
  56357. Format of Borland debugging information header (following load image):
  56358. Offset Size Description (Table 01624)
  56359. 00h WORD signature 52FBh
  56360. 02h WORD version ID
  56361. 04h DWORD size of name pool in bytes
  56362. 08h WORD number of names in name pool
  56363. 0Ah WORD number of type entries
  56364. 0Ch WORD number of structure members
  56365. 0Eh WORD number of symbols
  56366. 10h WORD number of global symbols
  56367. 12h WORD number of modules
  56368. 14h WORD number of locals (optional)
  56369. 16h WORD number of scopes in table
  56370. 18h WORD number of line-number entries
  56371. 1Ah WORD number of include files
  56372. 1Ch WORD number of segment records
  56373. 1Eh WORD number of segment/file correlations
  56374. 20h DWORD size of load image after removing uninitialized data and debug
  56375. information
  56376. 24h DWORD debugger hook; pointer into debugged program whose meaning
  56377. depends on program flags
  56378. 28h BYTE program flags
  56379. bit 0: case-sensitive link
  56380. bit 1: pascal overlay program
  56381. 29h WORD no longer used
  56382. 2Bh WORD size of data pool in bytes
  56383. 2Dh BYTE padding
  56384. 2Eh WORD size of following header extension (currently 00h, 10h, or 20h)
  56385. 30h WORD number of classes
  56386. 32h WORD number of parents
  56387. 34h WORD number of global classes (currently unused)
  56388. 36h WORD number of overloads (currently unused)
  56389. 38h WORD number of scope classes
  56390. 3Ah WORD number of module classes
  56391. 3Ch WORD number of coverage offsets
  56392. 3Eh DWORD offset relative to symbol base of name pool
  56393. 42h WORD number of browser information records
  56394. 44h WORD number of optimized symbol records
  56395. 46h WORD debugging flags
  56396. 48h 8 BYTEs padding
  56397. Note: additional information on the Borland debugging info may be found in
  56398. Borland's Open Architecture Handbook
  56399. SeeAlso: #01600
  56400. --------U-214B-------------------------------
  56401. INT 21 - ELRES v1.0 only - INSTALLATION CHECK
  56402. AH = 4Bh
  56403. DS:DX = 0000h:0000h
  56404. Return: ES:BX -> ELRES history structure (see #01381 at AH=2Bh/CX=454Ch)
  56405. DX = DABEh (signature, DAve BEnnett)
  56406. Program: ELRES is an MS-DOS return code (errorlevel) recorder by David H.
  56407. Bennett
  56408. SeeAlso: AH=2Bh/CX=454Ch
  56409. --------v-214B04-----------------------------
  56410. INT 21 - VIRUS - "MG", "699"/"Thirteen Minutes" - INSTALLATION CHECK
  56411. AX = 4B04h
  56412. Return: CF clear if "MG" resident
  56413. AX = 044Bh if "699"/"Thirteen Minutes" resident
  56414. SeeAlso: AX=4243h,AH=4Ah/BX=FFFFh,AX=4B21h
  56415. --------D-214B05-----------------------------
  56416. INT 21 - DOS 5+ - SET EXECUTION STATE
  56417. AX = 4B05h
  56418. DS:DX -> execution state structure (see #01625)
  56419. Return: CF clear if successful
  56420. AX = 0000h
  56421. CF set on error
  56422. AX = error code (see #01680 at AH=59h/BX=0000h)
  56423. Note: used by programs which intercept AX=4B00h to prepare new programs for
  56424. execution (including setting the DOS version number). No DOS, BIOS
  56425. or other software interrupt may be called after return from this call
  56426. before commencement of the child process. If DOS is running in the
  56427. HMA, A20 is turned off on return from this call.
  56428. SeeAlso: AH=4Bh
  56429. Format of execution state structure:
  56430. Offset Size Description (Table 01625)
  56431. 00h WORD reserved (00h)
  56432. 02h WORD type flags
  56433. bit 0: program is an .EXE
  56434. bit 1: program is an overlay
  56435. 04h DWORD pointer to ASCIZ name of program file
  56436. 08h WORD PSP segment of new program
  56437. 0Ah DWORD starting CS:IP of new program
  56438. 0Eh DWORD program size including PSP
  56439. ----------214B18DX0010-----------------------
  56440. INT 21 U - FBOOT v2.13 - PERFORM FAST BOOTSTRAP
  56441. AX = 4B18h
  56442. DX = 0010h
  56443. BX = disk selector
  56444. 0000h boot from floppy
  56445. 0080h boot from hard disk
  56446. Return: never if FastBoot installed
  56447. Program: CyberWare FastBoot allows fast warm boots by skipping CMOS
  56448. checking, ROM scan, RAM & peripheral components test
  56449. InstallCheck: search for a character device driver called "FBOOT$$$"
  56450. --------v-214B20-----------------------------
  56451. INT 21 - VIRUS - "Holocaust"/"Telefonica" - ???
  56452. AX = 4B20h
  56453. SeeAlso: AX=4B04h,AX=4B21h
  56454. --------v-214B21-----------------------------
  56455. INT 21 C - VIRUS - "Holocaust"/"Telefonica" - ???
  56456. AX = 4B21h
  56457. Note: called at completion of virus installation
  56458. SeeAlso: AX=4B04h,AX=4B20h,AX=4B25h
  56459. --------v-214B25-----------------------------
  56460. INT 21 - VIRUS - "1063"/"Mono" - INSTALLATION CHECK
  56461. AX = 4B25h
  56462. Return: DI = 1234h if resident
  56463. SeeAlso: AX=4B21h,AX=4B40h
  56464. --------v-214B40-----------------------------
  56465. INT 21 - VIRUS - "Plastique"/"AntiCad" - INSTALLATION CHECK
  56466. AX = 4B40h
  56467. Return: AX = 5678h if resident
  56468. SeeAlso: AX=4B25h,AX=4B41h,AX=4B4Ah
  56469. --------v-214B41-----------------------------
  56470. INT 21 - VIRUS - "Plastique"/"AntiCad" - ???
  56471. AX = 4B41h
  56472. ???
  56473. Return: ???
  56474. SeeAlso: AX=4B40h
  56475. --------v-214B4A-----------------------------
  56476. INT 21 - VIRUS - "Jabberwocky" - INSTALLATION CHECK
  56477. AX = 4B4Ah
  56478. Return: AL = 57h if resident
  56479. SeeAlso: AX=4B40h,AX=4B4Bh
  56480. --------v-214B4B-----------------------------
  56481. INT 21 - VIRUS - "Horse-2" - INSTALLATION CHECK
  56482. AX = 4B4Bh
  56483. Return: CF clear if resident
  56484. SeeAlso: AX=4B4Ah,AX=4B4Dh
  56485. --------v-214B4D-----------------------------
  56486. INT 21 - VIRUS - "Murphy-2", "Patricia"/"Smack" - INSTALLATION CHECK
  56487. AX = 4B4Dh
  56488. Return: CF clear if resident
  56489. SeeAlso: AX=4B4Ah,AX=4B50h
  56490. --------v-214B50-----------------------------
  56491. INT 21 - VIRUS - "Plastique-2576"/"AntiCad-2576" - INSTALLATION CHECK
  56492. AX = 4B50h
  56493. Return: AX = 1234h if resident
  56494. SeeAlso: AX=4B4Dh,AX=4B53h,AX=4B60h
  56495. --------v-214B53-----------------------------
  56496. INT 21 - VIRUS - "Horse" - INSTALLATION CHECK
  56497. AX = 4B53h
  56498. Return: CF clear if resident
  56499. SeeAlso: AX=4B50h,AX=4B53h/BX=2121h,AX=4B55h
  56500. --------v-214B53BX2121-----------------------
  56501. INT 21 - VIRUS - "One Half" - INSTALLATION CHECK
  56502. AX = 4B53h
  56503. BX = 2121h
  56504. CX = 1212h
  56505. DX = 0236h
  56506. Return: AX = 454Bh if installed
  56507. SeeAlso: AX=4B50h,AX=4B53h,AX=4B55h
  56508. --------v-214B55-----------------------------
  56509. INT 21 - VIRUS - "Sparse" - INSTALLATION CHECK
  56510. AX = 4B55h
  56511. Return: AX = 1231h if resident
  56512. SeeAlso: AX=4B53h,AX=4B59h
  56513. --------v-214B59-----------------------------
  56514. INT 21 - VIRUS - "Murphy-1", "Murphy-4" - INSTALLATION CHECK
  56515. AX = 4B59h
  56516. Return: CF clear if resident
  56517. SeeAlso: AX=4B50h,AX=4B5Eh
  56518. --------v-214B5E-----------------------------
  56519. INT 21 - VIRUS - "Brothers" - INSTALLATION CHECK
  56520. AX = 4B5Eh
  56521. Return: CF clear if resident
  56522. SeeAlso: AX=4B59h,AX=4B87h
  56523. --------v-214B60-----------------------------
  56524. INT 21 - VIRUS - "Plastique-2576"/"AntiCad-2576" - ???
  56525. AX = 4B60h
  56526. ???
  56527. Return: ???
  56528. SeeAlso: AX=4B50h
  56529. --------O-214B80-----------------------------
  56530. INT 21 - DR DOS v3.41 - RUN ALREADY-LOADED KERNEL FILE
  56531. AX = 4B80h
  56532. DS:DX -> ASCIZ name of program to EXEC
  56533. ES = segment of PSP for kernel file
  56534. Return: only if call failed
  56535. Note: DR DOS uses this call after an AX=4B01h to load the kernel file into
  56536. memory and patching the program's parent-PSP field to point at itself
  56537. SeeAlso: AH=4Bh"EXEC"
  56538. --------v-214B87-----------------------------
  56539. INT 21 - VIRUS - "Shirley" - INSTALLATION CHECK
  56540. AX = 4B87h
  56541. Return: AX = 6663h if resident
  56542. SeeAlso: AX=4B5Eh,AX=4B95h
  56543. --------v-214B95-----------------------------
  56544. INT 21 - VIRUS - "Zherkov-1882" - INSTALLATION CHECK
  56545. AX = 4B95h
  56546. Return: AX = 1973h if resident
  56547. SeeAlso: AX=4B87h,AX=4BA7h
  56548. --------v-214BA7-----------------------------
  56549. INT 21 - VIRUS - "1876"/"Dash-em" - INSTALLATION CHECK
  56550. AX = 4BA7h
  56551. Return: AX = B459h if resident
  56552. SeeAlso: AX=4B95h,AX=4BAAh
  56553. --------v-214BAA-----------------------------
  56554. INT 21 - VIRUS - "Nomenklatura" - INSTALLATION CHECK
  56555. AX = 4BAAh
  56556. Return: CF clear if resident
  56557. SeeAlso: AX=4BA7h,AX=4BAFh
  56558. --------v-214BAF-----------------------------
  56559. INT 21 - VIRUS - "948"/"Screenplus1", "Magnitogorsk" - INSTALLATION CHECK
  56560. AX = 4BAFh
  56561. Return: AL = AFh if "Magnitogorsk" resident
  56562. AL = FAh if "948"/"Screenplus1" resident
  56563. SeeAlso: AX=4BAAh,AX=4BB1h"VIRUS"
  56564. --------v-214BB1-----------------------------
  56565. INT 21 - VIRUS - "UZZY" -INSTALLATION CHECK
  56566. AX = 4BB1h
  56567. Return: CL = 04h if resident
  56568. SeeAlso: AX=4BAFh"VIRUS",AX=4BDDh"VIRUS"
  56569. --------v-214BDD-----------------------------
  56570. INT 21 - VIRUS - "Lozinsky"/"Zherkov" - INSTALLATION CHECK
  56571. AX = 4BDDh
  56572. Return: AX = 1234h
  56573. SeeAlso: AX=4BB1h"VIRUS",AX=4BFEh
  56574. --------v-214BEE-----------------------------
  56575. INT 21 - F-DRIVER.SYS v1.14+ - GRAB INT 21
  56576. AX = 4BEEh
  56577. Return: AX = status
  56578. 1234h grab was successful
  56579. 2345h failed (INT 21 grabbed previously)
  56580. Program: F-DRIVER.SYS is part of the shareware F-PROT virus/trojan protection
  56581. package by Fridrik Skulason
  56582. Note: when called the first time, this function moves the INT 21 monitoring
  56583. code from its original location in the INT 21 chain to be the first
  56584. thing called by INT 21. This is the mechanism used by F-NET.
  56585. SeeAlso: INT 2F/AX=4653h/CX=0002h,INT 2F/AX=4653h/CX=0007h
  56586. --------k-214BF0-----------------------------
  56587. INT 21 - DIET v1.10+ (Overlay Mode) - INSTALLATION CHECK
  56588. AX = 4BF0h
  56589. Return: CF clear if installed
  56590. AX = 899Dh
  56591. Program: DIET is an executable-compression program by Teddy Matsumoto
  56592. SeeAlso: AX=37D0h,AX=4BF1h
  56593. --------k-214BF1-----------------------------
  56594. INT 21 - DIET v1.10+ (Overlay Mode) - EXPAND PROGRAM???
  56595. AX = 4BF1h
  56596. Return: ???
  56597. SeeAlso: AX=37D0h,AX=4BF0h
  56598. --------v-214BF1-----------------------------
  56599. INT 21 - VIRUS - "Jerusalem 2" - INSTALLATION CHECK
  56600. AX = 4BF1h
  56601. Return: AX = 1FB4h if resident
  56602. SeeAlso: AH=3Fh/BX=FEB0h"VIRUS",AX=4BDDh"VIRUS",AX=4BFEh"VIRUS"
  56603. --------v-214BFE-----------------------------
  56604. INT 21 - VIRUS - "Hitchcock", "Dark Avenger-1028", "1193" - INSTALLATION CHECK
  56605. AX = 4BFEh
  56606. Return: AX = 1234h if "Hitchcock" or "Storm" resident
  56607. AX = ABCDh if "1193"/"Copyright" resident
  56608. DI = 55BBh if "Dark Avenger-1028" resident
  56609. SeeAlso: AX=4BDDh,AX=4BF1h"VIRUS",AX=4BFFh"Justice"
  56610. --------v-214BFF-----------------------------
  56611. INT 21 - VIRUS - "USSR-707", "Justice", "Europe 92" - INSTALLATION CHECK
  56612. AX = 4BFFh
  56613. Return: BL = FFh if "USSR-707" resident
  56614. DI = 55AAh if "Justice" resident
  56615. AX = 1234h if "Hitchcock.1238" resident
  56616. CF clear if "Europe 92" resident
  56617. SeeAlso: AX=4BFEh,AX=4BFFh"Cascade",AX=5252h
  56618. --------v-214BFFSI0000-----------------------
  56619. INT 21 - VIRUS - "Cascade" - INSTALLATION CHECK
  56620. AX = 4BFFh
  56621. SI = 0000h
  56622. DI = 0000h
  56623. Return: DI = 55AAh if installed
  56624. SeeAlso: AX=4BFFh"Justice",AX=5252h
  56625. --------D-214C-------------------------------
  56626. INT 21 - DOS 2+ - "EXIT" - TERMINATE WITH RETURN CODE
  56627. AH = 4Ch
  56628. AL = return code
  56629. Return: never returns
  56630. Notes: unless the process is its own parent
  56631. (see #01378 [offset 16h] at AH=26h), all open files are closed and
  56632. all memory belonging to the process is freed
  56633. all network file locks should be removed before calling this function
  56634. SeeAlso: AH=00h,AH=26h,AH=4Bh,AH=4Dh,INT 15/AH=12h/BH=02h,INT 20,INT 22
  56635. SeeAlso: INT 60/DI=0601h
  56636. --------m-214C57-----------------------------
  56637. INT 21 - Headroom - ???
  56638. AX = 4C57h
  56639. DS:DX -> target address
  56640. Note: jumps to target address instead of terminating program
  56641. SeeAlso: AX=5758h
  56642. --------D-214D-------------------------------
  56643. INT 21 - DOS 2+ - GET RETURN CODE (ERRORLEVEL)
  56644. AH = 4Dh
  56645. Return: AH = termination type
  56646. 00h normal (INT 20,INT 21/AH=00h, or INT 21/AH=4Ch)
  56647. 01h control-C abort
  56648. 02h critical error abort
  56649. 03h terminate and stay resident (INT 21/AH=31h or INT 27)
  56650. AL = return code
  56651. CF clear
  56652. Notes: the word in which DOS stores the return code is cleared after being
  56653. read by this function, so the return code can only be retrieved once
  56654. COMMAND.COM stores the return code of the last external command it
  56655. executed as ERRORLEVEL
  56656. this call should not be used if the child was started with AX=4B04h;
  56657. use AH=8Ah instead
  56658. the following sequence will close a Virtual DOS Machine under OS/2 2.0
  56659. through OS/2 Merlin (but may change in the future):
  56660. MOV AH,4Dh
  56661. INT 21h
  56662. HLT
  56663. DB 02h,0FDh
  56664. This sequence is the only way to close a specific VDM which was
  56665. booted from floppy or a disk image.
  56666. SeeAlso: AH=4Bh,AH=4Ch,AH=8Ah
  56667. --------D-214E-------------------------------
  56668. INT 21 - DOS 2+ - "FINDFIRST" - FIND FIRST MATCHING FILE
  56669. AH = 4Eh
  56670. AL = special flag for use by APPEND (refer to note below)
  56671. CX = file attribute mask (see #01420 at AX=4301h) (bits 0 and 5 ignored)
  56672. 0088h (Novell DOS 7) find first deleted file
  56673. DS:DX -> ASCIZ file specification (may include path and wildcards)
  56674. Return: CF clear if successful
  56675. Disk Transfer Area filled with FindFirst data block (see #01626)
  56676. CF set on error
  56677. AX = error code (02h,03h,12h) (see #01680 at AH=59h/BX=0000h)
  56678. Notes: for search attributes other than 08h, all files with at MOST the
  56679. specified combination of hidden, system, and directory attributes
  56680. will be returned. Under DOS 2.x, searching for attribute 08h
  56681. (volume label) will also return normal files, while under DOS 3.0+
  56682. only the volume label (if any) will be returned.
  56683. this call also returns successfully if given the name of a character
  56684. device without wildcards. DOS 2.x returns attribute 00h, size 0,
  56685. and the current date and time. DOS 3.0+ returns attribute 40h and
  56686. the current date and time.
  56687. immediately after an INT 2F/AX=B711h (APPEND return found name), the
  56688. name at DS:DX will be overwritten; if AL=00h on entry, the actual
  56689. found pathname will be stored, otherwise, the actual found path
  56690. will be prepended to the original filespec without a path.
  56691. under LANtastic, this call may be used to obtain a list of a server's
  56692. shared resources by searching for "\\SERVER\*.*"; a list of printer
  56693. resources may be obtained by searching for "\\SERVER\@*.*"
  56694. under the FlashTek X-32 DOS extender, the filespec pointer is in DS:EDX
  56695. BUGS: under DOS 3.x and 4.x, the second and subsequent calls to this function
  56696. with a character device name (no wildcards) and search attributes
  56697. which include the volume-label bit (08h) will fail unless there is
  56698. an intervening DOS call which implicitly or explicity performs a
  56699. directory search without the volume-label bit. Such implicit
  56700. searches are performed by CREATE (AH=3Ch), OPEN (AH=3Dh), UNLINK
  56701. (AH=41h), and RENAME (AH=56h)
  56702. DR DOS 3.41 and 5.0 return the Directory attribute for the volume label
  56703. SeeAlso: AH=11h,AH=4Fh,AX=4301h,AX=714Eh,AX=71A1h,AX=F257h/SF=02h
  56704. SeeAlso: INT 2F/AX=111Bh,INT 2F/AX=B711h
  56705. Format of FindFirst data block:
  56706. Offset Size Description (Table 01626)
  56707. ---PC-DOS 3.10, PC-DOS 4.01, MS-DOS 3.2/3.3/5.0---
  56708. 00h BYTE drive letter (bits 0-6), remote if bit 7 set
  56709. 01h 11 BYTEs search template
  56710. 0Ch BYTE search attributes
  56711. ---DOS 2.x (and some DOS 3.x???)---
  56712. 00h BYTE search attributes
  56713. 01h BYTE drive letter
  56714. 02h 11 BYTEs search template
  56715. ---WILDUNIX.COM---
  56716. 00h 12 BYTEs 15-character wildcard search pattern and drive letter (packed)
  56717. 0Ch BYTE search attributes
  56718. ---DOS 2.x and most 3.x---
  56719. 0Dh WORD entry count within directory
  56720. 0Fh DWORD pointer to DTA???
  56721. 13h WORD cluster number of start of parent directory
  56722. ---PC-DOS 4.01, MS-DOS 3.2/3.3/5.0---
  56723. 0Dh WORD entry count within directory
  56724. 0Fh WORD cluster number of start of parent directory
  56725. 11h 4 BYTEs reserved
  56726. ---OS/2 MVDM---
  56727. 00h WORD "OS2_BMP_handle"
  56728. 02h WORD "OS2_LastEnt"
  56729. 04h DWORD "OS2_Checksum"
  56730. 08h BYTE "OS2_usi_flag"
  56731. 09h DWORD used by DOS emulator for second pass for volume-label searches
  56732. 0Dh WORD (ret) "DOS_LastEnt" entry count within directory
  56733. 0Fh BYTE OS/2 Processed-FindFirst flag
  56734. 00h FindFirst processed by DOS
  56735. 42h FindFirst processed by OS/2
  56736. 10h 5 BYTEs reserved for future use
  56737. ---all versions, documented fields---
  56738. 15h BYTE attribute of file found
  56739. 16h WORD file time (see #01665 at AX=5700h)
  56740. 18h WORD file date (see #01666 at AX=5700h)
  56741. 1Ah DWORD file size
  56742. 1Eh 13 BYTEs ASCIZ filename+extension
  56743. --------f-214E-------------------------------
  56744. INT 21 - WILDUNIX.COM internal - INSTALLATION CHECK
  56745. AH = 4Eh
  56746. DS:DX = 0000h:0000h
  56747. Return: AH = 99h if installed
  56748. Program: WILDUNIX.COM is a resident Unix-style wildcard expander by Steve
  56749. Hosgood and Terry Barnaby
  56750. --------D-214F-------------------------------
  56751. INT 21 - DOS 2+ - "FINDNEXT" - FIND NEXT MATCHING FILE
  56752. AH = 4Fh
  56753. Disk Transfer Area contains data block from previous FindFirst or
  56754. FindNext call
  56755. Return: CF clear if successful
  56756. Disk Transfer Area updated
  56757. CF set on error
  56758. AX = error code (12h) (see #01680 at AH=59h/BX=0000h)
  56759. Notes: under Novell DOS 7, if the FindFirst call (AH=4Eh) had CX=0088h, then
  56760. the next matching deleted file will be returned
  56761. since the entire state of a FindFirst/FindNext sequence is contained
  56762. in the data block in the DTA, other disk operations such as renaming,
  56763. moving, deleting, or creating files can cause inaccurate directory
  56764. searches, such as finding the same file twice
  56765. BUG: DR DOS 3.41 and 5.0 return the Directory attribute for the volume label
  56766. SeeAlso: AH=12h,AH=4Eh,AX=714Fh,AX=71A1h
  56767. --------D-2150-------------------------------
  56768. INT 21 - DOS 2+ internal - SET CURRENT PROCESS ID (SET PSP ADDRESS)
  56769. AH = 50h
  56770. BX = segment of PSP for new process
  56771. Notes: DOS uses the current PSP address to determine which processes own files
  56772. and memory; it corresponds to process identifiers used by other OSs
  56773. under DOS 2.x, this function cannot be invoked inside an INT 28h
  56774. handler without setting the Critical Error flag
  56775. under MS-DOS 3.0+ and DR DOS 3.41+, this function does not use any of
  56776. the DOS-internal stacks and may thus be called at any time, even
  56777. during another INT 21h call
  56778. some Microsoft applications such as Quick C 2.51 use segments of 0000h
  56779. and FFFFh and direct access to the SDA (see #01687 at AX=5D06h) to
  56780. test whether they are running under MS-DOS rather than a compatible
  56781. OS; although one should only call this function with valid PSP
  56782. addresses, any program hooking it should be prepared to handle
  56783. invalid addresses
  56784. this function is supported by the OS/2 compatibility box
  56785. this call was undocumented prior to the release of DOS 5.0
  56786. SeeAlso: AH=26h,AH=51h,AH=62h
  56787. --------v-2150FD-----------------------------
  56788. INT 21 - VIRUS - "Predator 2" - INSTALLATION CHECK
  56789. AX = 50FDh
  56790. Return: AX = FD50h if resident
  56791. SeeAlso: AX=4BFFh"VIRUS",AX=5454h"VIRUS"
  56792. --------D-2151-------------------------------
  56793. INT 21 - DOS 2+ internal - GET CURRENT PROCESS ID (GET PSP ADDRESS)
  56794. AH = 51h
  56795. Return: BX = segment of PSP for current process
  56796. Notes: DOS uses the current PSP address to determine which processes own files
  56797. and memory; it corresponds to process identifiers used by other OSs
  56798. under DOS 2.x, this function cannot be invoked inside an INT 28h
  56799. handler without setting the Critical Error flag
  56800. under DOS 3.0+, this function does not use any of the DOS-internal
  56801. stacks and may thus be called at any time, even during another
  56802. INT 21h call
  56803. supported by OS/2 compatibility box
  56804. identical to the documented AH=62h
  56805. this call was undocumented prior to the release of DOS 5.0
  56806. SeeAlso: AH=26h,AH=50h,AH=62h
  56807. --------D-2152-------------------------------
  56808. INT 21 U - DOS 2+ internal - "SYSVARS" - GET LIST OF LISTS
  56809. AH = 52h
  56810. Return: ES:BX -> DOS list of lists (see #01627)
  56811. Notes: partially supported by OS/2 v1.1 compatibility box (however, most
  56812. pointers are FFFFh:FFFFh, LASTDRIVE is FFh, and the NUL header "next"
  56813. pointer is FFFFh:FFFFh).
  56814. partially supported by the Windows NT DOS box; contains only a
  56815. rudimentary Current Directory Structure (see #01645)
  56816. on return, ES points at the DOS data segment (see also INT 2F/AX=1203h)
  56817. Quarterdeck's suggested check for the use of its DOSDATA.SYS or
  56818. DOS-UP.SYS is to test whether the list-of-lists segment is greater
  56819. than the segment of the first memory block; a better check for
  56820. DOS-UP.SYS is INT 21/AX=2B01h/CX=444Dh
  56821. because not all DOS workalikes support all fields in the List of Lists,
  56822. applications should ensure that pointers are neither 0000h:0000h
  56823. nor FFFFh:FFFFh before using them
  56824. Windows for Workgroups 3.11 network and Windows95 set the path to
  56825. the local drive and directory even for network drives; in that
  56826. case the UNC form \\SERVER\SHARE can be obtained with
  56827. INT 21/AX=5F02h or INT 21/AX=5F46h. LapLink RemoteAccess does the
  56828. same even for INT 21/AX=5F02h
  56829. Windows95 GUI no longer returns the true path for a SUBSTed drive,
  56830. but MS-DOS 7.00 does; use INT 21/AH=60h to obtain the true name
  56831. SeeAlso: INT 2F/AX=1203h
  56832. Format of List of Lists:
  56833. Offset Size Description (Table 01627)
  56834. -24 WORD (DOS 3.1+) contents of CX from INT 21/AX=5E01h
  56835. -22 WORD (DOS ???+) LRU counter for FCB caching
  56836. -20 WORD (DOS ???+) LRU counter for FCB opens
  56837. -18 DWORD (DOS ???+) address of OEM function handler (see INT 21/AH=F8h)
  56838. FFFFh:FFFFh if not installed or not available
  56839. -14 WORD (DOS ???+) offset in DOS CS of code to return from INT 21 call
  56840. -12 WORD (DOS 3.1+) sharing retry count (see AX=440Bh)
  56841. -10 WORD (DOS 3.1+) sharing retry delay (see AX=440Bh)
  56842. -8 DWORD (DOS 3.0+) pointer to current disk buffer
  56843. -4 WORD (DOS 3.0+) pointer in DOS data segment of unread CON input
  56844. when CON is read via a handle, DOS reads an entire line,
  56845. and returns the requested portion, buffering the rest
  56846. for the next read. 0000h indicates no unread input
  56847. -2 WORD segment of first memory control block (see #01628)
  56848. 00h DWORD pointer to first Drive Parameter Block (see #01395 at AH=32h)
  56849. 04h DWORD -> first System File Table (see #01639,#01640,#01641,#01642)
  56850. 08h DWORD pointer to active CLOCK$ device's header (most recently loaded
  56851. driver with CLOCK bit set)
  56852. 0Ch DWORD pointer to active CON device's header (most recently loaded
  56853. driver with STDIN bit set)
  56854. ---DOS 2.x---
  56855. 10h BYTE number of logical drives in system
  56856. 11h WORD maximum bytes/block of any block device
  56857. 13h DWORD pointer to first disk buffer (see #01649,#01650)
  56858. 17h 18 BYTEs actual NUL device driver header (not a pointer!)
  56859. NUL is always the first device on DOS's linked list of device
  56860. drivers. (see #01646)
  56861. ---DOS 3.0---
  56862. 10h BYTE number of block devices
  56863. 11h WORD maximum bytes/block of any block device
  56864. 13h DWORD pointer to first disk buffer (see #01650,#01652)
  56865. 17h DWORD pointer to array of current directory structures (see #01643)
  56866. 1Bh BYTE value of LASTDRIVE command in CONFIG.SYS (default 5)
  56867. 1Ch DWORD pointer to STRING= workspace area
  56868. 20h WORD size of STRING area (the x in STRING=x from CONFIG.SYS)
  56869. 22h DWORD pointer to FCB table
  56870. 26h WORD the y in FCBS=x,y from CONFIG.SYS
  56871. 28h 18 BYTEs actual NUL device driver header (not a pointer!)
  56872. NUL is always the first device on DOS's linked list of device
  56873. drivers. (see #01646)
  56874. ---DOS 3.1-3.3---
  56875. 10h WORD maximum bytes per sector of any block device
  56876. 12h DWORD pointer to first disk buffer in buffer chain (see #01650)
  56877. 16h DWORD pointer to array of current directory structures (see #01643)
  56878. 1Ah DWORD pointer to system FCB tables (see #01640,#01641,#01642)
  56879. 1Eh WORD number of protected FCBs (the y in the CONFIG.SYS FCBS=x,y)
  56880. 20h BYTE number of block devices installed
  56881. 21h BYTE number of available drive letters (largest of 5, installed
  56882. block devices, and CONFIG.SYS LASTDRIVE=). Also size of
  56883. current directory structure array.
  56884. 22h 18 BYTEs actual NUL device driver header (not a pointer!)
  56885. NUL is always the first device on DOS's linked list of device
  56886. drivers. (see #01646)
  56887. 34h BYTE number of JOIN'ed drives
  56888. ---DOS 4.x---
  56889. 10h WORD maximum bytes per sector of any block device
  56890. 12h DWORD pointer to disk buffer info record (see #01652,#01653)
  56891. Note: although the initialization code in IO.SYS uses this
  56892. pointer, MSDOS.SYS does not, instead using the hardcoded
  56893. address of the info record
  56894. 16h DWORD pointer to array of current directory structures
  56895. (see #01643,#01644)
  56896. 1Ah DWORD pointer to system FCB tables (see #01640,#01641,#01642)
  56897. 1Eh WORD number of protected FCBs (the y in the CONFIG.SYS FCBS=x,y)
  56898. (always 00h for DOS 5.0)
  56899. 20h BYTE number of block devices installed
  56900. 21h BYTE number of available drive letters; also size of current
  56901. directory structure array.
  56902. For DOS 4.0-6.0: largest of 5, installed block devices,
  56903. and CONFIG.SYS LASTDRIVE=
  56904. For DOS 7.x (Windows9X), set to 32 if no LASTDRIVE= or
  56905. LASTDRIVEHIGH=, else set to larger of installed block
  56906. devices and LASTDRIVE(HIGH)=
  56907. 22h 18 BYTEs actual NUL device driver header (not a pointer!)
  56908. NUL is always the first device on DOS's linked list of device
  56909. drivers. (see #01646)
  56910. 34h BYTE number of JOIN'ed drives
  56911. 35h WORD pointer within IBMDOS code segment to list of special program
  56912. names (see #01662)
  56913. (always 0000h for DOS 5.0)
  56914. 37h DWORD pointer to FAR routine for resident IFS utility functions
  56915. (see #01658)
  56916. may be called by any IFS driver which does not wish to
  56917. service functions 20h or 24h-28h itself
  56918. 3Bh DWORD pointer to chain of IFS (installable file system) drivers
  56919. 3Fh WORD the x in BUFFERS x,y (rounded up to multiple of 30 if in EMS)
  56920. 41h WORD number of lookahead buffers (the y in BUFFERS x,y)
  56921. 43h BYTE boot drive (1=A:)
  56922. 44h BYTE flag: 01h to use DWORD moves (80386+), 00h otherwise
  56923. 45h WORD extended memory size in KB
  56924. ---DOS 5.0-6.0---
  56925. 10h 39 BYTEs as for DOS 4.x (above)
  56926. 37h DWORD pointer to SETVER program list or 0000h:0000h
  56927. 3Bh WORD (DOS=HIGH) offset in DOS CS of function to fix A20 control
  56928. when executing special .COM format
  56929. 3Dh WORD PSP of most-recently EXECed program if DOS in HMA, 0000h if low
  56930. used for maintaining count of INT 21 calls which disable A20
  56931. on return
  56932. 3Fh 8 BYTEs as for DOS 4.x (above)
  56933. ---Windows NT DOS Box---
  56934. 10h 6 BYTEs ???
  56935. 16h DWORD pointer to array of current directory structures (see #01645)
  56936. 1Ah 6 BYTEs ???
  56937. 20h BYTE number of block devices installed
  56938. 21h BYTE number of local drive letters (= installed block devices)
  56939. Also size of current directory structure array.
  56940. 22h 18 BYTEs actual NUL device driver header (not a pointer!)
  56941. NUL is always the first device on DOS's linked list of device
  56942. drivers. (see #01646)
  56943. ---DOS 7.x---
  56944. 10h 55 BYTEs as for DOS 5.0-6.0 (above)
  56945. 47h 25 BYTEs ???
  56946. 60h BYTE "DOS_FLAG" (see also INT 26)
  56947. Format of DOS memory control block:
  56948. Offset Size Description (Table 01628)
  56949. 00h BYTE block type: 5Ah if last block in chain, otherwise 4Dh
  56950. 01h WORD PSP segment of owner or special flag value (see #01629)
  56951. 03h WORD size of memory block in paragraphs
  56952. 05h 3 BYTEs unused by MS-DOS
  56953. (386MAX) if locked-out block, region start/prev region end
  56954. ---DOS 2.x,3.x---
  56955. 08h 8 BYTEs unused
  56956. ---DOS 4.0+ ---
  56957. 08h 8 BYTEs ASCII program name if PSP memory block or DR DOS UMB,
  56958. else garbage
  56959. null-terminated if less than 8 characters
  56960. Notes: the next MCB is at segment (current + size + 1)
  56961. under DOS 3.1+, the first memory block is the DOS data segment,
  56962. containing installable drivers, buffers, etc. Under DOS 4.0+ it is
  56963. divided into subsegments, each with its own memory control block
  56964. (see #01633), the first of which is at offset 0000h.
  56965. for DOS 5+, blocks owned by DOS may have either "SC" or "SD" in bytes
  56966. 08h and 09h. "SC" is system code or locked-out inter-UMB memory,
  56967. "SD" is system data, device drivers, etc.
  56968. Some versions of DR DOS use only seven characters of the program name,
  56969. placing a NUL in the eighth byte.
  56970. SeeAlso: #01630,#01632,#01633
  56971. (Table 01629)
  56972. Values for special flag PSP segments:
  56973. 0000h free
  56974. 0006h DR DOS XMS UMB
  56975. 0007h DR DOS excluded upper memory ("hole")
  56976. 0008h belongs to DOS
  56977. FFF7h 386MAX v6.01+ ???
  56978. FFFAh 386MAX UMB control block (see #01477 at AX=4402h"386MAX")
  56979. FFFDh 386MAX locked-out memory
  56980. FFFEh 386MAX UMB (normally immediately follows its control block)
  56981. FFFFh 386MAX v6.01+ device driver
  56982. Format of MS-DOS 5+ UMB control block:
  56983. Offset Size Description (Table 01630)
  56984. 00h BYTE type: 5Ah if last block in chain, 4Dh otherwise
  56985. 01h WORD first available paragraph in UMB if control block at start
  56986. of UMB, 000Ah if control block at end of UMB
  56987. 03h WORD length in paragraphs of following UMB or locked-out region
  56988. 05h 3 BYTEs unused
  56989. 08h 8 BYTEs block type name: "UMB" if start block, "SM" if end block in UMB
  56990. SeeAlso: #01628,#01631
  56991. Format of MS-DOS 7.0 HMA memory control block:
  56992. Offset Size Description (Table 01631)
  56993. 00h WORD signature "MS" (4Dh 53h)
  56994. 02h WORD usage flag???
  56995. 0000h free
  56996. else ???
  56997. 04h WORD size of memory block in bytes (not counting MCB)
  56998. 06h WORD offset of next memory block in HMA or 0000h
  56999. 08h 8 BYTEs unused (0)
  57000. SeeAlso: #01628,#01630,#01632
  57001. Format of STARLITE (General Software's Embedded DOS) memory control block:
  57002. Offset Size Description (Table 01632)
  57003. 00h BYTE block type: 5Ah if last block in chain, otherwise 4Dh
  57004. 01h WORD PSP segment of owner, 0000h if free, 0008h if belongs to DOS
  57005. 03h WORD size of memory block in paragraphs
  57006. 05h BYTE unused
  57007. 06h WORD segment address of next memory control block (0000h if last)
  57008. 08h WORD segment address of previous memory control block or 0000h
  57009. 0Ah 6 BYTEs reserved
  57010. Format of DOS 4.0+ data segment subsegment control blocks:
  57011. Offset Size Description (Table 01633)
  57012. 00h BYTE subsegment type (blocks typically appear in this order)
  57013. "D" device driver
  57014. "E" device driver appendage
  57015. "I" IFS (Installable File System) driver
  57016. (MS-DOS 7) high-loaded drive data table array (see #02603)
  57017. "F" FILES= control block storage area (for FILES>5)
  57018. "X" FCBS= control block storage area, if present
  57019. "C" BUFFERS EMS workspace area (if BUFFERS /X option used)
  57020. "B" BUFFERS= storage area
  57021. "L" LASTDRIVE= current directory structure array storage area
  57022. "S" STACKS= code and data area, if present (see #01634,#01635)
  57023. "T" INSTALL= transient code
  57024. 01h WORD paragraph of subsegment start (usually the next paragraph)
  57025. 03h WORD size of subsegment in paragraphs
  57026. 05h 3 BYTEs unused
  57027. 08h 8 BYTEs for types "D" and "I", base name of file from which the driver
  57028. was loaded (unused for other types)
  57029. Format of data at start of STACKS code segment (if present):
  57030. Offset Size Description (Table 01634)
  57031. 00h WORD ???
  57032. 02h WORD number of stacks (the x in STACKS=x,y)
  57033. 04h WORD size of stack control block array (should be 8*x)
  57034. 06h WORD size of each stack (the y in STACKS=x,y)
  57035. 08h DWORD pointer to STACKS data segment
  57036. 0Ch WORD offset in STACKS data segment of stack control block array
  57037. 0Eh WORD offset in STACKS data segment of last element of that array
  57038. 10h WORD offset in STACKS data segment of the entry in that array for
  57039. the next stack to be allocated (initially same as value in
  57040. 0Eh and works its way down in steps of 8 to the value in
  57041. 0Ch as hardware interrupts pre-empt each other)
  57042. Note: the STACKS code segment data may, if present, be located as follows:
  57043. DOS 3.2: The code segment data is at a paragraph boundary fairly early
  57044. in the IBMBIO segment (seen at 0070:0190h)
  57045. DOS 3.3: The code segment is at a paragraph boundary in the DOS data
  57046. segment, which may be determined by inspecting the segment
  57047. pointers of the vectors for those of interrupts 02h, 08h-0Eh,
  57048. 70h, 72-77h which have not been redirected by device drivers
  57049. or TSRs.
  57050. DOS 4.0+ Identified by sub-segment control block type "S" within the DOS
  57051. data segment.
  57052. SeeAlso: #01636,INT B4"STACKMAN"
  57053. Format of array elements in STACKS data segment:
  57054. Offset Size Description (Table 01635)
  57055. 00h BYTE status: 00h=free, 01h=in use, 03h=corrupted by overflow of
  57056. higher stack.
  57057. 01h BYTE not used
  57058. 02h WORD previous SP
  57059. 04h WORD previous SS
  57060. 06h WORD ptr to word at top of stack (new value for SP). The word at the
  57061. top of the stack is preset to point back to this control
  57062. block.
  57063. Format of SHARE.EXE hooks (DOS 3.1-6.00):
  57064. Offset Size Description (Table 01636)
  57065. (offsets from first system file table--pointed at by ListOfLists+04h)
  57066. -3Ch DWORD pointer to FAR routine for ???
  57067. Note: not called by MS-DOS 3.3, set to 0000h:0000h by
  57068. SHARE 3.3+
  57069. -38h DWORD pointer to FAR routine called on opening file
  57070. on call, internal DOS location points at filename
  57071. (see #01687 at AX=5D06h)
  57072. Return: CF clear if successful
  57073. CF set on error
  57074. AX = DOS error code (24h)
  57075. (see #01680 at AH=59h/BX=0000h)
  57076. Note: SHARE directly accesses DOS-internal data to get name of
  57077. file just opened
  57078. -34h DWORD pointer to FAR routine called on closing file
  57079. ES:DI -> system file table
  57080. Note: does something to every Record Lock Record for file
  57081. -30h DWORD pointer to FAR routine to close all files for given computer
  57082. (called by AX=5D03h)
  57083. -2Ch DWORD pointer to FAR routine to close all files for given process
  57084. (called by AX=5D04h)
  57085. -28h DWORD pointer to FAR routine to close file by name
  57086. (called by AX=5D02h)
  57087. DS:SI -> DOS parameter list (see #01686 at AX=5D00h)
  57088. DPL's DS:DX -> name of file to close
  57089. Return: CF clear if successful
  57090. CF set on error
  57091. AX = DOS error code (03h)
  57092. (see #01680 at AH=59h/BX=0000h)
  57093. -24h DWORD pointer to FAR routine to lock region of file
  57094. call with BX = file handle
  57095. ---DOS 3.x---
  57096. CX:DX = starting offset
  57097. SI:AX = size
  57098. ---DOS 4.0+ ---
  57099. DS:DX -> lock range
  57100. DWORD start offset
  57101. DWORD size in bytes
  57102. Return: CF set on error
  57103. AL = DOS error code (21h) (see #01680 at AH=59h)
  57104. Note: not called if file is marked as remote
  57105. -20h DWORD pointer to FAR routine to unlock region of file
  57106. call with BX = file handle
  57107. ---DOS 3.x---
  57108. CX:DX = starting offset
  57109. SI:AX = size
  57110. ---DOS 4.0+ ---
  57111. DS:DX -> lock range
  57112. DWORD start offset
  57113. DWORD size in bytes
  57114. Return: CF set on error
  57115. AL = DOS error code (21h) (see #01680 at AH=59h)
  57116. Note: not called if file is marked as remote
  57117. -1Ch DWORD pointer to FAR routine to check if file region is locked
  57118. call with ES:DI -> system file table entry for file
  57119. CX = length of region from current position in file
  57120. Return: CF set if any portion of region locked
  57121. AX = 0021h
  57122. -18h DWORD pointer to FAR routine to get open file list entry
  57123. (called by AX=5D05h)
  57124. call with DS:SI -> DOS parameter list (see #01686 at AX=5D00h)
  57125. DPL's BX = index of sharing record
  57126. DPL's CX = index of SFT in SFT chain of sharing rec
  57127. Return: CF set on error or not loaded
  57128. AX = DOS error code (12h) (see #01680 at AH=59h)
  57129. CF clear if successful
  57130. ES:DI -> filename
  57131. CX = number of locks owned by specified SFT
  57132. BX = network machine number
  57133. DX destroyed
  57134. -14h DWORD pointer to FAR routine for updating FCB from SFT???
  57135. call with DS:SI -> unopened FCB
  57136. ES:DI -> system file table entry
  57137. Return: BL = C0h???
  57138. Note: copies following fields from SFT to FCB:
  57139. starting cluster of file 0Bh 1Ah
  57140. sharing record offset 33h 1Ch
  57141. file attribute 04h 1Eh
  57142. -10h DWORD pointer to FAR routine to get first cluster of FCB file ???
  57143. call with ES:DI -> system file table entry
  57144. DS:SI -> FCB
  57145. Return: CF set if SFT closed or sharing record offsets
  57146. mismatched
  57147. CF clear if successful
  57148. BX = starting cluster number from FCB
  57149. -0Ch DWORD pointer to FAR routine to close file if duplicate for process
  57150. DS:SI -> system file table
  57151. Return: AX = number of handle in JFT which already uses SFT
  57152. Note: called during open/create of a file
  57153. Note: if SFT was opened with inheritance enabled and sharing
  57154. mode 111, does something to all other SFTs owned by
  57155. same process which have the same file open mode and
  57156. sharing record
  57157. -08h DWORD pointer to FAR routine for closing file
  57158. Note: closes various handles referring to file most-recently
  57159. opened
  57160. -04h DWORD pointer to FAR routine to update directory info in related SFT
  57161. entries
  57162. call with ES:DI -> system file table entry for file (see #01641)
  57163. AX = subfunction (apply to each related SFT)
  57164. 00h: update time stamp (offset 0Dh) and date
  57165. stamp (offset 0Fh)
  57166. 01h: update file size (offset 11h) and starting
  57167. cluster (offset 0Bh). Sets last-accessed
  57168. cluster fields to start of file if file
  57169. never accessed
  57170. 02h: as function 01h, but last-accessed fields
  57171. always changed
  57172. 03h: do both functions 00h and 02h
  57173. Note: follows ptr at offset 2Bh in system file table entries
  57174. Note: NOP if opened with no-inherit or via FCB
  57175. Notes: most of the above hooks (except -04h, -14h, -18h, and -3Ch) assume
  57176. either that SS=DOS DS or SS=DS=DOS DS and directly access
  57177. DOS-internal data
  57178. sharing hooks are not supported by DR DOS 5-6; they appear to be
  57179. supported by Novell DOS 7, with a segment of 0000h indicating the
  57180. DOS data segment
  57181. SeeAlso: #01637,#01638
  57182. Format of sharing record:
  57183. Offset Size Description (Table 01637)
  57184. 00h BYTE flag
  57185. 00h free block
  57186. 01h allocated block
  57187. FFh end marker
  57188. 01h WORD size of block
  57189. 03h BYTE checksum of pathname (including NUL)
  57190. if sum of ASCII values is N, checksum is (N/256 + N%256)
  57191. 04h WORD offset in SHARE's DS of first Record Lock Record (see #01638)
  57192. 06h DWORD pointer to start of system file table chain for file
  57193. 0Ah WORD unique sequence number
  57194. 0Ch var ASCIZ full pathname
  57195. Note: not supported by DR DOS SHARE 1.1 and 2.0; will reportedly be
  57196. supported by Novell DOS 7
  57197. SeeAlso: #01636,#01638
  57198. Format of SHARE.EXE Record Lock Record:
  57199. Offset Size Description (Table 01638)
  57200. 00h WORD offset in SHARE's DS of next lock table in list or 0000h
  57201. 02h DWORD offset in file of start of locked region
  57202. 06h DWORD offset in file of end of locked region
  57203. 0Ah DWORD pointer to System File Table entry for this file
  57204. 0Eh WORD PSP segment of lock's owner
  57205. ---DOS 5+ ---
  57206. 10h WORD lock type: (00h lock all, 01h lock writes only)
  57207. SeeAlso: #01636,#01637,#01639,#01642
  57208. Format of DOS 2.x system file tables:
  57209. Offset Size Description (Table 01639)
  57210. 00h DWORD pointer to next file table (offset FFFFh if last)
  57211. 04h WORD number of files in this table
  57212. 06h 28h bytes per file
  57213. Offset Size Description
  57214. 00h BYTE number of file handles referring to this file
  57215. 01h BYTE file open mode (see #01402 at AH=3Dh)
  57216. 02h BYTE file attribute
  57217. 03h BYTE drive (0 = character device, 1 = A, 2 = B, etc)
  57218. 04h 11 BYTEs filename in FCB format (no path,no period,blank-padded)
  57219. 0Fh WORD ???
  57220. 11h WORD ???
  57221. 13h DWORD file size???
  57222. 17h WORD file date in packed format (see #01666 at AX=5700h)
  57223. 19h WORD file time in packed format (see #01665 at AX=5700h)
  57224. 1Bh BYTE device attribute (see #01423 at AX=4400h)
  57225. ---character device---
  57226. 1Ch DWORD pointer to device driver
  57227. ---block device---
  57228. 1Ch WORD starting cluster of file
  57229. 1Eh WORD relative cluster in file of last cluster accessed
  57230. ------
  57231. 20h WORD absolute cluster number of current cluster
  57232. 22h WORD ???
  57233. 24h DWORD current file position???
  57234. SeeAlso: #01640,#01641,#01642
  57235. Format of DOS 3.0 system file tables and FCB tables:
  57236. Offset Size Description (Table 01640)
  57237. 00h DWORD pointer to next file table (offset FFFFh if last)
  57238. 04h WORD number of files in this table
  57239. 06h 38h bytes per file
  57240. Offset Size Description
  57241. 00h-1Eh as for DOS 3.1+ (see #01641)
  57242. 1Fh WORD byte offset of directory entry within sector
  57243. 21h 11 BYTEs filename in FCB format (no path/period, blank-padded)
  57244. 2Ch DWORD (SHARE.EXE) pointer to previous SFT sharing same file
  57245. 30h WORD (SHARE.EXE) network machine number which opened file
  57246. (Windows Enhanced mode DOSMGR uses the virtual machine
  57247. ID as the machine number; see INT 2F/AX=1683h)
  57248. 32h WORD PSP segment of file's owner (first three entries for
  57249. AUX/CON/PRN contain segment of IO.SYS startup code)
  57250. 34h WORD (SHARE.EXE) offset in SHARE code seg of share record
  57251. 36h WORD ??? apparently always 0000h
  57252. SeeAlso: #01639,#01641,#01642
  57253. Format of DOS 3.1-3.3x, DR DOS 5.0-6.0 system file tables and FCB tables:
  57254. Offset Size Description (Table 01641)
  57255. 00h DWORD pointer to next file table (offset FFFFh if last)
  57256. 04h WORD number of files in this table
  57257. 06h 35h bytes per file
  57258. Offset Size Description
  57259. 00h WORD number of file handles referring to this file
  57260. 02h WORD file open mode (see AX=6C00h, #01402 at AH=3Dh)
  57261. bit 15 set if this file opened via FCB
  57262. 04h BYTE file attribute (see #01420 at AX=4301h)
  57263. 05h WORD device info word (see #01423 at AX=4400h)
  57264. bit 15 set if remote file
  57265. bit 14 set means do not set file date/time on closing
  57266. bit 12 set means don't inherit on EXEC
  57267. bits 5-0 drive number for disk files
  57268. 07h DWORD pointer to device driver header if character device
  57269. else pointer to DOS Drive Parameter Block
  57270. (see #01395 at AH=32h)
  57271. 0Bh WORD starting cluster of file
  57272. 0Dh WORD file time in packed format (see #01665 at AX=5700h)
  57273. not used for character devices in DR DOS
  57274. 0Fh WORD file date in packed format (see #01666 at AX=5700h)
  57275. not used for character devices in DR DOS
  57276. 11h DWORD file size
  57277. ---system file table---
  57278. 15h DWORD current offset in file (may be larger than size of
  57279. file; INT 21/AH=42h does not check new position)
  57280. ---FCB table---
  57281. 15h WORD counter for last I/O to FCB
  57282. 17h WORD counter for last open of FCB
  57283. (these are separate to determine the times of the
  57284. latest I/O and open)
  57285. ---
  57286. 19h WORD relative cluster within file of last cluster accessed
  57287. 1Bh WORD absolute cluster number of last cluster accessed
  57288. 0000h if file never read or written???
  57289. 1Dh WORD number of sector containing directory entry
  57290. (see #01352)
  57291. 1Fh BYTE number of dir entry within sector (byte offset/32)
  57292. 20h 11 BYTEs filename in FCB format (no path/period, blank-padded)
  57293. 2Bh DWORD (SHARE.EXE) pointer to previous SFT sharing same file
  57294. 2Fh WORD (SHARE.EXE) network machine number which opened file
  57295. (Windows Enhanced mode DOSMGR uses the virtual machine
  57296. ID as the machine number; see INT 2F/AX=1683h)
  57297. 31h WORD PSP segment of file's owner (see #01378 at AH=26h)
  57298. (first three entries for AUX/CON/PRN contain segment
  57299. of IO.SYS startup code)
  57300. 33h WORD offset within SHARE.EXE code segment of
  57301. sharing record (see #01637) 0000h = none
  57302. SeeAlso: #01639,#01640,#01642
  57303. Format of DOS 4.0-6.0 system file tables and FCB tables:
  57304. Offset Size Description (Table 01642)
  57305. 00h DWORD pointer to next file table (offset FFFFh if last)
  57306. 04h WORD number of files in this table
  57307. 06h 3Bh bytes per file
  57308. Offset Size Description
  57309. 00h WORD number of file handles referring to this file
  57310. FFFFh if in use but not referenced
  57311. 02h WORD file open mode (see AX=6C00h,#01402 at AH=3Dh)
  57312. bit 15 set if this file opened via FCB
  57313. 04h BYTE file attribute (see #01420 at AX=4301h)
  57314. 05h WORD device info word (see also #01423 at AX=4400h)
  57315. bit 15 set if remote file
  57316. bit 14 set means do not set file date/time on closing
  57317. bit 13 set if named pipe
  57318. bit 12 set if no inherit
  57319. bit 11 set if network spooler
  57320. bit 7 set if device, clear if file (only if local)
  57321. bits 6-0 as for AX=4400h
  57322. 07h DWORD pointer to device driver header if character device
  57323. else pointer to DOS Drive Parameter Block
  57324. (see #01395 at AH=32h) or REDIR data
  57325. 0Bh WORD starting cluster of file (local files only)
  57326. not set for FAT32-capable versions of Windows95
  57327. (since they allow 32-bit cluster numbers)
  57328. 0Dh WORD file time in packed format (see #01665)
  57329. 0Fh WORD file date in packed format (see #01666)
  57330. 11h DWORD file size
  57331. 15h DWORD current offset in file (SFT)
  57332. LRU counters (FCB table, two WORDs)
  57333. ---local file---
  57334. 19h WORD relative cluster within file of last cluster accessed
  57335. 1Bh DWORD number of sector containing directory entry
  57336. 1Fh BYTE number of dir entry within sector (byte offset/32)
  57337. ---network redirector---
  57338. 19h DWORD pointer to REDIRIFS record
  57339. 1Dh 3 BYTEs ???
  57340. ------
  57341. 20h 11 BYTEs filename in FCB format (no path/period, blank-padded)
  57342. 2Bh DWORD (SHARE.EXE) pointer to previous SFT sharing same file
  57343. 2Fh WORD (SHARE.EXE) network machine number which opened file
  57344. (Windows Enhanced mode DOSMGR uses the virtual machine
  57345. ID as the machine number; see INT 2F/AX=1683h)
  57346. 31h WORD PSP segment of file's owner (see #01378 at AH=26h)
  57347. (first three entries for AUX/CON/PRN contain segment
  57348. of IO.SYS startup code)
  57349. 33h WORD offset within SHARE.EXE code segment of
  57350. sharing record (see #01595) 0000h = none
  57351. 35h WORD (local) absolute cluster number of last clustr accessed
  57352. (redirector) ???
  57353. 37h DWORD pointer to IFS driver for file, 0000000h if native DOS
  57354. Note: the OS/2 2.0 DOS Boot Session does not properly fill in the filename
  57355. field due to incomplete support for SFTs; the OS/2 2.0 DOS Window
  57356. does not appear to support SFTs at all
  57357. SeeAlso: #01639,#01640,#01641
  57358. Format of current directory structure (CDS) (array, LASTDRIVE entries):
  57359. Offset Size Description (Table 01643)
  57360. 00h 67 BYTEs ASCIZ path in form X:\PATH (local) or UNC form
  57361. \\SERVER\PATH (network, see notes below)
  57362. 43h WORD drive attributes (also see note below) (see also AX=5F07h)
  57363. bit 15: uses network redirector \ invalid if 00, installable
  57364. bit 14: physical drive / file system if 11
  57365. bit 13: JOIN'ed \ path above is true path that would be
  57366. bit 12: SUBST'ed / needed if not under SUBST or JOIN
  57367. bit 11: removable media (WinNT4.0)
  57368. bit 10: hard disk??? (WinNT4.0)
  57369. bit 7: remote drive hidden from redirector's assign-list and
  57370. exempt from network connection make/break commands;
  57371. set for CD-ROM drives by MSCDEX (not supported by
  57372. CORELCDX)
  57373. 45h DWORD pointer to Drive Parameter Block for drive
  57374. (see #01395 at AH=32h)
  57375. ---local drives---
  57376. 49h WORD starting cluster of current directory
  57377. 0000h = root, FFFFh = never accessed
  57378. 4Bh WORD ??? seems to be FFFFh always
  57379. 4Dh WORD ??? seems to be FFFFh always
  57380. ---network drives---
  57381. 49h DWORD pointer to redirector or REDIRIFS record, or FFFFh:FFFFh
  57382. (DOS 4 only) available for use by IFS driver
  57383. 4Dh WORD stored user data from INT 21/AX=5F03h
  57384. ------
  57385. 4Fh WORD offset in current directory path of backslash corresponding to
  57386. root directory for drive
  57387. this value specifies how many characters to hide from the
  57388. "CHDIR" and "GETDIR" calls; normally set to 2 to hide the
  57389. drive letter and colon, SUBST, JOIN, and networks change it
  57390. so that only the appropriate portion of the true path is
  57391. visible to the user
  57392. ---DOS 4.0+ ---
  57393. 51h BYTE (DOS 4 only, remote drives) device type
  57394. 04h network drive
  57395. 52h DWORD pointer to IFS driver (DOS 4) or redirector block (DOS 5+) for
  57396. this drive, 00000000h if native DOS
  57397. 56h WORD available for use by IFS driver
  57398. Notes: the path for invalid drives is normally set to X:\, but may be empty
  57399. after JOIN x: /D in DR DOS 5.0 or NET USE x: /D in older LAN versions
  57400. normally, only one of bits 13&12 may be set together with bit 14, but
  57401. DR DOS 5.0 uses other combinations for bits 15-12: 0111 JOIN,
  57402. 0001 SUBST, 0101 ASSIGN (see #01644)
  57403. Windows for Workgroups 3.11 network sets the path to the local
  57404. drive and directory even for network drives; in that case the
  57405. UNC form \\SERVER\SHARE can be obtained with INT 21/AX=5F02h
  57406. or INT 21/AX=5F46h. LapLink RemoteAccess does the same even for
  57407. INT 21/AX=5F02h
  57408. Window NT 4.0 always uses X:\PATH, even for substituted drives (i.e.
  57409. the CDS will *not* contain the original path prior to SUBST)
  57410. SoftWindows on the Macintosh PowerPC sets \\E for the host drive
  57411. SeeAlso: #01644,INT 21/AX=71AAh/BL=00h
  57412. Format of DR DOS 5.0-6.0 current directory structure entry (array):
  57413. Offset Size Description (Table 01644)
  57414. 00h 67 BYTEs ASCIZ pathname of actual root directory for this logical drive
  57415. 43h WORD drive attributes
  57416. 1000h SUBSTed drive
  57417. 3000h??? JOINed drive
  57418. 4000h physical drive
  57419. 5000h ASSIGNed drive
  57420. 7000h JOINed drive
  57421. 8000h network drive
  57422. 45h BYTE physical drive number (0=A:) if this logical drive is valid
  57423. 46h BYTE ??? apparently flags for JOIN and ASSIGN
  57424. 47h WORD cluster number of start of parent directory (0000h = root)
  57425. 49h WORD entry number of current directory in parent directory
  57426. 4Bh WORD cluster number of start of current directory
  57427. 4Dh WORD used for media change detection (details not available)
  57428. 4Fh WORD cluster number of SUBST/JOIN "root" directory
  57429. 0000h if physical root directory
  57430. SeeAlso: #01643
  57431. Format of Windows NT Current Directory Structure (CDS) (array):
  57432. Offset Size Description (Table 01645)
  57433. 00h 67 BYTEs ASCIZ path in form X:\ (does not show either current directory
  57434. or network path)
  57435. 43h 4 BYTEs ???
  57436. Note: the WinNT CDS contains only as many entries as there are local drives,
  57437. not LASTDRIVE entries.
  57438. Format of DOS device driver header:
  57439. Offset Size Description (Table 01646)
  57440. 00h DWORD pointer to next driver, offset=FFFFh if last driver
  57441. 04h WORD device attributes (see #01647,#01648)
  57442. 06h WORD device strategy entry point
  57443. call with ES:BX -> request header
  57444. (see #02597 at INT 2F/AX=0802h)
  57445. 08h WORD device interrupt entry point
  57446. ---character device---
  57447. 0Ah 8 BYTEs blank-padded character device name
  57448. ---block device---
  57449. 0Ah BYTE number of subunits (drives) supported by driver
  57450. 0Bh 7 BYTEs normally unused; sometimes contains signature to indicate
  57451. specific drivers:
  57452. "$PCMATA" PCMCIA driver PCMATA.SYS (see AX=440Dh"DOS 3.2+")
  57453. "AHADDVR" Adaptec SCSI disk driver ASPIDISK.SYS
  57454. "DBLSPAC" MS DoubleSpace or DriveSpace
  57455. "DSKREET" NortonUtils v5+ Diskreet (see INT 2F/AX=FE00h)
  57456. "GFS " LapLink III device driver DD.BIN
  57457. "SIDExxx" PCMCIA driver ATADRV.EXE (see AX=440Dh"DOS 3.2+")
  57458. "STAC-CD" Stacker/Stacker Anywhere (see AX=4404h"Stacker")
  57459. ---DoubleSpace/DriveSpace---
  57460. 12h 2 BYTEs signature ",." (2Ch 2Eh)
  57461. 14h var preloading API entry point
  57462. ---CD-ROM---
  57463. 12h WORD reserved, must be 0000h
  57464. appears to be another device chain
  57465. 14h BYTE drive letter, 01h=A:, etc. (must initially be 00h; this byte
  57466. is set by MSCDEX when it loads)
  57467. 15h BYTE number of units
  57468. 16h 6 BYTEs signature 'MSCDnn' where 'nn' is version (currently '00')
  57469. (this field does not exist in most drivers)
  57470. SeeAlso: #02550 at INT 25/AX=CDCDh,#02845 at INT 2F/AX=5600h
  57471. Bitfields for device attributes (character device):
  57472. Bit(s) Description (Table 01647)
  57473. 15 set (indicates character device)
  57474. 14 IOCTL supported (see AH=44h)
  57475. 13 (DOS 3.0+) output until busy supported
  57476. 12 reserved
  57477. 11 (DOS 3.0+) OPEN/CLOSE/RemMedia calls supported
  57478. 10-8 reserved
  57479. 7 (DOS 5.0+) Generic IOCTL check call supported (driver command 19h)
  57480. (see AX=4410h,AX=4411h)
  57481. 6 (DOS 3.2+) Generic IOCTL call supported (driver command 13h)
  57482. (see AX=440Ch,AX=440Dh"DOS 3.2+")
  57483. 5 reserved
  57484. 4 device is special (use INT 29 "fast console output")
  57485. 3 device is CLOCK$ (all reads/writes use transfer record described
  57486. below)
  57487. 2 device is NUL
  57488. 1 device is standard output
  57489. 0 device is standard input
  57490. Note: for European MS-DOS 4.0, bit 11 also indicates that bits 8-6 contain a
  57491. version code (000 = DOS 3.0,3.1; 001 = DOS 3.2;
  57492. 010 = European DOS 4.0)
  57493. SeeAlso: #01648,#01646
  57494. Bitfields for device attributes (block device):
  57495. Bit(s) Description (Table 01648)
  57496. 15 clear (indicates block device)
  57497. 14 IOCTL supported
  57498. 13 non-IBM format
  57499. 12 network device (device is remote)
  57500. 11 (DOS 3.0+) OPEN/CLOSE/RemMedia calls supported
  57501. 10 reserved
  57502. 9 direct I/O not allowed??? (set by DOS 3.3 DRIVER.SYS for "new" drives)
  57503. 8 ??? set by DOS 3.3 DRIVER.SYS for "new" drives
  57504. 7 (DOS 5.0+) Generic IOCTL check call supported (driver command 19h)
  57505. (see AX=4410h,AX=4411h)
  57506. 6 (DOS 3.2+) Generic IOCTL call supported (driver command 13h)
  57507. implies support for commands 17h and 18h
  57508. (see AX=440Ch,AX=440Dh"DOS 3.2+",AX=440Eh,AX=440Fh)
  57509. 5-2 reserved
  57510. 1 driver supports 32-bit sector addressing (DOS 3.31+)
  57511. 0 reserved
  57512. Note: for European MS-DOS 4.0, bit 11 also indicates that bits 8-6 contain a
  57513. version code (000 = DOS 3.0,3.1; 001 = DOS 3.2;
  57514. 010 = European DOS 4.0)
  57515. SeeAlso: #01647,#01646
  57516. Format of DOS 2.x disk buffer:
  57517. Offset Size Description (Table 01649)
  57518. 00h DWORD pointer to next disk buffer, offset = FFFFh if last
  57519. least-recently used buffer is first in chain
  57520. 04h BYTE drive (0=A, 1=B, etc), FFh if not in use
  57521. 05h 3 BYTEs unused??? (seems always to be 00h 00h 01h)
  57522. 08h WORD logical sector number
  57523. 0Ah BYTE number of copies to write (1 for non-FAT sectors)
  57524. 0Bh BYTE sector offset between copies if multiple copies to be written
  57525. 0Ch DWORD pointer to DOS Drive Parameter Block (see #01395 at AH=32h)
  57526. 10h buffered data
  57527. SeeAlso: #01650,#01652,#01653,#01655
  57528. Format of DOS 3.x disk buffer:
  57529. Offset Size Description (Table 01650)
  57530. 00h DWORD pointer to next disk buffer, offset = FFFFh if last
  57531. least-recently used buffer is first in chain
  57532. 04h BYTE drive (0=A,1=B, etc), FFh if not in use
  57533. 05h BYTE buffer flags (see #01651)
  57534. 06h WORD logical sector number
  57535. 08h BYTE number of copies to write (1 for non-FAT sectors)
  57536. 09h BYTE sector offset between copies if multiple copies to be written
  57537. 0Ah DWORD pointer to DOS Drive Parameter Block (see #01395 at AH=32h)
  57538. 0Eh WORD unused??? (almost always 0)
  57539. 10h buffered data
  57540. SeeAlso: #01649,#01652,#01653,#01655
  57541. Bitfields for DOS 3.x disk buffer flags:
  57542. Bit(s) Description (Table 01651)
  57543. 7 ???
  57544. 6 buffer dirty
  57545. 5 buffer has been referenced
  57546. 4 ???
  57547. 3 sector in data area
  57548. 2 sector in a directory, either root or subdirectory
  57549. 1 sector in FAT
  57550. 0 boot sector??? (guess)
  57551. SeeAlso: #01656
  57552. Format of DOS 4.00 (pre UR 25066) disk buffer info:
  57553. Offset Size Description (Table 01652)
  57554. 00h DWORD pointer to array of disk buffer hash chain heads (see #01654)
  57555. 04h WORD number of disk buffer hash chains (referred to as NDBCH below)
  57556. 06h DWORD pointer to lookahead buffer, zero if not present
  57557. 0Ah WORD number of lookahead sectors, else zero (the y in BUFFERS=x,y)
  57558. 0Ch BYTE 00h if buffers in EMS (/X), FFh if not
  57559. 0Dh WORD EMS handle for buffers, zero if not in EMS
  57560. 0Fh WORD EMS physical page number used for buffers (usually 255)
  57561. 11h WORD ??? seems always to be 0001h
  57562. 13h WORD segment of EMS physical page frame
  57563. 15h WORD ??? seems always to be zero
  57564. 17h 4 WORDs EMS partial page mapping information???
  57565. SeeAlso: #01649,#01650,#01653,#01657
  57566. Format of DOS 4.01 (from UR 25066 Corrctive Services Disk on) disk buffer info:
  57567. Offset Size Description (Table 01653)
  57568. 00h DWORD pointer to array of disk buffer hash chain heads (see #01654)
  57569. 04h WORD number of disk buffer hash chains (referred to as NDBCH below)
  57570. 06h DWORD pointer to lookahead buffer, zero if not present
  57571. 0Ah WORD number of lookahead sectors, else zero (the y in BUFFERS=x,y)
  57572. 0Ch BYTE 01h, possibly to distinguish from pre-UR 25066 format
  57573. 0Dh WORD ??? EMS segment for BUFFERS (only with /XD)
  57574. 0Fh WORD ??? EMS physical page number of EMS seg above (only with /XD)
  57575. 11h WORD ??? EMS segment for ??? (only with /XD)
  57576. 13h WORD ??? EMS physical page number of above (only with /XD)
  57577. 15h BYTE ??? number of EMS page frames present (only with /XD)
  57578. 16h WORD segment of one-sector workspace buffer allocated in main memory
  57579. if BUFFERS/XS or /XD options in effect, possibly to avoid DMA
  57580. into EMS
  57581. 18h WORD EMS handle for buffers, zero if not in EMS
  57582. 1Ah WORD EMS physical page number used for buffers (usually 255)
  57583. 1Ch WORD ??? appears always to be 0001h
  57584. 1Eh WORD segment of EMS physical page frame
  57585. 20h WORD ??? appears always to be zero
  57586. 22h BYTE 00h if /XS, 01h if /XD, FFh if BUFFERS not in EMS
  57587. SeeAlso: #01649,#01650,#01652,#01657
  57588. Format of DOS 4.x disk buffer hash chain head (array, one entry per chain):
  57589. Offset Size Description (Table 01654)
  57590. 00h WORD EMS logical page number in which chain is resident, -1 if not
  57591. in EMS
  57592. 02h DWORD pointer to least recently used buffer header. All buffers on
  57593. this chain are in the same segment.
  57594. 06h BYTE number of dirty buffers on this chain
  57595. 07h BYTE reserved (00h)
  57596. Notes: buffered disk sectors are assigned to chain N where N is the sector's
  57597. address modulo NDBCH, 0 <= N <= NDBCH-1
  57598. each chain resides completely within one EMS page
  57599. this structure is in main memory even if buffers are in EMS
  57600. Format of DOS 4.0-6.0 disk buffer:
  57601. Offset Size Description (Table 01655)
  57602. 00h WORD forward ptr, offset only, to next least recently used buffer
  57603. 02h WORD backward pointer, offset only
  57604. 04h BYTE drive (0=A,1=B, etc) if bit 7 clear
  57605. SFT index if bit 7 set
  57606. FFh if not in use
  57607. 05h BYTE buffer flags (see #01656)
  57608. 06h DWORD logical sector number (local buffers only)
  57609. 0Ah BYTE number of copies to write
  57610. for FAT sectors, same as number of FATs
  57611. for data and directory sectors, usually 1
  57612. 0Bh WORD offset in sectors between copies to write for FAT sectors
  57613. 0Dh DWORD pointer to DOS Drive Parameter Block (see #01395 at AH=32h)
  57614. 11h WORD size of data in buffer if remote buffer (see also #01656)
  57615. 13h BYTE reserved (padding)
  57616. 14h buffered data
  57617. Note: for DOS 4.x, all buffered sectors which have the same hash value
  57618. (computed as the sum of high and low words of the logical sector
  57619. number divided by the number of disk buffer chains) are on the same
  57620. doubly-linked circular chain; for DOS 5+, only a single circular
  57621. chain exists.
  57622. the links consist of offset addresses only, the segment being the same
  57623. for all buffers in the chain.
  57624. SeeAlso: #01649,#01650,#01652
  57625. Bitfields for DOS 4.0-6.0 disk buffer flags:
  57626. Bit(s) Description (Table 01656)
  57627. 7 remote buffer
  57628. 6 buffer dirty
  57629. 5 buffer has been referenced (reserved in DOS 5+)
  57630. 4 search data buffer (only valid if remote buffer)
  57631. 3 sector in data area
  57632. 2 sector in a directory, either root or subdirectory
  57633. 1 sector in FAT
  57634. 0 reserved
  57635. SeeAlso: #01651
  57636. Format of DOS 5.0-6.0 disk buffer info:
  57637. Offset Size Description (Table 01657)
  57638. 00h DWORD pointer to least-recently-used buffer header (may be in HMA)
  57639. (see #01655)
  57640. 04h WORD number of dirty disk buffers
  57641. 06h DWORD pointer to lookahead buffer, zero if not present
  57642. 0Ah WORD number of lookahead sectors, else zero (the y in BUFFERS=x,y)
  57643. 0Ch BYTE buffer location
  57644. 00h base memory, no workspace buffer
  57645. 01h HMA, workspace buffer in base memory
  57646. 0Dh DWORD pointer to one-segment workspace buffer in base memory
  57647. 11h 3 BYTEs unused
  57648. 14h WORD ???
  57649. 16h BYTE flag: INT 24 fail while making an I/O status call
  57650. 17h BYTE temp storage for user memory allocation strategy during EXEC
  57651. 18h BYTE counter: number of INT 21 calls for which A20 is off
  57652. 19h BYTE bit flags
  57653. bit 0: ???
  57654. bit 1: SWITCHES=/W specified in CONFIG.SYS (don't load
  57655. WINA20.SYS when MS Windows 3.0 starts)
  57656. bit 2: in EXEC state (INT 21/AX=4B05h)
  57657. 1Ah WORD offset of unpack code start (used only during INT 21/AX=4B05h)
  57658. 1Ch BYTE bit 0 set iff UMB MCB chain linked to normal MCB chain
  57659. 1Dh WORD minimum paragraphs of memory required by program being EXECed
  57660. 1Fh WORD segment of first MCB in upper memory blocks or FFFFh if DOS
  57661. memory chain in base 640K only (first UMB MCB usually at
  57662. 9FFFh, locking out video memory with a DOS-owned memory
  57663. block)
  57664. the MCB this word points at contains a valid link into high
  57665. memory even if it is marked with a 'Z' indicating the last
  57666. memory block
  57667. 21h WORD paragraph from which to start scanning during memory allocation
  57668. SeeAlso: #01652,#01653
  57669. (Table 01658)
  57670. Call IFS utility function entry point with:
  57671. AH = 20h miscellaneous functions
  57672. AL = 00h get date
  57673. Return: CX = year
  57674. DH = month
  57675. DL = day
  57676. AL = 01h get process ID and computer ID
  57677. Return: BX = current PSP segment
  57678. DX = active network machine number
  57679. AL = 05h get file system info
  57680. ES:DI -> 16-byte info buffer
  57681. Return: buffer filled
  57682. Offset Size Description
  57683. 00h 2 BYTEs unused
  57684. 02h WORD number of SFTs (actually counts only
  57685. the first two file table arrays)
  57686. 04h WORD number of FCB table entries
  57687. 06h WORD number of proctected FCBs
  57688. 08h 6 BYTEs unused
  57689. 0Eh WORD largest sector size supported
  57690. AL = 06h get machine name
  57691. ES:DI -> 18-byte buffer for name
  57692. Return: buffer filled with name starting at offset 02h
  57693. AL = 08h get sharing retry count
  57694. Return: BX = sharing retry count
  57695. AL = other
  57696. Return: CF set
  57697. AH = 21h get redirection state
  57698. BH = type (03h disk, 04h printer)
  57699. Return: BH = state (00h off, 01h on)
  57700. AH = 22h ??? some sort of time calculation
  57701. AL = 00h ???
  57702. nonzero ???
  57703. AH = 23h ??? some sort of time calculation
  57704. AH = 24h compare filenames
  57705. DS:SI -> first ASCIZ filename
  57706. ES:DI -> second ASCIZ filename
  57707. Return: ZF set if files are same ignoring case and / vs \
  57708. AH = 25h normalize filename
  57709. DS:SI -> ASCIZ filename
  57710. ES:DI -> buffer for result
  57711. Return: filename uppercased, forward slashes changed to backslashes
  57712. AH = 26h get DOS stack
  57713. Return: DS:SI -> top of stack
  57714. CX = size of stack in bytes
  57715. AH = 27h increment InDOS flag
  57716. AH = 28h decrement InDOS flag
  57717. Note: IFS drivers which do not wish to implement functions 20h or 24h-28h may
  57718. pass them on to the default handler pointed at by [LoL+37h]
  57719. SeeAlso: #01659,#01660
  57720. Format of IFS driver list:
  57721. Offset Size Description (Table 01659)
  57722. 00h DWORD pointer to next driver header
  57723. 04h 8 BYTEs IFS driver name (blank padded), as used by FILESYS command
  57724. 0Ch 4 BYTEs ???
  57725. 10h DWORD pointer to IFS utility function entry point (see #01658)
  57726. call with ES:BX -> IFS request (see #01660)
  57727. 14h WORD offset in header's segment of driver entry point
  57728. ???
  57729. SeeAlso: #01658,#01660
  57730. Format of IFS request block:
  57731. Offset Size Description (Table 01660)
  57732. 00h WORD total size in bytes of request
  57733. 02h BYTE class of request
  57734. 02h ???
  57735. 03h redirection
  57736. 04h ???
  57737. 05h file access
  57738. 06h convert error code to string
  57739. 07h ???
  57740. 03h WORD returned DOS error code
  57741. 05h BYTE IFS driver exit status
  57742. 00h success
  57743. 01h ???
  57744. 02h ???
  57745. 03h ???
  57746. 04h ???
  57747. FFh internal failure
  57748. 06h 16 BYTEs ???
  57749. ---request class 02h---
  57750. 16h BYTE function code
  57751. 04h ???
  57752. 17h BYTE unused???
  57753. 18h DWORD pointer to ???
  57754. 1Ch DWORD pointer to ???
  57755. 20h 2 BYTEs ???
  57756. ---request class 03h---
  57757. 16h BYTE function code
  57758. 17h BYTE ???
  57759. 18h DWORD pointer to ???
  57760. 1Ch DWORD pointer to ???
  57761. 22h WORD returned ???
  57762. 24h WORD returned ???
  57763. 26h WORD returned ???
  57764. 28h BYTE returned ???
  57765. 29h BYTE unused???
  57766. ---request class 04h---
  57767. 16h DWORD pointer to ???
  57768. 1Ah DWORD pointer to ???
  57769. ---request class 05h---
  57770. 16h BYTE function code
  57771. 01h flush disk buffers
  57772. 02h get disk space
  57773. 03h MKDIR
  57774. 04h RMDIR
  57775. 05h CHDIR
  57776. 06h delete file
  57777. 07h rename file
  57778. 08h search directory
  57779. 09h file open/create
  57780. 0Ah LSEEK
  57781. 0Bh read from file
  57782. 0Ch write to file
  57783. 0Dh lock region of file
  57784. 0Eh commit/close file
  57785. 0Fh get/set file attributes
  57786. 10h printer control
  57787. 11h ???
  57788. 12h process termination
  57789. 13h ???
  57790. ---class 05h function 01h---
  57791. 17h 7 BYTEs ???
  57792. 1Eh DWORD pointer to ???
  57793. 22h 4 BYTEs ???
  57794. 26h BYTE ???
  57795. 27h BYTE ???
  57796. ---class 05h function 02h---
  57797. 17h 7 BYTEs ???
  57798. 1Eh DWORD pointer to ???
  57799. 22h 4 BYTEs ???
  57800. 26h WORD returned total clusters
  57801. 28h WORD returned sectors per cluster
  57802. 2Ah WORD returned bytes per sector
  57803. 2Ch WORD returned available clusters
  57804. 2Eh BYTE returned ???
  57805. 2Fh BYTE ???
  57806. ---class 05h functions 03h,04h,05h---
  57807. 17h 7 BYTEs ???
  57808. 1Eh DWORD pointer to ???
  57809. 22h 4 BYTEs ???
  57810. 26h DWORD pointer to directory name
  57811. ---class 05h function 06h---
  57812. 17h 7 BYTEs ???
  57813. 1Eh DWORD pointer to ???
  57814. 22h 4 BYTEs ???
  57815. 26h WORD attribute mask
  57816. 28h DWORD pointer to filename
  57817. ---class 05h function 07h---
  57818. 17h 7 BYTEs ???
  57819. 1Eh DWORD pointer to ???
  57820. 22h 4 BYTEs ???
  57821. 26h WORD attribute mask
  57822. 28h DWORD pointer to source filespec
  57823. 2Ch DWORD pointer to destination filespec
  57824. ---class 05h function 08h---
  57825. 17h 7 BYTEs ???
  57826. 1Eh DWORD pointer to ???
  57827. 22h 4 BYTEs ???
  57828. 26h BYTE 00h FINDFIRST
  57829. 01h FINDNEXT
  57830. 28h DWORD pointer to FindFirst search data + 01h if FINDNEXT
  57831. 2Ch WORD search attribute if FINDFIRST
  57832. 2Eh DWORD pointer to filespec if FINDFIRST
  57833. ---class 05h function 09h---
  57834. 17h 7 BYTEs ???
  57835. 1Eh DWORD pointer to ???
  57836. 22h DWORD pointer to IFS open file structure (see #01661)
  57837. 26h WORD ??? \ together, specify open vs. create, whether or
  57838. 28h WORD ??? / not to truncate
  57839. 2Ah 4 BYTEs ???
  57840. 2Eh DWORD pointer to filename
  57841. 32h 4 BYTEs ???
  57842. 36h WORD file attributes on call
  57843. returned ???
  57844. 38h WORD returned ???
  57845. ---class 05h function 0Ah---
  57846. 17h 7 BYTEs ???
  57847. 1Eh DWORD pointer to ???
  57848. 22h DWORD pointer to IFS open file structure (see #01661)
  57849. 26h BYTE seek type (02h = from end)
  57850. 28h DWORD offset on call
  57851. returned new absolute position
  57852. ---class 05h functions 0Bh,0Ch---
  57853. 17h 7 BYTEs ???
  57854. 1Eh DWORD pointer to ???
  57855. 22h DWORD pointer to IFS open file structure (see #01661)
  57856. 28h WORD number of bytes to transfer
  57857. returned bytes actually transferred
  57858. 2Ah DWORD transfer address
  57859. ---class 05h function 0Dh---
  57860. 17h 7 BYTEs ???
  57861. 1Eh DWORD pointer to ???
  57862. 22h DWORD pointer to IFS open file structure (see #01661)
  57863. 26h BYTE file handle???
  57864. 27h BYTE unused???
  57865. 28h WORD ???
  57866. 2Ah WORD ???
  57867. 2Ch WORD ???
  57868. 2Eh WORD ???
  57869. ---class 05h function 0Eh---
  57870. 17h 7 BYTEs ???
  57871. 1Eh DWORD pointer to ???
  57872. 22h DWORD pointer to IFS open file structure (see #01661)
  57873. 26h BYTE 00h commit file
  57874. 01h close file
  57875. 27h BYTE unused???
  57876. ---class 05h function 0Fh---
  57877. 17h 7 BYTEs ???
  57878. 1Eh DWORD pointer to ???
  57879. 22h 4 BYTEs ???
  57880. 26h BYTE 02h GET attributes
  57881. 03h PUT attributes
  57882. 27h BYTE unused???
  57883. 28h 12 BYTEs ???
  57884. 34h WORD search attributes???
  57885. 36h DWORD pointer to filename
  57886. 3Ah WORD (GET) returned ???
  57887. 3Ch WORD (GET) returned ???
  57888. 3Eh WORD (GET) returned ???
  57889. 40h WORD (GET) returned ???
  57890. 42h WORD (PUT) new attributes
  57891. (GET) returned attributes
  57892. ---class 05h function 10h---
  57893. 17h 7 BYTEs ???
  57894. 1Eh DWORD pointer to ???
  57895. 22h DWORD pointer to IFS open file structure (see #01661)
  57896. 26h WORD ???
  57897. 28h DWORD pointer to ???
  57898. 2Ch WORD ???
  57899. 2Eh BYTE ???
  57900. 2Fh BYTE subfunction
  57901. 01h get printer setup
  57902. 03h ???
  57903. 04h ???
  57904. 05h ???
  57905. 06h ???
  57906. 07h ???
  57907. 21h set printer setup
  57908. ---class 05h function 11h---
  57909. 17h 7 BYTEs ???
  57910. 1Eh DWORD pointer to ???
  57911. 22h DWORD pointer to IFS open file structure (see #01661)
  57912. 26h BYTE subfunction
  57913. 27h BYTE unused???
  57914. 28h WORD ???
  57915. 2Ah WORD ???
  57916. 2Ch WORD ???
  57917. 2Eh BYTE ???
  57918. 2Fh BYTE ???
  57919. ---class 05h function 12h---
  57920. 17h 15 BYTEs unused???
  57921. 26h WORD PSP segment
  57922. 28h BYTE type of process termination
  57923. 29h BYTE unused???
  57924. ---class 05h function 13h---
  57925. 17h 15 BYTEs unused???
  57926. 26h WORD PSP segment
  57927. ---request class 06h---
  57928. 16h DWORD returned pointer to string corresponding to error code at 03h
  57929. 1Ah BYTE returned ???
  57930. 1Bh BYTE unused
  57931. ---request class 07h---
  57932. 16h DWORD pointer to IFS open file structure (see #01661)
  57933. 1Ah BYTE ???
  57934. 1Bh BYTE unused???
  57935. SeeAlso: #01659,#01658,#01661
  57936. Format of IFS open file structure:
  57937. Offset Size Description (Table 01661)
  57938. 00h WORD ???
  57939. 02h WORD device info word
  57940. 04h WORD file open mode
  57941. 06h WORD ???
  57942. 08h WORD file attributes
  57943. 0Ah WORD owner's network machine number
  57944. 0Ch WORD owner's PSP segment
  57945. 0Eh DWORD file size
  57946. 12h DWORD current offset in file
  57947. 16h WORD file time
  57948. 18h WORD file date
  57949. 1Ah 11 BYTEs filename in FCB format
  57950. 25h WORD ???
  57951. 27h WORD hash value of SFT address
  57952. (low word of linear address + segment&F000h)
  57953. 29h 3 WORDs network info from SFT
  57954. 2Fh WORD ???
  57955. Format of one item in DOS 4.0+ list of special program names:
  57956. Offset Size Description (Table 01662)
  57957. 00h BYTE length of name (00h = end of list)
  57958. 01h N BYTEs name in format name.ext
  57959. N 2 BYTEs DOS version to return for program (major,minor)
  57960. (see AH=30h,INT 2F/AX=122Fh)
  57961. ---DOS 4 only---
  57962. N+2 BYTE number of times to return fake version number (FFh = always)
  57963. Note: if the name of the executable for the program making the DOS "get
  57964. version" call matches one of the names in this list, DOS returns the
  57965. specified version rather than the true version number
  57966. --------v-215252-----------------------------
  57967. INT 21 - VIRUS - "516"/"Leapfrog" - INSTALLATION CHECK
  57968. AX = 5252h
  57969. Return: BX = FFEEh if resident
  57970. SeeAlso: AX=4BFFh"Cascade",AX=58CCh
  57971. --------D-2153-------------------------------
  57972. INT 21 - DOS 2+ internal - TRANSLATE BIOS PARAMETER BLOCK TO DRIVE PARAM BLOCK
  57973. AH = 53h
  57974. DS:SI -> BIOS Parameter Block (see #01663)
  57975. ES:BP -> buffer for Drive Parameter Block (see #01395 at AH=32h)
  57976. DBP drive byte must be set to valid drive (Windows95-OSR2)
  57977. ---Windows95---
  57978. CX = signature 4558h ('EX') for FAT32 extended BPB/DPB (see #01664)
  57979. DX = signature 4152h ('AR') for FAT32 extended BPB/DPB
  57980. Return: ES:BP buffer filled
  57981. Notes: for DOS 3.0+, the cluster at which to start searching is set to 0000h
  57982. and the number of free clusters is set to FFFFh (unknown)
  57983. if the number of sectors per cluster is set to zero, MS-DOS will hang
  57984. at startup because it computes the internally-used shift count by
  57985. shifting this value right until the carry flag is set; since this
  57986. will never happen when the field is zero, MS-DOS hangs
  57987. not supported by Windows NT 3.1
  57988. Format of BIOS Parameter Block:
  57989. Offset Size Description (Table 01663)
  57990. 00h WORD number of bytes per sector
  57991. 02h BYTE number of sectors per cluster
  57992. 03h WORD number of reserved sectors at start of disk
  57993. 05h BYTE number of FATs
  57994. 06h WORD number of entries in root directory
  57995. 08h WORD total number of sectors
  57996. for DOS 4.0+, set to zero if partition >32M, then set DWORD at
  57997. 15h to actual number of sectors
  57998. 0Ah BYTE media ID byte (see #01356)
  57999. 0Bh WORD number of sectors per FAT
  58000. ---DOS 2.13---
  58001. 0Dh WORD number of sectors per track
  58002. 0Fh WORD number of heads
  58003. 11h WORD number of hidden sectors
  58004. ---DOS 3.0+ ---
  58005. 0Dh WORD number of sectors per track
  58006. 0Fh WORD number of heads
  58007. 11h DWORD number of hidden sectors
  58008. 15h 11 BYTEs reserved
  58009. ---DOS 4.0+ ---
  58010. 15h DWORD total number of sectors if word at 08h contains zero
  58011. 19h 6 BYTEs ???
  58012. 1Fh WORD number of cylinders
  58013. 21h BYTE device type
  58014. 22h WORD device attributes (removable or not, etc)
  58015. ---DR DOS 5+ ---
  58016. 15h DWORD total number of sectors if word at 08h contains zero
  58017. 19h 6 BYTEs reserved
  58018. ---European MS-DOS 4.00---
  58019. 15h DWORD total number of sectors if word at 08h contains zero
  58020. (however, this DOS does not actually implement >32M partitions)
  58021. SeeAlso: #01395,#01664
  58022. Format of Extended BIOS Parameter Block:
  58023. Offset Size Description (Table 01664)
  58024. 00h 25 BYTEs same as standard DOS 4-6 BPB (see #01663)
  58025. 19h DWORD sectors per FAT if WORD at 0Bh is 0000h
  58026. 1Dh WORD extended flags
  58027. bit 7: do not mirror active FAT to inactive FATs
  58028. bits 6-4: reserved (0)
  58029. bits 3-0: the 0-based FAT number of the active FAT
  58030. (if mirroring disabled)
  58031. 1Fh WORD file system version (high byte=major, low byte=minor)
  58032. 0000h = Win95-OSR2
  58033. 21h DWORD starting cluster number of root directory
  58034. 25h WORD file system information sector number (see also #01788)
  58035. FFFFh if none
  58036. 27h WORD sector number of backup boot sector (FFFFh if none)
  58037. 29h 6 WORDs reserved
  58038. SeeAlso: #01560,#01787
  58039. --------D-2154-------------------------------
  58040. INT 21 - DOS 2+ - GET VERIFY FLAG
  58041. AH = 54h
  58042. Return: AL = verify flag
  58043. 00h off
  58044. 01h on (all disk writes verified after writing)
  58045. SeeAlso: AH=2Eh
  58046. --------v-2154--BX4475-----------------------
  58047. INT 21 - VIRUS - "Dual_GtM"/"Ganeu" - INSTALLATION CHECK
  58048. AH = 54h
  58049. BX = 4475h ("Du")
  58050. CX = 616Ch ("al")
  58051. Return: BX = 4774h ("Gt") and CX = 4D21h ("M!") if resident
  58052. SeeAlso: AX=50FDh"VIRUS",AX=5454h"VIRUS"
  58053. --------v-215454-----------------------------
  58054. INT 21 - VIRUS - "Dudley" - INSTALLATION CHECK
  58055. AX = 5454h
  58056. Return: AX = 0000h if resident
  58057. SeeAlso: AX=50FDh"VIRUS",AH=54h/BX=4475h"VIRUS",AX=7BCEh"VIRUS"
  58058. --------D-2155-------------------------------
  58059. INT 21 - DOS 2+ internal - CREATE CHILD PSP
  58060. AH = 55h
  58061. DX = segment at which to create new PSP
  58062. SI = (DOS 3.0+) value to place in memory size field at DX:[0002h]
  58063. Return: AL destroyed
  58064. Notes: creates a "child" PSP rather than making an exact copy of the current
  58065. PSP; the new PSP's parent pointer is set to the current PSP and the
  58066. reference count for each inherited file is incremented
  58067. (DOS 2.0+) sets current PSP to DX
  58068. (DOS 3.0+) marks "no inherit" file handles as closed in child PSP
  58069. this function is implemented using the same code as AH=26h, so unlike
  58070. other DOS 2+ functions, it does not return status in CF, instead
  58071. returning status in AL as DOS 1.x functions do (but it never puts an
  58072. explicit return value in AL)
  58073. SeeAlso: AH=26h,AH=50h
  58074. --------D-2156-------------------------------
  58075. INT 21 - DOS 2+ - "RENAME" - RENAME FILE
  58076. AH = 56h
  58077. DS:DX -> ASCIZ filename of existing file (no wildcards, but see below)
  58078. ES:DI -> ASCIZ new filename (no wildcards)
  58079. CL = attribute mask (server call only, see below)
  58080. Return: CF clear if successful
  58081. CF set on error
  58082. AX = error code (02h,03h,05h,11h) (see #01680)
  58083. Notes: allows move between directories on same logical volume
  58084. this function does not set the archive attribute
  58085. (see #01420 at AX=4301h), which results in incremental backups not
  58086. backing up the file under its new name
  58087. open files should not be renamed
  58088. (DOS 2.x only) this function renames file by creating a new directory
  58089. entry with the new name, then marking the old entry deleted
  58090. (DOS 3.0+) allows renaming of directories
  58091. (DOS 3.1+) wildcards are allowed if invoked via AX=5D00h, in which case
  58092. error 12h (no more files) is returned on success, and both source and
  58093. destination specs must be canonical (as returned by AH=60h).
  58094. Wildcards in the destination are replaced by the corresponding char
  58095. of each source file being renamed. Under DOS 3.x, the call will fail
  58096. if the destination wildcard is *.* or equivalent; under DR DOS 5.0,
  58097. the call will fail with error code 03h if any wildcards are used.
  58098. When invoked via AX=5D00h, only those files matching the attribute
  58099. mask in CL are renamed.
  58100. under the FlashTek X-32 DOS extender, the old-name pointer is in DS:EDX
  58101. and the new-name pointer is in ES:EDI (DS must equal ES)
  58102. BUG: (DR DOS 3.41) when invoked via AX=5D00h, this function will generate
  58103. a new directory entry with the new name (including any wildcards)
  58104. which can only be removed with a sector editor
  58105. SeeAlso: AH=17h,AX=4301h,AX=43FFh/BP=5053h,AX=5D00h,AH=60h,AX=7156h
  58106. SeeAlso: AX=F257h/SF=04h
  58107. --------v-215643------------------------
  58108. INT 21 - VIRUS - "PS-MPC.Gold" - INSTALLATION CHECK
  58109. AX = 5643h ('VC')
  58110. Return: AX = 5053h ('PS') if resident
  58111. SeeAlso: AX=33E0h"VIRUS",AX=5741h"VIRUS",AX=6303h"VIRUS"
  58112. --------D-215700-----------------------------
  58113. INT 21 - DOS 2+ - GET FILE'S LAST-WRITTEN DATE AND TIME
  58114. AX = 5700h
  58115. BX = file handle
  58116. Return: CF clear if successful
  58117. CX = file's time (see #01665)
  58118. DX = file's date (see #01666)
  58119. CF set on error
  58120. AX = error code (01h,06h) (see #01680)
  58121. Note: under DR DOS 3.41 and 5.0, this function returns 0 (no date/time) for
  58122. character devices; MS-DOS returns date and time of opening
  58123. SeeAlso: AX=5701h,AX=5704h"Windows95"
  58124. Bitfields for file time:
  58125. Bit(s) Description (Table 01665)
  58126. 15-11 hours (0-23)
  58127. 10-5 minutes
  58128. 4-0 seconds/2
  58129. Bitfields for file date:
  58130. Bit(s) Description (Table 01666)
  58131. 15-9 year - 1980
  58132. 8-5 month
  58133. 4-0 day
  58134. --------D-215701-----------------------------
  58135. INT 21 - DOS 2+ - SET FILE'S LAST-WRITTEN DATE AND TIME
  58136. AX = 5701h
  58137. BX = file handle
  58138. CX = new time (see #01665)
  58139. DX = new date (see #01666)
  58140. Return: CF clear if successful
  58141. CF set on error
  58142. AX = error code (01h,06h) (see #01680)
  58143. SeeAlso: AX=5700h,AX=5705h"Windows95",AX=5707h"Windows95"
  58144. --------D-215702-----------------------------
  58145. INT 21 - DOS 4.x only - GET EXTENDED ATTRIBUTES FOR FILE
  58146. AX = 5702h
  58147. BX = file handle
  58148. CX = size of result buffer or 0000h
  58149. DS:SI -> EAP list (see #01667)
  58150. ES:DI -> buffer for returned EAV list (see #01670)
  58151. Return: CF clear if successful
  58152. CX = size of returned data
  58153. CF set on error
  58154. AX = error code (see #01680)
  58155. Desc: get the current value of one or more extended attributes
  58156. Notes: if CX=0000h on entry, ES:DI is ignored and no data is actually
  58157. returned, only the amount of data which is available
  58158. the default DOS 4 behavior is to return a single word of 0000h (no
  58159. structures) in the result buffer if CX>=0002h on entry; this
  58160. functionality was apparently never released to the public
  58161. SeeAlso: AX=5703h,AX=5704h,AH=6Eh,INT 2F/AX=112Dh
  58162. Format of EAP (extended attribute properties) list:
  58163. Offset Size Description (Table 01667)
  58164. 00h WORD number of EAP structures following
  58165. 02h var array of EAP structures (see #01668)
  58166. SeeAlso: #01670
  58167. Format of EAP (extended attribute property) structure:
  58168. Offset Size Description (Table 01668)
  58169. 00h BYTE attribute type
  58170. 01h boolean (either 00h or 01h)
  58171. 02h number (BYTE, WORD, or DWORD)
  58172. 03h string
  58173. 04h date stamp
  58174. 05h time stamp
  58175. 01h WORD EAP flags (see #01669)
  58176. 03h BYTE size of reference string (name)
  58177. 04h N BYTEs reference string
  58178. Bitfields for EAP flags:
  58179. Bit(s) Description (Table 01669)
  58180. 12 unchangeable
  58181. 13 ignore
  58182. 14 unchangeable
  58183. 15 used by COMMAND.COM for code page, but not understood by ATTRIB
  58184. Format of EAV (extended attribute value) list:
  58185. Offset Size Description (Table 01670)
  58186. 00h WORD number of EAV structures following
  58187. 02h var array of Extended Attribute Value structures (see #01671)
  58188. SeeAlso: #01667
  58189. Format of Extended Attribute Value structures:
  58190. Offset Size Description (Table 01671)
  58191. 00h 4 BYTEs ???
  58192. 04h BYTE size of reference string
  58193. 05h WORD size of value
  58194. 07h var reference string
  58195. var value
  58196. --------O-215702-----------------------------
  58197. INT 21 - OS/2 v1.1+ Family API - DosQFileInfo
  58198. AX = 5702h
  58199. BX = file handle
  58200. CX = size of buffer for information
  58201. DX = level of information
  58202. 0001h standard file information (see #01672)
  58203. 0002h Query EA Size (see #01672)
  58204. 0003h Query EAs from List (see #01673)
  58205. 0004h Query All EAs (see #01673)
  58206. ES:DI -> buffer for information (see #01672,#01673)
  58207. Return: CF clear if successful
  58208. CF set on error
  58209. AX = error code
  58210. SeeAlso: AX=5702h/BX=FFFFh,AX=5703h"OS/2",AH=6Dh"OS/2"
  58211. Format of OS/2 DosQFileInfo:
  58212. Offset Size Description (Table 01672)
  58213. 00h WORD creation date
  58214. 02h WORD creation time
  58215. 04h WORD last access date
  58216. 06h WORD last access time
  58217. 08h WORD last write date
  58218. 0Ah WORD last write time
  58219. 0Ch DWORD file size in bytes
  58220. 10h DWORD allocated space in bytes
  58221. 14h WORD file attributes
  58222. ---level 2 only---
  58223. 16h DWORD size of Extended Attributes in byte
  58224. SeeAlso: #01673,#01676
  58225. Format of OS/2 DosQFileInfo, EAOP structure:
  58226. Offset Size Description (Table 01673)
  58227. 00h DWORD pointer to general EA list (see #01674)
  58228. 04h DWORD pointer to buffer for full EA list, with length field set
  58229. 08h DWORD (ret) error
  58230. Note: for info level 3, the first pointer must contain the address of a
  58231. list of the Extended Attributes to be retrieved; for info level 4,
  58232. it should be 0000h:0000h
  58233. SeeAlso: #01672,#01676
  58234. Format of OS/2 DosQFileInfo, General EA List:
  58235. Offset Size Description (Table 01674)
  58236. 00h DWORD (call) total size of list in bytes (including this field)
  58237. (ret) number of bytes actually used (including this field)
  58238. 04h var Extended Attribute entries (see #01675) [packed arrray]
  58239. Format of OS/2 DosQFileInfo, General EA entry:
  58240. Offset Size Description (Table 01675)
  58241. 00h BYTE length of Extended Attribute name (excluding terminating NUL)
  58242. 01h N BYTEs EA name
  58243. BYTE 00h
  58244. SeeAlso: #01674
  58245. Format of OS/2 DosQFileInfo, Full EA List:
  58246. Offset Size Description (Table 01676)
  58247. 00h DWORD (call) total size of list in bytes (including this field)
  58248. (ret) number of bytes actually used (including this field)
  58249. 04h var Extended Attribute data (see #01677) [packed array]
  58250. SeeAlso: #01672,#01673
  58251. Format of OS/2 Extended Attribute data (struct FEA):
  58252. Offset Size Description (Table 01677)
  58253. 00h BYTE flags
  58254. bit 7: critical EA
  58255. 01h BYTE length of Extended Attribute name (excluding terminating NUL)
  58256. 02h WORD length of Extended Attribute value
  58257. 04h N BYTEs EA name
  58258. BYTE 00h
  58259. M BYTEs EA value
  58260. --------O-215702BXFFFF-----------------------
  58261. INT 21 - OS/2 v1.1+ Compatibility Box Family API - DosQPathInfo
  58262. AX = 5702h
  58263. BX = FFFFh
  58264. CX = size of buffer for information
  58265. DX = level of information (0002h)
  58266. DS:SI -> filename
  58267. ES:DI -> buffer for FAPI path information (see #01678)
  58268. Return: CF clear if successful
  58269. AL = 00h
  58270. CF set on error
  58271. AX = error code
  58272. SeeAlso: AX=5702h"OS/2",AX=5703h/BX=FFFFh
  58273. Format of FAPI path information:
  58274. Offset Size Description (Table 01678)
  58275. 00h 22 BYTEs ???
  58276. 16h DWORD extended attribute size (none present if less than 5)
  58277. --------D-215703-----------------------------
  58278. INT 21 - DOS 4.x only - GET EXTENDED ATTRIBUTE PROPERTIES
  58279. AX = 5703h
  58280. BX = file handle
  58281. CX = size of result buffer or 0000h
  58282. ES:DI -> result buffer
  58283. Return: CF clear if successful
  58284. CX = size of returned data
  58285. CF set on error
  58286. AX = error code (see #01680)
  58287. ES:DI -> zero word (DOS 4.0) if CX >= 2 on entry
  58288. Desc: get a list of the extended attributes which are defined for the
  58289. specified file
  58290. Notes: if CX=0000h on entry, ES:DI is ignored and no data is actually
  58291. returned, only the amount of data which is available
  58292. the default DOS 4 behavior is to return a trivial EAP list consisting
  58293. of the single word 0000h (no EAP structures) if CX>=0002h on entry;
  58294. this functionality was apparently never released to the public
  58295. SeeAlso: AX=5702h,AX=5704h,AH=6Eh,INT 2F/AX=112Dh
  58296. --------O-215703-----------------------------
  58297. INT 21 - OS/2 v1.1+ Family API - DosSetFileInfo
  58298. AX = 5703h
  58299. BX = file handle
  58300. CX = size of information buffer
  58301. DX = level of information
  58302. ES:DI -> information buffer
  58303. Return: CF clear if successful
  58304. CF set on error
  58305. AX = error code
  58306. SeeAlso: AX=5702h"OS/2",AX=5703h/BX=FFFFh
  58307. --------O-215703BXFFFF-----------------------
  58308. INT 21 - OS/2 v1.1+ Family API - DosSetPathInfo
  58309. AX = 5703h
  58310. BX = FFFFh
  58311. CX = size of information buffer
  58312. DX = level of information
  58313. DS:SI -> filename
  58314. ES:DI -> information buffer
  58315. Return: CF clear if successful
  58316. CF set on error
  58317. AX = error code
  58318. SeeAlso: AX=5702h/BX=FFFFh,AX=5703h"OS/2"
  58319. --------D-215704-----------------------------
  58320. INT 21 - DOS 4.x only - SET EXTENDED ATTRIBUTES
  58321. AX = 5704h
  58322. BX = file handle
  58323. ES:DI -> EAV list (see #01670)
  58324. Return: CF clear if successful
  58325. CF set on error
  58326. AX = error code (see #01680)
  58327. Note: the default DOS 4 behavior is to do nothing and return successfully;
  58328. this functionality was apparently never released to the public
  58329. SeeAlso: AX=5702h,AX=5703h,INT 2F/AX=112Dh
  58330. --------D-215704-----------------------------
  58331. INT 21 - MS-DOS 7/Windows95 - GET LAST ACCESS DATE AND TIME
  58332. AX = 5704h
  58333. BX = file handle
  58334. Return: CF clear if successful
  58335. DX = last access date (see #01666)
  58336. CX = last access time (currently always 0000h)
  58337. CF set on error
  58338. AX = error code
  58339. SeeAlso: AX=5701h,AX=5705h,AX=5706h
  58340. --------D-215705-----------------------------
  58341. INT 21 - MS-DOS 7/Windows95 - SET LAST ACCESS DATE AND TIME
  58342. AX = 5705h
  58343. BX = file handle
  58344. CX = new last-access time (currently not supported, must be 0000h)
  58345. DX = new last-access date (see #01666)
  58346. Return: CF clear if successful
  58347. CF set on error
  58348. AX = error code
  58349. SeeAlso: AX=5700h,AX=5704h"Windows95",AX=5707h
  58350. --------D-215706-----------------------------
  58351. INT 21 - MS-DOS 7/Windows95 - GET CREATION DATE AND TIME
  58352. AX = 5706h
  58353. BX = file handle
  58354. Return: CF clear if successful
  58355. CX = creation time (see #01665)
  58356. DX = creation date (see #01666)
  58357. SI = number of 10-millisecond units past time in CX (0-199)
  58358. CF set on error
  58359. AX = error code
  58360. SeeAlso: AX=5701h,AX=5704h"Windows95",AX=5707h
  58361. --------D-215707-----------------------------
  58362. INT 21 - MS-DOS 7/Windows95 - SET CREATION DATE AND TIME
  58363. AX = 5707h
  58364. BX = file handle
  58365. CX = new creation time (see #01665)
  58366. DX = new creation date (see #01666)
  58367. SI = new creation time: 10-millisecond units past time in CX (0-199)
  58368. Return: CF clear if successful
  58369. CF set on error
  58370. AX = error code
  58371. SeeAlso: AX=5700h,AX=5705h,AX=5706h
  58372. --------v-215741-----------------------------
  58373. INT 21 - VIRUS - "WARP" -INSTALLATION CHECK
  58374. AX = 5741h
  58375. Return: AX = 5250h if resident
  58376. SeeAlso: AX=5643h"VIRUS",AX=58CCh"VIRUS"
  58377. --------U-215757BX5757-----------------------
  58378. INT 21 U - IBM Genie - Resident Manager - INSTALLATION CHECK
  58379. AX = 5757h
  58380. BX = 5757h
  58381. Return: AX = 0000h if installed
  58382. BX = ???
  58383. DX = ???
  58384. DS:SI -> list of 27 DWORD entry point addresses
  58385. Program: IBM Genie is a set of utility TSRs by Helix Software
  58386. Note: other functions possible if BX <> 5757h, but details not yet available
  58387. ----------215758-----------------------------
  58388. INT 21 U - Headroom - API
  58389. AX = 5758h
  58390. BL = function
  58391. 00h ???
  58392. 01h get Headroom location
  58393. Return: CF clear if installed
  58394. AX = PSP segment of Headroom TSR
  58395. BX = paragraphs of memory used by Headroom
  58396. CF set if not (normal DOS return)
  58397. Note: this function is also used as an installation check
  58398. 02h get INT 21 handler
  58399. Return: CF clear
  58400. ES:BX -> Headroom's INT 21 handler
  58401. Note: also sets unknown flag
  58402. 03h launch application???
  58403. DS:SI -> 233-byte application record
  58404. Return: ???
  58405. 04h ???
  58406. ???
  58407. Return: CF clear
  58408. 05h get swap directory
  58409. Return: CF clear
  58410. DX:AX -> ASCIZ swap directory name
  58411. 06h ???
  58412. DX = ???
  58413. Return: CF clear
  58414. 07h ???
  58415. 08h ???
  58416. 09h get current application
  58417. Return: BX = application number
  58418. 0Ah ???
  58419. DX = application number
  58420. DS:SI = ???
  58421. Return: ???
  58422. 0Bh ???
  58423. 0Ch ???
  58424. DX = application number
  58425. ???
  58426. Return: ???
  58427. 0Dh ???
  58428. DX = application number
  58429. ???
  58430. Return: ???
  58431. 0Eh get ???
  58432. Return: CF clear
  58433. AX = ???
  58434. 0Fh set ??? flag
  58435. 10h clear ??? flag
  58436. 11h find application by name
  58437. DS:SI -> ASCIZ application name
  58438. Return: CF clear
  58439. AX = application number or FFFFh if not loaded
  58440. 12h ???
  58441. DX = application number
  58442. Return: CF clear
  58443. ???
  58444. 13h ???
  58445. Return: CF clear
  58446. 14h ???
  58447. same as function 13h
  58448. 15h set ???
  58449. DX = ???
  58450. 16h get ???
  58451. Return: AX = ??? set by function 15h
  58452. 17h get ???
  58453. Return: BX = ???
  58454. CX = ??? (may be pointer in BX:CX)
  58455. 18h BUG: branches incorrectly due to fencepost error
  58456. Program: Headroom is a TSR/task switcher by Helix Software
  58457. SeeAlso: AX=4C57h,AX=5757h,INT 2F/AX=5758h
  58458. --------D-2158-------------------------------
  58459. INT 21 - DOS 2.11+ - GET OR SET MEMORY ALLOCATION STRATEGY
  58460. AH = 58h
  58461. AL = subfunction
  58462. 00h get allocation strategy
  58463. Return: AX = current strategy (see #01679)
  58464. 01h set allocation strategy
  58465. BL = new allocation strategy (see #01679)
  58466. BH = 00h (DOS 5+)
  58467. Return: CF clear if successful
  58468. CF set on error
  58469. AX = error code (01h) (see #01680)
  58470. Notes: the Set subfunction accepts any value in BL for DOS 3.x and 4.x;
  58471. 2 or greater means last fit
  58472. the Get subfunction returns the last value set
  58473. setting an allocation strategy involving high memory does not
  58474. automatically link in the UMB memory chain; this must be done
  58475. explicitly with AX=5803h in order to actually allocate high memory
  58476. a program which changes the allocation strategy should restore it
  58477. before terminating
  58478. Toshiba MS-DOS v2.11 supports subfunctions 00h and 01h, as does the
  58479. TI Professional MS-DOS v2.13
  58480. DR DOS 3.41 reportedly reverses subfunctions 00h and 01h
  58481. SeeAlso: AH=48h,AH=49h,AH=4Ah,INT 2F/AX=4310h"XMS",INT 67/AH=3Fh
  58482. (Table 01679)
  58483. Values for DOS memory allocation strategy:
  58484. 00h low memory first fit
  58485. 01h low memory best fit
  58486. 02h low memory last fit
  58487. ---DOS 5+ ---
  58488. 40h high memory first fit
  58489. 41h high memory best fit
  58490. 42h high memory last fit
  58491. 80h first fit, try high then low memory
  58492. 81h best fit, try high then low memory
  58493. 82h last fit, try high then low memory
  58494. --------D-2158-------------------------------
  58495. INT 21 - DOS 5+ - GET OR SET UMB LINK STATE
  58496. AH = 58h
  58497. AL = subfunction
  58498. 02h get UMB link state
  58499. Return: AL = current link state
  58500. 00h UMBs not part of DOS memory chain
  58501. 01h UMBs in DOS memory chain
  58502. 03h set UMB link state
  58503. BX = new link state
  58504. 0000h remove UMBs from DOS memory chain
  58505. 0001h add UMBs to DOS memory chain
  58506. Return: CF clear if successful
  58507. CF set on error
  58508. AX = error code (01h) (see #01680)
  58509. Notes: a program which changes the UMB link state should restore it before
  58510. terminating
  58511. UMBs will only be available if CONFIG.SYS contains the line DOS=UMB,
  58512. the UMBs have been linked into the memory chain with AX=5803h, and
  58513. the allocation strategy has been set to include high memory with
  58514. AX=5801h
  58515. SeeAlso: #01687,#02766 at INT 2F/AX=4310h
  58516. --------v-2158CC-----------------------------
  58517. INT 21 - VIRUS - "1067"/"Headcrash" - INSTALLATION CHECK
  58518. AX = 58CCh
  58519. Return: CF clear if resident
  58520. SeeAlso: AX=5741h"VIRUS",AX=5643h,AX=5252h,AX=58DDh,AX=6303h"VIRUS",AX=6969h
  58521. --------v-2158DD-----------------------------
  58522. INT 21 - VIRUS - "1067"/"Headcrash" - GET ORIGINAL INT 21h VECTOR
  58523. AX = 58DDh
  58524. Return: CX = code segment of virus
  58525. ES:BX = old INT 21h vector
  58526. SeeAlso: AX=5252h,AX=58CCh,AX=6969h
  58527. --------D-2159--BX0000-----------------------
  58528. INT 21 - DOS 3.0+ - GET EXTENDED ERROR INFORMATION
  58529. AH = 59h
  58530. BX = 0000h
  58531. Return: AX = extended error code (see #01680)
  58532. BH = error class (see #01682)
  58533. BL = recommended action (see #01683)
  58534. CH = error locus (see #01684)
  58535. ES:DI may be pointer (see #01681, #01680)
  58536. CL, DX, SI, BP, and DS destroyed
  58537. Notes: functions available under DOS 2.x map the true DOS 3.0+ error code into
  58538. one supported under DOS 2.x
  58539. you should call this function to retrieve the true error code when an
  58540. FCB or DOS 2.x call returns an error
  58541. under DR DOS 5.0, this function does not use any of the DOS-internal
  58542. stacks and may thus be called at any time
  58543. SeeAlso: AH=59h/BX=0001h,AX=5D0Ah,INT 2F/AX=122Dh
  58544. (Table 01680)
  58545. Values for DOS extended error code:
  58546. 00h (0) no error
  58547. 01h (1) function number invalid
  58548. 02h (2) file not found
  58549. 03h (3) path not found
  58550. 04h (4) too many open files (no handles available)
  58551. 05h (5) access denied
  58552. 06h (6) invalid handle
  58553. 07h (7) memory control block destroyed
  58554. 08h (8) insufficient memory
  58555. 09h (9) memory block address invalid
  58556. 0Ah (10) environment invalid (usually >32K in length)
  58557. 0Bh (11) format invalid
  58558. 0Ch (12) access code invalid
  58559. 0Dh (13) data invalid
  58560. 0Eh (14) reserved
  58561. 0Fh (15) invalid drive
  58562. 10h (16) attempted to remove current directory
  58563. 11h (17) not same device
  58564. 12h (18) no more files
  58565. ---DOS 3.0+ ---
  58566. 13h (19) disk write-protected
  58567. 14h (20) unknown unit
  58568. 15h (21) drive not ready
  58569. 16h (22) unknown command
  58570. 17h (23) data error (CRC)
  58571. 18h (24) bad request structure length
  58572. 19h (25) seek error
  58573. 1Ah (26) unknown media type (non-DOS disk)
  58574. 1Bh (27) sector not found
  58575. 1Ch (28) printer out of paper
  58576. 1Dh (29) write fault
  58577. 1Eh (30) read fault
  58578. 1Fh (31) general failure
  58579. 20h (32) sharing violation
  58580. 21h (33) lock violation
  58581. 22h (34) disk change invalid (ES:DI -> media ID structure)(see #01681)
  58582. 23h (35) FCB unavailable
  58583. 24h (36) sharing buffer overflow
  58584. 25h (37) (DOS 4.0+) code page mismatch
  58585. 26h (38) (DOS 4.0+) cannot complete file operation (out of input)
  58586. 27h (39) (DOS 4.0+) insufficient disk space
  58587. 28h-31h reserved
  58588. 32h (50) network request not supported
  58589. 33h (51) remote computer not listening
  58590. 34h (52) duplicate name on network
  58591. 35h (53) network name not found
  58592. 36h (54) network busy
  58593. 37h (55) network device no longer exists
  58594. 38h (56) network BIOS command limit exceeded
  58595. 39h (57) network adapter hardware error
  58596. 3Ah (58) incorrect response from network
  58597. 3Bh (59) unexpected network error
  58598. 3Ch (60) incompatible remote adapter
  58599. 3Dh (61) print queue full
  58600. 3Eh (62) queue not full
  58601. 3Fh (63) not enough space to print file
  58602. 40h (64) network name was deleted
  58603. 41h (65) network: Access denied
  58604. 42h (66) network device type incorrect
  58605. 43h (67) network name not found
  58606. 44h (68) network name limit exceeded
  58607. 45h (69) network BIOS session limit exceeded
  58608. 46h (70) temporarily paused
  58609. 47h (71) network request not accepted
  58610. 48h (72) network print/disk redirection paused
  58611. 49h (73) network software not installed
  58612. (LANtastic) invalid network version
  58613. 4Ah (74) unexpected adapter close
  58614. (LANtastic) account expired
  58615. 4Bh (75) (LANtastic) password expired
  58616. 4Ch (76) (LANtastic) login attempt invalid at this time
  58617. 4Dh (77) (LANtastic v3+) disk limit exceeded on network node
  58618. 4Eh (78) (LANtastic v3+) not logged in to network node
  58619. 4Fh (79) reserved
  58620. 50h (80) file exists
  58621. 51h (81) reserved
  58622. 52h (82) cannot make directory
  58623. 53h (83) fail on INT 24h
  58624. 54h (84) (DOS 3.3+) too many redirections
  58625. 55h (85) (DOS 3.3+) duplicate redirection
  58626. 56h (86) (DOS 3.3+) invalid password
  58627. 57h (87) (DOS 3.3+) invalid parameter
  58628. 58h (88) (DOS 3.3+) network write fault
  58629. 59h (89) (DOS 4.0+) function not supported on network
  58630. 5Ah (90) (DOS 4.0+) required system component not installed
  58631. 5Bh (91) (NetWare4) timer server table overflowed
  58632. 5Ch (92) (NetWare4) duplicate in timer service table
  58633. 5Dh (93) (NetWare4) no items to work on
  58634. 5Fh (95) (NetWare4) invalid interrupt
  58635. 64h (100) (MSCDEX) unknown error
  58636. 64h (100) (NetWare4) open semaphore limit exceeded
  58637. 65h (101) (MSCDEX) not ready
  58638. 65h (101) (NetWare4) exclusive semaphore is already owned
  58639. 66h (102) (MSCDEX) EMS memory no longer valid
  58640. 66h (102) (NetWare4) semaphore was set when close attempted
  58641. 67h (103) (MSCDEX) not High Sierra or ISO-9660 format
  58642. 67h (103) (NetWare4) too many exclusive semaphore requests
  58643. 68h (104) (MSCDEX) door open
  58644. 68h (104) (NetWare4) operation invalid from interrupt handler
  58645. 69h (105) (NetWare4) semaphore owner died
  58646. 6Ah (106) (NetWare4) semaphore limit exceeded
  58647. 6Bh (107) (NetWare4) insert drive B: disk into drive A:
  58648. 6Ch (108) (NetWare4) drive locked by another process
  58649. 6Dh (109) (NetWare4) broken pipe
  58650. 6Eh (110) (NetWare4) pipe open/create failed
  58651. 6Fh (111) (NetWare4) pipe buffer overflowed
  58652. 70h (112) (NetWare4) disk full
  58653. 71h (113) (NetWare4) no more search handles
  58654. 72h (114) (NetWare4) invalid target handle for dup2
  58655. 73h (115) (NetWare4) bad user virtual address
  58656. 74h (116) (NetWare4) error on console I/O
  58657. 75h (117) (NetWare4) unknown category code for IOCTL
  58658. 76h (118) (NetWare4) invalid value for verify flag
  58659. 77h (119) (NetWare4) level four driver not found
  58660. 78h (120) (NetWare4) invalid function number
  58661. 79h (121) (NetWare4) semaphore timeout
  58662. 7Ah (122) (NetWare4) buffer too small
  58663. 7Bh (123) (NetWare4) invalid character or bad file-system name
  58664. 7Ch (124) (NetWare4) unimplemented information level
  58665. 7Dh (125) (NetWare4) no volume label found
  58666. 7Eh (126) (NetWare4) module handle not found
  58667. 7Fh (127) (NetWare4) procedure address not found
  58668. 80h (128) (NetWare4) CWait found no children
  58669. 81h (129) (NetWare4) CWait children still running
  58670. 82h (130) (NetWare4) invalid operation for direct disk-access handle
  58671. 83h (131) (NetWare4) attempted seek to negative offset
  58672. 84h (132) (NetWare4) attempted to seek on device or pipe
  58673. 85h (133) (NetWare4) drive already has JOINed drives
  58674. 86h (134) (NetWare4) drive is already JOINed
  58675. 87h (135) (NetWare4) drive is already SUBSTed
  58676. 88h (136) (NetWare4) can not delete drive which is not JOINed
  58677. 89h (137) (NetWare4) can not delete drive which is not SUBSTed
  58678. 8Ah (138) (NetWare4) can not JOIN to a JOINed drive
  58679. 8Bh (139) (NetWare4) can not SUBST to a SUBSTed drive
  58680. 8Ch (140) (NetWare4) can not JOIN to a SUBSTed drive
  58681. 8Dh (141) (NetWare4) can not SUBST to a JOINed drive
  58682. 8Eh (142) (NetWare4) drive is busy
  58683. 8Fh (143) (NetWare4) can not JOIN/SUBST to same drive
  58684. 90h (144) (NetWare4) directory must not be root directory
  58685. 91h (145) (NetWare4) can only JOIN to empty directory
  58686. 92h (146) (NetWare4) path is already in use for SUBST
  58687. 93h (147) (NetWare4) path is already in use for JOIN
  58688. 94h (148) (NetWare4) path is in use by another process
  58689. 95h (149) (NetWare4) directory previously SUBSTituted
  58690. 96h (150) (NetWare4) system trace error
  58691. 97h (151) (NetWare4) invalid event count for DosMuxSemWait
  58692. 98h (152) (NetWare4) too many waiting on mutex
  58693. 99h (153) (NetWare4) invalid list format
  58694. 9Ah (154) (NetWare4) volume label too large
  58695. 9Bh (155) (NetWare4) unable to create another TCB
  58696. 9Ch (156) (NetWare4) signal refused
  58697. 9Dh (157) (NetWare4) segment discarded
  58698. 9Eh (158) (NetWare4) segment not locked
  58699. 9Fh (159) (NetWare4) invalid thread-ID address
  58700. A0h (160) (NetWare4) bad environment pointer
  58701. A1h (161) (NetWare4) invalid name passed to EXEC
  58702. A2h (162) (NetWare4) signal already pending
  58703. A3h (163) (NetWare4) ERROR_124 mapping
  58704. A4h (164) (NetWare4) no more process slots
  58705. A5h (165) (NetWare4) ERROR_124 mapping
  58706. B0h (176) (MS-DOS 7.0) volume is not locked
  58707. B1h (177) (MS-DOS 7.0) volume is locked in drive
  58708. B2h (178) (MS-DOS 7.0) volume is not removable
  58709. B4h (180) (MS-DOS 7.0) lock count has been exceeded
  58710. B4h (180) (NetWare4) invalid segment number
  58711. B5h (181) (MS-DOS 7.0) a valid eject request failed
  58712. B5h (181) (NetWare4) invalid call gate
  58713. B6h (182) (NetWare4) invalid ordinal
  58714. B7h (183) (NetWare4) shared segment already exists
  58715. B8h (184) (NetWare4) no child process to wait for
  58716. B9h (185) (NetWare4) NoWait specified and child still running
  58717. BAh (186) (NetWare4) invalid flag number
  58718. BBh (187) (NetWare4) semaphore does not exist
  58719. BCh (188) (NetWare4) invalid starting code segment
  58720. BDh (189) (NetWare4) invalid stack segment
  58721. BEh (190) (NetWare4) invalid module type (DLL can not be used as application)
  58722. BFh (191) (NetWare4) invalid EXE signature
  58723. C0h (192) (NetWare4) EXE marked invalid
  58724. C1h (193) (NetWare4) bad EXE format (e.g. DOS-mode program)
  58725. C2h (194) (NetWare4) iterated data exceeds 64K
  58726. C3h (195) (NetWare4) invalid minimum allocation size
  58727. C4h (196) (NetWare4) dynamic link from invalid Ring
  58728. C5h (197) (NetWare4) IOPL not enabled
  58729. C6h (198) (NetWare4) invalid segment descriptor privilege level
  58730. C7h (199) (NetWare4) automatic data segment exceeds 64K
  58731. C8h (200) (NetWare4) Ring2 segment must be moveable
  58732. C9h (201) (NetWare4) relocation chain exceeds segment limit
  58733. CAh (202) (NetWare4) infinite loop in relocation chain
  58734. CBh (203) (NetWare4) environment variable not found
  58735. CCh (204) (NetWare4) not current country
  58736. CDh (205) (NetWare4) no signal sent
  58737. CEh (206) (NetWare4) file name not 8.3
  58738. CFh (207) (NetWare4) Ring2 stack in use
  58739. D0h (208) (NetWare4) meta expansion is too long
  58740. D1h (209) (NetWare4) invalid signal number
  58741. D2h (210) (NetWare4) inactive thread
  58742. D3h (211) (NetWare4) file system information not available
  58743. D4h (212) (NetWare4) locked error
  58744. D5h (213) (NetWare4) attempted to execute non-family API call in DOS mode
  58745. D6h (214) (NetWare4) too many modules
  58746. D7h (215) (NetWare4) nesting not allowed
  58747. E6h (230) (NetWare4) non-existent pipe, or bad operation
  58748. E7h (231) (NetWare4) pipe is busy
  58749. E8h (232) (NetWare4) no data available for nonblocking read
  58750. E9h (233) (NetWare4) pipe disconnected by server
  58751. EAh (234) (NetWare4) more data available
  58752. FFh (255) (NetWare4) invalid drive
  58753. SeeAlso: #01682,#01683,#01684,#01961
  58754. Format of media ID structure:
  58755. Offset Size Description (Table 01681)
  58756. 00h 12 BYTEs ASCIZ volume label of required disk
  58757. 0Ch DWORD serial number (DOS 4.0+)
  58758. (Table 01682)
  58759. Values for DOS Error Class:
  58760. 01h (1) out of resource (storage space or I/O channels)
  58761. 02h (2) temporary situation (file or record lock)
  58762. 03h (3) authorization (denied access)
  58763. 04h (4) internal (system software bug)
  58764. 05h (5) hardware failure
  58765. 06h (6) system failure (configuration file missing or incorrect)
  58766. 07h (7) application program error
  58767. 08h (8) not found
  58768. 09h (9) bad format
  58769. 0Ah (10) locked
  58770. 0Bh (11) media error
  58771. 0Ch (12) already exists
  58772. 0Dh (13) unknown
  58773. SeeAlso: #01680,#01683,#01684
  58774. (Table 01683)
  58775. Values for DOS Suggested Action:
  58776. 01h retry
  58777. 02h delayed retry
  58778. 03h prompt user to reenter input
  58779. 04h abort after cleanup
  58780. 05h immediate abort
  58781. 06h ignore
  58782. 07h retry after user intervention
  58783. SeeAlso: #01680,#01682,#01684
  58784. (Table 01684)
  58785. Values for DOS Error Locus:
  58786. 01h unknown or not appropriate
  58787. 02h block device (disk error)
  58788. 03h network related
  58789. 04h serial device (timeout)
  58790. 05h memory related
  58791. SeeAlso: #01680,#01682,#01683
  58792. --------D-2159--BX0001-----------------------
  58793. INT 21 - European MS-DOS 4.0 - GET HARD ERROR INFORMATION
  58794. AH = 59h
  58795. BX = 0001h
  58796. Return: ES:DI -> hard error information packet (see #01685) for most recent
  58797. hard (critical) error
  58798. SeeAlso: AH=59h/BX=0000h,AH=95h,INT 24
  58799. Format of European MS-DOS 4.0 hard error information packet:
  58800. Offset Size Description (Table 01685)
  58801. 00h WORD contents of AX at system entry
  58802. 02h WORD Process ID which encountered error
  58803. 04h WORD contents of AX at time of error
  58804. 06h BYTE error type
  58805. 00h physical I/O error
  58806. 01h disk change request
  58807. 02h file sharing violation
  58808. 03h FCB problem
  58809. 04h file locking violation
  58810. 05h bad FAT
  58811. 06h network detected error
  58812. 07h BYTE INT 24 error code
  58813. 08h WORD extended error code (see #01680)
  58814. 0Ah DWORD pointer to associated device
  58815. --------D-215A-------------------------------
  58816. INT 21 - DOS 3.0+ - CREATE TEMPORARY FILE
  58817. AH = 5Ah
  58818. CX = file attribute (see #01420 at AX=4301h)
  58819. DS:DX -> ASCIZ path ending with a '\' + 13 zero bytes to receive the
  58820. generated filename
  58821. Return: CF clear if successful
  58822. AX = file handle opened for read/write in compatibility mode
  58823. DS:DX pathname extended with generated name for temporary file
  58824. CF set on error
  58825. AX = error code (03h,04h,05h) (see #01680)
  58826. Desc: creates a file with a unique name which must be explicitly deleted
  58827. Notes: under the FlashTek X-32 DOS extender, the path pointer is in DS:EDX
  58828. MS-DOS 3.0-4.0 and DR DOS 3.4-5.0 generate the filename as a sequence
  58829. of hex digits based on the current date and time; MS-DOS 6+,
  58830. DR DOS 6, and Novell DOS 7 use letters A-P in place of hex digits
  58831. MS-DOS 5.0 and DR DOS 3.41/5.0 will insert a missing trailing backslash
  58832. before appending the generated filename, but due to this, an empty
  58833. string results in a file in the root directory
  58834. BUGS: COMPAQ DOS 3.31 hangs if the pathname is at XXXXh:0000h; it apparently
  58835. wraps around to the end of the segment
  58836. MS-DOS 5.00 revisions A and B and PC-DOS 5.00 revision A reportedly
  58837. hang the system if the specified path is the root directory and the
  58838. root directory is full (no free directory entries)
  58839. Mark Incley <mincley@krisalis.demon.co.uk> reports that this function
  58840. hangs in MS-DOS 6.2x if the name includes two consecutive path
  58841. separators (e.g. C:\\ )
  58842. SeeAlso: AH=3Ch,AH=5Bh
  58843. --------D-215B-------------------------------
  58844. INT 21 - DOS 3.0+ - CREATE NEW FILE
  58845. AH = 5Bh
  58846. CX = file attribute (see #01420 at AX=4301h)
  58847. DS:DX -> ASCIZ filename
  58848. Return: CF clear if successful
  58849. AX = file handle opened for read/write in compatibility mode
  58850. CF set on error
  58851. AX = error code (03h,04h,05h,50h) (see #01680)
  58852. Notes: unlike AH=3Ch, this function will fail if the specified file exists
  58853. rather than truncating it; this permits its use in creating semaphore
  58854. files because it is an atomic "test and set" operation
  58855. under the FlashTek X-32 DOS extender, the filename pointer is in DS:EDX
  58856. SeeAlso: AH=3Ch,AH=5Ah
  58857. --------D-215C-------------------------------
  58858. INT 21 - DOS 3.0+ - "FLOCK" - RECORD LOCKING
  58859. AH = 5Ch
  58860. AL = subfunction
  58861. 00h lock region of file
  58862. 01h unlock region of file
  58863. BX = file handle
  58864. CX:DX = start offset of region within file
  58865. SI:DI = length of region in bytes
  58866. Return: CF clear if successful
  58867. CF set on error
  58868. AX = error code (01h,06h,21h,24h) (see #01680)
  58869. Notes: error returned unless SHARE or network installed
  58870. an unlock call must specify the same region as some prior lock call
  58871. locked regions become entirely inaccessible to other processes
  58872. duplicate handles created with AH=45h or AH=46h inherit locks, but
  58873. handles inherited by child processes (see AH=4Bh) do not
  58874. under DR DOS 3.41 and 5.0, if a process opens a file without the no-
  58875. inherit flag and then starts a child, any locks set by the parent
  58876. are ignored, and the child will only get an error if it tries to
  58877. lock an area previously locked by the parent process. Under Novell
  58878. DOS 7, this function is fully supported as in MS-DOS.
  58879. SeeAlso: AX=440Bh,AH=BCh,AH=BEh,INT 2F/AX=110Ah,INT 2F/AX=110Bh
  58880. --------D-215D00-----------------------------
  58881. INT 21 U - DOS 3.1+ internal - SERVER FUNCTION CALL
  58882. AX = 5D00h
  58883. DS:DX -> DOS parameter list (see #01686)
  58884. DPL contains all register values for a call to INT 21h
  58885. Return: as appropriate for function being called
  58886. Notes: does not check AH. Out of range values will crash the system
  58887. executes using specified computer ID and process ID
  58888. sharing delay loops skipped
  58889. a special sharing mode is enabled to handle FCBs opened across network
  58890. wildcards are enabled for DELETE (AH=41h) and RENAME (AH=56h) under
  58891. MS-DOS; under DR DOS 3.41, wildcards corrupt the filesystem; and
  58892. under DR DOS 5.0-6.0, the call returns error code 03h due to improper
  58893. support for the server function call (refer to BUGS: section below)
  58894. an extra file attribute parameter is enabled for OPEN (AH=3Dh),
  58895. DELETE (AH=41h), and RENAME (AH=56h)
  58896. functions which take filenames require canonical names (as returned
  58897. by AH=60h); this is apparently to prevent multi-hop file forwarding
  58898. BUGS: the OS/2 2.0 DOS Boot Session incorrectly maps DOS drive letters,
  58899. seemingly ignoring HPFS drives
  58900. DR DOS 5.0-6.0 merely recursively call INT 21 after loading the
  58901. registers from the DPL, leading to problems for peer-to-peer
  58902. networks
  58903. SeeAlso: AH=3Dh,AH=41h,AH=56h,AH=60h
  58904. Format of DOS parameter list:
  58905. Offset Size Description (Table 01686)
  58906. 00h WORD AX
  58907. 02h WORD BX
  58908. 04h WORD CX
  58909. 06h WORD DX
  58910. 08h WORD SI
  58911. 0Ah WORD DI
  58912. 0Ch WORD DS
  58913. 0Eh WORD ES
  58914. 10h WORD reserved (0)
  58915. 12h WORD computer ID (0 = current system)
  58916. 14h WORD process ID (PSP segment on specified computer)
  58917. Note: under Windows Enhanced mode, the computer ID is normally the virtual
  58918. machine ID (see INT 2F/AX=1683h), though this can reportedly be
  58919. changed by setting UniqueDOSPSP= in SYSTEM.INI
  58920. --------D-215D01-----------------------------
  58921. INT 21 U - DOS 3.1+ internal - COMMIT ALL FILES FOR SPECIFIED COMPUTER/PROCESS
  58922. AX = 5D01h
  58923. DS:DX -> DOS parameter list (see #01686), only computer ID and
  58924. process ID fields used
  58925. Return: CF set on error
  58926. AX = error code (see #01680)
  58927. CF clear if successful
  58928. Notes: flushes buffers and updates directory entries for each file which has
  58929. been written to; if remote file, calls INT 2F/AX=1107h
  58930. the computer ID and process ID are stored but ignored under DOS 3.3
  58931. not supported by DR DOS 3.41 and 5.0; returns error code 01h. Fully
  58932. supported by Novell DOS 7
  58933. SeeAlso: AH=0Dh,AH=68h,INT 2F/AX=1107h
  58934. --------D-215D02-----------------------------
  58935. INT 21 U - DOS 3.1+ internal - SHARE.EXE - CLOSE FILE BY NAME
  58936. AX = 5D02h
  58937. DS:DX -> DOS parameter list (see #01686), only fields DX, DS,
  58938. computer ID, and process ID used
  58939. DPL's DS:DX -> ASCIZ name of file to close
  58940. Return: CF set on error
  58941. AX = error code (see #01680)
  58942. CF clear if successful
  58943. Notes: error unless SHARE is loaded (calls [SysFileTable-28h])
  58944. (see #01636 at AH=52h)
  58945. name must be canonical fully-qualified, such as returned by AH=60h
  58946. not supported by DR DOS 3.41 and 5.0; returns error code 01h
  58947. not supported by Novell DOS 7, although in Update 15 it is reported
  58948. to no longer return an error code
  58949. SeeAlso: AX=5D03h,AX=5D04h,AH=3Eh,AH=60h
  58950. --------D-215D03-----------------------------
  58951. INT 21 U - DOS 3.1+ internal - SHARE.EXE - CLOSE ALL FILES FOR GIVEN COMPUTER
  58952. AX = 5D03h
  58953. DS:DX -> DOS parameter list (see #01686), only computer ID used
  58954. Return: CF set on error
  58955. AX = error code (see #01680)
  58956. CF clear if successful
  58957. Notes: error unless SHARE is loaded (calls [SysFileTable-30h])
  58958. (see #01636 at AH=52h)
  58959. not supported by DR DOS 3.41 and 5.0; returns error code 01h
  58960. not supported by Novell DOS 7 (at least through Update 4; may be
  58961. supported in Update 15)
  58962. SeeAlso: AX=5D02h,AX=5D04h
  58963. --------D-215D04-----------------------------
  58964. INT 21 U - DOS 3.1+ internal - SHARE.EXE - CLOSE ALL FILES FOR GIVEN PROCESS
  58965. AX = 5D04h
  58966. DS:DX -> DOS parameter list (see #01686), only computer ID and
  58967. process ID fields used
  58968. Return: CF set on error
  58969. AX = error code (see #01680)
  58970. CF clear if successful
  58971. Notes: error unless SHARE is loaded (calls [SysFileTable-2Ch])
  58972. (see #01636 at AH=52h)
  58973. not supported by DR DOS 3.41 and 5.0; returns error code 01h
  58974. not supported by Novell DOS 7
  58975. SeeAlso: AX=5D02h,AX=5D03h,INT 2F/AX=111Dh
  58976. --------D-215D05-----------------------------
  58977. INT 21 U - DOS 3.1+ internal - SHARE.EXE - GET OPEN FILE LIST ENTRY
  58978. AX = 5D05h
  58979. DS:DX -> DOS parameter list (see #01686)
  58980. DPL's BX = index of sharing record (see #01637 at AH=52h)
  58981. DPL's CX = index of SFT in sharing record's SFT list
  58982. Return: CF clear if successful
  58983. ES:DI -> ASCIZ filename
  58984. BX = network machine number of SFT's owner
  58985. CX = number of locks held by SFT's owner
  58986. CF set if either index out of range
  58987. AX = 0012h (no more files)
  58988. Notes: error unless SHARE is loaded (calls [SysFileTable-18h])
  58989. (see #01636 at AH=52h)
  58990. names are always canonical fully-qualified, such as returned by AH=60h
  58991. not supported by DR DOS 3.41 and 5.0 and Novell DOS 7, but does not
  58992. return an error, instead destroying AX
  58993. SeeAlso: AH=5Ch,AH=60h
  58994. --------D-215D06-----------------------------
  58995. INT 21 U - DOS 3.0+ internal - GET ADDRESS OF DOS SWAPPABLE DATA AREA
  58996. AX = 5D06h
  58997. Return: CF set on error
  58998. AX = error code (see #01680)
  58999. CF clear if successful
  59000. DS:SI -> nonreentrant data area (includes all three DOS stacks)
  59001. (critical error flag is first byte) (see #01687)
  59002. CX = size in bytes of area which must be swapped while in DOS
  59003. DX = size in bytes of area which must always be swapped
  59004. Notes: the Critical Error flag is used in conjunction with the InDOS flag
  59005. (see AH=34h) to determine when it is safe to enter DOS from a TSR
  59006. setting CritErr flag allows use of functions 50h/51h from INT 28h under
  59007. DOS 2.x by forcing use of correct stack
  59008. swapping the data area allows reentering DOS unless DOS is in a
  59009. critical section delimited by INT 2A/AH=80h and INT 2A/AH=81h,82h
  59010. under DOS 4.0, AX=5D0Bh should be used instead of this function
  59011. SHARE and other DOS utilities consult the byte at offset 04h in the
  59012. DOS data segment (see INT 2F/AX=1203h) to determine the SDA format
  59013. in use: 00h = DOS 3.x, 01h = DOS 4.0-6.0, other = error.
  59014. DR DOS 3.41+ supports this function, but the SDA format beyond the
  59015. first 18h bytes is completely different from MS-DOS
  59016. BUG: calling this function with certain values in DX crashes Novell DOS 7.0
  59017. prior to Update 14
  59018. SeeAlso: AX=5D0Bh,INT 2A/AH=80h,INT 2A/AH=81h,INT 2A/AH=82h
  59019. Format of DOS 3.10-3.30 Swappable Data Area:
  59020. Offset Size Description (Table 01687)
  59021. -34 BYTE (DOS 3.10+) printer echo flag (00h off, FFh active)
  59022. -31 BYTE (DOS 3.30) current switch character
  59023. -30 BYTE current memory allocation strategy (see AH=58h)
  59024. -28 BYTE (DOS 3.30) incremented on each INT 21/AX=5E01h call
  59025. -27 16 BYTEs (DOS 3.30) machine name set by INT 21/AX=5E01h
  59026. -11 5 WORDs zero-terminated list of offsets which need to be patched to
  59027. enable critical-section calls (see INT 2A/AH=80h)
  59028. -1 BYTE unused padding
  59029. ---start of actual SDA---
  59030. 00h BYTE critical error flag ("ErrorMode")
  59031. 01h BYTE InDOS flag (count of active INT 21 calls)
  59032. 02h BYTE drive on which current critical error occurred, or FFh
  59033. (DR DOS sets to drive number during INT 24, 00h otherwise)
  59034. 03h BYTE locus of last error
  59035. 04h WORD extended error code of last error
  59036. 06h BYTE suggested action for last error
  59037. 07h BYTE class of last error
  59038. 08h DWORD ES:DI pointer for last error
  59039. 0Ch DWORD current DTA (Disk Transfer Address)
  59040. note: may point into SDA during the DOS EXEC function
  59041. (see AH=4Bh), so programs which swap the SDA must be
  59042. prepared to move the DTA to a private buffer if they
  59043. might be invoked during an EXEC
  59044. 10h WORD current PSP
  59045. 12h WORD stores SP across an INT 23
  59046. 14h WORD return code from last process termination (zerod after reading
  59047. with AH=4Dh)
  59048. 16h BYTE current drive
  59049. 17h BYTE extended break flag
  59050. ---remainder need only be swapped if in DOS---
  59051. 18h WORD value of AX on call to INT 21
  59052. 1Ah WORD PSP segment for sharing/network
  59053. 1Ch WORD network machine number for sharing/network (0000h = us)
  59054. 1Eh WORD first usable memory block found when allocating memory
  59055. 20h WORD best usable memory block found when allocating memory
  59056. 22h WORD last usable memory block found when allocating memory
  59057. 24h WORD memory size in paragraphs (used only during initialization)
  59058. 26h WORD last entry checked during directory search
  59059. 28h BYTE flag: INT 24 returned Fail
  59060. 29h BYTE flags: allowable INT 24 actions (passed to INT 24 in AH)
  59061. 2Ah BYTE directory flag (00h directory, 01h file)
  59062. 2Bh BYTE flag: FFh if Ctrl-Break termination, 00h otherwise
  59063. 2Ch BYTE flag: allow embedded blanks in FCB
  59064. 2Dh BYTE padding (unused)
  59065. 2Eh BYTE day of month
  59066. 2Fh BYTE month
  59067. 30h WORD year - 1980
  59068. 32h WORD number of days since 01jan1980
  59069. 34h BYTE day of week (0 = Sunday)
  59070. 35h BYTE flag: console swapped during read from device
  59071. 36h BYTE flag: safe to call INT 28 if nonzero
  59072. 37h BYTE flag: if nonzero, INT 24 Abort turned into INT 24 Fail
  59073. (set only during process termination)
  59074. 38h 26 BYTEs device driver request header (see #02597 at INT 2F/AX=0802h)
  59075. 52h DWORD pointer to device driver entry point (used in calling driver)
  59076. 56h 22 BYTEs device driver request header for I/O calls
  59077. 6Ch 14 BYTEs device driver request header for disk status check
  59078. 7Ah DWORD pointer to device I/O buffer???
  59079. 7Eh WORD ???
  59080. 80h WORD ???
  59081. 82h BYTE type of PSP copy (00h=simple for INT 21/AH=26h, FFh=make child)
  59082. 83h BYTE padding (unused)
  59083. 84h 3 BYTEs 24-bit user number (see AH=30h)
  59084. 87h BYTE OEM number (see #01394 at AH=30h)
  59085. 88h WORD offset to error code conversion table for INT 25/INT 26
  59086. 8Ah 6 BYTEs CLOCK$ transfer record (see #01688)
  59087. 90h BYTE device I/O buffer for single-byte I/O functions
  59088. 91h BYTE padding??? (unused)
  59089. 92h 128 BYTEs buffer for filename
  59090. 112h 128 BYTEs buffer for filename
  59091. 192h 21 BYTEs findfirst/findnext search data block (see #01626 at AH=4Eh)
  59092. 1A7h 32 BYTEs directory entry for found file (see #01352 at AH=11h)
  59093. 1C7h 81 BYTEs copy of current directory structure for drive being accessed
  59094. 218h 11 BYTEs FCB-format filename for device name comparison
  59095. 223h BYTE terminating NUL for above filename
  59096. 224h 11 BYTEs wildcard destination specification for rename (FCB format)
  59097. 22Fh BYTE terminating NUL for above spec
  59098. 230h BYTE ???
  59099. 231h WORD destination file/directory starting sector
  59100. 233h 5 BYTEs ???
  59101. 238h BYTE extended FCB file attribute
  59102. 239h BYTE type of FCB (00h regular, FFh extended)
  59103. 23Ah BYTE directory search attributes
  59104. 23Bh BYTE file open/access mode
  59105. 23Ch BYTE file found/delete flag
  59106. bit 0: file found
  59107. bit 4: file deleted
  59108. 23Dh BYTE flag: device name found on rename, or file not found
  59109. 23Eh BYTE splice flag (file name and directory name together)
  59110. 23Fh BYTE flag indicating how DOS function was invoked
  59111. (00h = direct INT 20/INT 21, FFh = server call AX=5D00h)
  59112. 240h BYTE sector position within cluster
  59113. 241h BYTE flag: translate sector/cluster (00h no, 01h yes)
  59114. 242h BYTE flag: 00h if read, 01h if write
  59115. 243h BYTE current working drive number
  59116. 244h BYTE cluster factor
  59117. 245h BYTE flag: cluster split mode
  59118. 246h BYTE line edit (AH=0Ah) insert mode flag (nonzero = on)
  59119. 247h BYTE canonicalized filename referred to existing file/dir if FFh
  59120. 248h BYTE volume ID flag
  59121. 249h BYTE type of process termination (00h-03h) (see AH=4Dh)
  59122. 24Ah BYTE file create flag (00h = no, search only)
  59123. 24Bh BYTE value with which to replace first byte of deleted file's name
  59124. (normally E5h, but 00h as described under INT 21/AH=13h)
  59125. 24Ch DWORD pointer to Drive Parameter Block for critical error invocation
  59126. temp: used during process termination
  59127. 250h DWORD pointer to stack frame containing user registers on INT 21
  59128. 254h WORD stores SP across INT 24
  59129. 256h DWORD pointer to DOS Drive Parameter Block for ???
  59130. 25Ah WORD saving partial cluster number
  59131. 25Ch WORD temp: sector of work current cluster
  59132. 25Eh WORD high part of cluster number (only low byte referenced)
  59133. 260h WORD ??? temp
  59134. 262h BYTE Media ID byte returned by AH=1Bh,1Ch
  59135. 263h BYTE padding (unused)
  59136. 264h DWORD pointer to device header when filename is character device
  59137. 268h DWORD pointer to current SFT
  59138. 26Ch DWORD pointer to current directory structure for drive being accessed
  59139. 270h DWORD pointer to caller's FCB
  59140. 274h WORD number of SFT to which file being opened will refer
  59141. 276h WORD temporary storage for file handle
  59142. 278h DWORD pointer to a JFT entry in process handle table
  59143. (see #01378 at AH=26h)
  59144. 27Ch WORD offset in DOS DS of first filename argument
  59145. 27Eh WORD offset in DOS DS of second filename argument
  59146. 280h WORD offset of last component in pathname or FFFFh
  59147. 282h WORD offset of transfer address to add
  59148. 284h WORD last relative cluster within file being accessed
  59149. 286h WORD temp: absolute cluster number being accessed
  59150. 288h WORD directory sector number
  59151. 28Ah WORD ??? current cluster number
  59152. 28Ch WORD current relative sector number within file
  59153. 28Eh WORD current sector number
  59154. 290h WORD current byte offset within sector
  59155. 292h DWORD current offset in file
  59156. 296h DWORD temp: file byte count
  59157. 29Ah WORD temp: file byte count
  59158. 29Ch WORD free file cluster entry
  59159. 29Eh WORD last file cluster entry
  59160. 2A0h WORD next file cluster number
  59161. 2A2h DWORD number of bytes appended to file
  59162. 2A6h DWORD pointer to current work disk buffer
  59163. 2AAh DWORD pointer to working SFT
  59164. 2AEh WORD used by INT 21 dispatcher to store caller's BX
  59165. 2B0h WORD used by INT 21 dispatcher to store caller's DS
  59166. 2B2h WORD temporary storage while saving/restoring caller's registers
  59167. 2B4h DWORD pointer to prev call frame (offset 250h) if INT 21 reentered
  59168. also switched to for duration of INT 24
  59169. 2B8h 21 BYTEs FindFirst search data for source file(s) of a rename operation
  59170. (see #01626 at AH=4Eh)
  59171. 2CDh 32 BYTEs directory entry for file being renamed (see #01352 at AH=11h)
  59172. 2EDh 331 BYTEs critical error stack
  59173. 403h 35 BYTEs scratch SFT
  59174. 438h 384 BYTEs disk stack (functions greater than 0Ch, INT 25,INT 26)
  59175. 5B8h 384 BYTEs character I/O stack (functions 01h through 0Ch)
  59176. ---DOS 3.2,3.3x only---
  59177. 738h BYTE device driver lookahead flag (usually printer)
  59178. (see AH=64h"DOS 3.2+")
  59179. 739h BYTE volume change flag
  59180. 73Ah BYTE flag: virtual open
  59181. 73Bh BYTE ???
  59182. Note: the only fields which remain valid BETWEEN calls to INT 21h are those
  59183. in the initial "swap-always" portion of the SDA
  59184. SeeAlso: #01690
  59185. Format of CLOCK$ transfer record:
  59186. Offset Size Description (Table 01688)
  59187. 00h WORD number of days since 1-Jan-1980
  59188. 02h BYTE minutes
  59189. 03h BYTE hours
  59190. 04h BYTE hundredths of second
  59191. 05h BYTE seconds
  59192. --------D-215D07-----------------------------
  59193. INT 21 U - DOS 3.1+ network - GET REDIRECTED PRINTER MODE
  59194. AX = 5D07h
  59195. Return: DL = mode
  59196. 00h redirected output is combined
  59197. 01h redirected output in separate print jobs
  59198. Note: MS-DOS and DR DOS 3.41/5.0 simply push AX on the stack and call
  59199. INT 2F/AX=1125h
  59200. SeeAlso: AX=5D08h,AX=5D09h,INT 2F/AX=1125h
  59201. --------D-215D08-----------------------------
  59202. INT 21 U - DOS 3.1+ network - SET REDIRECTED PRINTER MODE
  59203. AX = 5D08h
  59204. DL = mode
  59205. 00h redirected output is combined
  59206. 01h redirected output placed in separate jobs, start new print job
  59207. now
  59208. Return: nothing
  59209. Note: MS-DOS and DR DOS 3.41/5.0 simply push AX on the stack and call
  59210. INT 2F/AX=1125h
  59211. SeeAlso: AX=5D07h,AX=5D09h,INT 2F/AX=1125h
  59212. --------D-215D09-----------------------------
  59213. INT 21 U - DOS 3.1+ network - FLUSH REDIRECTED PRINTER OUTPUT
  59214. AX = 5D09h
  59215. Return: nothing
  59216. Desc: forces redirected printer output to be printed, and starts a new print
  59217. job
  59218. Notes: MS-DOS and DR DOS 3.41/5.0 simply push AX on the stack and call
  59219. INT 2F/AX=1125h
  59220. this function is also supported by 10Net, which calls it Terminate All
  59221. Spool Jobs, and does not flush if in "combine" mode
  59222. SeeAlso: AX=5D07h,AX=5D08h,INT 2F/AX=1125h
  59223. --------D-215D0A-----------------------------
  59224. INT 21 - DOS 3.1+ - SET EXTENDED ERROR INFORMATION
  59225. AX = 5D0Ah
  59226. DS:DX -> 11-word DOS parameter list (see #01686)
  59227. Return: nothing. next call to AH=59h will return values from fields AX,BX,CX,
  59228. DX,DI, and ES in corresponding registers
  59229. Notes: documented for DOS 5+, but undocumented in earlier versions
  59230. the MS-DOS Programmer's Reference incorrectly states that this call was
  59231. introduced in DOS 4, and fails to mention that the ERROR structure
  59232. passed to this function is a DOS parameter list.
  59233. BUGS: DR DOS 3.41 and 5.0 read the value for ES from the DS field of the
  59234. DPL; fortunately, MS-DOS ignores the DS field, allowing a generic
  59235. routine which sets both DS and ES fields to the same value
  59236. Novell DOS 7 (through at least Update 4) does not save the pointer,
  59237. which is always reported as 0000h:0000h by AH=59h; Update 15 fully
  59238. supports this function
  59239. SeeAlso: AH=59h/BX=0000h
  59240. --------D-215D0B-----------------------------
  59241. INT 21 OU - DOS 4.x only - internal - GET DOS SWAPPABLE DATA AREAS
  59242. AX = 5D0Bh
  59243. Return: CF set on error
  59244. AX = error code (see #01680)
  59245. CF clear if successful
  59246. DS:SI -> swappable data area list (see #01689)
  59247. Notes: copying and restoring the swappable data areas allows DOS to be
  59248. reentered unless it is in a critical section delimited by calls to
  59249. INT 2A/AH=80h and INT 2A/AH=81h,82h
  59250. SHARE and other DOS utilities consult the byte at offset 04h in the
  59251. DOS data segment (see INT 2F/AX=1203h) to determine the SDA format
  59252. in use: 00h = DOS 3.x, 01h = DOS 4.0-6.0, other = error.
  59253. DOS 5+ use the SDA format listed below, but revert back to the DOS 3.x
  59254. call for finding the SDA (see #01687); Novell DOS 7 does not support
  59255. this function, either.
  59256. SeeAlso: AX=5D06h,INT 2A/AH=80h,INT 2A/AH=81h,INT 2A/AH=82h,INT 2F/AX=1203h
  59257. Format of DOS 4.x swappable data area list:
  59258. Offset Size Description (Table 01689)
  59259. 00h WORD count of data areas
  59260. 02h N BYTEs "count" copies of data area record
  59261. Offset Size Description
  59262. 00h DWORD address
  59263. 04h WORD length and type
  59264. bit 15 set if swap always, clear if swap in DOS
  59265. bits 14-0: length in bytes
  59266. SeeAlso: #01690
  59267. Format of DOS 4.0-6.0 swappable data area:
  59268. Offset Size Description (Table 01690)
  59269. -34 BYTE printer echo flag (00h off, FFh active)
  59270. -31 BYTE current switch character (ignored by DOS 5+)
  59271. -30 BYTE current memory allocation strategy (see AH=58h)
  59272. -28 BYTE incremented on each INT 21/AX=5E01h call
  59273. -27 16 BYTEs machine name set by INT 21/AX=5E01h
  59274. -11 5 WORDs zero-terminated list of offsets which need to be patched to
  59275. enable critical-section calls (see INT 2A/AH=80h)
  59276. (all offsets are 0D0Ch, but this list is still present for
  59277. DOS 3.x compatibility)
  59278. -1 BYTE unused padding
  59279. Note: the above data is not actually part of the SDA, and is much more likely
  59280. to change between DOS versions/OEMs than data in the SDA itself
  59281. ---start of actual SDA---
  59282. 00h BYTE critical error flag ("ErrorMode")
  59283. 01h BYTE InDOS flag (count of active INT 21 calls)
  59284. 02h BYTE drive on which current critical error occurred or FFh
  59285. (DR DOS 3.41/5.0 set this to 00h when no critical error)
  59286. 03h BYTE locus of last error
  59287. 04h WORD extended error code of last error
  59288. 06h BYTE suggested action for last error
  59289. 07h BYTE class of last error
  59290. 08h DWORD ES:DI pointer for last error
  59291. 0Ch DWORD current DTA (Disk Transfer Address)
  59292. note: may point into SDA during the DOS EXEC function
  59293. (see AH=4Bh), so programs which swap the SDA must be
  59294. prepared to move the DTA to a private buffer if they
  59295. might be invoked during an EXEC
  59296. 10h WORD current PSP
  59297. 12h WORD stores SP across an INT 23
  59298. 14h WORD return code from last process termination (zerod after reading
  59299. with AH=4Dh)
  59300. 16h BYTE current drive
  59301. 17h BYTE extended break flag
  59302. 18h BYTE flag: code page switching
  59303. 19h BYTE flag: copy of previous byte in case of INT 24 Abort
  59304. ---remainder need only be swapped if in DOS---
  59305. 1Ah WORD value of AX on call to INT 21
  59306. Note: does not contain correct value on functions 00h-0Ch,
  59307. 50h, 51h, 59h, or 62h
  59308. 1Ch WORD PSP segment for sharing/network (0000h = local)
  59309. 1Eh WORD network machine number for sharing/network (0000h = local)
  59310. 20h WORD first usable memory block found when allocating memory
  59311. 22h WORD best usable memory block found when allocating memory
  59312. 24h WORD last usable memory block found when allocating memory
  59313. 26h WORD memory size in paragraphs (used only during initialization)
  59314. 28h WORD last entry checked during directory search
  59315. 2Ah BYTE flag: nonzero if INT 24 Fail
  59316. 2Bh BYTE flags: allowable INT 24 responses (passed to INT 24 in AH)
  59317. 2Ch BYTE flag: do not set directory if nonzero
  59318. 2Dh BYTE flag: program aborted by ^C
  59319. 2Eh BYTE flag: allow embedded blanks in FCB
  59320. may also allow use of "*" wildcard in FCBs
  59321. 2Fh BYTE padding (unused)
  59322. 30h BYTE day of month
  59323. 31h BYTE month
  59324. 32h WORD year - 1980
  59325. 34h WORD number of days since 01jan1980
  59326. 36h BYTE day of week (0 = Sunday)
  59327. 37h BYTE flag: console swapped during read from device
  59328. 38h BYTE flag: safe to call INT 28 if nonzero
  59329. 39h BYTE flag: abort currently in progress, turn INT 24 Abort into Fail
  59330. 3Ah 30 BYTEs device driver request header (see #02597 at INT 2F/AX=0802h) for
  59331. device calls
  59332. 58h DWORD pointer to device driver entry point (used in calling driver)
  59333. 5Ch 22 BYTEs device driver request header for I/O calls
  59334. 72h 14 BYTEs device driver request header for disk status check (also
  59335. includes following eight bytes for some calls)
  59336. 80h DWORD pointer to device I/O buffer
  59337. 84h WORD part of request header at 72h
  59338. 86h WORD part of request header at 72h (0)
  59339. 88h BYTE type of PSP copy (00h=simple for INT 21/AH=26h, FFh=make child)
  59340. 89h DWORD start offset of file region to lock/unlock
  59341. 8Dh DWORD length of file region to lock/unlock
  59342. 91h BYTE padding (unused)
  59343. 92h 3 BYTEs 24-bit user number (see AH=30h)
  59344. 95h BYTE OEM number (see #01394 at AH=30h)
  59345. 96h 6 BYTEs CLOCK$ transfer record (see #01688 at AX=5D06h)
  59346. 9Ch BYTE device I/O buffer for single-byte I/O functions
  59347. 9Dh BYTE padding
  59348. 9Eh 128 BYTEs buffer for filename
  59349. 11Eh 128 BYTEs buffer for filename (rename destination name)
  59350. 19Eh 21 BYTEs findfirst/findnext search data block (see #01626 at AH=4Eh)
  59351. 1B3h 32 BYTEs directory entry for found file (see #01394 at AH=11h)
  59352. 1D3h 88 BYTEs copy of current directory structure for drive being accessed
  59353. 22Bh 11 BYTEs FCB-format filename for device name comparison
  59354. 236h BYTE terminating NUL for above filename
  59355. 237h 11 BYTEs wildcard destination specification for rename (FCB format)
  59356. 242h BYTE terminating NUL for above filespec
  59357. 243h BYTE padding???
  59358. 244h WORD destination starting sector (cluster???)
  59359. 246h 5 BYTEs extra space to allow a directory entry to be stored starting
  59360. at offset 22Bh
  59361. 24Bh BYTE extended FCB file attributes
  59362. 24Ch BYTE type of FCB (00h regular, FFh extended)
  59363. 24Dh BYTE directory search attributes
  59364. 24Eh BYTE file open/access mode
  59365. 24Fh BYTE flag: nonzero if file was deleted
  59366. 250h BYTE flag: device name found on rename, or file not found
  59367. 251h BYTE flag: splice file name and directory name together
  59368. 252h BYTE flag indicating how DOS function was invoked
  59369. (00h = direct INT 20/INT 21, FFh = server call AX=5D00h)
  59370. 253h BYTE sector position within cluster
  59371. 254h BYTE flag: translating sector/cluster
  59372. 255h BYTE flag: 00h if read, 01h if write
  59373. 256h BYTE current working drive number
  59374. 257h BYTE cluster factor
  59375. 258h BYTE "sda_CLUSSPLIT" flag: cluster split between two FAT sectors
  59376. 259h BYTE line edit (AH=0Ah) insert mode flag (nonzero = on)
  59377. 25Ah BYTE canonicalized filename referred to existing file/dir if FFh
  59378. 25Bh BYTE volume ID flag
  59379. 25Ch BYTE type of process termination (00h-03h) (see AH=4Dh)
  59380. 25Dh BYTE unused (padding for alignment)
  59381. 25Eh BYTE file create flag (00h = no, search only)
  59382. 25Fh BYTE value for deleted file's first byte: 00h to delete all, else E5
  59383. 260h DWORD pointer to Drive Parameter Block for critical error invocation
  59384. 264h DWORD pointer to stack frame containing user registers on INT 21
  59385. 268h WORD stores SP across INT 24
  59386. 26Ah DWORD pointer to DOS Drive Parameter Block for ???
  59387. 26Eh WORD segment of disk buffer
  59388. 270h DWORD saving partial cluster number
  59389. 274h WORD "sda_PREREAD" 00h if preread, 01h if optional
  59390. 276h WORD temporary used in allocating disk space
  59391. 278h BYTE Media ID byte returned by AH=1Bh,1Ch
  59392. 279h BYTE unused
  59393. 27Ah DWORD pointer to device header if filename is character device
  59394. 27Eh DWORD pointer to current SFT
  59395. 282h DWORD pointer to current directory structure for drive being accessed
  59396. 286h DWORD pointer to caller's FCB
  59397. 28Ah WORD SFT index to which file being opened will refer
  59398. 28Ch WORD temporary storage for file handle
  59399. 28Eh DWORD pointer to JFT entry (for file being opened) in process handle
  59400. table (see #01378 at AH=26h)
  59401. 292h WORD "sda_WFP_START" offset in DOS DS of first filename argument
  59402. 294h WORD "sda_REN_WFP" offset in DOS DS of second filename argument
  59403. 296h WORD offset of last component in pathname or FFFFh
  59404. 298h WORD offset of transfer address to add
  59405. 29Ah WORD last relative cluster within file being accessed
  59406. 29Ch WORD temp: absolute cluster number being accessed
  59407. 29Eh DWORD directory sector number
  59408. 2A2h WORD directory cluster number
  59409. 2A4h DWORD current relative sector number within file
  59410. 2A8h DWORD current sector number (number of previously written sectors)
  59411. 2ACh WORD current byte offset within sector
  59412. 2AEh DWORD current offset in file
  59413. 2B2h WORD number of bytes in first sector
  59414. 2B4h WORD bytes in partial last sector
  59415. 2B6h WORD number of whole sectors
  59416. 2B8h WORD free file cluster entry
  59417. 2BAh WORD last file cluster entry
  59418. 2BCh WORD next file cluster number
  59419. 2BEh DWORD number of bytes appended to file
  59420. 2C2h DWORD pointer to current work disk buffer
  59421. 2C6h DWORD pointer to working SFT
  59422. 2CAh WORD used by INT 21 dispatcher to store caller's BX
  59423. 2CCh WORD used by INT 21 dispatcher to store caller's DS
  59424. 2CEh WORD temporary storage while saving/restoring caller's registers
  59425. 2D0h DWORD pointer to prev call frame (offset 264h) if INT 21 reentered
  59426. also switched to for duration of INT 24
  59427. 2D4h WORD open mode/action for INT 21/AX=6C00h
  59428. 2D6h BYTE extended open conditional flag
  59429. set to 00h by INT 21h dispatcher, 02h when a read is
  59430. performed, and 01h or 03h by INT 21/AX=6C00h
  59431. 2D7h WORD extended open I/O mode
  59432. 2D9h DWORD stored ES:DI for AX=6C00h
  59433. 2DDh WORD extended file open action code (see #01770 at AX=6C00h)
  59434. 2DFh WORD extended file open attributes (see #01769 at AX=6C00h)
  59435. 2E1h WORD extended file open file mode (see AX=6C00h)
  59436. 2E3h DWORD pointer to filename to open (see AX=6C00h)
  59437. 2E7h WORD high word of 32-bit sector number, or temp data buffer size
  59438. from disk buffer
  59439. 2E9h WORD "sda_OffsetMagicPatch"
  59440. 2EBh BYTE disk full on >32M partition when set to 01h
  59441. 2ECh WORD stores DS during call to [List-of-Lists + 37h]
  59442. 2EEh WORD temporary storage (various uses)
  59443. 2F0h BYTE storage for drive error
  59444. 2F1h WORD DOS 3.4 (European MS-DOS 4.00) bit flags
  59445. 2F3h DWORD pointer to user-supplied filename
  59446. 2F7h DWORD pointer to user-supplied rename destination filename
  59447. 2FBh WORD stores SS during call to [List-of-Lists + 37h] and INT 25,26
  59448. 2FDh WORD stores SP during call to [List-of-Lists + 37h] and INT 25,26
  59449. 2FFh BYTE flag, nonzero if stack switched in calling [List-of-Lists+37h]
  59450. 300h 21 BYTEs FindFirst search data for source file(s) of a rename operation
  59451. (see #01626 at AH=4Eh)
  59452. 315h 32 BYTEs directory entry for file being renamed (see #01352 at AH=11h)
  59453. 335h 331 BYTEs critical error stack
  59454. 480h 384 BYTEs disk stack (functions greater than 0Ch, INT 25,INT 26)
  59455. 600h 384 BYTEs character I/O stack (functions 01h through 0Ch)
  59456. 780h BYTE device driver lookahead flag (usually printer)
  59457. (see AH=64h"DOS 3.2+")
  59458. 781h BYTE volume change flag
  59459. 782h BYTE flag: virtual file open
  59460. 783h BYTE fastseek drive
  59461. 784h WORD fastseek first cluster number
  59462. 786h WORD fastseek logical cluster number
  59463. 788h WORD fastseek returned logical cluster number
  59464. 78Ah WORD temporary location of DOS@SYSINIT
  59465. ---MSDOS 7.1+ (FAT32)---
  59466. 78Ch 47 BYTEs ???
  59467. 7BBh BYTE flag: absolute disk read/write type
  59468. 00h = INT 25/INT 26
  59469. 01h = INT 21/AX=7305h
  59470. 7BCh WORD high word of directory cluster number at offset 2A2h
  59471. 7BEh WORD high word of cluster number at offset 29Ch
  59472. 7C0h WORD high word of next file cluster number at offset 2BCh
  59473. 7C2h WORD high word of last relative cluster number at offset 29Ah
  59474. 7C4h WORD high word of temp at offset 276h
  59475. 7C6h WORD high word of offset 244h
  59476. 7C8h WORD high word of EBX
  59477. 7CAh WORD high word of EDX used by "PACK"
  59478. 7CCh WORD high word of EDI used by "UNPACK"
  59479. 7CEh WORD high word of EBX used by "SETDIRSRCH"
  59480. 7D0h WORD high word of ECX used by "FREECLUSTER"
  59481. 7D2h WORD high word of EDI used by "GETEOF"
  59482. 7D4h 3 WORDs ???
  59483. Note: the only fields which remain valid BETWEEN calls to INT 21h are those
  59484. in the initial "swap-always" portion of the SDA
  59485. SeeAlso: #01687,#01689
  59486. --------D-215E00-----------------------------
  59487. INT 21 - DOS 3.1+ network - GET MACHINE NAME
  59488. AX = 5E00h
  59489. DS:DX -> 16-byte buffer for ASCII machine name
  59490. Return: CF clear if successful
  59491. CH = validity
  59492. 00h name invalid
  59493. nonzero valid
  59494. CL = NetBIOS number for machine name
  59495. DS:DX buffer filled with blank-paded name
  59496. CF set on error
  59497. AX = error code (01h) (see #01680 at AH=59h)
  59498. Note: supported by OS/2 v1.3+ compatibility box, PC-NFS
  59499. SeeAlso: AX=5E01h
  59500. --------N-215E00-----------------------------
  59501. INT 21 - 10NET v5.0 - GET MACHINE NAME
  59502. AX = 5E00h
  59503. Return: CL = redirector's NetBIOS name number
  59504. ES:DI -> network node ID
  59505. SeeAlso: AX=5E01h"10NET"
  59506. --------D-215E01CH00-------------------------
  59507. INT 21 - DOS 3.1+ network - SET MACHINE NAME
  59508. AX = 5E01h
  59509. CH = 00h undefine name (make it invalid)
  59510. <> 0 define name
  59511. CL = name number
  59512. DS:DX -> 15-character blank-padded ASCIZ name
  59513. SeeAlso: AX=5E00h
  59514. --------N-215E01-----------------------------
  59515. INT 21 - 10NET v5.0 - GET LOCAL 10NET CONFIGURATION TABLE
  59516. AX = 5E01h
  59517. CX = length of buffer
  59518. DS:DX -> buffer for 10Net configuration table (see #01691)
  59519. Return: DS:DX buffer filled
  59520. SeeAlso: AX=5E00h"10NET",INT 6F/AH=02h,INT 6F/AH=03h
  59521. Format of 10Net Configuration Table:
  59522. Offset Size Description (Table 01691)
  59523. 00h 8 BYTEs user name
  59524. 08h 15 BYTEs node ID
  59525. 17h 3 BYTEs unique portion of Ethernet address
  59526. 1Ah BYTE Who group number
  59527. 1Bh WORD services mask (see #01693)
  59528. 1Dh DWORD serial number
  59529. 21h BYTE maximum concurrent users with same serial number allowed on net
  59530. 22h BYTE chat mask (see #01694)
  59531. 23h BYTE internal system bits (see #01695)
  59532. 24h 9 BYTEs version number in format MM.mm.xxx
  59533. 2Dh BYTE flag: 01h if machine is a PS/2
  59534. 2Eh BYTE flag: 03h if 80386
  59535. 2Fh BYTE spool termination mode: 01h concatenate, 02h truncate
  59536. (see AX=5D09h)
  59537. 30h WORD autospool timeout in clock ticks
  59538. 32h WORD monitor timeout in clock ticks
  59539. 34h WORD unused
  59540. 36h WORD chat timeout in clock ticks
  59541. 38h WORD netBIOS session timeout in half-seconds
  59542. 3Ah WORD datagram send timeout in seconds
  59543. 3Ch WORD keyboard value for initiating chat mode
  59544. 3Eh WORD Who timeout in clock ticks
  59545. 40h BYTE flag: 01h if server should process rom NetBIOS Post return
  59546. 41h BYTE flag: 01h if FCBs should be recycled
  59547. 42h 3 BYTEs signature "DBG"
  59548. 45h BYTE last interrupt (21h or 6Fh)
  59549. 46h BYTE last INT 21 AH value
  59550. 47h BYTE last INT 6F AH value
  59551. 48h WORD last item posted
  59552. 4Ah WORD last item free-posted
  59553. 4Ch WORD last item handled by server
  59554. 4Eh WORD last redirector send NCB
  59555. 50h WORD last redirector receive NCB
  59556. 52h 4 BYTEs signature "TABL"
  59557. 56h WORD offset of datagram buffer table header (see #01692)
  59558. 58h WORD offset of chat buffer table header (see #01692)
  59559. 5Ah WORD offset of Raw buffer table header (see #01692)
  59560. 5Ch WORD offset of Workstation buffer table header (see #01692)
  59561. 5Eh WORD offset of server receive-any table header (see #01692)
  59562. 60h WORD offset of Tiny buffer table header (see #01692)
  59563. 62h WORD offset of zero-length buffer table (NCBs) (see #01692)
  59564. 64h WORD offset of Rdr (Redirector Mount) table header (see #01692)
  59565. 66h WORD offset of Ntab (Redirector Session) table header (see #01692)
  59566. 68h WORD offset of FCB table header (see #01692)
  59567. 6Ah WORD offset of user file handle table header (see #01692)
  59568. 6Ch WORD offset of workstation printer RDR extension table header
  59569. 6Eh WORD offset of server shared device table header (see #01692)
  59570. 70h WORD offset of server connection table header (see #01692)
  59571. 72h WORD offset of server login table header (see #01692)
  59572. 74h WORD offset of server file table header (see #01692)
  59573. 76h WORD offset of server shared file table header (see #01692)
  59574. 78h WORD offset of server record lock table header (see #01692)
  59575. 7Ah WORD offset of remote printer claim table header (see #01692)
  59576. 7Ch WORD offset of remote printer device table header (see #01692)
  59577. 7Eh WORD offset of print server mount table header (see #01692)
  59578. 80h WORD offset of print server sessions table header (see #01692)
  59579. 82h WORD offset of print server print job structure table header
  59580. 84h WORD offset of print server pooled device table header (see #01692)
  59581. 86h WORD size of workstation buffer
  59582. 88h WORD size of server receive-any buffer
  59583. 8Ah WORD size of server raw I/O buffer
  59584. 8Ch 6 BYTEs reserved
  59585. 92h DWORD pointer to profile pathname
  59586. 96h BYTE datagram retry count
  59587. 97h BYTE NetBIOS LAN adapter number
  59588. 98h 6 BYTEs physical Ethernet address
  59589. 9Eh BYTE NetBIOS server name number
  59590. 9Fh BYTE NetBIOS redirector name number
  59591. A0h BYTE 10Net interrupt number
  59592. A1h BYTE flag: chat is loaded
  59593. A2h BYTE flag: INT 6F APIs permanently loaded
  59594. A3h BYTE flag: file security present
  59595. A4h WORD reserved
  59596. A6h BYTE fixed mount bitmask for drives A:-H:
  59597. A7h BYTE reserved
  59598. A8h WORD 10Net system flags (see #01696)
  59599. AAh BYTE monitor flags (see #01697)
  59600. ABh 5 BYTEs reserved
  59601. B0h WORD offset of monitor timer block
  59602. B2h WORD offset of server timer block
  59603. B4h WORD offset of chat timer block
  59604. B6h WORD timer chain
  59605. B8h 4 BYTEs signature "TALS"
  59606. BCh WORD number of 10Net sends
  59607. BEh WORD number of 10Net receives
  59608. C0h WORD number of no-buffer conditions
  59609. C2h WORD number of dropped posted messages
  59610. C4h WORD number of server NCB errors
  59611. C6h WORD number of redirector NCB errors
  59612. C8h WORD number of datagram send/receive errors
  59613. CAh WORD number of dropped Whos
  59614. CCh WORD number of dropped submits
  59615. CEh WORD number of session aborts
  59616. D0h BYTE number of NetBIOS interface-busy errors
  59617. D1h BYTE last NetBIOS bad post command
  59618. D2h BYTE last NetBIOS bad redirector command
  59619. D3h BYTE do send datagram send/receive error command
  59620. D4h DWORD -> DOS system parameter table
  59621. D8h WORD number of DOS physical drives
  59622. DAh WORD offset of DOS PSP field in DOS data segment
  59623. DCh WORD offset of in-DOS flag in DOS data segment
  59624. DEh WORD DOS data segment
  59625. E0h WORD offset of DOS SFT in DOS data segment
  59626. E2h WORD offset of number-of-physical-units field in DOS data segment
  59627. E4h WORD 10Net code segment
  59628. E6h WORD 10Net data segment
  59629. E8h WORD 10Net common server segment
  59630. EAh WORD 10Net file server segment
  59631. ECh WORD 10Net print server segment
  59632. EEh WORD 10Net remote printer segment
  59633. Note: documentation lists field at offset D0h as a WORD, but all following
  59634. offsets are as though it were a BYTE; if it is indeed a WORD, all
  59635. offsets after D0h must be increased by one byte
  59636. Format of 10Net Table Header:
  59637. Offset Size Description (Table 01692)
  59638. -16 4 BYTEs table identifier
  59639. -12 WORD peak number of tables allocated
  59640. -10 WORD number of tables currently in use
  59641. -8 WORD total number of tables
  59642. -6 WORD size of each table
  59643. -4 WORD offset of first allocated table
  59644. -2 WORD offset of first free table
  59645. Bitfields for 10NET services mask:
  59646. Bit(s) Description (Table 01693)
  59647. 0 workstation
  59648. 1 file server
  59649. 2 print queue server
  59650. 3 de-spool server
  59651. Bitfields for 10NET chat mask:
  59652. Bit(s) Description (Table 01694)
  59653. 0 chat permitted
  59654. 1 bell enabled
  59655. 2 chat keyboard initiated
  59656. 3 in INT 16 handler
  59657. 4 in Get Input
  59658. 5 display has timed out
  59659. 6 chat is idle
  59660. Bitfields for 10NET internal system bits:
  59661. Bit(s) Description (Table 01695)
  59662. 0 submit permitted
  59663. 1 submit initiated
  59664. 2 submit executing
  59665. 3 internal client call/chat/spool/autospool
  59666. 4 in spool termination
  59667. 5 print permitted
  59668. 6 waiting for keyboard input
  59669. Bitfields for 10NET System Flags:
  59670. Bit(s) Description (Table 01696)
  59671. 0 in NetBIOS
  59672. 1 processing INT 28
  59673. 2 is server
  59674. 3 in net user-DOS function
  59675. 4 in DOS user-DOS function
  59676. 5 in net for user non-DOS function
  59677. 6 in server DOS function
  59678. 7 in server non-DOS function
  59679. 8 in terminate
  59680. 10 in user on server request
  59681. 13 in DOS for user on server
  59682. 14 disable critical error handler
  59683. Bitfields for Monitor Flags:
  59684. Bit(s) Description (Table 01697)
  59685. 0 waiting for monitor response
  59686. 4 in monitor get-input routine
  59687. 5 monitor display timeout
  59688. 6 sensing for escape key
  59689. --------D-215E02-----------------------------
  59690. INT 21 - DOS 3.1+ network - SET NETWORK PRINTER SETUP STRING
  59691. AX = 5E02h
  59692. BX = redirection list index (see AX=5F02h)
  59693. CX = length of setup string
  59694. DS:SI -> setup string
  59695. Return: CF clear if successful
  59696. CF set on error
  59697. AX = error code (01h) (see #01680 at AH=59h/BX=0000h)
  59698. Note: also supported by 10NET v5.0
  59699. SeeAlso: AX=5E03h,INT 2F/AX=111Fh
  59700. --------D-215E03-----------------------------
  59701. INT 21 - DOS 3.1+ network - GET NETWORK PRINTER SETUP STRING
  59702. AX = 5E03h
  59703. BX = redirection list index (see AX=5F02h)
  59704. ES:DI -> 64-byte buffer for setup string
  59705. Return: CF clear if successful
  59706. CX = length of setup string
  59707. ES:DI buffer filled
  59708. CF set on error
  59709. AX = error code (01h) (see #01680 at AH=59h/BX=0000h)
  59710. Note: also supported by 10NET v5.0, but 10NET is documented as using DS:SI
  59711. instead of ES:DI
  59712. SeeAlso: AX=5E02h,INT 2F/AX=111Fh
  59713. --------D-215E04-----------------------------
  59714. INT 21 - DOS 3.1+ network - SET PRINTER MODE
  59715. AX = 5E04h
  59716. BX = redirection list index (see AX=5F02h)
  59717. DX = mode
  59718. bit 0: set if binary, clear if text (tabs expanded to blanks)
  59719. Return: CF set on error
  59720. AX = error code (see #01680 at AH=59h/BX=0000h)
  59721. CF clear if successful
  59722. Notes: calls INT 2F/AX=111Fh with 5E04h on stack
  59723. supported by DR DOS 3.41+
  59724. SeeAlso: AX=5E05h"DOS",INT 2F/AX=111Fh
  59725. --------N-215E04-----------------------------
  59726. INT 21 - 10NET v5.0 - INITIATE PRINT JOB
  59727. AX = 5E04h
  59728. BX = zero-based redirection list index (see AX=5F02h)
  59729. DS:DX -> extended workstation printer setup structure (see #01698)
  59730. Return: CF clear if successful
  59731. CF set on error
  59732. AX = error code (see #01680 at AH=59h/BX=0000h)
  59733. SeeAlso: AX=5E05h"10NET",AX=5E06h"10NET"
  59734. Format of 10NET extended workstation printer setup structure:
  59735. Offset Size Description (Table 01698)
  59736. 00h BYTE notification flags (see #01699)
  59737. 01h BYTE job control mask (see #01700)
  59738. 02h WORD days to retain file
  59739. 04h WORD test print length
  59740. 06h BYTE number of copies to print
  59741. 07h BYTE compression algorithm
  59742. 08h BYTE tab width (00h = don't expand)
  59743. 09h BYTE initiation type (00h normal, 01h non-spooled)
  59744. 0Ah 38 BYTEs job start operation notification instructions
  59745. 30h 32 BYTEs comment for job
  59746. 50h 64 BYTEs output filename or non-spooled file
  59747. Bitfields for 10NET notification flags:
  59748. Bit(s) Description (Table 01699)
  59749. 0 user at print start
  59750. 1 operator at start, with reply
  59751. 2 user at print completion
  59752. 3 operator at completion, with reply
  59753. 4 user on queue switch
  59754. 5 operator on queue switch, with reply
  59755. 6 user on print error
  59756. Bitfields for 10NET job control mask:
  59757. Bit(s) Description (Table 01700)
  59758. 0 print banner page
  59759. 1 eject page at end of job
  59760. 2 mark as "held" (queue but don't print)
  59761. 3 rush job (queue at top)
  59762. 4 overwrite file with zeros before deletion
  59763. 5 hyperspool if possible
  59764. --------D-215E05-----------------------------
  59765. INT 21 - DOS 3.1+ network - GET PRINTER MODE
  59766. AX = 5E05h
  59767. BX = redirection list index (see AX=5F02h)
  59768. Return: CF set on error
  59769. AX = error code (see #01680 at AH=59h/BX=0000h)
  59770. CF clear if successful
  59771. DX = printer mode (see AX=5E04h)
  59772. Notes: calls INT 2F/AX=111Fh with 5E05h on stack
  59773. supported by DR DOS 3.41+
  59774. SeeAlso: AX=5E04h"DOS",INT 2F/AX=111Fh
  59775. --------N-215E05-----------------------------
  59776. INT 21 - 10NET v5.0 - TERMINATE PRINT JOB
  59777. AX = 5E05h
  59778. BX = zero-based redirection list index (see AX=5F02h)
  59779. Return: CF clear if successful
  59780. CF set on error
  59781. AX = error code (see #01680 at AH=59h/BX=0000h)
  59782. Note: this call resets the spool termination mode to "truncate"
  59783. (see AX=5D08h)
  59784. SeeAlso: AX=5E04h"10NET",AX=5E06h
  59785. --------N-215E06-----------------------------
  59786. INT 21 - 10NET v5.0 - GET/SET 10NET WORKSTATION PRINTER SETUP STRUCTURE
  59787. AX = 5E06h
  59788. BX = zero-based redirection list index (see AX=5F02h)
  59789. CX = operation (06h set, 07h get)
  59790. DS:DX -> buffer for setup structure (same as first nine bytes of
  59791. workstation printer setup) (see #01698)
  59792. Return: CF clear if successful
  59793. DS:DX buffer updated on get
  59794. CF set on error
  59795. AX = error code (see #01680 at AH=59h/BX=0000h)
  59796. SeeAlso: AX=5E04h"10NET",AX=5E05h"10NET"
  59797. --------!---Section--------------------------
  59798. Interrupt List, part 8 of 18
  59799. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  59800. --------D-215F00-----------------------------
  59801. INT 21 - DOS 3.1+ network - GET REDIRECTION MODE
  59802. AX = 5F00h
  59803. BL = redirection type
  59804. 03h printer
  59805. 04h disk drive
  59806. Return: CF set on error
  59807. AX = error code (see #01680 at AH=59h/BX=0000h)
  59808. CF clear if successful
  59809. BH = redirection state
  59810. 00h off
  59811. 01h on
  59812. Note: calls INT 2F/AX=111Eh with AX on top of the stack
  59813. SeeAlso: AX=5F01h,INT 2F/AX=111Eh
  59814. --------D-215F01-----------------------------
  59815. INT 21 - DOS 3.1+ network - SET REDIRECTION MODE
  59816. AX = 5F01h
  59817. BL = redirection type
  59818. 03h printer
  59819. 04h disk drive
  59820. BH = redirection state
  59821. 00h off
  59822. 01h on
  59823. Return: CF set on error
  59824. AX = error code (see #01680 at AH=59h/BX=0000h)
  59825. CF clear if successful
  59826. Notes: when redirection is off, the local device (if any) rather than the
  59827. remote device is used
  59828. calls INT 2F/AX=111Eh with AX on top of the stack
  59829. SeeAlso: AX=5F00h,INT 2F/AX=111Eh,INT 60/AX=0002h
  59830. --------D-215F02-----------------------------
  59831. INT 21 - DOS 3.1+ network - GET REDIRECTION LIST ENTRY
  59832. AX = 5F02h
  59833. BX = zero-based redirection list index
  59834. CX = driver signature
  59835. 0000h LANtastic
  59836. 4E57h ('NW') NetWare
  59837. DS:SI -> 16-byte buffer for ASCIZ local device name or drive letter
  59838. followed by colon
  59839. ES:DI -> 128-byte buffer for ASCIZ network name
  59840. Return: CF clear if successful
  59841. BH = device status
  59842. 00h valid
  59843. 01h invalid
  59844. 02h valid (connected from inside Windows for Workgroups v3.11)
  59845. BL = device type
  59846. 03h printer
  59847. 04h disk drive
  59848. CX = user data previously set with AX=5F03h
  59849. DS:SI and ES:DI buffers filled
  59850. DX,BP destroyed
  59851. CF set on error
  59852. AX = error code (01h,12h) (see #01680 at AH=59h/BX=0000h)
  59853. Notes: this function is passed through to INT 2F/AX=111Eh by the DOS kernel
  59854. error code 12h is returned if BX is greater than the size of the list
  59855. also supported by Banyan VINES, PC-NFS, LANtastic, and 10NET
  59856. supported by LapLink RemoteAccess but returns the local drive letter;
  59857. the remote drive letter can be obtained with INT 2F/AX=Cxxxh
  59858. (see INT 2F/AX=C000h"LapLink")
  59859. the returned device name may or may not include a colon, depending on
  59860. the network software
  59861. SeeAlso: AX=5F03h,AX=5F46h,INT 2F/AX=111Eh,INT 2F/AX=C000h"LapLink"
  59862. --------D-215F03-----------------------------
  59863. INT 21 - DOS 3.1+ network - REDIRECT DEVICE
  59864. AX = 5F03h
  59865. BL = device type
  59866. 03h printer
  59867. 04h disk drive
  59868. CX = user data to save
  59869. 0000h for LANtastic
  59870. 4E57h ("NW") for NetWare 4.0 requester
  59871. DS:SI -> ASCIZ local device name (16 bytes max)
  59872. ES:DI -> ASCIZ network name + ASCIZ password (128 bytes max total)
  59873. Return: CF clear if successful
  59874. CF set on error
  59875. AX = error code (01h,03h,05h,08h,0Fh,12h) (see #01680 at AH=59h)
  59876. Notes: if device type is disk drive, DS:SI must point at either a null string
  59877. or a string consisting the drive letter followed by a colon; if a
  59878. null string, the network attempts to access the destination without
  59879. redirecting a local drive
  59880. the DOS kernel calls INT 2F/AX=111Eh with AX on top of the stack
  59881. also supported by Banyan VINES, LANtastic, and 10NET
  59882. SeeAlso: AX=5F02h,AX=5F04h,INT 2F/AX=111Eh,INT 60/AX=0002h
  59883. --------D-215F04-----------------------------
  59884. INT 21 - DOS 3.1+ network - CANCEL REDIRECTION
  59885. AX = 5F04h
  59886. DS:SI -> ASCIZ local device name or path
  59887. CX = 4E57h ("NW") for NetWare 4.0 requester
  59888. Return: CF clear if successful
  59889. CF set on error
  59890. AX = error code (01h,03h,05h,08h,0Fh,12h) (see #01680 at AH=59h)
  59891. Notes: the DS:SI string must be either a local device name, a drive letter
  59892. followed by a colon, or a network directory beginning with two
  59893. backslashes
  59894. the DOS kernel calls INT 2F/AX=111Eh with AX on top of the stack
  59895. also supported by Banyan VINES, LANtastic, and 10NET
  59896. for NetWare, if only a server name is specified (i.e. "\\SERVER"),
  59897. the connection to that server will be closed
  59898. SeeAlso: AX=5F03h,INT 2F/AX=111Eh,INT 60/AX=0003h
  59899. --------D-215F05-----------------------------
  59900. INT 21 - DOS 4.0+ network - GET EXTENDED REDIRECTION LIST ENTRY
  59901. AX = 5F05h
  59902. BX = redirection list index
  59903. DS:SI -> buffer for ASCIZ source device name
  59904. ES:DI -> buffer for destination ASCIZ network path
  59905. Return: CF set on error
  59906. AX = error code (see #01680 at AH=59h/BX=0000h)
  59907. CF clear if successful
  59908. AX = server's network process ID handle (10NET)
  59909. BH = device status flag (bit 0 clear if valid)
  59910. BL = device type (03h if printer, 04h if drive)
  59911. CX = stored parameter value (user data) from AX=5F03h
  59912. BP = NETBIOS local session number
  59913. DS:SI buffer filled
  59914. ES:DI buffer filled
  59915. Notes: the local session number allows sharing the redirector's session number
  59916. if an error is caused on the NETBIOS LSN, the redirector may be unable
  59917. to correctly recover from errors
  59918. the DOS kernel calls INT 2F/AX=111Eh with AX on top of the stack
  59919. supported by DR DOS 5.0
  59920. also supported by 10NET v5.0
  59921. SeeAlso: AX=5F06h"Network",INT 2F/AX=111Eh
  59922. --------O-215F05-----------------------------
  59923. INT 21 - STARLITE architecture - MAP LOCAL DRIVE LETTER TO REMOTE FILE SYSTEM
  59924. AX = 5F05h
  59925. DL = drive number (0=A:)
  59926. DS:SI -> ASCIZ name of the object to map the drive to
  59927. Return: CF set on error
  59928. AX = error code (see #01680 at AH=59h/BX=0000h)
  59929. CF clear if successful
  59930. SeeAlso: AX=5F06h"STARLITE",INT 60/AX=0002h
  59931. --------N-215F06-----------------------------
  59932. INT 21 U - Network - GET FULL REDIRECTION LIST
  59933. AX = 5F06h
  59934. ???
  59935. Return: ???
  59936. Notes: similar to AX=5F02h and AX=5F05h, but also returns redirections
  59937. excluded from those calls for various reasons
  59938. calls INT 2F/AX=111Eh with AX on top of the stack
  59939. SeeAlso: AX=5F05h"DOS",INT 2F/AX=111Eh
  59940. --------O-215F06-----------------------------
  59941. INT 21 - STARLITE architecture - UNMAP DRIVE LETTER
  59942. AX = 5F06h
  59943. DL = drive to be unmapped (0=A:)
  59944. Return: CF set on error
  59945. AX = error code (see #01680 at AH=59h/BX=0000h)
  59946. CF clear if successful
  59947. SeeAlso: AX=5F05h"STARLITE",INT 60/AX=0003h
  59948. --------D-215F07-----------------------------
  59949. INT 21 - DOS 5+ - ENABLE DRIVE
  59950. AX = 5F07h
  59951. DL = drive number (0=A:)
  59952. Return: CF clear if successful
  59953. CF set on error
  59954. AX = error code (0Fh) (see #01680 at AH=59h/BX=0000h)
  59955. Notes: simply sets the "valid" bit in the drive's CDS
  59956. this function is not supported by Novell DOS 7 through at least
  59957. Update 4, but support was added by Update 13
  59958. SeeAlso: AH=52h,AX=5F08h"DOS"
  59959. --------O-215F07-----------------------------
  59960. INT 21 - STARLITE architecture - MAKE NAMED OBJECT AVAILABLE ON NETWORK
  59961. AX = 5F07h
  59962. DS:SI -> ASCIZ name of object to offer to network
  59963. ES:DI -> ASCIZ name under which object will be known on the network
  59964. MUST begin with three slashes
  59965. Return: CF set on error
  59966. AX = error code (see #01680 at AH=59h/BX=0000h)
  59967. CF clear if successful
  59968. SeeAlso: AX=5F08h"STARLITE"
  59969. --------D-215F08-----------------------------
  59970. INT 21 - DOS 5+ - DISABLE DRIVE
  59971. AX = 5F08h
  59972. DL = drive number (0=A:)
  59973. Return: CF clear if successful
  59974. CF set on error
  59975. AX = error code (0Fh) (see #01680 at AH=59h/BX=0000h)
  59976. Notes: simply clears the "valid" bit in the drive's CDS
  59977. this function is not supported by Novell DOS 7 through at least
  59978. Update 4, but support was added by Update 13
  59979. SeeAlso: AH=52h,AX=5F07h"DOS"
  59980. --------O-215F08-----------------------------
  59981. INT 21 - STARLITE architecture - REMOVE GLOBAL NETWORK NAME OF OBJECT
  59982. AX = 5F08h
  59983. DS:SI -> ASCIZ network name (not local name) of object to unshare
  59984. Return: CF set on error
  59985. AX = error code (see #01680 at AH=59h/BX=0000h)
  59986. CF clear if successful
  59987. SeeAlso: AX=5F07h"STARLITE"
  59988. --------O-215F09-----------------------------
  59989. INT 21 - STARLITE architecture - BIND TO NETWORK DEVICE
  59990. AX = 5F09h
  59991. DS:DX -> ASCIZ name of the device driver to attach to
  59992. Return: CF set on error
  59993. AX = error code (see #01680 at AH=59h/BX=0000h)
  59994. CF clear if successful
  59995. Note: the STARLITE distributed file system can attach to multiple networks
  59996. simultaneously
  59997. SeeAlso: AX=5F0Ah
  59998. --------O-215F0A-----------------------------
  59999. INT 21 - STARLITE architecture - DETACH FROM NETWORK DEVICE
  60000. AX = 5F0Ah
  60001. DS:DX -> ASCIZ name of device driver to detach from
  60002. Return: CF set on error
  60003. AX = error code (see #01680 at AH=59h/BX=0000h)
  60004. CF clear if successful
  60005. SeeAlso: AX=5F09h
  60006. --------N-215F30-----------------------------
  60007. INT 21 U - LAN Manager Enhanced DOS - GET REDIRECTOR VERSION
  60008. AX = 5F30h
  60009. Return: AX = version (AH=major,AL=minor)
  60010. --------N-215F32-----------------------------
  60011. INT 21 u - Named Pipes - LOCAL DosQNmPipeInfo
  60012. AX = 5F32h
  60013. BX = handle
  60014. CX = size of _PIPEINFO structure
  60015. DX = level (must be 0001h)
  60016. DS:SI -> _PIPEINFO structure (see #01701)
  60017. Return: CF clear if successful
  60018. _PIPEINFO structure filled in
  60019. CF set on error
  60020. AX = error code
  60021. Note: this function was introduced by LAN Manager but is also supported by
  60022. the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS
  60023. Machines, and others
  60024. SeeAlso: AX=5F33h,AX=5F34h
  60025. Format of Named Pipes _PIPEINFO structure:
  60026. Offset Size Description (Table 01701)
  60027. 00h WORD size of outgoing buffer
  60028. 02h WORD size of incoming buffer
  60029. 04h BYTE maximum number of instances allowed
  60030. 05h BYTE current number of instances
  60031. 06h BYTE length of the name (including terminating NUL)
  60032. 07h N BYTEs name
  60033. --------N-215F33-----------------------------
  60034. INT 21 u - Named Pipes - LOCAL DosQNmPHandState
  60035. AX = 5F33h
  60036. BX = handle
  60037. Return: CF clear if successful
  60038. AH = pipe mode bit mask (see #01702)
  60039. AL = maximum number of instances
  60040. CF set on error
  60041. AX = error code
  60042. Note: this function was introduced by LAN Manager but is also supported by
  60043. the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS
  60044. Machines, and others
  60045. SeeAlso: AX=5F32h,AX=5F34h
  60046. Bitfields for Named Pipes pipe mode:
  60047. Bit(s) Description (Table 01702)
  60048. 7 set if nonblocking, clear if blocking
  60049. 6 set if server end, clear if client end
  60050. 2 set if write in message mode, clear if write in byte mode
  60051. 0 set if read in message mode, clear if read in byte mode
  60052. --------N-215F34-----------------------------
  60053. INT 21 u - Named Pipes - LOCAL DosSetNmPHandState
  60054. AX = 5F34h
  60055. BX = handle
  60056. CX = pipe mode bit mask
  60057. bit 15: set if nonblocking, clear if blocking
  60058. bit 8: set if read in message mode, clear if read in byte mode
  60059. Return: CF clear if successful
  60060. CF set if error
  60061. AX = error code
  60062. Note: this function was introduced by LAN Manager but is also supported by
  60063. the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS
  60064. Machines, and others
  60065. SeeAlso: AX=5F32h,AX=5F33h,AX=5F36h
  60066. --------N-215F35-----------------------------
  60067. INT 21 u - Named Pipes - LOCAL DosPeekNmPipe
  60068. AX = 5F35h
  60069. BX = handle
  60070. CX = buffer length
  60071. DS:SI -> buffer
  60072. Return: CF set on error
  60073. AX = error code
  60074. CF clear if successful (LAN Manager v1-v2)
  60075. AX = 0000h if successful (LAN Manager 3.x)
  60076. ---if successful---
  60077. CX = bytes read
  60078. SI = bytes left in the pipe
  60079. DX = bytes left in the current message
  60080. AX = pipe status (v1-v2) (see #01703)
  60081. DI = pipe status (v3.x)
  60082. Note: this function was introduced by LAN Manager but is also supported by
  60083. the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS
  60084. Machines, and others
  60085. SeeAlso: AX=5F38h,AX=5F39h,AX=5F51h
  60086. (Table 01703)
  60087. Values for pipe status:
  60088. 0001h disconnected
  60089. 0002h listening
  60090. 0003h connected
  60091. 0004h closing
  60092. --------N-215F36-----------------------------
  60093. INT 21 u - Named Pipes - LOCAL DosTransactNmPipe
  60094. AX = 5F36h
  60095. BX = handle
  60096. CX = in buffer length
  60097. DS:SI -> in buffer
  60098. DX = out buffer length
  60099. ES:DI -> out buffer
  60100. Return: CF clear if successful
  60101. CX = bytes read
  60102. CF set on error
  60103. AX = error code
  60104. Note: this function was introduced by LAN Manager but is also supported by
  60105. the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS
  60106. Machines, and others
  60107. SeeAlso: AX=5F34h,AX=5F37h
  60108. --------N-215F37-----------------------------
  60109. INT 21 u - Named Pipes - DosCallNmPipe
  60110. AX = 5F37h
  60111. DS:SI -> DosCallNmPipe stack frame (see #01704)
  60112. Return: CF clear if successful
  60113. CX = bytes read
  60114. CF set on error
  60115. AX = error code
  60116. Note: this function was introduced by LAN Manager but is also supported by
  60117. the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS
  60118. Machines, and others
  60119. SeeAlso: AX=5F36h,AX=5F38h
  60120. Format of Named Pipes DosCallNmPipe stack frame:
  60121. Offset Size Description (Table 01704)
  60122. 00h DWORD timeout
  60123. 04h DWORD -> bytes read WORD (not used!)
  60124. 08h WORD out buffer length
  60125. 0Ah DWORD address of out buffer
  60126. 0Eh WORD in buffer length
  60127. 10h DWORD address of in buffer
  60128. 14h DWORD address of pipe name
  60129. --------N-215F38-----------------------------
  60130. INT 21 u - Named Pipes - LOCAL DosWaitNmPipe - AWAIT AVAIL. OF PIPE INSTANCE
  60131. AX = 5F38h
  60132. DS:DX -> pipe name
  60133. BX:CX = timeout value
  60134. Return: CF clear if successful
  60135. CF set if error
  60136. AX = error code
  60137. Notes: when a client gets a return code of ERROR_PIPE_BUSY on attempting to
  60138. open a pipe, it should issue this call to wait until the pipe
  60139. instance becomes available again; on return from this call, the
  60140. client must attempt to open the pipe once again
  60141. this function was introduced by LAN Manager but is also supported by
  60142. the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS
  60143. Machines, and others
  60144. SeeAlso: AX=5F37h,AX=5F39h
  60145. --------N-215F39-----------------------------
  60146. INT 21 U - Named Pipes - LOCAL DosRawReadNmPipe
  60147. AX = 5F39h
  60148. BX = handle
  60149. CX = buffer length
  60150. DS:DX -> buffer
  60151. Return: CF clear if successful
  60152. CX = bytes read
  60153. CF set if error
  60154. AX = error code
  60155. Notes: this function was introduced by LAN Manager but is also supported by
  60156. the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS
  60157. Machines, and others
  60158. not documented in the LAN Manager Toolkit
  60159. SeeAlso: AX=5F35h,AX=5F3Ah,INT 2F/AX=1186h
  60160. --------N-215F3A-----------------------------
  60161. INT 21 U - Named Pipes - LOCAL DosRawWriteNmPipe
  60162. AX = 5F3Ah
  60163. BX = handle
  60164. CX = buffer length
  60165. DS:DX -> buffer
  60166. Return: CF clear if successful
  60167. CX = bytes written
  60168. CF set if error
  60169. AX = error code
  60170. Notes: this function was introduced by LAN Manager but is also supported by
  60171. the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS
  60172. Machines, and others
  60173. not documented in the LAN Manager Toolkit
  60174. SeeAlso: AX=5F39h,AX=5F3Bh,INT 2F/AX=118Fh
  60175. --------N-215F3B-----------------------------
  60176. INT 21 u - LAN Manager Enhanced DOS - NetHandleSetInfo
  60177. AX = 5F3Bh
  60178. BX = handle
  60179. CX = handle_info_1 structure length or sizeof DWORD
  60180. DI = parameter number to set
  60181. 0000h all
  60182. 0001h number of milliseconds
  60183. 0002h number of characters
  60184. DS:DX -> handle_info_1 structure (DI=0000h) (see #01705)
  60185. or DWORD (DI=0001h or 0002h)
  60186. SI = level of information (0001h)
  60187. Return: CF clear if successful
  60188. CX = total bytes available
  60189. CF set if error
  60190. AX = error code
  60191. SeeAlso: AX=5F3Ch
  60192. Format of LAN Manager handle_info_1 structure:
  60193. Offset Size Description (Table 01705)
  60194. 00h DWORD number of milliseconds which workstation collects data before
  60195. it sends the data to the named pipe
  60196. 04h DWORD number of characters which workstation collects before it
  60197. sends the data to the named pipe
  60198. --------N-215F3C-----------------------------
  60199. INT 21 u - LAN Manager Enhanced DOS - NetHandleGetInfo
  60200. AX = 5F3Ch
  60201. BX = handle
  60202. CX = length of handle_info_1 structure
  60203. DS:DX -> handle_info_1 structure (see #01705)
  60204. SI = level of information (must be 0001h)
  60205. Return: CF clear if successful
  60206. CX = total bytes available
  60207. CF set if error
  60208. AX = error code
  60209. SeeAlso: AX=5F3Bh
  60210. --------N-215F3D-----------------------------
  60211. INT 21 U - LAN Manager Enhanced DOS - WRITE MAILSLOT???
  60212. AX = 5F3Dh
  60213. ???
  60214. Return: ???
  60215. --------N-215F3E-----------------------------
  60216. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetSpecialSMB
  60217. AX = 5F3Eh
  60218. ???
  60219. Return: ???
  60220. Note: This function is not documented anywhere in the LAN Manager 2.x Toolkit
  60221. but was documented in LAN Manager 1.x manuals.
  60222. --------N-215F3F-----------------------------
  60223. INT 21 U - LAN Manager Enhanced DOS - REMOTE API CALL
  60224. AX = 5F3Fh
  60225. CX = api number
  60226. ES:DI -> data descriptor
  60227. ES:SI -> parameter descriptor
  60228. ES:DX -> auxiliary descriptor (if DX <> 0)
  60229. ???
  60230. Return: ???
  60231. --------N-215F40-----------------------------
  60232. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetMessageBufferSend
  60233. AX = 5F40h
  60234. DS:DX -> NetMessageBufferSend parameter structure (see #01706)
  60235. Return: AX = error code
  60236. Format of LAN Manager NetMessageBufferSend parameter structure:
  60237. Offset Size Description (Table 01706)
  60238. 00h DWORD -> recipient name (name for specific user, name* for domain
  60239. wide name, * for broadcast)
  60240. 04h DWORD -> buffer
  60241. 08h WORD length of buffer
  60242. --------N-215F41-----------------------------
  60243. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetServiceEnum
  60244. AX = 5F41h
  60245. BL = level of detail (0000h, 0001h or 0002h)
  60246. CX = buffer length
  60247. ES:DI -> buffer of service_info_0, service_info_1, or service_info_2
  60248. (see #01707,#01708,#01709)
  60249. Return: CF clear if successful
  60250. CX = entries read
  60251. DX = total available
  60252. CF set on error
  60253. AX = error code
  60254. Format of LAN Manager service_info_0 structure:
  60255. Offset Size Description (Table 01707)
  60256. 00h 16 BYTEs name
  60257. SeeAlso: #01708,#01709
  60258. Format of service_info_1 structure:
  60259. Offset Size Description (Table 01708)
  60260. 00h 16 BYTEs name
  60261. 10h WORD status bitmask (see #01710)
  60262. 12h DWORD status code (see #01711)
  60263. (also see Microsoft LAN Manager Programmer's Reference)
  60264. 16h WORD process id
  60265. SeeAlso: #01707,#01709
  60266. Format of service_info_2 structure:
  60267. Offset Size Description (Table 01709)
  60268. 00h 16 BYTEs name
  60269. 10h WORD status bitmask (see #01710)
  60270. 12h DWORD status code (see #01711)
  60271. 16h WORD process id
  60272. 18h 64 BYTEs text
  60273. SeeAlso: #01707,#01708
  60274. Bitfields for LAN Manager status bitmask:
  60275. Bit(s) Description (Table 01710)
  60276. 0,1 00 uninstall
  60277. 01 install pending
  60278. 10 uninstall pending
  60279. 11 installed
  60280. 2,3 00 active
  60281. 01 Continue pending
  60282. 10 Pause pending
  60283. 11 paused
  60284. 4 uninstallable
  60285. 5 pausable
  60286. 8 disk redirector paused
  60287. 9 spooled device redirector paused (printing)
  60288. 10 communication device redirector paused
  60289. (Table 01711)
  60290. Values for LAN Manager status code:
  60291. high word
  60292. 3051 Bad parameter value
  60293. 3052 A parameter is missing
  60294. 3053 An unknown parameter was specified
  60295. 3054 The resource is insufficient
  60296. 3055 Configuration is faulty
  60297. 3056 An MS-DOS or MS OS/2 error occured
  60298. 3057 An internal error occured
  60299. 3058 An ambiguous parameter name was given
  60300. 3059 A duplicate parameter exists
  60301. 3060 The service was terminated by NetSeviceControl when it did not respond
  60302. 3061 The service program file could not be executed
  60303. 3062 The subservice failed to start
  60304. 3063 There is a conflict in the value or use of these parameters
  60305. 3064 There is a problem with the file
  60306. low word
  60307. 3070 There is insufficient memory
  60308. 3071 There is insufficeient disk space
  60309. 3072 Unable to create thread
  60310. 3073 Unable to create process
  60311. 3074 A security failure occured
  60312. 3075 There is bad or missing default path
  60313. 3076 Network software is not installed
  60314. 3077 Server software is not installed
  60315. 3078 The server could not access the UAS database
  60316. 3079 The action requires user-level security
  60317. 3080 The log directory is invalid
  60318. 3081 The LAN group specificed could not be used
  60319. 3082 The computername is being used as a message alias on another computer
  60320. 3083 The workstation failed to announce the servername
  60321. 3084 The user accounts system is not configured properly
  60322. --------N-215F42-----------------------------
  60323. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetServiceControl
  60324. AX = 5F42h
  60325. DH = opcode
  60326. 00h interrogate status
  60327. 01h pause
  60328. 02h continue
  60329. 03h uninstall
  60330. DL = argument
  60331. 01h disk resource
  60332. 02h print resource
  60333. 04h communications resource (not implemented for DOS)
  60334. ES:BX -> NetServiceControl parameter structure (see #01712)
  60335. Return: CF clear if successful
  60336. CF set on error
  60337. AX = error code
  60338. Format of LAN Manager NetServiceControl parameter structure:
  60339. Offset Size Description (Table 01712)
  60340. 00h DWORD -> service name
  60341. 04h WORD result buffer size
  60342. 06h DWORD -> result buffer as service_info_2 structure
  60343. --------N-215F43-----------------------------
  60344. INT 21 u - LAN Manager Enhanced DOS - LOCAL DosPrintJobGetId
  60345. AX = 5F43h
  60346. BX = handle of remote print job
  60347. CX = size of PRIDINFO struture
  60348. ES:DI -> PRIDINFO structure (see #01713)
  60349. Return: CF clear if successful
  60350. PRIDINFO filled in
  60351. CF set on error
  60352. AX = error code
  60353. Format of LAN Manager PRIDINFO structure:
  60354. Offset Size Description (Table 01713)
  60355. 00h WORD job id
  60356. 02h 16 BYTEs server name
  60357. 12h 13 BYTEs queue name
  60358. 1Fh 1 BYTE pad
  60359. --------N-215F44-----------------------------
  60360. INT 21 - LAN Manager Enhanced DOS - LOCAL NetWkstaGetInfo
  60361. AX = 5F44h
  60362. BX = information level (00h, 01h, or 0Ah)
  60363. CX = buffer size
  60364. DX = 0000h
  60365. ES:DI -> buffer in which to store info (see #01714,#01715,#01716),
  60366. including any returned strings
  60367. Return: AX = error code
  60368. DX = amount of buffer required, unchanged if supplied buffer large
  60369. enough to hold data
  60370. SeeAlso: AX=5F45h,AX=5F49h
  60371. Format of LAN Manager wksta_info_0 structure:
  60372. Offset Size Description (Table 01714)
  60373. 00h WORD reserved (0)
  60374. 02h DWORD reserved (0)
  60375. 06h DWORD -> path to computer's LANMAN directory
  60376. 0Ah DWORD -> computername of the workstation
  60377. 0Eh DWORD -> username of user logged onto workstation
  60378. 12h DWORD -> domain to which workstation belongs
  60379. 16h WORD LAN Manager version number (2 bytes, Major, Minor)
  60380. 18h DWORD reserved (0)
  60381. 1Ch WORD number of seconds workstation waits for resource availability
  60382. 1Eh DWORD delay (in millsecs) before sending data to resource
  60383. 22h WORD reserved (0)
  60384. 24h WORD reserved (0)
  60385. 26h WORD ???
  60386. 28h WORD number of seconds to maintain an inactive connection
  60387. 2Ah WORD number of seconds an inactive search continues
  60388. 2Ch WORD threads to dedicate to network (not supported in MSDOS)
  60389. 2Eh WORD number of simultaneous commands sent to network
  60390. 30h WORD reserved6 (must be 0)
  60391. 32h WORD number of internal buffers
  60392. 34h WORD size (in bytes) of each internal buffer
  60393. 36h WORD max size (in bytes) of an internal cache buffer (not MSDOS)
  60394. 38h WORD seconds before disconnecting inactive session (not MSDOS)
  60395. 3Ah WORD size (in bytes) of an internal error buffer (not MSDOS)
  60396. 3Ch WORD number of clients that can receive alert messages (not MSDOS)
  60397. 3Eh WORD number of services that can be started on workstation
  60398. 40h WORD max size (in kilobytes) of error log (not MSDOS)
  60399. 42h WORD number of secs before closing inactive print jobs (not MSDOS)
  60400. 44h WORD number of character buffers for workstation
  60401. 46h WORD max size (in bytes) of character buffer
  60402. 48h DWORD -> name of server that validated logon
  60403. 4Ch DWORD -> workstation heuristics
  60404. 50h WORD number of mailslots allowed
  60405. Note: pointers to strings are set to 0000h:0000h if there is insufficient
  60406. space in the buffer to hold them
  60407. SeeAlso: #01715,#01716
  60408. Format of LAN Manager wksta_info_1 structure:
  60409. Offset Size Description (Table 01715)
  60410. 00h 82 BYTEs wksta_info_0 structure (see #01714)
  60411. 52h DWORD -> name of domain which user is logged on to
  60412. 56h DWORD -> all domains in which computer is enlisted
  60413. 5Ah WORD number of buffers to allocate for receiving datagrams
  60414. SeeAlso: #01716
  60415. Format of LAN Manager wksta_info_10 structure:
  60416. Offset Size Description (Table 01716)
  60417. 00h DWORD -> computername of the workstation
  60418. 04h DWORD -> username of user logged onto workstation
  60419. 08h DWORD -> domain to which workstation belongs
  60420. 0Ch WORD LAN Manager version number (2 bytes, Major, Minor)
  60421. 0Eh DWORD -> name of domain which user is loggod on to
  60422. 12h DWORD -> all domains in which computer is enlisted
  60423. Note: pointers to strings are set to 0000h:0000h if there is insufficient
  60424. space in the buffer to hold them
  60425. SeeAlso: #01714,#01715
  60426. --------N-215F45-----------------------------
  60427. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetWkstaSetInfo
  60428. AX = 5F45h
  60429. BX = level (0000h or 0001h)
  60430. CX = buffer size
  60431. DX = parameter to set
  60432. ES:DI -> buffer
  60433. Return: CF clear if successful
  60434. CF set if error
  60435. AX = error code
  60436. SeeAlso: AX=5F44h
  60437. --------N-215F46-----------------------------
  60438. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetUseEnum
  60439. AX = 5F46h
  60440. BX = level (0000h or 0001h)
  60441. CX = size of buffer
  60442. ES:DI -> buffer of use_info_0 or use_info_1 structures
  60443. (see #01717,#01718)
  60444. Return: CF clear if successful
  60445. CX = entries read
  60446. DX = total available entries
  60447. CF set if error
  60448. AX = error code
  60449. SeeAlso: AX=5F47h,AX=5F48h,AX=5F4Ch
  60450. Format of LAN Manager use_info_0 structure:
  60451. Offset Size Description (Table 01717)
  60452. 00h 9 BYTEs local device name
  60453. 09h BYTE padding
  60454. 0Ah DWORD -> remote device name in UNC form \\server\share
  60455. SeeAlso: #01718
  60456. Format of LAN Manager use_info_1 structure:
  60457. Offset Size Description (Table 01718)
  60458. 00h 9 BYTEs Local device name
  60459. 09h BYTE padding
  60460. 0Ah DWORD -> remote device name in UNC form \\server\share
  60461. 0Eh DWORD -> password
  60462. 12h WORD network link status
  60463. (00h OK, 02h disconnected, else unsure)
  60464. 14h WORD use type (-1 wildcard, 0 disk, 1 print, 2 com, 3 ipc)
  60465. 16h WORD ignored
  60466. 18h WORD ignored
  60467. SeeAlso: #01717
  60468. --------N-215F47-----------------------------
  60469. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetUseAdd
  60470. AX = 5F47h
  60471. BX = level (0001h)
  60472. CX = size of use_info_1 structure
  60473. ES:DI -> use_info_1 structure (see #01718)
  60474. Return: CF clear on success
  60475. CF set on error
  60476. AX = error code
  60477. SeeAlso: AX=5F46h,AX=5F48h
  60478. --------N-215F48-----------------------------
  60479. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetUseDel
  60480. AX = 5F48h
  60481. BX = force level
  60482. 0000h no force
  60483. 0001h force
  60484. 0002h lots of force
  60485. ES:DI -> buffer as either the local device name or UNC remote name
  60486. Return: CF clear on success
  60487. CF set on error
  60488. AX = error code
  60489. SeeAlso: AX=5F46h,AX=5F48h,AX=5F49h
  60490. --------N-215F49-----------------------------
  60491. INT 21 u - LAN Manager Enhanced DOS - NetUseGetInfo
  60492. AX = 5F49h
  60493. DS:DX -> NetUseGetInfo parameter structure (see #01719)
  60494. Return: CF clear on success
  60495. DX = total available
  60496. CF set on error
  60497. AX = error code
  60498. SeeAlso: AX=5F44h,AX=5F47h
  60499. Format of LAN Manager NetUseGetInfo parameter structure:
  60500. Offset Size Description (Table 01719)
  60501. 00h DWORD pointer to either the local device name or UNC remote name
  60502. 04h WORD level of information (0000h or 0001h)
  60503. 06h DWORD pointer to buffer of use_info_0 or use_info_1 structures
  60504. 0Ah WORD length of buffer
  60505. --------N-215F4A-----------------------------
  60506. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetRemoteCopy
  60507. AX = 5F4Ah
  60508. DS:DX -> NetRemoteCopy parameter structure (see #01720)
  60509. Return: CF clear if successful
  60510. CF set on error
  60511. AX = error code
  60512. SeeAlso: AX=5F4Bh
  60513. Format of LAN Manager NetRemoteCopy parameter structure:
  60514. Offset Size Description (Table 01720)
  60515. 00h DWORD -> source name as UNC
  60516. 04h DWORD -> destination name as UNC
  60517. 08h DWORD -> source password
  60518. 0Ch DWORD -> destination password
  60519. 10h WORD destination open bitmap
  60520. if destination path exists
  60521. 0000h open fails
  60522. 0001h file is appended
  60523. 0002h file is overwritten
  60524. if destination path doesn't exist
  60525. 0000h open fails
  60526. 0010h file is created
  60527. 12h WORD copy control bitmap (see #01721)
  60528. 14h DWORD -> copy_info buffer
  60529. 18h WORD length of copy_info buffer
  60530. Bitfields for LAN Manager copy control:
  60531. Bit(s) Description (Table 01721)
  60532. 0 destination must be a file
  60533. 1 destination must be a directory
  60534. 2 destination is opened in ascii mode instead of binary
  60535. 3 source is opened in ascii mode instead of binary
  60536. 4 verify all write operations
  60537. --------N-215F4B-----------------------------
  60538. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetRemoteMove
  60539. AX = 5F4Bh
  60540. DS:DX -> NetRemoteMove parameter structure (see #01722)
  60541. Return: CF clear if successful
  60542. CF set on error
  60543. AX = error code
  60544. SeeAlso: AX=5F4Ah
  60545. Format of LAN Manager NetRemoteMove parameter structure:
  60546. Offset Size Description (Table 01722)
  60547. 00h DWORD -> source name as UNC
  60548. 04h DWORD -> destination name as UNC
  60549. 08h DWORD -> source password
  60550. 0Ch DWORD -> destination password
  60551. 10h WORD destination open bitmap
  60552. if destination path exists
  60553. 0000h open fails
  60554. 0001h file is appended
  60555. 0002h file is overwritten
  60556. if destination path doesn't exist
  60557. 0000h open fails
  60558. 0010h file is created
  60559. 12h WORD move control bitmap
  60560. 0001h destination must be a file
  60561. 0002h destination must be a directory
  60562. 14h DWORD -> move_info buffer
  60563. 18h WORD length of move_info buffer
  60564. --------N-215F4C-----------------------------
  60565. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetServerEnum
  60566. AX = 5F4Ch
  60567. BX = level (0000h or 0001h)
  60568. CX = buffer length
  60569. ES:DI -> buffer in which to store information
  60570. Return: CF clear if successful
  60571. ES:DI -> server_info_X structures (depending on level)
  60572. (see #01723,#01724)
  60573. BX = entries read
  60574. CX = total entries available
  60575. CF set on error
  60576. AX = error code
  60577. Notes: this function is also supported by the Novell DOS Named Pipe Extender
  60578. this function has been obseleted by NetServerEnum2
  60579. SeeAlso: AX=5F53h
  60580. Format of LAN Manager server_info_0 structure:
  60581. Offset Size Description (Table 01723)
  60582. 00h 16 BYTEs name
  60583. SeeAlso: #01724
  60584. Format of LAN Manager server_info_1 structure:
  60585. Offset Size Description (Table 01724)
  60586. 00h 16 BYTEs name
  60587. 10h BYTE major version in lower nibble
  60588. 11h BYTE minor version
  60589. 12h DWORD server type bitmask (see #01725)
  60590. 16h DWORD -> comment string
  60591. SeeAlso: #01723
  60592. Bitfields for LAN Manager server type:
  60593. Bit(s) Description (Table 01725)
  60594. 0 workstation
  60595. 1 server
  60596. 2 SQL server
  60597. 3 primary domain controller
  60598. 4 backup domain controller
  60599. 5 time server
  60600. 6 Apple File Protocol (AFP) server
  60601. 7 Novell server
  60602. 8 Domain Member (v2.1+)
  60603. 9 Print Queue server (v2.1+)
  60604. 10 Dialin server (v2.1+)
  60605. 11 Unix server (v2.1+)
  60606. Note: set all (FFFFFFFFh) for All Types
  60607. --------N-215F4D-----------------------------
  60608. INT 21 u - LAN Manager Enhanced DOS - DosMakeMailslot
  60609. AX = 5F4Dh
  60610. BX = message size
  60611. CX = mailslot size (must be bigger than message size by at least 1)
  60612. (minimum 1000h, maximum FFF6h)
  60613. (buffer must be 9 bytes bigger than this)
  60614. DS:SI -> name
  60615. ES:DI -> memory buffer
  60616. Return: CF clear if successful
  60617. AX = handle
  60618. CF set on error
  60619. AX = error code
  60620. SeeAlso: AX=5F4Eh,AX=5F4Fh,AX=5F50h,AX=5F51h
  60621. --------N-215F4E-----------------------------
  60622. INT 21 u - LAN Manager Enhanced DOS - DosDeleteMailslot
  60623. AX = 5F4Eh
  60624. BX = handle
  60625. Return: CF clear if successful
  60626. ES:DI -> memory to be freed (allocated during DosMakeMailslot)
  60627. CF set on error
  60628. AX = error code
  60629. SeeAlso: AX=5F4Dh,AX=5F4Fh
  60630. --------N-215F4F-----------------------------
  60631. INT 21 u - LAN Manager Enhanced DOS - DosMailslotInfo
  60632. AX = 5F4Fh
  60633. BX = handle
  60634. Return: CF clear if successful
  60635. AX = max message size
  60636. BX = mailslot size
  60637. CX = next message size
  60638. DX = next message priority
  60639. SI = number of messages waiting
  60640. CF set on error
  60641. AX = error code
  60642. SeeAlso: AX=5F4Dh,AX=5F4Eh,AX=5F50h
  60643. --------N-215F50-----------------------------
  60644. INT 21 u - LAN Manager Enhanced DOS - DosReadMailslot
  60645. AX = 5F50h
  60646. BX = handle
  60647. DX:CX = timeout
  60648. ES:DI -> buffer
  60649. Return: CF clear if successful
  60650. AX = bytes read
  60651. CX = next item's size
  60652. DX = next item's priority
  60653. CF set on error
  60654. AX = error code
  60655. SeeAlso: AX=5F4Dh,AX=5F4Fh,AX=5F51h,AX=5F52h
  60656. --------N-215F51-----------------------------
  60657. INT 21 u - LAN Manager Enhanced DOS - DosPeekMailslot
  60658. AX = 5F51h
  60659. BX = handle
  60660. ES:DI -> buffer
  60661. Return: CF clear if successful
  60662. AX = bytes read
  60663. CX = next item's size
  60664. DX = next item's priority
  60665. CF set on error
  60666. AX = error code
  60667. SeeAlso: AX=5F35h,AX=5F4Fh,AX=5F50h,AX=5F52h
  60668. --------N-215F52-----------------------------
  60669. INT 21 u - LAN Manager Enhanced DOS - DosWriteMailslot
  60670. AX = 5F52h
  60671. BX = class
  60672. CX = length of buffer
  60673. DX = priority
  60674. ES:DI -> DosWriteMailslot parameter structure (see #01726)
  60675. DS:SI -> mailslot name
  60676. Return: CF clear if successful
  60677. CF set on error
  60678. AX = error code
  60679. SeeAlso: AX=5F4Fh,AX=5F50h,AX=5F51h
  60680. Format of LAN Manager DosWriteMailslot parameter structure:
  60681. Offset Size Description (Table 01726)
  60682. 00h DWORD timeout
  60683. 04h DWORD -> buffer
  60684. --------N-215F53-----------------------------
  60685. INT 21 u - LAN Manager Enhanced DOS - NetServerEnum2
  60686. AX = 5F53h
  60687. DS:SI -> NetServerEnum2 parameter structure (see #01727)
  60688. Return: CF clear if successful
  60689. BX = entries read
  60690. CX = total entries available
  60691. CF set on error
  60692. AX = error code
  60693. SeeAlso: AX=5F4Ch
  60694. Format of LAN Manager NetServerEnum2 parameter structure:
  60695. Offset Size Description (Table 01727)
  60696. 00h WORD level (0000h or 0001h)
  60697. 02h DWORD -> buffer as array of server_info_??? structures (see #01723)
  60698. 06h WORD length of buffer
  60699. 08h DWORD server type bitmask (see #01725)
  60700. 0Ch DWORD -> Domain name (may be 0000h:0000h for all local domains)
  60701. --------N-215F55----------------------------
  60702. INT 21 U - LAN Manager Enhanced DOS - KILL ALL CONNECTIONS???
  60703. AX = 5F55h
  60704. BX = ???
  60705. Return: CF clear if successful
  60706. CF set on error
  60707. AX = error code
  60708. --------N-215F80-----------------------------
  60709. INT 21 - LANtastic - GET LOGIN ENTRY
  60710. AX = 5F80h
  60711. BX = login entry index (0-based)
  60712. ES:DI -> 16-byte buffer for machine name
  60713. Return: CF clear if successful
  60714. buffer filled with machine name ("\\" prefix removed)
  60715. DL = adapter number (v3+)
  60716. CF set on error
  60717. AX = error code
  60718. Note: the login entry index corresponds to the value BX used in AX=5F83h
  60719. SeeAlso: AX=5F83h
  60720. --------N-215F81-----------------------------
  60721. INT 21 - LANtastic - LOGIN TO SERVER
  60722. AX = 5F81h
  60723. ES:DI -> ASCIZ login path followed immediately by ASCIZ password
  60724. BL = adapter number
  60725. FFh try all valid adapters
  60726. 00h-07h try only specified adapter
  60727. Return: CF clear if successful
  60728. CF set on error
  60729. AX = error code
  60730. Notes: login path is of form "\\machine\username"
  60731. if no password is used, the string at ES:DI must be terminated with
  60732. three NULs for compatibility with LANtastic v3.0.
  60733. SeeAlso: AX=5F82h,AX=5F84h
  60734. --------N-215F82-----------------------------
  60735. INT 21 - LANtastic - LOGOUT FROM SERVER
  60736. AX = 5F82h
  60737. ES:DI -> ASCIZ server name (in form "\\machine")
  60738. Return: CF clear if successful
  60739. CF set on error
  60740. AX = error code
  60741. SeeAlso: AX=5F81h,AX=5F88h,AX=5FCBh
  60742. --------N-215F83-----------------------------
  60743. INT 21 - LANtastic - GET USERNAME ENTRY
  60744. AX = 5F83h
  60745. BX = login entry index (0-based)
  60746. ES:DI -> 16-byte buffer for username currently logged into
  60747. Return: CF clear if successful
  60748. DL = adapter number (v3+)
  60749. CF set on error
  60750. AX = error code
  60751. Note: the login entry index corresponds to the value BX used in AX=5F80h
  60752. SeeAlso: AX=5F80h
  60753. --------N-215F84-----------------------------
  60754. INT 21 - LANtastic - GET INACTIVE SERVER ENTRY
  60755. AX = 5F84h
  60756. BX = server index not currently logged into
  60757. ES:DI -> 16-byte buffer for server name which is available for logging
  60758. in to ("\\" prefix omitted)
  60759. Return: CF clear if successful
  60760. DL = adapter number to non-logged in server is on
  60761. CF set on error
  60762. AX = error code
  60763. SeeAlso: AX=5F81h
  60764. --------N-215F85-----------------------------
  60765. INT 21 - LANtastic - CHANGE PASSWORD
  60766. AX = 5F85h
  60767. ES:DI -> buffer containing "\\machine\oldpassword" 00h "newpassword"00h
  60768. Return: CF clear if successful
  60769. CF set on error
  60770. AX = error code
  60771. Notes: must be logged into the named machine
  60772. this function is illegal for group accounts
  60773. --------N-215F86-----------------------------
  60774. INT 21 - LANtastic - DISABLE ACCOUNT
  60775. AX = 5F86h
  60776. ES:DI -> ASCIZ machine name and password in form "\\machine\password"
  60777. Return: CF clear if successful
  60778. CF set on error
  60779. AX = error code
  60780. Note: must be logged into the named machine and concurrent logins set to 1
  60781. by NET_MGR. Requires system manager to re-enable account.
  60782. --------N-215F87-----------------------------
  60783. INT 21 - LANtastic v3+ - GET ACCOUNT
  60784. AX = 5F87h
  60785. DS:SI -> 128-byte buffer for account information (see #01728)
  60786. ES:DI -> ASCIZ machine name in form "\\machine"
  60787. Return: CF clear if successful
  60788. CF set on error
  60789. AX = error code
  60790. BX destroyed
  60791. Note: must be logged into the specified machine
  60792. Format of LANtastic user account structure:
  60793. Offset Size Description (Table 01728)
  60794. 00h 16 BYTEs blank-padded username (zero-padded for v4.x)
  60795. 10h 16 BYTEs reserved (00h)
  60796. 20h 32 BYTEs user description
  60797. 40h BYTE privilege bits (see #01729)
  60798. 41h BYTE maximum concurrent users
  60799. 42h 42 BYTEs bit map for disallowed half hours, beginning on Sunday
  60800. (bit set if half-hour not an allowed time)
  60801. 6Ch WORD internal (0002h)
  60802. 6Eh 2 WORDs last login time
  60803. 72h 2 WORDs account expiration date (MS-DOS-format year/month:day)
  60804. 76h 2 WORDs password expiration date (0 = none)
  60805. 7Ah BYTE number of days to extend password after change (1-31)
  60806. 00h if no extension required
  60807. ---v3.x---
  60808. 7Bh 5 BYTEs reserved
  60809. ---v4.x---
  60810. 7Bh BYTE storage for first letter of user name when deleted (first
  60811. character is changed to 00h when deleting account)
  60812. 7Ch BYTE extended privileges
  60813. 7Dh 3 BYTEs reserved
  60814. Bitfields for LANtastic privilege bits:
  60815. Bit(s) Description (Table 01729)
  60816. 7 bypass access control lists
  60817. 6 bypass queue protection
  60818. 5 treat as local process
  60819. 4 bypass mail protection
  60820. 3 allow audit entry creation
  60821. 2 system manager
  60822. 0 user cannot change password
  60823. --------N-215F88-----------------------------
  60824. INT 21 - LANtastic v4.0+ - LOGOUT FROM ALL SERVERS
  60825. AX = 5F88h
  60826. Return: CF clear if successful
  60827. CF set on error
  60828. AX = error code
  60829. SeeAlso: AX=5F82h
  60830. --------N-215F97-----------------------------
  60831. INT 21 - LANtastic - COPY FILE
  60832. AX = 5F97h
  60833. CX:DX = number of bytes to copy (FFFFFFFFh = entire file)
  60834. SI = source file handle
  60835. DI = destination file handle
  60836. Return: CF clear if successful
  60837. DX:AX = number of bytes copied
  60838. CF set on error
  60839. AX = error code
  60840. Note: copy is performed by server
  60841. --------N-215F98-----------------------------
  60842. INT 21 - LANtastic - SEND UNSOLICITED MESSAGE
  60843. AX = 5F98h
  60844. DS:SI -> message buffer (see #01730)
  60845. Return: CF clear if successful
  60846. CF set on error
  60847. AX = error code
  60848. Note: v4.1- return no errors
  60849. SeeAlso: AX=5F99h
  60850. Format of LANtastic message buffer:
  60851. Offset Size Description (Table 01730)
  60852. 00h BYTE reserved
  60853. 01h BYTE message type
  60854. 00h general
  60855. 01h server warning
  60856. 02h-7Fh reserved
  60857. 80h-FFh user-defined
  60858. 02h 16 BYTEs ASCIZ destination machine name
  60859. 12h 16 BYTEs ASCIZ server name which user must be logged into
  60860. 22h 16 BYTEs ASCIZ user name
  60861. 32h 16 BYTEs ASCIZ originating machine name (filled in when received)
  60862. 42h 80 BYTEs message text
  60863. --------N-215F99-----------------------------
  60864. INT 21 - LANtastic - GET LAST RECEIVED UNSOLICITED MESSAGE
  60865. AX = 5F99h
  60866. ES:DI -> messsage buffer (see #01730)
  60867. Return: CF clear if successful
  60868. CF set on error
  60869. AX = error code
  60870. SeeAlso: AX=5F98h
  60871. --------N-215F9A-----------------------------
  60872. INT 21 - LANtastic - GET MESSAGE PROCESSING FLAGS
  60873. AX = 5F9Ah
  60874. Return: CF clear if successful
  60875. DL = bits describing processing of received messages (see #01731)
  60876. CF set on error
  60877. AX = error code
  60878. SeeAlso: AX=5F9Bh,AX=5F9Ch,AX=5F9Dh
  60879. Bitfields for unsolicited message processing flags:
  60880. Bit(s) Description (Table 01731)
  60881. 0 beep before message is delivered
  60882. 1 deliver message to message service
  60883. 2 pop up message automatically (v3+)
  60884. --------N-215F9B-----------------------------
  60885. INT 21 - LANtastic - SET MESSAGE PROCESSING FLAGS
  60886. AX = 5F9Bh
  60887. DL = bits describing processing for received unsolicited messages
  60888. (see #01731)
  60889. Return: CF clear if successful
  60890. CF set on error
  60891. AX = error code
  60892. SeeAlso: AX=5F9Ah,AX=5F9Eh
  60893. --------N-215F9C-----------------------------
  60894. INT 21 - LANtastic v3+ - POP UP LAST RECEIVED MESSAGE
  60895. AX = 5F9Ch
  60896. CX = time to leave on screen in clock ticks
  60897. DH = 0-based screen line on which to place message
  60898. Return: CF clear if successful
  60899. CF set on error
  60900. AX = error code (0Bh)
  60901. Notes: the original screen contents are restored when the message is removed
  60902. the message will not appear, and an error will be returned, if the
  60903. screen is in a graphics mode
  60904. SeeAlso: AX=5F9Ah
  60905. --------N-215F9D-----------------------------
  60906. INT 21 - LANtastic v4.1+ - GET REDIRECTOR CONTROL BITS
  60907. AX = 5F9Dh
  60908. Return: DL = redirector control bits
  60909. bit 7: set to notify on print job completion
  60910. SeeAlso: AX=5F9Ah,AX=5F9Eh
  60911. --------N-215F9E-----------------------------
  60912. INT 21 - LANtastic v4.1+ - SET REDIRECTOR CONTROL BITS
  60913. AX = 5F9Eh
  60914. DL = redirector control bits (see AX=5F9Dh)
  60915. Return: nothing
  60916. SeeAlso: AX=5F9Bh,AX=5F9Dh
  60917. --------N-215FA0-----------------------------
  60918. INT 21 - LANtastic - GET QUEUE ENTRY
  60919. AX = 5FA0h
  60920. BX = queue entry index (0000h is first entry)
  60921. DS:SI -> buffer for queue entry (see #01732)
  60922. ES:DI -> ASCIZ server name in form "\\name"
  60923. Return: CF clear if successful
  60924. CF set on error
  60925. AX = error code
  60926. BX = entry index for next queue entry (BX-1 is current index)
  60927. SeeAlso: AX=5FA1h,AX=5FA2h
  60928. Format of LANtastic queue entry:
  60929. Offset Size Description (Table 01732)
  60930. 00h BYTE status of entry (see #01733)
  60931. 01h DWORD size of spooled file
  60932. 05h BYTE type of entry (see #01734)
  60933. 06h BYTE output control (see #01735)
  60934. 07h WORD number of copies
  60935. 09h DWORD sequence number of queue entry
  60936. 0Dh 48 BYTEs pathname of spooled file
  60937. 3Dh 16 BYTEs user who spooled file
  60938. 4Dh 16 BYTEs name of machine from which file was spooled
  60939. 5Dh WORD date file was spooled (see #01666 at AX=5700h)
  60940. 5Fh WORD time file was spooled (see #01665 at AX=5700h)
  60941. 61h 17 BYTEs ASCIZ destination device or user name
  60942. 72h 48 BYTEs comment field
  60943. (Table 01733)
  60944. Values for status of LANtastic queue entry:
  60945. 00h empty
  60946. 01h being updated
  60947. 02h being held
  60948. 03h waiting for despool
  60949. 04h being despooled
  60950. 05h canceled
  60951. 06h spooled file could not be accessed
  60952. 07h destination could not be accessed
  60953. 08h rush job
  60954. (Table 01734)
  60955. Values for type of LANtastic queue entry:
  60956. 00h printer queue file
  60957. 01h message
  60958. 02h local file
  60959. 03h remote file
  60960. 04h to remote modem
  60961. 05h batch processor file
  60962. Bitfields for output control:
  60963. Bit(s) Description (Table 01735)
  60964. 6 don't delete (for mail)
  60965. 5 mail file contains voice mail (v3+)
  60966. 4 mail message has been read
  60967. 3 response has been requested for this mail
  60968. --------N-215FA1-----------------------------
  60969. INT 21 - LANtastic - SET QUEUE ENTRY
  60970. AX = 5FA1h
  60971. BX = handle of opened queue entry
  60972. DS:SI -> queue entry (see #01732)
  60973. Return: CF clear if successful
  60974. CF set on error
  60975. AX = error code
  60976. Notes: the only queue entry fields which may be changed are output control,
  60977. number of copies, destination device, and comment
  60978. the handle in BX is that from a create or open (INT 21/AH=3Ch,3Dh)
  60979. call on the file "\\server\\@MAIL" or "\\server\@name" (for
  60980. printer queue entries)
  60981. SeeAlso: AX=5FA0h,AX=5FA2h,AX=5FA9h
  60982. --------N-215FA2-----------------------------
  60983. INT 21 - LANtastic - CONTROL QUEUE
  60984. AX = 5FA2h
  60985. BL = control command
  60986. 00h start despooling (privileged)
  60987. 01h halt despooling (privileged)
  60988. 02h halt despooling at end of job (privileged)
  60989. 03h pause despooler at end of job (privileged)
  60990. 04h print single job (privileged)
  60991. 05h restart current job (privileged)
  60992. 06h cancel the current job
  60993. 07h hold queue entry
  60994. 08h release a held queue entry
  60995. 09h make queue entry a rushed job (privileged)
  60996. CX:DX = sequence number to control (commands 06h-09h)
  60997. DX = physical printer number (commands 00h-05h)
  60998. 00h-02h LPT1-LPT3
  60999. 03h,04h COM1,COM2
  61000. other all printers
  61001. ES:DI -> ASCIZ server name in form "\\machine"
  61002. Return: CF clear if successful
  61003. CF set on error
  61004. AX = error code
  61005. --------N-215FA3-----------------------------
  61006. INT 21 - LANtastic v3+ - GET PRINTER STATUS
  61007. AX = 5FA3h
  61008. BX = physical printer number (00h-02h = LPT1-LPT3, 03h-04h = COM1-COM2)
  61009. DS:SI -> buffer for printer status (see #01736)
  61010. ES:DI -> ASCIZ server name in form "\\machine"
  61011. Return: CF clear if successful
  61012. CF set on error
  61013. AX = error code
  61014. BX = next physical printer number
  61015. Note: you must be logged in to the specified server
  61016. Format of LANtastic printer status:
  61017. Offset Size Description (Table 01736)
  61018. 00h BYTE printer state (see #01737)
  61019. 01h WORD queue index of print job being despooled
  61020. FFFFh if not despooling--ignore all following fields
  61021. 03h WORD actual characters per second being output
  61022. 05h DWORD number of characters actually output so far
  61023. 09h DWORD number of bytes read from spooled file so far
  61024. 0Dh WORD copies remaining to print
  61025. Bitfields for LANtastic printer state:
  61026. Bit(s) Description (Table 01737)
  61027. 7 printer paused
  61028. 0-6 0 printer disabled
  61029. 1 will stop at end of job
  61030. 2 print multiple jobs
  61031. --------N-215FA4-----------------------------
  61032. INT 21 - LANtastic v3+ - GET STREAM INFO
  61033. AX = 5FA4h
  61034. BX = 0-based stream index number
  61035. DS:SI -> buffer for stream information (see #01738)
  61036. ES:DI -> ASCIZ machine name in form "\\machine"
  61037. Return: CF clear if successful
  61038. CF set on error
  61039. AX = error code
  61040. BX = next stream number
  61041. SeeAlso: AX=5FA5h
  61042. Format of LANtastic stream information:
  61043. Offset Size Description (Table 01738)
  61044. 00h BYTE queueing of jobs for logical printer (0=disabled,other=enabled)
  61045. 01h 11 BYTEs logical printer resource template (may contain ? wildcards)
  61046. --------N-215FA5-----------------------------
  61047. INT 21 - LANtastic v3+ - SET STREAM INFO
  61048. AX = 5FA5h
  61049. BX = 0-based stream index number
  61050. DS:SI -> buffer containing stream information (see #01738)
  61051. ES:DI -> ASCIZ machine name in form "\\machine"
  61052. Return: CF clear if successful
  61053. CF set on error
  61054. AX = error code
  61055. SeeAlso: AX=5FA4h
  61056. --------N-215FA7-----------------------------
  61057. INT 21 - LANtastic - CREATE USER AUDIT ENTRY
  61058. AX = 5FA7h
  61059. DS:DX -> ASCIZ reason code (max 8 bytes)
  61060. DS:SI -> ASCIZ variable reason string (max 128 bytes)
  61061. ES:DI -> ASCIZ machine name in form "\\machine"
  61062. Return: CF clear if successful
  61063. CF set on error
  61064. AX = error code
  61065. Note: you must be logged in to the specified server and have the "U"
  61066. privilege to execute this call
  61067. --------N-215FA9-----------------------------
  61068. INT 21 - LANtastic v4.1+ - SET EXTENDED QUEUE ENTRY
  61069. AX = 5FA9h
  61070. BX = handle of opened queue entry
  61071. DS:SI -> queue entry (see #01732)
  61072. Return: CF clear if successful
  61073. CF set on error
  61074. AX = error code
  61075. Note: functions exactly the same as AX=5FA1h except the spooled filename is
  61076. also set. This call supports direct despooling.
  61077. SeeAlso: AX=5FA1h
  61078. --------N-215FB0-----------------------------
  61079. INT 21 - LANtastic - GET ACTIVE USER INFORMATION
  61080. AX = 5FB0h
  61081. BX = server login entry index
  61082. DS:SI -> buffer for active user entry (see #01739)
  61083. ES:DI -> ASCIZ machine name in form "\\server"
  61084. Return: CF clear if successful
  61085. CF set on error
  61086. AX = error code
  61087. BX = next login index
  61088. SeeAlso: AX=5FB2h
  61089. Format of LANtastic active user entry:
  61090. Offset Size Description (Table 01739)
  61091. 00h WORD virtual circuit number
  61092. 02h BYTE login state (see #01740)
  61093. 03h BYTE last command issued (see #01741)
  61094. 04h 5 BYTEs number of I/O bytes (40-bit unsigned number)
  61095. 09h 3 BYTEs number of server requests (24-bit unsigned)
  61096. 0Ch 16 BYTEs name of user who is logged in
  61097. 1Ch 16 BYTEs name of remote logged in machine
  61098. 2Ch BYTE extended privileges (v4+???)
  61099. bit 0: user cannot change his password
  61100. 2Dh WORD time left in minutes (0000h = unlimited) (v4+???)
  61101. Bitfields for login state:
  61102. Bit(s) Description (Table 01740)
  61103. 0 fully logged in
  61104. 1 remote program load login
  61105. 2 user has system manager privileges
  61106. 3 user can create audit entries
  61107. 4 bypass mail protection
  61108. 5 treat as local process
  61109. 6 bypass queue protection
  61110. 7 bypass access control lists
  61111. (Table 01741)
  61112. Values for last LANtastic command:
  61113. 00h login
  61114. 01h process termination
  61115. 02h open file
  61116. 03h close file
  61117. 04h create file
  61118. 05h create new file
  61119. 06h create unique file
  61120. 07h commit data to disk
  61121. 08h read file
  61122. 09h write file
  61123. 0Ah delete file
  61124. 0Bh set file attributes
  61125. 0Ch lock byte range
  61126. 0Dh unlock byte range
  61127. 0Eh create subdirectory
  61128. 0Fh remove subdirectory
  61129. 10h rename file
  61130. 11h find first matching file
  61131. 12h find next matching file
  61132. 13h get disk free space
  61133. 14h get a queue entry
  61134. 15h set a queue entry
  61135. 16h control the queue
  61136. 17h return login information
  61137. 18h return link description
  61138. 19h seek on file
  61139. 1Ah get server's time
  61140. 1Bh create audit entry
  61141. 1Ch open file in multitude of modes
  61142. 1Dh change password
  61143. 1Eh disable account
  61144. 1Fh local server file copy
  61145. ---v3+---
  61146. 20h get username from account file
  61147. 21h translate server's logical path
  61148. 22h make indirect file
  61149. 23h get indirect file contents
  61150. 24h get physical printer status
  61151. 25h get logical print stream info
  61152. 26h set logical print stream info
  61153. 27h get user's account record
  61154. ---v4+---
  61155. 28h request server shutdown
  61156. 29h cancel server shutdown
  61157. 2Ah stuff server's keyboard
  61158. 2Bh write then commit data to disk
  61159. 2Ch set extended queue entry
  61160. 2Dh terminate user from server
  61161. 2Eh enable/disable logins
  61162. 2Fh flush server caches
  61163. 30h change username
  61164. 31h get extended queue entry
  61165. (same as get queue, but can return named fields blanked)
  61166. --------N-215FB1-----------------------------
  61167. INT 21 - LANtastic - GET SHARED DIRECTORY INFORMATION
  61168. AX = 5FB1h
  61169. DS:SI -> 64-byte buffer for link description
  61170. ES:DI -> ASCIZ machine and shared directory name in form
  61171. "\\machine\shared-resource"
  61172. Return: CF clear if successful
  61173. CX = access control list privileges for requesting user (see #01742)
  61174. CF set on error
  61175. AX = error code
  61176. Bitfields for LANtastic access control list:
  61177. Bit(s) Description (Table 01742)
  61178. 4 (I) allow expansion of indirect files
  61179. 5 (A) allow attribute changing
  61180. 6 (P) allow physical access to device
  61181. 7 (E) allow program execution
  61182. 8 (N) allow file renaming
  61183. 9 (K) allow directory deletion
  61184. 10 (D) allow file deletion
  61185. 11 (L) allow file/directory lookups
  61186. 12 (M) allow directory creation
  61187. 13 (C) allow file creation
  61188. 14 (W) allow open for write and writing
  61189. 15 (R) allow open for read and reading
  61190. --------N-215FB2-----------------------------
  61191. INT 21 - LANtastic v3+ - GET USERNAME FROM ACCOUNT FILE
  61192. AX = 5FB2h
  61193. BX = username entry index (0 for first)
  61194. DS:SI -> 16-byte buffer for username
  61195. ES:DI -> ASCIZ server name in form "\\machine"
  61196. Return: CF clear if successful
  61197. CF set on error
  61198. AX = error code
  61199. BX = next queue entry index
  61200. SeeAlso: AX=5FB0h
  61201. --------N-215FB3-----------------------------
  61202. INT 21 - LANtastic v3+ - TRANSLATE PATH
  61203. AX = 5FB3h
  61204. DS:SI -> 128-byte buffer for ASCIZ result
  61205. ES:DI -> full ASCIZ path, including server name
  61206. DX = types of translation to be performed
  61207. bit 0: expand last component as indirect file
  61208. bit 1: return actual path relative to server's physical disk
  61209. Return: CF clear if successful
  61210. CF set on error
  61211. AX = error code
  61212. Note: always expands any indirect files along the path
  61213. SeeALso: AX=5FB4h,INT 21/AH=60h
  61214. --------N-215FB4-----------------------------
  61215. INT 21 - LANtastic v3+ - CREATE INDIRECT FILE
  61216. AX = 5FB4h
  61217. DS:SI -> 128-byte buffer containing ASCIZ contents of indirect file
  61218. ES:DI -> full ASCIZ path of indirect file to create, incl machine name
  61219. Return: CF clear if successful
  61220. CF set on error
  61221. AX = error code
  61222. Note: the contents of the indirect file may be any valid server-relative path
  61223. SeeAlso: AX=5FB3h,AX=5FB5h
  61224. --------N-215FB5-----------------------------
  61225. INT 21 - LANtastic v3+ - GET INDIRECT FILE CONTENTS
  61226. AX = 5FB5h
  61227. DS:SI -> 128-byte buffer for ASCIZ indirect file contents
  61228. ES:DI -> full ASCIZ path of indirect file
  61229. Return: CF clear if successful
  61230. CF set on error
  61231. AX = error code
  61232. SeeAlso: AX=5FB4h
  61233. --------N-215FB6-----------------------------
  61234. INT 21 - LANtastic v4.1+ - SET AUTO-LOGIN DEFAULTS
  61235. AX = 5FB6h
  61236. ES:DI -> pointer to ASCIZ default user name, immediately followed by
  61237. ASCIZ password
  61238. BL = adapter number to use for default login attempt
  61239. FFh try all valid adapters
  61240. 00h-05h try adapter 0-5 explicitly
  61241. Return: CF clear if successful
  61242. CF set on error
  61243. AX = error code
  61244. Notes: call with ES:DI -> two nulls to disable auto-login
  61245. SeeAlso: AX=5FB7h
  61246. --------N-215FB7-----------------------------
  61247. INT 21 - LANtastic v4.1+ - GET AUTO-LOGIN DEFAULTS
  61248. AX = 5FB7h
  61249. ES:DI -> pointer to 16-byte buffer to store ASCIZ auto-login user name
  61250. Return: CF clear if successful
  61251. DL = adapter number used for default login attempt
  61252. FFh all valid adapters will be tried
  61253. 00h-05h specified adapter will be tried explicitly
  61254. CF set on error
  61255. AX = error code
  61256. SeeAlso: AX=5F81h,AX=5FB6h
  61257. --------N-215FC0-----------------------------
  61258. INT 21 - LANtastic - GET TIME FROM SERVER
  61259. AX = 5FC0h
  61260. DS:SI -> time block (see #01743)
  61261. ES:DI -> ASCIZ server name to get time from
  61262. Return: CF clear if successful
  61263. CF set on error
  61264. AX = error code
  61265. SeeAlso: AH=E7h"Novell"
  61266. Format of LANtastic time block:
  61267. Offset Size Description (Table 01743)
  61268. 00h WORD year
  61269. 02h BYTE day
  61270. 03h BYTE month
  61271. 04h BYTE minutes
  61272. 05h BYTE hour
  61273. 06h BYTE hundredths of second
  61274. 07h BYTE second
  61275. --------N-215FC8-----------------------------
  61276. INT 21 - LANtastic v4.0+ - SCHEDULE SERVER SHUTDOWN
  61277. AX = 5FC8h
  61278. ES:DI -> ASCIZ server name in form "\\machine"
  61279. DS:SI -> ASCIZ reason string (80 characters)
  61280. CX = number of minutes until shutdown (0 = immediate)
  61281. DX = option flags (see #01744)
  61282. Return: CF clear if successful
  61283. CF set on error
  61284. AX = error code
  61285. SeeAlso: AX=5FC9h
  61286. Bitfields for LANtastic option flags:
  61287. Bit(s) Description (Table 01744)
  61288. 0 auto reboot
  61289. 1 do not notify users
  61290. 2 halt after shutdown
  61291. 3 shutdown due to power fail (used by UPS)
  61292. 4-7 reserved
  61293. 8-14 user definable
  61294. 15 reserved
  61295. --------N-215FC9-----------------------------
  61296. INT 21 - LANtastic v4.0+ - CANCEL SERVER SHUTDOWN
  61297. AX = 5FC9h
  61298. ES:DI -> ASCIZ server name in form "\\machine"
  61299. Return: CF clear if successful
  61300. CF set on error
  61301. AX = error code
  61302. Note: you must have the "S" privilege to use this call
  61303. SeeAlso: AX=5FC8h
  61304. --------N-215FCA-----------------------------
  61305. INT 21 - LANtastic v4.0+ - STUFF SERVER KEYBOARD BUFFER
  61306. AX = 5FCAh
  61307. ES:DI -> ASCIZ server name in form "\\machine"
  61308. DS:SI -> ASCIZ string to stuff (128 bytes)
  61309. Return: CF clear if successful
  61310. CF set on error
  61311. AX = error code
  61312. Note: you must have the "S" privilege to use this call
  61313. maximum number of characters that can be stuffed is determined by the
  61314. server's RUN BUFFER SIZE.
  61315. SeeAlso: INT 16/AH=05h
  61316. --------N-215FCB-----------------------------
  61317. INT 21 - LANtastic v4.1+ - TERMINATE USER
  61318. AX = 5FCBh
  61319. ES:DI -> ASCIZ server name in form "\\machine"
  61320. DS:SI -> blank-padded username. A null char = wildcard.
  61321. DS:DX -> blank-padded machine name. A null char = wildcard.
  61322. CX = minutes until termination (0 = immediate)
  61323. Return: CF clear if successful
  61324. CF set on error
  61325. AX = error code
  61326. Note: you must have the "S" privilege to use this call
  61327. you cannot log yourself out using this call
  61328. SeeAlso: AX=5F82h
  61329. --------N-215FCC-----------------------------
  61330. INT 21 - LANtastic v4.1+ - GET/SET SERVER CONTROL BITS
  61331. AX = 5FCCh
  61332. ES:DI -> ASCIZ server name in form "\\machine"
  61333. CX = bit values (value of bits you want to set) (see #01745)
  61334. DX = bit mask (bits you are interested in, 0 = get only) (see #01745)
  61335. Return: CF clear if successful
  61336. CX = control bits after call (see #01745)
  61337. CF set on error
  61338. AX = error code
  61339. Note: you must have the "S" privilege to SET, anyone can GET.
  61340. Bitfields for control bits:
  61341. Bit(s) Description (Table 01745)
  61342. 0 disable logins
  61343. --------N-215FCD-----------------------------
  61344. INT 21 - LANtastic v4.1+ - FLUSH SERVER CACHES
  61345. AX = 5FCDh
  61346. ES:DI -> ASCIZ server name in form "\\machine"
  61347. Return: CF clear if successful
  61348. CF set on error
  61349. AX = error code
  61350. Note: you must have the "S" privilege to use this call.
  61351. --------N-215FD0-----------------------------
  61352. INT 21 - LANtastic - GET REDIRECTED PRINTER TIMEOUT
  61353. AX = 5FD0h
  61354. Return: CF clear if successful
  61355. CX = redirected printer timeout in clock ticks of 55ms
  61356. 0000h if timeout disabled
  61357. CF set on error
  61358. AX = error code
  61359. SeeAlso: AX=5FD1h
  61360. --------N-215FD1-----------------------------
  61361. INT 21 - LANtastic - SET REDIRECTED PRINTER TIMEOUT
  61362. AX = 5FD1h
  61363. CX = printer timeout in clock ticks of 55ms, 0000h to disable timeouts
  61364. Return: CF clear if successful
  61365. CF set on error
  61366. AX = error code
  61367. SeeAlso: AX=5FD0h
  61368. --------N-215FE0-----------------------------
  61369. INT 21 C - LANtastic - GET DOS SERVICE VECTOR
  61370. AX = 5FE0h
  61371. Return: CF clear if successful
  61372. ES:BX -> current FAR service routine
  61373. CF set on error
  61374. AX = error code
  61375. Note: the service routine is called by the LANtastic redirector whenever DOS
  61376. may safely be called, permitting external TSRs and drivers to hook
  61377. into LANtastic's DOS busy flag checking
  61378. SeeAlso: AX=5FE1h,INT 28,INT 2A/AH=84h
  61379. --------N-215FE1-----------------------------
  61380. INT 21 - LANtastic - SET DOS SERVICE VECTOR
  61381. AX = 5FE1h
  61382. ES:BX -> FAR routine to call when DOS services are available
  61383. Return: CF clear if successful
  61384. CF set on error
  61385. AX = error code
  61386. Note: new handler must chain to previous handler as its first action
  61387. SeeAlso: AX=5FE0h
  61388. --------N-215FE2-----------------------------
  61389. INT 21 - LANtastic - GET MESSAGE SERVICE VECTOR
  61390. AX = 5FE2h
  61391. Return: CF clear if successful
  61392. ES:BX -> current FAR message service routine
  61393. CF set on error
  61394. AX = error code
  61395. SeeAlso: AX=5FE0h,AX=5FE3h
  61396. --------N-215FE3-----------------------------
  61397. INT 21 - LANtastic - SET MESSAGE SERVICE VECTOR
  61398. AX = 5FE3h
  61399. ES:BX -> FAR routine for processing network messages
  61400. Return: CF clear if successful
  61401. CF set on error
  61402. AX = error code
  61403. Notes: handler must chain to previous handler as its first action
  61404. on invocation, ES:BX -> just-received message
  61405. SeeAlso: AX=5FE2h
  61406. --------D-2160-------------------------------
  61407. INT 21 - DOS 3.0+ - "TRUENAME" - CANONICALIZE FILENAME OR PATH
  61408. AH = 60h
  61409. DS:SI -> ASCIZ filename or path
  61410. ES:DI -> 128-byte buffer for canonicalized name
  61411. Return: CF set on error
  61412. AX = error code
  61413. 02h invalid component in directory path or drive letter only
  61414. 03h malformed path or invalid drive letter
  61415. ES:DI buffer unchanged
  61416. CF clear if successful
  61417. AH = 00h or 3Ah (DOS 6.1/6.2 for character device)
  61418. AL = destroyed (00h or 2Fh or 5Ch or last character of current
  61419. directory on drive)
  61420. buffer filled with qualified name of form D:\PATH\FILE.EXT or
  61421. \\MACHINE\PATH\FILE.EXT
  61422. Desc: determine the canonical name of the specified filename or path,
  61423. corresponding to the undocumented TRUENAME command in COMMAND.COM
  61424. Notes: the input path need not actually exist
  61425. letters are uppercased, forward slashes converted to backslashes,
  61426. asterisks converted to appropriate number of question marks, and
  61427. file and directory names are truncated to 8.3 if necessary. (DR DOS
  61428. 3.41 and 5.0 do not expand asterisks)
  61429. '.' and '..' in the path are resolved
  61430. filespecs on local drives always start with "d:", those on network
  61431. drives always start with "\\"
  61432. if path string is on a JOINed drive, the returned name is the one that
  61433. would be needed if the drive were not JOINed; similarly for a
  61434. SUBSTed, ASSIGNed, or network drive letter. Because of this, it is
  61435. possible to get a qualified name that is not legal under the current
  61436. combination of SUBSTs, ASSIGNs, JOINs, and network redirections
  61437. under DOS 3.3 through 6.00, a device name is translated differently if
  61438. the device name does not have an explicit directory or the directory
  61439. is \DEV (relative directory DEV from the root directory works
  61440. correctly). In these cases, the returned string consists of the
  61441. unchanged device name and extension appended to the string X:/
  61442. (forward slash instead of backward slash as in all other cases) where
  61443. X is the default or explicit drive letter.
  61444. under MS-DOS 7.0, this call returns the short name for any
  61445. long-filename portions of the provided pathname or filename
  61446. functions which take pathnames require canonical paths if invoked via
  61447. INT 21/AX=5D00h
  61448. supported by OS/2 v1.1 compatibility box
  61449. NetWare 2.1x does not support characters with the high bit set; early
  61450. versions of NetWare 386 support such characters except in this call.
  61451. In addition, NetWare returns error code 3 for the path "X:\"; one
  61452. should use "X:\." instead.
  61453. Novell DOS 7 reportedly has difficulty with non-MS-DOS filenames on
  61454. network drives, and can return "D:" instead of "SERVER/VOLUME"
  61455. for DOS 3.3-6.0, the input and output buffers may be the same, as the
  61456. canonicalized name is built in an internal buffer and copied to the
  61457. specified output buffer as the very last step
  61458. for DR DOS 6.0, this function is not automatically called when on a
  61459. network. Device drivers reportedly cannot make this call from their
  61460. INIT function. Using the same pointer for both input and output
  61461. buffers is not supported in the April 1992 and earlier versions of
  61462. DR DOS
  61463. Windows for Workgroups 3.11, Windows95 and even MS-DOS 7.00 only
  61464. return the local drive path; to obtain network paths use
  61465. INT 21/AX=5F02h or INT 21/AX=5F46h instead
  61466. Corel's CORELCDX and MSCDEX without the /S switch return canonical
  61467. names of the form "\\D.\A.\path", where "D" is the CD-ROM drive
  61468. letter and "A" appears to indicate the first physical CD-ROM drive;
  61469. MSCDEX with the /S switch returns a canonical name with embedded
  61470. blanks. Novell DOS 7 NWCDEX as of the 11/16/94 update returns the
  61471. same canonical path as MSCDEX; earlier revisions returned
  61472. "Cdex. D:\path", where "D" is the CD-ROM drive letter
  61473. the Windows95 MSCDEX-replacement VxD returns "D:\path", even though the
  61474. MS-DOS 7.00 MSCDEX behaves identically to older versions (above)
  61475. BUG: Windows95 incorrectly treats filenames where the first two characters
  61476. after the drive letter and colon are both slashes (either forward
  61477. or backward) as a UNC (network name) and requires several seconds
  61478. to attempt to resolve the name before returning an unchanged
  61479. string
  61480. SeeAlso: AX=5F02h,AX=5FB3h,AX=7160h/CL=00h,INT 2F/AX=1123h,INT 2F/AX=1221h
  61481. --------D-2161-------------------------------
  61482. INT 21 - DOS 3.0+ - UNUSED (RESERVED FOR NETWORK USE)
  61483. AH = 61h
  61484. Return: AL = 00h
  61485. Note: this function does nothing and returns immediately
  61486. --------O-2161--BP6467-----------------------
  61487. INT 21 U - OS/2 v1.x FAPI - OS/2 FILE SYSTEM JOIN/SUBST
  61488. AH = 61h
  61489. BP = 6467h ("dg")
  61490. AL = function
  61491. 00h list (i.e. get)
  61492. 01h add
  61493. 02h delete
  61494. BX = drive number
  61495. CX = size of buffer
  61496. SI = type (0002h JOIN, 0003h SUBST)
  61497. ES:DI -> buffer
  61498. Return: CF clear if successful
  61499. AX = 0000h
  61500. ES:DI buffer filled, if appropriate
  61501. CF set on error
  61502. AX = error code
  61503. Notes: used by JOIN and SUBST to communicate with the OS/2 file system
  61504. for function 00h (list), the ES:DI buffer is filled with the ASCIZ
  61505. JOIN/SUBST path or an empty string if the drive is not JOINed/SUBSTed
  61506. also supported by OS/2 v2.0+ Virtual DOS Machines
  61507. --------D-2162-------------------------------
  61508. INT 21 - DOS 3.0+ - GET CURRENT PSP ADDRESS
  61509. AH = 62h
  61510. Return: BX = segment of PSP for current process
  61511. Notes: this function does not use any of the DOS-internal stacks and may
  61512. thus be called at any time, even during another INT 21h call
  61513. the current PSP is not necessarily the caller's PSP
  61514. identical to the undocumented AH=51h
  61515. SeeAlso: AH=50h,AH=51h
  61516. --------U-216262SI1994-----------------------
  61517. INT 21 - ENVLOCK - INSTALLATION CHECK
  61518. AX = 6262h
  61519. SI = 1994h
  61520. Return: AX = 1994h if installed
  61521. ES = ENVLOCK's resident segment
  61522. Notes: to deactivate ENVLOCK, zero out the byte at ES:[0102h]
  61523. Program: ENVLOCK is a TSR by Alexander Yanovsky (aka PC Hawk) that forces
  61524. other TSRs to deallocate their environment when they stay resident
  61525. --------D-216300-----------------------------
  61526. INT 21 - DOS 2.25 only - GET LEAD BYTE TABLE ADDRESS
  61527. AX = 6300h
  61528. Return: CF clear if successful
  61529. DS:SI -> lead byte table (see #01746)
  61530. CF set on error
  61531. AX = error code (01h) (see #01680 at AH=59h/BX=0000h)
  61532. Notes: does not preserve any registers other than SS:SP
  61533. the US version of MS-DOS 3.30 treats this as an unused function,
  61534. setting AL=00h and returning immediately
  61535. SeeAlso: AX=6301h,AH=07h,AH=08h,AH=0Bh
  61536. Format of double-byte character set lead byte table entry:
  61537. Offset Size Description (Table 01746)
  61538. 00h 2 BYTEs low/high ends of a range of leading byte of double-byte chars
  61539. 02h 2 BYTEs low/high ends of a range of leading byte of double-byte chars
  61540. ...
  61541. N 2 BYTEs 00h,00h end flag
  61542. --------D-216300-----------------------------
  61543. INT 21 - DOS 3.2+ - GET DOUBLE BYTE CHARACTER SET LEAD-BYTE TABLE
  61544. AX = 6300h
  61545. Return: AL = error code
  61546. 00h successful
  61547. DS:SI -> DBCS table (see #01746)
  61548. all other registers except CS:IP and SS:SP destroyed
  61549. FFh not supported
  61550. Notes: probably identical to AH=63h/AL=00h for DOS 2.25
  61551. the US version of MS-DOS 3.30 treats this as an unused function,
  61552. setting AL=00h and returning immediately, WITHOUT setting DS:SI;
  61553. only the Far East versions of MS-DOS 3.2 and 3.3 supported this call
  61554. the US version of DOS 4.0+ accepts this function, but returns an empty
  61555. list
  61556. IBM DOS 6.1 SYS.COM assumes that CF is set on error
  61557. SeeAlso: AX=6300h"DOS 2.25"
  61558. --------D-216301-----------------------------
  61559. INT 21 - DOS 2.25, DOS 3.2+ - SET KOREAN (HANGEUL) INPUT MODE
  61560. AX = 6301h
  61561. DL = new mode
  61562. 00h return only full characters on DOS keyboard input functions
  61563. 01h return partially-formed (interim) characters also
  61564. Return: AL = status
  61565. 00h successful
  61566. FFh invalid mode
  61567. Notes: Novell DOS 7 simply stores DL in the caller's PSP (see #01378 at AH=26h)
  61568. the US version of MS-DOS 3.30 treats this as an unused function,
  61569. setting AL=00h and returning immediately; only the Far East versions
  61570. of MS-DOS 3.2 and 3.3 supported this call
  61571. SeeAlso: AH=07h,AH=08h,AH=0Bh,AX=6300h,AX=6302h
  61572. --------D-216302-----------------------------
  61573. INT 21 - DOS 2.25, DOS 3.2+ - GET KOREAN (HANGEUL) INPUT MODE
  61574. AX = 6302h
  61575. Return: AL = status
  61576. 00h successful
  61577. DL = current input mode
  61578. 00h return only full characters (clears interim flag)
  61579. 01h return partial characters (sets interim flag)
  61580. FFh not supported
  61581. Notes: Novell DOS 7 simply reads the value out of the caller's PSP, so it
  61582. can return values other than 00h or 01h if the last call to AX=6301h
  61583. used another value
  61584. the US version of MS-DOS 3.30 treats this as an unused function,
  61585. setting AL=00h and returning immediately, WITHOUT setting DL; only
  61586. the Far East versions of MS-DOS 3.2 and 3.3 supported this call
  61587. SeeAlso: AH=07h,AH=08h,AH=0Bh,AX=6300h,AX=6301h
  61588. --------v-216303------------------------
  61589. INT 21 - VIRUS - "DOS IDLE" - INSTALLATION CHECK
  61590. AX = 6303h
  61591. Return: BX = 6303h if resident
  61592. SeeAlso: AX=5643h"VIRUS",AX=6304h"VIRUS",AX=9AD5h"VIRUS"
  61593. --------v-216304------------------------
  61594. INT 21 - VIRUS - "Replicator" - INSTALLATION CHECK
  61595. AX = 6304h
  61596. Return: BX = 6304h if resident
  61597. SeeAlso: AX=6303h"VIRUS",AX=6969h"VIRUS"
  61598. --------D-2164-------------------------------
  61599. INT 21 - DOS 3.2+ internal - SET DEVICE DRIVER LOOKAHEAD FLAG
  61600. AH = 64h
  61601. AL = flag
  61602. 00h (default) call device driver function 5 (non-dest read)
  61603. before INT 21/AH=01h,08h,0Ah
  61604. nonzero don't call driver function 5
  61605. Return: nothing (MS-DOS)
  61606. CF set, AX=error code??? (DR DOS 5.0, which does not support this call)
  61607. Notes: this function is called by the DOS 3.3+ PRINT.COM
  61608. under MS-DOS, this function does not use any of the DOS-internal stacks
  61609. and may thus be called at any time, even during another DOS call
  61610. SeeAlso: AH=01h,AH=08h,AH=0Ah,AX=5D06h
  61611. --------O-2164--DX0000-----------------------
  61612. INT 21 U - OS/2 v2.0+ Virtual DOS Machine - ENABLE AUTOMATIC TITLE SWITCH
  61613. AH = 64h
  61614. DX = 0000h (function number)
  61615. CX = 636Ch (magic value, "cl")
  61616. BX = 0000h (indicates special request)
  61617. Note: if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  61618. in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  61619. SeeAlso: AH=64h/DX=0001h,INT 21/AH=4Bh
  61620. --------O-2164--DX0001-----------------------
  61621. INT 21 U - OS/2 v2.0+ Virtual DOS Machine - SET SESSION TITLE
  61622. AH = 64h
  61623. DX = 0001h (function number)
  61624. CX = 636Ch (magic value, "cl")
  61625. BX = 0000h (indicates special request)
  61626. ES:DI -> new ASCIZ title (max 12 char) or "" to restore default title
  61627. Note: if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  61628. in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  61629. SeeAlso: AH=64h/DX=0000h,AH=64h/DX=0002h,INT 15/AH=12h/BH=05h
  61630. --------O-2164--DX0002-----------------------
  61631. INT 21 U - OS/2 v2.0+ Virtual DOS Machine - GET SESSION TITLE
  61632. AH = 64h
  61633. DX = 0002h (function number)
  61634. CX = 636Ch (magic value, "cl")
  61635. BX = 0000h (indicates special request)
  61636. ES:DI -> 13-byte buffer for current title
  61637. Return: buffer filled (single 00h if title never changed)
  61638. Note: if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  61639. in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  61640. SeeAlso: AH=64h/DX=0000h,AH=64h/DX=0001h,INT 15/AH=12h/BH=05h
  61641. --------O-2164--DX0003-----------------------
  61642. INT 21 U - OS/2 v2.1 Virtual DOS Machine - GET LASTDRIVE
  61643. AH = 64h
  61644. DX = 0003h (function number)
  61645. CX = 636Ch (magic value, "cl")
  61646. BX = 0000h (indicates special request)
  61647. Return: AL = highest drive supported
  61648. Notes: if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  61649. in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  61650. used by WinOS2
  61651. not supported by OS/2 Warp 3.0, check list of lists instead (see #01627)
  61652. SeeAlso: AH=52h
  61653. --------O-2164--DX0004-----------------------
  61654. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET SIZE OF PTDA JFT
  61655. AH = 64h
  61656. DX = 0004h (function number)
  61657. CX = 636Ch (magic value, "cl")
  61658. BX = 0000h (indicates special request)
  61659. Return: AX = number of entries in OS/2 JFT for VDM
  61660. Notes: if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  61661. in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  61662. in an OS/2 VDM, the DOS Job File Table in the PSP contains an index
  61663. into the OS/2 JFT in the Per-Task Data Area rather than an SFT index
  61664. because the OS/2 SFT can contain more than 255 entries
  61665. --------O-2164--DX0005-----------------------
  61666. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET SECOND SFT FLAGS WORD
  61667. AH = 64h
  61668. DX = 0005h (function number)
  61669. CX = 636Ch (magic value, "cl")
  61670. BX = 0000h (indicates special request)
  61671. DI = DOS file handle
  61672. Return: AX = value of second flags word from OS/2 SFT entry for file
  61673. Notes: if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  61674. in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  61675. the OS/2 SFT has two flags words rather than DOS's one word, and this
  61676. function provides access to the word which is not present in DOS
  61677. --------O-2164--DX0006-----------------------
  61678. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - UNLOAD DOSKRNL SYMBOLS & LOAD PROGR
  61679. AH = 64h
  61680. DX = 0006h (function number)
  61681. CX = 636Ch (magic value, "cl")
  61682. BX = 0000h (indicates special request)
  61683. ES:DI -> ASCIZ filespec
  61684. DS = base address for loading
  61685. Notes: if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  61686. in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  61687. this function is only supported by the kernel debugging version of
  61688. OS2KRNL
  61689. --------O-2164--DX0007-----------------------
  61690. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET WinOS2 CALL GATE ADDRESS
  61691. AH = 64h
  61692. DX = 0007h (function number)
  61693. CX = 636Ch (magic value, "cl")
  61694. BX = 0000h (indicates special request)
  61695. Return: AX = call gate address
  61696. Notes: if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  61697. in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  61698. used by WinOS2 to make direct calls to OS2KRNL, bypassing the overhead
  61699. of DOSKRNL
  61700. --------O-2164--DX0008-----------------------
  61701. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET LOADING MESSAGE
  61702. AH = 64h
  61703. DX = 0008h (function number)
  61704. CX = 636Ch (magic value, "cl")
  61705. BX = 0000h (indicates special request)
  61706. Return: DS:DX -> '$'-terminated message "Loading. Please wait."
  61707. Notes: if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  61708. in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  61709. this function permits National Language Support for the initial message
  61710. displayed while WinOS2 starts a full-screen session
  61711. --------O-2164--CX636C-----------------------
  61712. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - OS/2 API support
  61713. AH = 64h
  61714. CX = 636Ch ("cl")
  61715. BX = API ordinal (see #01747)
  61716. other registers as appropriate for API call
  61717. Return: as appropriate for API call
  61718. SeeAlso: AH=64h/BX=0025h,AH=64h/BX=00B6h,AH=64h/BX=00CBh
  61719. (Table 01747)
  61720. Values for OS/2 API ordinal:
  61721. 0025h DOS32StartSession
  61722. 0082h DosGetCP
  61723. 00B6h DosQFSAttach
  61724. 00BFh DosEditName
  61725. 00CBh DosForceDelete
  61726. 0144h Dos32CreateEventSem
  61727. 0145h Dos32OpenEvenSem
  61728. 0146h Dos32CloseEventSem
  61729. 0147h Dos32ResetEventSem
  61730. 0148h Dos32PostEventSem
  61731. 0149h Dos32WaitEventSem
  61732. 014Ah Dos32QueryEventSem
  61733. 014Bh Dos32CreateMutexSem
  61734. 014Ch Dos32OpenMutexSem
  61735. 014Dh Dos32CloseMutexSem
  61736. 014Eh Dos32RequestMutexSem
  61737. 014Fh Dos32ReleaseMutexSem
  61738. 0150h Dos32QueryMutexSem
  61739. 0151h Dos32CreateMuxWaitSem
  61740. 0152h Dos32OpenMuxWaitSem
  61741. 0153h Dos32CloseMuxWaitSem
  61742. 0154h Dos32WaitMuxWaitSem
  61743. 0155h Dos32AddMuxWaitSem
  61744. 0156h Dos32DeleteMuxWaitSem
  61745. 0157h Dos32QueryMuxWaitSem
  61746. --------O-2164--BX0025-----------------------
  61747. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - OS/2 API DOS32StartSession
  61748. AH = 64h
  61749. BX = 0025h (API ordinal)
  61750. CX = 636Ch ("cl")
  61751. DS:SI -> STARTDATA structure (see #01748)
  61752. Return: AX = return code
  61753. SeeAlso: AH=64h/CX=636Ch,AH=64h/BX=00B6h
  61754. Format of OS/2 Virtual DOS Machine STARTDATA structure:
  61755. Offset Size Description (Table 01748)
  61756. 00h WORD length of structure (must be 0018h,001Eh,0020h,0032h,or 003Ch)
  61757. 02h WORD relation of new process to caller (00h independent, 01h child)
  61758. 04h WORD fore/background (00h foreground, 01h background)
  61759. 06h WORD trace options (00h-02h, 00h = no trace)
  61760. 08h DWORD pointer to ASCIZ program title (max 62 chars) or 0000h:0000h
  61761. 0Ch DWORD pointer to ASCIZ program name (max 128 chars) or 0000h:0000h
  61762. 10h DWORD pointer to ASCIZ program args (max 144 chars) or 0000h:0000h
  61763. 14h DWORD "TermQ" (currently reserved, must be 00000000h)
  61764. 18h DWORD pointer to environment (max 486 bytes) or 0000h:0000h
  61765. 1Ch WORD inheritance (00h or 01h)
  61766. 1Eh WORD session type
  61767. 00h OS/2 session manager determines type (default)
  61768. 01h OS/2 full-screen
  61769. 02h OS/2 window
  61770. 03h PM
  61771. 04h VDM full-screen
  61772. 07h VDM window
  61773. 20h DWORD pointer to ASCIZ icon filename (max 128 chars) or 0000h:0000h
  61774. 24h DWORD "PgmHandle" (currently reserved, must be 00000000h)
  61775. 28h WORD "PgmControl"
  61776. 2Ah WORD initial column
  61777. 2Ch WORD initial row
  61778. 2Eh WORD initial width
  61779. 30h WORD initial height
  61780. 32h WORD reserved (0)
  61781. 34h DWORD "ObjectBuffer" (currently reserved, must be 00000000h)
  61782. 38h DWORD "ObjectBufferLen" (currently reserved, must be 00000000h)
  61783. --------O-2164--BX00B6-----------------------
  61784. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - OS/2 API DosQFSAttach
  61785. AH = 64h
  61786. BX = 00B6h (API ordinal)
  61787. CX = 636Ch (magic value "cl")
  61788. DS = user's data segment
  61789. ES:DI -> FSQAttachStruc (see #01749)
  61790. Return: CF set on error
  61791. AX = error code (see #01680 at AH=59h/BX=0000h)
  61792. CF clear if successful
  61793. AX = 0000h
  61794. data buffer filled
  61795. SeeAlso: AH=64h/CX=636Ch
  61796. Format of OS/2 Virtual DOS Machine FSQAttachStruc:
  61797. Offset Size Description (Table 01749)
  61798. 00h DWORD reserved
  61799. 04h DWORD pointer to the offset of the data buffer length
  61800. 08h DWORD pointer to the offset of the data buffer
  61801. 0Ch WORD FSA Info level
  61802. 0Eh WORD ordinal index into table
  61803. 10h DWORD pointer to the offset of the device name
  61804. Notes: The segment value of the buffer, buffer length, and device
  61805. name MUST all be the same. It is defined on entry in the DS
  61806. register. The details of each info level are defined in the
  61807. OS/2 CP Reference.
  61808. --------O-2164--BX00CB-----------------------
  61809. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - OS/2 API DosForceDelete
  61810. AH = 64h
  61811. BX = 00CBh (API ordinal)
  61812. CX = 636Ch (magic value "cl")
  61813. DS:DX -> ASCIZ filename
  61814. Return: CF clear if successful
  61815. AX destroyed
  61816. CF set on error
  61817. AX = error code (02h,03h,05h) (see #01680 at AH=59h/BX=0000h)
  61818. Desc: delete a file without saving it to the undelete directory
  61819. SeeAlso: AH=41h,AH=64h/CX=636Ch
  61820. ----------216500-----------------------------
  61821. INT 21 - Windows95 (OSR2) - SET GENERAL INTERNATIONALIZATION INFO
  61822. AX = 6500h
  61823. ES:DI -> buffer containing internationalization info (see #01750)
  61824. CX = size of buffer (>= 7)
  61825. Return: CF clear if successful
  61826. AX = system code page
  61827. CX = number of bytes copied from supplied buffer
  61828. CF set on error
  61829. AX = error code
  61830. Note: this function will not overwrite the country or code-page numbers,
  61831. but can be used to modify all other data about the country and
  61832. code page
  61833. SeeAlso: AH=65h"GET EXTENDED",AH=70h
  61834. --------D-2165-------------------------------
  61835. INT 21 - DOS 3.3+ - GET EXTENDED COUNTRY INFORMATION
  61836. AH = 65h
  61837. AL = info ID
  61838. 01h get general internationalization info (see also AX=6500h)
  61839. 02h get pointer to uppercase table
  61840. 03h (DOS 6.2+ COUNTRY.SYS) get pointer to lowercase table
  61841. 04h get pointer to filename uppercase table
  61842. 05h get pointer to filename terminator table
  61843. 06h get pointer to collating sequence table
  61844. 07h (DOS 4.0+) get pointer to Double-Byte Character Set table
  61845. BX = code page (FFFFh=global code page) (see #01757)
  61846. DX = country ID (FFFFh=current country)
  61847. ES:DI -> country information buffer (see #01750)
  61848. CX = size of buffer (>= 5)
  61849. Return: CF set on error
  61850. AX = error code (see #01680 at AH=59h/BX=0000h)
  61851. CF clear if successful
  61852. CX = size of country information returned
  61853. ES:DI -> country information (see #01750)
  61854. Notes: AL=05h appears to return same info for all countries and codepages; it
  61855. has been documented for DOS 5+, but was undocumented in earlier
  61856. versions
  61857. NLSFUNC must be installed to get info for countries other than the
  61858. default
  61859. subfunctions 02h and 04h are identical under OS/2
  61860. subfunction 03h apparently supports only codepage 866 in DOS 6.2x
  61861. SeeAlso: AH=38h,AH=70h"MS-DOS 7",INT 2F/AX=1401h,INT 2F/AX=1402h
  61862. SeeAlso: INT 2F/AX=14FEh
  61863. Format of country information:
  61864. Offset Size Description (Table 01750)
  61865. 00h BYTE info ID
  61866. ---if info ID = 01h---
  61867. 01h WORD size of following info in bytes
  61868. 03h WORD country ID (see #01400 at AH=38h)
  61869. 05h WORD code page (see #01757)
  61870. 07h 34 BYTEs country-dependent info (see #01399 at AH=38h)
  61871. ---if info ID = 02h---
  61872. 01h DWORD pointer to uppercase table (see #01751)
  61873. ---if info ID = 03h---
  61874. 01h DWORD pointer to lowercase table (see #01752)
  61875. ---if info ID = 04h---
  61876. 01h DWORD pointer to filename uppercase table (see #01753)
  61877. ---if info ID = 05h---
  61878. 01h DWORD pointer to filename character table (see #01754)
  61879. ---if info ID = 06h---
  61880. 01h DWORD pointer to collating table (see #01755)
  61881. ---if info ID = 07h (DOS 4.0+)---
  61882. 01h DWORD pointer to DBCS lead byte table (see #01756)
  61883. SeeAlso: #01775
  61884. Format of uppercase table:
  61885. Offset Size Description (Table 01751)
  61886. 00h WORD table size (0080h)
  61887. 02h 128 BYTEs uppercase equivalents (if any) of chars 80h to FFh
  61888. SeeAlso: #01750,#01753
  61889. Format of lowercase table:
  61890. Offset Size Description (Table 01752)
  61891. 00h WORD table size (0100h)
  61892. 02h 256 BYTEs lowercase equivalents (if any) of chars 00h to FFh
  61893. SeeAlso: #01750,#01753
  61894. Format of filename uppercase table:
  61895. Offset Size Description (Table 01753)
  61896. 00h WORD table size (0080h)
  61897. 02h 128 BYTEs uppercase equivalents (if any) of chars 80h to FFh
  61898. SeeAlso: #01750,#01751
  61899. Format of filename terminator table:
  61900. Offset Size Description (Table 01754)
  61901. 00h WORD table size (not counting this word)
  61902. 02h BYTE ??? (01h for MS-DOS 3.30-6.00)
  61903. 03h BYTE lowest permissible character value for filename
  61904. 04h BYTE highest permissible character value for filename
  61905. 05h BYTE ??? (00h for MS-DOS 3.30-6.00)
  61906. 06h BYTE first excluded character in range \ all characters in this
  61907. 07h BYTE last excluded character in range / range are illegal
  61908. 08h BYTE ??? (02h for MS-DOS 3.30-6.00)
  61909. 09h BYTE number of illegal (terminator) characters
  61910. 0Ah N BYTEs characters which terminate a filename: ."/\[]:|<>+=;,
  61911. Note: partially documented for DOS 5+, but undocumented for earlier versions
  61912. SeeAlso: #01750
  61913. Format of collating table:
  61914. Offset Size Description (Table 01755)
  61915. 00h WORD table size (0100h)
  61916. 02h 256 BYTEs values used to sort characters 00h to FFh
  61917. SeeAlso: #01750
  61918. Format of DBCS lead byte table:
  61919. Offset Size Description (Table 01756)
  61920. 00h WORD length of table in ranges
  61921. 02h 2N BYTEs start/end for N lead byte ranges
  61922. WORD 0000h (end of table)
  61923. SeeAlso: #01750
  61924. --------D-2165-------------------------------
  61925. INT 21 - DOS 4.0+ - COUNTRY-DEPENDENT CHARACTER CAPITALIZATION
  61926. AH = 65h
  61927. AL = function
  61928. 20h capitalize character
  61929. DL = character to capitalize
  61930. Return: DL = capitalized character
  61931. 21h capitalize string
  61932. DS:DX -> string to capitalize
  61933. CX = length of string
  61934. 22h capitalize ASCIZ string
  61935. DS:DX -> ASCIZ string to capitalize
  61936. Return: CF set on error
  61937. AX = error code (see #01680 at AH=59h/BX=0000h)
  61938. CF clear if successful
  61939. Note: these calls have been documented for DOS 5+, but were undocumented in
  61940. DOS 4.x.
  61941. BUG: Novell DOS 7 Update 15 crashes on AX=6521h when CX=0000h
  61942. --------D-216523-----------------------------
  61943. INT 21 U - DOS 4.0+ - DETERMINE IF CHARACTER REPRESENTS YES/NO RESPONSE
  61944. AX = 6523h
  61945. DL = character
  61946. DH = second character of double-byte character (if applicable)
  61947. Return: CF set on error
  61948. CF clear if successful
  61949. AX = type
  61950. 00h no
  61951. 01h yes
  61952. 02h neither yes nor no
  61953. Note: supported by Novell DOS 7, though prior to Update 14, the results
  61954. depended on the kernel variant rather than the YESCHAR= or COUNTRY=
  61955. setting in CONFIG.SYS
  61956. BUG: Novell DOS commands and tools all use internal settings rather than
  61957. this function, so the Yes/No responses are dependent on the specific
  61958. country's variant being run rather than on the COUNTRY= setting
  61959. --------D-2165-------------------------------
  61960. INT 21 U - DOS 4.0+ internal - COUNTRY-DEPENDENT FILENAME CAPITALIZATION
  61961. AH = 65h
  61962. AL = function
  61963. A0h capitalize filename character
  61964. DL = character to capitalize
  61965. Return: DL = capitalized character
  61966. A1h capitalize counted filename string
  61967. DS:DX -> filename string to capitalize
  61968. CX = length of string
  61969. A2h capitalize ASCIZ filename
  61970. DS:DX -> ASCIZ filename to capitalize
  61971. Return: CF set on error
  61972. AX = error code (see #01680 at AH=59h/BX=0000h)
  61973. CF clear if successful
  61974. Note: nonfunctional in MS-DOS 4.00 through 6.00 due to a bug (the code sets a
  61975. pointer depending on the high bit of AL, but doesn't clear the
  61976. bit before branching by function number). Supported and
  61977. functional(!) in Novell DOS 7 (Update 15)
  61978. --------D-216601-----------------------------
  61979. INT 21 - DOS 3.3+ - GET GLOBAL CODE PAGE TABLE
  61980. AX = 6601h
  61981. Return: CF set on error
  61982. AX = error code (see #01680 at AH=59h/BX=0000h)
  61983. CF clear if successful
  61984. BX = active code page (see #01757)
  61985. DX = system code page (see #01757)
  61986. SeeAlso: AX=6602h
  61987. --------D-216602-----------------------------
  61988. INT 21 - DOS 3.3+ - SET GLOBAL CODE PAGE TABLE
  61989. AX = 6602h
  61990. BX = active code page (see #01757)
  61991. DX = system code page (active page at boot time)
  61992. Return: CF set on error
  61993. AX = error code (see #01680 at AH=59h/BX=0000h)
  61994. CF clear if successful
  61995. AX = EB41h (Novell NWDOS v7.0 when NLSFUNC not installed and
  61996. request was for previously-active code page)
  61997. SeeAlso: AX=6601h,INT 2F/AX=14FFh
  61998. (Table 01757)
  61999. Values for code page:
  62000. 0 Reduced 7-bit ASCII [NetWare]
  62001. 37 EBCDIC: US/Canada English (CECP) [Windows NT 3.51+]
  62002. 38 EBCDIC: International (old)
  62003. 111 Greek
  62004. 112 Turkish
  62005. 113 Yugoslavian
  62006. 161 Arabic [Linux]
  62007. 162 Arabic [Linux]
  62008. 163 Arabic [Linux]
  62009. 164 Arabic [Linux]
  62010. 165 Arabic [Linux]
  62011. 237 EBCDIC: Germany (CECP)
  62012. 273 EBCDIC: ??? (CECP)
  62013. 274 EBCDIC: Belgium
  62014. 275 EBCDIC: Brazilian
  62015. 277 EBCDIC: Danish/Norwegian (CECP)
  62016. 278 EBCDIC: Finnish/Swedish (CECP)
  62017. 280 EBCDIC: Italian (CECP)
  62018. 281 EBCDIC: Japanese-E
  62019. 284 EBCDIC: Latin-American/Spanish (CECP)
  62020. 285 EBCDIC: UK English (CECP)
  62021. 290 EBCDIC: Japanese Kana
  62022. 297 EBCDIC: French (CECP)
  62023. 367 US-ASCII (ISO 646-US, 7-bit)
  62024. 420 EBCDIC: Arabic 1
  62025. 423 EBCDIC: Greek
  62026. 424 EBCDIC: Hebrew
  62027. 437 US / English / PC-8 / IBM-2
  62028. 500 EBCDIC: Belgium/Switzerland (CECP)
  62029. 500 EBCDIC: International
  62030. 646 (??? reserved for ISO 646 7-bit codepages)
  62031. 667 Eastern Europe (Polish)
  62032. 668 Eastern Europe (Slavic)
  62033. 708 Arabic/Middle East
  62034. 737 Greek (2)
  62035. 775 Baltic / Baltic Rim
  62036. 819 Latin-1 (ISO 8859-1)
  62037. 850 Multilingual (Latin-1)
  62038. 851 Greek
  62039. 852 Slavic/Easter Europe (Latin-2) [DOS 5+]
  62040. 853 Turkish (Latin-2)
  62041. 854 Spanish
  62042. 855 Cyrilic (1)
  62043. 857 Turkish
  62044. 860 Portugese
  62045. 861 Icelandic
  62046. 862 Hebrew
  62047. 863 French Canadian
  62048. 864 Arabic/Middle East
  62049. 865 Nordic (Norwegian/Danish)
  62050. 866 Russian (Cyrillic 2)
  62051. 867 Czech
  62052. 868 Arabic
  62053. 869 Greek (1)
  62054. 870 EBCDIC: Yugoslavia (Roece)
  62055. 871 EBCDIC: Icelandic
  62056. 874 Thailand
  62057. 875 EBCDIC: Greek
  62058. 880 Russian (Cyrillic GOST)
  62059. 880 EBCDIC: Cyrillic
  62060. 881 Latin 1 (ISO 8859-1)
  62061. 882 Latin 2 (ISO 8859-2)
  62062. 883 Latin 3 (ISO 8859-3)
  62063. 884 Latin 4 (ISO 8859-4)
  62064. 885 Latin 5 (ISO 8859-5)
  62065. 891 unknown
  62066. 897 Japanese (Shift-JIS)
  62067. 903 unknown
  62068. 904 unknown
  62069. 905 EBCDIC: Turkish
  62070. 912 Latin 2 (ISO 8859-2: Eastern Europe)
  62071. 913 (??? reserved for Latin 3)
  62072. 914 (??? reserved for Latin 4)
  62073. 915 Cyrillic (ISO 8859-5: Latin/Cyrillic)
  62074. 916 (??? reserved for ISO 8859-6: Latin/Arabic)
  62075. 917 (??? reserved for ISO 8859-7: Latin/Greek)
  62076. 918 EBCDIC: Arabic 2
  62077. 919 (??? reserved for ISO 8859-9: Latin 5)
  62078. 920 (??? reserved for ISO 8859-10: Latin 6/Sami)
  62079. 932 DBCS: Japanese (Shift-JIS)
  62080. 934 DBCS: Korean
  62081. 936 DBCS: Chinese (PRC/ROC, Simplified/xGB)
  62082. 938 DBCS: Taiwan
  62083. 938 DBCS: Chinese (PRC/ROC)
  62084. 942 DBCS: Japanese SAA
  62085. 944 DBCS: Korean SAA
  62086. 948 DBCS: Chinese SAA (PRC/ROC)
  62087. 949 Korean (Unified Hangul; Extended Wansung)
  62088. 950 Chinese Traditional, Big5 (Taiwan, Hong Kong)
  62089. 966 Saudi Arabian
  62090. 972 Hebrew (Israeli VT100)
  62091. 999 reserved for user-definable codepages
  62092. 1004 Desktop Publishing
  62093. 1026 EBCDIC: Turkish (Latin 5)
  62094. 1047 EBCDIC: International (CECP, de-facto EBCDIC-US)
  62095. 1250 MSWIN: Eastern Europe (Latin 2)
  62096. 1251 MSWIN: Cyrillic
  62097. 1252 MSWIN: English/W. Europe/Standard (Latin 1)
  62098. 1253 MSWIN: Greek (GRC)
  62099. 1254 MSWIN: Turkish
  62100. 1255 MSWIN: Hebrew
  62101. 1256 MSWIN: Arabic
  62102. 1257 MSWIN: Baltic (Estonian, Latvian, Lithuanian)
  62103. 1258 MSWIN: Vietnamese
  62104. 1361 ANSI???: Korean (Johab)
  62105. 10000 MAC: International/Standard (Roman)
  62106. 10006 MAC: Greek
  62107. 10007 MAC: Cyrillic
  62108. 10029 MAC: Latin 2
  62109. 10079 MAC: Icelandic
  62110. 10081 MAC: Turkish
  62111. 10646 (should be reserved for the future ISO 10646 32-bit codepage???)
  62112. 65400 OS/2: reserved for Glyphs
  62113. Notes: not all code pages are available in all versions of DOS or
  62114. DOS-compatibles, and many (particularly EBCDIC) have not been
  62115. implemented for *any* DOS to date
  62116. CECP = 'Country Extended CodePage' by IBM.
  62117. Unicode (UCS-2) is a 16-bit character codeset, covering all commonly
  62118. used characters from almost any language. Not all definitions are
  62119. fixed at the time of this writing. Unicode will be the future of
  62120. character coding for the foreseeable future, but is only the
  62121. "basic multilingual plane" (BMP) subset of 32-bit ISO 10646 codes
  62122. (UCS-4), a single character set standard covering requirements for
  62123. all countries and languages, which is still under construction.
  62124. The MS Windows 'ANSI' codepage 1252 (based on the MS Windows 3.0+
  62125. implementation) appears to be 100% compatible with the code sets
  62126. used by Amiga OS and Acorn Archimedes RISC-OS and is also a linear
  62127. subset of the 16bit UniCode code set (UCS-2); the actual ANSI
  62128. codepage is defined by ISO 8859-1 (Latin 1).
  62129. At least applications for OS/2 Warp 3 Presentation Manager can use
  62130. EBCDIC codepages, but the codepage ID assignments for EBCDIC
  62131. codepages are not known for OS/2. OS/2 SAA codepages are not
  62132. supported in CONFIG.SYS. Codepage 65400 "Glyphs" is not actually a
  62133. codepage, but a way to directly access the first 256 of the 383
  62134. glyphs from the current font set.
  62135. Novell DOS 7/DR DOS 6/Caldera OpenDOS undocumented codepage 853
  62136. does not necessarily match with MS-DOS' undocumented codepage 853.
  62137. Undocumented codepages 667 and 668 can be found in Russian's PTS/DOS
  62138. 6.51 and S/DOS 1.x DISPLAY.CPI and contain some Eastern European
  62139. characters.
  62140. Novell NetWare 3.xx clients support UniCode and codepages 437, 850,
  62141. 860, 863, 865, 897, 932, and 1252 (possibly more). NetWare 4.xx
  62142. clients also support 1250, 1251, 1256. Personal NetWare 1.0 (PNW),
  62143. as it was distributed in Europe, supports UniCode and codepages 437,
  62144. 850 and 1252. Novell's Client32 for DOS/Windows supports 874, 932,
  62145. 936, 949, 950, 1250 - 1257. For codesets not yet available, Novell
  62146. offers a reduced ASCII 7-bit support through a codepage 0 used as a
  62147. translation table to UniCode, that supports characters 32-127 except
  62148. 92 ('\').
  62149. Format of DOS .CPI (Code Page Information) file header:
  62150. Offset Size Description (Table 01758)
  62151. 00h BYTE ID tag
  62152. FFh FONT file (Standard for generic display or
  62153. printer font files used by MS-DOS, PC-DOS, DR DOS
  62154. and Novell DOS)
  62155. 7Fh DRFONT file (Used by DR DOS 6.0 / Novell DOS 7 for
  62156. enhanced & compressed display font files. DR DOS 6.0
  62157. and Novell DOS 7 still support the standard FONT
  62158. files, thus allowing leaning of .CPI files from
  62159. MS-DOS to DR DOS / Novell DOS!)
  62160. 01h 7 BYTEs ID string
  62161. "FONT " = FONT file (Standard for display or printer)
  62162. "DRFONT " = DRFONT file (Enhanced compressed format used
  62163. by DR DOS 6.0 / Novell DOS 7 for display fonts)
  62164. 08h 8 BYTEs reserved (0)
  62165. 10h WORD number of pointers (1)
  62166. 12h BYTE type of pointers (1)
  62167. 13h DWORD pointer to file offset of FontInfoHeader
  62168. (Generally pointing to the byte just after FontFileHeader,
  62169. that is 0000h:0017h. Due to extra data at offset 17h, this
  62170. value has changed with DR DOS 6.0 / Novell DOS 7 DRFONTs!
  62171. "MS-DOS 4.0 programmers reference" claimed word offset
  62172. +15h as an endmarker (0000h), but actually it is the
  62173. High-Word of the pointer.)
  62174. --- Extended FontFileHeader with DR DOS 6.0 / Novell DOS 7 DRFONTs: ---
  62175. 17h BYTE number of fonts per codepage supported by this file
  62176. (N=4 with both DR DOS 6.0 / Novell DOS 7 DRFONT files)
  62177. 18h N BYTEs cellsize (Height) of fonts 1..N
  62178. the cellsize corresponds with the character boxes height,
  62179. but is also the count of bytes used for each of the
  62180. characters inside the font data (as currently all fonts
  62181. are organized heightx8 and 8 pixel width is just one byte).
  62182. var N DWORDs file offsets of DisplayFontData.
  62183. Format of DOS .CPI file Font Information Header:
  62184. Offset Size Description (Table 01759)
  62185. 00h WORD number of codepage entries
  62186. var N codepage entry headers (see #01760)
  62187. SeeAlso: #01758
  62188. Format of DOS .CPI file CodePage Entry Header:
  62189. Offset Size Description (Table 01760)
  62190. 00h WORD size of this header (normally 1Ch)
  62191. 02h DWORD offset of next entry, or 0000h:0000h or FFFFh:FFFFh if last
  62192. (if a valid "next" pointer but all of the fonts indicated in
  62193. the .CPI header have been processed, this field normally
  62194. points at an optional text area at the end of the .CPI file
  62195. containing copyright information)
  62196. 06h WORD device type
  62197. 01h display (FONT or DRFONT)
  62198. 02h printer (FONT)
  62199. 08h 8 BYTEs blank-padded device name string
  62200. 10h WORD code page (see #01757)
  62201. 12h 3 WORDs reserved (0)
  62202. 18h DWORD pointer to Font Data Header (see #00222)
  62203. normally immediately follows this header
  62204. SeeAlso: #01758
  62205. Format of DOS .CPI file Font Data Header:
  62206. Offset Size Description (Table 01761)
  62207. 00h WORD record type
  62208. 0001h FONT
  62209. 0002h DRFONT (DR DOS 6.0/Novell DOS 7 display font)
  62210. 02h WORD number of fonts
  62211. 04h WORD length of font data (display fonts)
  62212. ??? (printer fonts)
  62213. 06h var font data (#fonts * fontlength) bytes
  62214. SeeAlso: #01758
  62215. Format of DOS .CPI file ScreenFONT Header:
  62216. Offset Size Description (Table 01762)
  62217. 00h 6 BYTEs display-font header (see #01764)
  62218. 06h var display font data
  62219. SeeAlso: #01758
  62220. Format of .CPI file DRFONT Header:
  62221. Offset Size Description (Table 01763)
  62222. 00h 6N BYTEs DisplayFONT headers for N fonts (see #01764)
  62223. M WORDs character index table for cell offsets in font data
  62224. currently 256 words in length
  62225. SeeAlso: #01758
  62226. Format of .CPI file DisplayFONT header:
  62227. Offset Size Description (Table 01764)
  62228. 00h BYTE height of character cell
  62229. 01h BYTE width of character cell (currently always 08h)
  62230. 02h BYTE aspect ratio (height) (currently 00h, unused)
  62231. 03h BYTE aspect ratio (width) (currently 00h, unused)
  62232. 04h WORD number of characters per font (256)
  62233. SeeAlso: #01758
  62234. Format of .CPI file PrinterFONT header:
  62235. Offset Size Description (Table 01765)
  62236. 00h WORD type of printer
  62237. 0001h (4201.CPI, 1050.CPI, EPS.CPI)
  62238. 0002h (4208.CPI, 5202.CPI, PPDS.CPI)
  62239. 02h WORD bytes per hardware/download codepage-select escape sequence
  62240. (max 31, typically 12)
  62241. 04h N BYTEs escape sequence to select hardware codepage
  62242. N BYTEs escape sequence to select download codepage
  62243. var download data for printer font (including escape sequence to
  62244. transfer data)
  62245. SeeAlso: #01758
  62246. --------D-2167-------------------------------
  62247. INT 21 - DOS 3.3+ - SET HANDLE COUNT
  62248. AH = 67h
  62249. BX = size of new file handle table for process
  62250. Return: CF clear if successful
  62251. CF set on error
  62252. AX = error code (see #01680 at AH=59h/BX=0000h)
  62253. Desc: adjust the size of the per-process open file table, thus raising or
  62254. lowering the limit on the number of files the caller can open
  62255. simultaneously
  62256. Notes: if BX <= 20, no action is taken if the handle limit has not yet been
  62257. increased, and the table is copied back into the PSP if the limit
  62258. is currently > 20 handles
  62259. for file handle tables of > 20 handles, DOS 3.30 never reuses the
  62260. same memory block, even if the limit is being reduced; this can lead
  62261. to memory fragmentation as a new block is allocated and the existing
  62262. one freed
  62263. only the first 20 handles are copied to child processes in DOS 3.3-6.0
  62264. increasing the file handles here will not, in general, increase the
  62265. number of files that can be opened using the runtime library of a
  62266. high-level language such as C
  62267. Novell DOS 7 reportedly terminates the calling program if the JFT is
  62268. being reduced in size and there are any open file handles beyond
  62269. the portion of the JFT being retained
  62270. BUGS: the original release of DOS 3.30 allocates a full 64K for the handle
  62271. table on requests for an even number of handles
  62272. DR DOS 3.41 and 5.0 will lose track of any open file handles beyond
  62273. the portion of the JFT retained after the call; MS-DOS will indicate
  62274. error 04h if any of the JFT entries to be removed are open
  62275. SeeAlso: AH=26h,AH=86h
  62276. --------D-2168-------------------------------
  62277. INT 21 - DOS 3.3+ - "FFLUSH" - COMMIT FILE
  62278. AH = 68h
  62279. BX = file handle
  62280. Return: CF clear if successful
  62281. all data still in DOS disk buffers is written to disk immediately,
  62282. and the file's directory entry is updated
  62283. CF set on error
  62284. AX = error code (see #01680 at AH=59h/BX=0000h)
  62285. SeeAlso: AX=5D01h,AH=6Ah,INT 2F/AX=1107h
  62286. --------D-2169-------------------------------
  62287. INT 21 U - DOS 4.0+ internal - GET/SET DISK SERIAL NUMBER
  62288. AH = 69h
  62289. AL = subfunction
  62290. 00h get serial number
  62291. 01h set serial number
  62292. BL = drive (0=default, 1=A, 2=B, etc)
  62293. BH = info level (00h only for DOS; OS/2 allows other levels)
  62294. DS:DX -> disk info (see #01766)
  62295. Return: CF set on error
  62296. AX = error code (see #01680 at AH=59h/BX=0000h)
  62297. CF clear if successful
  62298. AX destroyed
  62299. (AL = 00h) buffer filled with appropriate values from extended BPB
  62300. (AL = 01h) extended BPB on disk set to values from buffer
  62301. Notes: does not generate a critical error; all errors are returned in AX
  62302. error 0005h given if no extended BPB on disk
  62303. does not work on network drives (error 0001h)
  62304. buffer after first two bytes is exact copy of bytes 27h thru 3Dh of
  62305. extended BPB on disk
  62306. this function is supported under Novell NetWare versions 2.0A through
  62307. 3.11; the returned serial number is the one a DIR would display,
  62308. the volume label is the NetWare volume label, and the file system
  62309. is set to "FAT16".
  62310. this function is not supported by Novell DOS 7 through Update 13, but
  62311. Personal NetWare 1.0 and Update 15 do support this function
  62312. the serial number is computed from the current date and time when the
  62313. disk is created; the first part is the sum of the seconds/hundredths
  62314. and month/day, the second part is the sum of the hours/minutes and
  62315. year
  62316. the volume label which is read or set is the one stored in the extended
  62317. BPB on disks formatted with DOS 4.0+, rather than the special root
  62318. directory entry used by the DIR command in COMMAND.COM (use AH=11h
  62319. to find that volume label)
  62320. SeeAlso: AX=440Dh"DOS 3.2+"
  62321. Format of disk info:
  62322. Offset Size Description (Table 01766)
  62323. 00h WORD 0000h (info level)
  62324. 02h DWORD disk serial number (binary)
  62325. 06h 11 BYTEs volume label or "NO NAME " if none present
  62326. 11h 8 BYTEs (AL=00h only) filesystem type (see #01767)
  62327. Note: under MS-DOS 7.0 or a Windows95 DOS box, the volume label field can be
  62328. all blanks even when a volume label has been set (the Win95
  62329. installation seems to blank the volume label field in the partition
  62330. boot sector; once LABEL has been run, the volume label is reported
  62331. correctly)
  62332. SeeAlso: AH=4Eh
  62333. (Table 01767)
  62334. Values for filesystem type:
  62335. "FAT12 " 12-bit FAT
  62336. "FAT16 " 16-bit FAT
  62337. "CDROM " High-Sierra CD-ROM filesystem
  62338. "CD001 " ISO 9660 CD-ROM filesystem
  62339. "CDAUDIO " audio CD
  62340. SeeAlso: #01766
  62341. --------O-2169-------------------------------
  62342. INT 21 - DR DOS 5.0 - NULL FUNCTION
  62343. AH = 69h
  62344. Return: AL = 00h
  62345. SeeAlso: AH=18h
  62346. --------v-216969-----------------------------
  62347. INT 21 - VIRUS - "Rape-747" - INSTALLATION CHECK
  62348. AX = 6969h
  62349. Return: AX = 0666h if resident
  62350. SeeAlso: AX=58CCh,AX=6304h"VIRUS",AH=71h"VIRUS"
  62351. --------d-2169FFDX0000-----------------------
  62352. INT 21 U - CUBIT v4.00 - GET CUBIT INT 21 HANDLER
  62353. AX = 69FFh
  62354. DX = 0000h
  62355. BX = CB00h (magic value)
  62356. Return: ES:BX -> CUBITR.EXE handler for INT 21
  62357. InstallCheck: test that the first eight bytes at the returned interrupt
  62358. handler are EBh 07h "CUBITR" (a short jump around the signature
  62359. followed by the signature)
  62360. Note: the byte following the signature (i.e. ES:[BX+8]) indicates whether
  62361. CUBITR is active (01h) or disabled (00h)
  62362. SeeAlso: AX=69FFh/DX=CFBFh
  62363. Index: installation check;CUBIT
  62364. --------d-2169FFDXCFBF-----------------------
  62365. INT 21 U - CUBIT v4.00 - UNINSTALL
  62366. AX = 69FFh
  62367. DX = CFBFh
  62368. CX = EFCFh
  62369. BX = CB00h (magic value)
  62370. Return: ES:BX -> CUBITR.EXE handler for INT 21
  62371. CX = status
  62372. 2020h successful
  62373. 2222h failed
  62374. Note: if DX is neither 0000h nor CFBFh on entry, some other code is executed
  62375. SeeAlso: AX=69FFh/DX=0000h
  62376. --------D-216A-------------------------------
  62377. INT 21 U - DOS 4.0+ - COMMIT FILE
  62378. AH = 6Ah
  62379. BX = file handle
  62380. Return: CF clear if successful
  62381. AH = 68h
  62382. CF set on error
  62383. AX = error code (06h) (see #01680 at AH=59h/BX=0000h)
  62384. Note: identical to AH=68h in DOS 5.0-6.0; not known whether this is the case
  62385. in DOS 4.x
  62386. SeeAlso: AH=68h
  62387. --------D-216B-------------------------------
  62388. INT 21 U - DOS 4.0 internal - IFS IOCTL
  62389. AH = 6Bh
  62390. AL = subfunction
  62391. 00h ???
  62392. DS:SI -> Current Directory Structure???
  62393. CL = drive (1=A:)
  62394. 01h ???
  62395. DS:SI -> ???
  62396. CL = file handle???
  62397. 02h ???
  62398. DS:SI -> Current Directory Structure???
  62399. DI = ???
  62400. CX = drive (1=A:)
  62401. Return: CF set on error
  62402. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  62403. CF clear if successful
  62404. Notes: passed through to INT 2F/AX=112Fh with AX on top of stack
  62405. Novell DOS 7 Update 15 returns CF set/AX=0001h (invalid function)
  62406. SeeAlso: AH=6Bh"DOS 5",INT 2F/AX=112Fh
  62407. --------D-216B-------------------------------
  62408. INT 21 U - DOS 5+ - NULL FUNCTION
  62409. AH = 6Bh
  62410. Return: AL = 00h
  62411. Note: this function does nothing and returns immediately
  62412. SeeAlso: AH=6Bh"DOS 4"
  62413. --------D-216C00-----------------------------
  62414. INT 21 - DOS 4.0+ - EXTENDED OPEN/CREATE
  62415. AX = 6C00h
  62416. BL = open mode as in AL for normal open (see also AH=3Dh)
  62417. bit 7: inheritance
  62418. bits 4-6: sharing mode
  62419. bit 3 reserved
  62420. bits 0-2: access mode
  62421. 100 read-only, do not modify file's last-access time (DOS 7.0)
  62422. BH = flags
  62423. bit 6 = auto commit on every write (see also AH=68h)
  62424. bit 5 = return error rather than doing INT 24h
  62425. bit 4 = (FAT32) extended size (allow 4GB files instead of 2GB)
  62426. CX = create attribute (see #01769)
  62427. DL = action if file exists/does not exist (see #01770)
  62428. DH = 00h (reserved)
  62429. DS:SI -> ASCIZ file name
  62430. Return: CF set on error
  62431. AX = error code (see #01680 at AH=59h/BX=0000h)
  62432. CF clear if successful
  62433. AX = file handle
  62434. CX = status (see #01768)
  62435. Notes: the PC LAN Program only supports existence actions (in DL) of 01h,
  62436. 10h with sharing=compatibility, and 12h
  62437. DR DOS reportedly does not support this function and does not return
  62438. an "invalid function call" error when this function is used.
  62439. the documented bits of BX are stored in the SFT when the file is opened
  62440. (see #01641,#01642)
  62441. BUG: this function has bugs (at least in DOS 5.0 and 6.2) when used with
  62442. drives handled via the network redirector (INT 2F/AX=112Eh):
  62443. - CX (attribute) is not passed to the redirector if DL=11h,
  62444. - CX does not return the status, it is returned unchanged because
  62445. DOS does a PUSH CX/POP CX when calling the redirector.
  62446. SeeAlso: AH=3Ch,AH=3Dh,AX=6C01h,AX=7160h/CL=00h,INT 2F/AX=112Eh
  62447. (Table 01768)
  62448. Values for extended open function status:
  62449. 01h file opened
  62450. 02h file created
  62451. 03h file replaced
  62452. Bitfields for file create attribute:
  62453. Bit(s) Description (Table 01769)
  62454. 6-15 reserved
  62455. 5 archive
  62456. 4 reserved
  62457. 3 volume label
  62458. 2 system
  62459. 1 hidden
  62460. 0 readonly
  62461. Bitfields for action:
  62462. Bit(s) Description (Table 01770)
  62463. 7-4 action if file does not exist
  62464. 0000 fail
  62465. 0001 create
  62466. 3-0 action if file exists
  62467. 0000 fail
  62468. 0001 open
  62469. 0010 replace/open
  62470. --------O-216C01-----------------------------
  62471. INT 21 U - OS/2 v2.0 - "DosOpen2"
  62472. AX = 6C01h
  62473. BL = open mode as in AL for normal open (see also AH=3Dh)
  62474. bit 7: inheritance
  62475. bits 4-6: sharing mode
  62476. bit 3 reserved
  62477. bits 0-2: access mode
  62478. BH = flags
  62479. bit 6 = auto commit on every write (see also AH=68h)
  62480. bit 5 = return error rather than doing INT 24h
  62481. CX = create attribute (see #01769)
  62482. DL = action if file exists/does not exist (see #01770)
  62483. DH = 00h (reserved)
  62484. DS:SI -> ASCIZ file name
  62485. ES:DI -> EAOP structure
  62486. Return: CF set on error
  62487. AX = error code (see #01680 at AH=59h/BX=0000h)
  62488. CF clear if successful
  62489. AX = file handle
  62490. CX = status (see #01768)
  62491. Note: this function is virtually identical to AX=6C00h, but supports OS/2's
  62492. extended attributes
  62493. SeeAlso: AX=5704h,AX=6C00h,AH=6Fh"OS/2"
  62494. --------D-216D-------------------------------
  62495. INT 21 U - DOS 5+ ROM - FIND FIRST ROM PROGRAM
  62496. AH = 6Dh
  62497. DS:DX -> ASCIZ program name (may contain wildcrds)
  62498. Return: CF clear if found
  62499. Disk Transfer Area filled with ROM search structure (see #01771)
  62500. CF set if not found
  62501. AX = error code
  62502. 0002h name not found in ROM
  62503. 0003h name contains colon or backslash
  62504. ---if not supported (DOS <5, MS-DOS 5+ non-ROM versions)---
  62505. AL = 00h
  62506. Notes: the '*' wildcard matches all remaining characters in a ROM program's
  62507. name; any following characters in the search mask are ignored up to
  62508. another asterisk, which must be matched by an asterisk in the
  62509. found program's name.
  62510. the search mask and program names may contain multiple periods
  62511. SeeAlso: AH=1Ah,AH=4Eh,AH=6Eh,AX=6F00h,AX=6F02h,INT 2F/AX=160Ch
  62512. Format of ROM search structure:
  62513. Offset Size Description (Table 01771)
  62514. 00h 13 BYTEs ASCIZ name of found ROM program
  62515. 0Dh DWORD address at which to resume search (do not modify)
  62516. 11h var ASCIZ search mask passed in (do not modify)
  62517. --------O-216D-------------------------------
  62518. INT 21 U - OS/2 v1.x FAPI - "DosMkDir2"
  62519. AH = 6Dh
  62520. ???
  62521. Return: ???
  62522. Desc: create a new directory, with extended attribute information
  62523. Note: also supported by OS/2 v2.0+ Virtual DOS Machines
  62524. BUG: does not work under OS/2 v2.0 because MVDM does not translate the
  62525. real-mode segment pointer in the Extended Attribute structure
  62526. (see #01673) into a protected-mode selector; use AH=39h followed by
  62527. AX=5703h instead
  62528. SeeAlso: AH=39h,AX=5702h"OS/2",AX=5703h"OS/2"
  62529. --------O-216D-------------------------------
  62530. INT 21 U - Novell DOS 7 - NOP
  62531. AH = 6Dh
  62532. Return: AX = 0000h
  62533. Note: this function invokes the same code as other NOP functions such as
  62534. AH=18h and AH=61h
  62535. --------D-216E-------------------------------
  62536. INT 21 U - DOS 5+ ROM - FIND NEXT ROM PROGRAM
  62537. AH = 6Eh
  62538. Disk Transfer Area contains result of previous FindFirst ROM
  62539. (see AH=6Dh)
  62540. Return: CF clear if found
  62541. Disk Transfer Area filled with updated ROM search structure
  62542. (see #01771)
  62543. CF set if not found
  62544. AX = 0012h (no more matches)
  62545. ---if not supported (DOS <5, MS-DOS 5+ non-ROM versions)---
  62546. AL = 00h
  62547. SeeAlso: AH=4Fh,AH=6Dh
  62548. --------O-216E-------------------------------
  62549. INT 21 U - OS/2 v1.x FAPI - "DosEnumAttrib"
  62550. AH = 6Eh
  62551. DS:SI -> parameter packet (see #01772)
  62552. Return: CF clear if successful
  62553. AX = 0000h
  62554. DS:SI buffer updated
  62555. CF set on error
  62556. AX = error code
  62557. Note: also supported by OS/2 v2.0+ Virtual DOS Machines
  62558. SeeAlso: AX=5703h,AH=6Fh"OS/2",INT 2F/AX=112Dh
  62559. Format of OS/2 DosEnumAttrib parameter packet:
  62560. Offset Size Description (Table 01772)
  62561. 00h DWORD reserved (0)
  62562. 04h DWORD info level (always 00000001h)
  62563. 08h DWORD (call) number of entries requested
  62564. (ret) actual number of entries returned
  62565. 0Ch DWORD length of buffer
  62566. 10h DWORD pointer to buffer for results
  62567. 14h DWORD number of first entry to return
  62568. 18h DWORD -> file handle or ASCIZ pathname
  62569. 1Ch WORD flag: 00h = previous field is file handle, 01h = pathname
  62570. --------D-216F00-----------------------------
  62571. INT 21 U - DOS 5+ ROM - GET ROM SCAN START ADDRESS
  62572. AX = 6F00h
  62573. Return: CF clear
  62574. AL = 00h
  62575. BX = current ROM scan starting segment if function supported
  62576. SeeAlso: AH=6Dh,AX=6F01h,AX=6F02h
  62577. --------O-216F00-----------------------------
  62578. INT 21 U - OS/2 v1.x FAPI - "DosQMaxEASize" - GET MAXIMUM SIZE OF EXTENDED ATTR
  62579. AX = 6F00h
  62580. DS:SI -> DWORD buffer for maximum size of an extended attribute
  62581. Return: CF clear if successful
  62582. AX = 0000h
  62583. buffer filled
  62584. CF set on error
  62585. AX = error code
  62586. Note: also supported by OS/2 v2.0+ Virtual DOS Machines
  62587. SeeAlso: AX=5703h,AX=6C01h,AH=6Eh"OS/2"
  62588. --------D-216F01-----------------------------
  62589. INT 21 U - DOS 5+ ROM - SET ROM SCAN START ADDRESS
  62590. AX = 6F01h
  62591. BX = new ROM scan starting address
  62592. Return: CF clear
  62593. AL = 00h
  62594. SeeAlso: AX=6F00h,AX=6F03h
  62595. --------D-216F02-----------------------------
  62596. INT 21 U - DOS 5+ ROM - GET EXCLUSION REGION LIST
  62597. AX = 6F02h
  62598. ES:BX -> buffer for exclusion region list (see #01773)
  62599. Return: CF clear
  62600. AL = 00h
  62601. ES:BX = 0000h:0000h on error, unchanged if buffer filled
  62602. Note: for DOS versions which do not support this function, the return value
  62603. is AL=00h, CF unchanged, ES:BX unchanged, and the ES:BX buffer
  62604. unchanged
  62605. SeeAlso: AX=6F00h,AX=6F03h
  62606. Format of ROM exclusion region list:
  62607. Offset Size Description (Table 01773)
  62608. 00h WORD number of entries
  62609. 02h 2N WORDs start/end segments of N excluded regions
  62610. --------D-216F03-----------------------------
  62611. INT 21 U - DOS 5+ ROM - SET EXCLUSION REGION LIST
  62612. AX = 6F03h
  62613. DS:DX -> new exclusion region list (see #01773)
  62614. Return: CF clear
  62615. AL = 00h
  62616. Notes: DOS saves only the pointer and assumes that the contents of the list
  62617. are never changed, and that regions do not overlap
  62618. if AL > 03h on entry, DOS returns CF set/AL=01h
  62619. SeeAlso: AX=6F01h,AX=6F02h
  62620. --------D-2170-------------------------------
  62621. INT 21 - MS-DOS 7 (Windows95) - GET/SET INTERNATIONALIZATION INFORMATION
  62622. AH = 70h
  62623. AL = subfunction
  62624. 00h get ??? info
  62625. CX = buffer size (3Ah bytes needed)
  62626. ES:DI -> buffer
  62627. 01h set above info
  62628. CX = number of bytes to set
  62629. DS:SI -> buffer containing ??? info (see #01774)
  62630. 02h set general internationalization info (see also AX=6500h)
  62631. DS:SI -> buffer containing info (see #01775)
  62632. CX = buffer size in bytes (up to 26h bytes used)
  62633. first three bytes are skipped, the rest is copied to somewhere
  62634. in the DOS data segment
  62635. Return: CF clear if successful
  62636. ES:DI buffer filled (func 00h) (see #01774)
  62637. CX = number of bytes actually set or returned
  62638. (max 003Ah for functions 00h and 01h under v7.00, 0026h for
  62639. function 02h)
  62640. CF set on error
  62641. AX = error code
  62642. 7000h if function not supported
  62643. SeeAlso: AH=38h,AH=65h
  62644. Format of MS-DOS v7.0 ??? table:
  62645. Offset Size Description (Table 01774)
  62646. 00h 58 BYTEs ??? country-specific information
  62647. returned was (among others) "ENU USA GR"..."AM PM M/d/yy"...
  62648. "dddd,MMMMdd,yyyy" in the German Preview version, and "US"
  62649. instead of "GR" in the US build 450 version (with German
  62650. country setting) and the US build 950a version with US
  62651. country settings
  62652. SeeAlso: #01775
  62653. Format of MS-DOS v7.0 internationalization table:
  62654. Offset Size Description (Table 01775)
  62655. 00h 3 BYTEs unused (and ignored by DOS)
  62656. 03h WORD country ID (see #01400 at AH=38h)
  62657. 05h WORD code page (see #01757)
  62658. 07h WORD date format
  62659. 09h 5 BYTEs ASCIZ current symbol string
  62660. 07h 2 BYTEs ASCIZ thousands separator
  62661. 09h 2 BYTEs ASCIZ decimal separator
  62662. 0Bh 2 BYTEs ASCIZ date separator
  62663. 0Dh 2 BYTEs ASCIZ time separator
  62664. 0Fh BYTE currency format
  62665. bit 2 = set if currency symbol replaces decimal point
  62666. bit 1 = number of spaces between value and currency symbol
  62667. bit 0 = 0 if currency symbol precedes value
  62668. 1 if currency symbol follows value
  62669. 10h BYTE number of digits after decimal in currency
  62670. 11h BYTE time format
  62671. bit 0 = 0 if 12-hour clock
  62672. 1 if 24-hour clock
  62673. 12h DWORD address of case map routine
  62674. (FAR CALL, AL = character to map to upper case [>= 80h])
  62675. 16h 2 BYTEs ASCIZ data-list separator
  62676. 18h 10 BYTEs reserved
  62677. Note: this table has the identical format to the extended country information
  62678. retrieved via AH=65h with info ID = 01h
  62679. SeeAlso: #01399,#01750
  62680. ----------217070BX6060-----------------------
  62681. INT 21 - PCW Weather Card interface - GET DATA SEGMENT
  62682. AX = 7070h
  62683. BX = 6060h
  62684. CX = 7070h
  62685. DX = 7070h
  62686. SI = 7070h
  62687. DI = 7070h
  62688. Return: AX = segment of data structure (see #01776)
  62689. Notes: the data structure is at offset 516 from this segment
  62690. the update byte is at offset 514 from this segment. Updates are
  62691. once per second while this byte is nonzero and it is decremented
  62692. once per second. While this byte is 0 updates are once per minute.
  62693. SeeAlso: AX=7070h/BX=7070h
  62694. Format of PCW Weather Card data structure:
  62695. Offset Type Description (Table 01776)
  62696. 00h WORD hour
  62697. 02h WORD minute
  62698. 04h WORD second
  62699. 06h WORD day
  62700. 08h WORD month
  62701. 0Ah WORD year
  62702. 0Ch WORD ???
  62703. 0Eh WORD relative barometric pressure (in 1/100 inches)
  62704. 10h WORD ???
  62705. 12h WORD ???
  62706. 14h WORD temperature 1 (in 1/10 degrees F)
  62707. 16h WORD temperature 1 lowest (in 1/10 degrees F)
  62708. 18h WORD temperature 1 highest (in 1/10 degrees F)
  62709. 1Ah WORD temperature 2 (in 1/10 degrees F)
  62710. 1Ch WORD temperature 2 lowest (in 1/10 degrees F)
  62711. 1Eh WORD temperature 2 highest (in 1/10 degrees F)
  62712. 20h WORD wind speed (in MPH)
  62713. 22h WORD average of 60 wind speed samples (in MPH)
  62714. 24h WORD highest wind speed (in MPH)
  62715. 26h WORD wind chill factor (in 1/10 degrees F)
  62716. 28h WORD lowest wind chill factor (in 1/10 degrees F)
  62717. 2Ah WORD ???
  62718. 2Ch WORD wind direction (in degrees)
  62719. 2Eh WORD accumulated daily rainfall (in 1/10 inches)
  62720. 30h WORD accumulated annual rainfall (in 1/10 inches)
  62721. ----------217070BX7070-----------------------
  62722. INT 21 - PCW Weather Card interface - INSTALLATION CHECK
  62723. AX = 7070h
  62724. BX = 7070h
  62725. CX = 7070h
  62726. DX = 7070h
  62727. SI = 7070h
  62728. DI = 7070h
  62729. Return: AX = 0070h
  62730. BX = 0070h
  62731. CX = 0070h
  62732. DX = 0070h
  62733. SI = 0070h
  62734. DI = 0070h
  62735. SeeAlso: AX=7070h/BX=6060h,AX=8080h
  62736. --------D-2171-------------------------------
  62737. INT 21 - Windows95 - LONG FILENAME FUNCTIONS
  62738. AH = 71h
  62739. AL = function
  62740. 0Dh reset drive (see AX=710Dh)
  62741. 39h create directory (see AX=7139h)
  62742. 3Ah remove directory (see AX=713Ah)
  62743. 3Bh set current directory (see AX=713Bh)
  62744. 41h delete file (see AX=7141h)
  62745. 43h get/set file attributes (see AX=7143h)
  62746. 47h get current directory (see AX=7147h)
  62747. 4Eh find first file (see AX=714Eh)
  62748. 4Fh find next file (see AX=714Fh)
  62749. 56h move (rename) file (see AX=7156h)
  62750. 60h truename (see AX=7160h/CL=00h,AX=7160h/CL=02h)
  62751. 6Ch create/open file (see AX=716Ch)
  62752. A0h get volume information (see AX=71A0h)
  62753. A1h terminate FindFirst/FindNext (see AX=71A1h)
  62754. A6h get file information (see AX=71A6h)
  62755. A7h time conversion (see AX=71A7h/BL=00h,AX=71A7h/BL=01h)
  62756. A8h generate short filename (see AX=71A8h)
  62757. A9h server create/open file (see AX=71A9h)
  62758. AAh create/terminate SUBST (see AX=71AAh/BH=00h,AX=71AAh/BH=02h)
  62759. Return: CF set on error
  62760. AX = error code (see #01680)
  62761. 7100h if function not supported
  62762. CF clear if successful
  62763. other registers as for corresponding "old" DOS function
  62764. Notes: if error 7100h is returned, the old-style function should be called
  62765. AX=714Eh returns a "search handle" which must be passed to AX=714Fh;
  62766. when the search is complete, AX=71A1h must be called to terminate
  62767. the search
  62768. for compatibility with DOS versions prior to v7.00, the carry flag
  62769. should be set on call to ensure that it is set on exit
  62770. SeeAlso: AH=39h,AH=3Ah,AH=3Bh,AH=41h,AX=4300h,AX=4301h,AX=4304h,AX=4306h
  62771. SeeAlso: AX=4307h,AH=47h,AH=4Eh,AH=4Fh,AH=56h,AH=6Ch,AX=714Eh,AX=714Fh
  62772. --------v-2171-------------------------------
  62773. INT 21 - VIRUS - "1205" - INSTALLATION CHECK
  62774. AH = 71h
  62775. Return: AH = 17h if "1205" is resident
  62776. SeeAlso: AX=6969h"VIRUS",AH=76h"VIRUS"
  62777. --------D-21710D-----------------------------
  62778. INT 21 - Windows95 - RESET DRIVE
  62779. AX = 710Dh
  62780. CX = action (see #01777)
  62781. DX = drive number
  62782. Return: CF clear
  62783. Note: for compatibility with DOS versions prior to v7.00, the carry flag
  62784. should be set on call to ensure that it is set on exit
  62785. SeeAlso: AH=0Dh
  62786. (Table 01777)
  62787. Values for drive reset action:
  62788. 0000h flush filesystem buffers for drive, and reset drive
  62789. 0001h flush filesystem buffers and cache for drive, and reset drive
  62790. 0002h remount DriveSpace volume
  62791. --------D-217139-----------------------------
  62792. INT 21 - Windows95 - LONG FILENAME - MAKE DIRECTORY
  62793. AX = 7139h
  62794. DS:DX -> ASCIZ long directory name (including path)
  62795. Return: CF clear if successful
  62796. CF set on error
  62797. AX = error code (see #01680)
  62798. 7100h if function not supported
  62799. Note: for compatibility with DOS versions prior to v7.00, the carry flag
  62800. should be set on call to ensure that it is set on exit
  62801. SeeAlso: AH=39h,AX=713Ah,AX=713Bh,AX=43FFh/BP=5053h
  62802. --------D-21713A-----------------------------
  62803. INT 21 - Windows95 - LONG FILENAME - REMOVE DIRECTORY
  62804. AX = 713Ah
  62805. DS:DX -> ASCIZ long name of directory to remove
  62806. Return: CF clear if successful
  62807. CF set on error
  62808. AX = error code (see #01680)
  62809. 7100h if function not supported
  62810. Note: for compatibility with DOS versions prior to v7.00, the carry flag
  62811. should be set on call to ensure that it is set on exit
  62812. SeeAlso: AH=3Ah,AX=7139h
  62813. --------D-21713B-----------------------------
  62814. INT 21 - Windows95 - LONG FILENAME - CHANGE DIRECTORY
  62815. AX = 713Bh
  62816. DS:DX -> ASCIZ long name of directory to make current
  62817. Return: CF clear if successful
  62818. CF set on error
  62819. AX = error code (see #01680)
  62820. 7100h if function not supported
  62821. Note: for compatibility with DOS versions prior to v7.00, the carry flag
  62822. should be set on call to ensure that it is set on exit
  62823. SeeAlso: AH=0Eh,AH=3Bh,AX=7139h
  62824. --------D-217141-----------------------------
  62825. INT 21 - Windows95 - LONG FILENAME - DELETE FILE
  62826. AX = 7141h
  62827. DS:DX -> ASCIZ long name of file to delete
  62828. SI = wildcard and attributes flag
  62829. 0000h wildcards are not allowed, and search attributes are
  62830. ignored
  62831. 0001h wildcards are allowed, and only files with matching
  62832. names and attributes are deleted
  62833. CL = search attributes
  62834. CH = must-match attributes
  62835. Return: CF clear if successful
  62836. CF set on error
  62837. AX = error code (see #01680)
  62838. 7100h if function not supported
  62839. Note: for compatibility with DOS versions prior to v7.00, the carry flag
  62840. should be set on call to ensure that it is set on exit
  62841. SeeAlso: AH=41h
  62842. --------D-217143-----------------------------
  62843. INT 21 - Windows95 - LONG FILENAME - EXTENDED GET/SET FILE ATTRIBUTES
  62844. AX = 7143h
  62845. DS:DX -> ASCIZ filename
  62846. BL = action
  62847. 00h retrieve attributes
  62848. Return: CX = file attributes (see #01420)
  62849. 01h set attributes
  62850. CX = attributes
  62851. 02h get physical size of compressed file
  62852. Return: DX:AX = actual disk usage of file, in bytes
  62853. 03h set last write date/time
  62854. DI = new last-write date (see #01666)
  62855. CX = new last-write time (see #01665)
  62856. 04h get last write date/time
  62857. Return: CX = last write time (see #01665)
  62858. DI = last write date (see #01666)
  62859. 05h set last access date
  62860. DI = new last-access date (see #01666)
  62861. 06h get last access date
  62862. Return: DI = last access date (see #01666)
  62863. 07h set creation date/time
  62864. DI = new creation date (see #01666)
  62865. CX = new creation time (see #01665)
  62866. SI = hundredths (10-millisecond units past time in CX, 0-199)
  62867. 08h get creation date/time
  62868. Return: CX = creation time (see #01665)
  62869. DI = creation date (see #01666)
  62870. SI = hundredths (10-millisecond units past time in CX)
  62871. Return: CF clear if successful
  62872. CF set on error
  62873. AX = error code (see #01680)
  62874. 7100h if function not supported
  62875. Note: for compatibility with DOS versions prior to v7.00, the carry flag
  62876. should be set on call to ensure that it is set on exit
  62877. SeeAlso: AX=4300h,AX=4301h
  62878. --------D-217147-----------------------------
  62879. INT 21 - Windows95 - LONG FILENAME - GET CURRENT DIRECTORY
  62880. AX = 7147h
  62881. DL = drive number (00h = current, 01h = A:, etc.)
  62882. DS:SI -> buffer for ASCIZ directory name
  62883. Return: CF clear if successful
  62884. CF set on error
  62885. AX = error code (see #01680)
  62886. 7100h if function not supported
  62887. Notes: the returned pathname does not include the drive letter, colon, or
  62888. leading backslash, and is not necessarily a long filename -- this
  62889. function returns whatever path was used when changing to the
  62890. current directory, and may include a mixture of long and short
  62891. components
  62892. the provided buffer must be at least as large as the value indicated
  62893. by AX=71A0h
  62894. for compatibility with DOS versions prior to v7.00, the carry flag
  62895. should be set on call to ensure that it is set on exit
  62896. SeeAlso: AH=47h,AX=713Bh,AX=7160h,AX=71A0h
  62897. --------D-21714E-----------------------------
  62898. INT 21 - Windows95 - LONG FILENAME - FIND FIRST MATCHING FILE
  62899. AX = 714Eh
  62900. CL = allowable-attributes mask (see #01420 at AX=4301h)
  62901. (bits 0 and 5 ignored)
  62902. CH = required-attributes mask (see #01420)
  62903. SI = date/time format (see #01778)
  62904. DS:DX -> ASCIZ filespec (both "*" and "*.*" match any filename)
  62905. ES:DI -> FindData record (see #01779)
  62906. Return: CF clear if successful
  62907. AX = filefind handle (needed to continue search)
  62908. CX = Unicode conversion flags (see #01780)
  62909. CF set on error
  62910. AX = error code
  62911. 7100h if function not supported
  62912. Notes: this function is only available when IFSMgr is running, not under bare
  62913. MS-DOS 7
  62914. the application should close the filefind handle with AX=71A1h as soon
  62915. as it has completed its search
  62916. for compatibility with DOS versions prior to v7.00, the carry flag
  62917. should be set on call to ensure that it is set on exit
  62918. SeeAlso: AH=4Eh,AX=714Fh,AX=71A1h
  62919. (Table 01778)
  62920. Values for Windows95 date/time format:
  62921. 0000h use 64-bit file time format
  62922. 0001h use MS-DOS date/time values (see #01665,#01666) in low double-word of
  62923. file time QWORD (date is high word, time is low word of double-word)
  62924. SeeAlso: #01779
  62925. Format of Windows95 long filename FindData record:
  62926. Offset Size Description (Table 01779)
  62927. 00h DWORD file attributes
  62928. bits 0-6 standard DOS attributes (see #01420 at INT 21/AX=4301h)
  62929. bit 8: temporary file
  62930. 04h QWORD file creation time (number of 100ns intervals since 1/1/1601)
  62931. 0Ch QWORD last access time
  62932. 14h QWORD last modification time
  62933. 1Ch DWORD file size (high 32 bits)
  62934. 20h DWORD file size (low 32 bits)
  62935. 24h 8 BYTEs reserved (apparently unused)
  62936. 2Ch 260 BYTEs ASCIZ full filename
  62937. 130h 14 BYTEs ASCIZ short filename (for backward compatibility)
  62938. Note: under Windows95B, the ASCIZ short filename will be the empty string
  62939. if the directory does not contain a long filename entry for the
  62940. file; in that case, the application should use the full filename
  62941. SeeAlso: #01780
  62942. Bitfields for Windows95 Unicode conversion flags:
  62943. Bit(s) Description (Table 01780)
  62944. 0 the returned full filename contains underscores for un-convertable
  62945. Unicode characters
  62946. 1 the returned short filename contains underscores for un-convertable
  62947. Unicode characters
  62948. SeeAlso: #01779
  62949. --------D-21714F-----------------------------
  62950. INT 21 - Windows95 - LONG FILENAME - FIND NEXT MATCHING FILE
  62951. AX = 714Fh
  62952. BX = filefind handle (from AX=714Eh)
  62953. SI = date/time format (see #01778)
  62954. ES:DI -> buffer for FindData record (see #01779)
  62955. Return: CF clear if successful
  62956. AH = 4Fh (undocumented)
  62957. AL destroyed (becomes low byte of filefind handle in Win95B)
  62958. CX = Unicode conversion flags (see #01780)
  62959. CF set on error
  62960. AX = error code
  62961. 7100h if function not supported
  62962. Notes: this function is only available when IFSMgr is running, not under bare
  62963. MS-DOS 7
  62964. for compatibility with DOS versions prior to v7.00, the carry flag
  62965. should be set on call to ensure that it is set on exit
  62966. SeeAlso: AH=4Eh,AX=714Eh,AX=71A1h,AX=71A2h
  62967. --------D-217156-----------------------------
  62968. INT 21 - Windows95 - LONG FILENAME - RENAME FILE
  62969. AX = 7156h
  62970. DS:DX -> ASCIZ old file or directory name (long names allowed)
  62971. ES:DI -> ASCIZ new name (long names allowed)
  62972. Return: CF clear if successful
  62973. CF set on error
  62974. AX = error code
  62975. 7100h if function not supported
  62976. Note: the file may be renamed into a different directory, but not across
  62977. disks
  62978. SeeAlso: AH=56h,AX=7141h,AX=43FFh/BP=5053h
  62979. --------D-217160CL00-------------------------
  62980. INT 21 - Windows95 - LONG FILENAME - "TRUENAME" - CANONICALIZE PATH
  62981. AX = 7160h
  62982. CL = 00h
  62983. CH = SUBST expansion flag
  62984. 00h return a path containing true path for a SUBSTed drive letter
  62985. 80h return a path containing the SUBSTed drive letter
  62986. DS:SI -> ASCIZ filename or path (either long name or short name)
  62987. ES:DI -> 261-byte buffer for canonicalized name
  62988. Return: CF set on error
  62989. AX = error code
  62990. 02h invalid component in directory path or drive letter only
  62991. 03h malformed path or invalid drive letter
  62992. ES:DI buffer unchanged
  62993. CF clear if successful
  62994. ES:DI buffer filled with fully qualified name
  62995. AX destroyed
  62996. Desc: determine the canonical name of the specified filename or path,
  62997. corresponding to the undocumented TRUENAME command in COMMAND.COM
  62998. Notes: if a complete path is given, the result will be a short-form complete
  62999. path; otherwise, the given relative path is appended to the
  63000. short-form current directory name, '.'/'..'/'...'/etc. are resolved,
  63001. and the final result uppercased without converting any remaining
  63002. long-form names to short-form
  63003. for compatibility with DOS versions prior to v7.00, the carry flag
  63004. should be set on call to ensure that it is set on exit
  63005. BUG: Windows95 incorrectly treats filenames where the first two characters
  63006. after the drive letter and colon are both slashes (either forward
  63007. or backward) as a UNC (network name) and requires several seconds
  63008. to attempt to resolve the name before returning an unchanged
  63009. string
  63010. SeeAlso: AH=60h,AX=7160h/CL=01h
  63011. --------D-217160CL01-------------------------
  63012. INT 21 - Windows95 - LONG FILENAME - GET SHORT (8.3) FILENAME FOR FILE
  63013. AX = 7160h
  63014. CL = 01h
  63015. CH = SUBST expansion flag
  63016. 00h return a path containing true path for a SUBSTed drive letter
  63017. 80h return a path containing the SUBSTed drive letter
  63018. DS:SI -> ASCIZ long filename or path
  63019. ES:DI -> 67-byte (possibly 128-byte) buffer for short filename
  63020. Return: CF set on error
  63021. AX = error code
  63022. 02h invalid component in directory path or drive letter only
  63023. 03h malformed path or invalid drive letter
  63024. ES:DI buffer unchanged
  63025. CF clear if successful
  63026. ES:DI buffer filled with equivalent short filename (full path,
  63027. even if relative path given, and all uppercase)
  63028. Note: this call returns the short name for any long-filename portions of
  63029. the provided pathname or filename
  63030. SeeAlso: AH=60h,AX=7160h/CL=00h,AX=7160h/CL=02h
  63031. --------D-217160CL02-------------------------
  63032. INT 21 - Windows95 - LONG FILENAME - GET CANONICAL LONG FILENAME OR PATH
  63033. AX = 7160h
  63034. CL = 02h
  63035. CH = SUBST expansion flag
  63036. 00h return a path containing true path for a SUBSTed drive letter
  63037. 80h return a path containing the SUBSTed drive letter
  63038. DS:SI -> ASCIZ short filename or path
  63039. ES:DI -> 261-byte buffer for canonicalized long name
  63040. Return: CF set on error
  63041. AX = error code
  63042. 02h invalid component in directory path or drive letter only
  63043. 03h malformed path or invalid drive letter
  63044. ES:DI buffer unchanged
  63045. CF clear if successful
  63046. ES:DI buffer filled with qualified long name (can contain
  63047. lowercase letters)
  63048. Desc: determine the canonical name of the specified filename or path,
  63049. corresponding to the undocumented TRUENAME command in COMMAND.COM
  63050. BUGS: even though the maximum length of a complete long pathname is 260
  63051. characters, Windows95 returns CF set/AX=0003h even if the file
  63052. exists whenever the full pathname is more than 255 characters
  63053. Windows95 incorrectly treats filenames where the first two characters
  63054. after the drive letter and colon are both slashes (either forward
  63055. or backward) as a UNC (network name) and requires several seconds
  63056. to attempt to resolve the name before returning an unchanged
  63057. string
  63058. SeeAlso: AH=60h,AX=7160h/CL=00h,AX=7160h/CL=01h
  63059. --------D-21716C-----------------------------
  63060. INT 21 - Windows95 - LONG FILENAME - CREATE OR OPEN FILE
  63061. AX = 716Ch
  63062. BX = access mode and sharing flags (see #01782,also AX=6C00h)
  63063. CX = attributes
  63064. DX = action (see #01781)
  63065. DS:SI -> ASCIZ filename
  63066. DI = alias hint (number to append to short filename for disambiguation)
  63067. Return: CF clear if successful
  63068. AX = file handle
  63069. CX = action taken
  63070. 0001h file opened
  63071. 0002h file created
  63072. 0003h file replaced
  63073. CF set on error
  63074. AX = error code (see #01680)
  63075. 7100h if function not supported
  63076. SeeAlso: AX=6C00h,AX=7141h,AX=7156h,AX=71A9h
  63077. Bitfields for Windows95 long-name open action:
  63078. Bit(s) Description (Table 01781)
  63079. 0 open file (fail if file does not exist)
  63080. 1 truncate file if it already exists (fail if file does not exist)
  63081. 4 create new file if file does not already exist (fail if exists)
  63082. Note: the only valid combinations of multiple flags are bits 4&0 and 4&1
  63083. Bitfields for Windows95 file access/sharing modes:
  63084. Bit(s) Description (Table 01782)
  63085. 2-0 file access mode
  63086. 000 read-only
  63087. 001 write-only
  63088. 010 read-write
  63089. 100 read-only, do not modify file's last-access time
  63090. 6-4 file sharing modes
  63091. 7 no-inherit flag
  63092. 8 do not buffer data (requires that all reads/writes be exact physical
  63093. sectors)
  63094. 9 do not compress file even if volume normally compresses files
  63095. 10 use alias hint in DI as numeric tail for short-name alias
  63096. 12-11 unused??? (0)
  63097. 13 return error code instead of generating INT 24h if critical error
  63098. while opening file
  63099. 14 commit file after every write operation
  63100. SeeAlso: #01402
  63101. --------D-2171A0-----------------------------
  63102. INT 21 - Windows95 - LONG FILENAME - GET VOLUME INFORMATION
  63103. AX = 71A0h
  63104. DS:DX -> ASCIZ root name (e.g. "C:\")
  63105. ES:DI -> buffer for file system name
  63106. CX = size of ES:DI buffer
  63107. Return: CF clear if successful
  63108. AX destroyed (0000h and 0200h seen)
  63109. BX = file system flags (see #01783)
  63110. CX = maximum length of file name [usually 255]
  63111. DX = maximum length of path [usually 260]
  63112. ES:DI buffer filled (ASCIZ, e.g. "FAT","NTFS","CDFS")
  63113. CF set on error
  63114. AX = error code
  63115. 7100h if function not supported
  63116. Notes: for the file system name buffer, 32 bytes should be sufficient; that's
  63117. what is used in some sample code by Walter Oney from Microsoft.
  63118. this function accesses the disk the first time it is called
  63119. BUG: this function returns DX=0000h for CD-ROM drives under Win95 SP1
  63120. SeeAlso: AX=714Eh,AX=7160h/CL=00h
  63121. Bitfields for long filename volume information flags:
  63122. Bit(s) Description (Table 01783)
  63123. 0 searches are case sensitive
  63124. 1 preserves case in directory entries
  63125. 2 uses Unicode characters in file and directory names
  63126. 3-13 reserved (0)
  63127. 14 supports DOS long filename functions
  63128. 15 volume is compressed
  63129. --------D-2171A1-----------------------------
  63130. INT 21 - Windows95 - LONG FILENAME - "FindClose" - TERMINATE DIRECTORY SEARCH
  63131. AX = 71A1h
  63132. BX = filefind handle (from AX=714Eh)
  63133. Return: CF clear if successful
  63134. CF set on error
  63135. AX = error code
  63136. 7100h if function not supported
  63137. Notes: this function must be called after starting a search with AX=714Eh,
  63138. to indicate that the search handle returned by that function will
  63139. no longer be used
  63140. this function is only available when IFSMgr is running, not under bare
  63141. MS-DOS 7
  63142. SeeAlso: AH=4Eh,AX=714Eh,AX=714Fh
  63143. --------D-2171A2-----------------------------
  63144. INT 21 U - Windows95 - internal - LONG FILENAME - FIND NEXT MATCHING FILE
  63145. AX = 71A2h
  63146. BX = filefind handle (from AX=714Eh)
  63147. SI = date/time format (see #01778)
  63148. ES:DI -> buffer for FindData record (see #01779)
  63149. Return: CF clear if successful
  63150. AX = 71A2h
  63151. CX = Unicode conversion flags (see #01780)
  63152. CF set on error
  63153. AX = error code
  63154. 7100h if function not supported
  63155. Notes: this function is only available when IFSMgr is running, not under bare
  63156. MS-DOS 7; it is functionally identical to AX=714Fh
  63157. documented as "for internal use by Windows 95 only"
  63158. --------D-2171A3-----------------------------
  63159. INT 21 U - Windows95 - internal
  63160. AX = 71A3h
  63161. ???
  63162. Return: ???
  63163. Note: documented as "for internal use by Windows 95 only"
  63164. --------D-2171A4-----------------------------
  63165. INT 21 U - Windows95 - internal
  63166. AX = 71A4h
  63167. ???
  63168. Return: ???
  63169. Note: documented as "for internal use by Windows 95 only"
  63170. --------D-2171A5-----------------------------
  63171. INT 21 U - Windows95 - internal
  63172. AX = 71A5h
  63173. ???
  63174. Return: ???
  63175. Note: documented as "for internal use by Windows 95 only"
  63176. --------D-2171A6-----------------------------
  63177. INT 21 - Windows95 - LONG FILENAME - GET FILE INFO BY HANDLE
  63178. AX = 71A6h
  63179. BX = file handle
  63180. DS:DX -> buffer for file information (see #01784)
  63181. CF set
  63182. Return: CF clear if successful
  63183. file information record filled
  63184. CF set on error
  63185. AX = error code
  63186. 7100h if function not supported
  63187. SeeAlso: AX=71A7h/BL=00h
  63188. Format of Windows95 file information:
  63189. Offset Size Description (Table 01784)
  63190. 00h DWORD file attributes
  63191. 04h QWORD creation time (0 = unsupported)
  63192. 0Ch QWORD last access time (0 = unsupported)
  63193. 14h QWORD last write time
  63194. 1Ch DWORD volume serial number
  63195. 20h DWORD high 32 bits of file size
  63196. 24h DWORD low 32 bits of file size
  63197. 28h DWORD number of links to file
  63198. 2Ch DWORD unique file identifier (high 32 bits)
  63199. 30h DWORD unique file identifier (low 32 bits)
  63200. Note: the file identifer and volume serial number together uniquely identify
  63201. a file while it is open; the identifier may change when the system
  63202. is restarted or the file is first opened
  63203. --------D-2171A7BL00-------------------------
  63204. INT 21 - Windows95 - LONG FILENAME - FILE TIME TO DOS TIME
  63205. AX = 71A7h
  63206. BL = 00h
  63207. DS:SI -> QWORD file time
  63208. Return: CF clear if successful
  63209. CX = DOS time (see #01665)
  63210. DX = DOS date (see #01666)
  63211. BH = hundredths (10-millisecond units past time in CX)
  63212. CF set on error
  63213. AX = error code
  63214. 7100h if function not supported
  63215. Desc: convert Win95 64-bit file time (UTC) into DOS-style date and time
  63216. (local timezone)
  63217. Note: the conversion fails if the file time's value is outside the range
  63218. 01jan1980 and 31dec2107
  63219. SeeAlso: AX=71A6h,AX=71A7h/BL=01h
  63220. --------D-2171A7BL01-------------------------
  63221. INT 21 - Windows95 - LONG FILENAME - DOS TIME TO FILE TIME
  63222. AX = 71A7h
  63223. BL = 01h
  63224. CX = DOS time (see #01665)
  63225. DX = DOS date (see #01666)
  63226. BH = hundredths (10-millisecond units past time in CX)
  63227. ES:DI -> buffer for QWORD file time
  63228. Return: CF clear if successful
  63229. ES:DI buffer filled
  63230. CF set on error
  63231. AX = error code
  63232. 7100h if function not supported
  63233. Desc: convert DOS-style date and time (local timezone) into Win95 64-bit
  63234. file time (UTC)
  63235. SeeAlso: AX=71A6h,AX=71A7h/BL=00h
  63236. --------D-2171A8-----------------------------
  63237. INT 21 - Windows95 - LONG FILENAME - GENERATE SHORT FILENAME
  63238. AX = 71A8h
  63239. DS:SI -> ASCIZ long filename (no path allowed!)
  63240. ES:DI -> buffer for ASCIZ short filename
  63241. DH = short name's format
  63242. 00h 11-char directory entry/FCB filename format
  63243. 01h DOS 8.3
  63244. DL = character sets
  63245. bits 7-4: short name's character set (see #01785)
  63246. bits 3-0: long name's character set (see #01785)
  63247. Return: CF clear if successful
  63248. ES:DI buffer filled
  63249. CF set on error
  63250. AX = error code
  63251. 7100h if function not supported
  63252. Note: this function uses the same algorithm as the filesystem except that
  63253. the returned name never has a numeric tail for disambiguation
  63254. SeeAlso: AX=7160h/CL=00h,AX=7160h/CL=02h,AX=71A7h/BL=00h
  63255. (Table 01785)
  63256. Values for Windows95 filename character set:
  63257. 00h Windows ANSI
  63258. 01h current OEM character set
  63259. 02h Unicode
  63260. --------D-2171A9-----------------------------
  63261. INT 21 - Windows95 - LONG FILENAME - SERVER CREATE OR OPEN FILE
  63262. AX = 71A9h
  63263. BX = access mode and sharing flags (see #01782,also AX=6C00h)
  63264. CX = attributes
  63265. DX = action (see #01781)
  63266. DS:SI -> ASCIZ filename
  63267. DI = alias hint (number to append to short filename for disambiguation)
  63268. Return: CF clear if successful
  63269. AX = global file handle
  63270. CX = action taken
  63271. 0001h file opened
  63272. 0002h file created
  63273. 0003h file replaced
  63274. CF set on error
  63275. AX = error code (see #01680)
  63276. 7100h if function not supported
  63277. Note: for use by real-mode servers only
  63278. SeeAlso: AX=6C00h,AX=716Ch
  63279. --------D-2171AABH00-------------------------
  63280. INT 21 - Windows95 - LONG FILENAME - CREATE SUBST
  63281. AX = 71AAh
  63282. BH = 00h
  63283. BL = drive number (00h = default, 01h = A:, etc.)
  63284. DS:DX -> ASCIZ pathname to associate with drive letter
  63285. Return: CF clear if successful
  63286. CF set on error
  63287. AX = error code (see #01680)
  63288. 7100h if function not supported
  63289. SeeAlso: AX=71AAh/BH=01h,AX=71AAh/BH=02h,INT 2F/AX=1000h,#01643
  63290. --------D-2171AABH01-------------------------
  63291. INT 21 - Windows95 - LONG FILENAME - TERMINATE SUBST
  63292. AX = 71AAh
  63293. BH = 01h
  63294. BL = drive number (01h = A:, etc.)
  63295. Return: CF clear if successful
  63296. CF set on error
  63297. AX = error code (see #01680)
  63298. 7100h if function not supported
  63299. Note: the specified drive number may not be 00h (default), and presumably not
  63300. the current drive either
  63301. SeeAlso: AX=71AAh/BH=00h,AX=71AAh/BH=02h,INT 2F/AX=1000h,#01643
  63302. --------D-2171AABH02-------------------------
  63303. INT 21 - Windows95 - LONG FILENAME - QUERY SUBST
  63304. AX = 71AAh
  63305. BH = 02h
  63306. BL = drive number (01h = A:, etc.)
  63307. DS:DX -> buffer for ASCIZ pathname associated with drive letter
  63308. Return: CF clear if successful
  63309. DS:DX buffer filled
  63310. CF set on error
  63311. AX = error code (see #01680)
  63312. 7100h if function not supported
  63313. Note: the specified drive number may not be 00h (default drive)
  63314. SeeAlso: AX=71AAh/BH=00h,AX=71AAh/BH=01h,INT 2F/AX=1000h,#01643
  63315. --------D-2172-------------------------------
  63316. INT 21 - Windows95 beta - LFN-FindClose
  63317. AH = 72h
  63318. details not available
  63319. Return: CF clear if successful
  63320. CF set on error
  63321. AX = error code (see #01680)
  63322. 7200h if function not supported (e.g. under bare MS-DOS 7)
  63323. Note: this function was present in beta versions of Windows95, but is
  63324. probably not present in the release version
  63325. SeeAlso: AX=71A1h
  63326. --------D-2173-------------------------------
  63327. INT 21 - MS-DOS 7 - DRIVE LOCKING ???
  63328. AH = 73h
  63329. DL = drive (0=current, 1=A:, etc.)
  63330. CL = which flag to get or set
  63331. 00h drive flag???
  63332. 01h ???
  63333. AL = subfunction
  63334. 00h get ???
  63335. 01h set ???
  63336. CH = new values for ??? flags
  63337. bit 1: ??? (CL=00h only)
  63338. bit 3: ??? (CL=01h only)
  63339. Return: CF clear if successful
  63340. for AL=00h:
  63341. AL = value of CL on entry
  63342. for CL=00h: AH = new flag and 06h (i.e. bits 1 and 2 used)
  63343. for CL=01h: AH = new flag and 08h (i.e. bit 3 used)
  63344. (flag being taken from a table of bytes)
  63345. CF set on error
  63346. AX = error code (01h,0Fh,etc.) (see #01680)
  63347. 7300h if function not supported
  63348. Note: these two subfunctions are available even when only the MS-DOS kernel
  63349. is running
  63350. --------D-217302-----------------------------
  63351. INT 21 - Windows95 - FAT32 - "Get_ExtDPB" - GET EXTENDED DPB
  63352. AX = 7302h
  63353. DL = drive number (00h=default, 01h=A:, etc.)
  63354. ES:DI -> buffer for returned data (see #01786)
  63355. CX = length of buffer (003Fh for Windows95)
  63356. SI = signature (undocumented, must be F1A6h to get device driver
  63357. address and next-DBP pointer) (see #01787)
  63358. Return: CF clear if successful
  63359. ES:DI buffer filled
  63360. CF set on error
  63361. AX = error code
  63362. 0018h bad buffer length
  63363. SeeAlso: AX=7303h,AX=7304h,AH=1Fh,AH=32h
  63364. Format of Get_ExtDPB data buffer:
  63365. Offset Size Description (Table 01786)
  63366. 00h WORD (call) length of following data (003Dh)
  63367. 02h 61 BYTEs (ret) drive parameter block (DPB) (see #01787)
  63368. Format of Extended Drive Parameter Block:
  63369. Offset Size Description (Table 01787)
  63370. 00h 24 BYTEs standard DOS 4+ DPB
  63371. 18h BYTE "dpb_flags" (undocumented)
  63372. FFh force media check
  63373. 19h DWORD pointer to next DPB (see note)
  63374. 1Dh WORD cluster at which to start search for free space when writing,
  63375. usually the last cluster allocated
  63376. 1Fh WORD number of free clusters on drive, FFFFh = unknown
  63377. 21h WORD high word of free cluster count
  63378. 23h WORD active FAT/mirroring
  63379. bit 7: do not mirror active FAT to inactive FATs
  63380. bits 6-4: reserved (0)
  63381. bits 3-0: the 0-based FAT number of the active FAT
  63382. (only meaningful if mirroring disabled)
  63383. 25h WORD sector number of file system information sector, or
  63384. FFFFh for none (see also #01788)
  63385. 27h WORD sector number of backup boot sector, or FFFFh for none
  63386. 29h DWORD first sector number of the first cluster
  63387. 2Dh DWORD maximum cluster number
  63388. 31h DWORD number of sectors occupied by FAT
  63389. 35h DWORD cluster number of start of root directory
  63390. 39h DWORD cluster number at which to start searching for free space
  63391. Notes: except for offset 18h, all of the first 33 bytes are identical to
  63392. the standard DOS 4-6 DPB
  63393. unless the proper value is given in SI on entry to "Get_ExtDBP", the
  63394. next-DPB pointer and device driver address are set to 0000h:0000h
  63395. SeeAlso: #01786,#01395 at AH=32h,#01664
  63396. Format of File System Information structure:
  63397. Offset Size Description (Table 01788)
  63398. 00h DWORD signature 61417272h
  63399. 04h DWORD number of free clusters (FFFFFFFFh if unknown)
  63400. 08h DWORD most recently allocated cluster
  63401. 0Ch 12 BYTEs reserved
  63402. SeeAlso: #01787
  63403. --------D-217303-----------------------------
  63404. INT 21 - Windows95 - FAT32 - GET EXTENDED FREE SPACE ON DRIVE
  63405. AX = 7303h
  63406. DS:DX -> ASCIZ string for drive ("C:\" or "\\SERVER\Share")
  63407. ES:DI -> buffer for extended free space structure (see #01789)
  63408. CX = length of buffer for extended free space
  63409. Return: CF clear if successful
  63410. ES:DI buffer filled
  63411. CF set on error
  63412. AX = error code
  63413. Notes: this function reportedly returns a maximum of 2GB free space even on
  63414. an FAT32 partition larger than 2GB under some versions of Win95,
  63415. apparently by limiting the number of reported free clusters to no
  63416. more than 64K
  63417. on DOS versions which do not support the FAT32 calls, this function
  63418. returns CF clear/AL=00h (which is the DOS v1+ method for reporting
  63419. unimplemented functions)
  63420. SeeAlso: AX=7302h,AX=7304h,AX=7305h,AH=36h
  63421. Format of extended free space structure:
  63422. Offset Size Description (Table 01789)
  63423. 00h WORD (ret) size of returned structure
  63424. 02h WORD (call) structure version (0000h)
  63425. (ret) actual structure version (0000h)
  63426. 04h DWORD number of sectors per cluster (with adjustment for compression)
  63427. 08h DWORD number of bytes per sector
  63428. 0Ch DWORD number of available clusters
  63429. 10h DWORD total number of clusters on the drive
  63430. 14h DWORD number of physical sectors available on the drive, without
  63431. adjustment for compression
  63432. 18h DWORD total number of physical sectors on the drive, without
  63433. adjustment for compression
  63434. 1Ch DWORD number of available allocation units, without adjustment
  63435. for compression
  63436. 20h DWORD total allocation units, without adjustment for compression
  63437. 24h 8 BYTEs reserved
  63438. --------D-217304-----------------------------
  63439. INT 21 - Windows95 - FAT32 - Set DPB TO USE FOR FORMATTING
  63440. AX = 7304h
  63441. DL = drive number (00h=default, 01h=A:, etc.)
  63442. ES:DI -> buffer for Set_DPBforFormat structure (see #01790)
  63443. Return: CF clear if successful
  63444. ES:DI buffer updated
  63445. CF set on error
  63446. AX = error code
  63447. SeeAlso: AX=7302h,AX=7303h,AX=7305h
  63448. Format of Set_DPBforFormat structure:
  63449. Offset Size Description (Table 01790)
  63450. 00h WORD (call) size
  63451. 02h WORD (call) structure version??? (0000h)
  63452. (ret) ???
  63453. 04h DWORD (call) function number
  63454. 00h invalidate DPB counts
  63455. 01h rebuild DPB from BPB
  63456. 02h force media change (next access to drive rebuild DPB)
  63457. 03h get/set active FAT number and mirroring
  63458. 04h get/set root directory cluster number
  63459. ---function 00h---
  63460. 08h DWORD new DPB free count (00000000h=no change, FFFFFFFFh=unknown)
  63461. 0Ch DWORD new DPB next-free (00000000h=no change, FFFFFFFFh=unknown)
  63462. 10h DWORD unused
  63463. 14h DWORD unused
  63464. ---function 01h---
  63465. 08h DWORD unused???
  63466. 0Ch DWORD (call) -> BIOS Parameter Block from which to rebuild DPB
  63467. 10h DWORD unused
  63468. 14h DWORD unused
  63469. ---function 02h---
  63470. 08h DWORD unused
  63471. 0Ch DWORD unused
  63472. 10h DWORD unused
  63473. 14h DWORD unused
  63474. ---function 03h---
  63475. 08h DWORD (call) new active FAT/mirroring state, or FFFFFFFFh to get
  63476. bits 3-0: the 0-based FAT number of the active FAT
  63477. bits 6-4: reserved (0)
  63478. bit 7: do not mirror active FAT to inactive FATs
  63479. 0Ch DWORD (ret) previous active FAT/mirroring state (as above)
  63480. 10h DWORD unused
  63481. 14h DWORD unused
  63482. ---function 04h---
  63483. 08h DWORD (call) new root directory cluster number
  63484. FFFFFFFFh to get current
  63485. 0Ch DWORD (ret) previous root directory cluster number
  63486. 10h DWORD unused
  63487. 14h DWORD unused
  63488. --------D-217305CXFFFF-----------------------
  63489. INT 21 - Windows95 - FAT32 - EXTENDED ABSOLUTE DISK READ/WRITE
  63490. AX = 7305h
  63491. CX = FFFFh
  63492. DL = drive number (01h=A:, etc.)
  63493. SI = read/write mode flags (see #01791)
  63494. DS:BX -> disk I/O packet (see #02548 at INT 25)
  63495. Return: CF clear if successful
  63496. CF set on error
  63497. AX = error code
  63498. Note: one can not specify the default drive (DL=00h) for this function.
  63499. SeeAlso: AX=7302h,AX=7304h,INT 25,INT 26
  63500. Bitfields for Extended Absolute Disk Read/Write mode flags:
  63501. Bit(s) Description (Table 01791)
  63502. 0 direction (0=read, 1=write)
  63503. 12-1 reserved (0)
  63504. 14-13 write type (should be 00 on reads)
  63505. 00 unknown data
  63506. 01 FAT data
  63507. 10 directory data
  63508. 11 file data
  63509. 15 reserved (0)
  63510. --------v-217575-----------------------------
  63511. INT 21 - VIRUS - "LEGO" -INSTALLATION CHECK
  63512. AX = 7575h
  63513. Return: AX = 4321h if resident
  63514. SeeAlso: AX=6969h,AH=76h"VIRUS"
  63515. --------v-2176-------------------------------
  63516. INT 21 - VIRUS - "Klaeren"/"Hate" - INSTALLATION CHECK
  63517. AH = 76h
  63518. Return: AL = 48h if resident
  63519. SeeAlso: AX=7575h,AX=7700h"VIRUS"
  63520. --------v-217700-----------------------------
  63521. INT 21 - VIRUS - "Growing Block" - INSTALLATION CHECK
  63522. AX = 7700h
  63523. Return: AX = 0920h if resident
  63524. SeeAlso: AH=76h,AX=7BCEh,AH=7Fh
  63525. --------V-217734-----------------------------
  63526. INT 21 U - SCROLLit v1.7 - INSTALLATION CHECK
  63527. AX = 7734h
  63528. Return: DX = 3477h if installed
  63529. AX = segment of resident code
  63530. Program: ScrollIt is a shareware backscroll utility by Bromfield Software
  63531. Products
  63532. --------U-217761-----------------------------
  63533. INT 21 - WATCH.COM v3.2+ - INSTALLATION CHECK
  63534. AX = 7761h ('wa')
  63535. Return: AX = 6177h
  63536. Note: WATCH.COM is part of the "TSR" package by TurboPower Software
  63537. SeeAlso: INT 16/AX=7761h
  63538. --------v-217BCE-----------------------------
  63539. INT 21 - VIRUS - "Whisper"/"Taipan" - INSTALLATION CHECK
  63540. AX = 7BCEh
  63541. Return: AX = 7BCEh if resident (???)
  63542. SeeAlso: AX=5454h"VIRUS",AX=7700h,AX=7BCFh,AH=7Fh"VIRUS"
  63543. --------v-217BCF-----------------------------
  63544. INT 21 - VIRUS - "Tai-Pan.666"/"Doom II Death" - INSTALLATION CHECK
  63545. AX = 7BCFh
  63546. Return: AX = 7BCFh if resident
  63547. SeeAlso: AX=7BCEh"VIRUS",AH=7Dh"VIRUS"
  63548. --------v-217D-------------------------------
  63549. INT 21 - VIRUS - "OffSpring" - INSTALLATION CHECK
  63550. AH = 7Dh
  63551. Return: AH = FAh if installed
  63552. SeeAlso: AX=7BCFh"VIRUS",AH=7Fh"VIRUS"
  63553. --------v-217F-------------------------------
  63554. INT 21 - VIRUS - "Squeaker","ASeXual" - INSTALLATION CHECK
  63555. AH = 7Fh
  63556. Return: AH = 80h if resident
  63557. SeeAlso: AX=7BCEh,AH=83h"VIRUS"
  63558. --------D-2180-------------------------------
  63559. INT 21 - European MS-DOS 4.0 - "AEXEC" - EXECUTE PROGRAM IN BACKGROUND
  63560. AH = 80h
  63561. CX = mode
  63562. 0000h place child in zombie mode on exit to preserve exit code
  63563. 0001h discard child process and exit code on termination
  63564. DS:DX -> ASCIZ full program name
  63565. ES:BX -> parameter block (as for AX=4B00h)
  63566. Return: CF clear if successful
  63567. AX = Command Subgroup ID (CSID)
  63568. CF set on error
  63569. AX = error code (see #01680 at AH=59h/BX=0000h)
  63570. Program: European MS-DOS 4.0 was written for Siemens in Germany and then used
  63571. by several other European OEMs; its release falls between mainstream
  63572. versions 3.2 and 3.3
  63573. Desc: asynchronously execute a program, creating a new process for it
  63574. Notes: this function is called by the DETACH command
  63575. there is a system-wide limit of 32 processes
  63576. the CSID is used to identify all processes that have been spawned by
  63577. a given process, whether directly or indirectly
  63578. programs to be run in the background must use the new executable format
  63579. (see #01596 at AH=4Bh)
  63580. background processes may only perform asynchronous (background) EXECs,
  63581. either this function or AX=4B04h
  63582. background processes may execute INT 11, INT 12, INT 21, INT 2A, and
  63583. INT 2F at any time; they may execute INT 10 and INT 16 only while
  63584. they have opened a popup screen via INT 2F/AX=1401h; no other
  63585. interrupts may be executed from the background
  63586. background processes may not use drive B: or overlay their code
  63587. segments
  63588. see AX=8700h for an installation check
  63589. the "NE" new executable format made its first appearance in European
  63590. MS-DOS 4.0
  63591. SeeAlso: AH=4Bh,AH=87h,INT 2F/AX=1400h"POPUP"
  63592. ----------218080-----------------------------
  63593. INT 21 - PCW Weather Card interface - UNINSTALL PCW.COM AND FREE MEMORY
  63594. AX = 8080h
  63595. Return: ???
  63596. SeeAlso: AX=7070h/BX=7070h
  63597. --------D-2181-------------------------------
  63598. INT 21 - European MS-DOS 4.0 - "FREEZE" - STOP A PROCESS
  63599. AH = 81h
  63600. BX = flag (00h freeze command subtree, 01h only specified process)
  63601. CX = Process ID of head of command subtree
  63602. Return: CF clear if successful
  63603. CF set on error
  63604. AX = error code (no such process)
  63605. Desc: temporarily suspend a process or a process and all of its children
  63606. Note: if BX=0001h, this call will not return until the process is actually
  63607. frozen, which may not be until after it unblocks from an I/O
  63608. operation
  63609. SeeAlso: AH=82h,AH=89h,AX=8E00h,INT 15/AX=101Dh
  63610. --------D-2182-------------------------------
  63611. INT 21 - European MS-DOS 4.0 - "RESUME" - RESTART A PROCESS
  63612. AH = 82h
  63613. BX = flag (00h resume command subtree, 01h only specified process)
  63614. CX = Process ID of head of command subtree
  63615. Return: CF clear if successful
  63616. CF set on error
  63617. AX = error code (no such process)
  63618. Desc: restart a previously-suspended process or a process and all of its
  63619. children
  63620. SeeAlso: AH=81h,INT 15/AX=101Eh
  63621. --------D-2183-------------------------------
  63622. INT 21 - European MS-DOS 4.0 - "PARTITION" - GET/SET FOREGROUND PARTITION SIZE
  63623. AH = 83h
  63624. AL = function
  63625. 00h get size
  63626. 01h set new size
  63627. BX = new size in paragraphs
  63628. Return: CF clear if successful
  63629. BX = current size (function 00h) or old size (function 01h)
  63630. CF set on error
  63631. AX = error code (01h,07h,0Dh)(see #01680 at AH=59h/BX=0000h)
  63632. Desc: specify or determine how much memory may be allocated by the foreground
  63633. process
  63634. Note: if the partition size is set to 0000h, no partition management is done
  63635. and all memory allocation is compatible with DOS 3.2.
  63636. the partition size can be changed regardless of what use is being made
  63637. of the changed memory; subsequent allocations will follow the
  63638. partition rules (foreground processes may allocate only foreground
  63639. memory; background processes allocate background memory first, then
  63640. foreground memory)
  63641. SeeAlso: AH=48h,AH=4Ah
  63642. --------v-2183-------------------------------
  63643. INT 21 - VIRUS - "SVC" - INSTALLATION CHECK
  63644. AH = 83h
  63645. Return: DX = 1990h if resident
  63646. SeeAlso: AH=76h,AH=84h"VIRUS"
  63647. --------v-2184-------------------------------
  63648. INT 21 - VIRUS - "SVC 5.0" or "SVC 6.0" - INSTALLATION CHECK
  63649. AH = 84h
  63650. Return: DX = 1990h if resident
  63651. BH = version number (major in high nybble, minor in low)
  63652. SeeAlso: AH=83h"VIRUS",AH=89h"VIRUS"
  63653. --------D-218400-----------------------------
  63654. INT 21 - European MS-DOS 4.0 - "CREATMEM" - CREATE A SHARED MEMORY AREA
  63655. AX = 8400h
  63656. BX = size in bytes (0000h = 65536)
  63657. CX = flags
  63658. bit 6: zero-initialize segment
  63659. DS:DX -> ASCIZ name (must begin with "\SHAREMEM\")
  63660. Return: CF clear if successful
  63661. AX = segment address of shared memory global object
  63662. CF set on error
  63663. AX = error code (06h,08h) (see #01680 at AH=59h/BX=0000h)
  63664. Desc: create an area of memory which may be accessed by multiple processes
  63665. Notes: shared memory objects are created as special files (thus the
  63666. restriction on the name)
  63667. on successful creation, the reference count is set to 1
  63668. SeeAlso: AX=8401h,AX=8402h,INT 15/AX=DE19h
  63669. --------D-218401-----------------------------
  63670. INT 21 - European MS-DOS 4.0 - "GETMEM" - OBTAIN ACCESS TO SHARED MEMORY AREA
  63671. AX = 8401h
  63672. CX = flags
  63673. bit 7: writable segment (ignored by MS-DOS 4.0)
  63674. DS:DX -> ASCIZ name (must begin with "\SHAREMEM\")
  63675. Return: CF clear if successful
  63676. AX = segment address of shared memory global object
  63677. CX = size in bytes
  63678. CF set on error
  63679. AX = error code (invalid name)
  63680. Desc: get address of a previously-created area of memory which may be
  63681. accessed by multiple processes
  63682. Note: this call increments the reference count for the shared memory area
  63683. SeeAlso: AX=8400h,AX=8402h
  63684. --------D-218402-----------------------------
  63685. INT 21 - European MS-DOS 4.0 - "RELEASEMEM" - FREE SHARED MEMORY AREA
  63686. AX = 8402h
  63687. BX = handle (segment address of shared memory object)
  63688. Return: CF clear if successful
  63689. CF set on error
  63690. AX = error code (no such name)
  63691. Desc: indicate that the specified area of shared memory will no longer be
  63692. used by the caller
  63693. Note: the reference count is decremented and the shared memory area is
  63694. deallocated if the new reference count is zero
  63695. SeeAlso: AX=8400h,AX=8401h,INT 15/AX=DE19h
  63696. --------D-2185-------------------------------
  63697. INT 21 U - European MS-DOS 4.0 - ???
  63698. AH = 85h
  63699. ???
  63700. Return: ???
  63701. --------D-2186-------------------------------
  63702. INT 21 - European MS-DOS 4.0 - "SETFILETABLE" - INSTALL NEW FILE HANDLE TABLE
  63703. AH = 86h
  63704. BX = total number of file handles in new table
  63705. Return: CF clear if successful
  63706. CF set on error
  63707. AX = error code (06h,08h) (see #01680 at AH=59h/BX=0000h)
  63708. Desc: adjust the size of the per-process open file table, thus raising or
  63709. lowering the limit on the number of files the caller can open
  63710. simultaneously
  63711. Notes: any currently-open files are copied to the new table
  63712. if the table is increased beyond the default 20 handles, only the
  63713. first 20 will be inherited by child processes
  63714. error 06h is returned if the requested number of handles exceeds
  63715. system limits or would require closing currently-open files
  63716. SeeAlso: AH=26h,AH=67h
  63717. --------D-2187-------------------------------
  63718. INT 21 - European MS-DOS 4.0 - "GETPID" - GET PROCESS IDENTIFIER
  63719. AH = 87h
  63720. Return: AX = PID
  63721. BX = parent process's PID
  63722. CX = Command Subgroup ID (CSID)
  63723. Program: European MS-DOS 4.0 was written for Siemens in Germany and then used
  63724. by several other European OEMs; its release falls between mainstream
  63725. versions 3.2 and 3.3
  63726. Desc: determine an identifier by which to access the calling process
  63727. Notes: called by MS C v5.1 getpid() function
  63728. this function apparently must return AX=0001h for INT 21/AH=80h to
  63729. succeed
  63730. one possible check for European MS-DOS 4.0 is to issue this call with
  63731. AL=00h and check whether AL is nonzero on return
  63732. SeeAlso: AH=30h,AH=62h,AH=80h
  63733. Index: installation check;European MS-DOS 4.0
  63734. --------D-2188-------------------------------
  63735. INT 21 U - European MS-DOS 4.0 - ???
  63736. AH = 88h
  63737. ???
  63738. Return: ???
  63739. SeeAlso: AH=87h
  63740. --------D-2189-------------------------------
  63741. INT 21 - European MS-DOS 4.0 - SLEEP
  63742. AH = 89h
  63743. CX = time in milliseconds or 0000h to give up time slice
  63744. Return: CF clear if successful
  63745. CX = 0000h
  63746. CF set on error
  63747. AX = error code (interrupted system call)
  63748. CX = sleep time remaining
  63749. Desc: suspend the calling process for the specified duration
  63750. Notes: the sleep interval is rounded up to the next higher increment of the
  63751. scheduler clock, and may be extended further if other processes are
  63752. running
  63753. this call may be interrupted by signals (see AH=8Dh)
  63754. reportedly called by Microsoft C 4.0 startup code
  63755. background processes have higher priority than the foreground process,
  63756. and should thus periodically yield the CPU
  63757. SeeAlso: AH=81h,INT 15/AX=1000h,INT 2F/AX=1680h,INT 7A/BX=000Ah
  63758. --------v-2189-------------------------------
  63759. INT 21 - VIRUS - "Vriest" - INSTALLATION CHECK
  63760. AH = 89h
  63761. Return: AX = 0123h if resident
  63762. SeeAlso: AH=84h"VIRUS",AH=90h"VIRUS"
  63763. --------D-218A-------------------------------
  63764. INT 21 - European MS-DOS 4.0 - "CWAIT" - WAIT FOR CHILD TO TERMINATE
  63765. AH = 8Ah
  63766. BL = range (00h command subtree, 01h any child)
  63767. BH = suspend flag
  63768. 00h suspend if children exist but none are dead
  63769. 01h return if no dead children
  63770. CX = Process ID of head of command subtree
  63771. Return: CF clear if successful
  63772. AH = termination type (see #01792)
  63773. AL = return code from child or aborting signal
  63774. BX = PID of child (0000h if no dead children)
  63775. CF set on error
  63776. AX = error code (no child,interrupted system call)
  63777. Desc: get return code from an asynchronously-executed child program,
  63778. optionally waiting if no return code is available
  63779. SeeAlso: AH=4Bh,AH=4Dh,AH=80h,AH=8Dh
  63780. (Table 01792)
  63781. Values for termination type:
  63782. 00h normal termination
  63783. 01h aborted by Control-C
  63784. 02h aborted by I/O error
  63785. 03h terminate and stay resident
  63786. 04h aborted by signal
  63787. 05h aborted by program error
  63788. --------D-218B-------------------------------
  63789. INT 21 U - European MS-DOS 4.0 - ???
  63790. AH = 8Bh
  63791. ???
  63792. Return: ???
  63793. SeeAlso: AH=87h
  63794. --------D-218C-------------------------------
  63795. INT 21 - European MS-DOS 4.0 - SET SIGNAL HANDLER
  63796. AH = 8Ch
  63797. AL = signal number (see #01793)
  63798. BL = action (see #01794)
  63799. DS:DX -> signal handler (see #01795)
  63800. Return: CF clear if successful
  63801. AL = previous action
  63802. ES:BX -> previous signal handler
  63803. CF set on error
  63804. AX = error code (01h,invalid SigNumber or Action)
  63805. (see #01680 at AH=59h/BX=0000h)
  63806. Desc: set the routine which will be invoked on a number of exceptional
  63807. conditions
  63808. Note: all signals will be sent to the most recently installed handler
  63809. SeeAlso: AH=8Dh
  63810. (Table 01793)
  63811. Values for European MS-DOS 4.0 signal number:
  63812. 01h SIGINTR Control-C or user defined interrupt key
  63813. 08h SIGTERM program termination
  63814. 09h SIGPIPE broken pipe
  63815. 0Dh SIGUSER1 reserved for user definition
  63816. 0Eh SIGUSER2 reserved for user definition
  63817. (Table 01794)
  63818. Values for signal action:
  63819. 00h SIG_DFL terminate process on receipt
  63820. 01h SIG_IGN ignore signal
  63821. 02h SIG_GET signal is accepted
  63822. 03h SIG_ERR sender gets error
  63823. 04h SIG_ACK acknowledge received signal and clear it, but don't
  63824. change current setting
  63825. (Table 01795)
  63826. Values signal handler is called with:
  63827. AL = signal number (see #01793)
  63828. AH = signal argument
  63829. Return: RETF, CF set: terminate process
  63830. RETF, CF clear, ZF set: abort any interrupted system call with an error
  63831. RETF, CF clear, ZF clear: restart any interrupted system call
  63832. IRET: restart any interrupted system call
  63833. Note: the signal handler may also perform a nonlocal GOTO by resetting the
  63834. stack pointer and jumping; before doing so, it should dismiss the
  63835. signal by calling this function with BL=04h
  63836. --------D-218D-------------------------------
  63837. INT 21 - European MS-DOS 4.0 - SEND SIGNAL
  63838. AH = 8Dh
  63839. AL = signal number (see #01793)
  63840. BH = signal argument
  63841. BL = action
  63842. 00h send to entire command subtree
  63843. 01h send only to specified process
  63844. DX = Process ID
  63845. Return: CF clear if successful
  63846. CF set on error
  63847. AX = error code (01h,06h)(see #01680 at AH=59h/BX=0000h)
  63848. Desc: invoke the exceptional-condition handler for the specified process
  63849. Note: error 06h may be returned if one or more of the affected processes
  63850. have an error handler for the signal
  63851. SeeAlso: AH=8Ch
  63852. --------D-218E00BH00-------------------------
  63853. INT 21 - European MS-DOS 4.0 - "SETPRI" - GET/SET PROCESS PRIORITY
  63854. AX = 8E00h
  63855. BH = 00h
  63856. BL = action
  63857. 00h set priority for command subtree
  63858. 01h set priority for specified process only
  63859. CX = Process ID
  63860. DH = 00h
  63861. DL = change in priority (00h to get priority)
  63862. Return: CF clear if successful
  63863. DL = process priority
  63864. DH destroyed
  63865. CF set on error
  63866. AX = error code (01h,no such process)(see #01680 at AH=59h)
  63867. Desc: specify or determine the execution priority of the specified process
  63868. or the process and all of its children
  63869. SeeAlso: AH=81h
  63870. --------D-218F-------------------------------
  63871. INT 21 U - European MS-DOS 4.0 - ???
  63872. AH = 8Fh
  63873. ???
  63874. Return: ???
  63875. SeeAlso: AH=87h
  63876. --------D-2190-------------------------------
  63877. INT 21 U - European MS-DOS 4.0 - ???
  63878. AH = 90h
  63879. ???
  63880. Return: ???
  63881. SeeAlso: AH=87h
  63882. --------v-2190-------------------------------
  63883. INT 21 - VIRUS - "Carioca" - INSTALLATION CHECK
  63884. AH = 90h
  63885. Return: AH = 01h if resident
  63886. SeeAlso: AH=89h"VIRUS",AX=9753h"VIRUS"
  63887. --------D-2191-------------------------------
  63888. INT 21 U - European MS-DOS 4.0 - ???
  63889. AH = 91h
  63890. ???
  63891. Return: ???
  63892. SeeAlso: AH=87h
  63893. --------D-2192-------------------------------
  63894. INT 21 U - European MS-DOS 4.0 - ???
  63895. AH = 92h
  63896. ???
  63897. Return: ???
  63898. SeeAlso: AH=87h
  63899. --------D-2193-------------------------------
  63900. INT 21 - European MS-DOS 4.0 - "PIPE" - CREATE A NEW PIPE
  63901. AH = 93h
  63902. CX = size in bytes
  63903. Return: CF clear if successful
  63904. AX = read handle
  63905. BX = write handle
  63906. CF set on error
  63907. AX = error code (08h) (see #01680 at AH=59h/BX=0000h)
  63908. Desc: create a communications channel which may be used for interprocess
  63909. data and command exchanges
  63910. SeeAlso: AH=3Ch,AH=3Fh"DOS",AH=40h"DOS",AH=84h
  63911. --------D-2194-------------------------------
  63912. INT 21 U - European MS-DOS 4.0 - ???
  63913. AH = 94h
  63914. ???
  63915. Return: ???
  63916. SeeAlso: AH=87h
  63917. --------D-2195-------------------------------
  63918. INT 21 - European MS-DOS 4.0 - HARD ERROR PROCESSING
  63919. AH = 95h
  63920. AL = new state
  63921. 00h enabled
  63922. 01h disabled, automatically fail hard errors
  63923. Return: AX = previous setting
  63924. Desc: specify whether hard (critical) errors should automatically fail the
  63925. system call or invoke an INT 24
  63926. SeeAlso: INT 24
  63927. --------D-2196-------------------------------
  63928. INT 21 U - European MS-DOS 4.0 - ???
  63929. AH = 96h
  63930. ???
  63931. Return: ???
  63932. --------D-2197-------------------------------
  63933. INT 21 U - European MS-DOS 4.0 - ???
  63934. AH = 97h
  63935. ???
  63936. Return: ???
  63937. --------v-219753-----------------------------
  63938. INT 21 - VIRUS - "Nina" - INSTALLATION CHECK
  63939. AX = 9753h
  63940. Return: never (executes original program) if virus resident
  63941. SeeAlso: AH=90h"VIRUS",AX=A1D5h"VIRUS",AX=9AD5h"VIRUS"
  63942. --------D-2198-------------------------------
  63943. INT 21 U - European MS-DOS 4.0 - ???
  63944. AH = 98h
  63945. ???
  63946. Return: ???
  63947. --------D-2199-------------------------------
  63948. INT 21 u - European MS-DOS 4.0 - "PBLOCK" - BLOCK A PROCESS
  63949. AH = 99h
  63950. DS:BX -> memory location to block on
  63951. CX = timeout in milliseconds
  63952. DH = nonzero if interruptable
  63953. Return: CF clear if awakened by event
  63954. AX = 0000h
  63955. CF set if unusual wakeup
  63956. ZF set if timeout, clear if interrupted by signal
  63957. AX = nonzero
  63958. Desc: suspend calling process until another process sends a "restart" signal
  63959. or a timeout occurs
  63960. SeeAlso: AH=9Ah,INT 2F/AX=0802h
  63961. --------D-219A-------------------------------
  63962. INT 21 u - European MS-DOS 4.0 - "PRUN" - UNBLOCK A PROCESS
  63963. AH = 9Ah
  63964. DS:BX -> memory location processes may have blocked on
  63965. Return: AX = number of processes awakened
  63966. ZF set if no processes awakened
  63967. Program: European MS-DOS 4.0 was written for Siemens in Germany and then used
  63968. by several other European OEMs; its release falls between mainstream
  63969. versions 3.2 and 3.3
  63970. Desc: restart all processes waiting for the specified "restart" signal
  63971. SeeAlso: AH=99h,INT 2F/AX=0802h
  63972. --------v-219AD5------------------------
  63973. INT 21 - VIRUS - "Massacre/Beavis" - INSTALLATION CHECK
  63974. AX = 9AD5h
  63975. Return: AX = 9AD4h if resident
  63976. SeeAlso: AX=6969h"VIRUS",AX=A1D5h"VIRUS"
  63977. --------I-21A0-------------------------------
  63978. INT 21 - Attachmate Extra! - GET 3270 DISPLAY STATE
  63979. AH = A0h
  63980. Return: AL = display status (see #01796)
  63981. BX = host window status (see #01797)
  63982. Program: Attachmate Extra! is a 3270 emulator by Attachmate Corporation
  63983. SeeAlso: AH=A1h
  63984. Bitfields for Attachmate Extra! display status:
  63985. Bit(s) Description (Table 01796)
  63986. 7 0=windowed, 1=enlarged
  63987. 6-3 current screen profile number 0-9
  63988. 2-0 active window number (0=PC, 1-4=host B-E, 5-6=notepad F-G)
  63989. Bitfields for host window status:
  63990. Bit(s) Description (Table 01797)
  63991. 15 reserved
  63992. 14 0=host E window installed, 1=not
  63993. 13 0=host E terminal on, 1=off
  63994. 12 0=host E window displayed, 1=not
  63995. 11 reserved
  63996. 10 0=host D window installed, 1=not
  63997. 9 0=host D terminal on, 1=off
  63998. 8 0=host D window displayed, 1=not
  63999. 7 reserved
  64000. 6 0=host C window installed, 1=not
  64001. 5 0=host C terminal on, 1=off
  64002. 4 0=host C window displayed, 1=not
  64003. 3 reserved
  64004. 2 0=host B window installed, 1=not
  64005. 1 0=host B terminal on, 1=off
  64006. 0 0=host B window displayed, 1=not
  64007. --------I-21A1-------------------------------
  64008. INT 21 - Attachmate Extra! - SET 3270 DISPLAY STATE
  64009. AH = A1h
  64010. AL = new display status byte (see #01796)
  64011. SeeAlso: AH=A0h,AH=A2h
  64012. --------v-21A1D5-----------------------------
  64013. INT 21 - VIRUS - "789"/"Filehider" - INSTALLATION CHECK
  64014. AX = A1D5h
  64015. Return: AX = 900Dh if resident
  64016. SeeAlso: AX=9753h,AX=9AD5h,AX=A55Ah
  64017. --------I-21A2-------------------------------
  64018. INT 21 - Attachmate Extra! - SET HOST WINDOW STATE
  64019. AH = A2h
  64020. AL = new host window status byte (see #01798)
  64021. SeeAlso: AH=A1h
  64022. Bitfields for Attachmate Extra! host window status:
  64023. Bit(s) Description (Table 01798)
  64024. 7 0=power off, 1=power on
  64025. 6 0=not installed, 1=installed
  64026. 5-3 reserved
  64027. 2-0 window number 1-4=host B-E
  64028. --------I-21A3-------------------------------
  64029. INT 21 - Attachmate Extra! - SEND KEYSTROKES TO HOST WINDOW
  64030. AH = A3h
  64031. AL = window number (1-4=host B-E)
  64032. CX = 0001h
  64033. DS:BX -> keystroke buffer
  64034. DL = zero if keystroke buffer contains host function code (see #01799),
  64035. non-zero if keystroke buffer contains ASCII character
  64036. Return: CX = zero if character sent, non-zero if not
  64037. BX incremented if CX=0
  64038. (Table 01799)
  64039. Values for Attachmate Extra! host function code:
  64040. 00h=reserved 10h=PF16 20h=Clear 30h=SysReq
  64041. 01h=PF1 11h=PF17 21h=Print 31h=ErInp
  64042. 02h=PF2 12h=PF18 22h=Left 32h=ErEof
  64043. 03h=PF3 13h=PF19 23h=Right 33h=Ident
  64044. 04h=PF4 14h=PF20 24h=Up 34h=Test
  64045. 05h=PF5 15h=PF21 25h=Down 35h=Reset
  64046. 06h=PF6 16h=PF22 26h=Home 36h=DevCncl
  64047. 07h=PF7 17h=PF23 27h=Fast Left 37h=Dup
  64048. 08h=PF8 18h=PF24 28h=Fast Right 38h=FldMark
  64049. 09h=PF9 19h=Alt on 29h=Bksp 39h=Enter
  64050. 0Ah=PF10 1Ah=Alt off 2Ah=Insert 3Ah=CrSel
  64051. 0Bh=PF11 1Bh=Shift on 2Bh=Delete
  64052. 0Ch=PF12 1Ch=Shift off 2Ch=Backtab
  64053. 0Dh=PF13 1Dh=PA1 2Dh=Tab
  64054. 0Eh=PF14 1Eh=PA2 2Eh=Newline
  64055. 0Fh=PF15 1Fh=PA3 2Fh=Attn
  64056. --------I-21A4-------------------------------
  64057. INT 21 - Attachmate Extra! - GET HOST WINDOW BUFFER ADDRESS
  64058. AH = A4h
  64059. AL = window number (1-4=host B-E)
  64060. Return: DS:BX -> 3270 display buffer
  64061. SeeAlso: AH=A5h,AH=B8h
  64062. --------I-21A5-------------------------------
  64063. INT 21 - Attachmate Extra! - GET HOST WINDOW CURSOR POSITION
  64064. AH = A5h
  64065. AL = window number (1-4=host B-E)
  64066. Return: BX = cursor position (80 * row + column, where 0:0 is upper left)
  64067. Note: if the host window is configured with the Extended Attribute (EAB)
  64068. feature, multiply the cursor position by 2 to obtain the byte offset
  64069. into the display buffer
  64070. SeeAlso: AH=A4h
  64071. --------v-21A55A-----------------------------
  64072. INT 21 - VIRUS - "Eddie-2" - INSTALLATION CHECK
  64073. AX = A55Ah
  64074. Return: AX = 5AA5h if resident
  64075. SeeAlso: AX=A1D5h,AX=AA00h
  64076. --------v-21AA00-----------------------------
  64077. INT 21 - VIRUS - "Blinker" - INSTALLATION CHECK
  64078. AX = AA00h
  64079. Return: AX = 00AAh if resident
  64080. SeeAlso: AX=A55Ah,AX=AA03h
  64081. --------v-21AA03-----------------------------
  64082. INT 21 - VIRUS - "Backtime" - INSTALLATION CHECK
  64083. AX = AA03h
  64084. Return: AX = 03AAh if resident
  64085. SeeAlso: AX=AA00h,AH=ABh
  64086. --------v-21AB-------------------------------
  64087. INT 21 - VIRUS - "600" or "Voronezh"-family - INSTALLATION CHECK
  64088. AH = ABh
  64089. Return: AX = 5555h if resident
  64090. SeeAlso: AX=AA03h,AX=ABCDh,AX=BBBBh"VIRUS"
  64091. --------v-21ABCD-----------------------------
  64092. INT 21 - VIRUS - Major BBS - INSTALLATION CHECK
  64093. AX = ABCDh
  64094. Return: AX = 1234h if installed
  64095. SeeAlso: AH=ABh"VIRUS",AX=ABCDh"SuperVirus"
  64096. --------v-21ABCD------------------------
  64097. INT 21 - VIRUS - "SuperVirus 2" - INSTALLATION CHECK
  64098. AX = ABCDh
  64099. Return: AX = DCBAh if resident
  64100. SeeAlso: AX=ABCDh"VIRUS",AX=BBBBh"VIRUS"
  64101. --------I-21AF-------------------------------
  64102. INT 21 - Attachmate Extra! - GET TRANSLATE TABLE ADDRESS
  64103. AH = AFh
  64104. Return: DS:BX -> translate tables (see #01800)
  64105. Format of Attachmate Extra! translate tables:
  64106. Offset Size Description (Table 01800)
  64107. 00h 256 BYTEs ASCII to 3270 buffer code translate table
  64108. 100h 256 BYTEs 3270 buffer code to ASCII translate table
  64109. 200h 256 BYTEs 3270 buffer code to EBCDIC translate table
  64110. 300h 256 BYTEs EBCDIC to 3270 buffer code translate table
  64111. --------v-21B3-------------------------------
  64112. INT 21 - VIRUS - "Requires" - INSTALLATION CHECK
  64113. AH = B3h
  64114. Return: AX = 9051h if resident
  64115. SeeAlso: AH=7Fh"VIRUS",AX=B974h"VIRUS"
  64116. --------N-21B300-----------------------------
  64117. INT 21 U - Novell NetWare - CHECK LIP/PACKET SIGNING/IPX CHECKSUM SUPPORT???
  64118. AX = B300h
  64119. Return: AX = 0000h if supported???
  64120. Note: this function appeared with the packet signing/Large Internet Packets/
  64121. IPX Checksum-aware NetWare shells
  64122. SeeAlso: AX=B301h,AX=B302h
  64123. --------N-21B301-----------------------------
  64124. INT 21 U - Novell NetWare - CHECK SIGNATURE LEVEL???
  64125. AX = B301h
  64126. Return: AX = 0000h if supported???
  64127. BX:CX indicate signature level (see #01801)
  64128. Note: this function appeared with the packet signing/Large Internet Packets/
  64129. IPX Checksum-aware NetWare shells
  64130. SeeAlso: AX=B300h,AX=B304h,#02875 at INT 2F/AX=7A20h/BX=0000h
  64131. (Table 01801)
  64132. Values for signature level indicator:
  64133. 0000h:0000h = signature level 0
  64134. 0002h:0000h = signature level 1
  64135. 0202h:0000h = signature level 2
  64136. 0202h:0202h = signature level 3
  64137. --------N-21B302-----------------------------
  64138. INT 21 U - Novell NetWare - START PACKET SIGNING
  64139. AX = B302h
  64140. CX = server connection (1-8)
  64141. DS:SI -> 24-byte buffer containing ???
  64142. Return: ???
  64143. Notes: this function appeared with the packet signing/Large Internet Packets/
  64144. IPX Checksum-aware NetWare shells
  64145. if packet signing is active, this call is required if and only if the
  64146. last call successfully authenticated the workstation to the server
  64147. SeeAlso: AX=B300h,#02875
  64148. --------N-21B304-----------------------------
  64149. INT 21 U - Novell NetWare - SET SIGNATURE LEVEL
  64150. AX = B304h
  64151. BX:CX = new signature level (see AX=B301h)
  64152. Return: ???
  64153. Note: this function appeared with the packet signing/Large Internet Packets/
  64154. IPX Checksum-aware NetWare shells
  64155. SeeAlso: AX=B300h,AX=B301h,AX=B306h,#02875
  64156. --------N-21B306-----------------------------
  64157. INT 21 - Novell NetWare - RENEGOTIATE SECURITY LEVEL
  64158. AX = B306h
  64159. CX = server connection number (01h-08h)
  64160. Return: ???
  64161. Note: this function appeared with the packet signing/Large Internet Packets/
  64162. IPX Checksum-aware NetWare shells
  64163. SeeAlso: AX=B300h,AX=B304h,#02875
  64164. --------N-21B4-------------------------------
  64165. INT 21 U - Novell NetWare - "AttachHandle"
  64166. AH = B4h
  64167. DS:SI -> input buffer (see #01802)
  64168. Return: AX = DOS file handle or return code
  64169. Note: this is an interface provided by NetWare to give DOS file access to
  64170. NetWare files on non-DOS systems such as Macintosh, OS/2, and Unix
  64171. SeeAlso: AX=E909h
  64172. Format of Novell NetWare input buffer:
  64173. Offset Size Description (Table 01802)
  64174. 00h BYTE "WorkFileServer"
  64175. 01h BYTE access code
  64176. 02h DWORD "OpenHandle"
  64177. 06h WORD "OpenHandleCount"
  64178. 08h DWORD "OpenFileSize"
  64179. Note: the six bytes at 02h-07h appear to be the six-byte NetWare handle
  64180. returned by AX=E909h
  64181. --------N-21B500-----------------------------
  64182. INT 21 U - Novell NetWare - VNETWARE.386 API - GET INSTANCE DATA
  64183. AX = B500h
  64184. Return: ES:BX -> data
  64185. CX = length
  64186. SeeAlso: AX=B501h,AX=B502h
  64187. --------N-21B501-----------------------------
  64188. INT 21 U - Novell NetWare - VNETWARE.386 API - END VIRTUAL MACHINE
  64189. AX = B501h
  64190. SeeAlso: AX=B500h,AX=B502h
  64191. --------N-21B502-----------------------------
  64192. INT 21 U - Novell NetWare - VNETWARE.386 API - START VIRTUAL MACHINE
  64193. AX = B502h
  64194. SeeAlso: AX=B500h,AX=B501h
  64195. --------N-21B5-------------------------------
  64196. INT 21 - Novell NetWare shell 3.01 - TASK MODE CONTROL
  64197. AH = B5h
  64198. AL = subfunction
  64199. 03h get task mode
  64200. Return: AH = 00h
  64201. AL = current task mode byte (see #01803)
  64202. 04h get task mode pointer
  64203. Return: ES:BX -> task mode byte
  64204. Notes: the task mode byte specifies how task cleanup should be performed, but
  64205. is declared to be version-dependent
  64206. allows a program to disable the automatic cleanup for programs managing
  64207. task swapping, etc.
  64208. (Table 01803)
  64209. Values for NetWare task mode byte in version 3.01:
  64210. 00h-03h reserved
  64211. 04h no task cleanup
  64212. --------N-21B505-----------------------------
  64213. INT 21 U - Novell NetWare - VNETWARE.386 API - SET VIRTUAL MACHINE ID
  64214. AX = B505h
  64215. ???
  64216. Return: ???
  64217. SeeAlso: AX=B502h,AX=B506h
  64218. --------N-21B506-----------------------------
  64219. INT 21 U - Novell NetWare - VNETWARE.386 API - GET VIRTUAL MACH SUPPORT LEVEL
  64220. AX = B506h
  64221. Return: AX = ??? (0002h)
  64222. SeeAlso: AX=B505h
  64223. --------N-21B507-----------------------------
  64224. INT 21 - Novell NetWare - NetWare Shell - GET NUMBER OF PACKET BURST BUFFERS
  64225. AX = B507h
  64226. Return: AL = number of packet burst buffers (configured at shell load time)
  64227. --------N-21B6-------------------------------
  64228. INT 21 - Novell NetWare - FILE SERVICES - EXTENDED FILE ATTRIBUTES
  64229. AH = B6h
  64230. AL = subfunction
  64231. 00h get extended file attributes
  64232. 01h set extended file attributes
  64233. CL = extended file attributes (see #01804)
  64234. DS:DX -> ASCIZ pathname (max 255 bytes)
  64235. Return: CF set on error
  64236. AL = error code
  64237. 8Ch caller lacks privileges
  64238. FEh not permitted to search directory
  64239. FFh file not found
  64240. CF clear if successful
  64241. AL = 00h (success)
  64242. CL = current extended file attributes (see #01804)
  64243. Note: this function is supported by Advanced NetWare 2.1+
  64244. SeeAlso: AX=4300h,AH=E3h/SF=0Fh
  64245. Bitfields for NetWare extended file attributes:
  64246. Bit(s) Description (Table 01804)
  64247. 2-0 search mode (executables only)
  64248. 000 none (use shell's default search)
  64249. 001 search on all opens without path
  64250. 010 do not search
  64251. 011 search on read-only opens without path
  64252. 100 reserved
  64253. 101 search on all opens
  64254. 110 reserved
  64255. 111 search on all read-only opens
  64256. 3 reserved
  64257. 4 transactions on file tracked
  64258. 5 file's FAT indexed
  64259. 6 read audit (to be implemented)
  64260. 7 write audit (to be implemented)
  64261. --------N-21B7-------------------------------
  64262. INT 21 U - Novell NetWare - "HoldFileModeSet" (obsolete)
  64263. AH = B7h
  64264. AL = new value for HoldFileFlag
  64265. Return: AL = previous value of HoldFileFlag
  64266. Note: this function provided backward compatibility with a bug in early
  64267. DOS versions and CP/M, but is no longer used or supported
  64268. --------I-21B8-------------------------------
  64269. INT 21 - Attachmate Extra! - DISABLE HOST BUFFER UPDATES
  64270. AH = B8h
  64271. AL = window number (1-4=host B-E)
  64272. DL = 01h
  64273. Notes: only valid in CUT mode
  64274. next AID keystroke (eg Enter) enables host buffer updates
  64275. SeeAlso: AH=A4h
  64276. --------N-21B800-----------------------------
  64277. INT 21 - Novell NetWare - PRINT SERVICES - GET DEFAULT CAPTURE FLAGS
  64278. AX = B800h
  64279. CX = size of reply buffer (01h-3Fh)
  64280. ES:BX -> reply buffer for capture flags table (see #01805)
  64281. Return: AL = status
  64282. 00h successful
  64283. Note: this function is supported by Advanced NetWare 2.0+
  64284. SeeAlso: AX=B801h,AX=B802h,AH=DFh/DL=00h,AH=DFh/DL=04h
  64285. Format of NetWare capture flags table:
  64286. Offset Size Description (Table 01805)
  64287. 00h BYTE status (used internally, should be set to 00h)
  64288. 01h BYTE print flags (see #01806)
  64289. 02h BYTE tab size (01h-12h, default 08h)
  64290. 03h BYTE printer number on server (00h-04h, default 00h)
  64291. 04h BYTE number of copies to print (00h-FFh, default 01h)
  64292. 05h BYTE form type required in printer (default 00h)
  64293. 06h BYTE reserved
  64294. 07h 13 BYTEs text to be placed on banner page
  64295. 14h BYTE reserved
  64296. 15h BYTE default local printer (00h = LPT1)
  64297. 16h WORD (big-endian) timeout in clock ticks for flushing capture file
  64298. on inactivity, or 0000h to disable timeout
  64299. 18h BYTE flush capture file on LPT close if nonzero
  64300. 19h WORD (big-endian) maximum lines per page
  64301. 1Bh WORD (big-endian) maximum characters per line
  64302. 1Dh 13 BYTEs name of form required in printer
  64303. 2Ah BYTE LPT capture flag
  64304. 00h inactive, FFh LPT device is being captured
  64305. 2Bh BYTE file capture flag
  64306. 00h if no file specified, FFh if capturing to file
  64307. 2Ch BYTE timing out (00h if no timeout in effect, FFh if timeout counter
  64308. running)
  64309. 2Dh DWORD (big-endian) address of printer setup string
  64310. 31h DWORD (big-endian) address of printer reset string
  64311. 35h BYTE target connection ID
  64312. 36h BYTE capture in progress if FFh
  64313. 37h BYTE job queued for printing if FFh
  64314. 38h BYTE print job valid if FFh
  64315. 39h DWORD bindery object ID of print queue if previous byte FFh
  64316. 3Dh WORD (big-endian) print job number (1-999)
  64317. Bitfields for NetWare print flags:
  64318. Bit(s) Description (Table 01806)
  64319. 2 print capture file if interrupted by loss of connection
  64320. 3 no automatic form feed after print job
  64321. 6 printing control sequences interpreted by print service
  64322. 7 print banner page before capture file
  64323. --------N-21B801-----------------------------
  64324. INT 21 - Novell NetWare - PRINT SERVICES - SET DEFAULT CAPTURE FLAGS
  64325. AX = B801h
  64326. CX = size of buffer (01h-3Fh)
  64327. ES:BX -> buffer containing capture flags table (see #01805)
  64328. Return: AL = status
  64329. 00h successful
  64330. Note: this function is supported by Advanced NetWare 2.0+
  64331. SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04h
  64332. --------N-21B802-----------------------------
  64333. INT 21 - Novell NetWare - PRINT SERVICES - GET SPECIFIC CAPTURE FLAGS
  64334. AX = B802h
  64335. CX = size of reply buffer (01h-3Fh)
  64336. DH = LPT port (00h-02h)
  64337. ES:BX -> reply buffer for capture flags table (see #01805)
  64338. Return: AL = status
  64339. 00h successful
  64340. Note: this function is supported by Advanced NetWare 2.1+
  64341. SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04h
  64342. --------N-21B803-----------------------------
  64343. INT 21 - Novell NetWare - PRINT SERVICES - SET SPECIFIC CAPTURE FLAGS
  64344. AX = B803h
  64345. CX = size of buffer (01h-3Fh)
  64346. DH = LPT port (00h-02h)
  64347. ES:BX -> buffer containing capture flags table (see #01805)
  64348. Return: AL = status
  64349. 00h successful
  64350. Note: this function is supported by Advanced NetWare 2.1+
  64351. SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04h
  64352. --------N-21B804-----------------------------
  64353. INT 21 - Novell NetWare - PRINT SERVICES - GET DEFAULT LOCAL PRINTER
  64354. AX = B804h
  64355. Return: DH = default LPT port (00h-02h)
  64356. Note: this function is supported by Advanced NetWare 2.1+
  64357. SeeAlso: AX=B800h,AX=B805h,AH=DFh/DL=00h
  64358. --------N-21B805-----------------------------
  64359. INT 21 - Novell NetWare - PRINT SERVICES - SET DEFAULT LOCAL PRINTER
  64360. AX = B805h
  64361. DH = new default LPT port (00h-02h)
  64362. Return: AL = status
  64363. 00h successful
  64364. Note: this function is supported by Advanced NetWare 2.1+
  64365. SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=00h
  64366. --------N-21B806-----------------------------
  64367. INT 21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT QUEUE
  64368. AX = B806h
  64369. DH = LPT port (00h-02h)
  64370. BX:CX = print queue's object ID
  64371. Return: AL = status
  64372. 00h successful
  64373. FFh job already set
  64374. Desc: specify the print queue on which a print job is to be placed the next
  64375. time a capture is started on the given printer port
  64376. Note: this function is supported by Advanced NetWare 2.1+
  64377. SeeAlso: AX=B801h,AX=B807h,AH=E0h/SF=09h
  64378. --------N-21B807-----------------------------
  64379. INT 21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT JOB
  64380. AX = B807h
  64381. DH = LPT port (00h-02h)
  64382. BX = job number (see AH=E3h/SF=68h)
  64383. SI:DI:CX = NetWare file handle (see AH=E3h/SF=68h)
  64384. Return: AL = status
  64385. 00h successful
  64386. FFh job already queued
  64387. Desc: specify the capture file and print job to be used for subsequent
  64388. output to the given printer port
  64389. Note: this function is supported by Advanced NetWare 2.1+
  64390. SeeAlso: AX=B801h,AX=B806h,AH=E0h/SF=09h,AH=E3h/SF=68h
  64391. --------N-21B808-----------------------------
  64392. INT 21 - Novell NetWare - PRINT SERVICES - GET BANNER USER NAME
  64393. AX = B808h
  64394. ES:BX -> 12-byte buffer for user name
  64395. Return: AL = status
  64396. 00h successful
  64397. Desc: get the user name which is printed on the banner page
  64398. Notes: this function is supported by Advanced NetWare 2.1+
  64399. the default name is the login name of the user
  64400. SeeAlso: AX=B809h
  64401. --------N-21B809-----------------------------
  64402. INT 21 - Novell NetWare - PRINT SERVICES - SET BANNER USER NAME
  64403. AX = B809h
  64404. ES:BX -> 12-byte buffer containing user name
  64405. Return: AL = status
  64406. 00h successful
  64407. Desc: specify the user name which is printed on the banner page
  64408. Notes: this function is supported by Advanced NetWare 2.1+
  64409. the default name is the login name of the user
  64410. SeeAlso: AX=B808h
  64411. --------N-21B9-------------------------------
  64412. INT 21 U - Novell NetWare - "SpecialAttachableFunction"
  64413. AH = B9h
  64414. AL = FFh to hook this function
  64415. ES:BX -> function to invoke on AH=B9h when AL<>FFh
  64416. Note: this function is no longer used or supported by current versions of
  64417. NetWare
  64418. --------v-21B974-----------------------------
  64419. INT 21 - VIRUS - "Tracker" - INSTALLATION CHECK
  64420. AX = B974h
  64421. Return: AX = 2888h if resident
  64422. SeeAlso: AH=B3h"VIRUS",AH=D0h"VIRUS"
  64423. --------N-21BA-------------------------------
  64424. INT 21 U - Novell NetWare - "ReturnCommandComPointers"
  64425. AH = BAh
  64426. Return: DX = environment segment
  64427. ES:DI -> COMMAND.COM drive
  64428. Desc: used to edit the COMSPEC and PATH variables in the master environment
  64429. when mapping network drives
  64430. Note: this function was documented in older Novell documents which are no
  64431. longer available
  64432. --------N-21BB-------------------------------
  64433. INT 21 - Novell NetWare - WORKSTATION - SET END OF JOB STATUS
  64434. AH = BBh
  64435. AL = new EOJ flag
  64436. 00h disable EOJs
  64437. 01h enable EOJs
  64438. Return: AL = old EOJ flag
  64439. Desc: specify whether the network shell should automatically generate an
  64440. End of Job call when the root command processor regains control
  64441. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  64442. Alloy NTNX
  64443. SeeAlso: AH=19h,AH=D6h
  64444. --------v-21BBBB-----------------------------
  64445. INT 21 - VIRUS - "Hey You" - INSTALLATION CHECK
  64446. AX = BBBBh
  64447. Return: AX = 6969h
  64448. SeeAlso: AH=ABh"VIRUS",AH=BEh"VIRUS"
  64449. --------N-21BC-------------------------------
  64450. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG PHYSICAL RECORD
  64451. AH = BCh
  64452. AL = flags (see #01808)
  64453. BX = file handle
  64454. CX:DX = starting offset in file
  64455. SI:DI = length of region to lock
  64456. BP = timeout in timer ticks (1/18 sec)
  64457. 0000h = don't wait if already locked
  64458. Return: AL = status (see #01807)
  64459. Desc: add the specified physical record to the log table, optionally locking
  64460. it
  64461. Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  64462. Alloy NTNX
  64463. SeeAlso: AH=5Ch,AH=BDh,AH=BEh,AH=BFh,AH=C2h,AH=D0h
  64464. (Table 01807)
  64465. Values for NetWare status:
  64466. 00h successful
  64467. 96h no dynamic memory for file
  64468. FEh timed out
  64469. FFh failed
  64470. Bitfields for NetWare flags:
  64471. Bit(s) Description (Table 01808)
  64472. 0 lock as well as log record
  64473. 1 non-exclusive lock
  64474. --------N-21BD-------------------------------
  64475. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYSICAL RECORD
  64476. AH = BDh
  64477. BX = file handle
  64478. CX:DX = starting offset in file
  64479. SI:DI = length of record
  64480. Return: AL = status
  64481. 00h successful
  64482. FFh record not locked
  64483. Desc: unlock the specified physical record but do not remove it from log
  64484. table
  64485. Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  64486. Alloy NTNX
  64487. SeeAlso: AH=BCh,AH=BEh"NetWare",AH=C0h,AH=C3h,AH=D2h
  64488. --------N-21BE-------------------------------
  64489. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD
  64490. AH = BEh
  64491. BX = file handle
  64492. CX:DX = starting offset within file
  64493. SI:DI = record length in bytes
  64494. Return: AL = status
  64495. 00h successful
  64496. FFh specified record not locked
  64497. Desc: unlock the physical record and remove it from the log table
  64498. Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  64499. Alloy NTNX
  64500. SeeAlso: AH=5Ch,AH=BCh,AH=BDh,AH=C1h,AH=C4h,AH=D4h
  64501. --------v-21BE-------------------------------
  64502. INT 21 - VIRUS - "Datalock" - INSTALLATION CHECK
  64503. AH = BEh
  64504. Return: AX = 1234h if resident
  64505. SeeAlso: AX=BBBBh,AX=BE00h
  64506. --------v-21BE00-----------------------------
  64507. INT 21 - VIRUS - "USSR-1049" - INSTALLATION CHECK
  64508. AX = BE00h
  64509. CF set
  64510. Return: CF clear if resident
  64511. SeeAlso: AH=BEh"VIRUS",AH=C0h"VIRUS"
  64512. --------N-21BF-------------------------------
  64513. INT 21 O - Novell NetWare, Alloy NTNX - LOG/LOCK RECORD (FCB)
  64514. AH = BFh
  64515. AL = flags (see #01808)
  64516. DS:DX -> opened FCB (see #01345 at AH=0Fh)
  64517. BX:CX = offset
  64518. BP = lock timeout in timer ticks (1/18 sec) if AL nonzero
  64519. SI:DI = length
  64520. Return: AL = error code (see #01807)
  64521. Note: this function was added in NetWare 4.6, but was removed some time prior
  64522. to Advanced NetWare 2.15, and is no longer listed in current Novell
  64523. documentation
  64524. SeeAlso: AH=BCh,AH=C0h"NetWare",AH=C2h"NetWare"
  64525. --------N-21C0-------------------------------
  64526. INT 21 O - Novell NetWare, Alloy NTNX - RELEASE RECORD (FCB)
  64527. AH = C0h
  64528. DS:DX -> non-extended FCB (see #01345 at AH=0Fh)
  64529. BX:CX = offset
  64530. Return: AL = error code (see #01807)
  64531. Notes: unlocks record but does not remove it from log table
  64532. this function was added in NetWare 4.6, but was removed some time prior
  64533. to Advanced NetWare 2.15, and is no longer listed in current Novell
  64534. documentation
  64535. SeeAlso: AH=BDh,AH=BFh,AH=C1h"NetWare",AH=C3h
  64536. --------v-21C0-------------------------------
  64537. INT 21 - VIRUS - "Slow"/"Zerotime", "Solano" - INSTALLATION CHECK
  64538. AH = C0h
  64539. Return: AX = 0300h if "Slow"/"Zerotime" resident
  64540. AX = 1234h if "Solano" resident
  64541. SeeAlso: AX=BE00h,AX=C000h"VIRUS",AX=C301h"VIRUS"
  64542. --------v-21C000-----------------------------
  64543. INT 21 - VIRUS - "QUICKY" - INSTALLATION CHECK
  64544. AX = C000h
  64545. BX = most files infected by any other infected file
  64546. Return: AX = 76F3h if resident
  64547. SeeAlso: AH=C0h"VIRUS",AX=C001h,AX=C002h,AH=C1h"VIRUS"
  64548. --------v-21C001-----------------------------
  64549. INT 21 - VIRUS - "QUICKY" - TURN INFECTION OFF
  64550. AX = C001h
  64551. Return: nothing
  64552. Note: if the virus is already memory resident this call disables any
  64553. further infections
  64554. SeeAlso: AX=C000h,AX=C002h
  64555. --------v-21C002-----------------------------
  64556. INT 21 - VIRUS - "QUICKY" - TURN INFECTION ON
  64557. AX = C002h
  64558. Return: nothing
  64559. Note: if the virus is already memory resident and infection is disabled,
  64560. this call re-enables it
  64561. SeeAlso: AX=C000h,AX=C001h
  64562. --------N-21C1-------------------------------
  64563. INT 21 O - Novell NetWare, Alloy NTNX - CLEAR RECORD (FCB)
  64564. AH = C1h
  64565. DS:DX -> opened FCB (see #01345 at AH=0Fh)
  64566. BX:CX = offset
  64567. Return: AL = error code (see #01807)
  64568. Note: unlocks record and removes it from log table
  64569. this function was added in NetWare 4.6, but was removed some time prior
  64570. to Advanced NetWare, and is no longer listed in current Novell
  64571. documentation
  64572. SeeAlso: AH=BEh,AH=C0h"NetWare",AH=C4h
  64573. --------v-21C1-------------------------------
  64574. INT 21 - VIRUS - "Solano" - ???
  64575. AH = C1h
  64576. ???
  64577. Return: ???
  64578. SeeAlso: AH=C0h"VIRUS"
  64579. --------N-21C2-------------------------------
  64580. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK PHYSICAL RECORD SET
  64581. AH = C2h
  64582. AL = flags
  64583. bit 1: non-exclusive lock
  64584. BP = lock timeout in timer ticks (1/18 sec) 0000h = no wait
  64585. Return: AL = status
  64586. 00h successful
  64587. FEh timed out
  64588. FFh failed
  64589. Desc: attempt to lock all physical records listed in the log table
  64590. Notes: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  64591. Alloy NTNX
  64592. status FFh will be returned if one or more physical records have been
  64593. exclusively locked by another process
  64594. SeeAlso: AH=BFh,AH=C3h,AH=D1h
  64595. --------v-21C2-------------------------------
  64596. INT 21 - VIRUS - "Scott's Valley" - ???
  64597. AH = C2h
  64598. ???
  64599. Return: ???
  64600. SeeAlso: AH=C0h"VIRUS"
  64601. --------N-21C3-------------------------------
  64602. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYS RECORD SET
  64603. AH = C3h
  64604. Desc: unlock all currently-locked physical records in the log table, but do
  64605. not remove them from the table
  64606. Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  64607. Alloy NTNX
  64608. SeeAlso: AH=BDh,AH=C0h,AH=C2h"NetWare",AH=C4h,AH=D3h
  64609. --------v-21C301DXF1F1-----------------------
  64610. INT 21 - VIRUS - "905"/"Backfont" - INSTALLATION CHECK
  64611. AX = C301h
  64612. DX = F1F1h
  64613. Return: DX = 0E0Eh if resident
  64614. SeeAlso: AH=C0h"VIRUS",AX=C500h"VIRUS"
  64615. --------N-21C4-------------------------------
  64616. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD SET
  64617. AH = C4h
  64618. Desc: unlock all physical records in the log table and remove them from the
  64619. log table
  64620. Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  64621. Alloy NTNX
  64622. SeeAlso: AH=BEh,AH=C1h,AH=D5h
  64623. --------N-21C500-----------------------------
  64624. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - OPEN SEMAPHORE
  64625. AX = C500h
  64626. DS:DX -> semaphore name (counted string, max 127 bytes)
  64627. CL = initial value for semaphore
  64628. Return: AL = status
  64629. 00h successful
  64630. BL = number of processes having semaphore open
  64631. CX:DX = semaphore handle
  64632. 03h name length greater than 127
  64633. (refer to Novell document FYI.A.4611)
  64634. FEh invalid name length
  64635. FFh invalid semaphore value
  64636. Notes: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  64637. Alloy NTNX
  64638. the semaphore's value is incremented by AX=C503h and decremented by
  64639. AX=C502h
  64640. SeeAlso: AX=C501h,AX=C502h,AX=C503h,AX=C504h,AX=F220h/SF=00h
  64641. --------v-21C500-----------------------------
  64642. INT 21 - VIRUS - "Sverdlov" - INSTALLATION CHECK
  64643. AX = C500h
  64644. Return: AX = 6731h if resident
  64645. SeeAlso: AX=C301h"VIRUS",AH=C6h"VIRUS"
  64646. --------N-21C501-----------------------------
  64647. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - EXAMINE SEMAPHORE
  64648. AX = C501h
  64649. CX:DX = semaphore handle
  64650. Return: AL = status
  64651. 00h successful
  64652. CX = semaphore value (-127 to 127)
  64653. DL = count of processes which have the semaphore open
  64654. FFh invalid handle
  64655. Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  64656. Alloy NTNX
  64657. SeeAlso: AX=C500h"NetWare",AX=C502h,AX=C504h,AX=F220h/SF=01h
  64658. --------N-21C502-----------------------------
  64659. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - WAIT ON SEMAPHORE
  64660. AX = C502h
  64661. CX:DX = semaphore handle
  64662. BP = timeout limit in timer ticks (1/18 sec)
  64663. 0000h return immediately if semaphore already zero or negative
  64664. Return: AL = status
  64665. 00h successful
  64666. FEh timeout
  64667. FFh invalid handle
  64668. Desc: decrement the semaphore's value, optionally waiting until its value
  64669. becomes positive before decrementing
  64670. Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  64671. Alloy NTNX
  64672. SeeAlso: AX=C500h"NetWare",AX=C501h,AX=C503h,AX=F220h/SF=02h
  64673. --------N-21C503-----------------------------
  64674. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - SIGNAL SEMAPHORE
  64675. AX = C503h
  64676. CX:DX = semaphore handle
  64677. Return: AL = status
  64678. 00h successful
  64679. 01h semaphore value overflowed
  64680. FFh invalid handle
  64681. Desc: increment the semaphore's value and signal the first process (if any)
  64682. in the queue waiting on the semaphore
  64683. Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  64684. Alloy NTNX
  64685. SeeAlso: AX=C500h"NetWare",AX=C502h,AX=F220h/SF=03h
  64686. --------N-21C504-----------------------------
  64687. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLOSE SEMAPHORE
  64688. AX = C504h
  64689. CX:DX = semaphore handle
  64690. Return: AL = status
  64691. 00h successful
  64692. FFh invalid handle
  64693. Desc: decrement the semaphore's open count, and delete the semaphore if the
  64694. count reaches zero
  64695. Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  64696. Alloy NTNX
  64697. SeeAlso: AX=C500h"NetWare",AX=C501h,AX=F220h/SF=04h
  64698. --------N-21C6-------------------------------
  64699. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - GET OR SET LOCK MODE
  64700. AH = C6h
  64701. AL = subfunction
  64702. 00h set old "compatibility" mode (default)
  64703. 01h set new extended locks mode
  64704. 02h get lock mode
  64705. Return: AL = current lock mode
  64706. Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  64707. Alloy NTNX
  64708. the locking mode should be 01h for NetWare 4.61+ and Advanced
  64709. NetWare 1.0+ locking calls, and 00h for all older calls
  64710. SeeAlso: AH=BCh,AH=C4h,AH=D0h
  64711. --------v-21C6-------------------------------
  64712. INT 21 - VIRUS - "Socha" - INSTALLATION CHECK
  64713. AH = C6h
  64714. Return: AL = 55h if resident
  64715. SeeAlso: AX=C500h"VIRUS",AX=C603h
  64716. --------v-21C603-----------------------------
  64717. INT 21 - VIRUS - "Yankee Doodle" or "MLTI" - INSTALLATION CHECK
  64718. AX = C603h
  64719. BX = version number (002Ch or 002Dh)
  64720. CF set
  64721. Return: CF clear if resident
  64722. ZF set if resident and input BX matches version
  64723. SeeAlso: AX=C500h"VIRUS",AX=C700h"VIRUS"
  64724. --------N-21C700-----------------------------
  64725. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - BEGIN TRANSACTION
  64726. AX = C700h
  64727. Return: CF clear if successful
  64728. AL = 00h
  64729. CF set on error
  64730. AL = error code
  64731. 96h out of memory
  64732. FEh implicit transaction already active, converted to explicit
  64733. FFh explicit transaction already active
  64734. Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  64735. SeeAlso: AX=C701h,AX=C702h,AX=C703h,AX=F222h/SF=01h
  64736. --------v-21C700-----------------------------
  64737. INT 21 - VIRUS - "MH-757" - INSTALLATION CHECK
  64738. AX = C700h
  64739. Return: AL = 07h if resident
  64740. SeeAlso: AX=C603h"VIRUS",AH=CBh"VIRUS"
  64741. --------N-21C701-----------------------------
  64742. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - END TRANSACTION
  64743. AX = C701h
  64744. Return: AL = status (00h,FDh-FFh) (see #01809)
  64745. 00h successful
  64746. CX:DX = transaction number
  64747. CF clear except when AL=FFh
  64748. Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  64749. SeeAlso: AX=C700h"NetWare",AX=C703h,AX=F222h/SF=02h
  64750. (Table 01809)
  64751. Values for NetWare TTS status:
  64752. 00h successful
  64753. FDh transaction tracking disabled
  64754. FEh transaction ended records locked
  64755. FFh no explicit transaction active
  64756. --------N-21C702-----------------------------
  64757. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - INSTALLATION CHECK
  64758. AX = C702h
  64759. Return: AL = status
  64760. 00h not available
  64761. 01h available
  64762. FDh available but disabled
  64763. Desc: determine whether the default file server supports TTS
  64764. Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  64765. SeeAlso: AX=C700h,AX=C701h,AX=C703h,AX=F222h/SF=00h
  64766. --------N-21C703-----------------------------
  64767. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - ABORT TRANSACTION
  64768. AX = C703h
  64769. Return: CF clear if successful
  64770. AL = 00h
  64771. CF set on error
  64772. AL = error code (FDh-FFh) (see #01809)
  64773. Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  64774. SeeAlso: AX=C700h"NetWare",AX=C701h,AX=C704h,AX=F222h/SF=03h
  64775. --------N-21C704-----------------------------
  64776. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - TRANSACTION STATUS
  64777. AX = C704h
  64778. CX:DX = transaction number (see AX=C701h)
  64779. Return: AL = status
  64780. 00h successful
  64781. FFh not yet written to disk
  64782. Desc: verify that a transaction has actually been written to disk
  64783. Notes: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  64784. transactions are written to disk in the order in which they are ended,
  64785. but it may take as much as five seconds for the data to be written
  64786. SeeAlso: AX=C700h"NetWare",AX=C701h,AX=C703h,AX=F222h/SF=04h
  64787. --------N-21C705-----------------------------
  64788. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET APPLICTN THRESHOLDS
  64789. AX = C705h
  64790. Return: AL = status
  64791. 00h successful
  64792. CL = maximum logical record locks (default 0)
  64793. CH = maximum physical record locks (default 0)
  64794. Desc: get the per-application limits on record locks allowed before an
  64795. implicit transaction is begun
  64796. Notes: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  64797. if either limit is FFh, implicit transactions are disabled for the
  64798. corresponding lock type
  64799. SeeAlso: AX=C706h,AX=C707h,AX=F222h/SF=05h
  64800. --------N-21C706-----------------------------
  64801. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET APPLICTN THRESHOLDS
  64802. AX = C706h
  64803. CL = maximum logical record locks (default 0)
  64804. CH = maximum physical record locks (default 0)
  64805. Return: AL = status
  64806. 00h successful
  64807. Desc: specify the per-application limits on record locks allowed before an
  64808. implicit transaction is begun
  64809. Notes: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  64810. if either limit is set to FFh, implicit transactions are disabled for
  64811. the corresponding lock type
  64812. SeeAlso: AX=C705h,AX=C708h,AX=F222h/SF=06h
  64813. --------N-21C707-----------------------------
  64814. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET WORKSTN THRESHOLDS
  64815. AX = C707h
  64816. Return: AL = status
  64817. 00h successful
  64818. CL = maximum logical record locks (default 0)
  64819. CH = maximum physical record locks (default 0)
  64820. Desc: get the per-workstation limits on record locks allowed before an
  64821. implicit transaction is begun
  64822. Notes: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  64823. if either limit is FFh, implicit transactions are disabled for the
  64824. corresponding lock type
  64825. SeeAlso: AX=C705h,AX=C708h,AX=F222h/SF=07h
  64826. --------N-21C708-----------------------------
  64827. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET WORKSTN THRESHOLDS
  64828. AX = C708h
  64829. CL = maximum logical record locks (default 0)
  64830. CH = maximum physical record locks (default 0)
  64831. Return: AL = status
  64832. 00h successful
  64833. Desc: specify the per-workstation limits on record locks allowed before an
  64834. implicit transaction is begun
  64835. Notes: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  64836. if either limit is set to FFh, implicit transactions are disabled for
  64837. the corresponding lock type
  64838. SeeAlso: AX=C706h,AX=C707h,AX=F222h/SF=08h
  64839. --------N-21C8-------------------------------
  64840. INT 21 O - Novell NetWare - BEGIN LOGICAL FILE LOCKING
  64841. AH = C8h
  64842. if function C6h lock mode 00h:
  64843. DL = mode
  64844. 00h no wait
  64845. 01h wait
  64846. if function C6h lock mode 01h:
  64847. BP = timeout in timer ticks (1/18 sec)
  64848. Return: AL = error code
  64849. Desc: used to provide TTS support for applications which are not aware of
  64850. Novell's Transaction Tracking System
  64851. Note: this function was added in NetWare 4.0, but was removed some time prior
  64852. to Advanced NetWare 2.15, and is no longer listed in current Novell
  64853. documentation
  64854. SeeAlso: AH=C9h
  64855. --------N-21C9-------------------------------
  64856. INT 21 O - Novell NetWare - END LOGICAL FILE LOCKING
  64857. AH = C9h
  64858. Return: AL = error code
  64859. Desc: used to provide TTS support for applications which are not aware of
  64860. Novell's Transaction Tracking System
  64861. Note: this function was added in NetWare 4.0, but was removed some time prior
  64862. to Advanced NetWare 2.15, and is no longer listed in current Novell
  64863. documentation
  64864. SeeAlso: AH=C8h
  64865. --------N-21CA-------------------------------
  64866. INT 21 O - Novell NetWare, Alloy NTNX - LOG/LOCK PERSONAL FILE (FCB)
  64867. AH = CAh
  64868. DS:DX -> FCB (see #01345 at AH=0Fh)
  64869. if function C6h lock mode 01h:
  64870. AL = log and lock flag
  64871. 00h log file only
  64872. 01h lock as well as log file
  64873. BP = lock timeout in timer ticks (1/18 sec)
  64874. Return: AL = error code
  64875. 00h successful
  64876. 96h no dynamic memory for file
  64877. FEh timeout
  64878. FFh failed
  64879. Desc: provides file locking support for FCBs
  64880. Note: this function was added in NetWare 4.0, but was removed some time prior
  64881. to Advanced NetWare 2.15, and is no longer listed in current Novell
  64882. documentation
  64883. SeeAlso: AH=CBh
  64884. --------v-21CA15-----------------------------
  64885. INT 21 - VIRUS - "Piter" - ???
  64886. AX = CA15h
  64887. ???
  64888. Return: ???
  64889. SeeAlso: AH=CCh"VIRUS"
  64890. --------N-21CB-------------------------------
  64891. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK FILE SET
  64892. AH = CBh
  64893. if function C6h lock mode 00h:
  64894. DL = mode (00h no wait, 01h wait)
  64895. if function C6h lock mode 01h:
  64896. BP = lock timeout in timer ticks (1/18 sec), 0000h = no wait
  64897. Return: AL = status (00h,FEh,FFh) (see #01810)
  64898. Desc: attempt to lock all files listed in the log table
  64899. Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  64900. Alloy NTNX
  64901. status FFh will be returned if one or more of the files have already
  64902. been exclusively locked by another process
  64903. SeeAlso: AH=CAh,AH=CDh,AH=D1h,AH=EBh
  64904. (Table 01810)
  64905. Values for NetWare status:
  64906. 00h successful
  64907. FEh timed out
  64908. FFh failed
  64909. --------v-21CB-------------------------------
  64910. INT 21 - VIRUS - "Milous" - INSTALLATION CHECK
  64911. AH = CBh
  64912. Return: AL = 07h if resident
  64913. SeeAlso: AX=C700h"VIRUS",AX=CB02h
  64914. --------v-21CB02-----------------------------
  64915. INT 21 - VIRUS - "Witcode" - INSTALLATION CHECK
  64916. AX = CB02h
  64917. Return: AX = 02CBh if resident
  64918. SeeAlso: AH=CBh"VIRUS",AH=CCh"VIRUS"
  64919. --------N-21CC-------------------------------
  64920. INT 21 O - Novell NetWare, Alloy NTNX - RELEASE FILE (FCB)
  64921. AH = CCh
  64922. DS:DX -> FCB (see #01345 at AH=0Fh)
  64923. Return: none
  64924. Desc: unlocks file, but does not remove it from the log table or close it
  64925. Note: this function was added in NetWare 4.0, but was removed some time prior
  64926. to Advanced NetWare 2.15, and is no longer listed in current Novell
  64927. documentation
  64928. SeeAlso: AH=CAh,AH=CDh
  64929. --------v-21CC-------------------------------
  64930. INT 21 - VIRUS - "Westwood" - INSTALLATION CHECK
  64931. AH = CCh
  64932. Return: AX = 0700h if resident
  64933. SeeAlso: AX=CB02h,AH=CDh"VIRUS",AX=D000h"VIRUS"
  64934. --------N-21CD-------------------------------
  64935. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE SET
  64936. AH = CDh
  64937. Return: none
  64938. Desc: unlock all files listed in the log table, but don't remove them from
  64939. the table
  64940. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  64941. Alloy NTNX
  64942. SeeAlso: AH=CBh,AH=CCh,AH=CFh,AH=D3h
  64943. --------v-21CD-------------------------------
  64944. INT 21 - VIRUS - "Westwood" - ???
  64945. AH = CDh
  64946. ???
  64947. Return: ???
  64948. SeeAlso: AH=CCh"VIRUS"
  64949. --------N-21CE-------------------------------
  64950. INT 21 O - Novell NetWare, Alloy NTNX - CLEAR FILE (FCB)
  64951. AH = CEh
  64952. DS:DX -> FCB (see #01345 at AH=0Fh)
  64953. Return: AL = error code
  64954. Desc: unlocks file and removes it from log table, then closes all opened and
  64955. logged occurrences
  64956. Note: this function was added in NetWare 4.0, but was removed some time prior
  64957. to Advanced NetWare 2.15, and is no longer listed in current Novell
  64958. documentation
  64959. SeeAlso: AH=CAh,AH=CFh,AH=EDh"NetWare"
  64960. --------N-21CF-------------------------------
  64961. INT 21 - LANstep - ???
  64962. AH = CFh
  64963. ???
  64964. Return: ???
  64965. Program: LANstep is a redesign of the Waterloo Microsystems PORT network
  64966. --------N-21CF-------------------------------
  64967. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE SET
  64968. AH = CFh
  64969. Return: AL = 00h
  64970. Desc: unlock and remove all files from log table
  64971. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  64972. Alloy NTNX
  64973. SeeAlso: AH=CAh,AH=CEh,AH=EBh"NetWare"
  64974. --------N-21D0-------------------------------
  64975. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG LOGICAL RECORD
  64976. AH = D0h
  64977. DS:DX -> record string (counted string, max 99 data bytes)
  64978. if function C6h lock mode 01h: (Novell, NTNX only)
  64979. AL = flags
  64980. bit 0: lock as well as log the record
  64981. bit 1: non-exclusive lock
  64982. BP = lock timeout in timer ticks (1/18 sec)
  64983. Return: AL = status
  64984. 00h successful
  64985. 96h no dynamic memory for file
  64986. FEh timed out
  64987. FFh unsuccessful
  64988. Desc: add the specified logical record name to the log table, and optionally
  64989. lock the record
  64990. Notes: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+,
  64991. Banyan VINES, and Alloy NTNX
  64992. locks on logical record names are advisory and may be ignored by other
  64993. applications
  64994. SeeAlso: AH=BCh,AH=D1h,AH=D2h,AH=D4h,AH=EBh
  64995. --------v-21D0-------------------------------
  64996. INT 21 - VIRUS - "MALAGA" - INSTALLATION CHECK
  64997. AH = D0h
  64998. Return: AX = 00D0h if resident
  64999. SeeAlso: AH=B3h"VIRUS",AH=D0h"ANTIARJ",AX=D000h"VIRUS"
  65000. --------v-21D0-----------------------------
  65001. INT 21 - VIRUS - "ANTIARJ" -INSTALLATION CHECK
  65002. AH = D0h
  65003. Return: AH = D1h if resident
  65004. SeeAlso: AH=D0h"MALAGA"
  65005. --------v-21D000-----------------------------
  65006. INT 21 - VIRUS - "Fellowship" - INSTALLATION CHECK
  65007. AX = D000h
  65008. Return: BX = 1234h if resident
  65009. SeeAlso: AH=CCh"VIRUS",AH=D0h"ANTIARJ",AX=D000h"Warlock",AH=D5h"VIRUS",AX=D5AAh
  65010. --------v-21D000-----------------------------
  65011. INT 21 - VIRUS - "Warlock" - INSTALLATION CHECK
  65012. AX = D000h
  65013. CF clear
  65014. Return: CF set if resident (normal DOS return would be CF clear)
  65015. SeeAlso: AX=D000h"VIRUS",AH=D5h"VIRUS"
  65016. --------N-21D1-------------------------------
  65017. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK LOGICAL RECORD SET
  65018. AH = D1h
  65019. AL = lock type (00h exclusive, 01h shareable)
  65020. if function C6h lock mode 00h:
  65021. DL = mode (00h no wait, 01h wait)
  65022. if function C6h lock mode 01h: (Novell only)
  65023. BP = lock timeout in timer ticks (1/18 sec), 0000h no wait
  65024. Return: AL = status (see #01810)
  65025. Desc: attempt to lock all logical record names listed in the log table
  65026. Notes: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+,
  65027. Banyan VINES, and Alloy NTNX
  65028. status FFh will be returned if one or more logical records have been
  65029. exclusively locked by another process
  65030. locks on logical record names are advisory and may be ignored by other
  65031. applications
  65032. SeeAlso: AH=C2h,AH=CBh,AH=D0h,AH=D3h,AH=D5h
  65033. --------N-21D2-------------------------------
  65034. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD
  65035. AH = D2h
  65036. DS:DX -> semaphore identifier (counted string up to 99 chars long)
  65037. Return: AL = status
  65038. 00h successful
  65039. FFh no such record
  65040. Desc: unlock the logical record name but do not remove it from the log table
  65041. Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  65042. Banyan VINES, and Alloy NTNX
  65043. locks on logical record names are advisory and may be ignored by other
  65044. applications
  65045. SeeAlso: AH=BDh,AH=D0h,AH=D3h,AH=D4h
  65046. --------v-21D2-------------------------------
  65047. INT 21 - VIRUS???
  65048. AH = D2h
  65049. ???
  65050. Return: ???
  65051. Note: this call is intercepted by the Search&Destroy SDRes v27.03 bundled
  65052. with Novell DOS 7, and is presumably some virus's installation check
  65053. SeeAlso: AH=4Ah/BX=00B6h
  65054. --------N-21D3-------------------------------
  65055. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD SET
  65056. AH = D3h
  65057. Desc: unlock all currently-locked logical record names in the log table, but
  65058. do not remove them from the table
  65059. Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  65060. Banyan VINES, and Alloy NTNX
  65061. locks on logical record names are advisory and may be ignored by other
  65062. applications
  65063. SeeAlso: AH=C3h,AH=CDh,AH=D1h,AH=D2h,AH=D5h
  65064. --------N-21D4-------------------------------
  65065. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD
  65066. AH = D4h
  65067. DS:DX -> logical record name (counted string up to 99 chars long)
  65068. Return: AL = status (00h,FFh) (see #01811)
  65069. Desc: unlock and remove the logical record name from the log table
  65070. Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  65071. Banyan VINES, and Alloy NTNX
  65072. locks on logical record names are advisory and may be ignored by other
  65073. applications
  65074. SeeAlso: AH=BEh,AH=D0h,AH=D2h,AH=D5h
  65075. (Table 01811)
  65076. Values for NetWare status:
  65077. 00h successful
  65078. FFh no such record name
  65079. --------N-21D5-------------------------------
  65080. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD SET
  65081. AH = D5h
  65082. Return: AL = error code (00h,FFh) (see #01811)
  65083. Desc: unlock and remove all logical record name from the log table
  65084. Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  65085. Banyan VINES, and Alloy NTNX
  65086. locks on logical record names are advisory and may be ignored by other
  65087. applications
  65088. SeeAlso: AH=D1h,AH=D3h,AH=D4h
  65089. --------v-21D5-------------------------------
  65090. INT 21 - VIRUS - "Carfield" - ???
  65091. AH = D5h
  65092. ???
  65093. Return: ???
  65094. SeeAlso: AX=D5AAh,AH=F3h"Carfield"
  65095. --------v-21D5AA-----------------------------
  65096. INT 21 - VIRUS - "Diamond-A", "Diamond-B" - INSTALLATION CHECK
  65097. AX = D5AAh
  65098. Return: AX = 2A55h if "Diamond-A" resident
  65099. AX = 2A03h if "Diamond-B"-family virus resident
  65100. SeeAlso: AX=D000h,AH=D5h"VIRUS",AX=D5AAh/BP=DEAAh
  65101. --------v-21D5AABPDEAA-----------------------
  65102. INT 21 - VIRUS - "Dir" - INSTALLATION CHECK
  65103. AX = D5AAh
  65104. BP = DEAAh
  65105. Return: SI = 4321h if resident
  65106. SeeAlso: AX=D5AAh,AX=DADAh"VIRUS"
  65107. --------N-21D6-------------------------------
  65108. INT 21 - Novell NetWare - WORKSTATION - END OF JOB
  65109. AH = D6h
  65110. BX = job flag (0000h current job, FFFFh all processes on workstation)
  65111. Return: AL = error code
  65112. Desc: unlocks and clears all locked or logged files and records held by the
  65113. process(es), closes all files, resets error and lock modes, and
  65114. releases all network resources
  65115. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  65116. Alloy NTNX
  65117. SeeAlso: AH=BBh"NetWare",AH=D7h
  65118. --------N-21D7-------------------------------
  65119. INT 21 - Novell NetWare - CONNECTION SERVICES - SYSTEM LOGOUT
  65120. AH = D7h
  65121. Return: AL = error code
  65122. Desc: this function closes the caller's open files, logs it out from all
  65123. file servers, detaches the workstation from all non-default file
  65124. servers, and maps a drive to the default server's SYS:LOGIN directory
  65125. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  65126. Alloy NTNX
  65127. SeeAlso: AH=D6h,AH=E3h/SF=14h,AH=F1h"NetWare"
  65128. --------N-21D8-------------------------------
  65129. INT 21 - Novell NetWare, Banyan VINES - ALLOCATE RESOURCE
  65130. AH = D8h
  65131. DL = resource number
  65132. Return: AL = status (00h successful, FFh unsucessful)
  65133. Note: this function is no longer used or supported by NetWare, and is not
  65134. documented in Novell documents
  65135. SeeAlso: AH=D9h
  65136. --------N-21D9-------------------------------
  65137. INT 21 - Novell NetWare, Banyan VINES - DEALLOCATE RESOURCE
  65138. AH = D9h
  65139. DL = resource number
  65140. Return: AL = status (00h successful, FFh unsucessful)
  65141. Note: this function is no longer used or supported by NetWare, and is not
  65142. documented in Novell documents
  65143. SeeAlso: AH=D8h
  65144. --------N-21DA-------------------------------
  65145. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH NUMBER
  65146. AH = DAh
  65147. DL = volume number
  65148. ES:DI -> reply buffer (see #01812)
  65149. Return: AL = 00h
  65150. Notes: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  65151. operator console rights are not required to make this call
  65152. reported total blocks and total unused blocks include the Hot Fix
  65153. Table; the NetWare shell's implementation of INT 21/AH=36h will
  65154. report values larger than 268MB as 268MB.
  65155. SeeAlso: AH=36h,AH=E2h/SF=15h,AH=E3h/SF=E9h
  65156. Format of NetWare reply buffer:
  65157. Offset Size Description (Table 01812)
  65158. 00h WORD sectors/block
  65159. 02h WORD total blocks on volume
  65160. 04h WORD unused blocks
  65161. 06h WORD total directory entries
  65162. 08h WORD unused directory entries
  65163. 0Ah 16 BYTEs volume name, null padded
  65164. 1Ah WORD removable flag, 0000h = not removable
  65165. Note: all words are big-endian
  65166. --------v-21DADA-----------------------------
  65167. INT 21 - VIRUS - "Gotcha" - INSTALLATION CHECK
  65168. AX = DADAh
  65169. Return: AH = A5h
  65170. SeeAlso: AX=D5AAh,AX=DAFEh"VIRUS"
  65171. --------v-21DAFE-----------------------------
  65172. INT 21 - VIRUS - "Plovdiv 1.3" - INSTALLATION CHECK
  65173. AX = DAFEh
  65174. Return: AX = 1234h if resident
  65175. SeeAlso: AX=DADAh,AH=DDh"VIRUS",AH=DEh"VIRUS"
  65176. --------N-21DB-------------------------------
  65177. INT 21 - Novell NetWare - WORKSTATION - GET NUMBER OF LOCAL DRIVES
  65178. AH = DBh
  65179. Return: AL = number of local disks as set by LASTDRIVE in CONFIG.SYS
  65180. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  65181. Alloy NTNX
  65182. SeeAlso: AH=0Eh
  65183. --------N-21DC-------------------------------
  65184. INT 21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION NUMBER
  65185. AH = DCh
  65186. Return: AL = logical connection number
  65187. 00h if NetWare not loaded or this machine is a non-dedicated server
  65188. CX = station number in ASCII (CL = first digit)
  65189. Notes: this function is supported by NetWare 4.0+, Banyan VINES, and Alloy
  65190. NTNX
  65191. station number only unique for those PCs connected to same semaphore
  65192. service
  65193. SeeAlso: AH=F2h"NetWare"
  65194. --------d-21DC-------------------------------
  65195. INT 21 - PCMag PCMANAGE/DCOMPRES - TURN ON/OFF
  65196. AH = DCh
  65197. DX = state
  65198. 0000h turn on
  65199. 0001h turn off
  65200. SeeAlso: AX=FEDCh
  65201. --------v-21DC28-----------------------------
  65202. INT 21 - VIRUS - "Monika" - INSTALLATION CHECK
  65203. AX = DC28h
  65204. Return: AX = 1973h if resident
  65205. SeeAlso: AX=D000h"VIRUS",AX=DCBAh"VIRUS"
  65206. --------v-21DCBA-----------------------------
  65207. INT 21 - VIRUS - "Red Spider" - INSTALLATION CHECK
  65208. AX = DCBAh
  65209. Return: AX = ABCDh if resident
  65210. SeeAlso: AX=DC28h"VIRUS",AX=DEFEh"VIRUS"
  65211. --------N-21DD-------------------------------
  65212. INT 21 - Novell NetWare - WORKSTATION - SET NetWare ERROR MODE
  65213. AH = DDh
  65214. DL = error mode
  65215. 00h invoke INT 24 on critical I/O errors (default)
  65216. 01h return NetWare extended error code in AL
  65217. 02h return error code in AL, mapped to standard DOS error codes
  65218. Return: AL = previous error mode
  65219. Note: this function is supported by Advanced NetWare 2.0+
  65220. SeeAlso: INT 24
  65221. --------v-21DD-------------------------------
  65222. INT 21 - VIRUS - "Jerusalem"-family - RELOCATE VIRUS???
  65223. AH = DDh
  65224. CX = number of bytes to copy
  65225. DS:SI -> source of copy
  65226. ES:DI -> destination of copy
  65227. Return: does not return normally; return address is caller's CS:0100h with
  65228. AX = ???
  65229. SeeAlso: AX=DDEFh,AH=E0h"VIRUS",AH=EEh"VIRUS"
  65230. --------v-21DDEF------------------------
  65231. INT 21 - VIRUS- "GOLGI" - INSTALLATION CHECK
  65232. AX = DDEFh
  65233. Return: AX = EFDDh if resident
  65234. SeeAlso: AH=DDh"VIRUS",AH=DEh"VIRUS"
  65235. --------v-21DE-------------------------------
  65236. INT 21 - VIRUS - "Durban" - INSTALLATION CHECK
  65237. AH = DEh
  65238. Return: AH = DFh if resident
  65239. SeeAlso: AX=DAFEh,AX=DDEFh,AH=DEh"April 1st",AX=DEADh"90210"
  65240. --------v-21DE-------------------------------
  65241. INT 21 - VIRUS - "April 1st EXE" - ???
  65242. AH = DEh
  65243. ???
  65244. Return: ???
  65245. SeeAlso: AH=DEh"Durban",AX=DEADh"90210"
  65246. --------N-21DE-------------------------------
  65247. INT 21 - Novell NetWare - MESSAGE SERVICES - SET BROADCAST MODE
  65248. AH = DEh
  65249. DL = broadcast mode
  65250. 00h receive server and workstation broadcasts (default)
  65251. 01h receive server broadcasts, discard user messages
  65252. 02h store server broadcasts for retrieval
  65253. 03h store all broadcasts for retrieval
  65254. Return: AL = new broadcast mode
  65255. Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  65256. --------N-21DE--DL04-------------------------
  65257. INT 21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MODE
  65258. AH = DEh
  65259. DL = 04h
  65260. Return: AL = current broadcast mode
  65261. 00h receive server and workstation broadcasts (default)
  65262. 01h receive server broadcasts, discard user message
  65263. 02h store server broadcasts for retrieval
  65264. 03h store all broadcasts for retrieval
  65265. Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  65266. --------N-21DE-------------------------------
  65267. INT 21 - Novell NetWare - SHELL TIMER INTERRUPT CHECKS
  65268. AH = DEh
  65269. DL = function
  65270. 05h disable shell timer interrupt checks
  65271. 06h enable shell timer interrupt checks
  65272. Return: ???
  65273. Note: this function was added in NetWare 4.0, but is not listed in current
  65274. Novell documentation and is probably no longer supported
  65275. --------v-21DEAD------------------------
  65276. INT 21 - VIRUS - "90210" - INSTALLATION CHECK
  65277. AX = DEADh
  65278. Return: AX = AAAAh if resident
  65279. SeeAlso: AH=DEh"April 1st",AX=DEADh"Shifting",AX=DEDEh"VIRUS"
  65280. --------v-21DEAD------------------------
  65281. INT 21 - VIRUS - "Shifting Objective" - RELOCATE CODE ???
  65282. AX = DEADh
  65283. SeeAlso: AX=FEADh
  65284. SeeAlso: AX=DEADh"90210",AX=DEDEh"VIRUS"
  65285. --------v-21DEDE-----------------------------
  65286. INT 21 - VIRUS - "Brothers" - INSTALLATION CHECK
  65287. AX = DEDEh
  65288. Return: AH = 41h if resident
  65289. SeeAlso: AX=DEADh"Shifting",AX=DEFEh"VIRUS"
  65290. --------v-21DEFE-----------------------------
  65291. INT 21 - VIRUS - "Maze" - INSTALLATION CHECK
  65292. AX = DEFEh
  65293. Return: AX = ABCDh if resident
  65294. SeeAlso: AX=DCBAh"VIRUS",AX=DEDEh"VIRUS",AH=E0h"VIRUS"
  65295. --------N-21DF--DL00-------------------------
  65296. INT 21 - Novell NetWare - PRINT SERVICES - START LPT CAPTURE
  65297. AH = DFh
  65298. DL = 00h
  65299. Return: AL = status
  65300. 00h successful
  65301. Desc: this function redirects the default LPT to a capture file on the file
  65302. server
  65303. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  65304. Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  65305. a print job is queued when the first character of output is captured
  65306. SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=01h,AH=DFh/DL=02h,AH=DFh/DL=03h
  65307. SeeAlso: AH=DFh/DL=04h,AX=F003h
  65308. --------N-21DF--DL01-------------------------
  65309. INT 21 - Novell NetWare - PRINT SERVICES - END LPT CAPTURE
  65310. AH = DFh
  65311. DL = 01h
  65312. Return: AL = status
  65313. 00h successful
  65314. Desc: stop redirecting the default LPT, close the capture file, and release
  65315. the job in the print queue for printing
  65316. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  65317. Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  65318. after this call, the default LPT defaults to local printing
  65319. SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=02h,AH=DFh/DL=03h,AH=DFh/DL=05h
  65320. --------N-21DF--DL02-------------------------
  65321. INT 21 - Novell NetWare - PRINT SERVICES - CANCEL LPT CAPTURE
  65322. AH = DFh
  65323. DL = 02h
  65324. Return: AL = status
  65325. 00h successful
  65326. Desc: this function ends the capture of the default LPT, removes the job from
  65327. the print queue, and deletes the capture file unless it is a
  65328. permanent capture file
  65329. Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  65330. Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  65331. after this call, the default LPT defaults to local printing
  65332. SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=06h
  65333. --------N-21DF--DL03-------------------------
  65334. INT 21 - Novell NetWare - PRINT SERVICES - FLUSH LPT CAPTURE
  65335. AH = DFh
  65336. DL = 03h
  65337. Return: AL = status
  65338. 00h successful
  65339. Desc: this function closes the current capture file for the default LPT
  65340. and starts printing it if it is not a permanent capture file
  65341. Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  65342. Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  65343. if more data is sent to the LPT port after this call, a new capture
  65344. file will be opeend
  65345. SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=01h,AH=DFh/DL=02h,AH=DFh/DL=07h
  65346. --------N-21DF--DL04-------------------------
  65347. INT 21 - Novell NetWare - PRINT SERVICES - START SPECIFIC LPT CAPTURE
  65348. AH = DFh
  65349. DL = 04h
  65350. DH = LPT port (00h-02h)
  65351. Return: AL = status
  65352. 00h successful
  65353. Desc: this function redirects the specified LPT to a capture file on the file
  65354. server
  65355. Notes: this function is supported by Advanced NetWare 2.1+
  65356. a print job is queued when the first character of output is captured
  65357. SeeAlso: AX=B800h,AH=DFh/DL=00h,AH=DFh/DL=05h,AH=DFh/DL=06h,AH=DFh/DL=07h
  65358. SeeAlso: AX=F003h
  65359. --------N-21DF--DL05-------------------------
  65360. INT 21 - Novell NetWare - PRINT SERVICES - END SPECIFIC LPT CAPTURE
  65361. AH = DFh
  65362. DL = 05h
  65363. DH = LPT port (00h-02h)
  65364. Return: AL = status
  65365. 00h successful
  65366. Desc: stop redirecting the specified LPT, close the capture file, and release
  65367. the job in the print queue for printing
  65368. Notes: this function is supported by Advanced NetWare 2.1+
  65369. after this call, the specified LPT defaults to local printing
  65370. SeeAlso: AH=DFh/DL=01h,AH=DFh/DL=04h,AH=DFh/DL=06h,AH=DFh/DL=07h
  65371. --------N-21DF--DL06-------------------------
  65372. INT 21 - Novell NetWare - PRINT SERVICES - CANCEL SPECIFIC LPT CAPTURE
  65373. AH = DFh
  65374. DL = 06h
  65375. DH = LPT port (00h-02h)
  65376. Return: AL = status
  65377. 00h successful
  65378. Desc: this function ends the capture of the specified LPT, removes the job
  65379. from the print queue, and deletes the capture file unless it is a
  65380. permanent capture file
  65381. Notes: this function is supported by Advanced NetWare 2.1+
  65382. after this call, the specified LPT defaults to local printing
  65383. SeeAlso: AH=DFh/DL=02h,AH=DFh/DL=04h,AH=DFh/DL=05h,AH=DFh/DL=07h
  65384. --------N-21DF--DL07-------------------------
  65385. INT 21 - Novell NetWare - PRINT SERVICES - FLUSH SPECIFIC LPT CAPTURE
  65386. AH = DFh
  65387. DL = 07h
  65388. DH = LPT port (00h-02h)
  65389. Return: AL = status
  65390. 00h successful
  65391. Desc: this function closes the current capture file for the specified LPT
  65392. and starts printing it if it is not a permanent capture file
  65393. Notes: this function is supported by Advanced NetWare 2.1+
  65394. if more data is sent to the LPT port after this call, a new capture
  65395. file will be opeend
  65396. SeeAlso: AH=DFh/DL=03h,AH=DFh/DL=04h,AH=DFh/DL=05h,AH=DFh/DL=06h
  65397. --------T-21DF00DX534C-----------------------
  65398. INT 21 U - Software Carousel - INSTALLATION CHECK
  65399. AX = DF00h
  65400. DX = 534Ch ("SL")
  65401. DI = 534Ch ("SL")
  65402. Return: AX = 00FFh if installed
  65403. ???
  65404. Program: Software Carousel is a task switcher by SoftLogic Solutions, Inc.
  65405. --------T-21DF01-----------------------------
  65406. INT 21 - Software Carousel - SWITCH TO ANOTHER TASK
  65407. AX = DF01h
  65408. BL = task number (00h = next task)
  65409. Return: AL = status
  65410. 00h Carousel not running
  65411. 01h successful
  65412. FFh unsucessful
  65413. AH = error code (01h,02h) (see #01813)
  65414. (Table 01813)
  65415. Values for Software Carousel error code:
  65416. 00h invalid subfunction in AL
  65417. 01h invalid task number
  65418. 02h tried to switch to task with no memory size
  65419. 03h tried to kill program in partition with no program running
  65420. 04h tried to change size of an active memory partition
  65421. 05h invalid memory size
  65422. 06h tried to send command to task with a pending previous command
  65423. --------T-21DF02-----------------------------
  65424. INT 21 - Software Carousel - KILL PROGRAM IN MEMORY PARTITION
  65425. AX = DF02h
  65426. BL = task number
  65427. Return: AL = status
  65428. 00h Carousel not running
  65429. 01h successful
  65430. FFh unsucessful
  65431. AH = error code (01h,03h) (see #01813)
  65432. --------T-21DF03-----------------------------
  65433. INT 21 - Software Carousel - GET PARTITION SIZE AND PROGRAM STATUS
  65434. AX = DF03h
  65435. BL = task number
  65436. Return: AL = status
  65437. 00h Carousel not running
  65438. 01h successful
  65439. BL = partition state (00h no program running, 01h prog running)
  65440. DX = partition size in KB
  65441. FFh unsucessful
  65442. AH = error code (01h) (see #01813)
  65443. SeeAlso: AX=DF05h
  65444. --------T-21DF04-----------------------------
  65445. INT 21 - Software Carousel - GET PARTITION NAME
  65446. AX = DF04h
  65447. BL = task number
  65448. Return: AL = status
  65449. 00h Carousel not running
  65450. 01h successful
  65451. CX = length of name (00h if default partition name)
  65452. ES:BX -> partition name (if CX nonzero)
  65453. FFh unsucessful
  65454. AH = error code (01h) (see #01813)
  65455. SeeAlso: AX=DF06h
  65456. --------T-21DF05-----------------------------
  65457. INT 21 - Software Carousel - CHANGE PARTITION SIZE
  65458. AX = DF05h
  65459. BL = task number
  65460. DX = new size in KB
  65461. Return: AL = status
  65462. 00h Carousel not running
  65463. 01h successful
  65464. FFh unsucessful
  65465. AH = error code (01h,04h,05h) (see #01813)
  65466. BX = minimum size allowed
  65467. CX = maximum size available
  65468. SeeAlso: AX=DF03h
  65469. --------T-21DF06-----------------------------
  65470. INT 21 - Software Carousel - CHANGE PARTITION NAME
  65471. AX = DF06h
  65472. BL = task number
  65473. CX = length of new name (00h to use default, max 18h)
  65474. DS:SI -> new name
  65475. Return: AL = status
  65476. 00h Carousel not running
  65477. 01h successful
  65478. FFh unsucessful
  65479. AH = error code (01h) (see #01813)
  65480. SeeAlso: AX=DF04h
  65481. --------T-21DF07-----------------------------
  65482. INT 21 - Software Carousel - SEND COMMAND TO MEMORY SECTION
  65483. AX = DF07h
  65484. BL = task number
  65485. CX = length of command (max 8 chars)
  65486. DS:SI -> command line
  65487. Return: AL = status
  65488. 00h Carousel not running
  65489. 01h successful
  65490. FFh unsucessful
  65491. AH = error code (01h,06h) (see #01813)
  65492. Note: the maximum length seems too small and may be a typo for 80 characters
  65493. --------T-21DF08-----------------------------
  65494. INT 21 - Software Carousel - SELECTIVELY ENABLE/DISABLE MENU AND SWITCHING
  65495. AX = DF08h
  65496. BL = new state of keyboard (00h disabled, 01h enabled)
  65497. Return: AL = status
  65498. 00h Carousel not running
  65499. 01h successful
  65500. Program: Software Carousel is a task switcher by SoftLogic Solutions, Inc.
  65501. Note: when the keyboard is is disabled, the user may neither access the
  65502. Carousel menu nor switch to another memory section
  65503. --------T-21DF09-----------------------------
  65504. INT 21 - Software Carousel - BOOT THE SYSTEM
  65505. AX = DF09h
  65506. Return: AL = status
  65507. 00h Carousel not running
  65508. FFh unsucessful
  65509. AH = error code (01h,03h) (see #01813)
  65510. Note: this function never returns if successful
  65511. --------T-21DF0A-----------------------------
  65512. INT 21 - Software Carousel - GET MEMORY SIZE/PARTITION NUMBER OF CURRENT TASK
  65513. AX = DF0Ah
  65514. Return: AL = status
  65515. 00h Carousel not running
  65516. 01h successful
  65517. BL = task number
  65518. DX = memory size in KB
  65519. FFh unsucessful
  65520. AH = error code (01h,03h) (see #01813)
  65521. --------T-21DF0B-----------------------------
  65522. INT 21 - Software Carousel - SET TASK SWITCH CALLBACK
  65523. AX = DF0Bh
  65524. BH = interrupt number or 00h
  65525. BL = function number to invoke on partition switch
  65526. CL = function number to call when it is safe for resident programs
  65527. to perform DOS calls
  65528. DS:DX -> FAR function to call if BH=00h
  65529. Return: AL = status
  65530. 00h Carousel not running
  65531. 01h successful
  65532. FFh unsucessful
  65533. AH = error code (01h,03h) (see #01813)
  65534. Notes: the specified interrupt or FAR function is called with AH set to the
  65535. appropriate one of the values specified in BL and CL, and BL set to
  65536. the new task number
  65537. the function specified by CL will not be called until the notification
  65538. is enabled with AX=DF0Ch
  65539. SeeAlso: AX=DF0Ch
  65540. --------T-21DF0C-----------------------------
  65541. INT 21 - Software Carousel - ENABLE DOS-CALL SAFETY NOTIFICATION
  65542. AX = DF0Ch
  65543. Return: AL = status
  65544. 00h Carousel not running
  65545. 01h successful
  65546. Program: Software Carousel is a task switcher by SoftLogic Solutions, Inc.
  65547. SeeAlso: AX=DF0Bh
  65548. --------O-21E0-------------------------------
  65549. INT 21 - Digital Research DOS Plus - CALL BDOS
  65550. AH = E0h
  65551. CL = BDOS function number (see #04019 at INT E0"CP/M-86")
  65552. other registers as appropriate for function
  65553. Return: as appropriate for function
  65554. SeeAlso: AX=4459h,INT E0"CP/M-86"
  65555. --------E-21E0-------------------------------
  65556. INT 21 - OS/286, OS/386 - INITIALIZE REAL PROCEDURE
  65557. AH = E0h
  65558. ???
  65559. Return: ???
  65560. SeeAlso: AH=E1h"OS/286"
  65561. --------T-21E0-------------------------------
  65562. INT 21 - DoubleDOS - MENU CONTROL
  65563. AH = E0h
  65564. AL = subfunction
  65565. 01h exchange tasks
  65566. 73h resume invisible job if suspended
  65567. 74h kill other job
  65568. 75h suspend invisible job
  65569. Note: identical to AH=F0h
  65570. SeeAlso: AH=F0h"DoubleDOS"
  65571. --------v-21E0-------------------------------
  65572. INT 21 - VIRUS - "Jerusalem", "Armagedon" - INSTALLATION CHECK
  65573. AH = E0h
  65574. Return: AX = 0300h if "Jerusalem" resident
  65575. AX = DADAh if "Armagedon" resident
  65576. SeeAlso: AH=DEh"VIRUS",AX=DEDEh"VIRUS",AX=E00Fh
  65577. --------N-21E0-------------------------------
  65578. INT 21 - Novell NetWare, Alloy NTNX - PRINT SPOOLING
  65579. AH = E0h
  65580. DS:SI -> request buffer (see #01814)
  65581. ES:DI -> reply buffer
  65582. Return: AL = status
  65583. Note: this function was added in NetWare 4.0, but is no longer listed in
  65584. current Novell documentation and may no longer be supported
  65585. SeeAlso: AH=E3h/SF=68h,AX=F211h/SF=06h,AX=F211h/SF=0Ah
  65586. Format of NetWare print spooling request buffer:
  65587. Offset Size Description (Table 01814)
  65588. 00h WORD length of following data
  65589. 02h BYTE subfunction
  65590. 00h spool data to a capture file
  65591. 01h close and queue capture file
  65592. 02h set spool flags
  65593. 03h spool existing file
  65594. 04h get spool queue entry
  65595. 05h remove entry from spool queue
  65596. 03h ???
  65597. SeeAlso: #02101
  65598. --------N-21E0--SF06-------------------------
  65599. INT 21 - Novell NetWare - PRINT SERVICES - GET PRINTER STATUS
  65600. AH = E0h subfn 06h
  65601. DS:SI -> request buffer (see #01815)
  65602. ES:DI -> reply buffer (see #01816)
  65603. Return: AL = status
  65604. 00h successful
  65605. FFh no such printer
  65606. Desc: get current state of specified printer attached to the server
  65607. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  65608. Alloy NTNX
  65609. Format of NetWare "Get Printer Status" request buffer:
  65610. Offset Size Description (Table 01815)
  65611. 00h WORD 0002h (length of following data)
  65612. 02h BYTE 06h (subfunction "Get Printer Status")
  65613. 03h BYTE printer number (00h-04h)
  65614. SeeAlso: #01816
  65615. Format of NetWare "Get Printer Status" reply buffer:
  65616. Offset Size Description (Table 01816)
  65617. 00h WORD (call) 0004h (size of following results buffer)
  65618. 02h BYTE flag: 00h printer active, FFh printer halted
  65619. 03h BYTE flag: 00h printer online, 01h printer offline
  65620. 04h BYTE current form type
  65621. 05h BYTE target printer number (00h-04h)
  65622. same as number in request buffer unless rerouted by server
  65623. console
  65624. SeeAlso: #01815
  65625. --------N-21E0--SF09-------------------------
  65626. INT 21 - Novell NetWare - PRINT SERVICES - SPECIFY CAPTURE FILE
  65627. AH = E0h subfn 09h
  65628. DS:SI -> request buffer (see #01817)
  65629. ES:DI -> reply buffer (see #01818)
  65630. Return: AL = status
  65631. 00h successful
  65632. 9Ch invalid path
  65633. Desc: create a permanent capture file for the next print capture to be
  65634. started
  65635. Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  65636. Alloy NTNX
  65637. the caller must have read, write, and create rights for the directory
  65638. containing the capture file
  65639. Format of NetWare "Specify Capture File" request buffer:
  65640. Offset Size Description (Table 01817)
  65641. 00h WORD length of following data (max 102h)
  65642. 02h BYTE 09h (subfunction "Specify Capture File")
  65643. 03h BYTE directory handle or 00h
  65644. 04h BYTE length of filename
  65645. 05h N BYTEs name of capture file
  65646. SeeAlso: #01818
  65647. Format of NetWare reply buffer:
  65648. Offset Size Description (Table 01818)
  65649. 00h WORD (call) 0000h (no results returned)
  65650. SeeAlso: #01817
  65651. --------v-21E00F-----------------------------
  65652. INT 21 - VIRUS - "8-tunes" - INSTALLATION CHECK
  65653. AX = E00Fh
  65654. Return: AX = 4C31h if resident
  65655. SeeAlso: AH=E0h"VIRUS",AH=E1h"VIRUS"
  65656. --------E-21E1-------------------------------
  65657. INT 21 - OS/286, OS/386 - ISSUE REAL PROCEDURE CALL
  65658. AH = E1h
  65659. ???
  65660. Return: ???
  65661. Note: protected mode only???
  65662. SeeAlso: AH=E0h"OS/286",AH=E2h"OS/286",AH=E3h"OS/286",AX=250Eh,INT 31/AX=0301h
  65663. --------T-21E1-------------------------------
  65664. INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB
  65665. AH = E1h
  65666. SeeAlso: AH=E2h"DoubleDOS",AH=E3h"DoubleDOS",AH=E8h"DoubleDOS"
  65667. SeeAlso: AH=F1h"DoubleDOS"
  65668. --------v-21E1-------------------------------
  65669. INT 21 - VIRUS - "Mendoza", "Fu Manchu" - INSTALLATION CHECK
  65670. AH = E1h
  65671. Return: AX = 0300h if "Mendoza" resident
  65672. AX = 0400h if "Fu Manchu" resident
  65673. SeeAlso: AX=E00Fh,AH=E4h"VIRUS"
  65674. --------N-21E1--SF00-------------------------
  65675. INT 21 - Novell NetWare - MESSAGE SERVICES - SEND BROADCAST MESSAGE
  65676. AH = E1h subfn 00h
  65677. DS:SI -> request buffer (see #01819)
  65678. ES:DI -> reply buffer (see #01820)
  65679. Return: AL = status
  65680. 00h successful
  65681. FEh I/O error or out of dynamic workspace
  65682. Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  65683. SeeAlso: AH=DEh"NetWare",AH=DEh/DL=04h,AH=E1h/SF=01h,AH=E1h/SF=04h
  65684. SeeAlso: AH=E1h/SF=09h
  65685. Format of NetWare "Send Broadcast Message" request buffer:
  65686. Offset Size Description (Table 01819)
  65687. 00h WORD length of following data (max 9Eh)
  65688. 02h BYTE 00h (subfunction "Send Broadcast Message")
  65689. 03h BYTE number of connections (01h-64h)
  65690. 04h N BYTEs list of connections to receive broadcast message
  65691. BYTE length of message (01h-37h)
  65692. N BYTEs broadcast message (no control characters or characters > 7Eh)
  65693. SeeAlso: #01820
  65694. Format of NetWare "Send Broadcast Message" reply buffer:
  65695. Offset Size Description (Table 01820)
  65696. 00h WORD (call) size of following results buffer (max 65h)
  65697. 02h BYTE number of connections
  65698. 03h N BYTEs list of per-connection results
  65699. 00h successful
  65700. FCh message rejected due to lack of buffer space
  65701. FDh invalid connection number
  65702. FFh blocked (see also AH=E1h/SF=02h)
  65703. SeeAlso: #01819
  65704. --------N-21E1--SF01-------------------------
  65705. INT 21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MESSAGE (OLD)
  65706. AH = E1h subfn 01h
  65707. DS:SI -> request buffer (see #01821)
  65708. ES:DI -> reply buffer (see #01822)
  65709. Return: AL = status
  65710. 00h successful
  65711. FCh full message queue
  65712. FEh out of dynamic workspace
  65713. Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  65714. SeeAlso: AH=DEh/DL=04h,AH=E1h/SF=00h,AH=E1h/SF=05h,AH=E1h/SF=09h
  65715. SeeAlso: AX=F215h/SF=01h,AX=F215h/SF=0Bh
  65716. Format of NetWare "Get Broadcast Message" request buffer:
  65717. Offset Size Description (Table 01821)
  65718. 00h WORD 0001h (length of following data)
  65719. 02h BYTE 01h (subfunction "Get Broadcast Message")
  65720. SeeAlso: #01822,#02109
  65721. Format of NetWare "Get Broadcast Message" reply buffer:
  65722. Offset Size Description (Table 01822)
  65723. 00h WORD (call) size of following results buffer (max 38h)
  65724. 02h BYTE length of message (00h-37h)
  65725. 00h if no broadcast messages pending
  65726. 03h N BYTEs message (no control characters or characters > 7Eh)
  65727. SeeAlso: #01821,#02107,#02110
  65728. --------N-21E1--SF02-------------------------
  65729. INT 21 - Novell NetWare - MESSAGE SERVICES - DISABLE BROADCAST MESSAGES
  65730. AH = E1h subfn 02h
  65731. DS:SI -> request buffer (see #01824)
  65732. ES:DI -> reply buffer (see #01825)
  65733. Return: AL = error code
  65734. Note: these functions are supported by NetWare 4.0+ but are not listed in
  65735. _NetWare_System_Calls--DOS_; they may be obsolete
  65736. SeeAlso: AH=E1h/SF=00h,AH=E1h/SF=03h,AH=E1h/SF=04h,AH=E1h/SF=09h
  65737. SeeAlso: AX=F215h/SF=02h
  65738. Format of NetWare "Disable Broadcasts" request packet:
  65739. Offset Size Description (Table 01823)
  65740. 00h WORD 0001h (length of following data)
  65741. 02h BYTE 02h (subfunction "Enable Broadcast Messages")
  65742. SeeAlso: #01824,#01825
  65743. --------N-21E1--SF03-------------------------
  65744. INT 21 - Novell NetWare - MESSAGE SERVICES - ENABLE BROADCAST MESSAGES
  65745. AH = E1h subfn 03h
  65746. DS:SI -> request buffer (see #01824)
  65747. ES:DI -> reply buffer (see #01825)
  65748. Return: AL = error code
  65749. Note: these functions are supported by NetWare 4.0+ but are not listed in
  65750. _NetWare_System_Calls--DOS_; they may be obsolete
  65751. SeeAlso: AH=E1h/SF=00h,AH=E1h/SF=02h,AH=E1h/SF=04h,AH=E1h/SF=09h
  65752. SeeAlso: AX=F215h/SF=03h
  65753. Format of NetWare "Enable Broadcast Messages" request buffer:
  65754. Offset Size Description (Table 01824)
  65755. 00h WORD 0001h (length of following data)
  65756. 02h BYTE 03h (subfunction "Enable Broadcast Messages")
  65757. SeeAlso: #01825,#01823
  65758. Format of NetWare "Enable/Disable Broadcast Messages" reply buffer:
  65759. Offset Size Description (Table 01825)
  65760. 00h WORD (call) 0000h (no data returned)
  65761. SeeAlso: #01824,#01823
  65762. --------N-21E1--SF04-------------------------
  65763. INT 21 O - Novell NetWare - MESSAGE SERVICES - SEND PERSONAL MESSAGE
  65764. AH = E1h subfn 04h
  65765. DS:SI -> request buffer (see #01826)
  65766. ES:DI -> reply buffer (see #01827)
  65767. Return: AL = status
  65768. 00h successful
  65769. FEh I/O error or out of dynamic workspace
  65770. Notes: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x
  65771. message pipes use CPU time on the file server; IPX, SPX, or NetBIOS
  65772. connections should be used for peer-to-peer communications as these
  65773. protocols do not use file server time
  65774. SeeAlso: AH=E1h/SF=00h,AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=08h
  65775. Format of NetWare "Send Personal Message" request buffer:
  65776. Offset Size Description (Table 01826)
  65777. 00h WORD length of following data (max E5h)
  65778. 02h BYTE 04h (subfunction "Send Personal Message")
  65779. 03h BYTE number of connections (01h-64h)
  65780. 04h N BYTEs list of connections to receive broadcast message
  65781. BYTE length of message (01h-7Eh)
  65782. N BYTEs message (no control characters or characters > 7Eh)
  65783. SeeAlso: #01827
  65784. Format of NetWare "Send Personal Message" reply buffer:
  65785. Offset Size Description (Table 01827)
  65786. 00h WORD (call) size of following results buffer (max 65h)
  65787. 02h BYTE number of connections
  65788. 03h N BYTEs list of per-connection results
  65789. 00h successful
  65790. FCh message rejected because queue is full (contains 6 msgs)
  65791. FDh incomplete pipe
  65792. FFh failed
  65793. SeeAlso: #01826
  65794. --------N-21E1--SF05-------------------------
  65795. INT 21 O - Novell NetWare - MESSAGE SERVICES - GET PERSONAL MESSAGE
  65796. AH = E1h subfn 05h
  65797. DS:SI -> request buffer (see #01828)
  65798. ES:DI -> reply buffer (see #01829)
  65799. Return: AL = status
  65800. 00h successful
  65801. FEh out of dynamic workspace
  65802. Desc: return the oldest message in the default file server's message queue
  65803. for the calling workstation
  65804. Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x
  65805. SeeAlso: AH=E1h/SF=01h,AH=E1h/SF=04h,AH=E1h/SF=06h,AH=E1h/SF=08h
  65806. Format of NetWare "Get Personal Message" request buffer:
  65807. Offset Size Description (Table 01828)
  65808. 00h WORD 0001h (length of following data)
  65809. 02h BYTE 05h (subfunction "Get Personal Message")
  65810. SeeAlso: #01829
  65811. Format of NetWare "Get Personal Message" reply buffer:
  65812. Offset Size Description (Table 01829)
  65813. 00h WORD (call) size of following results buffer (max 80h)
  65814. 02h BYTE connection number of sending station
  65815. 03h BYTE length of message (00h-7Eh)
  65816. 00h if no personal messages pending
  65817. 04h N BYTEs message (no control characters or characters > 7Eh)
  65818. SeeAlso: #01828
  65819. --------N-21E1--SF06-------------------------
  65820. INT 21 O - Novell NetWare - MESSAGE SERVICES - OPEN MESSAGE PIPE
  65821. AH = E1h subfn 06h
  65822. DS:SI -> request buffer (see #01830)
  65823. ES:DI -> reply buffer (see #01831)
  65824. Return: AL = status
  65825. 00h successful
  65826. FEh out of dynamic workspace
  65827. Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x
  65828. SeeAlso: AH=E1h/SF=04h,AH=E1h/SF=07h,AH=E1h/SF=08h
  65829. Format of NetWare "Open Message Pipe" request buffer:
  65830. Offset Size Description (Table 01830)
  65831. 00h WORD length of following data (max 66h)
  65832. 02h BYTE 06h (subfunction "Open Message Pipe")
  65833. 03h BYTE number of pipes to open (01h-64h)
  65834. 04h N BYTEs list of connection numbers
  65835. SeeAlso: #01831,#01832,#01835
  65836. Format of NetWare "Open Message Pipe" reply buffer:
  65837. Offset Size Description (Table 01831)
  65838. 00h WORD (call) size of following results buffer (max 65h)
  65839. 02h BYTE number of connections
  65840. 03h N BYTEs list of results
  65841. 00h successful
  65842. FEh incomplete (target half not yet created)
  65843. FFh failed
  65844. SeeAlso: #01830,#01833,#01836
  65845. --------N-21E1--SF07-------------------------
  65846. INT 21 O - Novell NetWare - MESSAGE SERVICES - CLOSE MESSAGE PIPE
  65847. AH = E1h subfn 07h
  65848. DS:SI -> request buffer (see #01832)
  65849. ES:DI -> reply buffer (see #01833)
  65850. Return: AL = status
  65851. 00h successful
  65852. FCh full message queue
  65853. FEh out of dynamic workspace
  65854. Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x
  65855. SeeAlso: AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=08h
  65856. Format of NetWare "Close Mesage Pipe" request buffer:
  65857. Offset Size Description (Table 01832)
  65858. 00h WORD length of following data (max 66h)
  65859. 02h BYTE 07h (subfunction "Close Message Pipe")
  65860. 03h BYTE number of pipes to close (01h-64h)
  65861. 04h N BYTEs list of connection numbers
  65862. SeeAlso: #01830,#01833
  65863. Format of NetWare "Close Message Pipe" reply buffer:
  65864. Offset Size Description (Table 01833)
  65865. 00h WORD (call) size of following results buffer (max 65h)
  65866. 02h BYTE number of connections
  65867. 03h N BYTEs list of results
  65868. 00h successful
  65869. FDh failed
  65870. FFh no such pipe
  65871. SeeAlso: #01831,#01832
  65872. --------N-21E1--SF08-------------------------
  65873. INT 21 O - Novell NetWare - MESSAGE SERVICES - CHECK PIPE STATUS
  65874. AH = E1h subfn 08h
  65875. DS:SI -> request buffer (see #01835)
  65876. ES:DI -> reply buffer (see #01836)
  65877. Return: AL = status (see #01834)
  65878. Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x
  65879. SeeAlso: AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=07h,AX=F215h/SF=08h
  65880. (Table 01834)
  65881. Values for NetWare function status:
  65882. 00h successful
  65883. FCh full message queue
  65884. FEh out of dynamic workspace
  65885. SeeAlso: #01839
  65886. Format of NetWare "Check Pipe Status" request buffer:
  65887. Offset Size Description (Table 01835)
  65888. 00h WORD length of following data (max 66h)
  65889. 02h BYTE 08h (subfunction "Check Pipe Status")
  65890. 03h BYTE number of pipes to monitor (01h-64h)
  65891. 04h N BYTEs list of connection numbers
  65892. SeeAlso: #01830,#01836
  65893. Format of NetWare "Check Pipe Status" reply buffer:
  65894. Offset Size Description (Table 01836)
  65895. 00h WORD (call) size of following results buffer (max 65h)
  65896. 02h BYTE number of connections
  65897. 03h N BYTEs list of pipe statuses
  65898. 00h open
  65899. FEh incomplete
  65900. FFh closed
  65901. SeeAlso: #01831,#01835,#02108
  65902. --------N-21E1--SF09-------------------------
  65903. INT 21 - Novell NetWare - MESSAGE SERVICES - BROADCAST TO CONSOLE
  65904. AH = E1h subfn 09h
  65905. DS:SI -> request buffer (see #01837)
  65906. ES:DI -> reply buffer (see #01838)
  65907. Return: AL = status (see #01834)
  65908. Desc: send a one-line message to the system console on the default file
  65909. server
  65910. Note: this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  65911. SeeAlso: AH=DEh/DL=04h,AH=E1h/SF=00h,AH=E1h/SF=01h,AH=E3h/SF=D1h
  65912. SeeAlso: AX=F215h/SF=09h
  65913. Format of NetWare "Broadcast to Console" request buffer:
  65914. Offset Size Description (Table 01837)
  65915. 00h WORD length of following data (max 3Eh)
  65916. 02h BYTE 09h (subfunction "Broadcast to Console")
  65917. 03h BYTE length of message (01h-3Ch)
  65918. 04h N BYTEs message (no control characters or characters > 7Eh)
  65919. SeeAlso: #01838
  65920. Format of NetWare reply buffer:
  65921. Offset Size Description (Table 01838)
  65922. 00h WORD (call) 0000h (no results returned)
  65923. SeeAlso: #01837
  65924. --------E-21E2-------------------------------
  65925. INT 21 - OS/286, OS/386 - SET REAL PROCEDURE SIGNAL HANDLER
  65926. AH = E2h
  65927. ???
  65928. Return: ???
  65929. SeeAlso: AH=E0h"OS/286",AH=E1h"OS/286",AH=E6h"OS/286"
  65930. --------N-21E2-------------------------------
  65931. INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB
  65932. AH = E2h
  65933. AL = character
  65934. Return: AL = 00h successful
  65935. 01h buffer full (128 characters)
  65936. SeeAlso: AH=E1h"DoubleDOS",AH=E3h"DoubleDOS",AH=E8h"DoubleDOS"
  65937. SeeAlso: AH=F2h"DoubleDOS"
  65938. --------N-21E2--SF00-------------------------
  65939. INT 21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY HANDLE
  65940. AH = E2h subfn 00h
  65941. DS:SI -> request buffer (see #01840)
  65942. ES:DI -> reply buffer (see #01841)
  65943. Return: AL = status (00h,98h,9Bh,9Ch) (see #01839)
  65944. Desc: set the target handle to reference the directory specified by the
  65945. source handle and the source path; both handles must refer to the
  65946. same file server
  65947. Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  65948. Alloy NTNX
  65949. the target handle is not changed if this function fails
  65950. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=12h,AH=E2h/SF=13h,AX=F216h/SF=00h
  65951. (Table 01839)
  65952. Values for NetWare function status:
  65953. 00h successful
  65954. 84h not permitted to create
  65955. 8Ah not permitted to delete
  65956. 8Bh not permitted to rename
  65957. 8Ch not permitted to modify
  65958. 98h nonexistent volume
  65959. 9Bh invalid directory handle
  65960. 9Ch invalid path
  65961. 9Eh invalid filename
  65962. 9Fh directory currently in use
  65963. A0h directory not empty
  65964. C6h no console rights
  65965. FCh no such bindery object
  65966. SeeAlso: #01834,#01866
  65967. Format of NetWare "Set Directory Handle" request buffer:
  65968. Offset Size Description (Table 01840)
  65969. 00h WORD length of following data (max 103h)
  65970. 02h BYTE 00h (subfunction "Set Directory Handle")
  65971. 03h BYTE directory handle of target
  65972. 04h BYTE directory handle of source
  65973. 05h BYTE length of source directory path (01h-FFh)
  65974. 06h N BYTEs source directory path
  65975. SeeAlso: #01841
  65976. Format of NetWare reply buffer:
  65977. Offset Size Description (Table 01841)
  65978. 00h WORD (call) 0000h (no results returned)
  65979. SeeAlso: #01840
  65980. --------N-21E2--SF01-------------------------
  65981. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY PATH
  65982. AH = E2h subfn 01h
  65983. DS:SI -> request buffer (see #01842)
  65984. ES:DI -> reply buffer (see #01843)
  65985. Return: AL = status (00h,9Bh) (see #01839)
  65986. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  65987. Alloy NTNX
  65988. SeeAlso: AH=E2h/SF=02h,AH=E2h/SF=03h,AH=E2h/SF=1Ah,AH=E9h,AX=F216h/SF=01h
  65989. Format of NetWare "Get Directory Path" request buffer:
  65990. Offset Size Description (Table 01842)
  65991. 00h WORD 0002h (length of following data)
  65992. 02h BYTE 01h (subfunction "Get Directory Path")
  65993. 03h BYTE directory handle
  65994. SeeAlso: #01843,#01844
  65995. Format of NetWare "Get Directory Path" reply buffer:
  65996. Offset Size Description (Table 01843)
  65997. 00h WORD (call) length of following data buffer
  65998. 02h BYTE length of directory path (01h-FFh)
  65999. 03h N BYTEs full directory path including volume
  66000. SeeAlso: #01842,#01845
  66001. --------N-21E2--SF02-------------------------
  66002. INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY INFORMATION
  66003. AH = E2h subfn 02h
  66004. DS:SI -> request buffer (see #01844)
  66005. ES:DI -> reply buffer (see #01845)
  66006. Return: AL = status (00h,98h,9Bh,9Ch) (see #01839)
  66007. Desc: get information about the first or next subdirectory of the specified
  66008. directory
  66009. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66010. Alloy NTNX
  66011. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=03h,AH=E2h/SF=19h,AX=F216h/SF=02h
  66012. Format of NetWare "Scan Directory Information" request buffer:
  66013. Offset Size Description (Table 01844)
  66014. 00h WORD length of following data (max 104h)
  66015. 02h BYTE 02h (subfunction "Scan Directory Information")
  66016. 03h BYTE directory handle
  66017. 04h WORD (big-endian) subdirectory number
  66018. 0000h for first call, returned subdir number + 1 on next call
  66019. 06h BYTE length of directory path
  66020. 07h N BYTEs directory path
  66021. SeeAlso: #01842,#01845
  66022. Format of NetWare "Scan Directory Information" reply buffer:
  66023. Offset Size Description (Table 01845)
  66024. 00h WORD (call) 001Ch (length of following data buffer)
  66025. 02h 16 BYTEs subdirectory name
  66026. 12h DWORD (big-endian) date and time of creation (see #01846)
  66027. 16h DWORD (big-endian) object ID of owner
  66028. 1Ah BYTE maximum directory rights (see #01849)
  66029. 1Bh BYTE unused
  66030. 1Ch WORD (big-endian) subdirectory number
  66031. SeeAlso: #01843,#01844,#02111 at AX=F216h/SF=02h
  66032. Bitfields for NetWare date and time:
  66033. Bit(s) Description (Table 01846)
  66034. 31-25 year-1980
  66035. 24-21 month
  66036. 20-16 day
  66037. 15-11 hour
  66038. 10-5 minute
  66039. 4-0 second
  66040. --------N-21E2--SF03-------------------------
  66041. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET EFFECTIVE DIRECTORY RIGHTS
  66042. AH = E2h subfn 03h
  66043. DS:SI -> request buffer (see #01847)
  66044. ES:DI -> reply buffer (see #01848)
  66045. Return: AL = status (00h,98h,9Bh) (see #01839)
  66046. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66047. Alloy NTNX
  66048. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=02h,AX=F216h/SF=03h
  66049. Format of NetWare "Get Effective Directory Rights (old)" request buffer:
  66050. Offset Size Description (Table 01847)
  66051. 00h WORD length of following data (max 102h)
  66052. 02h BYTE 03h (subfunction "Get Effective Directory Rights (old)")
  66053. 03h BYTE directory handle
  66054. 04h BYTE length of directory path (00h-FFh)
  66055. 05h N BYTEs directory path
  66056. SeeAlso: #01848,#01850
  66057. Format of NetWare "Get Effective Directory Rights" reply buffer:
  66058. Offset Size Description (Table 01848)
  66059. 00h WORD (call) 0001h (length of following data buffer)
  66060. 02h BYTE effective directory rights (see #01849)
  66061. SeeAlso: #01847
  66062. Bitfields for NetWare directory rights:
  66063. Bit(s) Description (Table 01849)
  66064. 0 reading allowed
  66065. 1 writing allowed
  66066. 2 opens allowed
  66067. 3 file creation allowed
  66068. 4 deletion allowed
  66069. 5 "parental" may create/delete subdirectories and grant/revoke trustee
  66070. rights
  66071. 6 directory search allowed
  66072. 7 file attributes may be changed
  66073. SeeAlso: #01848,#01850
  66074. --------N-21E2--SF04-------------------------
  66075. INT 21 - Novell NetWare - DIRECTORY SERVICES - MODIFY MAXIMUM RIGHTS MASK
  66076. AH = E2h subfn 04h
  66077. DS:SI -> request buffer (see #01850)
  66078. ES:DI -> reply buffer (see #01851)
  66079. Return: AL = status (00h,8Ch,98h,9Ch) (see #01839)
  66080. Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66081. Alloy NTNX
  66082. SeeAlso: AH=E2h/SF=03h,AH=E2h/SF=0Ah,AH=E2h/SF=0Dh,AX=F216h/SF=04h
  66083. Format of NetWare "Modify Maximum Rights Mask" request buffer:
  66084. Offset Size Description (Table 01850)
  66085. 00h WORD length of following data (max 104h)
  66086. 02h BYTE 04h (subfunction "Modify Maximum Rights Mask")
  66087. 03h BYTE directory handle
  66088. 04h BYTE rights to grant (see #01849)
  66089. 05h BYTE rights to revoke (see #01849)
  66090. 06h BYTE length of directory path (00h-FFh)
  66091. 07h N BYTEs directory path
  66092. Note: the rights specified at offset 05h are revoked first, and then the
  66093. rights specified at offset 04h are added to the resulting rights
  66094. mask
  66095. SeeAlso: #01847,#01851
  66096. Format of NetWare reply buffer:
  66097. Offset Size Description (Table 01851)
  66098. 00h WORD (call) 0000h (no results returned)
  66099. SeeAlso: #01850
  66100. --------N-21E2--SF05-------------------------
  66101. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NUMBER
  66102. AH = E2h subfn 05h
  66103. DS:SI -> request buffer (see #01852)
  66104. ES:DI -> reply buffer (see #01853)
  66105. Return: AL = status (00h,98h) (see #01839)
  66106. Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66107. Alloy NTNX
  66108. SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=05h,AH=E2h/SF=15h,AH=E3h/SF=E9h
  66109. SeeAlso: AX=F216h/SF=05h
  66110. Format of NetWare "Get Volume Number" request buffer:
  66111. Offset Size Description (Table 01852)
  66112. 00h WORD length of following data (max 12h)
  66113. 02h BYTE 05h (subfunction "Get Volume Number")
  66114. 03h BYTE length of volume name (01h-10h)
  66115. 04h N BYTEs volume name
  66116. SeeAlso: #01853,#02113 at AX=F216h/SF=05h
  66117. Format of NetWare "Get Volume Number" reply buffer:
  66118. Offset Size Description (Table 01853)
  66119. 00h WORD (call) 0001h (length of following results buffer)
  66120. 02h BYTE volume number
  66121. SeeAlso: #01852,#02113 at AX=F216h/SF=05h
  66122. --------N-21E2--SF06-------------------------
  66123. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NAME
  66124. AH = E2h subfn 06h
  66125. DS:SI -> request buffer (see #01854)
  66126. ES:DI -> reply buffer (see #01855)
  66127. Return: AL = status (00h,98h) (see #01839)
  66128. Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66129. Alloy NTNX
  66130. SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=05h,AH=E2h/SF=15h,AH=E2h/SF=1Ah
  66131. SeeAlso: AH=E3h/SF=E9h,AX=F216h/SF=06h
  66132. Format of NetWare "Get Volume Name" request buffer:
  66133. Offset Size Description (Table 01854)
  66134. 00h WORD 0002h (length of following data)
  66135. 02h BYTE 06h (subfunction "Get Volume Name")
  66136. 03h BYTE volume number
  66137. SeeAlso: #01855,#02114 at AX=F216h/SF=06h
  66138. Format of NetWare "Get Volume Name" reply buffer:
  66139. Offset Size Description (Table 01855)
  66140. 00h WORD (call) 0011h (length of following results buffer)
  66141. 02h BYTE length of volume name
  66142. 03h 16 BYTEs NUL-padded volume name
  66143. SeeAlso: #01854,#02114 at AX=F216h/SF=06h
  66144. --------N-21E2--SF0A-------------------------
  66145. INT 21 - Novell NetWare - DIRECTORY SERVICES - CREATE DIRECTORY
  66146. AH = E2h subfn 0Ah
  66147. DS:SI -> request buffer (see #01856)
  66148. ES:DI -> reply buffer (see #01857)
  66149. Return: AL = status (00h,84h,98h,FCh) (see #01839)
  66150. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66151. Alloy NTNX
  66152. SeeAlso: AH=39h,AH=E2h/SF=0Bh,AH=E2h/SF=0Fh,AX=F216h/SF=0Ah
  66153. Format of NetWare "Create Directory" request buffer:
  66154. Offset Size Description (Table 01856)
  66155. 00h WORD length of following data (max 103h)
  66156. 02h BYTE 0Ah (subfunction "Create Directory")
  66157. 03h BYTE directory handle
  66158. 04h BYTE maximum directory rights (see #01849)
  66159. 05h BYTE length of directory path (00h-FFh)
  66160. 06h N BYTEs directory path
  66161. SeeAlso: #01857,#01858
  66162. Format of NetWare reply buffer:
  66163. Offset Size Description (Table 01857)
  66164. 00h WORD (call) 0000h (no data returned)
  66165. SeeAlso: #01856,#01858
  66166. --------N-21E2--SF0B-------------------------
  66167. INT 21 - Novell NetWare - DIRECTORY SERVICES - DELETE DIRECTORY
  66168. AH = E2h subfn 0Bh
  66169. DS:SI -> request buffer (see #01858)
  66170. ES:DI -> reply buffer (see #01857)
  66171. Return: AL = status (00h,8Ah,98h,9Bh,9Ch,9Fh,A0h) (see #01839)
  66172. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66173. Alloy NTNX
  66174. SeeAlso: AH=3Ah,AH=E2h/SF=0Ah,AH=E2h/SF=0Fh,AX=F216h/SF=0Bh
  66175. Format of NetWare "Delete Directory" request buffer:
  66176. Offset Size Description (Table 01858)
  66177. 00h WORD length of following data (max 103h)
  66178. 02h BYTE 0Bh (subfunction "Delete Directory")
  66179. 03h BYTE directory handle
  66180. 04h BYTE unused
  66181. 05h BYTE length of directory path (00h-FFh)
  66182. 06h N BYTEs directory path
  66183. SeeAlso: #01856,#01857
  66184. --------N-21E2--SF0C-------------------------
  66185. INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY FOR TRUSTEES
  66186. AH = E2h subfn 0Ch
  66187. DS:SI -> request buffer (see #01859)
  66188. ES:DI -> reply buffer (see #01860)
  66189. Return: AL = status (00h,9Ch) (see also #01839)
  66190. 9Ch no more trustees
  66191. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  66192. SeeAlso: AH=E2h/SF=0Dh,AH=E2h/SF=0Eh,AH=E3h/SF=47h,AX=F216h/SF=0Ch
  66193. Format of NetWare "Scan Directory For Trustees" request buffer:
  66194. Offset Size Description (Table 01859)
  66195. 00h WORD length of following data (max 103h)
  66196. 02h BYTE 0Ch (subfunction "Scan Directory For Trustees")
  66197. 03h BYTE directory handle
  66198. 04h BYTE sequence number
  66199. 00h on first call, increment for each subsequent call
  66200. 05h BYTE length of directory path (00h-FFh)
  66201. 06h N BYTEs directory path
  66202. SeeAlso: #01860,#01861,#02115 at AX=F216h/SF=0Ch
  66203. Format of NetWare "Scan Directory For Trustees" reply buffer:
  66204. Offset Size Description (Table 01860)
  66205. 00h WORD (call) 0031h (length of following results buffer)
  66206. 02h 16 BYTEs directory name
  66207. 12h 4 BYTEs date and time of creation
  66208. 16h DWORD (big-endian) object ID of owner
  66209. 1Ah 5 DWORDs (big-endian) object IDs of Trustees 0 through 4
  66210. 00000000h = end of group
  66211. 2Eh 5 BYTEs directory rights for Trustees 0 through 4 (see #01849)
  66212. SeeAlso: #01859,#01863,#02115 at AX=F216h/SF=0Ch
  66213. --------N-21E2--SF0D-------------------------
  66214. INT 21 - Novell NetWare - DIRECTORY SERVICES - ADD TRUSTEE TO DIRECTORY
  66215. AH = E2h subfn 0Dh
  66216. DS:SI -> request buffer (see #01861)
  66217. ES:DI -> reply buffer (see #01863)
  66218. Return: AL = status (00h,8Ch,FCh) (see #01839)
  66219. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66220. Alloy NTNX
  66221. SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Eh,AH=E3h/SF=47h,AX=F216h/SF=0Dh
  66222. Format of NetWare "Add Trustee To Directory" request buffer:
  66223. Offset Size Description (Table 01861)
  66224. 00h WORD length of following data (max 107h)
  66225. 02h BYTE 0Dh (subfunction "Add Trustee To Directory")
  66226. 03h BYTE directory handle
  66227. 04h DWORD (big-endian) object ID of trustee
  66228. 08h BYTE trustee directory rights (see #01849)
  66229. 09h BYTE length of directory path (00h-FFh)
  66230. 0Ah N BYTEs directory path
  66231. SeeAlso: #01863
  66232. --------N-21E2--SF0E-------------------------
  66233. INT 21 - Novell NetWare - DIRECTORY SERVICES - DELETE TRUSTEE FROM DIRECTORY
  66234. AH = E2h subfn 0Eh
  66235. DS:SI -> request buffer (see #01862)
  66236. ES:DI -> reply buffer (see #01863)
  66237. Return: AL = status (00h,98h,9Bh,9Ch) (see #01839)
  66238. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66239. Alloy NTNX
  66240. SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Dh,AX=F216h/SF=0Eh
  66241. Format of NetWare "Delete Trustee From Directory" request buffer:
  66242. Offset Size Description (Table 01862)
  66243. 00h WORD length of following data (max 107h)
  66244. 02h BYTE 0Eh (subfunction "Delete Trustee From Directory")
  66245. 03h BYTE directory handle
  66246. 04h DWORD (big-endian) object ID of trustee
  66247. 08h BYTE unused
  66248. 09h BYTE length of directory path (00h-FFh)
  66249. 0Ah N BYTEs directory path
  66250. SeeAlso: #01863
  66251. Format of NetWare reply buffer:
  66252. Offset Size Description (Table 01863)
  66253. 00h WORD (call) 0000h (no data returned)
  66254. SeeAlso: #01862,#01864,#01865
  66255. --------N-21E2--SF0F-------------------------
  66256. INT 21 - Novell NetWare - DIRECTORY SERVICES - RENAME DIRECTORY
  66257. AH = E2h subfn 0Fh
  66258. DS:SI -> request buffer (see #01864)
  66259. ES:DI -> reply buffer (see #01863)
  66260. Return: AL = status (00h,8Bh,9Bh,9Ch,9Eh) (see #01839)
  66261. Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66262. Alloy NTNX
  66263. directories SYS:LOGIN, SYS:MAIL, and SYS:PUBLIC must not be renamed
  66264. SeeAlso: AH=56h,AH=E2h/SF=0Ah,AH=E2h/SF=0Bh,AX=F216h/SF=0Fh
  66265. Format of NetWare "Rename Directory" request buffer:
  66266. Offset Size Description (Table 01864)
  66267. 00h WORD length of following data (max 111h)
  66268. 02h BYTE 0Fh (subfunction "Rename Directory")
  66269. 03h BYTE directory handle
  66270. 04h BYTE length of directory path (00h-FFh)
  66271. 05h N BYTEs directory path
  66272. BYTE length of new directory name (01h-0Eh)
  66273. N BYTEs new directory name
  66274. SeeAlso: #01863
  66275. --------N-21E2--SF10-------------------------
  66276. INT 21 - Novell NetWare - FILE SERVICES - PURGE ERASED FILES (OLD)
  66277. AH = E2h subfn 10h
  66278. DS:SI -> request buffer (see #01865)
  66279. ES:DI -> reply buffer (see #01863)
  66280. Return: AL = status (00h,C6h) (see #01866)
  66281. Desc: purges files marked for deletion on the file server by the calling
  66282. workstation
  66283. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66284. Alloy NTNX
  66285. SeeAlso: AH=13h,AH=41h,AH=E2h/SF=11h,AH=E3h/SF=CEh,AX=F244h,AX=F216h/SF=10h
  66286. Format of NetWare "Purge Erased Files" request buffer:
  66287. Offset Size Description (Table 01865)
  66288. 00h WORD 0001h (length of following data)
  66289. 02h BYTE 10h (subfunction "Purge Erased Files")
  66290. SeeAlso: #01863
  66291. --------N-21E2--SF11-------------------------
  66292. INT 21 - Novell NetWare - FILE SERVICES - RESTORE ERASED FILE (OLD)
  66293. AH = E2h subfn 11h
  66294. DS:SI -> request buffer (see #01867)
  66295. ES:DI -> reply buffer (see #01868)
  66296. Return: AL = status (00h,98h,FFh) (see #01866)
  66297. Desc: restores one file marked for deletion which has not yet been purged
  66298. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66299. Alloy NTNX
  66300. SeeAlso: AH=13h,AH=41h,AH=E2h/SF=10h,AH=E3h/SF=CEh,AX=F244h
  66301. (Table 01866)
  66302. Values for NetWare function status:
  66303. 00h successful
  66304. 98h nonexistent volume
  66305. 9Ch invalid path
  66306. C6h no console rights
  66307. FFh no more erased files
  66308. SeeAlso: #01839,#01899
  66309. Format of NetWare "Restore Erased File" request buffer:
  66310. Offset Size Description (Table 01867)
  66311. 00h WORD length of following data (max 13h)
  66312. 02h BYTE 11h (subfunction "Restore Erased File")
  66313. 03h BYTE directory handle or 00h
  66314. 04h BYTE length of volume name
  66315. 05h N BYTEs volume name (including colon)
  66316. Note: if both a directory handle and a volume name are specified, the volume
  66317. name overrides the handle
  66318. SeeAlso: #01868,#02116
  66319. Format of NetWare "Restore Erased File" reply buffer:
  66320. Offset Size Description (Table 01868)
  66321. 00h WORD (call) 001Eh (size of following results buffer)
  66322. 02h 15 BYTEs ASCIZ name of erased file
  66323. 11h 15 BYTEs ASCIZ name under which file was restored
  66324. SeeAlso: #01867,#02116
  66325. --------N-21E2--SF12-------------------------
  66326. INT 21 - Novell NetWare - DIRECTORY SERVICES - ALLOC PERMANENT DIRECTORY HANDLE
  66327. AH = E2h subfn 12h
  66328. DS:SI -> request buffer (see #01869)
  66329. ES:DI -> reply buffer (see #01870)
  66330. Return: AL = status (00h,98h,9Ch) (see #01866)
  66331. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66332. Alloy NTNX
  66333. SeeAlso: AH=E2h/SF=00h,AH=E2h/SF=13h,AH=E2h/SF=14h,AX=F216h/SF=12h
  66334. Format of NetWare "Allocate Permanent Directory Handle" request buffer:
  66335. Offset Size Description (Table 01869)
  66336. 00h WORD length of following data (max 103h)
  66337. 02h BYTE 12h (subfunction "Allocate Permanent Directory Handle")
  66338. 03h BYTE directory handle
  66339. 04h BYTE drive ('A'-'Z')
  66340. 05h BYTE length of directory path
  66341. 06h N BYTEs directory path
  66342. SeeAlso: #01870,#01871,#02118
  66343. Format of NetWare reply buffer:
  66344. Offset Size Description (Table 01870)
  66345. 00h WORD (call) 0002h (size of following results buffer)
  66346. 02h BYTE new directory handle
  66347. 03h BYTE effective directory rights (see #01849)
  66348. SeeAlso: #01869,#02118
  66349. --------N-21E2--SF13-------------------------
  66350. INT 21 - Novell NetWare - DIRECTORY SERVICES - ALLOC TEMPORARY DIRECTORY HANDLE
  66351. AH = E2h subfn 13h
  66352. DS:SI -> request buffer (see #01871)
  66353. ES:DI -> reply buffer (see #01870)
  66354. Return: AL = status (00h,98h,9Ch) (see #01866)
  66355. Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66356. Alloy NTNX
  66357. this call is the same as AH=E2h/SF=12h except that the directory handle
  66358. will be automatically deallocated when the calling application
  66359. executes an End of Job call (AH=D6h) or terminates
  66360. SeeAlso: AH=D6h,AH=E2h/SF=00h,AH=E2h/SF=12h,AH=E2h/SF=14h,AH=E2h/SF=16h
  66361. SeeAlso: AX=F216h/SF=13h
  66362. Format of NetWare "Allocate Temporary Directory Handle" request buffer:
  66363. Offset Size Description (Table 01871)
  66364. 00h WORD length of following data (max 103h)
  66365. 02h BYTE 13h (subfunction "Allocate Temporary Directory Handle")
  66366. 03h BYTE directory handle
  66367. 04h BYTE drive ('A'-'Z')
  66368. 05h BYTE length of directory path
  66369. 06h N BYTEs directory path
  66370. SeeAlso: #01869,#01872
  66371. --------N-21E2--SF14-------------------------
  66372. INT 21 - Novell NetWare - DIRECTORY SERVICES - DEALLOCATE DIRECTORY HANDLE
  66373. AH = E2h subfn 14h
  66374. DS:SI -> request buffer (see #01872)
  66375. ES:DI -> reply buffer (see #01873)
  66376. Return: AL = status (00h,9Bh) (see #01839)
  66377. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66378. Alloy NTNX
  66379. SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=13h,AX=F216h/SF=14h
  66380. Format of NetWare "Deallocate Directory Handle" request buffer:
  66381. Offset Size Description (Table 01872)
  66382. 00h WORD 0002h (length of following data)
  66383. 02h BYTE 14h (subfunction "Deallocate Directory Handle")
  66384. 03h BYTE directory handle
  66385. SeeAlso: #01873
  66386. Format of NetWare reply buffer:
  66387. Offset Size Description (Table 01873)
  66388. 00h WORD (call) 0000h (no returned data)
  66389. SeeAlso: #01872
  66390. --------N-21E2--SF15-------------------------
  66391. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH HANDLE
  66392. AH = E2h subfn 15h
  66393. DS:SI -> request buffer (see #01874)
  66394. ES:DI -> reply buffer (see #01875)
  66395. Return: AL = status
  66396. 00h successful
  66397. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66398. Alloy NTNX
  66399. SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=06h,AH=E2h/SF=19h,AH=E3h/SF=E9h
  66400. SeeAlso: AX=F216h/SF=15h
  66401. Format of NetWare "Get Volume Info with Handle" request buffer:
  66402. Offset Size Description (Table 01874)
  66403. 00h WORD 0002h (length of following data)
  66404. 02h BYTE 15h (subfunction "Get Volume Info With Handle")
  66405. 03h BYTE directory handle
  66406. SeeAlso: #01875,#02119
  66407. Format of NetWare "Get Volume Info with Handle" reply buffer:
  66408. Offset Size Description (Table 01875)
  66409. 00h WORD (call) 001Ch (length of following results buffer)
  66410. 02h WORD (big-endian) sectors per block
  66411. 04h WORD (big-endian) total blocks on volume
  66412. 06h WORD (big-endian) blocks available on volume
  66413. 08h WORD (big-endian) total directory slots
  66414. 0Ah WORD (big-endian) directory slots available
  66415. 0Ch 16 BYTEs NUL-padded volume name
  66416. 1Ch WORD (big-endian) flag: volume removable if nonzero
  66417. SeeAlso: #01874,#02119
  66418. --------N-21E2--SF16-------------------------
  66419. INT 21 u - Novell NetWare - DIRECTORY SERVICES - ALLOC SPECIAL TEMP DIR HANDLE
  66420. AH = E2h subfn 16h
  66421. DS:SI -> request buffer (see #01876)
  66422. ES:DI -> reply buffer (see #01873)
  66423. Return: AL = status
  66424. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX,
  66425. but is not described in _NetWare_System_Calls--DOS_
  66426. SeeAlso: AH=E2h/SF=13h,AH=E2h/SF=14h,AX=F216h/SF=16h
  66427. Format of NetWare "Alloc Special Temporary Directory Handle" request buffer:
  66428. Offset Size Description (Table 01876)
  66429. 00h WORD length of following data
  66430. 02h BYTE 16h (subfunction "Allocate Special Temporary Directory Handle")
  66431. 03h BYTE source directory handle
  66432. 04h BYTE drive name ('A'-'Z')
  66433. 05h BYTE path length
  66434. 06h N BYTEs directory path
  66435. SeeAlso: #01873
  66436. --------N-21E2--SF17-------------------------
  66437. INT 21 - Novell NetWare - DIRECTORY SERVICES - SAVE DIRECTORY HANDLE
  66438. AH = E2h subfn 17h
  66439. DS:SI -> request buffer (see #01877)
  66440. ES:DI -> reply buffer (see #01878)
  66441. Return: AL = status
  66442. 00h successful
  66443. else network error code
  66444. Note: this function is supported by Advanced NetWare 2.0+ and Alloy NTNX
  66445. SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=17h,AX=F216h/SF=17h
  66446. Format of NetWare "Save Directory Handle" request buffer:
  66447. Offset Size Description (Table 01877)
  66448. 00h WORD 0002h (length of following data)
  66449. 02h BYTE 17h (subfunction "Save Directory Handle")
  66450. 03h BYTE directory handle
  66451. SeeAlso: #01878,#01879
  66452. Format of NetWare "Save Directory Handle" reply buffer:
  66453. Offset Size Description (Table 01878)
  66454. 00h WORD (call) 0010h (length of following results buffer)
  66455. 02h 16 BYTEs save buffer
  66456. SeeAlso: #01877,#01880
  66457. --------N-21E2--SF18-------------------------
  66458. INT 21 - Novell NetWare - DIRECTORY SERVICES - RESTORE DIRECTORY HANDLE
  66459. AH = E2h subfn 18h
  66460. DS:SI -> request buffer (see #01879)
  66461. ES:DI -> reply buffer (see #01880)
  66462. Return: AL = status
  66463. 00h successful
  66464. else network error code
  66465. Desc: restore a previously saved directory handle to reproduce an executing
  66466. environment, possibly on a different execution site
  66467. Note: this function is supported by Advanced NetWare 2.0+ and Alloy NTNX
  66468. SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=17h,AX=F216h/SF=18h
  66469. Format of NetWare "Restore Directory Handle" request buffer:
  66470. Offset Size Description (Table 01879)
  66471. 00h WORD 0011h (length of following data)
  66472. 02h BYTE 18h (subfunction "Restore Directory Handle")
  66473. 03h 16 BYTEs save buffer
  66474. SeeAlso: #01877,#01880
  66475. Format of NetWare "Restore Directory Handle" reply buffer:
  66476. Offset Size Description (Table 01880)
  66477. 00h WORD (call) 0002h (length of following results buffer)
  66478. 02h BYTE new directory handle
  66479. 03h BYTE effective rights (see #01849)
  66480. SeeAlso: #01879
  66481. --------N-21E2--SF19-------------------------
  66482. INT 21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY INFORMATION
  66483. AH = E2h subfn 19h
  66484. DS:SI -> request buffer (see #01881)
  66485. ES:DI -> reply buffer (see #01882)
  66486. Return: AL = status (00h,9Bh,9Ch) (see #01839)
  66487. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  66488. SeeAlso: AH=E2h/SF=02h,AH=E2h/SF=0Fh,AX=F216h/SF=19h
  66489. Format of NetWare "Set Directory Information" request buffer:
  66490. Offset Size Description (Table 01881)
  66491. 00h WORD length of following data (max 10Bh)
  66492. 02h BYTE 19h (subfunction "Set Directory Information")
  66493. 03h BYTE directory handle
  66494. 04h DWORD (big-endian) date and time of creation
  66495. 08h DWORD (big-endian) object ID of owner
  66496. 0Ch BYTE maximum directory rights (see #01849)
  66497. 0Dh BYTE length of directory path
  66498. 0Eh N BYTEs directory path
  66499. SeeAlso: #01882
  66500. Format of NetWare reply buffer:
  66501. Offset Size Description (Table 01882)
  66502. 00h WORD (call) 0000h (no results returned)
  66503. SeeAlso: #01881
  66504. --------N-21E2--SF1A-------------------------
  66505. INT 21 - Novell NetWare - FILE SERVER - GET PATH FROM DIRECTORY ENTRY
  66506. AH = E2h subfn 1Ah
  66507. DS:SI -> request buffer (see #01883)
  66508. ES:DI -> reply buffer (see #01884)
  66509. Return: AL = status
  66510. 00h successful
  66511. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66512. Alloy NTNX
  66513. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=06h,AH=E3h/SF=D7h,AX=F216h/SF=1Ah
  66514. Format of NetWare "Get Path from Directory Entry" request buffer:
  66515. Offset Size Description (Table 01883)
  66516. 00h WORD 0004h (length of following data)
  66517. 02h BYTE 1Ah (subfunction "Get Path From Directory Entry")
  66518. 03h BYTE volume number (00h-1Fh)
  66519. 04h WORD (big-endian) directory entry number
  66520. SeeAlso: #01884,#02122
  66521. Format of NetWare "Get Path from Directory Entry" reply buffer:
  66522. Offset Size Description (Table 01884)
  66523. 00h WORD (call) size of following results record (max 200h)
  66524. 02h 256 BYTEs path
  66525. SeeAlso: #01883,#02122
  66526. --------!---Section--------------------------
  66527. Interrupt List, part 9 of 18
  66528. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  66529. --------E-21E3-------------------------------
  66530. INT 21 - OS/286, OS/386 - ISSUE REAL INTERRUPT
  66531. AH = E3h
  66532. AL = interrupt number
  66533. ???
  66534. Return: ???
  66535. Note: protected mode only???
  66536. SeeAlso: AH=E1h"OS/286",INT 31/AX=0300h
  66537. --------T-21E3-------------------------------
  66538. INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB
  66539. AH = E3h
  66540. AL = character
  66541. Return: AL = status
  66542. 00h successful
  66543. 01h buffer full (128 characters)
  66544. SeeAlso: AH=E1h"DoubleDOS",AH=E2h"DoubleDOS",AH=E8h"DoubleDOS"
  66545. SeeAlso: AH=F3h"DoubleDOS"
  66546. --------N-21E3-------------------------------
  66547. INT 21 - Novell NetWare - CONNECTION CONTROL
  66548. AH = E3h
  66549. DS:SI -> request buffer (see #01885)
  66550. ES:DI -> reply buffer (see #01886)
  66551. Return: AL = status
  66552. 00h successful
  66553. else error code
  66554. Note: supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX
  66555. SeeAlso: AH=E3h/SF=0Ah,AH=E3h/SF=32h,AH=E3h/SF=64h,AH=E3h/SF=C8h
  66556. Format of NetWare request buffer:
  66557. Offset Size Description (Table 01885)
  66558. 00h WORD length of following data
  66559. 02h BYTE subfunction number (see also AH=E3h/SF=01h,AH=E3h/SF=02h)
  66560. 00h login
  66561. 03h map object to number
  66562. 04h map number to object
  66563. 05h get station's logged information
  66564. 06h get station's root mask (obsolete)
  66565. 07h map group name to number
  66566. 08h map number to group name
  66567. 09h get memberset M of group G
  66568. var depends on subfunction
  66569. Notes: the above subfunctions are not described in _NetWare_System_Calls--DOS_
  66570. see separate entries below for other subfunctions
  66571. SeeAlso: #01886,#01887,#01890
  66572. Format of NetWare reply buffer:
  66573. Offset Size Description (Table 01886)
  66574. 00h WORD (call) length of following buffer space for results
  66575. var depends on subfunction
  66576. SeeAlso: #01885
  66577. Format of NetWare object property:
  66578. Offset Size Description (Table 01887)
  66579. 00h 1-16 BYTEs property name (see also #01888)
  66580. N BYTE flags
  66581. bit 0: property is dynamic
  66582. bit 1: property is a set rather than an item
  66583. N+1 BYTE security levels (see #01889)
  66584. ???
  66585. (Table 01888)
  66586. Values for names of well-known NetWare properties:
  66587. ACCOUNT_BALANCE
  66588. ACCOUNT_SERVERS
  66589. GROUP_MEMBERS
  66590. GROUPS_I'M_IN
  66591. IDENTIFICATION user's name
  66592. LOGIN_CONTROL
  66593. NET_ADDRESS
  66594. OPERATORS
  66595. PASSWORD
  66596. SECURITY_EQUALS
  66597. (Table 01889)
  66598. Values for NetWare security levels:
  66599. 00h "anyone" everyone may access
  66600. 01h "logged" only logged-in clients may access
  66601. 02h "object" only clients logged-in with object's name, type, and password
  66602. 03h "supervisor" only clients logged-in with supervisor privileges
  66603. 04h "NetWare" only NetWare may access
  66604. Note: the above values are stored in a nybble; the high half-byte is write
  66605. access and the low half-byte is read access
  66606. (Table 01890)
  66607. Values for NetWare object type:
  66608. 0000h unknown
  66609. 0001h user
  66610. 0002h user group
  66611. 0003h print queue / print server
  66612. 0004h file server
  66613. 0005h job server
  66614. 0006h gateway
  66615. 0007h print server
  66616. 0008h archive queue
  66617. 0009h archive server
  66618. 000Ah job queue
  66619. 000Bh administration
  66620. 0021h NAS SNA gateway
  66621. 0024h remote bridge server???
  66622. 0026h remote bridge server
  66623. 0027h TCPIP gateway
  66624. 002Dh time synchronization server
  66625. 002Eh archive server dynamic SAP
  66626. 0047h advertising print server
  66627. 0053h print queue uwer
  66628. 0048h-8000h reserved
  66629. FFFFh wild (used only for finding objects)
  66630. --------N-21E3--SF01-------------------------
  66631. INT 21 - Novell NetWare - CONNECTION SERVICES - CHANGE USER PASSWORD (OLD)
  66632. AH = E3h subfn 01h
  66633. DS:SI -> request buffer (see #01891)
  66634. ES:DI -> reply buffer (see #01895)
  66635. Return: AL = status
  66636. 00h successful
  66637. else error code
  66638. Note: supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX
  66639. SeeAlso: AH=E3h/SF=0Ah,AH=E3h/SF=32h,AH=E3h/SF=64h,AH=E3h/SF=C8h
  66640. Format of NetWare "Change User Password (old)" request packet:
  66641. Offset Size Description (Table 01891)
  66642. 00h WORD length of following data
  66643. 02h BYTE 01h (subfunction "Change User Password (old)")
  66644. 03h BYTE length of user name
  66645. 04h N BYTEs user name
  66646. BYTE length of old password
  66647. N BYTEs old password
  66648. BYTE length of new password
  66649. N BYTEs new password
  66650. SeeAlso: #01895
  66651. --------N-21E3--SF02-------------------------
  66652. INT 21 - Novell NetWare - CONNECTION SERVICES - CHANGE USER PASSWORD (OLD)
  66653. AH = E3h subfn 02h
  66654. DS:SI -> request buffer (see #01892)
  66655. ES:DI -> reply buffer (see #01893)
  66656. Return: AL = status
  66657. 00h successful
  66658. else error code
  66659. Note: supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX
  66660. SeeAlso: AH=E3h/SF=01h,AH=E3h/SF=03h,AH=E3h/SF=0Ah
  66661. Format of NetWare "Get User Connection List (old)" request packet:
  66662. Offset Size Description (Table 01892)
  66663. 00h WORD length of following data
  66664. 02h BYTE 02h (subfunction "Get User Connection List (old)")
  66665. 03h BYTE length of user name
  66666. 04h N BYTEs user name
  66667. SeeAlso: #01893,#02162
  66668. Format of NetWare "Get User Connection List (old)" reply packet:
  66669. Offset Size Description (Table 01893)
  66670. 00h WORD (call) length of following buffer
  66671. 02h BYTE length of connection list
  66672. 03h BYTE number of bytes in connection list
  66673. 04h N BYTEs list of connection numbers in use by user
  66674. SeeAlso: #01892,#02162
  66675. --------N-21E3--SF03-------------------------
  66676. INT 21 - Novell NetWare - CONNECTION SERVICES - MAP OBJECT TO NUMBER (OLD)
  66677. AH = E3h subfn 03h
  66678. DS:SI -> request buffer
  66679. ES:DI -> reply buffer
  66680. Return: AL = status
  66681. 00h successful
  66682. else error code
  66683. Note: supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX
  66684. SeeAlso: AH=E3h/SF=01h,AH=E3h/SF=02h,AH=E3h/SF=0Ah
  66685. --------N-21E3--SF0A-------------------------
  66686. INT 21 - Novell NetWare - CONNECTION SERVICES - ENTER LOGIN AREA
  66687. AH = E3h subfn 0Ah
  66688. DS:SI -> request buffer (see #01894)
  66689. ES:DI -> reply buffer (see #01895)
  66690. Return: AL = status
  66691. 00h successful
  66692. Desc: change the login directory for the calling workstation
  66693. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66694. Alloy NTNX
  66695. SeeAlso: AH=D7h,AH=E3h/SF=14h
  66696. Format of NetWare "Enter Login Area" request buffer:
  66697. Offset Size Description (Table 01894)
  66698. 00h WORD length of following data (max 102h)
  66699. 02h BYTE 0Ah (subfunction "Enter Login Area")
  66700. 03h BYTE number of local drives
  66701. 04h BYTE length of subdirectory name (00h-FFh)
  66702. 05h N BYTEs name of subdirectory under SYS:LOGIN where to find the login
  66703. utility
  66704. SeeAlso: #01895
  66705. Format of NetWare reply buffer:
  66706. Offset Size Description (Table 01895)
  66707. 00h WORD (call) 0000h (no data returned)
  66708. SeeAlso: #01891,#01894,#01898
  66709. --------N-21E3--SF0C-------------------------
  66710. INT 21 U - Novell NetWare - VERIFY NETWORK SERIAL NUMBER
  66711. AH = E3h subfn 0Ch
  66712. DS:SI -> request buffer (see #01896)
  66713. ES:DI -> reply buffer (see #01897)
  66714. Return: AL = status
  66715. 00h successful
  66716. Note: if the network serial number to be verified is correct, the reply
  66717. buffer will contain the corresponding application number
  66718. SeeAlso: AH=E3h/SF=12h,AX=F217h/SF=0Ch
  66719. Format of NetWare "Verify Network Serial Number" request buffer:
  66720. Offset Size Description (Table 01896)
  66721. 00h WORD 0005h (length of following data)
  66722. 02h BYTE 0Ch (subfunction "Verify Network Serial Number")
  66723. 03h DWORD (big-endian) network serial number to verify
  66724. SeeAlso: #01897,#02163
  66725. Format of NetWare "Verify Network Serial Number" reply buffer:
  66726. Offset Size Description (Table 01897)
  66727. 00h WORD (call) 0002h (size of following results buffer)
  66728. 02h WORD (big-endian) application number
  66729. SeeAlso: #01896,#02163
  66730. --------N-21E3--SF0D-------------------------
  66731. INT 21 - Novell NetWare - MESSAGE SERVICES - LOG NETWORK MESSAGE
  66732. AH = E3h subfn 0Dh
  66733. DS:SI -> request buffer (see #01898)
  66734. ES:DI -> reply buffer (see #01895)
  66735. Return: AL = status
  66736. 00h successful
  66737. Desc: append a line to the default file server's NET$LOG.MSG file
  66738. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  66739. Alloy NTNX
  66740. SeeAlso: AH=E1h/SF=09h
  66741. Format of NetWare "Log Network Message" request buffer:
  66742. Offset Size Description (Table 01898)
  66743. 00h WORD length of following data (max 52h)
  66744. 02h BYTE 0Dh (subfunction "Log Network Message")
  66745. 03h BYTE length of message (01h-50h)
  66746. 04h N BYTEs message (no control characters or characters > 7Eh)
  66747. SeeAlso: #01895
  66748. --------N-21E3--SF0E-------------------------
  66749. INT 21 - Novell NetWare - FILE SERVER - GET DISK UTILIZATION
  66750. AH = E3h subfn 0Eh
  66751. DS:SI -> request buffer (see #01900)
  66752. ES:DI -> reply buffer (see #01901)
  66753. Return: AL = status (00h,98h,F2h) (see #01899)
  66754. Notes: this function is supported by Advanced NetWare 2.1+
  66755. the caller must have bindery object read privileges
  66756. SeeAlso: AH=E3h/SF=11h,AH=E3h/SF=D6h,AH=E3h/SF=D9h,AH=E3h/SF=E6h,AH=E3h/SF=E9h
  66757. SeeAlso: AX=F217h/SF=0Eh
  66758. (Table 01899)
  66759. Values for NetWare function status:
  66760. 00h successful
  66761. 98h nonexistent volume
  66762. F2h not permitted to read object
  66763. SeeAlso: #01866,#01902
  66764. Format of NetWare "Get Disk Utilization" request buffer:
  66765. Offset Size Description (Table 01900)
  66766. 00h WORD 0005h (length of following data)
  66767. 02h BYTE 0Eh (subfunction "Get Disk Utilization")
  66768. 03h BYTE volume number (00h-1Fh)
  66769. 04h DWORD (big-endian) object ID
  66770. SeeAlso: #01901,#02164
  66771. Format of NetWare "Get Disk Utilization" reply buffer:
  66772. Offset Size Description (Table 01901)
  66773. 00h WORD (call) 000Bh (size of following results buffer)
  66774. 02h BYTE volume number (00h-1Fh)
  66775. 03h DWORD (big-endian) object ID
  66776. 07h WORD (big-endian) directories used by object
  66777. 09h WORD (big-endian) files created by object
  66778. 0Bh WORD (big-endian) disk blocks used by object-created files
  66779. SeeAlso: #01900,#02164
  66780. --------N-21E3--SF0F-------------------------
  66781. INT 21 - Novell NetWare - FILE SERVICES - SCAN FILE INFORMATION
  66782. AH = E3h subfn 0Fh
  66783. DS:SI -> request buffer (see #01903)
  66784. ES:DI -> reply buffer (see #01904)
  66785. Return: AL = status (see #01902)
  66786. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  66787. SeeAlso: AH=B6h,AH=E3h/SF=10h,AX=F217h/SF=0Fh
  66788. (Table 01902)
  66789. Values for NetWare function status:
  66790. 00h successful
  66791. 89h not permitted to search directory
  66792. FFh no more matching files
  66793. SeeAlso: #01899,#01920
  66794. Format of NetWare "Scan File Information" request buffer:
  66795. Offset Size Description (Table 01903)
  66796. 00h WORD length of following data (max 105h)
  66797. 02h BYTE 0Fh (subfunction "Scan File Information")
  66798. 03h WORD (big-endian) sequence number
  66799. FFFFh on first call
  66800. 05h BYTE directory handle or 00h
  66801. 06h BYTE search attributes (see #01420 at AX=4301h)
  66802. 07h BYTE length of filespec
  66803. 08h N BYTEs ASCIZ uppercase filespec
  66804. SeeAlso: #01904,#02165
  66805. Format of NetWare "Scan File Information" reply buffer:
  66806. Offset Size Description (Table 01904)
  66807. 00h WORD (call) 005Eh (size of following results buffer)
  66808. 02h WORD next sequence number (place in request buffer for next call)
  66809. 04h 14 BYTEs ASCIZ filename
  66810. 12h BYTE file attributes (see #01420 at AX=4301h)
  66811. 13h BYTE extended file attributes (see #01804 at AH=B6h)
  66812. 14h DWORD (big-endian) file size in bytes
  66813. 18h WORD (big-endian) file's creation date (see #01666 at AX=5700h)
  66814. 1Ah WORD (big-endian) date of last access (see #01665 at AX=5700h)
  66815. 1Ch DWORD (big-endian) date and time of last update (see #01846)
  66816. 20h DWORD (big-endian) object ID of owner
  66817. 24h DWORD (big-endian) date and time last archived (see #01846)
  66818. 28h 55 BYTEs reserved
  66819. Note: the official documentation erroneously lists the field at offset 04h as
  66820. 15 bytes and thus shifts the remaining fields by one byte
  66821. SeeAlso: #01903,#02165
  66822. --------N-21E3--SF10-------------------------
  66823. INT 21 - Novell NetWare - FILE SERVICES - SET FILE INFORMATION
  66824. AH = E3h subfn 10h
  66825. DS:SI -> request buffer (see #01905)
  66826. ES:DI -> reply buffer (see #01906)
  66827. Return: AL = status
  66828. 00h successful
  66829. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  66830. the caller must have modify privileges on the directory containing the
  66831. file
  66832. SeeAlso: AH=B6h,AH=E3h/SF=0Fh,AX=F217h/SF=10h
  66833. Format of NetWare "Set File Information" request buffer:
  66834. Offset Size Description (Table 01905)
  66835. 00h WORD length of following data (max 151h)
  66836. 02h BYTE 10h (subfunction "Set File Information")
  66837. 03h BYTE file attributes (see #01420 at AX=4301h)
  66838. 04h BYTE extended file attributes (see #01804 at AH=B6h)
  66839. 05h 4 BYTEs reserved
  66840. 09h WORD (big-endian) file's creation date (see #01666 at AX=5700h)
  66841. 0Bh WORD (big-endian) date of last access (see #01665 at AX=5700h)
  66842. 0Dh DWORD (big-endian) date and time of last update (see #01846)
  66843. 11h DWORD (big-endian) object ID of owner
  66844. 15h DWORD (big-endian) date and time last archived (see #01846)
  66845. 19h 56 BYTEs reserved
  66846. 51h BYTE directory handle or 00h
  66847. 52h BYTE search attributes (see #01420 at AX=4301h)
  66848. 53h BYTE length of filename
  66849. 54h N BYTEs filename
  66850. SeeAlso: #01906
  66851. Format of NetWare reply buffer:
  66852. Offset Size Description (Table 01906)
  66853. 00h WORD (call) 0000h (no results returned)
  66854. SeeAlso: #01905
  66855. --------N-21E3--SF11-------------------------
  66856. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER INFORMATION
  66857. AH = E3h subfn 11h
  66858. DS:SI -> request buffer (see #01907)
  66859. ES:DI -> reply buffer (see #01908)
  66860. Return: AL = status
  66861. 00h successful
  66862. Desc: determine the version of software installed on the file server and
  66863. how it is configured
  66864. Note: this function is supported by Advanced NetWare 2.1+
  66865. SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=12h,AH=E3h/SF=CDh,AH=E3h/SF=D3h,AH=E3h/SF=E7h
  66866. SeeAlso: AH=E7h"Novell",AX=F217h/SF=11h
  66867. Format of NetWare "Get File Server Information" request buffer:
  66868. Offset Size Description (Table 01907)
  66869. 00h WORD 0001h (length of following data)
  66870. 02h BYTE 11h (subfunction "Get File Server Information")
  66871. SeeAlso: #01908,#02166 at AX=F217h/SF=11h
  66872. Format of NetWare "Get File Server Information" reply buffer:
  66873. Offset Size Description (Table 01908)
  66874. 00h WORD (call) 0080h (size of following results buffer)
  66875. 02h 48 BYTEs server's name
  66876. 32h BYTE NetWare version
  66877. 33h BYTE NetWare subversion (0-99)
  66878. 34h WORD (big-endian) number of connections supported
  66879. NetWare 4.01 reportedly returns maximum simulataneously-used
  66880. connections
  66881. 36h WORD (big-endian) number of connections in use
  66882. 38h WORD (big-endian) maximum connected volumes
  66883. ---Advanced NetWare 2.1+ ---
  66884. 3Ah BYTE operating system revision number
  66885. 3Bh BYTE fault tolerance (SFT) level
  66886. 3Ch BYTE TTS level
  66887. 3Dh WORD (big-endian) maximum simultaneously-used connections
  66888. NetWare 4.01 reportedly returns number of connections in use
  66889. 3Fh BYTE accounting version
  66890. 40h BYTE VAP version
  66891. 41h BYTE queueing version
  66892. 42h BYTE print server version
  66893. 43h BYTE virtual console version
  66894. 44h BYTE security restrictions level
  66895. 45h BYTE internetwork bridge version
  66896. 46h 60 BYTEs reserved
  66897. SeeAlso: #01907,#02166
  66898. --------N-21E3--SF12-------------------------
  66899. INT 21 - Novell NetWare - GET NETWORK SERIAL NUMBER
  66900. AH = E3h subfn 12h
  66901. AL = 00h
  66902. BX = CX = DX = 0000h
  66903. DS:SI -> request buffer (see #01909)
  66904. ES:DI -> reply buffer (see #01910)
  66905. Return: AL = status
  66906. 00h successful
  66907. Desc: return the serial number and application number for the software
  66908. installed on the file server
  66909. Notes: this function is supported by Advanced NetWare 2.1+
  66910. reportedly, the workstation crashes if AL,BX,CX, and DX are not all
  66911. zero
  66912. SeeAlso: AH=E3h/SF=0Ch,AH=E3h/SF=11h,AX=F217h/SF=12h
  66913. Format of NetWare "Get Serial Number" request buffer:
  66914. offset size description (Table 01909)
  66915. 00h WORD 0001h (length of following data)
  66916. 02h BYTE 12h (subfunction "Get Serial Number")
  66917. SeeAlso: #01910,#02167
  66918. Format of NetWare "Get Serial Number" reply buffer:
  66919. offset size description (Table 01910)
  66920. 00h WORD (call) 0006h (size of following results buffer)
  66921. 02h 4 BYTEs (big-endian) NetWare server serial number
  66922. 06h 2 BYTEs (big-endian) NetWare application serial number
  66923. SeeAlso: #01909,#02167
  66924. --------N-21E3--SF13-------------------------
  66925. INT 21 - Novell NetWare - CONNECTION SERVICES - GET INTERNET ADDRESS (OLD)
  66926. AH = E3h subfn 13h
  66927. DS:SI -> request buffer (see #01911)
  66928. ES:DI -> reply buffer (see #01912)
  66929. Return: AL = status
  66930. 00h successful
  66931. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  66932. SeeAlso: AH=DCh"NetWare",AH=E3h/SF=16h,AH=EEh"NetWare",AX=F217h/SF=13h
  66933. Format of NetWare "Get Internet Address (old)" request buffer:
  66934. Offset Size Description (Table 01911)
  66935. 00h WORD 0002h (length of following data)
  66936. 02h BYTE 13h (subfunction "Get Internet Address")
  66937. 03h BYTE logical connection number (01h-64h)
  66938. SeeAlso: #01912,#02168
  66939. Format of NetWare "Get Internet Address (old)" reply buffer:
  66940. Offset Size Description (Table 01912)
  66941. 00h WORD (call) 000Ch (length of following results buffer)
  66942. 02h 4 BYTEs network number
  66943. 06h 6 BYTEs physical node address
  66944. 0Ch 2 BYTEs socket number
  66945. SeeAlso: #01911,#02168 at AX=F217h/SF=13h
  66946. --------N-21E3--SF14-------------------------
  66947. INT 21 - Novell NetWare - CONNECTION SERVICES - LOGIN TO FILE SERVER
  66948. AH = E3h subfn 14h
  66949. DS:SI -> request buffer (see #01913)
  66950. ES:DI -> reply buffer (see #01914)
  66951. Return: AL = status
  66952. 00h successful
  66953. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  66954. SeeAlso: AH=D7h"NetWare",AH=F1h"NetWare",AX=F217h/SF=14h
  66955. Format of NetWare "Login to File Server" request buffer:
  66956. Offset Size Description (Table 01913)
  66957. 00h WORD length of following data (max B3h)
  66958. 02h BYTE 14h (subfunction "Login To File Server")
  66959. 03h WORD (big-endian) type of object
  66960. 05h BYTE length of object's name (01h-2Fh)
  66961. 06h N BYTEs object's name
  66962. BYTE length of password
  66963. N BYTEs password
  66964. SeeAlso: #01914
  66965. Format of NetWare reply buffer:
  66966. Offset Size Description (Table 01914)
  66967. 00h WORD (call) 0000h (no data returned)
  66968. SeeAlso: #01913
  66969. --------N-21E3--SF15-------------------------
  66970. INT 21 - Novell NetWare - CONNECTION SERVICES - GET OBJECT CONNECTION LIST(OLD)
  66971. AH = E3h subfn 15h
  66972. DS:SI -> request buffer (see #01915)
  66973. ES:DI -> reply buffer (see #01916)
  66974. Return: AL = status
  66975. 00h successful
  66976. Desc: this function retrieves a list indicating the connection numbers under
  66977. which a bindery object is logged into the default file server
  66978. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  66979. SeeAlso: AH=DCh"NetWare",AH=E3h/SF=16h,AX=F217h/SF=15h
  66980. Format of NetWare "Get Object Connection Numbers" request buffer:
  66981. Offset Size Description (Table 01915)
  66982. 00h WORD length of following data (max 33h)
  66983. 02h BYTE 15h (subfunction "Get Object Connection Numbers")
  66984. 03h WORD (big-endian) type of object
  66985. 05h BYTE length of object's name (01h-2Fh)
  66986. 06h N BYTEs object's name
  66987. SeeAlso: #01916,#02169
  66988. Format of NetWare "Get Object Connection Numbers" reply buffer:
  66989. Offset Size Description (Table 01916)
  66990. 00h WORD (call) length of following results buffer (max 65h)
  66991. 02h BYTE number of connections
  66992. 03h N BYTEs connection list
  66993. SeeAlso: #01915,#02169
  66994. --------N-21E3--SF16-------------------------
  66995. INT 21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION INFORMATION
  66996. AH = E3h subfn 16h
  66997. DS:SI -> request buffer (see #01917)
  66998. ES:DI -> reply buffer (see #01918)
  66999. Return: AL = status
  67000. 00h successful
  67001. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67002. SeeAlso: AH=D7h,AH=DCh"NetWare",AH=E3h/SF=14h
  67003. Format of NetWare "Get Connection Information" request buffer:
  67004. Offset Size Description (Table 01917)
  67005. 00h WORD 0002h (length of following data)
  67006. 02h BYTE 16h (subfunction "Get Connection Information")
  67007. 03h BYTE logical connection number (01h-64h)
  67008. Format of NetWare "Get Connection Information" reply buffer:
  67009. Offset Size Description (Table 01918)
  67010. 00h WORD (call) 003Eh (length of following results buffer)
  67011. 02h DWORD (big-endian) object ID for object logged in on the connection
  67012. 00000000h if no object logged in
  67013. 06h WORD (big-endian) type of object
  67014. 08h 48 BYTEs name of object
  67015. 38h 7 BYTEs login time (see #01919)
  67016. Note: much of the Novell documentation incorrectly states the reply buffer
  67017. length as 3Fh instead of 40h, which corresponds to a results length
  67018. of 3Dh (61) bytes instead of the correct 3Eh (62) bytes
  67019. Format of NetWare login time:
  67020. Offset Size Description (Table 01919)
  67021. 00h BYTE year (80-99 = 1980-1999, 00-79 = 2000-2079)
  67022. 01h BYTE month (1-12)
  67023. 02h BYTE day (1-31)
  67024. 03h BYTE hour (0-23)
  67025. 04h BYTE minute (0-59)
  67026. 05h BYTE second (0-59)
  67027. 06h BYTE day of week (0 = Sunday)
  67028. --------N-21E3--SF32-------------------------
  67029. INT 21 - Novell NetWare - BINDERY SERVICES - CREATE BINDERY OBJECT
  67030. AH = E3h subfn 32h
  67031. DS:SI -> request buffer (see #01921)
  67032. ES:DI -> reply buffer (see #01922)
  67033. Return: AL = status (see #01920)
  67034. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67035. SeeAlso: AH=E3h/SF=33h,AH=E3h/SF=34h,AH=E3h/SF=38h,AH=E3h/SF=39h
  67036. SeeAlso: AX=F217h/SF=32h
  67037. (Table 01920)
  67038. Values for NetWare function status:
  67039. 00h successful
  67040. 96h server out of memory
  67041. EEh object already exists
  67042. EFh invalid name
  67043. F0h wildcard not allowed
  67044. F1h invalid bindery security level
  67045. F3h not permitted to rename object
  67046. F4h not permitted to delete objects
  67047. F5h not permitted to create objects
  67048. FCh no such object
  67049. FEh server bindery locked
  67050. FFh bindery failure
  67051. SeeAlso: #01902,#01927
  67052. Format of NetWare "Create Bindery Object" request buffer:
  67053. Offset Size Description (Table 01921)
  67054. 00h WORD length of following data (max 35h)
  67055. 02h BYTE 32h (subfunction "Create Bindery Object")
  67056. 03h BYTE object flag (00h static, 01h dynamic)
  67057. 04h BYTE object security levels
  67058. 05h WORD (big-endian) type of object
  67059. 07h BYTE length of object's name
  67060. 08h N BYTEs object's name
  67061. SeeAlso: #01922
  67062. Format of NetWare reply buffer:
  67063. Offset Size Description (Table 01922)
  67064. 00h WORD 0000h (no data returned)
  67065. SeeAlso: #01921,#01923,#01924
  67066. --------N-21E3--SF33-------------------------
  67067. INT 21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT
  67068. AH = E3h subfn 33h
  67069. DS:SI -> request buffer (see #01923)
  67070. ES:DI -> reply buffer (see #01922)
  67071. Return: AL = status (see #01920)
  67072. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67073. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=34h,AX=F217h/SF=33h
  67074. Format of NetWare "Delete Bindery Object" request buffer:
  67075. Offset Size Description (Table 01923)
  67076. 00h WORD length of following data (max 33h)
  67077. 02h BYTE 33h (subfunction "Delete Bindery Object")
  67078. 03h WORD (big-endian) type of object
  67079. 05h BYTE length of object's name (01h-2Fh)
  67080. 06h N BYTEs object's name
  67081. SeeAlso: #01922
  67082. --------N-21E3--SF34-------------------------
  67083. INT 21 - Novell NetWare - BINDERY SERVICES - RENAME BINDERY OBJECT
  67084. AH = E3h subfn 34h
  67085. DS:SI -> request buffer (see #01924)
  67086. ES:DI -> reply buffer (see #01922)
  67087. Return: AL = status (see #01920)
  67088. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67089. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=33h,AX=F217h/SF=34h
  67090. Format of NetWare "Rename Bindery Object" request buffer:
  67091. Offset Size Description (Table 01924)
  67092. 00h WORD length of following data (max 63h)
  67093. 02h BYTE 34h (subfunction "Rename Bindery Object")
  67094. 03h WORD (big-endian) type of object
  67095. 05h BYTE length of object's name (01h-2Fh)
  67096. 06h N BYTEs object's name
  67097. BYTE length of new name (01h-2Fh)
  67098. N BYTEs new name
  67099. SeeAlso: #01922
  67100. --------N-21E3--SF35-------------------------
  67101. INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT ID
  67102. AH = E3h subfn 35h
  67103. DS:SI -> request buffer (see #01925)
  67104. ES:DI -> reply buffer (see #01926)
  67105. Return: AL = status (00h,96h,FCh,FEh,FFh) (see #01927)
  67106. Notes: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67107. the requesting workstation must be logged into the file server with
  67108. read access to the bindery object
  67109. SeeAlso: AH=E3h/SF=36h,AH=E3h/SF=44h,AX=F217h/SF=35h
  67110. Format of NetWare "Get Bindery Object ID" request buffer:
  67111. Offset Size Description (Table 01925)
  67112. 00h WORD length of following data (max 33h)
  67113. 02h BYTE 35h (subfunction "Get Bindery Object ID")
  67114. 03h WORD (big-endian) type of object
  67115. 05h BYTE length of object's name
  67116. 06h N BYTEs object's name
  67117. SeeAlso: #01926,#02184
  67118. Format of NetWare "Get Bindery Object ID" reply buffer:
  67119. Offset Size Description (Table 01926)
  67120. 00h WORD (call) 0036h (length of following buffer space)
  67121. 02h DWORD (big-endian) object ID
  67122. 06h WORD (big-endian) type of object
  67123. 08h 48 BYTEs object name
  67124. SeeAlso: #01925,#02184 at AX=F217h/SF=35h
  67125. --------N-21E3--SF36-------------------------
  67126. INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT NAME
  67127. AH = E3h subfn 36h
  67128. DS:SI -> request buffer (see #01928)
  67129. ES:DI -> reply buffer (see #01929)
  67130. Return: AL = status (see #01927)
  67131. Notes: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67132. the requesting workstation must be logged into the file server with
  67133. read access to the bindery object
  67134. SeeAlso: AH=E3h/SF=35h,AH=E3h/SF=44h,AX=F217h/SF=36h
  67135. (Table 01927)
  67136. Values for NetWare function status:
  67137. 00h successful
  67138. 96h server out of memory
  67139. EFh invalid name
  67140. F0h wildcard not allowed
  67141. FCh no such object
  67142. FEh server bindery locked
  67143. FFh bindery failure
  67144. SeeAlso: #01920,#01933
  67145. Format of NetWare "Get Bindery Object Name" request buffer:
  67146. Offset Size Description (Table 01928)
  67147. 00h WORD 0005h (length of following data)
  67148. 02h BYTE 36h (subfunction "Get Bindery Object Name")
  67149. 03h DWORD (big-endian) object ID
  67150. SeeAlso: #01929,#02185 at AX=F217h/SF=36h
  67151. Format of NetWare "Get Bindery Object Name" reply buffer:
  67152. Offset Size Description (Table 01929)
  67153. 00h WORD (call) 0036h (length of following buffer space)
  67154. 02h DWORD (big-endian) object ID
  67155. 06h WORD (big-endian) type of object
  67156. 08h 48 BYTEs object name
  67157. SeeAlso: #01928,#02185
  67158. --------N-21E3--SF37-------------------------
  67159. INT 21 - Novell NetWare - BINDERY SERVICES - SCAN BINDERY OBJECT
  67160. AH = E3h subfn 37h
  67161. DS:SI -> request buffer (see #01930)
  67162. ES:DI -> reply buffer (see #01931)
  67163. Return: AL = status (see #01927)
  67164. Notes: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67165. the requesting workstation must be logged into the file server with
  67166. read access to the bindery object
  67167. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=33h,AH=E3h/SF=38h,AH=E3h/SF=3Ch
  67168. SeeAlso: AX=F217h/SF=37h
  67169. Format of NetWare "Scan Bindery Object" request buffer:
  67170. Offset Size Description (Table 01930)
  67171. 00h WORD length of following data (max 37h)
  67172. 02h BYTE 37h (subfunction "Scan Bindery Object")
  67173. 03h DWORD (big-endian) last object ID
  67174. 07h WORD (big-endian) type of object
  67175. 09h BYTE length of object's name
  67176. 0Ah N BYTEs object's name
  67177. SeeAlso: #01931,#02186
  67178. Format of NetWare "Scan Bindery Object" reply buffer:
  67179. Offset Size Description (Table 01931)
  67180. 00h WORD (call) 0039h (length of following buffer space)
  67181. 02h DWORD (big-endian) object ID
  67182. FFFFFFFFh for first call
  67183. 06h WORD (big-endian) type of object
  67184. 08h 48 BYTEs object name (counted string)
  67185. 38h BYTE object flag (00h static, 01h dynamic)
  67186. 39h BYTE object's security levels
  67187. 3Ah BYTE object properties flag (00h no, FFh yes)
  67188. SeeAlso: #01930,#02186
  67189. --------N-21E3--SF38-------------------------
  67190. INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT SECURITY
  67191. AH = E3h subfn 38h
  67192. DS:SI -> request buffer (see #01932)
  67193. ES:DI -> reply buffer (see #01935)
  67194. Return: AL = status (00h,96h,F0h,F1h,FBh,FCh,FEh,FFh) (see #01933)
  67195. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67196. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=3Bh,AX=F217h/SF=38h
  67197. Format of NetWare "Change Bindery Object Security" request buffer:
  67198. Offset Size Description (Table 01932)
  67199. 00h WORD length of following data (max 34h)
  67200. 02h BYTE 38h (subfunction "Change Bindery Object Security")
  67201. 03h BYTE new security levels
  67202. 04h WORD (big-endian) type of object
  67203. 06h BYTE length of object's name (01h-2Fh)
  67204. 07h N BYTEs object name
  67205. Note: the object type may not be WILD (FFFFh)
  67206. SeeAlso: #01935
  67207. --------N-21E3--SF39-------------------------
  67208. INT 21 - Novell NetWare - BINDERY SERVICES - CREATE PROPERTY
  67209. AH = E3h subfn 39h
  67210. DS:SI -> request buffer (see #01934)
  67211. ES:DI -> reply buffer (see #01935)
  67212. Return: AL = status (see #01933)
  67213. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67214. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=3Bh,AX=F217h/SF=39h
  67215. (Table 01933)
  67216. Values for NetWare function status:
  67217. 00h successful
  67218. 96h server out of memory
  67219. EDh property already exists
  67220. EFh invalid name
  67221. F0h wildcard not allowed
  67222. F1h invalid bindery security level
  67223. F6h not permitted to delete properties
  67224. F7h not permitted to create properties
  67225. FBh no such property
  67226. FCh no such object
  67227. FEh server bindery locked
  67228. FFh bindery failure
  67229. SeeAlso: #01927,#01937
  67230. Format of NetWare "Create Property" request buffer:
  67231. Offset Size Description (Table 01934)
  67232. 00h WORD length of following data (max 45h)
  67233. 02h BYTE 39h (subfunction "Create Property")
  67234. 03h WORD (big-endian) type of object
  67235. 05h BYTE length of object's name (01h-2Fh)
  67236. 06h N BYTEs object's name
  67237. BYTE property flags
  67238. BYTE property security levels
  67239. BYTE length of property's name (01h-0Fh)
  67240. N BYTEs property's name
  67241. SeeAlso: #01935
  67242. Format of NetWare reply buffer:
  67243. Offset Size Description (Table 01935)
  67244. 00h WORD (call) 0000h (no data returned)
  67245. SeeAlso: #01932,#01935,#01936
  67246. --------N-21E3--SF3A-------------------------
  67247. INT 21 - Novell NetWare - BINDERY SERVICES - DELETE PROPERTY
  67248. AH = E3h subfn 3Ah
  67249. DS:SI -> request buffer (see #01936)
  67250. ES:DI -> reply buffer (see #01935)
  67251. Return: AL = status (see #01933)
  67252. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67253. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=39h,AX=F217h/SF=3Ah
  67254. Format of NetWare "Delete Property" request buffer:
  67255. Offset Size Description (Table 01936)
  67256. 00h WORD length of following data (max 43h)
  67257. 02h BYTE 3Ah (subfunction "Delete Property")
  67258. 03h WORD (big-endian) type of object
  67259. 05h BYTE length of object's name (01h-2Fh)
  67260. 06h N BYTEs object's name
  67261. BYTE length of property's name (01h-0Fh)
  67262. N BYTEs property's name
  67263. SeeAlso: #01935
  67264. --------N-21E3--SF3B-------------------------
  67265. INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE PROPERTY SECURITY
  67266. AH = E3h subfn 3Bh
  67267. DS:SI -> request buffer (see #01938)
  67268. ES:DI -> reply buffer (see #01935)
  67269. Return: AL = status (see #01937)
  67270. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67271. SeeAlso: AH=E3h/SF=38h,AX=F217h/SF=3Bh
  67272. (Table 01937)
  67273. Values for NetWare function status:
  67274. 00h successful
  67275. 96h server out of memory
  67276. F0h wildcard not allowed
  67277. F1h invalid bindery security level
  67278. FBh no such property
  67279. FCh no such object
  67280. FEh server bindery locked
  67281. FFh bindery failure
  67282. SeeAlso: #01933,#01941
  67283. Format of NetWare "Change Property Security" request buffer:
  67284. Offset Size Description (Table 01938)
  67285. 00h WORD length of following data (max 44h)
  67286. 02h BYTE 3Bh (subfunction "Change Property Security")
  67287. 03h WORD (big-endian) type of object
  67288. 05h BYTE length of object's name (01h-2Fh)
  67289. 06h N BYTEs object name
  67290. BYTE new property security levels
  67291. BYTE length of property's name
  67292. N BYTEs property name
  67293. Note: the object type may not be WILD (FFFFh)
  67294. --------N-21E3--SF3C-------------------------
  67295. INT 21 - Novell NetWare - BINDERY SERVICES - SCAN PROPERTY
  67296. AH = E3h subfn 3Ch
  67297. DS:SI -> request buffer (see #01939)
  67298. ES:DI -> reply buffer (see #01940)
  67299. Return: AL = status (00h,96h,F1h,FBh,FCh,FEh,FFh) (see #01937)
  67300. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67301. SeeAlso: AH=E3h/SF=37h,AH=E3h/SF=3Bh,AX=F217h/SF=3Ch
  67302. Format of NetWare "Scan Property" request buffer:
  67303. Offset Size Description (Table 01939)
  67304. 00h WORD length of following data (max 47h)
  67305. 02h BYTE 3Ch (subfunction "Scan Property")
  67306. 03h WORD (big-endian) type of object
  67307. 05h BYTE length of object's name (01h-2Fh)
  67308. 06h N BYTEs object name
  67309. DWORD (big-endian) sequence number
  67310. FFFFFFFFh for first call
  67311. BYTE length of property's name (01h-0Fh)
  67312. N BYTEs property's name
  67313. SeeAlso: #01940,#02187
  67314. Format of NetWare "Scan Property" reply buffer:
  67315. Offset Size Description (Table 01940)
  67316. 00h WORD (call) 0018h (length of following results buffer)
  67317. 02h 16 BYTEs property name
  67318. 12h BYTE property flags
  67319. 13h BYTE property security levels
  67320. 14h DWORD (big-endian) sequence number
  67321. 18h BYTE property value flag (00h no, FFh yes)
  67322. 19h BYTE more properties (00h no, FFh yes)
  67323. SeeAlso: #01939,#02187
  67324. --------N-21E3--SF3D-------------------------
  67325. INT 21 - Novell NetWare - BINDERY SERVICES - READ PROPERTY VALUE
  67326. AH = E3h subfn 3Dh
  67327. DS:SI -> request buffer (see #01942)
  67328. ES:DI -> reply buffer (see #01943)
  67329. Return: AL = status (see #01941)
  67330. Desc: retrieve one 128-byte segment of the specified property's value
  67331. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67332. SeeAlso: AH=E3h/SF=39h,AH=E3h/SF=3Ch,AH=E3h/SF=3Eh,AX=F217h/SF=3Dh
  67333. (Table 01941)
  67334. Values for NetWare function status:
  67335. 00h successful
  67336. 96h server out of memory
  67337. E8h not item property
  67338. ECh no such segment
  67339. F0h wildcard not allowed
  67340. F1h invalid bindery security level
  67341. F8h not permitted to write property
  67342. F9h not permitted to read property
  67343. FBh no such property
  67344. FCh no such object
  67345. FEh server bindery locked
  67346. FFh bindery failure
  67347. SeeAlso: #01937,#01946
  67348. Format of NetWare "Read Property Value" request buffer:
  67349. Offset Size Description (Table 01942)
  67350. 00h WORD length of following data (max 44h)
  67351. 02h BYTE 3Dh (subfunction "Read Property Value")
  67352. 03h WORD (big-endian) type of object
  67353. 05h BYTE length of object's name (01h-2Fh)
  67354. 06h N BYTEs object name
  67355. BYTE segment number (01h on first call, increment until done)
  67356. BYTE length of property's name (01h-0Fh)
  67357. N BYTEs property name
  67358. SeeAlso: #01943,#02188
  67359. Format of NetWare "Read Property Value" reply buffer:
  67360. Offset Size Description (Table 01943)
  67361. 00h WORD (call) 0082h (length of following results buffer)
  67362. 02h 128 BYTEs property's value
  67363. 82h BYTE more segments (00h no, FFh yes)
  67364. 83h BYTE property's flags
  67365. SeeAlso: #01942,#02188
  67366. --------N-21E3--SF3E-------------------------
  67367. INT 21 - Novell NetWare - BINDERY SERVICES - WRITE PROPERTY VALUE
  67368. AH = E3h subfn 3Eh
  67369. DS:SI -> request buffer (see #01944)
  67370. ES:DI -> reply buffer (see #01945)
  67371. Return: AL = status (see #01941)
  67372. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67373. SeeAlso: AH=E3h/SF=39h,AH=E3h/SF=3Ch,AH=E3h/SF=3Dh,AX=F217h/SF=3Eh
  67374. Format of NetWare "Write Property Value" request buffer:
  67375. Offset Size Description (Table 01944)
  67376. 00h WORD length of following data (max C5h)
  67377. 02h BYTE 3Eh (subfunction "Write Property Value")
  67378. 03h WORD (big-endian) type of object
  67379. 05h BYTE length of object's name (01h-2Fh)
  67380. 06h N BYTEs object name
  67381. BYTE segment number (01h on first call, increment until done)
  67382. BYTE erase remaining segments (00h no, FFh yes)
  67383. BYTE length of property's name (01h-0Fh)
  67384. N BYTEs property name
  67385. 128 BYTEs property value segment
  67386. SeeAlso: #01945
  67387. Format of NetWare reply buffer:
  67388. Offset Size Description (Table 01945)
  67389. 00h WORD (call) 0000h (no data returned)
  67390. SeeAlso: #01944,#01947
  67391. --------N-21E3--SF3F-------------------------
  67392. INT 21 - Novell NetWare - BINDERY SERVICES - VERIFY BINDERY OBJECT PASSWORD
  67393. AH = E3h subfn 3Fh
  67394. DS:SI -> request buffer (see #01947)
  67395. ES:DI -> reply buffer (see #01945)
  67396. Return: AL = status (see #01946)
  67397. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67398. SeeAlso: AH=E3h/SF=40h,AX=F217h/SF=3Fh
  67399. (Table 01946)
  67400. Values for NetWare function status:
  67401. 00h successful
  67402. 96h server out of memory
  67403. F0h wildcard not allowed
  67404. FBh no such property
  67405. FCh no such object
  67406. FEh server bindery locked
  67407. FFh bindery failure: no such object, bad password, no password for object,
  67408. or invalid old password
  67409. SeeAlso: #01941,#01950
  67410. Format of NetWare "Verify Bindery Object Password" request buffer:
  67411. Offset Size Description (Table 01947)
  67412. 00h WORD length of following data (max 133h)
  67413. 02h BYTE 3Fh (subfunction "Verify Bindery Object Password")
  67414. 03h WORD (big-endian) type of object
  67415. 05h BYTE length of object's name (01h-2Fh)
  67416. 06h N BYTEs object name
  67417. BYTE length of password (00h-7Fh)
  67418. N BYTEs password
  67419. SeeAlso: #01945
  67420. --------N-21E3--SF40-------------------------
  67421. INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT PASSWORD
  67422. AH = E3h subfn 40h
  67423. DS:SI -> request buffer (see #01948)
  67424. ES:DI -> reply buffer (see #01949)
  67425. Return: AL = status (see #01946)
  67426. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67427. SeeAlso: AH=E3h/SF=3Fh,AH=E3h/SF=41h,AX=F217h/SF=40h
  67428. Format of NetWare "Change Bindery Object Password" request buffer:
  67429. Offset Size Description (Table 01948)
  67430. 00h WORD length of following data (max 133h)
  67431. 02h BYTE 40h (subfunction "Change Bindery Object Password")
  67432. 03h WORD (big-endian) type of object
  67433. 05h BYTE length of object's name (01h-2Fh)
  67434. 06h N BYTEs object name
  67435. BYTE length of old password (00h-7Fh)
  67436. N BYTEs old password
  67437. BYTE length of new password (00h-7Fh)
  67438. N BYTEs new password
  67439. SeeAlso: #01949,#02195
  67440. Format of NetWare reply buffer:
  67441. Offset Size Description (Table 01949)
  67442. 00h WORD (call) 0000h (no data returned)
  67443. SeeAlso: #01948,#01951
  67444. --------N-21E3--SF41-------------------------
  67445. INT 21 - Novell NetWare - BINDERY SERVICES - ADD BINDERY OBJECT TO SET
  67446. AH = E3h subfn 41h
  67447. DS:SI -> request buffer (see #01951)
  67448. ES:DI -> reply buffer (see #01949)
  67449. Return: AL = status (see #01950)
  67450. Desc: add the specified object to an object's group property
  67451. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67452. SeeAlso: AH=E3h/SF=40h,AH=E3h/SF=42h,AH=E3h/SF=43h,AX=F217h/SF=41h
  67453. (Table 01950)
  67454. Values for NetWare function status:
  67455. 00h successful
  67456. 96h server out of memory
  67457. E9h member already exists
  67458. EAh member does not exist
  67459. EBh not a group property
  67460. F0h wildcard not allowed
  67461. F8h can't write property
  67462. F9h not permitted to read property
  67463. FBh no such property
  67464. FCh no such object
  67465. FEh server bindery locked
  67466. FFh bindery failure
  67467. SeeAlso: #01946,#01961
  67468. Format of NetWare "Add Bindery Object to Set" request buffer:
  67469. Offset Size Description (Table 01951)
  67470. 00h WORD length of following data (max 75h)
  67471. 02h BYTE 41h (subfunction "Add Bindery Object to Set")
  67472. 03h WORD (big-endian) type of object
  67473. 05h BYTE length of object's name
  67474. 06h N BYTEs object name
  67475. BYTE length of property name (01h-0Fh)
  67476. N BYTEs property name
  67477. WORD (big-endian) type of member object
  67478. BYTE length of member object's name
  67479. N BYTEs member object's name
  67480. SeeAlso: #01949
  67481. --------N-21E3--SF42-------------------------
  67482. INT 21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT FROM SET
  67483. AH = E3h subfn 42h
  67484. DS:SI -> request buffer (see #01952)
  67485. ES:DI -> reply buffer (see #01953)
  67486. Return: AL = status (see #01950)
  67487. Desc: delete the specified object from a set property
  67488. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67489. SeeAlso: AH=E3h/SF=40h,AH=E3h/SF=42h,AH=E3h/SF=43h,AX=F217h/SF=42h
  67490. Format of NetWare "Delete Bindery Object from Set" request buffer:
  67491. Offset Size Description (Table 01952)
  67492. 00h WORD length of following data (max 75h)
  67493. 02h BYTE 42h (subfunction "Delete Bindery Object from Set")
  67494. 03h WORD (big-endian) type of object
  67495. 05h BYTE length of object's name
  67496. 06h N BYTEs object name
  67497. BYTE length of property name (01h-0Fh)
  67498. N BYTEs property name
  67499. WORD (big-endian) type of member object
  67500. BYTE length of member object's name
  67501. N BYTEs member object's name
  67502. SeeAlso: #01953
  67503. Format of NetWare reply buffer:
  67504. Offset Size Description (Table 01953)
  67505. 00h WORD (call) 0000h (no data returned)
  67506. SeeAlso: #01952,#01954,#01955,#01956
  67507. --------N-21E3--SF43-------------------------
  67508. INT 21 - Novell NetWare - BINDERY SERVICES - IS BINDERY OBJECT IN SET
  67509. AH = E3h subfn 43h
  67510. DS:SI -> request buffer (see #01954)
  67511. ES:DI -> reply buffer (see #01953)
  67512. Return: AL = status (see #01950)
  67513. Desc: determine whether the specified object is a member of the given set
  67514. property
  67515. Notes: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67516. the caller must have read access to the property
  67517. SeeAlso: AH=E3h/SF=41h,AH=E3h/SF=42h,AX=F217h/SF=43h
  67518. Format of NetWare "Is Bindery Object in Set?" request buffer:
  67519. Offset Size Description (Table 01954)
  67520. 00h WORD length of following data (max 75h)
  67521. 02h BYTE 43h (subfunction "Is Bindery Object In Set")
  67522. 03h WORD (big-endian) type of object
  67523. 05h BYTE length of object's name
  67524. 06h N BYTEs object's name
  67525. BYTE length of property's name
  67526. N BYTEs property's name
  67527. WORD (big-endian) type of member object
  67528. BYTE length of member object's name
  67529. N BYTEs member object's name
  67530. SeeAlso: #01953
  67531. --------N-21E3--SF44-------------------------
  67532. INT 21 - Novell NetWare - BINDERY SERVICES - CLOSE BINDERY
  67533. AH = E3h subfn 44h
  67534. DS:SI -> request buffer (see #01955)
  67535. ES:DI -> reply buffer (see #01953)
  67536. Return: AL = status
  67537. 00h successful
  67538. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67539. SeeAlso: AH=E3h/SF=45h,AX=F217h/SF=44h
  67540. Format of NetWare "Close Bindery" request buffer:
  67541. Offset Size Description (Table 01955)
  67542. 00h WORD 0001h (length of following data)
  67543. 02h BYTE 44h (subfunction "Close Bindery")
  67544. SeeAlso: #01953,#01956
  67545. --------N-21E3--SF45-------------------------
  67546. INT 21 - Novell NetWare - BINDERY SERVICES - OPEN BINDERY
  67547. AH = E3h subfn 45h
  67548. DS:SI -> request buffer (see #01956)
  67549. ES:DI -> reply buffer (see #01953)
  67550. Return: AL = status
  67551. 00h successful
  67552. Notes: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67553. the bindery may only be opened by the supervisor or an object with
  67554. equivalent privileges
  67555. SeeAlso: AH=E3h/SF=44h,AX=F217h/SF=45h
  67556. Format of NetWare "Open Bindery" request buffer:
  67557. Offset Size Description (Table 01956)
  67558. 00h WORD 0001h (length of following data)
  67559. 02h BYTE 45h (subfunction "Open Bindery")
  67560. SeeAlso: #01953,#01955
  67561. --------N-21E3--SF46-------------------------
  67562. INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY ACCESS LEVEL
  67563. AH = E3h subfn 46h
  67564. DS:SI -> request buffer (see #01957)
  67565. ES:DI -> reply buffer (see #01958)
  67566. Return: AL = status
  67567. 00h successful
  67568. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67569. SeeAlso: AX=F217h/SF=46h
  67570. Format of NetWare "Get Bindery Access Level" request buffer:
  67571. Offset Size Description (Table 01957)
  67572. 00h WORD 0001h (length of following data)
  67573. 02h BYTE 46h (subfunction "Get Bindery Access Level")
  67574. SeeAlso: #01958,#02189
  67575. Format of NetWare "Get Bindery Access Level" reply buffer:
  67576. Offset Size Description (Table 01958)
  67577. 00h WORD 0005h (length of following buffer)
  67578. 02h BYTE security levels
  67579. 03h DWORD (big-endian) object ID
  67580. SeeAlso: #01957,#02189
  67581. --------N-21E3--SF47-------------------------
  67582. INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN BINDERY OBJ TRUSTEE PATHS
  67583. AH = E3h subfn 47h
  67584. DS:SI -> request buffer (see #01959)
  67585. ES:DI -> reply buffer (see #01960)
  67586. Return: AL = status (00h,96h,F0h,F1h,FCh,FEh,FFh) (see #01961)
  67587. Desc: iterate through the directories to which an object is a trustee
  67588. Note: this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  67589. SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Dh,AH=E2h/SF=0Eh,AX=F217h/SF=47h
  67590. Format of NetWare "Scan Bindery Object Trustee Paths" request buffer:
  67591. Offset Size Description (Table 01959)
  67592. 00h WORD 0008h (length of following data)
  67593. 02h BYTE 47h (subfunction "Scan Bindery Object Trustee Paths")
  67594. 03h BYTE volume number (00h-1Fh)
  67595. 04h WORD (big-endian) last sequence number (FFFFh on first call)
  67596. 06h DWORD (big-endian) object ID
  67597. SeeAlso: #01960,#02190
  67598. Format of NetWare "Scan Bindery Object Trustee Paths" reply buffer:
  67599. Offset Size Description (Table 01960)
  67600. 00h WORD (call) length of following results buffer (max 107h)
  67601. 02h WORD (big-endian) next sequence number
  67602. 04h DWORD (big-endian) object ID
  67603. 08h BYTE trustee directory rights (see #01849 at AH=E2h/SF=03h)
  67604. 09h BYTE length of trustee path
  67605. 0Ah N BYTEs trustee path
  67606. SeeAlso: #01959,#02190
  67607. --------N-21E3--SF64-------------------------
  67608. INT 21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE
  67609. AH = E3h subfn 64h
  67610. DS:SI -> request buffer (see #01962)
  67611. ES:DI -> reply buffer (see #01963)
  67612. Return: AL = status (00h,96h,99h,9Bh,9Ch,EDh-F1h,F5h,F7h,FCh,FEh,FFh)
  67613. (see #01961)
  67614. Notes: this function is supported by Advanced NetWare 2.1+
  67615. caller must be on a workstation with supervisor privileges
  67616. SeeAlso: AH=E3h/SF=65h,AH=E3h/SF=66h,AH=E3h/SF=68h,AH=E3h/SF=6Bh
  67617. SeeAlso: AX=F217h/SF=64h
  67618. (Table 01961)
  67619. Values for NetWare function status:
  67620. 00h (0) successful
  67621. 96h (150) server out of memory
  67622. 99h (153) directory full
  67623. 9Bh (155) invalid directory handle
  67624. 9Ch (156) invalid path
  67625. D0h (208) queue error
  67626. D1h (209) no such queue
  67627. D2h (210) no server for queue
  67628. D3h (211) no queue rights
  67629. D4h (212) queue full
  67630. D5h (213) no queue job
  67631. D6h (214) no job rights
  67632. D7h (215) queue servicing error
  67633. D8h (216) queue not active
  67634. D9h (217) station is not a server
  67635. DAh (218) queue halted
  67636. DBh (219) too many queue servers
  67637. EDh (237) property already exists
  67638. EEh (238) object already exists
  67639. EFh (239) invalid name
  67640. F0h (240) wildcard not allowed
  67641. F1h (241) invalid bindery security level
  67642. F5h (245) not permitted to create object
  67643. F7h (247) not permitted to create property
  67644. FCh (252) no such object
  67645. FEh (254) server bindery locked
  67646. FFh (255) bindery failure
  67647. SeeAlso: #01950,#02002,#01680,#02860 at INT 2F/AX=7A20h/BX=0000h
  67648. Format of NetWare "Create Queue" request buffer:
  67649. Offset Size Description (Table 01962)
  67650. 00h WORD length of following data (max ABh)
  67651. 02h BYTE 64h (subfunction "Create Queue")
  67652. 03h WORD (big-endian) queue type
  67653. 05h BYTE length of queue's name (01h-2Fh)
  67654. 06h N BYTEs queue's name
  67655. BYTE directory handle or 00h
  67656. BYTE length of path name (01h-76h)
  67657. N BYTEs path name of directory in which to create queue subdirectory
  67658. SeeAlso: #01963,#02198
  67659. Format of NetWare "Create Queue" reply buffer:
  67660. Offset Size Description (Table 01963)
  67661. 00h WORD (call) 0004h (size of following results buffer)
  67662. 02h DWORD (big-endian) object ID of queue
  67663. SeeAlso: #01962,#02198
  67664. --------N-21E3--SF65-------------------------
  67665. INT 21 - Novell NetWare - QUEUE SERVICES - DESTROY QUEUE
  67666. AH = E3h subfn 65h
  67667. DS:SI -> request buffer (see #01964)
  67668. ES:DI -> reply buffer (see #01969)
  67669. Return: AL = status (00h,96h,9Ch,D0h,D1h,FFh) (see also AH=E3h/SF=64h)
  67670. FFh hardware failure
  67671. Desc: abort all active jobs, detach all job servers, remove all job entries,
  67672. delete all job files, remove the queue object and its properties
  67673. from the bindery, and delete the queue's subdirectory
  67674. Notes: this function is supported by Advanced NetWare 2.1+
  67675. caller must have SUPERVISOR privileges
  67676. SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=66h,AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=70h
  67677. SeeAlso: AX=F217h/SF=65h
  67678. Format of NetWare "Destroy Queue" request buffer:
  67679. Offset Size Description (Table 01964)
  67680. 00h WORD 0005h (length of following data)
  67681. 02h BYTE 65h (subfunction "Destroy Queue")
  67682. 03h DWORD (big-endian) object ID of queue
  67683. SeeAlso: #01969
  67684. --------N-21E3--SF66-------------------------
  67685. INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE CURRENT STATUS (OLD)
  67686. AH = E3h subfn 66h
  67687. DS:SI -> request buffer (see #01965)
  67688. ES:DI -> reply buffer (see #01966)
  67689. Return: AL = status (00h,96h,9Ch,D1h-D3h,F1h,FCh,FEh,FFh) (see #01961)
  67690. Notes: this function is supported by Advanced NetWare 2.1+
  67691. caller must be on a workstation which is security-equivalent to a
  67692. member of the queue's Q_USERS or Q_OPERATORS properties
  67693. SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=67h,AH=E3h/SF=6Fh,AH=E3h/SF=76h
  67694. SeeAlso: AX=F217h/SF=66h
  67695. Format of NetWare "Read Queue Current Status (old)" request buffer:
  67696. Offset Size Description (Table 01965)
  67697. 00h WORD 0005h (length of following data)
  67698. 02h BYTE 66h (subfunction "Read Queue Current Status")
  67699. 03h DWORD (big-endian) object ID of queue
  67700. SeeAlso: #01966,#02199 at AX=F217h/SF=66h
  67701. Format of NetWare "Read Queue Current Status (old)" reply buffer:
  67702. Offset Size Description (Table 01966)
  67703. 00h WORD (call) 0085h (size of following results)
  67704. 02h DWORD (big-endian) object ID of queue
  67705. 06h BYTE status of queue (see #01967)
  67706. 07h BYTE number of jobs in queue (00h-FAh)
  67707. 08h BYTE number of servers attached to queue (00h-19h)
  67708. 09h 25 DWORDs list of object IDs of attached servers
  67709. 6Dh 25 BYTEs list of attached servers' stations
  67710. 86h BYTE (call) maximum number of servers to return
  67711. SeeAlso: #01965,#02199 at AX=F217h/SF=66h
  67712. Bitfields for NetWare queue status:
  67713. Bit(s) Description (Table 01967)
  67714. 0 operator disabled addition of new jobs
  67715. 1 operator refuses additional job servers attaching
  67716. 2 operator disabled job servicing
  67717. SeeAlso: #01966,#01968
  67718. --------N-21E3--SF67-------------------------
  67719. INT 21 - Novell NetWare - QUEUE SERVICES - SET QUEUE CURRENT STATUS (OLD)
  67720. AH = E3h subfn 67h
  67721. DS:SI -> request buffer (see #01968)
  67722. ES:DI -> reply buffer (see #01969)
  67723. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,FEh,FFh) (see #01961)
  67724. Notes: this function is supported by Advanced NetWare 2.1+
  67725. caller must have operator privileges
  67726. SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=66h,AH=E3h/SF=6Fh,AH=E3h/SF=76h
  67727. SeeAlso: AX=F217h/SF=67h
  67728. Format of NetWare "Set Queue Current Status (old)" request buffer:
  67729. Offset Size Description (Table 01968)
  67730. 00h WORD 0006h (length of following data)
  67731. 02h BYTE 67h (subfunction "Set Queue Current Status")
  67732. 03h DWORD (big-endian) object ID of queue
  67733. 07h BYTE queue status (see #01967)
  67734. SeeAlso: #01969
  67735. Format of NetWare reply buffer:
  67736. Offset Size Description (Table 01969)
  67737. 00h WORD (call) 0000h (no results returned)
  67738. --------N-21E3--SF68-------------------------
  67739. INT 21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE JOB AND FILE
  67740. AH = E3h subfn 68h
  67741. DS:SI -> request buffer (see #01970)
  67742. ES:DI -> reply buffer (see #01972)
  67743. Return: AL = status (00h,96h,99h,9Ch,D0h-D4h,DAh,EDh,EFh-F1h,F7h,FCh,FEh,FFh)
  67744. (see #01961)
  67745. Notes: this function is supported by Advanced NetWare 2.1+
  67746. caller must be on a workstation which is security-equivalent to a
  67747. member of the queue's Q_USER property
  67748. SeeAlso: AX=B807h,AH=E0h"SPOOLING",AH=E3h/SF=69h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  67749. SeeAlso: AX=F217h/SF=68h
  67750. Format of NetWare "Create Queue Job and File" request buffer:
  67751. Offset Size Description (Table 01970)
  67752. 00h WORD 0107h (length of following data)
  67753. 02h BYTE 68h (subfunction "Close File and Start Queue Job")
  67754. 03h DWORD (big-endian) object ID of queue
  67755. 07h 256 BYTEs job structure (see #01971)
  67756. SeeAlso: #01972,#02200
  67757. Format of NetWare old-style job structure:
  67758. Offset Size Description (Table 01971)
  67759. 00h BYTE client station
  67760. 01h BYTE client task number
  67761. 02h DWORD (big-endian) object ID of client
  67762. 06h DWORD (big-endian) object ID of target server
  67763. FFFFFFFh if any server acceptable
  67764. 0Ah 6 BYTEs target execution time (year,month,day,hour,minute,second)
  67765. FFFFFFFFFFFFh to execute as soon as possible
  67766. 10h 6 BYTEs job entry time (year,month,day,hour,minute,second)
  67767. 16h WORD (big-endian) job number
  67768. 18h WORD (big-endian) job type
  67769. 1Ah BYTE job position
  67770. 1Bh BYTE job control flags (see #01980)
  67771. 1Ch 14 BYTEs ASCIZ job file name
  67772. 2Ah 6 BYTEs job file handle
  67773. 30h BYTE server station
  67774. 31h BYTE server task number
  67775. 32h DWORD (big-endian) object ID of server
  67776. 36h 50 BYTEs ASCIZ job description string
  67777. 68h 152 BYTEs client record area
  67778. SeeAlso: #01970,#02210
  67779. Format of NetWare "Create Queue Job and File" reply buffer:
  67780. Offset Size Description (Table 01972)
  67781. 00h WORD (call) 0036h (size of following results buffer)
  67782. 02h BYTE client station
  67783. 03h BYTE client task number
  67784. 04h DWORD (big-endian) object ID of client
  67785. 08h DWORD (big-endian) object ID of target server
  67786. 0Ch 6 BYTEs target execution time (year,month,day,hour,minute,second)
  67787. 12h 6 BYTEs job entry time (year,month,day,hour,minute,second)
  67788. 18h WORD (big-endian) job number
  67789. 1Ah WORD (big-endian) job type
  67790. 1Ch BYTE job position
  67791. 1Dh BYTE job control flags (see #01980)
  67792. 1Eh 14 BYTEs ASCIZ job file name
  67793. 2Ch 6 BYTEs job file handle
  67794. 32h BYTE server station
  67795. 33h BYTE server task number
  67796. 34h DWORD (big-endian) object ID of server or 00000000h
  67797. SeeAlso: #01970,#02200
  67798. --------N-21E3--SF69-------------------------
  67799. INT 21 - Novell NetWare - QUEUE SERVICES - CLOSE FILE AND START QUEUE JOB (OLD)
  67800. AH = E3h subfn 69h
  67801. DS:SI -> request buffer (see #01973)
  67802. ES:DI -> reply buffer (see #01974)
  67803. Return: AL = status (00h,96h,D0h,D1h,D3h,D5h,D6h,FEh,FFh) (see #01961)
  67804. Notes: this function is supported by Advanced NetWare 2.1+
  67805. caller must be on the workstation which created the job
  67806. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh,AX=F217h/SF=69h
  67807. Format of NetWare "Close File and Start Queue Job (old)" request buffer:
  67808. Offset Size Description (Table 01973)
  67809. 00h WORD 0007h (length of following data)
  67810. 02h BYTE 69h (subfunction "Close File and Start Queue Job")
  67811. 03h DWORD (big-endian) object ID of queue
  67812. 07h WORD (big-endian) job number
  67813. SeeAlso: #01974
  67814. Format of NetWare reply buffer:
  67815. Offset Size Description (Table 01974)
  67816. 00h WORD (call) 0000h (no results returned)
  67817. SeeAlso: #01973,#01975
  67818. --------N-21E3--SF6A-------------------------
  67819. INT 21 - Novell NetWare - QUEUE SERVICES - REMOVE JOB FROM QUEUE (OLD)
  67820. AH = E3h subfn 6Ah
  67821. DS:SI -> request buffer (see #01975)
  67822. ES:DI -> reply buffer (see #01974)
  67823. Return: AL = status (00h,96h,D0h,D1h,D5h,D6h,FEh,FFh) (see #01961)
  67824. Notes: this function is supported by Advanced NetWare 2.1+
  67825. caller must have created the job or be an operator
  67826. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh,AX=F217h/SF=6Ah
  67827. Format of NetWare "Remove Job From Queue (old)" request buffer:
  67828. Offset Size Description (Table 01975)
  67829. 00h WORD 0007h (length of following data)
  67830. 02h BYTE 6Ah (subfunction "Remove Job From Queue (old)")
  67831. 03h DWORD (big-endian) object ID of queue
  67832. 07h WORD (big-endian) job number
  67833. --------N-21E3--SF6B-------------------------
  67834. INT 21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB LIST (OLD)
  67835. AH = E3h subfn 6Bh
  67836. DS:SI -> request buffer (see #01976)
  67837. ES:DI -> reply buffer (see #01977)
  67838. Return: AL = status (00h,96h,9Ch,D0h-D3h,FCh,FEh,FFh) (see #01961)
  67839. Notes: this function is supported by Advanced NetWare 2.1+
  67840. caller must be on a workstation which is security-equivalent to a
  67841. member of the Q_USERS or Q_OPERATORS properties
  67842. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh,AX=F217h/SF=6Bh
  67843. Format of NetWare "Get Queue Job List (old)" request buffer:
  67844. Offset Size Description (Table 01976)
  67845. 00h WORD 0005h (length of following data)
  67846. 02h BYTE 6Bh (subfunction "Get Queue Job List (old)")
  67847. 03h DWORD (big-endian) object ID of queue
  67848. SeeAlso: #01977
  67849. Format of NetWare "Get Queue Job List (old)" reply buffer:
  67850. Offset Size Description (Table 01977)
  67851. 00h WORD (call) size of following results buffer (max 1F6h)
  67852. 02h WORD (big-endian) job count
  67853. 04h N WORDs (big-endian) list of job numbers by position in queue
  67854. WORD maximum job numbers
  67855. SeeAlso: #01976
  67856. --------N-21E3--SF6C-------------------------
  67857. INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE JOB ENTRY (OLD)
  67858. AH = E3h subfn 6Ch
  67859. DS:SI -> request buffer (see #01978)
  67860. ES:DI -> reply buffer (see #01979)
  67861. Return: AL = status (00h,96h,D0h-D3h,D5h,FCh,FEh,FFh) (see #01961)
  67862. Notes: this function is supported by Advanced NetWare 2.1+
  67863. caller must be on a workstation which is security-equivalent to a
  67864. member of the Q_USERS, Q_OPERATORS, or Q_SERVERS properties
  67865. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh,AX=F217h/SF=6Ch
  67866. Format of NetWare "Read Queue Job Entry (old)" request buffer:
  67867. Offset Size Description (Table 01978)
  67868. 00h WORD 0007h (length of following data)
  67869. 02h BYTE 6Ch (subfunction "Read Queue Job Entry (old)")
  67870. 03h DWORD (big-endian) object ID of queue
  67871. 07h WORD (big-endian) job number
  67872. SeeAlso: #01979
  67873. Format of NetWare "Read Queue Job Entry (old)" reply buffer:
  67874. Offset Size Description (Table 01979)
  67875. 00h WORD (call) 0100h (size of following results)
  67876. 02h BYTE client station number
  67877. 03h BYTE client task number
  67878. 04h DWORD object ID of client
  67879. 08h DWORD (big-endian) object ID of target server
  67880. FFFFFFFFh if any server acceptable
  67881. 0Ch 6 BYTEs target execution time (year,month,day,hour,minute,second)
  67882. FFFFFFFFFFFFh if serviced as soon as possible
  67883. 12h 6 BYTEs job entry time (year,month,day,hour,minute,second)
  67884. 18h WORD (big-endian) job number
  67885. 1Ah WORD (big-endian) job type
  67886. 1Ch BYTE job position
  67887. 1Dh BYTE job control flags (see #01980)
  67888. 1Eh 14 BYTEs ASCIZ job filename
  67889. 2Ch 6 BYTEs job file handle
  67890. 32h BYTE server station
  67891. 33h BYTE server task number
  67892. 34h DWORD object ID of server
  67893. 38h 50 BYTEs ASCIZ job description string
  67894. 6Ah 152 BYTEs client record area
  67895. SeeAlso: #01978
  67896. Bitfields for NetWare job control flags:
  67897. Bit(s) Description (Table 01980)
  67898. 3 job will be serviced automatically if connection broken
  67899. 4 job remains in queue after server aborts job
  67900. 5 client has not filled associated job file
  67901. 6 User Hold--job advances, but cannot be serviced until this is
  67902. cleared by user or operator
  67903. 7 Operator Hold--job advances, but cannot be serviced until this is
  67904. cleared by an operator
  67905. SeeAlso: #01979
  67906. --------N-21E3--SF6D-------------------------
  67907. INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB ENTRY (OLD)
  67908. AH = E3h subfn 6Dh
  67909. DS:SI -> request buffer (see #01981)
  67910. ES:DI -> reply buffer (see #01983)
  67911. Return: AL = status (00h,96h,D0h,D1h,D5h,D7h,FEh,FFh) (see #01961)
  67912. Notes: this function is supported by Advanced NetWare 2.1+
  67913. caller must be an operator or the user who created the job
  67914. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Ch,AH=E3h/SF=6Eh
  67915. SeeAlso: AX=F217h/SF=6Dh
  67916. Format of NetWare "Change Queue Job Entry" request buffer:
  67917. Offset Size Description (Table 01981)
  67918. 00h WORD 0105h (length of following data)
  67919. 02h BYTE 6Dh (subfunction "Change Queue Job Entry")
  67920. 03h DWORD (big-endian) object ID of queue
  67921. 07h 256 BYTEs job structure (see #01971)
  67922. SeeAlso: #01983
  67923. --------N-21E3--SF6E-------------------------
  67924. INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB POSITION
  67925. AH = E3h subfn 6Eh
  67926. DS:SI -> request buffer (see #01982)
  67927. ES:DI -> reply buffer (see #01983)
  67928. Return: AL = status (00h,96h,D0h,D1h,D5h,D6h,FEh,FFh) (see #01961)
  67929. Notes: this function is supported by Advanced NetWare 2.1+
  67930. caller must be an operator
  67931. if the specified position is greater than the number of jobs in the
  67932. queue, the job is placed at the end of the queue
  67933. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Ch,AH=E3h/SF=6Dh
  67934. SeeAlso: AX=F217h/SF=6Eh
  67935. Format of NetWare "Change Queue Job Position" request buffer:
  67936. Offset Size Description (Table 01982)
  67937. 00h WORD 0008h (length of following data)
  67938. 02h BYTE 6Eh (subfunction "Change Queue Job Position")
  67939. 03h DWORD (big-endian) object ID of queue
  67940. 07h WORD (big-endian) job number
  67941. 09h BYTE new position in queue
  67942. (01h = first, FAh [250] = last position in full queue)
  67943. SeeAlso: #01983
  67944. Format of NetWare reply buffer:
  67945. Offset Size Description (Table 01983)
  67946. 00h WORD (call) 0000h (no results returned)
  67947. SeeAlso: #01981,#01982,#01984
  67948. --------N-21E3--SF6F-------------------------
  67949. INT 21 - Novell NetWare - QUEUE SERVICES - ATTACH QUEUE SERVER TO QUEUE
  67950. AH = E3h subfn 6Fh
  67951. DS:SI -> request buffer (see #01984)
  67952. ES:DI -> reply buffer (see #01983)
  67953. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,DAh,DBh,FEh,FFh)
  67954. (see also AH=E3h/SF=64h)
  67955. FFh bindery failure, or no such property, or no such member
  67956. Desc: attach the calling job server to the specified queue
  67957. Notes: this function is supported by Advanced NetWare 2.1+
  67958. a queue may have up to 25 job servers attached
  67959. the calling workstation must be security-equivalent to a member of the
  67960. queue's Q_SERVERS property
  67961. SeeAlso: AH=E3h/SF=70h,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
  67962. SeeAlso: AX=F217h/SF=6Fh
  67963. Format of NetWare "Attach Queue Server to Queue" request buffer:
  67964. Offset Size Description (Table 01984)
  67965. 00h WORD 0005h (length of following data)
  67966. 02h BYTE 6Fh (subfunction "Attach Queue Server To Queue")
  67967. 03h DWORD (big-endian) object ID of queue
  67968. SeeAlso: #01983,#01985
  67969. --------N-21E3--SF70-------------------------
  67970. INT 21 - Novell NetWare - QUEUE SERVICES - DETACH QUEUE SERVER FROM QUEUE
  67971. AH = E3h subfn 70h
  67972. DS:SI -> request buffer (see #01985)
  67973. ES:DI -> reply buffer (see #01983)
  67974. Return: AL = status (00h,96h,9Ch,D0h,D1h,D2h,FEh,FFh) (see #01961)
  67975. Desc: remove the calling job server from the specified queue's list of
  67976. servers
  67977. Notes: this function is supported by Advanced NetWare 2.1+
  67978. the caller must have previously attached itself to the queue
  67979. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
  67980. SeeAlso: AX=F217h/SF=70h
  67981. Format of NetWare "Detach Queue Server From Queue" request buffer:
  67982. Offset Size Description (Table 01985)
  67983. 00h WORD 0005h (length of following data)
  67984. 02h BYTE 70h (subfunction "Detach Queue Server From Queue")
  67985. 03h DWORD (big-endian) object ID of queue
  67986. SeeAlso: #01983,#01984
  67987. --------N-21E3--SF71-------------------------
  67988. INT 21 - Novell NetWare - QUEUE SERVICES - SERVICE QUEUE JOB AND OPEN FILE
  67989. AH = E3h subfn 71h
  67990. DS:SI -> request buffer (see #01986)
  67991. ES:DI -> reply buffer (see #01972)
  67992. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,D5h,D9h,DAh,FEh,FFh)
  67993. (see #01961)
  67994. Notes: this function is supported by Advanced NetWare 2.1+
  67995. the caller must be on a workstation which is security-equivalent to a
  67996. member of the queue's Q_USERS, Q_OPERATORS, or Q_SERVERS properties
  67997. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
  67998. SeeAlso: AX=F217h/SF=71h
  67999. Format of NetWare "Service Queue Job and Open File" request buffer:
  68000. Offset Size Description (Table 01986)
  68001. 00h WORD 0007h (length of following data)
  68002. 02h BYTE 71h (subfunction "Service Queue Job and Open File")
  68003. 03h DWORD (big-endian) object ID of queue
  68004. 07h WORD (big-endian) target job type
  68005. FFFFh any
  68006. SeeAlso: #01972,#01987
  68007. --------N-21E3--SF72-------------------------
  68008. INT 21 - Novell NetWare - QUEUE SERVICES - FINISH SERVICING QUEUE JOB AND FILE
  68009. AH = E3h subfn 72h
  68010. DS:SI -> request buffer (see #01987)
  68011. ES:DI -> reply buffer (see #01989)
  68012. Return: AL = status (00h,96h,D0h,D1h,D6h) (see #01961)
  68013. Desc: inform the Queue Management System (QMS) that the queue server has
  68014. completed a job
  68015. Notes: this function is supported by Advanced NetWare 2.1+
  68016. the caller must be a job server which has previously obtained a job
  68017. for servicing
  68018. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=73h,AH=E3h/SF=76h
  68019. SeeAlso: AX=F217h/SF=72h
  68020. Format of NetWare "Finish Servicing Queue Job and File (old)" request buffer:
  68021. Offset Size Description (Table 01987)
  68022. 00h WORD 000Bh (length of following data)
  68023. 02h BYTE 72h (subfunction "Finish Servicing Queue Job and File (old)")
  68024. 03h DWORD (big-endian) object ID of queue
  68025. 07h WORD (big-endian) job number
  68026. 09h DWORD (big-endian) charge
  68027. SeeAlso: #01989,#01986,#01998
  68028. --------N-21E3--SF73-------------------------
  68029. INT 21 - Novell NetWare - QUEUE SERVICES - ABORT SERVICING QUEUE JOB AND FILE
  68030. AH = E3h subfn 73h
  68031. DS:SI -> request buffer (see #01988)
  68032. ES:DI -> reply buffer (see #01989)
  68033. Return: AL = status (00h,96h,D0h,D1h,D6h,D9h) (see #01961)
  68034. Desc: inform the Queue Management System (QMS) that the queue server is
  68035. unable to service a previously-accepted job
  68036. Notes: this function is supported by Advanced NetWare 2.1+
  68037. this is an old version of the call (see AH=E3h/SF=84h)
  68038. only a job server which previously accepted a job for servicing may
  68039. call this function
  68040. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=76h,AH=E3h/SF=84h
  68041. SeeAlso: AX=F217h/SF=73h
  68042. Format of NetWare "Abort Servicing Queue Job and File (old)" request buffer:
  68043. Offset Size Description (Table 01988)
  68044. 00h WORD 0007h (length of following data)
  68045. 02h BYTE 73h (subfunction "Abort Servicing Queue Job and File (old)")
  68046. 03h DWORD (big-endian) object ID of queue
  68047. 07h WORD (big-endian) job number
  68048. SeeAlso: #01989,#01987
  68049. Format of NetWare reply buffer:
  68050. Offset Size Description (Table 01989)
  68051. 00h WORD (call) 0000h (no results returned)
  68052. SeeAlso: #01987,#01988,#01990,#01991
  68053. --------N-21E3--SF74-------------------------
  68054. INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE TO CLIENT RIGHTS (OLD)
  68055. AH = E3h subfn 74h
  68056. DS:SI -> request buffer (see #01990)
  68057. ES:DI -> reply buffer (see #01989)
  68058. Return: AL = status (00h,96h,D0h,D1h,D5h,D9h) (see #01961)
  68059. Desc: temporarily assume the login identity of the client submitting the
  68060. job being serviced
  68061. Notes: this function is supported by Advanced NetWare 2.1+
  68062. caller must be a job server which has obtained a job for servicing
  68063. SeeAlso: AH=E3h/SF=75h,AX=F217h/SF=74h
  68064. Format of NetWare "Change to Client Rights (old)" request buffer:
  68065. Offset Size Description (Table 01990)
  68066. 00h WORD 0007h (length of following data)
  68067. 02h BYTE 74h (subfunction "Change To Client Rights (old)")
  68068. 03h DWORD (big-endian) object ID of queue
  68069. 07h WORD (big-endian) job number
  68070. SeeAlso: #01989,#01991
  68071. --------N-21E3--SF75-------------------------
  68072. INT 21 - Novell NetWare - QUEUE SERVICES - RESTORE QUEUE SERVER RIGHTS
  68073. AH = E3h subfn 75h
  68074. DS:SI -> request buffer (see #01991)
  68075. ES:DI -> reply buffer (see #01989)
  68076. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,D5h,D9h,DAh,FEh,FFh) (see #01961)
  68077. Desc: restore server's own identity after assuming the login identity of the
  68078. client submitting the job being serviced
  68079. Notes: this function is supported by Advanced NetWare 2.1+
  68080. caller must be a job server which has previously changed its identity
  68081. SeeAlso: AH=E3h/SF=74h,AX=F217h/SF=75h
  68082. Format of NetWare "Restore Queue Server Rights" request buffer:
  68083. Offset Size Description (Table 01991)
  68084. 00h WORD 0001h (length of following data)
  68085. 02h BYTE 75h (subfunction "Change To Client Rights")
  68086. SeeAlso: #01989,#01990
  68087. --------N-21E3--SF76-------------------------
  68088. INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE SERVER CURRENT STATUS OLD
  68089. AH = E3h subfn 76h
  68090. DS:SI -> request buffer (see #01992)
  68091. ES:DI -> reply buffer (see #01993)
  68092. Return: AL = status (00h,96h,9Ch,D1h-D3h,F1h,FCh,FEh,FFh) (see #01961)
  68093. Notes: this function is supported by Advanced NetWare 2.1+
  68094. caller must be on a workstation which is security-equivalent to a
  68095. member of the Q_USERS or Q_OPERATORS properties
  68096. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=6Fh,AH=E3h/SF=77h,AH=E3h/SF=78h
  68097. SeeAlso: AX=F217h/SF=76h
  68098. Format of NetWare "Read Queue Server Current Status (old)" request buffer:
  68099. Offset Size Description (Table 01992)
  68100. 00h WORD 000Ah (length of following data)
  68101. 02h BYTE 76h (subfunction "Read Queue Server Current Status (old)")
  68102. 03h DWORD (big-endian) object ID of queue
  68103. 07h DWORD (big-endian) object ID of server
  68104. 0Bh BYTE server station
  68105. SeeAlso: #01993
  68106. Format of NetWare "Read Queue Server Current Status (old)" reply buffer:
  68107. Offset Size Description (Table 01993)
  68108. 00h WORD (call) 0040h (size of following results)
  68109. 02h 64 BYTEs server status record (format depends on server)
  68110. first four bytes should contain estimated "price" for an
  68111. average job
  68112. SeeAlso: #01992,#02203
  68113. --------N-21E3--SF77-------------------------
  68114. INT 21 - Novell NetWare - QUEUE SERVICES - SET QUEUE SERVER CURRENT STATUS
  68115. AH = E3h subfn 77h
  68116. DS:SI -> request buffer (see #01994)
  68117. ES:DI -> reply buffer (see #01995)
  68118. Return: AL = status (00h,96h,9Ch,D0h,D1h,FEh,FFh) (see #01961)
  68119. Notes: this function is supported by Advanced NetWare 2.1+
  68120. caller must be a job server which has attached itself to the queue
  68121. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=6Fh,AH=E3h/SF=76h,AH=E3h/SF=78h
  68122. SeeAlso: AX=F217h/SF=77h
  68123. Format of NetWare "Set Queue Server Current Status" request buffer:
  68124. Offset Size Description (Table 01994)
  68125. 00h WORD 0045h (length of following data)
  68126. 02h BYTE 77h (subfunction "Set Queue Server Current Status")
  68127. 03h DWORD (big-endian) object ID of queue
  68128. 07h 64 BYTEs server status record (format depends on server)
  68129. first four bytes should contain estimated "price" for an
  68130. average job
  68131. SeeAlso: #01995
  68132. Format of NetWare "Set Queue Server Current Status" reply buffer:
  68133. Offset Size Description (Table 01995)
  68134. 00h WORD (call) 0000h (no results returned)
  68135. SeeAlso: #01994
  68136. --------N-21E3--SF78-------------------------
  68137. INT 21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB'S FILE SIZE (OLD)
  68138. AH = E3h subfn 78h
  68139. DS:SI -> request buffer (see #01996)
  68140. ES:DI -> reply buffer (see #01997)
  68141. Return: AL = status (see also #01961)
  68142. 00h successful
  68143. Notes: this function is supported by Advanced NetWare 2.1+
  68144. caller must be on a workstation which is security-equivalent to a
  68145. member of the queue's Q_USERS, Q_OPERATORS, or Q_SERVERS properties
  68146. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=71h,AX=F217h/SF=78h
  68147. Format of NetWare "Get Queue Job's File Size (old)" request buffer:
  68148. Offset Size Description (Table 01996)
  68149. 00h WORD 0007h (length of following data)
  68150. 02h BYTE 78h (subfunction "Get Queue Job's File Size (old)")
  68151. 03h DWORD (big-endian) object ID of queue
  68152. 07h WORD (big-endian) job number
  68153. SeeAlso: #01997,#02204 at AX=F217h/SF=78h
  68154. Format of NetWare "Get Queue Job's File Size (old)" reply buffer:
  68155. Offset Size Description (Table 01997)
  68156. 00h WORD (call) 000Ah (size of following results)
  68157. 02h DWORD (big-endian) object ID of queue
  68158. 06h WORD (big-endian) job number
  68159. 08h DWORD (big-endian) size of job file in bytes
  68160. SeeAlso: #01996,#02204 at AX=F217h/SF=78h
  68161. --------N-21E3--SF83-------------------------
  68162. INT 21 - Novell NetWare - QUEUE SERVICES - FINISH SERVICING QUEUE JOB
  68163. AH = E3h subfn 83h
  68164. DS:SI -> request buffer (see #01998)
  68165. ES:DI -> reply buffer (see #01999)
  68166. Return: AL = status (00h,96h,D0h,D1h,D6h,D9h) (see #01961)
  68167. Desc: inform the Queue Management System (QMS) that the queue server has
  68168. completed servicing a previously-accepted job
  68169. Notes: this function is supported by Advanced NetWare 3.1+
  68170. this variant of Abort Servicing Queue Job allows use of the high
  68171. connection byte in the NCP packet header, unlike AH=E3h/SF=73h
  68172. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=84h
  68173. SeeAlso: AX=F217h/SF=83h
  68174. Format of NetWare "Finish Servicing Queue Job" request buffer:
  68175. Offset Size Description (Table 01998)
  68176. 00h WORD 0007h (length of following data)
  68177. 02h BYTE 84h (subfunction "Abort Servicing Queue Job")
  68178. 03h DWORD (big-endian) object ID of queue
  68179. 07h WORD (big-endian) job number
  68180. 09h DWORD (big-endian) charge for job
  68181. SeeAlso: #01999,#01987
  68182. Format of NetWare "Finish Servicing Queue Job" reply buffer:
  68183. Offset Size Description (Table 01999)
  68184. 00h WORD (call) 0000h (no results returned)
  68185. SeeAlso: #01998
  68186. --------N-21E3--SF84-------------------------
  68187. INT 21 - Novell NetWare - QUEUE SERVICES - ABORT SERVICING QUEUE JOB
  68188. AH = E3h subfn 84h
  68189. DS:SI -> request buffer (see #02000)
  68190. ES:DI -> reply buffer (see #02001)
  68191. Return: AL = status (00h,96h,D0h,D1h,D6h,D9h) (see #01961)
  68192. Desc: inform the Queue Management System (QMS) that the queue server is
  68193. unable to service a previously-accepted job
  68194. Notes: this function is supported by Advanced NetWare 3.1+
  68195. this variant of Abort Servicing Queue Job allows use of the high
  68196. connection byte in the NCP packet header, unlike AH=E3h/SF=73h
  68197. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
  68198. SeeAlso: AX=F217h/SF=84h
  68199. Format of NetWare "Abort Servicing Queue Job" request buffer:
  68200. Offset Size Description (Table 02000)
  68201. 00h WORD 0007h (length of following data)
  68202. 02h BYTE 84h (subfunction "Abort Servicing Queue Job")
  68203. 03h DWORD (big-endian) object ID of queue
  68204. 07h WORD (big-endian) job number
  68205. SeeAlso: #02001
  68206. Format of NetWare "Abort Servicing Queue Job" reply buffer:
  68207. Offset Size Description (Table 02001)
  68208. 00h WORD (call) 0000h (no results returned)
  68209. SeeAlso: #02000
  68210. --------N-21E3--SF96-------------------------
  68211. INT 21 - Novell NetWare - ACCOUNTING SERVICES - GET ACCOUNT STATUS
  68212. AH = E3h subfn 96h
  68213. DS:SI -> request buffer (see #02003)
  68214. ES:DI -> reply buffer (see #02004)
  68215. Return: AL = status (00h,C0h,C1h) (see #02002)
  68216. Note: this function is supported by Advanced NetWare 2.1+
  68217. SeeAlso: AH=E3h/SF=97h,AH=E3h/SF=98h,AH=E3h/SF=99h,AX=F217h/SF=96h
  68218. (Table 02002)
  68219. Values for NetWare function status:
  68220. 00h successful
  68221. C0h no account privileges
  68222. C1h no account balance
  68223. C2h credit limit exceeded
  68224. C3h too many holds on account
  68225. C6h no console rights
  68226. SeeAlso: #01961
  68227. Format of NetWare "Get Account Status" request buffer:
  68228. Offset Size Description (Table 02003)
  68229. 00h WORD length of following data (max 33h)
  68230. 02h BYTE 96h (subfunction "Get Account Status")
  68231. 03h WORD (big-endian) type of bindery object
  68232. 05h BYTE length of object name (01h to 2Fh)
  68233. 06h N BYTEs object name
  68234. SeeAlso: #02004,#02224 at AX=F217h/SF=96h
  68235. Format of NetWare "Get Account Status" reply buffer:
  68236. Offset Size Description (Table 02004)
  68237. 00h WORD (call) length of following buffer space
  68238. 02h DWORD (big-endian) account balance
  68239. 06h DWORD (big-endian) credit limit
  68240. signed number indicating lowest allowable account balance
  68241. 0Ah 120 BYTEs reserved
  68242. 82h DWORD (big-endian) object ID, server 1
  68243. 86h DWORD (big-endian) hold amount, server 1
  68244. ...
  68245. F8h DWORD (big-endian) object ID, server 16
  68246. FCh DWORD (big-endian) hold amount, server 16
  68247. Note: the reply buffer lists the servers which have placed holds on a portion
  68248. of the account balance, and the amount reserved by each
  68249. SeeAlso: #02003,#02224 at AX=F217h/SF=96h
  68250. --------N-21E3--SF97-------------------------
  68251. INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT CHARGE
  68252. AH = E3h subfn 97h
  68253. DS:SI -> request buffer (see #02005)
  68254. ES:DI -> reply buffer (see #02007)
  68255. Return: AL = status (00h,C0h-C2h) (see #02002)
  68256. Note: this function is supported by Advanced NetWare 2.1+
  68257. SeeAlso: AH=E3h/SF=96h,AH=E3h/SF=98h,AX=F217h/SF=97h
  68258. Format of NetWare "Submit Account Charge" request buffer:
  68259. Offset Size Description (Table 02005)
  68260. 00h WORD length of following data (max 13Fh)
  68261. 02h BYTE 97h (subfunction "Submit Account Charge")
  68262. 03h WORD (big-endian) service type
  68263. 05h DWORD (big-endian) amount to be charged to account
  68264. 09h DWORD (big-endian) amount of prior hold to be cancelled
  68265. 0Dh WORD (big-endian) type of bindery object
  68266. 0Fh WORD (big-endian) type of comment
  68267. 8000h-FFFFh reserved for experimental use
  68268. 11h BYTE length of object's name
  68269. 12h N BYTEs object name
  68270. BYTE length of comment
  68271. N BYTEs comment
  68272. SeeAlso: #02007
  68273. --------N-21E3--SF98-------------------------
  68274. INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT HOLD
  68275. AH = E3h subfn 98h
  68276. DS:SI -> request buffer (see #02006)
  68277. ES:DI -> reply buffer (see #02007)
  68278. Return: AL = status (00h,C0h-C3h) (see #02002)
  68279. Note: this function is supported by Advanced NetWare 2.1+
  68280. SeeAlso: AH=E3h/SF=96h,AH=E3h/SF=97h,AX=F217h/SF=98h
  68281. Format of NetWare "Submit Account Hold" request buffer:
  68282. Offset Size Description (Table 02006)
  68283. 00h WORD length of following data (max 37h)
  68284. 02h BYTE 98h (subfunction "Submit Account Hold")
  68285. 03h DWORD (big-endian) amount of account balance to reserve
  68286. 07h WORD (big-endian) type of bindery object
  68287. 09h BYTE length of object's name
  68288. 0Ah N BYTEs object name
  68289. SeeAlso: #02007
  68290. Format of NetWare reply buffer:
  68291. Offset Size Description (Table 02007)
  68292. 00h WORD 0000h (no data returned)
  68293. SeeAlso: #02005,#02006,#02008,#02009
  68294. --------N-21E3--SF99-------------------------
  68295. INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT NOTE
  68296. AH = E3h subfn 99h
  68297. DS:SI -> request buffer (see #02008)
  68298. ES:DI -> reply buffer (see #02007)
  68299. Return: AL = status (00h,C0h) (see #02002)
  68300. Note: this function is supported by Advanced NetWare 2.1+
  68301. SeeAlso: AH=E3h/SF=96h,AX=F217h/SF=99h
  68302. Format of NetWare "Submit Account Note" request buffer:
  68303. Offset Size Description (Table 02008)
  68304. 00h WORD length of following data (max 137h)
  68305. 02h BYTE 99h (subfunction "Submit Account Note")
  68306. 03h WORD (big-endian) type of service
  68307. 05h WORD (big-endian) type of bindery object
  68308. 07h WORD (big-endian) type of comment
  68309. 8000h-FFFFh reserved for experimental use
  68310. 09h BYTE length of object's name
  68311. 0Ah N BYTEs object name
  68312. BYTE length of comment
  68313. N BYTEs comment
  68314. SeeAlso: #02007
  68315. --------N-21E3--SFC8-------------------------
  68316. INT 21 - Novell NetWare - FILE SERVER - CHECK CONSOLE PRIVILEGES
  68317. AH = E3h subfn C8h
  68318. DS:SI -> request buffer (see #02009)
  68319. ES:DI -> reply buffer (see #02007)
  68320. Return: AL = status (00h,C6h) (see #02002)
  68321. Desc: determine whether the caller is a console operator
  68322. Notes: this function is supported by Advanced NetWare 2.1+
  68323. NetWare determines console privileges by checking the file server's
  68324. OPERATOR property for the caller's object ID
  68325. SeeAlso: AH=E3h/SF=C9h,AH=E3h/SF=D1h,AX=F217h/SF=C8h
  68326. Format of NetWare "Check Console Privileges" request buffer:
  68327. Offset Size Description (Table 02009)
  68328. 00h WORD 0001h (length of following data)
  68329. 02h BYTE C8h (subfunction "Check Console Privileges")
  68330. SeeAlso: #02007
  68331. --------N-21E3--SFC9-------------------------
  68332. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER DESCRIPTION STRINGS
  68333. AH = E3h subfn C9h
  68334. DS:SI -> request buffer (see #02010)
  68335. ES:DI -> reply buffer (see #02011)
  68336. Return: AL = status
  68337. 00h successful
  68338. Notes: this function is supported by Advanced NetWare 2.1+
  68339. the calling workstation must be attached to the file server
  68340. SeeAlso: AH=E3h/SF=11h,AH=E3h/SF=CDh,AH=E3h/SF=E8h,AX=F217h/SF=C9h
  68341. Format of NetWare "Get File Server Description Strings" request buffer:
  68342. Offset Size Description (Table 02010)
  68343. 00h WORD 0001h (length of following data)
  68344. 02h BYTE C9h (subfunction "Get File Server Description Strings")
  68345. SeeAlso: #02011,#02225 at AX=F217h/SF=C9h
  68346. Format of NetWare "Get File Server Description Strings" reply buffer:
  68347. Offset Size Description (Table 02011)
  68348. 00h WORD (call) 0200h (size of following results buffer)
  68349. 02h var ASCIZ name of company distributing this copy of NetWare
  68350. var ASCIZ version and revision
  68351. 9 BYTEs ASCIZ revision date (mm/dd/yy)
  68352. var ASCIZ copyright notice
  68353. SeeAlso: #02010,#02225 at AX=F217h/SF=C9h
  68354. --------N-21E3--SFCA-------------------------
  68355. INT 21 - Novell NetWare - FILE SERVER - SET FILE SERVER DATE AND TIME
  68356. AH = E3h subfn CAh
  68357. DS:SI -> request buffer (see #02012)
  68358. ES:DI -> reply buffer (see #02014)
  68359. Return: AL = status (00h,C6h) (see #02002)
  68360. Notes: this function is supported by Advanced NetWare 2.1+
  68361. the calling workstation must have console operator privileges
  68362. SeeAlso: AH=2Bh"DATE",AH=2Dh"TIME",AH=E3h/SF=C8h,AH=E7h"Novell",AX=F217h/SF=CAh
  68363. SeeAlso: AX=F214h
  68364. Format of NetWare "Set File Server Date and Time" request buffer:
  68365. Offset Size Description (Table 02012)
  68366. 00h WORD 0007h (length of following data)
  68367. 02h BYTE CAh (subfunction "Set File Server Date And Time")
  68368. 03h BYTE year (00-79 = 2000-2079, 80-99 = 1980-1999)
  68369. 04h BYTE month (1-12)
  68370. 05h BYTE day (1-31)
  68371. 06h BYTE hour (0-23)
  68372. 07h BYTE minute
  68373. 08h BYTE second
  68374. SeeAlso: #02014,#02106 at AX=F214h
  68375. --------N-21E3--SFCB-------------------------
  68376. INT 21 - Novell NetWare - FILE SERVER - DISABLE FILE SERVER LOGIN
  68377. AH = E3h subfn CBh
  68378. DS:SI -> request buffer (see #02013)
  68379. ES:DI -> reply buffer (see #02014)
  68380. Return: AL = status (00h,C6h) (see #02002)
  68381. Notes: this function is supported by Advanced NetWare 2.1+
  68382. the calling workstation must have console operator privileges
  68383. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CCh,AH=E3h/SF=D3h,AX=F217h/SF=CBh
  68384. Format of NetWare "Disable File Server Login" request buffer:
  68385. Offset Size Description (Table 02013)
  68386. 00h WORD 0001h (length of following data)
  68387. 02h BYTE CBh (subfunction "Disable File Server Login")
  68388. SeeAlso: #02014,#02015
  68389. Format of NetWare reply buffer:
  68390. Offset Size Description (Table 02014)
  68391. 00h WORD (call) 0000h (no results returned)
  68392. SeeAlso: #02012,#02013,#02015
  68393. --------N-21E3--SFCC-------------------------
  68394. INT 21 - Novell NetWare - FILE SERVER - ENABLE FILE SERVER LOGIN
  68395. AH = E3h subfn CCh
  68396. DS:SI -> request buffer (see #02015)
  68397. ES:DI -> reply buffer (see #02014)
  68398. Return: AL = status (00h,C6h) (see #02002)
  68399. Notes: this function is supported by Advanced NetWare 2.1+
  68400. the calling workstation must have console operator privileges
  68401. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh,AX=F217h/SF=CCh
  68402. Format of NetWare "Enable File Server Login" request buffer:
  68403. Offset Size Description (Table 02015)
  68404. 00h WORD 0001h (length of following data)
  68405. 02h BYTE CCh (subfunction "Enable File Server Login")
  68406. SeeAlso: #02014
  68407. --------N-21E3--SFCD-------------------------
  68408. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER LOGIN STATUS
  68409. AH = E3h subfn CDh
  68410. DS:SI -> request buffer (see #02016)
  68411. ES:DI -> reply buffer (see #02017)
  68412. Return: AL = status (00h,C6h) (see #02002)
  68413. Notes: this function is supported by Advanced NetWare 2.1+
  68414. the calling workstation must have console operator privileges
  68415. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh,AH=E3h/SF=CCh
  68416. Format of NetWare "Get File Server Login Status" request buffer:
  68417. Offset Size Description (Table 02016)
  68418. 00h WORD 0001h (length of following data)
  68419. 02h BYTE CDh (subfunction "Get File Server Login Status")
  68420. SeeAlso: #02017,#02226 at AX=F217h/SF=CDh
  68421. Format of NetWare "Get File Server Login Status" reply buffer:
  68422. Offset Size Description (Table 02017)
  68423. 00h WORD (call) 0001h (size of following results buffer)
  68424. 02h BYTE login state (00h disabled, 01h enabled)
  68425. SeeAlso: #02016,#02226 at AX=F217h/SF=CDh
  68426. --------N-21E3--SFCE-------------------------
  68427. INT 21 - Novell NetWare - FILE SERVICES - PURGE ALL ERASED FILES
  68428. AH = E3h subfn CEh
  68429. DS:SI -> request buffer (see #02018)
  68430. ES:DI -> reply buffer (see #02020)
  68431. Return: AL = status (00h,C6h) (see #02002)
  68432. Desc: all files marked for deletion on the file server are purged, regardless
  68433. of which workstation actually erased them
  68434. Notes: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  68435. Alloy NTNX
  68436. the calling workstation must have console operator privileges
  68437. SeeAlso: AH=13h,AH=E2h/SF=10h,AH=E3h/SF=C8h,AX=F217h/SF=CEh,AX=F244h
  68438. Format of NetWare "Purge All Erased Files" request buffer:
  68439. Offset Size Description (Table 02018)
  68440. 00h WORD 0001h (length of following data)
  68441. 02h BYTE CEh (subfunction "Purge All Erased Files")
  68442. SeeAlso: #02020
  68443. --------N-21E3--SFCF-------------------------
  68444. INT 21 - Novell NetWare - FILE SERVER - DISABLE TRANSACTION TRACKING
  68445. AH = E3h subfn CFh
  68446. DS:SI -> request buffer (see #02019)
  68447. ES:DI -> reply buffer (see #02020)
  68448. Return: AL = status (00h,C6h) (see #02002)
  68449. Notes: this function is supported by Advanced NetWare 2.1+
  68450. the calling workstation must have console operator privileges
  68451. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D0h
  68452. Format of NetWare "Disable Transaction Tracking" request buffer:
  68453. Offset Size Description (Table 02019)
  68454. 00h WORD 0001h (length of following data)
  68455. 02h BYTE CFh (subfunction "Disable Transaction Tracking")
  68456. SeeAlso: #02020,#02021
  68457. Format of NetWare reply buffer:
  68458. Offset Size Description (Table 02020)
  68459. 00h WORD (call) 0000h (no results returned)
  68460. SeeAlso: #02018,#02019,#02021
  68461. --------N-21E3--SFD0-------------------------
  68462. INT 21 - Novell NetWare - FILE SERVER - ENABLE TRANSACTION TRACKING
  68463. AH = E3h subfn D0h
  68464. DS:SI -> request buffer (see #02021)
  68465. ES:DI -> reply buffer (see #02020)
  68466. Return: AL = status (00h,C6h) (see #02025)
  68467. Desc: restart transaction tracking after being stopped either explicitly by
  68468. AH=E3h/SF=CFh or automatically due to a full transaction volume
  68469. Notes: this function is supported by Advanced NetWare 2.1+
  68470. the calling workstation must have console operator privileges
  68471. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CFh,AX=F217h/SF=D0h
  68472. Format of NetWare "Enable Transaction Tracking" request buffer:
  68473. Offset Size Description (Table 02021)
  68474. 00h WORD 0001h (length of following data)
  68475. 02h BYTE D0h (subfunction "Enable Transaction Tracking")
  68476. SeeAlso: #02020,#02019
  68477. --------N-21E3--SFD1-------------------------
  68478. INT 21 - Novell NetWare - FILE SERVER - SEND CONSOLE BROADCAST
  68479. AH = E3h subfn D1h
  68480. DS:SI -> request buffer (see #02022)
  68481. ES:DI -> reply buffer (see #02024)
  68482. Return: AL = status (00h,C6h) (see #02025)
  68483. Notes: this function is supported by Advanced NetWare 2.1+
  68484. the calling workstation must have console operator privileges
  68485. the broadcast message will not be received by workstations which have
  68486. disabled broadcasts with AH=E1h/SF=02h
  68487. SeeAlso: AH=E1h/SF=02h,AH=E1h/SF=09h,AH=E3h/SF=C8h,AH=E3h/SF=D3h
  68488. SeeAlso: AX=F217h/SF=D1h
  68489. Format of NetWare "Send Console Broadcast" request buffer:
  68490. Offset Size Description (Table 02022)
  68491. 00h WORD length of following data (max A2h)
  68492. 02h BYTE D1h (subfunction "Send Console Broadcast")
  68493. 03h BYTE number of connections to receive message
  68494. 00h = all, else specific list below
  68495. 04h N BYTEs connection list
  68496. BYTE length of message (max 3Ch)
  68497. N BYTEs message
  68498. SeeAlso: #02024
  68499. --------N-21E3--SFD2-------------------------
  68500. INT 21 - Novell NetWare - FILE SERVER - CLEAR CONNECTION NUMBER
  68501. AH = E3h subfn D2h
  68502. DS:SI -> request buffer (see #02023)
  68503. ES:DI -> reply buffer (see #02024)
  68504. Return: AL = status (00h,C6h) (see #02025)
  68505. Desc: close the open files and release all file locks for a connection,
  68506. abort transactions if a TTS file server, and detach from the file
  68507. server
  68508. Notes: this function is supported by Advanced NetWare 2.1+
  68509. the caller must have SUPERVISOR privileges
  68510. SeeAlso: AH=E3h/SF=C9h,AH=E3h/SF=D1h,AX=F217h/SF=D2h,AX=F217h/SF=FEh
  68511. Format of NetWare "Clear Connection Number" request buffer:
  68512. Offset Size Description (Table 02023)
  68513. 00h WORD 0002h (length of following data)
  68514. 02h BYTE D2h (subfunction "Clear Connection Number")
  68515. 03h BYTE connection number
  68516. SeeAlso: #02024,#02277
  68517. Format of NetWare reply buffer:
  68518. Offset Size Description (Table 02024)
  68519. 00h WORD (call) 0000h (no results returned)
  68520. SeeAlso: #02022,#02023,#02026
  68521. --------N-21E3--SFD3-------------------------
  68522. INT 21 - Novell NetWare - FILE SERVER - DOWN FILE SERVER
  68523. AH = E3h subfn D3h
  68524. DS:SI -> request buffer (see #02026)
  68525. ES:DI -> reply buffer (see #02024)
  68526. Return: AL = status (00h,C6h,FFh) (see #02025)
  68527. Desc: take down the file server
  68528. Notes: this function is supported by Advanced NetWare 2.1+
  68529. the calling workstation must have SUPERVISOR privileges
  68530. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh,AH=E3h/SF=CFh,AH=E3h/SF=D1h
  68531. (Table 02025)
  68532. Values for NetWare function status:
  68533. 00h successful
  68534. C6h no console rights
  68535. FFh files open
  68536. SeeAlso: #02002,#02053
  68537. Format of NetWare "Down File Server" request buffer:
  68538. Offset Size Description (Table 02026)
  68539. 00h WORD 0002h (length of following data)
  68540. 02h BYTE D3h (subfunction "Down File Server")
  68541. 03h BYTE flag: force down even if files open if nonzero
  68542. SeeAlso: #02024
  68543. --------N-21E3--SFD4-------------------------
  68544. INT 21 - Novell NetWare - FILE SERVER - GET FILE SYSTEM STATISTICS
  68545. AH = E3h subfn D4h
  68546. DS:SI -> request buffer (see #02027)
  68547. ES:DI -> reply buffer (see #02028)
  68548. Return: AL = status (00h,C6h) (see #02025)
  68549. Notes: this function is supported by Advanced NetWare 2.1+
  68550. the calling workstation must have console operator privileges
  68551. SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=C8h,AH=E3h/SF=D9h,AH=E3h/SF=E7h,AH=E3h/SF=E8h
  68552. SeeAlso: AX=F217h/SF=D4h
  68553. Format of NetWare "Get File System Statistics" request buffer:
  68554. Offset Size Description (Table 02027)
  68555. 00h WORD 0001h (length of following data)
  68556. 02h BYTE D4h (subfunction "Get File System Statistics")
  68557. SeeAlso: #02028,#02227 at AX=F217h/SF=D4h
  68558. Format of NetWare "Get File System Statistics" reply buffer:
  68559. Offset Size Description (Table 02028)
  68560. 00h WORD (call) 0028h (size of following results buffer)
  68561. 02h DWORD clock ticks since system started
  68562. 06h WORD maximum open files set by configuration
  68563. 08h WORD maximum files open concurrently
  68564. 0Ah WORD current number of open files
  68565. 0Ch DWORD total files opened
  68566. 10h DWORD total file read requests
  68567. 14h DWORD total file write requests
  68568. 18h WORD current changed FATs
  68569. 1Ah WORD total changed FATs
  68570. 1Ch WORD number of FAT write errors
  68571. 1Eh WORD number of fatal FAT write errors
  68572. 20h WORD number of FAT scan errors
  68573. 22h WORD maximum concurrently-indexed files
  68574. 24h WORD current number of indexed files
  68575. 26h WORD number of attached indexed files
  68576. 28h WORD number of indexed files available
  68577. Note: all fields except the first are big-endian
  68578. SeeAlso: #02027,#02227 at AX=F217h/SF=D4h
  68579. --------N-21E3--SFD5-------------------------
  68580. INT 21 - Novell NetWare - FILE SERVER - GET TRANSACTION TRACKING STATISTICS
  68581. AH = E3h subfn D5h
  68582. DS:SI -> request buffer (see #02029)
  68583. ES:DI -> reply buffer (see #02030)
  68584. Return: AL = status (00h,C6h) (see #02025)
  68585. Notes: this function is supported by Advanced NetWare 2.1+
  68586. the calling workstation must have console operator privileges
  68587. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CFh,AH=E3h/SF=D0h,AH=E3h/SF=E8h
  68588. SeeAlso: AX=F217h/SF=D5h
  68589. Format of NetWare "Get Transaction Tracking Statistics" request buffer:
  68590. Offset Size Description (Table 02029)
  68591. 00h WORD 0001h (length of following data)
  68592. 02h BYTE D5h (subfunction "TTS Get Statistics")
  68593. SeeAlso: #02030,#02228 at AX=F217h/SF=D5h
  68594. Format of NetWare "Get Transaction Tracking Statistics" reply buffer:
  68595. Offset Size Description (Table 02030)
  68596. 00h WORD (call) length of following results buffer (max 1BCh)
  68597. 02h DWORD (big-endian) clock ticks since system started
  68598. 06h BYTE transaction tracking supported if nonzero
  68599. (all following fields are invalid if zero)
  68600. 07h BYTE transaction tracking enabled
  68601. 08h WORD (big-endian) transaction volume number
  68602. 0Ah WORD (big-endian) maximum simultaneous transactions configured
  68603. 0Ch WORD (big-endian) maximum simultaneous transactions since startup
  68604. 0Eh WORD (big-endian) current transactions in progress
  68605. 10h DWORD (big-endian) total transactions performed
  68606. 14h DWORD (big-endian) total write transactions
  68607. 18h DWORD (big-endian) total transactions backed out
  68608. 1Ch WORD (big-endian) number of unfilled backout requests
  68609. 1Eh WORD (big-endian) disk blocks used for transaction tracking
  68610. 20h DWORD (big-endian) blocks allocated for tracked-file FATs
  68611. 24h DWORD (big-endian) number of file size changes during a transaction
  68612. 28h DWORD (big-endian) number of file truncations during a transaction
  68613. 2Ch BYTE number of records following
  68614. 2Dh Active Transaction Records [array]
  68615. Offset Size Description
  68616. 00h BYTE logical connection number
  68617. 01h BYTE task number
  68618. SeeAlso: #02029,#02228 at AX=F217h/SF=D5h
  68619. --------N-21E3--SFD6-------------------------
  68620. INT 21 - Novell NetWare - FILE SERVER - GET DISK CACHE STATISTICS
  68621. AH = E3h subfn D6h
  68622. DS:SI -> request buffer (see #02031)
  68623. ES:DI -> reply buffer (see #02032)
  68624. Return: AL = status (00h,C6h) (see #02025)
  68625. Notes: this function is supported by Advanced NetWare 2.1+
  68626. the calling workstation must have console operator privileges
  68627. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D5h,AH=E3h/SF=D8h,AH=E3h/SF=D9h,AH=E3h/SF=E6h
  68628. SeeAlso: AX=F217h/SF=D6h
  68629. Format of NetWare "Get Disk Cache Statistics" request buffer:
  68630. Offset Size Description (Table 02031)
  68631. 00h WORD 0001h (length of following data)
  68632. 02h BYTE D6h (subfunction "Get Disk Cache Statistics")
  68633. SeeAlso: #02032,#02229 at AX=F217h/SF=D6h
  68634. Format of NetWare "Get Disk Cache Statistics" reply buffer:
  68635. Offset Size Description (Table 02032)
  68636. 00h WORD (call) 004Eh (length of following results buffer)
  68637. 02h DWORD clock ticks since system started
  68638. 06h WORD number of cache buffers
  68639. 08h WORD size of cache buffer in bytes
  68640. 0Ah WORD number of dirty cache buffers
  68641. 0Ch DWORD number of cache read requests
  68642. 10h DWORD number of cache write requests
  68643. 14h DWORD number of cache hits
  68644. 18h DWORD number of cache misses
  68645. 1Ch DWORD number of physical read requests
  68646. 20h DWORD number of physical write requests
  68647. 24h WORD number of physical read errors
  68648. 26h WORD number of physical write errors
  68649. 28h DWORD cache get requests
  68650. 2Ch DWORD cache full write requests
  68651. 30h DWORD cache partial write requests
  68652. 34h DWORD background dirty writes
  68653. 38h DWORD background aged writes
  68654. 3Ch DWORD total cache writes
  68655. 40h DWORD number of cache allocations
  68656. 44h WORD thrashing count
  68657. 46h WORD number of times LRU block was dirty
  68658. 48h WORD number of reads on cache blocks not yet filled by writes
  68659. 4Ah WORD number of times a fragmented write occurred
  68660. 4Ch WORD number of cache hits on unavailable block
  68661. 4Eh WORD number of times a cache block was scrapped
  68662. Note: all fields except the first are big-endian
  68663. SeeAlso: #02031,#02229 at AX=F217h/SF=D6h
  68664. --------N-21E3--SFD7-------------------------
  68665. INT 21 - Novell NetWare - FILE SERVER - GET DRIVE MAPPING TABLE
  68666. AH = E3h subfn D7h
  68667. DS:SI -> request buffer (see #02033)
  68668. ES:DI -> reply buffer (see #02034)
  68669. Return: AL = status (00h,C6h) (see #02025)
  68670. Notes: this function is supported by Advanced NetWare 2.1+
  68671. the calling workstation must have console operator privileges
  68672. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D6h,AH=E3h/SF=D9h,AH=E3h/SF=E6h,AH=E3h/SF=E9h
  68673. SeeAlso: AX=F217h/SF=D7h
  68674. Format of NetWare "Get Drive Mapping Table" request buffer:
  68675. Offset Size Description (Table 02033)
  68676. 00h WORD 0001h (length of following data)
  68677. 02h BYTE D7h (subfunction "Get Drive Mapping Table")
  68678. SeeAlso: #02034,#02230 at AX=F217h/SF=D7h
  68679. Format of NetWare "Get Drive Mapping Table" reply buffer:
  68680. Offset Size Description (Table 02034)
  68681. 00h WORD (call) 00ECh (length of following results buffer)
  68682. 02h DWORD (big-endian) clock tick elapsed since system started
  68683. 06h BYTE fault tolerance (SFT) level
  68684. 07h BYTE number of logical drives attached to server
  68685. 08h BYTE number of physical drives attached to server
  68686. 09h 5 BYTEs disk channel types (00h none, 01h XT, 02h AT, 03h SCSI,
  68687. 04h disk coprocessor drive, 32h-FFh value-added drive types)
  68688. 0Eh WORD (big-endian) number of outstanding controller commands
  68689. 10h 32 BYTEs drive mapping table (FFh = no such drive)
  68690. 30h 32 BYTEs drive mirror table (secondary physical drive, FFh = none)
  68691. 50h 32 BYTEs dead mirror table (last drive mapped to, FFh if never mirrored)
  68692. 70h BYTE physical drive being remirrored (FFh = none)
  68693. 71h BYTE reserved
  68694. 72h DWORD (big-endian) remirrored block
  68695. 76h 60 BYTEs SFT error table (internal error counters)
  68696. SeeAlso: #02033,#02230 at AX=F217h/SF=D7h
  68697. --------N-21E3--SFD8-------------------------
  68698. INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL DISK STATISTICS
  68699. AH = E3h subfn D8h
  68700. DS:SI -> request buffer (see #02035)
  68701. ES:DI -> reply buffer (see #02036)
  68702. Return: AL = status (00h,C6h) (see #02025)
  68703. Notes: this function is supported by Advanced NetWare 2.1+
  68704. the calling workstation must have console operator privileges
  68705. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D9h,AH=E3h/SF=E9h,AX=F217h/SF=D8h
  68706. Format of NetWare "Get Physical Disk Statistics" request buffer:
  68707. Offset Size Description (Table 02035)
  68708. 00h WORD 0002h (length of following data)
  68709. 02h BYTE D8h (subfunction "Get Physical Disk Statistics")
  68710. 03h BYTE physical disk number
  68711. SeeAlso: #02036,#02231 at AX=F217h/SF=D8h
  68712. Format of NetWare "Get Physical Disk Statistics" reply buffer:
  68713. Offset Size Description (Table 02036)
  68714. 00h WORD (call) 005Dh (size of following results record)
  68715. 02h DWORD (big-endian) clock ticks since system started
  68716. 06h BYTE physical disk channel
  68717. 07h BYTE flag: drive removable if nonzero
  68718. 08h BYTE physical drive type
  68719. 09h BYTE drive number within controller
  68720. 0Ah BYTE controller number
  68721. 0Bh BYTE controller type
  68722. 0Ch DWORD (big-endian) size of drive in 4K disk blocks
  68723. 10h WORD (big-endian) number of cylinders on drive
  68724. 12h BYTE number of heads
  68725. 13h BYTE number of sectors per track
  68726. 14h 64 BYTEs ASCIZ drive make and model
  68727. 54h WORD (big-endian) number of I/O errors
  68728. 56h DWORD (big-endian) start of Hot Fix table
  68729. 5Ah WORD (big-endian) size of Hot Fix table
  68730. 5Ch WORD (big-endian) number of Hot Fix blocks available
  68731. 5Eh BYTE flag: Hot Fix disabled if nonzero
  68732. SeeAlso: #02035,#02231 at AX=F217h/SF=D8h
  68733. --------N-21E3--SFD9-------------------------
  68734. INT 21 - Novell NetWare - FILE SERVER - GET DISK CHANNEL STATISTICS
  68735. AH = E3h subfn D9h
  68736. DS:SI -> request buffer (see #02037)
  68737. ES:DI -> reply buffer (see #02038)
  68738. Return: AL = status (00h,C6h) (see #02025)
  68739. Notes: this function is supported by Advanced NetWare 2.1+
  68740. the calling workstation must have console operator privileges
  68741. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D8h,AH=E3h/SF=E6h,AH=E3h/SF=E9h
  68742. SeeAlso: AX=F217h/SF=D9h
  68743. Format of NetWare "Get Disk Channel Statistics" request buffer:
  68744. Offset Size Description (Table 02037)
  68745. 00h WORD 0002h (length of following data)
  68746. 02h BYTE D9h (subfunction "Get Disk Channel Statistics")
  68747. 03h BYTE channel number
  68748. SeeAlso: #02038,#02232 at AX=F217h/SF=D9h
  68749. Format of NetWare "Get Disk Channel Statistics" reply buffer:
  68750. Offset Size Description (Table 02038)
  68751. 00h WORD (call) 00A8h (size of following results record)
  68752. 02h DWORD (big-endian) clock ticks since system started
  68753. 06h WORD (big-endian) channel run state (see #02039)
  68754. 08h WORD (big-endian) channel synchronization state (see #02040)
  68755. 0Ah BYTE driver type
  68756. 0Bh BYTE major version of driver
  68757. 0Ch BYTE minor version of driver
  68758. 0Dh 65 BYTEs ASCIZ driver description
  68759. 4Eh WORD (big-endian) first I/O address used
  68760. 50h WORD (big-endian) length of first I/O address
  68761. 52h WORD (big-endian) second I/O address used
  68762. 54h WORD (big-endian) length of second I/O address
  68763. 56h 3 BYTEs first shared memory address
  68764. 59h 2 BYTEs length of first shared memory address
  68765. 5Bh 3 BYTEs second shared memory address
  68766. 5Eh 2 BYTEs length of second shared memory address
  68767. 60h BYTE first interrupt number in-use flag
  68768. 61h BYTE first interrupt number used
  68769. 62h BYTE second interrupt number in-use flag
  68770. 63h BYTE second interrupt number used
  68771. 64h BYTE first DMA channel in-use flag
  68772. 65h BYTE first DMA channel used
  68773. 66h BYTE second DMA channel in-use flag
  68774. 67h BYTE second DMA channel used
  68775. 68h BYTE flags
  68776. 69h BYTE reserved
  68777. 6Ah 80 BYTEs ASCIZ configuration description
  68778. SeeAlso: #02037,#02232 at AX=F217h/SF=D9h
  68779. (Table 02039)
  68780. Values for channel run state:
  68781. 0000h running
  68782. 0001h being stopped
  68783. 0002h stopped
  68784. 0003h nonfunctional
  68785. SeeAlso: #02038,#02040
  68786. (Table 02040)
  68787. Values for channel synchronization state:
  68788. 0000h not in use
  68789. 0002h used by NetWare, no other requests
  68790. 0004h used by NetWare, other requests
  68791. 0006h in use, not needed by NetWare
  68792. 0008h in use, needed by NetWare
  68793. 000Ah channel released, NetWare should use it
  68794. SeeAlso: #02038,#02039
  68795. --------N-21E3--SFDA-------------------------
  68796. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S TASK INFORMATION
  68797. AH = E3h subfn DAh
  68798. DS:SI -> request buffer (see #02041)
  68799. ES:DI -> reply buffer (see #02042)
  68800. Return: AL = status (00h,C6h) (see #02053)
  68801. Notes: this function is supported by Advanced NetWare 2.1+
  68802. the calling workstation must have console operator privileges
  68803. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E1h,AH=E3h/SF=E5h
  68804. SeeAlso: AX=F217h/SF=DAh
  68805. Format of NetWare "Get Connection's Task Information" request buffer:
  68806. Offset Size Description (Table 02041)
  68807. 00h WORD 0003h (length of following data)
  68808. 02h BYTE DAh (subfunction "Get Connection's Task Information")
  68809. 03h WORD (big-endian) logical connection number
  68810. SeeAlso: #02042,#02233 at AX=F217h/SF=DAh
  68811. Format of NetWare "Get Connection's Task Information" reply buffer:
  68812. Offset Size Description (Table 02042)
  68813. 00h WORD (call) size of following results record (max 1FEh)
  68814. 02h BYTE lock status of connection (see #02043)
  68815. 03h var Lock Status Information (see #02044)
  68816. N BYTE number of records following
  68817. N+1 Active Task Information Records [array]
  68818. Offset Size Description
  68819. 00h BYTE task number (01h-FFh)
  68820. 01h BYTE task state
  68821. 01h in TTS explicit transaction
  68822. 02h in TTS implicit transaction
  68823. 04h shared fileset lock active
  68824. SeeAlso: #02041,#02233 at AX=F217h/SF=DAh
  68825. (Table 02043)
  68826. Values for lock status of connection:
  68827. 00h no locks
  68828. 01h waiting on physical record lock
  68829. 02h waiting on file lock
  68830. 03h waiting on logical record lock
  68831. 04h waiting on semaphore
  68832. SeeAlso: #02042,#02044
  68833. Format of Lock Status Information:
  68834. Offset Size Description (Table 02044)
  68835. ---lock status 00h---
  68836. no fields
  68837. ---lock status 01h---
  68838. 00h BYTE number of waiting task
  68839. 01h DWORD start address
  68840. 05h DWORD end address
  68841. 09h BYTE volume number
  68842. 0Ah WORD directory entry number
  68843. 0Ch 14 BYTEs ASCIZ filename
  68844. ---lock status 02h---
  68845. 00h BYTE number of waiting task
  68846. 01h BYTE volume number
  68847. 02h WORD directory entry number
  68848. 04h 14 BYTEs ASCIZ filename
  68849. ---lock status 03h---
  68850. 00h BYTE number of waiting task
  68851. 01h BYTE length of record name
  68852. 02h N BYTEs ASCIZ record name
  68853. ---lock status 04h---
  68854. 00h BYTE number of waiting task
  68855. 01h BYTE length of semaphore's name
  68856. 02h N BYTEs ASCIZ semaphore name
  68857. SeeAlso: #02042,#02043
  68858. --------N-21E3--SFDB-------------------------
  68859. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S OPEN FILES (OLD)
  68860. AH = E3h subfn DBh
  68861. DS:SI -> request buffer (see #02045)
  68862. ES:DI -> reply buffer (see #02046)
  68863. Return: AL = status (00h,C6h) (see #02053)
  68864. Notes: this function is supported by Advanced NetWare 2.1+
  68865. the calling workstation must have console operator privileges
  68866. SeeAlso: AH=E2h/SF=1Ah,AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DCh,AH=E3h/SF=DFh
  68867. SeeAlso: AH=E3h/SF=E1h,AX=F217h/SF=DBh
  68868. Format of NetWare "Get Connection's Open Files (old)" request buffer:
  68869. Offset Size Description (Table 02045)
  68870. 00h WORD 0005h (length of following data)
  68871. 02h BYTE DBh (subfunction "Get Connection's Open Files")
  68872. 03h WORD (big-endian) logical connection number
  68873. 05h WORD (big-endian) last record seen (0000h on first call)
  68874. SeeAlso: #02046,#02234 at AX=F217h/SF=DBh
  68875. Format of NetWare "Get Connection's Open Files (old)" reply buffer:
  68876. Offset Size Description (Table 02046)
  68877. 00h WORD (call) size of following results record (max 1FEh)
  68878. 02h WORD next request record (place in "last record" field on next call)
  68879. 0000h if no more records
  68880. 04h BYTE number of records following
  68881. 05h var array of File Information Records (see #02047)
  68882. SeeAlso: #02045,#02234 at AX=F217h/SF=DBh
  68883. Format of NetWare File Information Record:
  68884. Offset Size Description (Table 02047)
  68885. 00h BYTE task number
  68886. 01h BYTE lock flags (see #02048)
  68887. 02h BYTE access flags (see #02049)
  68888. 03h BYTE lock type
  68889. 00h no lock
  68890. FEh file lock
  68891. FFh locked by Begin Share File Set
  68892. 04h BYTE volume number (00h-1Fh)
  68893. 05h WORD (big-endian) directory entry number
  68894. 07h 14 BYTEs ASCIZ filename
  68895. SeeAlso: #02046
  68896. Bitfields for lock flags:
  68897. Bit(s) Description (Table 02048)
  68898. 0 file is locked
  68899. 1 file opened Shareable
  68900. 2 logged
  68901. 3 file opened Normal
  68902. 6 TTS holding lock
  68903. 7 Transaction Flag set on file
  68904. SeeAlso: #02047,#02049
  68905. Bitfields for access flags:
  68906. Bit(s) Description (Table 02049)
  68907. 0 file open for reading by calling station
  68908. 1 file open for writing by calling station
  68909. 2 deny reads by other stations
  68910. 3 deny writes by other stations
  68911. 4 file detached
  68912. 5 TTS Holding Detach
  68913. 6 TTS Holding Open
  68914. SeeAlso: #02047,#02048
  68915. --------N-21E3--SFDC-------------------------
  68916. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTIONS USING A FILE
  68917. AH = E3h subfn DCh
  68918. DS:SI -> request buffer (see #02050)
  68919. ES:DI -> reply buffer (see #02051)
  68920. Return: AL = status (00h,C6h) (see #02053)
  68921. Notes: this function is supported by Advanced NetWare 2.1+
  68922. the calling workstation must have console operator privileges
  68923. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E1h
  68924. SeeAlso: AX=F217h/SF=DCh
  68925. Format of NetWare "Get Connections Using a File" request buffer:
  68926. Offset Size Description (Table 02050)
  68927. 00h WORD length of following data (max 104h)
  68928. 02h BYTE DCh (subfunction "Get Connections Using a File")
  68929. 03h WORD (big-endian) last record (0000h on first call)
  68930. 05h BYTE directory handle
  68931. 06h BYTE length of file path
  68932. 07h N BYTEs ASCIZ file path
  68933. SeeAlso: #02051,#02235 at AX=F217h/SF=DCh
  68934. Format of NetWare "Get Connections Using a File" reply buffer:
  68935. Offset Size Description (Table 02051)
  68936. 00h WORD (call) size of following results record (max 1FEh)
  68937. 02h WORD (big-endian) count of tasks which have opened or logged file
  68938. 04h WORD (big-endian) count of tasks which have opened file
  68939. 06h WORD (big-endian) count of opens for reading
  68940. 08h WORD (big-endian) count of opens for writing
  68941. 0Ah WORD (big-endian) deny read count
  68942. 0Ch WORD (big-endian) deny write count
  68943. 0Eh WORD next request record (place in "last record" field on next call)
  68944. 0000h if no more records
  68945. 10h BYTE locked flag
  68946. 00h not locked exclusively
  68947. else locked exclusively
  68948. 11h BYTE number of records following
  68949. 12h var array of File Usage Information Records (see #02052)
  68950. SeeAlso: #02050,#02235 at AX=F217h/SF=DCh
  68951. Format of NetWare File Usage Information Record:
  68952. Offset Size Description (Table 02052)
  68953. 00h WORD (big-endian) logical connection number
  68954. 02h BYTE task number
  68955. 03h BYTE lock flags (see #02048)
  68956. 04h BYTE access flags (see #02049)
  68957. 05h BYTE lock type
  68958. 00h no lock
  68959. FEh file lock
  68960. FFh locked by Begin Share File Set
  68961. --------N-21E3--SFDD-------------------------
  68962. INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY CONN&FILE
  68963. AH = E3h subfn DDh
  68964. DS:SI -> request buffer (see #02054)
  68965. ES:DI -> reply buffer (see #02055)
  68966. Return: AL = status (00h,C6h,FFh) (see #02053)
  68967. Notes: this function is supported by Advanced NetWare 2.1+
  68968. the calling workstation must have console operator privileges
  68969. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DEh,AH=E3h/SF=DFh,AX=F217h/SF=DDh
  68970. (Table 02053)
  68971. Values for NetWare function status:
  68972. 00h successful
  68973. C6h no console rights
  68974. FFh file not open
  68975. SeeAlso: #02025,#02094
  68976. Format of NetWare "Get Phys Record Locks by Conn and File" request buffer:
  68977. Offset Size Description (Table 02054)
  68978. 00h WORD 0016h (length of following data)
  68979. 02h BYTE DDh (subfunction "Get Physical Record Locks by Connection and
  68980. File")
  68981. 03h WORD (big-endian) logical connection number
  68982. 05h WORD (big-endian) last record seen (0000h on first call)
  68983. 07h BYTE volume number (00h-1Fh)
  68984. 08h WORD (big-endian) directory handle
  68985. 0Ah 14 BYTEs ASCIZ filename
  68986. SeeAlso: #02055,#02236 at AX=F217h/SF=DDh
  68987. Format of NetWare "Get Phys Record Locks by Conn and File" reply buffer:
  68988. Offset Size Description (Table 02055)
  68989. 00h WORD (call) size of following results record (max 1FEh)
  68990. 02h WORD next request record (place in "last record" on next call)
  68991. 0000h if no more records
  68992. 04h BYTE number of physical record locks
  68993. 05h BYTE number of records following
  68994. 06h var array of Physical Record Lock Info records (see #02056)
  68995. SeeAlso: #02054,#02236 at AX=F217h/SF=DDh
  68996. Format of NetWare Physical Record Lock Info:
  68997. Offset Size Description (Table 02056)
  68998. 00h BYTE task number
  68999. 01h BYTE lock status (see #02057)
  69000. 02h DWORD (big-endian) starting offset of record in file
  69001. 06h DWORD (big-endian) ending offset of record in file
  69002. SeeAlso: #02055
  69003. Bitfields for lock status:
  69004. Bit(s) Description (Table 02057)
  69005. 0 exclusive lock
  69006. 1 shareable lock
  69007. 2 logged
  69008. 6 lock held by TTS
  69009. SeeAlso: #02056
  69010. --------N-21E3--SFDE-------------------------
  69011. INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY FILE
  69012. AH = E3h subfn DEh
  69013. DS:SI -> request buffer (see #02058)
  69014. ES:DI -> reply buffer (see #02059)
  69015. Return: AL = status (00h,C6h,FFh) (see #02053)
  69016. Notes: this function is supported by Advanced NetWare 2.1+
  69017. the calling workstation must have console operator privileges
  69018. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=DFh,AX=F217h/SF=DEh
  69019. Format of NetWare "Get Physical Record Locks by File" request buffer:
  69020. Offset Size Description (Table 02058)
  69021. 00h WORD length of following data (max 104h)
  69022. 02h BYTE DEh (subfunction "Get Physical Record Locks by File")
  69023. 03h WORD (big-endian) last record seen (0000h on first call)
  69024. 05h BYTE directory handle
  69025. 06h BYTE length of filename
  69026. 07h N BYTEs ASCIZ filename
  69027. SeeAlso: #02059,#02237 at AX=F217h/SF=DEh
  69028. Format of NetWare "Get Physical Record Locks by File" reply buffer:
  69029. Offset Size Description (Table 02059)
  69030. 00h WORD (call) size of following results record (max 1FEh)
  69031. 02h WORD next request record (place in "last record" on next call)
  69032. 0000h if no more records
  69033. 04h BYTE number of physical record locks
  69034. 05h BYTE number of records following
  69035. 06h var array of Physical Record Lock Info records (see #02060)
  69036. SeeAlso: #02058,#02237 at AX=F217h/SF=DEh
  69037. Format of NetWare Physical Record Lock Info:
  69038. Offset Size Description (Table 02060)
  69039. 00h WORD (big-endian) number of tasks logging record
  69040. 02h WORD (big-endian) number of tasks with shareable lock
  69041. 04h DWORD (big-endian) starting offset of record in file
  69042. 08h DWORD (big-endian) ending offset of record in file
  69043. 0Ch WORD (big-endian) logical connection number
  69044. 0Eh BYTE task number
  69045. 0Fh BYTE lock type
  69046. 00h none
  69047. FEh file lock
  69048. FFh Begin Share File Set lock
  69049. SeeAlso: #02059
  69050. --------N-21E3--SFDF-------------------------
  69051. INT 21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORDS BY CONNECTION
  69052. AH = E3h subfn DFh
  69053. DS:SI -> request buffer (see #02061)
  69054. ES:DI -> reply buffer (see #02062)
  69055. Return: AL = status (00h,C6h) (see #02053)
  69056. Notes: this function is supported by Advanced NetWare 2.1+
  69057. the calling workstation must have console operator privileges
  69058. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=E0h,AH=E3h/SF=E2h
  69059. SeeAlso: AX=F217h/SF=DFh
  69060. Format of NetWare "Get Logical Records by Connection" request buffer:
  69061. Offset Size Description (Table 02061)
  69062. 00h WORD 0005h (length of following data)
  69063. 02h BYTE DFh (subfunction "Get Logical Records By Connection")
  69064. 03h WORD (big-endian) logical connection number
  69065. 05h WORD (big-endian) last record seen (0000h on first call)
  69066. SeeAlso: #02062,#02238 at AX=F217h/SF=DFh
  69067. Format of NetWare "Get Logical Records by Connection" reply buffer:
  69068. Offset Size Description (Table 02062)
  69069. 00h WORD (call) size of following results record (max 1FEh)
  69070. 02h WORD next request record (place in "last record" field on next call)
  69071. 0000h if no more locked records
  69072. 04h BYTE number of records following
  69073. 05h var array of Logical Lock Information Records (see #02063)
  69074. SeeAlso: #02061,#02238 at AX=F217h/SF=DFh
  69075. Format of NetWare Logical Lock Information Record:
  69076. Offset Size Description (Table 02063)
  69077. 00h BYTE task number
  69078. 01h BYTE lock status (see #02057)
  69079. 02h BYTE length of logical lock's name
  69080. 03h N BYTEs logical lock's name
  69081. SeeAlso: #02062
  69082. --------N-21E3--SFE0-------------------------
  69083. INT 21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORD INFORMATION
  69084. AH = E3h subfn E0h
  69085. DS:SI -> request buffer (see #02064)
  69086. ES:DI -> reply buffer (see #02065)
  69087. Return: AL = status (00h,C6h) (see #02053)
  69088. Notes: this function is supported by Advanced NetWare 2.1+
  69089. the calling workstation must have console operator privileges
  69090. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=DFh,AH=E3h/SF=E2h
  69091. SeeAlso: AX=F217h/SF=E0h
  69092. Format of NetWare "Get Logical Record Information" request buffer:
  69093. Offset Size Description (Table 02064)
  69094. 00h WORD length of following data (max 67h)
  69095. 02h BYTE E0h (subfunction "Get Logical Record Information")
  69096. 03h WORD (big-endian) last record seen (0000h on first call)
  69097. 05h BYTE length of logical record's name
  69098. 06h N BYTEs logical record's name
  69099. SeeAlso: #02065,#02239 at AH=E3h/SF=E0h
  69100. Format of NetWare "Get Logical Record Information" reply buffer:
  69101. Offset Size Description (Table 02065)
  69102. 00h WORD (call) size of following results record (max 200h)
  69103. 02h WORD (big-endian) number of logical connections logging the record
  69104. 04h WORD (big-endian) number of logical connections with shareable lock
  69105. 06h WORD (big-endian) next request record (place in "last record" field
  69106. on next call)
  69107. 08h BYTE locked exclusively if nonzero
  69108. 09h BYTE number of records following
  69109. 0Ah var array of Task Information Records (see #02066)
  69110. SeeAlso: #02064,#02239 at AH=E3h/SF=E0h
  69111. Format of NetWare Task Information Record:
  69112. Offset Size Description (Table 02066)
  69113. 00h WORD (big-endian) logical connection number
  69114. 02h BYTE task number
  69115. 03h BYTE lock status (see #02057)
  69116. SeeAlso: #02065
  69117. --------N-21E3--SFE1-------------------------
  69118. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S SEMAPHORES
  69119. AH = E3h subfn E1h
  69120. DS:SI -> request buffer (see #02067)
  69121. ES:DI -> reply buffer (see #02068)
  69122. Return: AL = status (00h,C6h) (see #02053)
  69123. Notes: this function is supported by Advanced NetWare 2.1+
  69124. the calling workstation must have console operator privileges
  69125. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E2h
  69126. SeeAlso: AX=F217h/SF=E1h
  69127. Format of NetWare "Get Connection's Semaphores" request buffer:
  69128. Offset Size Description (Table 02067)
  69129. 00h WORD 0005h (length of following data)
  69130. 02h BYTE E1h (subfunction "Get Connection's Semaphores")
  69131. 03h WORD (big-endian) logical connection number
  69132. 05h WORD (big-endian) last record seen (0000h on first call)
  69133. SeeAlso: #02068,#02240 at AX=F217h/SF=E1h
  69134. Format of NetWare "Get Connection's Semaphores" reply buffer:
  69135. Offset Size Description (Table 02068)
  69136. 00h WORD (call) size of following results record (max 1FEh)
  69137. 02h WORD next request record (place in "last record" field on next call)
  69138. 04h BYTE number of records following
  69139. 05h var array of Semaphore Information Records (see #02069)
  69140. SeeAlso: #02067,#02240 at AX=F217h/SF=E1h
  69141. Format of NetWare Semaphore Information Record:
  69142. Offset Size Description (Table 02069)
  69143. 00h WORD (big-endian) open count
  69144. 02h BYTE semaphore value (-128 to 127)
  69145. 03h BYTE task number
  69146. 04h BYTE lock type
  69147. 05h BYTE length of semaphore's name
  69148. 06h N BYTEs semaphore's name
  69149. 14 BYTEs filename
  69150. SeeAlso: #02068
  69151. --------N-21E3--SFE2-------------------------
  69152. INT 21 - Novell NetWare - FILE SERVER - GET SEMAPHORE INFORMATION
  69153. AH = E3h subfn E2h
  69154. DS:SI -> request buffer (see #02070)
  69155. ES:DI -> reply buffer (see #02071)
  69156. Return: AL = status (00h,C6h) (see #02053)
  69157. Notes: this function is supported by Advanced NetWare 2.1+
  69158. the calling workstation must have console operator privileges
  69159. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E1h,AX=F217h/SF=E2h
  69160. Format of NetWare "Get Semaphore Information" request buffer:
  69161. Offset Size Description (Table 02070)
  69162. 00h WORD length of following data (max 83h)
  69163. 02h BYTE E2h (subfunction "Get LAN Driver's Configuration Information")
  69164. 03h WORD (big-endian) last record seen (0000h on first call)
  69165. 05h BYTE length of semaphore's name (01h-7Fh)
  69166. 06h N BYTEs semaphore's name
  69167. SeeAlso: #02071,#02241 at AX=F217h/SF=E2h
  69168. Format of NetWare "Get Semaphore Information" reply buffer:
  69169. Offset Size Description (Table 02071)
  69170. 00h WORD (call) size of following results buffer (max 1FEh)
  69171. 02h WORD next request record (place in "last record" on next call)
  69172. 0000h if no more
  69173. 04h WORD (big-endian) number of logical connections opening semaphore
  69174. 06h BYTE semaphore value (-127 to 128)
  69175. 07h BYTE number of records following
  69176. 08h var array of Semaphore Information records (see #02072)
  69177. SeeAlso: #02071,#02241 at AX=F217h/SF=E2h
  69178. Format of NetWare Semaphore Information:
  69179. Offset Size Description (Table 02072)
  69180. 00h WORD (big-endian) logical connection number
  69181. 02h BYTE task number
  69182. SeeAlso: #02071
  69183. --------N-21E3--SFE3-------------------------
  69184. INT 21 - Novell NetWare - FILE SERVER - GET LAN DRIVER'S CONFIGURATION INFO
  69185. AH = E3h subfn E3h
  69186. DS:SI -> request buffer (see #02073)
  69187. ES:DI -> reply buffer (see #02074)
  69188. Return: AL = status (00h,C6h) (see #02053)
  69189. Notes: this function is supported by Advanced NetWare 2.1+
  69190. the calling workstation must have console operator privileges
  69191. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E7h,AH=E3h/SF=E8h,AX=F217h/SF=E3h
  69192. Format of NetWare "Get LAN Driver's Configuration Info" request buffer:
  69193. Offset Size Description (Table 02073)
  69194. 00h WORD 0002h (length of following data)
  69195. 02h BYTE E3h (subfunction "Get LAN Driver's Configuration Information")
  69196. 03h BYTE LAN board (00h-03h)
  69197. SeeAlso: #02074,#02242 at AX=F217h/SF=E3h
  69198. Format of NetWare "Get LAN Driver's Configuration Info" reply buffer:
  69199. Offset Size Description (Table 02074)
  69200. 00h WORD (call) 00ACh (size of following results buffer)
  69201. 02h 4 BYTEs network number
  69202. 06h 6 BYTEs node number
  69203. 0Ch BYTE LAN driver installed (00h no--remaining fields invalid)
  69204. 0Dh BYTE option number selected at configuration time
  69205. 0Eh 160 BYTEs configuration text
  69206. ASCIZ hardware type
  69207. ASCIZ hardware settings
  69208. SeeAlso: #02073,#02242 at AX=F217h/SF=E3h
  69209. --------N-21E3--SFE5-------------------------
  69210. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S USAGE STATISTICS
  69211. AH = E3h subfn E5h
  69212. DS:SI -> request buffer (see #02075)
  69213. ES:DI -> reply buffer (see #02076)
  69214. Return: AL = status (00h,C6h) (see #02053)
  69215. Notes: this function is supported by Advanced NetWare 2.1+
  69216. one must have console operator privileges to get statistics for logical
  69217. connections other than one's own
  69218. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DBh,AH=E3h/SF=E1h
  69219. SeeAlso: AX=F217h/SF=E5h
  69220. Format of NetWare "Get Connection's Usage Statistics" request buffer:
  69221. Offset Size Description (Table 02075)
  69222. 00h WORD 0003h (length of following data)
  69223. 02h BYTE E5h (subfunction "Get Connection's Usage Statistics")
  69224. 03h WORD (big-endian) logical connection number
  69225. SeeAlso: #02076,#02243 at AX=F217h/SF=E5h
  69226. Format of NetWare "Get Connection's Usage Statistics" reply buffer:
  69227. Offset Size Description (Table 02076)
  69228. 00h WORD (call) 0014h (size of following results record)
  69229. 02h DWORD (big-endian) clock ticks since server started
  69230. 06h 6 BYTEs bytes read
  69231. 0Ch 6 BYTEs bytes written
  69232. 12h DWORD (big-endian) total request packets
  69233. SeeAlso: #02075,#02243 at AX=F217h/SF=E5h
  69234. --------N-21E3--SFE6-------------------------
  69235. INT 21 - Novell NetWare - FILE SERVER - GET BINDERY OBJECT DISK SPACE LEFT
  69236. AH = E3h subfn E6h
  69237. DS:SI -> request buffer (see #02077)
  69238. ES:DI -> reply buffer (see #02078)
  69239. Return: AL = status (00h,C6h) (see #02053)
  69240. Notes: this function is supported by Advanced NetWare 2.1+
  69241. one must have console operator privileges to get the free space for
  69242. other bindery objects
  69243. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E8h,AH=E3h/SF=E9h
  69244. Format of NetWare "Get Bindery Object Disk Space Left" request buffer:
  69245. Offset Size Description (Table 02077)
  69246. 00h WORD 0005h (length of following data)
  69247. 02h BYTE E6h (subfunction "Get Bindery Object Disk Space Left")
  69248. 03h DWORD (big-endian) object ID
  69249. SeeAlso: #02078,#02244 at AX=F217h/SF=E6h
  69250. Format of NetWare "Get Bindery Object Disk Space Left" reply buffer:
  69251. Offset Size Description (Table 02078)
  69252. 00h WORD (call) 000Fh (size of following results buffer)
  69253. 02h DWORD (big-endian) clock ticks elapsed since server started
  69254. 06h DWORD (big-endian) object ID
  69255. 0Ah DWORD (big-endian) 4K disk blocks available to user
  69256. 0Eh BYTE restrictions (00h enforced, FFh not enforced)
  69257. SeeAlso: #02077,#02244 at AX=F217h/SF=E6h
  69258. --------N-21E3--SFE7-------------------------
  69259. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER LAN I/O STATISTICS
  69260. AH = E3h subfn E7h
  69261. DS:SI -> request buffer (see #02079)
  69262. ES:DI -> reply buffer (see #02080)
  69263. Return: AL = status
  69264. 00h successful
  69265. Note: this function is supported by Advanced NetWare 2.1+
  69266. SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=11h,AH=E3h/SF=D3h,AH=E3h/SF=E8h
  69267. SeeAlso: AH=E7h"Novell",AX=F217h/SF=E7h
  69268. Format of NetWare "Get File Server LAN I/O Statistics" request buffer:
  69269. Offset Size Description (Table 02079)
  69270. 00h WORD 0001h (length of following data)
  69271. 02h BYTE E7h (subfunction "Get File Server LAN I/O Statistics")
  69272. SeeAlso: #02080,#02245 at AX=F217h/SF=E7h
  69273. Format of NetWare "Get File Server LAN I/O Statistics" reply buffer:
  69274. Offset Size Description (Table 02080)
  69275. 00h WORD (call) 0042h (size of following results buffer)
  69276. 02h DWORD clock ticks since system started
  69277. 06h WORD total routing buffers
  69278. 08h WORD maximum routing buffers used
  69279. 0Ah WORD current routing buffers used
  69280. 0Ch DWORD total file service packets
  69281. 10h WORD number of file service packets buffered
  69282. 12h WORD number of invalid connection packets
  69283. 14h WORD packets with bad logical connection numbers
  69284. 16h WORD number of packets received during processing
  69285. 18h WORD number of requests reprocessed
  69286. 1Ah WORD packets with bad sequence numbers
  69287. 1Ch WORD number of duplicate replies sent
  69288. 1Eh WORD number of acknowledgements sent
  69289. 20h WORD number of packets with bad request types
  69290. 22h WORD requests to attach to ws for which a request is being processed
  69291. 24h WORD requests to attach from ws which is already attaching
  69292. 26h WORD number of forged detach requests
  69293. 28h WORD detach requests with bad connection number
  69294. 2Ah WORD requests to detach from ws for which requests pending
  69295. 2Ch WORD number of cancelled replies
  69296. 2Eh WORD packets discarded due to excessive hop count
  69297. 30h WORD packets discarded due to unknown net
  69298. 32h WORD incoming packets discarded for lack of DGroup buffer
  69299. 34h WORD outgoing packets discarded due to lack of buffer
  69300. 36h WORD received packets destined for B,C, or D side drivers
  69301. 38h DWORD number of NetBIOS packets propagated through net
  69302. 3Ch DWORD total number of non-file-service packets
  69303. 40h DWORD total number of routed packets
  69304. Note: all fields except the first are big-endian
  69305. SeeAlso: #02080,#02245 at AX=F217h/SF=E7h
  69306. --------N-21E3--SFE8-------------------------
  69307. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER MISC INFORMATION
  69308. AH = E3h subfn E8h
  69309. DS:SI -> request buffer (see #02081)
  69310. ES:DI -> reply buffer (see #02082)
  69311. Return: AL = status (00h,C6h) (see #02053)
  69312. Note: this function is supported by Advanced NetWare 2.1+
  69313. SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=11h,AH=E3h/SF=CDh,AH=E3h/SF=E7h
  69314. SeeAlso: AX=F217h/SF=E8h
  69315. Format of NetWare "Get File Server Misc Information" request buffer:
  69316. Offset Size Description (Table 02081)
  69317. 00h WORD 0001h (length of following data)
  69318. 02h BYTE E8h (subfunction "Get File Server Misc Information")
  69319. SeeAlso: #02082,#02246 at AX=F217h/SF=E8h
  69320. Format of NetWare "Get File Server Misc Information" reply buffer:
  69321. Offset Size Description (Table 02082)
  69322. 00h WORD (call) size of following results buffer (max 0048h)
  69323. 02h DWORD (big-endian) clock ticks since system started
  69324. 06h BYTE CPU type
  69325. 00h Motorola 68000
  69326. 01h Intel 8086, 8088, or V20
  69327. 02h Intel 80286+
  69328. 07h BYTE reserved
  69329. 08h BYTE number of service processes in server
  69330. 09h BYTE server utilization in percent
  69331. 0Ah WORD (big-endian) maximum bindery objects set by configuration
  69332. 0000h = unlimited
  69333. 0Ch WORD (big-endian) maximum number of bindery objects used
  69334. 0Eh WORD (big-endian) current number of bindery objects in use
  69335. 10h WORD (big-endian) total server memory in KB
  69336. 12h WORD (big-endian) wasted server memory in KB
  69337. normally 0000h
  69338. 14h WORD number of records following (01h-03h)
  69339. 16h var array of Dynamic Memory Information records (see #02083)
  69340. SeeAlso: #02081,#02246 at AX=F217h/SF=E8h
  69341. Format of NetWare Dynamic Memory Information:
  69342. Offset Size Description (Table 02083)
  69343. 00h DWORD (big-endian) total dynamic space
  69344. 04h DWORD (big-endian) maximum dynamic space used
  69345. 08h DWORD (big-endian) current dynamic space usage
  69346. --------N-21E3--SFE9-------------------------
  69347. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFORMATION
  69348. AH = E3h subfn E9h
  69349. DS:SI -> request buffer (see #02084)
  69350. ES:DI -> reply buffer (see #02085)
  69351. Return: AL = status
  69352. 00h successful
  69353. Notes: this function is supported by Advanced NetWare 2.1+
  69354. SeeAlso: AH=DAh,AH=E2h/SF=15h,AX=F217h/SF=E9h
  69355. Format of NetWare "Get Volume Information" request buffer:
  69356. Offset Size Description (Table 02084)
  69357. 00h WORD 0002h (length of following data)
  69358. 02h BYTE E9h (subfunction "Get Volume Information")
  69359. 03h BYTE directory handle
  69360. SeeAlso: #02085,#02247 at AX=F217h/SF=E9h
  69361. Format of NetWare "Get Volume Information" reply buffer:
  69362. Offset Size Description (Table 02085)
  69363. 00h WORD (call) 0028h (length of following results buffer)
  69364. 02h DWORD (big-endian) elapsed system time
  69365. 06h BYTE volume number
  69366. 07h BYTE logical drive number
  69367. 08h WORD (big-endian) sectors per block
  69368. 0Ah WORD (big-endian) starting block
  69369. 0Ch WORD (big-endian) total blocks on volume
  69370. 0Eh WORD (big-endian) blocks available on volume
  69371. 10h WORD (big-endian) total directory slots
  69372. 12h WORD (big-endian) directory slots available
  69373. 14h WORD (big-endian) maximum directory entries actually used
  69374. 16h BYTE flag: volume hashed if nonzero
  69375. 17h BYTE flag: volume cached if nonzero
  69376. 18h BYTE flag: volume removable if nonzero
  69377. 19h BYTE flag: volume mounted if nonzero
  69378. 1Ah 16 BYTEs NUL-padded volume name
  69379. SeeAlso: #02084,#02247 at AX=F217h/SF=E9h
  69380. --------N-21E4-------------------------------
  69381. INT 21 O - Novell NetWare - SET FILE ATTRIBUTES (FCB)
  69382. AH = E4h
  69383. CL = file attributes (see #02086)
  69384. DX:DX -> FCB (see #01345 at AH=0Fh)
  69385. Return: AL = error code
  69386. Note: this function was added in NetWare 4.0, but was removed some time prior
  69387. to Advanced NetWare 2.15, and is no longer listed in current Novell
  69388. documentation
  69389. SeeAlso: AX=4301h
  69390. Bitfields for NetWare file attributes:
  69391. Bit(s) Description (Table 02086)
  69392. 0 read only
  69393. 1 hidden
  69394. 2 system
  69395. 7 shareable
  69396. --------v-21E4-------------------------------
  69397. INT 21 - VIRUS - "Anarkia" - INSTALLATION CHECK
  69398. AH = E4h
  69399. Return: AH = 04h if resident
  69400. SeeAlso: AH=E1h"VIRUS",AH=E7h"VIRUS"
  69401. --------T-21E400-----------------------------
  69402. INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS
  69403. AX = E400h
  69404. Return: AL = program status
  69405. 00h if DoubleDOS not present
  69406. 01h if running in visible DoubleDOS partition
  69407. 02h if running in the invisible DoubleDOS partition
  69408. SeeAlso: AH=E5h"DoubleDOS",AX=F400h
  69409. --------E-21E400-----------------------------
  69410. INT 21 - OS/286, OS/386 - CHAIN TO REAL-MODE HANDLER
  69411. AX = E400h
  69412. ???
  69413. Return: ???
  69414. Note: protected mode only???
  69415. --------E-21E402-----------------------------
  69416. INT 21 - OS/286, OS/386 - SET PROTECTED-MODE TASK GATE
  69417. AX = E402h
  69418. ???
  69419. Return: ???
  69420. Note: protected mode only???
  69421. SeeAlso: AX=E403h
  69422. --------E-21E403-----------------------------
  69423. INT 21 - OS/286, OS/386 - REMOVE PROTECTED-MODE TASK GATE
  69424. AX = E403h
  69425. ???
  69426. Return: ???
  69427. Note: protected mode only???
  69428. SeeAlso: AX=E402h
  69429. --------N-21E5-------------------------------
  69430. INT 21 O - Novell NetWare - UPDATE FILE SIZE (FCB)
  69431. AH = E5h
  69432. DS:DX -> FCB (see #01345 at AH=0Fh)
  69433. Return: AL = (unreliable) return code
  69434. Notes: this function was added in NetWare 4.0, but was removed some time prior
  69435. to Advanced NetWare 2.15, and is no longer listed in current Novell
  69436. documentation
  69437. on success, NetWare sets AL to zero; on errors it restores AL
  69438. --------T-21E5-------------------------------
  69439. INT 21 - DoubleDOS - OTHER PROGRAM STATUS
  69440. AH = E5h
  69441. Return: AL = status
  69442. 00h no program in other partition
  69443. 01h program in other partition is running
  69444. 02h program in other partition is suspended
  69445. SeeAlso: AX=E400h"DoubleDOS",AH=F5h"DoubleDOS"
  69446. --------E-21E500-----------------------------
  69447. INT 21 - OS/286, OS/386 - HEAP MANAGEMENT STRATEGY
  69448. AX = E500h
  69449. ???
  69450. Return: ???
  69451. SeeAlso: AX=E501h
  69452. --------E-21E501-----------------------------
  69453. INT 21 - OS/286, OS/386 - FORCE HEAP COMPACTION
  69454. AX = E501h
  69455. ???
  69456. Return: ???
  69457. SeeAlso: AX=E500h
  69458. --------N-21E6-------------------------------
  69459. INT 21 O - Novell NetWare - COPY FILE TO FILE (FCB)
  69460. AH = E6h
  69461. CX:DX = number of bytes to copy
  69462. DS:SI -> opened source FCB
  69463. ES:DI -> opened destination FCB
  69464. Return: AL = error code
  69465. CX = ???
  69466. DX = ???
  69467. Note: this function was added in NetWare 4.0, but was removed some time prior
  69468. to Advanced NetWare 2.15, and is no longer listed in current Novell
  69469. documentation
  69470. --------E-21E6-------------------------------
  69471. INT 21 P - OS/286, OS/386 - ISSUE REAL PROCEDURE SIGNAL FROM PROTECTED MODE
  69472. AH = E6h
  69473. ???
  69474. Return: ???
  69475. SeeAlso: AH=E2h"OS/286"
  69476. --------N-21E7-------------------------------
  69477. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER DATE AND TIME
  69478. AH = E7h
  69479. DS:DX -> date/time buffer (see #02087)
  69480. Return: AL = error code
  69481. 00h successful
  69482. FFh unsuccessful
  69483. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  69484. Alloy NTNX, and Banyan VINES
  69485. SeeAlso: AH=2Ah,AH=2Ch,AX=5FC0h,AH=E3h/SF=CAh,AX=F214h
  69486. Format of NetWare date/time buffer:
  69487. Offset Size Description (Table 02087)
  69488. 00h BYTE year (80-99 = 1980-1999, 0-79 = 2000-2079)
  69489. 01h BYTE month (1=Jan)
  69490. 02h BYTE day
  69491. 03h BYTE hours
  69492. 04h BYTE minutes
  69493. 05h BYTE seconds
  69494. 06h BYTE day of week (0 = Sunday) (Novell and NTNX only)
  69495. SeeAlso: #02106
  69496. --------E-21E7-------------------------------
  69497. INT 21 - OS/286, OS/386 - CREATE CODE SEGMENT
  69498. AH = E7h
  69499. ???
  69500. Return: ???
  69501. SeeAlso: AH=E8h"OS/286",AH=E9h"OS/286",AH=EAh"OS/286"
  69502. --------v-21E7-------------------------------
  69503. INT 21 - VIRUS - "Spyer"/"Kiev" - INSTALLATION CHECK
  69504. AH = E7h
  69505. Return: AH = 78h if resident
  69506. SeeAlso: AH=E4h"VIRUS",AX=EC59h
  69507. --------N-21E8-------------------------------
  69508. INT 21 O - Novell NetWare, Alloy NTNX - SET FCB RE-OPEN MODE
  69509. AH = E8h
  69510. DL = mode
  69511. 00h no automatic re-open
  69512. 01h auto re-open
  69513. Return: AL = error code
  69514. Desc: provided backward compatibility with a bug in CP/M and early DOS vers
  69515. Note: this function was added in NetWare 4.6, but was removed some time prior
  69516. to Advanced NetWare 2.15, and is no longer listed in current Novell
  69517. documentation
  69518. --------E-21E8-------------------------------
  69519. INT 21 - OS/286, OS/386 - SEGMENT CREATION
  69520. AH = E8h
  69521. AL = type
  69522. 00h data segment
  69523. 01h data window/alias
  69524. 02h real segment
  69525. 03h real window/alias
  69526. CX:DX = size in bytes
  69527. SI:BX -> start of desired memory block
  69528. Return: AX = selector
  69529. 06h shareable segment
  69530. ???
  69531. Return: ???
  69532. SeeAlso: AH=E7h"OS/286",AH=E9h"OS/286"
  69533. --------T-21E8-------------------------------
  69534. INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS
  69535. AH = E8h
  69536. AL = program for which to set flags (00h this program, 01h other)
  69537. DX = keyboard control flags (see #02088)
  69538. Return: DX = previous flags
  69539. Notes: disabling Ctrl-PrtSc will allow the program to intercept the keystroke;
  69540. disabling any of the other keystrokes disables them completely
  69541. identical to AH=F8h
  69542. SeeAlso: AH=E1h"DoubleDOS",AH=E2h"DoubleDOS",AH=E3h"DoubleDOS"
  69543. SeeAlso: AH=F8h"DoubleDOS"
  69544. Bitfields for DoubleDOS keyboard control flags:
  69545. Bit(s) Description (Table 02088)
  69546. 0 menu
  69547. 1 exchange
  69548. 2 entire keyboard enable/disable
  69549. 3 Ctrl-C
  69550. 4 Ctrl-PrtSc
  69551. 5 Alt/Erase
  69552. 6 Ctrl-Break
  69553. 7 Ctrl-NumLock
  69554. 8 shift-PrtSc
  69555. 9-13 undefined
  69556. 14 cancel key (clear keyboard buffer)
  69557. 15 suspend key
  69558. Note: setting a enables the corresponding key or operatin, clearing a
  69559. disables it
  69560. --------E-21E9-------------------------------
  69561. INT 21 P - OS/286, OS/386 - CHANGE SEGMENTS
  69562. AH = E9h
  69563. AL = function
  69564. 01h change code segment parameters
  69565. 02h change data segment parameters
  69566. 05h adjust segment limit
  69567. 06h change segment base address
  69568. ???
  69569. Return: ???
  69570. SeeAlso: AH=E7h"OS/286",AH=E8h"OS/286",AH=EAh"OS/286",AH=EDh"OS/286"
  69571. SeeAlso: INT 31/AX=0007h,INT 31/AX=0008h
  69572. --------T-21E9-------------------------------
  69573. INT 21 - DoubleDOS - SET TIMESHARING PRIORITY
  69574. AH = E9h
  69575. AL = new priority (see #02089)
  69576. Return: AL = priority setting if AL=05h on entry
  69577. Note: identical to AH=F9h
  69578. SeeAlso: AH=EAh"DoubleDOS",AH=EBh"DoubleDOS",AH=F9h"DoubleDOS"
  69579. (Table 02089)
  69580. Values for DoubleDOS timesharing priority:
  69581. 00h visible program gets 70%, invisible gets 30% (default)
  69582. 01h visible program gets 50%, invisible gets 50%
  69583. 02h visible program gets 30%, invisible gets 70%
  69584. 03h Top program gets 70%, bottom program gets 30%
  69585. 04h Top program gets 30%, bottom program gets 70%
  69586. 05h get current priority
  69587. --------N-21E900-----------------------------
  69588. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY HANDLE
  69589. AX = E900h
  69590. DX = drive number to check (0 = A:, ..., 25 = Z:, 26 ... 31)
  69591. Return: AL = directory handle
  69592. AH = flags (drive not mapped if none set)
  69593. bit 0: permanent handle
  69594. bit 1: temporary handle
  69595. bit 7: mapped to local drive
  69596. Note: this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  69597. Alloy NTNX
  69598. SeeAlso: AH=E2h/SF=00h,AH=E2h/SF=01h,AH=E2h/SF=0Ah
  69599. --------v-21E900-----------------------------
  69600. INT 21 - VIRUS - "Dark End" - INSTALLATION CHECK
  69601. AX = E900h
  69602. Return: AX = 1234h if resident
  69603. SeeAlso: AX=DEFEh"VIRUS",AX=EC27h"VIRUS"
  69604. --------N-21E905-----------------------------
  69605. INT 21 - Novell NetWare shell 3.01 - MAP A FAKE ROOT DIRECTORY
  69606. AX = E905h
  69607. BL = drive number (0=default, 1=A:, ...)
  69608. DS:DX -> ASCIZ path for fake root (may include server name or be empty)
  69609. Return: CF set on error
  69610. AL = error code (03h,0Fh,11h) (see #01680 at AH=59h/BX=0000h)
  69611. CF clear if successful
  69612. Note: if drive is not currently mapped, a drive mapping will be created
  69613. SeeAlso: AX=E906h
  69614. --------N-21E906-----------------------------
  69615. INT 21 - Novell NetWare shell 3.01 - DELETE FAKE ROOT DIRECTORY
  69616. AX = E906h
  69617. BL = drive number (0=default, 1=A:, ...)
  69618. Return: AL = completion code
  69619. Note: drive remains mapped
  69620. SeeAlso: AX=E905h
  69621. --------N-21E907-----------------------------
  69622. INT 21 - Novell NetWare shell 3.01 - GET RELATIVE DRIVE DEPTH
  69623. AX = E907h
  69624. BL = drive number (0=default, 1=A:, ...)
  69625. Return: AL = number of directories below the fake root
  69626. FFh if no fake root assigned
  69627. SeeAlso: AX=E905h
  69628. --------N-21E908BL00-------------------------
  69629. INT 21 - Novell NetWare shell 3.01 - SET SHOW DOTS
  69630. AX = E908h
  69631. BL = 00h don't return '.' or '..' during directory scans
  69632. = nonzero directory scans will return '.' or '..' entries
  69633. Return: BL = previous show-dots setting
  69634. --------N-21E909-----------------------------
  69635. INT 21 - Novell NetWare - NetWare shell - CONVERT DOS FILE HANDLE TO NETWARE
  69636. AX = E909h
  69637. BX = DOS file handle
  69638. Return: AX = 0000h if successful
  69639. BX:CX:DX = NetWare file handle
  69640. Notes: this function is partially a reverse of "AttachHandle" (AH=B4h)
  69641. many NetWare 3.x functions use a four-byte file handle, which appears
  69642. to be the high four bytes of the six-byte NetWare handle
  69643. SeeAlso: AH=B4h"NetWare"
  69644. --------N-21EA-------------------------------
  69645. INT 21 - Novell NetWare, Alloy NTNX - RETURN SHELL VERSION
  69646. AH = EAh
  69647. AL = return version environment string
  69648. 00h don't return string
  69649. nonzero get environment string
  69650. ES:DI -> 40-byte buffer for string
  69651. Return: buffer filled with three null-terminated entries:
  69652. major operating system
  69653. version
  69654. hardware type
  69655. Return: AH = operating system (00h = MS-DOS)
  69656. AL = hardware type
  69657. 00h IBM PC
  69658. 01h Victor 9000
  69659. BH = major shell version
  69660. BL = minor shell version
  69661. CH = (v3.01+) shell type
  69662. 00h conventional memory
  69663. 01h expanded memory
  69664. 02h extended memory
  69665. CL = shell revision number
  69666. Note: this function is supported by NetWare 4.6 and Advanced NetWare 1.0+
  69667. SeeAlso: INT DF"Victor"
  69668. --------T-21EA-------------------------------
  69669. INT 21 - DoubleDOS - TURN OFF TASK SWITCHING
  69670. AH = EAh
  69671. Return: task switching turned off
  69672. SeeAlso: AH=E9h"DoubleDOS",AH=EBh"DoubleDOS",AH=FAh"DoubleDOS"
  69673. SeeAlso: INT FA"DoubleDOS"
  69674. --------E-21EA-------------------------------
  69675. INT 21 - OS/286, OS/386 - ALLOCATE HUGE SEGMENT
  69676. AH = EAh
  69677. ???
  69678. Return: ???
  69679. Note: protected mode only???
  69680. SeeAlso: AH=E7h"OS/286",AH=E8h"OS/286",AH=E9h"OS/286"
  69681. --------N-21EB-------------------------------
  69682. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG FILE
  69683. AH = EBh
  69684. DS:DX -> ASCIZ filename
  69685. if function C6h lock mode 01h:
  69686. AL = flags
  69687. 00h log file only
  69688. 01h lock as well as log file
  69689. BP = lock timeout in timer ticks (1/18 second)
  69690. 0000h = don't wait if file already locked
  69691. Return: AL = status (see #02090)
  69692. Desc: add the location and size of the specified file to the log table and
  69693. optionally lock the file
  69694. Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  69695. Alloy NTNX
  69696. SeeAlso: AH=BCh"NetWare",AH=CAh,AH=D0h,AH=ECh"NetWare",AH=EDh"NetWare"
  69697. (Table 02090)
  69698. Values for NetWare status:
  69699. 00h successful
  69700. 96h no dynamic memory for file
  69701. FEh timed out
  69702. FFh failed
  69703. SeeAlso: #02053
  69704. --------T-21EB-------------------------------
  69705. INT 21 - DoubleDOS - TURN ON TASK SWITCHING
  69706. AH = EBh
  69707. Return: task switching turned on
  69708. SeeAlso: AH=E9h"DoubleDOS",AH=EAh"DoubleDOS",AH=FBh"DoubleDOS"
  69709. SeeAlso: INT FB"DoubleDOS"
  69710. --------E-21EB00-----------------------------
  69711. INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY LINEAR ADDRESS
  69712. AX = EB00h
  69713. ???
  69714. Return: ???
  69715. Note: protected mode only???
  69716. SeeAlso: AX=EB02h,AX=EB04h,INT 31/AX=0506h
  69717. --------E-21EB02-----------------------------
  69718. INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 16-BIT SEGMENT:OFFSET
  69719. AX = EB02h
  69720. ???
  69721. Return: ???
  69722. Note: protected mode only???
  69723. SeeAlso: AX=EB00h,AX=EB04h
  69724. --------E-21EB03-----------------------------
  69725. INT 21 - OS/386 VMM - FREE MAPPED PAGES
  69726. AX = EB03h
  69727. ???
  69728. Return: ???
  69729. Note: protected mode only???
  69730. SeeAlso: AX=EB05h,INT 31/AX=0801h
  69731. --------E-21EB04-----------------------------
  69732. INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 32-BIT SEGMENT:OFFSET
  69733. AX = EB04h
  69734. ???
  69735. Return: ???
  69736. Note: protected mode only???
  69737. SeeAlso: AX=EB00h,AX=EB02h
  69738. --------E-21EB05-----------------------------
  69739. INT 21 - OS/386 VMM - MAP PAGES
  69740. AX = EB05h
  69741. ???
  69742. Return: ???
  69743. Note: protected mode only???
  69744. SeeAlso: AX=EB03h,INT 31/AX=0800h
  69745. --------E-21EB06-----------------------------
  69746. INT 21 - OS/386 VMM - LOCK PAGES IN MEMORY
  69747. AX = EB06h
  69748. ???
  69749. Return: ???
  69750. Note: protected mode only???
  69751. SeeAlso: AX=EB07h,INT 31/AX=0600h
  69752. --------E-21EB07-----------------------------
  69753. INT 21 - OS/386 VMM - UNLOCK MEMORY PAGES
  69754. AX = EB07h
  69755. ???
  69756. Return: ???
  69757. Note: protected mode only???
  69758. SeeAlso: AX=EB06h,INT 31/AX=0601h
  69759. --------N-21EC-------------------------------
  69760. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE
  69761. AH = ECh
  69762. DS:DX -> ASCIZ filename
  69763. Return: AL = status
  69764. 00h successful
  69765. FFh file not found
  69766. Desc: unlock the specified file but retain it in the log table
  69767. Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  69768. Alloy NTNX
  69769. SeeAlso: AH=CDh,AH=EBh"NetWare",AH=EDh"NetWare"
  69770. --------T-21EC-------------------------------
  69771. INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS
  69772. AH = ECh
  69773. Return: ES = segment of virtual screen
  69774. Desc: determine the address of the virtual screen to which the program
  69775. should write instead of the actual video memory, so that the
  69776. multitasked programs do not interfere with each other's output
  69777. Notes: screen address can change if task-switching is on!
  69778. identical to AH=FCh
  69779. SeeAlso: INT 10/AH=FEh,AH=FCh"DoubleDOS",INT FC"DoubleDOS"
  69780. --------E-21EC-------------------------------
  69781. INT 21 - OS/286, OS/386 - BLOCK TRANSFER
  69782. AH = ECh
  69783. ???
  69784. Return: ???
  69785. --------v-21EC27-----------------------------
  69786. INT 21 - VIRUS - "Halloween.1839" - INSTALLATION CHECK
  69787. AX = EC27h
  69788. Return: AX = 4A52h ("JR") if resident
  69789. SeeAlso: AH=E7h"VIRUS",AX=E900h"VIRUS",AX=EC59h"VIRUS"
  69790. --------v-21EC59-----------------------------
  69791. INT 21 - VIRUS - "Terror" - INSTALLATION CHECK
  69792. AX = EC59h
  69793. Return: BP = EC59h if resident
  69794. SeeAlso: AX=EC27h"VIRUS",AH=EEh"VIRUS"
  69795. --------N-21ED-------------------------------
  69796. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE
  69797. AH = EDh
  69798. DS:DX -> ASCIZ filename
  69799. Return: AL = status
  69800. 00h successful
  69801. FFh no files found
  69802. Desc: unlock the file and remove it from the log table
  69803. Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  69804. Alloy NTNX
  69805. SeeAlso: AH=CBh"NetWare",AH=CEh,AH=CFh,AH=EBh"NetWare",AH=ECh"NetWare"
  69806. --------E-21ED-------------------------------
  69807. INT 21 - OS/286, OS/386 - GET SEGMENT OR WINDOW DESCRIPTOR
  69808. AH = EDh
  69809. ???
  69810. Return: ???
  69811. Note: protected mode only???
  69812. SeeAlso: AH=E9h"OS/286"
  69813. --------N-21EE-------------------------------
  69814. INT 21 - Novell NetWare - CONNECTION SERVICES - GET PHYSICAL STATION ADDRESS
  69815. AH = EEh
  69816. Return: CX:BX:AX = six-byte physical address
  69817. Note: this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  69818. Alloy NTNX
  69819. SeeAlso: AH=E3h/SF=13h
  69820. --------T-21EE-------------------------------
  69821. INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS
  69822. AH = EEh
  69823. AL = number of 55ms time slices to give away
  69824. Return: returns after giving away time slices
  69825. SeeAlso: AH=FEh"DoubleDOS",INT FE"DoubleDOS"
  69826. --------v-21EE-------------------------------
  69827. INT 21 - VIRUS - "Jerusalem-G", "Pregnant", "Barrotes" - INSTALLATION CHECK
  69828. AH = EEh
  69829. Return: AX = 0300h if "Jerusalem-G" resident
  69830. AL = 05h if "Pregnant" resident
  69831. AL = FEh if "Barrotes" resident
  69832. SeeAlso: AH=DDh"VIRUS",AX=EC59h,AX=EEE7h"VIRUS"
  69833. --------v-21EEE7-----------------------------
  69834. INT 21 - VIRUS - "GingerBread" - INSTALLATION CHECK
  69835. AX = EEE7h
  69836. Return: AX = D703h if installed
  69837. SeeAlso: AH=EEh"VIRUS",AH=EFh"VIRUS"
  69838. --------v-21EF-------------------------------
  69839. INT 21 - VIRUS - "Mabuhay"/"June 12th" - INSTALLATION CHECK
  69840. AH = EFh
  69841. Return: AX = 025Bh if resident
  69842. SeeAlso: AX=EC27h"VIRUS",AH=EEh"VIRUS",AH=F0h"VIRUS"
  69843. --------N-21EF00-----------------------------
  69844. INT 21 - Novell NetWare - WORKSTATION - GET DRIVE HANDLE TABLE
  69845. AX = EF00h
  69846. Return: ES:SI -> network shell's 32-byte drive handle table
  69847. AX = 0000h
  69848. Notes: this function is supported by Advanced NetWare 1.0+
  69849. each byte in the drive handle table contains the directory handle for
  69850. the corresponding drive, or 00h if not mapped to a directory
  69851. SeeAlso: AX=EF01h,AX=EF02h,AX=EF03h,AX=EF04h
  69852. --------N-21EF01-----------------------------
  69853. INT 21 - Novell NetWare - WORKSTATION - GET DRIVE FLAG TABLE
  69854. AX = EF01h
  69855. Return: ES:SI -> network shell's 32-byte drive flag table (see #02091)
  69856. AX = 0000h
  69857. Notes: this function is supported by Advanced NetWare 1.0+
  69858. each byte in the drive flag table corresponds to a drive
  69859. SeeAlso: AX=EF00h,AX=EF02h,AX=EF03h
  69860. (Table 02091)
  69861. Values in NetWare drive flag table:
  69862. 00h drive is not mapped
  69863. 01h permanent network drive
  69864. 02h temporary network drive
  69865. 80h mapped to local drive
  69866. 81h local drive used as permanent network drive
  69867. 82h local drive used as temporary network drive
  69868. --------N-21EF02-----------------------------
  69869. INT 21 - Novell NetWare - WORKSTATION - GET DRIVE CONNECTION ID TABLE
  69870. AX = EF02h
  69871. Return: ES:SI -> network shell's 32-byte drive conection ID table
  69872. AX = 0000h
  69873. Notes: this function is supported by Advanced NetWare 1.0+
  69874. each byte in the connection ID table corresponds to a drive and
  69875. contains either the connection ID (1-8) of the server for that drive
  69876. or 00h if the drive is not mapped to a file server
  69877. SeeAlso: AX=EF01h,AX=EF03h,AX=F002h
  69878. --------N-21EF03-----------------------------
  69879. INT 21 - Novell NetWare - WORKSTATION - GET CONNECTION ID TABLE
  69880. AX = EF03h
  69881. Return: ES:SI -> network shell's connection ID table (see #02092)
  69882. AX = 0000h
  69883. Note: this function is supported by Advanced NetWare 1.0+
  69884. SeeAlso: AX=EF00h,AX=EF02h,AX=EF04h,AX=F002h
  69885. Format of NetWare connection ID table [one entry of eight-element array]:
  69886. Offset Size Description (Table 02092)
  69887. 00h BYTE in-use flag
  69888. E0h AES temporary
  69889. F8h IPX in critical section
  69890. FAh processing
  69891. FBh holding
  69892. FCh AES waiting
  69893. FDh waiting
  69894. FEh receiving
  69895. FFh sending
  69896. 01h BYTE order number assigned to server (1-8)
  69897. 02h DWORD (big-endian) file server's network address
  69898. 06h 6 BYTEs (big-endian) file server's node address
  69899. 0Ch WORD (big-endian) socket number
  69900. 0Eh WORD (big-endian) base receive timeout in clock ticks
  69901. 10h 6 BYTEs (big-endian) preferred routing node
  69902. 16h BYTE packet sequence number
  69903. 17h BYTE connection number (FFh = no connection)
  69904. 18h BYTE connection status (00h if active)
  69905. 19h WORD (big-endian) maximum receive timeout in clock ticks
  69906. 1Bh WORD connection number (if > FAh)
  69907. 1Dh BYTE major version of NetWare
  69908. 1Eh BYTE minor version of NetWare
  69909. 1Fh BYTE server flags
  69910. bit 0: server is burst enabled
  69911. --------N-21EF04-----------------------------
  69912. INT 21 - Novell NetWare - WORKSTATION - GET FILE SERVER NAME TABLE
  69913. AX = EF04h
  69914. Return: ES:SI -> network shell's file server name table (see #02093)
  69915. AX = 0000h
  69916. Note: this function is supported by Advanced NetWare 1.0+
  69917. SeeAlso: AX=EF03h
  69918. Format of file server name table:
  69919. Offset Size Description (Table 02093)
  69920. 00h 48 BYTEs ASCIZ server name for first entry in connection ID table
  69921. 30h 48 BYTEs ASCIZ server name for second entry in connection ID table
  69922. ...
  69923. 150h 48 BYTEs ASCIZ server name for eighth entry in connection ID table
  69924. --------T-21F0-------------------------------
  69925. INT 21 - DoubleDOS - MENU CONTROL
  69926. AH = F0h
  69927. AL = subfunction
  69928. 01h exchange tasks
  69929. 73h resume invisible job if suspended
  69930. 74h kill other job
  69931. 75h suspend invisible job
  69932. Note: identical to AH=E0h
  69933. SeeAlso: AH=E0h"DoubleDOS"
  69934. --------v-21F0-------------------------------
  69935. INT 21 - VIRUS - "Frere Jacques" - INSTALLATION CHECK
  69936. AH = F0h
  69937. Return: AX = 0300h if resident
  69938. SeeAlso: AH=EEh"VIRUS",AX=F078h"VIRUS"
  69939. --------N-21F000-----------------------------
  69940. INT 21 - Novell NetWare - WORKSTATION - SET PREFERRED CONNECTION ID
  69941. AX = F000h
  69942. DL = connection ID of prefered file server (1-8) or 00h for none
  69943. Notes: this function is supported by Advanced NetWare 1.0+
  69944. the preferred connection ID is set to 00h by the shell on EOJ
  69945. SeeAlso: AH=D6h,AX=EF03h,AX=F001h,AX=F002h,AX=F005h
  69946. --------N-21F001-----------------------------
  69947. INT 21 - Novell NetWare - WORKSTATION - GET PREFERRED CONNECTION ID
  69948. AX = F001h
  69949. Return: AL = connection ID of preferred file server (1-8), 00h if not set
  69950. Notes: this function is supported by Advanced NetWare 1.0+
  69951. the preferred connection ID is set to 00h by the shell on EOJ
  69952. SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F005h
  69953. --------N-21F002-----------------------------
  69954. INT 21 - Novell NetWare - WORKSTATION - GET DEFAULT CONNECTION ID
  69955. AX = F002h
  69956. Return: AL = connection ID of current default file server (1-8) (see AX=EF03h)
  69957. Note: this function is supported by Advanced NetWare 1.0+
  69958. SeeAlso: AX=EF03h,AX=F000h,AX=F004h
  69959. --------N-21F003-----------------------------
  69960. INT 21 - Novell NetWare - PRINT SERVICES - GET LPT CAPTURE STATUS
  69961. AX = F003h
  69962. Return: AH = status
  69963. 00h not active
  69964. FFh active
  69965. AL = connection ID (01h-08h)
  69966. Note: this function is supported by Advanced NetWare 1.0+
  69967. SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=00h,AH=DFh/DL=04h
  69968. --------N-21F004-----------------------------
  69969. INT 21 - Novell NetWare - WORKSTATION - SET PRIMARY CONNECTION ID
  69970. AX = F004h
  69971. DL = connection ID of primary file server (1-8) or 00h for none
  69972. Note: this function is supported by Advanced NetWare 2.0+
  69973. SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F005h
  69974. --------N-21F005-----------------------------
  69975. INT 21 - Novell NetWare - WORKSTATION - GET PRIMARY CONNECTION ID
  69976. AX = F005h
  69977. Return: AL = connection ID of primary file server (1-8), 00h if not set
  69978. Notes: this function is supported by Advanced NetWare 2.0+
  69979. by default, the primary file server is the one from which the login
  69980. script executed; it is set to 00h if the workstation is not logged in
  69981. and when it detaches from its primary file server
  69982. SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F004h
  69983. --------v-21F078-----------------------------
  69984. INT 21 - VIRUS - "Burgler/H" - INSTALLATION CHECK
  69985. AX = F078h
  69986. Return: AX = 0000h if installed
  69987. SeeAlso: AH=F0h"VIRUS",AH=F1h"VIRUS"
  69988. --------N-21F1-------------------------------
  69989. INT 21 - Novell NetWare - CONNECTION SERVICES - FILE SERVER CONNECTION
  69990. AH = F1h
  69991. AL = subfunction
  69992. 00h attach to file server
  69993. DL = preferred file server (01h-08h)
  69994. 01h detach from file server
  69995. DL = connection ID
  69996. 02h logout from file server
  69997. DL = connection ID
  69998. Return: AL = status (see #02094)
  69999. Note: these functions are supported by Advanced NetWare 1.0+
  70000. SeeAlso: AH=D7h"NetWare",AH=E3h/SF=14h
  70001. (Table 02094)
  70002. Values for NetWare function status:
  70003. 00h successful
  70004. F8h already attached to server
  70005. F9h connection table full
  70006. FAh no more server slots
  70007. FCh unknown file server
  70008. FEh server bindery locked
  70009. FFh no response from server, or connection does not exist
  70010. SeeAlso: #02053,#02350
  70011. --------T-21F1-------------------------------
  70012. INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB
  70013. AH = F1h
  70014. SeeAlso: AH=E1h"DoubleDOS",AH=F2h"DoubleDOS",AH=F3h"DoubleDOS"
  70015. SeeAlso: AH=F8h"DoubleDOS"
  70016. --------v-21F1-------------------------------
  70017. INT 21 - VIRUS - "F1-337" - ???
  70018. AH = F1h
  70019. ???
  70020. Return: ???
  70021. SeeAlso: AH=F0h"VIRUS",AX=F1E9h
  70022. --------v-21F1E9-----------------------------
  70023. INT 21 - VIRUS - "Tremor" - INSTALLATION CHECK
  70024. AX = F1E9h
  70025. Return: AX = installation state
  70026. CADEh installed, and calling program is infected
  70027. F100h not installed (normal DOS return value)
  70028. else installed, but calling program is not infected
  70029. SeeAlso: AH=F1h"VIRUS",AX=F2AAh
  70030. --------!---Section--------------------------
  70031. Interrupt List, part 10 of 18
  70032. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  70033. --------N-21F2-------------------------------
  70034. INT 21 u - Novell NetWare v3.01+ shell interface - MULTIPLEXOR
  70035. AH = F2h
  70036. AL = function (see #02095)
  70037. (subfunction stored in various places in the request packet,
  70038. depending on function number; see individual entries)
  70039. CX = length of request buffer
  70040. DX = length of reply buffer (0000h if no reply packet)
  70041. DS:SI -> request buffer
  70042. ES:DI -> reply buffer (ignored if DX=0000h)
  70043. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70044. reply buffer filled as appropriate for function
  70045. Note: this is a multiplexor providing a "raw" interface to the underlying
  70046. NetWare Core Protocol. Many functions which were accessed via a
  70047. separate AH function in older versions can also be accessed here,
  70048. but some NetWare 3.x calls appear to be available only here.
  70049. SeeAlso: AX=F244h,AX=F268h/SF=3Dh,#02875
  70050. (Table 02095)
  70051. Values for NetWare Core Protocol functions:
  70052. Fnc/Subfn Description
  70053. 01h File Set Lock
  70054. 02h File Release Lock
  70055. 03h Log File (old) (see AX=F203h)
  70056. 04h Lock File Set (old) (see AX=F204h)
  70057. 05h Release File (see AH=CCh,AH=ECh"NetWare")
  70058. 06h Release File Set (see AH=CDh"NetWare")
  70059. 07h Clear File (see AH=CEh,AX=F207h)
  70060. 08h Clear File Set (see AX=F208h)
  70061. 09h Log Logical Record (old) (see AH=D0h"NetWare")
  70062. 0Ah Lock Logical Record Set (old) (see AX=F20Ah)
  70063. 0Bh Clear Logical Record (see AX=F20Bh)
  70064. 0Ch Release Logical Record (see AH=D2h"NetWare")
  70065. 0Dh Release Logical Record Set (see AH=D3h"NetWare")
  70066. 0Eh Clear Logical Record Set (see AX=F20Eh)
  70067. 0Fh Allocate Resource (see AH=D8h"NetWare")
  70068. 10h Deallocate Resource (see AH=D9h"NetWare")
  70069. 11h/xxh print spooling (see AH=E0h"NetWare")
  70070. 11h/06h Get Printer Status
  70071. 11h/0Ah Get Printer Queue
  70072. 12h Get Volume Info with Number (see AH=DAh"NetWare")
  70073. 13h Get Station Number (see AH=DCh"NetWare")
  70074. 14h Get File Server Date and Time (NW v2.2+) (see AH=E7h"NetWare")
  70075. 15h/01h Get Broadcast Message (old) (see AX=F215h/SF=01h)
  70076. 15h/02h Disable Broadcasts (see AX=F215h/SF=02h)
  70077. 15h/03h Enable Broadcasts (see AX=F215h/SF=03h)
  70078. 15h/08h Check Pipe Status (see AH=E1h/SF=08h,AX=F215h/SF=08h)
  70079. 15h/09h Broadcast to Console (see AH=E1h/SF=09h,AX=F215h/SF=09h)
  70080. 15h/0Bh Get Broadcast Message (see AX=F215h/SF=0Bh)
  70081. 16h/00h Set Directory Handle (see AX=F216h/SF=00h)
  70082. 16h/01h Get Directory Path (see AX=F216h/SF=01h)
  70083. 16h/02h Scan Directory Information (see AX=F216h/SF=02h)
  70084. 16h/03h Get Effective Directory Rights (old) (see AX=F216h/SF=03h)
  70085. 16h/04h Modify Maximum Rights Mask (see AX=F216h/SF=04h)
  70086. 16h/05h Get Volume Number (see AX=F216h/SF=05h)
  70087. 16h/06h Get Volume Name (see AX=F216h/SF=06h)
  70088. 16h/0Ah Create Directory (see AX=F216h/SF=0Ah)
  70089. 16h/0Bh Delete Directory (see AX=F216h/SF=0Bh)
  70090. 16h/0Ch Scan Directory for Trustees (see AX=F216h/SF=0Ch)
  70091. 16h/0Dh Add Trustee to Directory (see AX=F216h/SF=0Dh)
  70092. 16h/0Eh Delete Trustee from Directory (see AX=F216h/SF=0Eh)
  70093. 16h/0Fh Rename Directory (see AX=F216h/SF=0Fh)
  70094. 16h/10h Purge Erased Files (old) (see AX=F216h/SF=10h)
  70095. 16h/11h Recover Erased File (old) (see AX=F216h/SF=11h)
  70096. 16h/12h Alloc Permanent Directory Handle (see AX=F216h/SF=12h)
  70097. 16h/13h Alloc Temporary Directory Handle (see AX=F216h/SF=13h)
  70098. 16h/14h Deallocate Directory Handle (see AX=F216h/SF=14h)
  70099. 16h/15h Get Volume Info with Handle (see AX=F216h/SF=15h)
  70100. 16h/16h Alloc Special Temporary Directory Handle (see AX=F216h/SF=16h)
  70101. 16h/19h Set Directory Information (see AX=F216h/SF=19h)
  70102. 16h/1Ah Get Path Name of Volume-Directory Number Pair (see AX=F216h/SF=1Ah)
  70103. 16h/1Bh Scan Salvageable Files (old) (see AX=F216h/SF=1Bh)
  70104. 16h/1Ch Recover Salvageable File (old) (see AX=F216h/SF=1Ch)
  70105. 16h/1Dh Purge Salvageable File (old) (see AX=F216h/SF=1Dh)
  70106. 16h/1Eh Scan a Directory (see AX=F216h/SF=1Eh)
  70107. 16h/1Fh Get Directory Entry (see AX=F216h/SF=1Fh)
  70108. 16h/20h Scan Volume's User Disk Restrictions (see AX=F216h/SF=20h)
  70109. 16h/21h Add User Disk Space Restriction (see AX=F216h/SF=21h)
  70110. 16h/22h Remove User Disk Space Restrictions (see AX=F216h/SF=22h)
  70111. 16h/23h Scan Directory Space Restrictions (see AX=F216h/SF=23h)
  70112. 16h/24h Set Directory Disk Space Restriction (see AX=F216h/SF=24h)
  70113. 16h/25h Set Directory File Information (see AX=F216h/SF=25h)
  70114. 16h/26h Scan File or Directory For Extended Trustees (see AX=F216h/SF=26h)
  70115. 16h/27h Add Extended Trustee to Directory or File (see AX=F216h/SF=27h)
  70116. 16h/28h Scan Directory Disk Space (see AX=F216h/SF=28h)
  70117. 16h/29h Get Object Disk Usage and Restrictions (see AX=F216h/SF=29h)
  70118. 16h/2Ah Get Effective Rights (see AX=F216h/SF=2Ah)
  70119. 16h/2Bh Remove Extended Trustee from Dir or File (see AX=F216h/SF=2Bh)
  70120. 16h/2Ch Get Volume Usage (see AX=F216h/SF=2Ch)
  70121. 16h/2Dh Get Directory Information (see AX=F216h/SF=2Dh)
  70122. 16h/2Eh Rename or Move (see AX=F216h/SF=2Eh)
  70123. 16h/2Fh Get Name Space Information (see AX=F216h/SF=2Fh)
  70124. 16h/30h Get Name Space Directory Entry (see AX=F216h/SF=30h)
  70125. 16h/31h Open Data Stream (see AX=F216h/SF=31h)
  70126. 16h/32h Get Object Effective Rights (see AX=F216h/SF=32h)
  70127. 16h/33h Get Extended Volume Info (see AX=F216h/SF=33h)
  70128. 17h/01h Change User Password (old) (see AX=F217h/SF=01h)
  70129. 17h/02h Get User Connection List (old) (see AX=F217h/SF=02h)
  70130. 17h/0Ch Verify Serialization (see AX=F217h/SF=0Ch)
  70131. 17h/0Eh Get Disk Utilization (see AX=F217h/SF=0Eh)
  70132. 17h/0Fh Scan File Information (see AX=F217h/SF=0Fh)
  70133. 17h/10h Set File Information (see AX=F217h/SF=10h)
  70134. 17h/11h Get File Server Information (see AX=F217h/SF=11h)
  70135. 17h/12h Get Network Serial Number (see AX=F217h/SF=12h)
  70136. 17h/13h Get Internet Address (old) (see AX=F217h/SF=13h)
  70137. 17h/14h Login Object (see AX=F217h/SF=14h)
  70138. 17h/15h Get Object Connection List (old) (see AX=F217h/SF=15h)
  70139. 17h/16h Get Connection Information (old) (see AX=F217h/SF=1Ch)
  70140. 17h/17h Get Encryption Key (see AX=F217h/SF=17h)
  70141. 17h/18h Login Object Encrypted (see AX=F217h/SF=18h)
  70142. 17h/1Ah Get Internet Address (see AX=F217h/SF=1Ah)
  70143. 17h/1Bh Get Object Connection List (see AX=F217h/SF=1Bh)
  70144. 17h/1Ch Get Connection Information (see AX=F217h/SF=1Ch)
  70145. 17h/1Fh Get Connection List from Object (see AX=F217h/SF=1Fh)
  70146. 17h/32h Create Bindery Object (see AX=F217h/SF=32h)
  70147. 17h/33h Delete Bindery Object (see AX=F217h/SF=33h)
  70148. 17h/34h Rename Bindery Object (see AX=F217h/SF=34h)
  70149. 17h/35h Get Bindery Object ID (see AX=F217h/SF=35h)
  70150. 17h/36h Get Bindery Object Name (see AX=F217h/SF=36h)
  70151. 17h/37h Scan Bindery Object (see AX=F217h/SF=37h)
  70152. 17h/38h Change Bindery Object Security (see AX=F217h/SF=38h)
  70153. 17h/39h Create Property (see AX=F217h/SF=39h)
  70154. 17h/3Ah Delete Property (see AX=F217h/SF=3Ah)
  70155. 17h/3Bh Change Property Security (see AX=F217h/SF=3Bh)
  70156. 17h/3Ch Scan Property (see AX=F217h/SF=3Ch)
  70157. 17h/3Dh Read Property Value (see AX=F217h/SF=3Dh)
  70158. 17h/3Eh Write Property Value (see AX=F217h/SF=3Eh)
  70159. 17h/3Fh Verify Bindery Object Password (see AX=F217h/SF=3Fh)
  70160. 17h/40h Change Bindery Object Password (see AX=F217h/SF=40h)
  70161. 17h/41h Add Bindery Object to Set (see AX=F217h/SF=41h)
  70162. 17h/42h Delete Bindery Object from Set (see AX=F217h/SF=42h)
  70163. 17h/43h Is Bindery Object in Set (see AX=F217h/SF=43h)
  70164. 17h/44h Close Bindery (see AX=F217h/SF=44h)
  70165. 17h/45h Open Bindery (see AX=F217h/SF=45h)
  70166. 17h/46h Get Bindery Access Level (see AX=F217h/SF=46h)
  70167. 17h/47h Scan Bindery Object Trustee Paths (see AX=F217h/SF=47h)
  70168. 17h/48h Get Bindery Object Access Level (see AX=F217h/SF=48h)
  70169. 17h/49h Is Station a Manager? (see AX=F217h/SF=49h)
  70170. 17h/4Ah Keyed Verify Bindery Object Password (see AX=F217h/SF=4Ah)
  70171. 17h/4Bh Keyed Change Bindery Object Password (see AX=F217h/SF=4Bh)
  70172. 17h/4Ch List Relations of an Object (see AX=F217h/SF=4Ch)
  70173. 17h/64h Create Queue (see AX=F217h/SF=64h)
  70174. 17h/65h Destroy Queue (see AX=F217h/SF=65h)
  70175. 17h/66h Read Queue Current Status (old) (see AX=F217h/SF=66h)
  70176. 17h/67h Set Queue Current Status (old) (see AX=F217h/SF=67h)
  70177. 17h/68h Create Queue Job and File (old) (see AX=F217h/SF=68h)
  70178. 17h/69h Close File and Start Queue Job (old) (see AX=F217h/SF=69h)
  70179. 17h/6Ah Remove Job From Queue (old) (see AX=F217h/SF=6Ah)
  70180. 17h/6Bh Get Queue Job List (old) (see AX=F217h/SF=6Bh)
  70181. 17h/6Ch Read Queue Job Entry (old) (see AX=F217h/SF=6Ch)
  70182. 17h/6Dh Change Queue Job Entry (old) (see AX=F217h/SF=6Dh)
  70183. 17h/6Eh Change Queue Job Position (see AX=F217h/SF=6Eh)
  70184. 17h/6Fh Attach Queue Server to Queue (see AX=F217h/SF=6Fh)
  70185. 17h/70h Detach Queue Server from Queue (see AX=F217h/SF=70h)
  70186. 17h/72h Finish Servicing Queue Job (old) (see AX=F217h/SF=72h)
  70187. 17h/74h Change to Client Rights (old) (see AX=F217h/SF=74h)
  70188. 17h/75h Restore Queue Server Rights (see AX=F217h/SF=75h)
  70189. 17h/76h Read Queue Server Current Status (old) (see AX=F217h/SF=76h)
  70190. 17h/77h Set Queue Server Current Status (see AX=F217h/SF=77h)
  70191. 17h/78h Get Queue Job File Size (old) (see AX=F217h/SF=78h)
  70192. 17h/79h Create Queue Job and File (see AX=F217h/SF=79h)
  70193. 17h/7Ah Read Queue Job Entry (see AX=F217h/SF=7Ah)
  70194. 17h/7Bh Change Queue Job Entry (see AX=F217h/SF=7Bh)
  70195. 17h/7Dh Read Queue Current Status (see AX=F217h/SF=7Dh)
  70196. 17h/7Eh Set Queue Current Status (see AX=F217h/SF=7Eh)
  70197. 17h/7Fh Close File and Start Queue Job (see AX=F217h/SF=7Fh)
  70198. 17h/80h Remove Job From Queue (see AX=F217h/SF=80h)
  70199. 17h/81h Get Queue Job List (see AX=F217h/SF=81h)
  70200. 17h/82h Change Job Priority (see AX=F217h/SF=82h)
  70201. 17h/83h Finish Servicing Queue Job (see AX=F217h/SF=83h)
  70202. 17h/85h Change to Client Rights (see AX=F217h/SF=85h)
  70203. 17h/86h Read Queue Server Current Status (see AX=F217h/SF=86h)
  70204. 17h/87h Get Queue Job File Size (see AX=F217h/SF=87h)
  70205. 17h/96h Get Account Status (see AX=F217h/SF=96h)
  70206. 17h/97h Submit Account Charge (see AX=F217h/SF=97h)
  70207. 17h/98h Submit Account Hold (see AX=F217h/SF=98h)
  70208. 17h/99h Submit Account Note (see AX=F217h/SF=99h)
  70209. 17h/C8h Check Console Privileges (see AX=F217h/SF=C8h)
  70210. 17h/C9h Get File Server Description Strings (see AX=F217h/SF=C9h)
  70211. 17h/CAh Set File Server Date and Time (see AX=F217h/SF=CAh)
  70212. 17h/CBh Disable File Server Login (see AX=F217h/SF=CBh)
  70213. 17h/CCh Enable File Server Login (see AX=F217h/SF=CCh)
  70214. 17h/CDh Get File Server Login Status (see AX=F217h/SF=CDh)
  70215. 17h/CEh Purge All Erased Files (see AX=F217h/SF=CEh)
  70216. 17h/CFh Disable Transaction Tracking (see AX=F217h/SF=CFh)
  70217. 17h/D0h Enable Transaction Tracking (see AX=F217h/SF=D0h)
  70218. 17h/D2h Clear Connection Number (Logout Station) (see AX=F217h/SF=D2h)
  70219. 17h/D3h Down File Server (see AX=F217h/SF=D3h)
  70220. 17h/D4h Get File System Statistics (see AX=F217h/SF=D4h)
  70221. 17h/D5h Get Transaction Tracking Statistics (see AX=F217h/SF=D5h)
  70222. 17h/D6h Get Disk Cache Statistics (see AX=F217h/SF=D6h)
  70223. 17h/D7h Get Drive Mapping Table (see AX=F217h/SF=D7h)
  70224. 17h/D8h Get Physical Disk Statistics (see AX=F217h/SF=D8h)
  70225. 17h/D9h Get Disk Channel Statistics (see AX=F217h/SF=D9h)
  70226. 17h/DAh Get Connection's Task Information (NW v2.2) (see AX=F217h/SF=DAh)
  70227. 17h/DBh Get Connection's Open Files (old) (NW v2.2) (see AX=F217h/SF=DBh)
  70228. 17h/DCh Get Connections Using a File (NW v2.2) (see AX=F217h/SF=DCh)
  70229. 17h/DDh Get Physical Record Locks by Connection and File (old)
  70230. 17h/DEh Get Physical Record Locks by File (old) (see AX=F217h/SF=DEh)
  70231. 17h/DFh Get Logical Records by Connection (old) (see AX=F217h/SF=DFh)
  70232. 17h/E0h Get Logical Record Information (old) (see AX=F217h/SF=E0h)
  70233. 17h/E1h Get Connection's Semaphores (old) (see AX=F217h/SF=E1h)
  70234. 17h/E2h Get Semaphore Information (old) (see AX=F217h/SF=E2h)
  70235. 17h/E3h Get LAN Driver's Configuration Information (see AX=F217h/SF=E3h)
  70236. 17h/E5h Get Connection's Usage Statistics (NW v2.2) (see AX=F217h/SF=E5h)
  70237. 17h/E6h Get Object's Remaining Disk Space (see AX=F217h/SF=E6h)
  70238. 17h/E7h Get File Server LAN I/O Statistics (see AX=F217h/SF=E7h)
  70239. 17h/E8h Get File Server Misc Information (see AX=F217h/SF=E8h)
  70240. 17h/E9h Get Volume Information (see AX=F217h/SF=E9h)
  70241. 17h/EAh Get Connection's Task Information (NW v3.11+) (see AX=F217h/SF=EAh)
  70242. 17h/EBh Get Connection's Open Files (NW v3.11+) (see AX=F217h/SF=EBh)
  70243. 17h/ECh Get Connections Using a File (NW v3.11+) (see AX=F217h/SF=ECh)
  70244. 17h/EDh Get Physical Record Locks by Connection and File (see AX=F217h/SF=EDh)
  70245. 17h/EEh Get Physical Record Locks by File (see AX=F217h/SF=EEh)
  70246. 17h/EFh Get Logical Records by Connection (see AX=F217h/SF=EFh)
  70247. 17h/F0h Get Logical Record Information (see AX=F217h/SF=F0h)
  70248. 17h/F1h Get Connection's Semaphores (see AX=F217h/SF=F1h)
  70249. 17h/F2h Get Semaphore Information (see AX=F217h/SF=F2h)
  70250. 17h/F3h Map Directory Number to Path (see AX=F217h/SF=F3h)
  70251. 17h/F4h Convert Path to Directory Entry (see AX=F217h/SF=F4h)
  70252. 17h/F5h Get File Server Extended Misc Information (see AX=F217h/SF=F5h)
  70253. 17h/F6h Get Volume Extended Information (see AX=F217h/SF=F6h)
  70254. 17h/FEh Clear Connection Number Greater than 250 (see AX=F217h/SF=FEh)
  70255. 18h End of Job (see AH=D6h"NetWare")
  70256. 19h Logout (old) (see AH=D7h"NetWare")
  70257. 1Ah Log Physical Record (old) (see AH=BCh"NetWare")
  70258. 1Bh Lock Physical Record Set (old) (see AX=F21Bh)
  70259. 1Ch Release Physical Record (see AH=BDh"NetWare")
  70260. 1Dh Release Physical Record Set (see AH=C3h"NetWare")
  70261. 1Eh Clear Physical Record (see AX=F21Eh)
  70262. 1Fh Clear Physical Record Set (see AX=F21Fh)
  70263. 20h/xxh semaphore services (see AX=C501h"NetWare")
  70264. 20h/00h Open Semaphore (old) (see AX=C500h"NetWare")
  70265. 20h/01h Examine Semaphore (old) (see AX=C501h"NetWare")
  70266. 20h/02h Wait on Semaphore (old) (see AX=C502h"NetWare")
  70267. 20h/03h Signal Semaphore (old) (see AX=C503h"NetWare")
  70268. 20h/04h Close Semaphore (old) (see AX=C504h"NetWare")
  70269. 21h Negotiate Buffer Size
  70270. 22h/00h TTS Is Available (see AX=C702h"NetWare")
  70271. 22h/01h TTS Begin Transaction (see AX=C700h"NetWare")
  70272. 22h/02h TTS End Transaction (see AX=C701h"NetWare")
  70273. 22h/03h TTS Abort Transaction (see AX=C703h"NetWare")
  70274. 22h/04h TTS Transaction Status (see AX=C704h"NetWare")
  70275. 22h/05h TTS Get Application Thresholds (see AX=C705h"NetWare")
  70276. 22h/06h TTS Set Application Thresholds (see AX=C706h"NetWare")
  70277. 22h/07h TTS Get Workstation Thresholds (see AX=C707h"NetWare")
  70278. 22h/08h TTS Set Workstation Thresholds (see AX=C708h"NetWare")
  70279. 22h/09h TTS Get Control Flags
  70280. 22h/0Ah TTS Set Control Flags
  70281. 23h/01h AFP Create Directory (see AX=F223h/SF=01h)
  70282. 23h/02h AFP Create File (see AX=F223h/SF=02h)
  70283. 23h/03h AFP Delete (see AX=F223h/SF=03h)
  70284. 23h/04h AFP Get Entry ID From Name (see AX=F223h/SF=04h)
  70285. 23h/05h AFP Get File Information (see AX=F223h/SF=05h)
  70286. 23h/06h AFP Get Entry ID From NetWare Handle (see AX=F223h/SF=06h)
  70287. 23h/07h AFP Rename (see AX=F223h/SF=07h)
  70288. 23h/08h AFP Open File Fork (see AX=F223h/SF=08h)
  70289. 23h/09h AFP Set File Information (see AX=F223h/SF=09h)
  70290. 23h/0Ah AFP Scan File Information (see AX=F223h/SF=0Ah)
  70291. 23h/0Bh AFP Alloc Temporary Dir Handle (see AX=F223h/SF=0Bh)
  70292. 23h/0Ch AFP Get Entry ID From Path Name (see AX=F223h/SF=0Ch)
  70293. 23h/0Dh AFP 2.0 Create Directory (see AX=F223h/SF=0Dh)
  70294. 23h/0Eh AFP 2.0 Create File (see AX=F223h/SF=0Eh)
  70295. 23h/10h AFP 2.0 Set File Information (see AX=F223h/SF=10h)
  70296. 23h/11h AFP 2.0 Scan File Information (see AX=F223h/SF=11h)
  70297. 23h/12h AFP Get DOS Name from Entry ID (see AX=F223h/SF=12h)
  70298. 23h/13h AFP Get Macintosh Info on Deleted File (see AX=F223h/SF=13h)
  70299. 3Dh Commit File
  70300. 3Eh File Search Initialize (FindFirst) (see AX=F23Eh)
  70301. 3Fh File Search Continue (FindNext) (see AX=F23Fh)
  70302. 40h Search File
  70303. 42h Close File (see AX=F242h)
  70304. 43h File Create (see AX=F243h)
  70305. 44h File Erase (see AX=F244h)
  70306. 45h File Rename
  70307. 46h Set File Attributes
  70308. 47h Get File Size (see AX=F247h)
  70309. 48h File Read
  70310. 49h File Write
  70311. 4Ah File Server Copy (see AX=F24Ah)
  70312. 4Bh Set File Time and Date
  70313. 4Ch File Open
  70314. 4Dh Create New File (see AX=F24Dh)
  70315. 4Eh Allow Task Access to File (see AX=F24Eh)
  70316. 4Fh Set Extended File Attributes (see AH=B6h"NetWare")
  70317. 54h Open Create File (see also AX=6C00h)
  70318. 55h Get Sparse File Data Block Bit Map
  70319. 56h/xx extended attribute services (OS/2)
  70320. 56h/01h Close Extended Attribute Handle (see AX=F256h/SF=01h)
  70321. 56h/02h Write Extended Attribute (see AX=F256h/SF=02h)
  70322. 56h/03h Read Extended Attribute (see AX=F256h/SF=03h)
  70323. 56h/04h Enumerate Extended Attributes (see AX=F256h/SF=04h)
  70324. 56h/05h Duplicate Extended Attributes (see AX=F256h/SF=05h)
  70325. 57h/01h Open/Create File or Subdirectory (see AX=F257h/SF=01h)
  70326. 57h/02h Initialize Search, continue with 57h/03h (see AX=F257h/SF=02h)
  70327. 57h/03h Scan NS Entry Info (see AX=F257h/SF=03h)
  70328. 57h/04h Rename or Move File or Subdirectory (see AX=F257h/SF=04h)
  70329. 57h/05h Scan File or Subdirectory for Trustees (see AX=F257h/SF=05h)
  70330. 57h/06h Obtain File or Subdirectory Information (see AX=F257h/SF=06h)
  70331. 57h/07h Modify File or Subdirectory DOS Information (see AX=F257h/SF=07h)
  70332. 57h/08h Delete File/Directory (see AX=F257h/SF=08h)
  70333. 57h/09h Set Short Directory Handle (see AX=F257h/SF=09h)
  70334. 57h/0Ah Add Trustee Set (see AX=F257h/SF=0Ah)
  70335. 57h/0Bh Delete Trustee (see AX=F257h/SF=0Bh)
  70336. 57h/0Ch Allocate Short Directory Handle (see AX=F257h/SF=0Ch)
  70337. 57h/10h Scan Salvageable Files (see AX=F257h/SF=10h)
  70338. 57h/11h Recover Salvageable File (see AX=F257h/SF=11h)
  70339. 57h/12h Purge Salvageable File (see AX=F257h/SF=12h)
  70340. 57h/13h Get NS Information (see AX=F257h/SF=13h)
  70341. 57h/15h Get Path String from Short Directory Handle (see AX=F257h/SF=15h)
  70342. 57h/16h Generate Directory Base and Volume Number (see AX=F257h/SF=16h)
  70343. 57h/17h Get Name Space Info (see AX=F257h/SF=17h)
  70344. 57h/18h Get Name Spaces Loaded (see AX=F257h/SF=18h)
  70345. 57h/19h Write Name Space Info (see AX=F257h/SF=19h)
  70346. 57h/1Ah Read Extended Name Space Info (see AX=F257h/SF=1Ah)
  70347. 57h/1Bh Write Extended Name Space Info (see AX=F257h/SF=1Bh)
  70348. 57h/1Ch Get NS Full Path String (see AX=F257h/SF=1Ch)
  70349. 57h/1Dh Get Effective Directory Rights (see AX=F257h/SF=1Dh)
  70350. 58h/01h Get Volume Audit Statistics (see AX=F258h/SF=01h)
  70351. 58h/02h Add Audit Property (see AX=F258h/SF=02h)
  70352. 58h/03h Login as Volume Auditor (see AX=F258h/SF=03h)
  70353. 58h/04h Change Auditor Password (see AX=F258h/SF=04h)
  70354. 58h/05h Check Audit Access (see AX=F258h/SF=05h)
  70355. 58h/06h Remove Audit Property (see AX=F258h/SF=06h)
  70356. 58h/07h Disable Auditing on Volume (see AX=F258h/SF=07h)
  70357. 58h/08h Enable Auditing on Volume (see AX=F258h/SF=08h)
  70358. 58h/09h Is User Audited? (see AX=F258h/SF=09h)
  70359. 58h/0Ah Read Auditing Bit Map (see AX=F258h/SF=0Ah)
  70360. 58h/0Bh Read Audit Config Header (see AX=F258h/SF=0Bh)
  70361. 58h/0Dh Logout as Volume Auditor (see AX=F258h/SF=0Dh)
  70362. 58h/0Eh Reset Auditing File (see AX=F258h/SF=0Eh)
  70363. 58h/0Fh Reset Audit History File (see AX=F258h/SF=0Fh)
  70364. 58h/10h Write Auditing Bit Map (see AX=F258h/SF=10h)
  70365. 58h/11h Write Audit Config Header (see AX=F258h/SF=11h)
  70366. 58h/13h Get Auditing Flags (see AX=F258h/SF=13h)
  70367. 58h/14h Close Old Auditing File (see AX=F258h/SF=14h)
  70368. 58h/15h Delete Old Auditing File (see AX=F258h/SF=15h)
  70369. 58h/16h Check Audit Level Two Access (see AX=F258h/SF=16h)
  70370. 5Ah/01h Get DM (Data Migration) Info (see AX=F25Ah/SF=01h)
  70371. 5Ah/80h Move File Data to DM (see AX=F25Ah/SF=80h)
  70372. 5Ah/81h DM File Information (see AX=F25Ah/SF=81h)
  70373. 5Ah/82h Volume DM Status (see AX=F25Ah/SF=82h)
  70374. 5Ah/83h Get Migration or Status Information (see AX=F25Ah/SF=83h)
  70375. 5Ah/84h DM Support Module Information (see AX=F25Ah/SF=84h)
  70376. 5Ah/85h Move File Data from DM (see AX=F25Ah/SF=85h)
  70377. 5Ah/86h Get or Set Default Support Module (see AX=F25Ah/SF=86h)
  70378. 61h Negotiate LIP Buffer, packet signing, and IPX checksums
  70379. 65h Packet Burst Connection
  70380. 68h/xxh NetWare 4.x directory services (subfn at DS:[SI+11h])
  70381. 68h/01h NDS resolve name (see AX=F268h/SF=01h)
  70382. 68h/03h NDS read property
  70383. 68h/04h NDS Get Bindery Context (see AX=F268h/SF=04h)
  70384. 68h/05h NDS Monitor Connection (see AX=F268h/SF=05h)
  70385. 68h/16h NDS List Partitions (see AX=F268h/SF=16h)
  70386. 68h/35h NDS get server address (see AX=F268h/SF=35h)
  70387. 68h/36h NDS set keys
  70388. 68h/39h NDS begin login
  70389. 68h/3Ah NDS finish login
  70390. 68h/3Bh NDS begin authenticate
  70391. 68h/3Ch NDS finish authenticate
  70392. 68h/3Dh NDS Logout (see AX=F268h/SF=3Dh)
  70393. 68h/C8h Get DS Auditing Statistics (see AX=F268h/SF=C8h)
  70394. 69h Log File (see AX=F269h)
  70395. 6Ah Lock File Set (see AX=F26Ah)
  70396. 6Bh Log Logical Record !!!APIREF09 line 1430
  70397. 6Ch Lock Logical Record Set (see AX=F26Ch)
  70398. 6Dh Log Physical Record
  70399. 6Eh Lock Physical Record Set (see AX=F26Eh)
  70400. 6Fh/00h Open Semaphore (see AX=F26Fh/SF=00h)
  70401. 6Fh/01h Close Semaphore (see AX=F26Fh/SF=01h)
  70402. 6Fh/02h Wait on Semaphore (see AX=F26Fh/SF=02h)
  70403. 6Fh/03h Signal Semaphore (see AX=F26Fh/SF=03h)
  70404. 6Fh/04h Examine Semaphore (see AX=F26Fh/SF=04h)
  70405. 72h NetWare 4.x Time Services (see AX=F272h)
  70406. 7Bh/01h Get Cache Information (see AX=F27Bh/SF=01h)
  70407. 7Bh/02h Get File Server Information (see AX=F27Bh/SF=02h)
  70408. 7Bh/03h Get NetWare File Systems Information
  70409. 7Bh/04h Get User Information (see AX=F27Bh/SF=04h)
  70410. 7Bh/05h Get Packet Burst Information
  70411. 7Bh/06h Get IPX/SPX Information (see AX=F27Bh/SF=06h)
  70412. 7Bh/07h Get Garbage Collection Information
  70413. 7Bh/08h Get CPU Information (see AX=F27Bh/SF=08h)
  70414. 7Bh/09h Get Volume Switch Information (see AX=F27Bh/SF=09h)
  70415. 7Bh/0Ah Get NLM Loaded List (see AX=F27Bh/SF=0Ah)
  70416. 7Bh/0Bh Get NLM Information (see AX=F27Bh/SF=0Bh)
  70417. 7Bh/0Ch Get Directory Cache Information
  70418. 7Bh/0Dh Get OS Version Information (see AX=F27Bh/SF=0Dh)
  70419. 7Bh/0Eh Get Active Connection List by Type
  70420. 7Bh/0Fh Get NLM's Resource Tag List
  70421. 7Bh/14h Get Active LAN Board List (see AX=F27Bh/SF=14h)
  70422. 7Bh/15h Get LAN Configuration Information (see AX=F27Bh/SF=15h)
  70423. 7Bh/16h Get LAN Common Counters Information (see AX=F27Bh/SF=16h)
  70424. 7Bh/17h Get LAN Custom Counters Information
  70425. 7Bh/18h Get LAN Config Strings
  70426. 7Bh/19h Get LSL Information
  70427. 7Bh/1Ah Get LSL Logical Board Statistics
  70428. 7Bh/1Eh Get Media Manager Object Information
  70429. 7Bh/1Fh Get Media Manager Object List
  70430. 7Bh/20h Get Media Manager Object Children List
  70431. 7Bh/21h Get Volume Segment List
  70432. 7Bh/28h Get Active Protocol Stacks
  70433. 7Bh/29h Get Protocol Stack Configuration Information (see AX=F27Bh/SF=29h)
  70434. 7Bh/2Ah Get Protocol Stack Statistics Information
  70435. 7Bh/2Bh Get Protocol Stack Custom Information
  70436. 7Bh/2Ch Get Protocol Stack Numbers By Media Number
  70437. 7Bh/2Dh Get Protocol Stack Numbers By LAN Board Number
  70438. 7Bh/2Eh Get Media Name by Media Number
  70439. 7Bh/2Fh Get Loaded Media Number List
  70440. 7Bh/32h Get General Router and SAP Information
  70441. 7Bh/33h Get Network Router Information (see AX=F27Bh/SF=33h)
  70442. 7Bh/34h Get Network Routers Information
  70443. 7Bh/35h Get Known Networks Information (see AX=F27Bh/SF=35h)
  70444. 7Bh/36h Get Server Information
  70445. 7Bh/38h Get Known Servers Information (see AX=F27Bh/SF=38h)
  70446. 7Bh/3Ch Get Server Set Commands Information (see AX=F27Bh/SF=3Ch)
  70447. 7Bh/3Dh Get Server Set Categories (see AX=F27Bh/SF=3Dh)
  70448. Note: the subfunction is stored at DS:SI for AL=56h,57h, DS:SI+2 for
  70449. AL=15h-17h,23h
  70450. --------T-21F2-------------------------------
  70451. INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB
  70452. AH = F2h
  70453. AL = character
  70454. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70455. 00h successful
  70456. 01h buffer full (128 characters)
  70457. SeeAlso: AH=E2h"DoubleDOS",AH=F1h"DoubleDOS",AH=F3h"DoubleDOS"
  70458. SeeAlso: AH=F8h"DoubleDOS"
  70459. --------N-21F203-----------------------------
  70460. INT 21 - Novell NetWare - LOG FILE (OLD)
  70461. AX = F203h
  70462. CX = length of request packet in bytes
  70463. DX = 0000h (no reply packet)
  70464. DS:SI -> request packet (see #02477 at AX=F269h)
  70465. ES:DI ignored
  70466. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70467. SeeAlso: AH=F2h"Novell",AX=F204h,AX=F269h,AH=EBh"NetWare"
  70468. --------N-21F204-----------------------------
  70469. INT 21 - Novell NetWare - LOCK FILE SET (OLD)
  70470. AX = F204h
  70471. CX = length of request packet in bytes
  70472. DX = 0000h (no reply packet)
  70473. DS:SI -> request packet (see #02096)
  70474. ES:DI ignored
  70475. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70476. SeeAlso: AH=F2h"Novell",AX=F203h,AX=F26Ah,AH=CBh"NetWare"
  70477. Format of NetWare "Lock File Set (old)" request packet:
  70478. Offset Size Description (Table 02096)
  70479. 00h WORD lock timeout in clock ticks (0000h = don't wait)
  70480. --------N-21F207-----------------------------
  70481. INT 21 - Novell NetWare - CLEAR FILE
  70482. AX = F207h
  70483. CX = length of request packet in bytes
  70484. DX = 0000h (no reply packet)
  70485. DS:SI -> request packet (see #02097)
  70486. ES:DI ignored
  70487. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70488. SeeAlso: AH=CEh,AH=EDh"NetWare",AH=F2h"NetWare",AX=F208h
  70489. Format of NetWare "Clear File" request packet:
  70490. Offset Size Description (Table 02097)
  70491. 00h BYTE directory handle
  70492. 01h BYTE length of filename
  70493. 02h N BYTEs filename
  70494. SeeAlso: #02098
  70495. --------N-21F208-----------------------------
  70496. INT 21 - Novell NetWare - CLEAR FILE SET
  70497. AX = F208h
  70498. CX = length of request packet in bytes
  70499. DX = 0000h (no reply packet)
  70500. DS:SI -> request packet (see #02098)
  70501. ES:DI ignored
  70502. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70503. SeeAlso: AH=CFh"NetWare",AH=F2h"NetWare",AX=F207h
  70504. Format of NetWare "Clear File Set" request packet:
  70505. Offset Size Description (Table 02098)
  70506. 00h BYTE lock flag (nonzero to lock)
  70507. SeeAlso: #02097
  70508. --------N-21F20A-----------------------------
  70509. INT 21 - Novell NetWare - LOCK LOGICAL RECORD SET (OLD)
  70510. AX = F20Ah
  70511. CX = length of request packet in bytes
  70512. DX = 0000h (no reply packet)
  70513. DS:SI -> request packet (see #02479 at AX=F26Ch)
  70514. ES:DI ignored
  70515. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70516. SeeAlso: AH=F2h"Novell",AX=F204h,AX=F26Ch,AH=D1h"NetWare"
  70517. --------N-21F20B-----------------------------
  70518. INT 21 - Novell NetWare - CLEAR LOGICAL RECORD
  70519. AX = F20Bh
  70520. CX = length of request packet in bytes
  70521. DX = 0000h (no reply packet)
  70522. DS:SI -> request packet (see #02099)
  70523. ES:DI ignored
  70524. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70525. SeeAlso: AH=D4h"NetWare",AH=F2h"NetWare",AX=F207h,AX=F20Eh
  70526. Format of NetWare "Clear Logical Record" request packet:
  70527. Offset Size Description (Table 02099)
  70528. 00h BYTE length of record name (max 128)
  70529. 01h N BYTEs logical record name
  70530. SeeAlso: #02100
  70531. --------N-21F20E-----------------------------
  70532. INT 21 - Novell NetWare - CLEAR LOGICAL RECORD SET
  70533. AX = F20Eh
  70534. CX = length of request packet in bytes
  70535. DX = 0000h (no reply packet)
  70536. DS:SI -> request packet (see #02100)
  70537. ES:DI ignored
  70538. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70539. SeeAlso: AH=D5h"NetWare",AH=F2h"NetWare",AX=F207h,AX=F20Bh
  70540. Format of NetWare "Clear Logical Record Set" request packet:
  70541. Offset Size Description (Table 02100)
  70542. 00h BYTE lock flag
  70543. SeeAlso: #02099
  70544. --------N-21F211SF06-------------------------
  70545. INT 21 - Novell NetWare - GET PRINTER STATUS
  70546. AX = F211h subfn 06h
  70547. CX = length of request buffer in bytes
  70548. DX = length of reply buffer in bytes
  70549. DS:SI -> request buffer (see #02101)
  70550. ES:DI -> reply buffer (see #02102)
  70551. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70552. SeeAlso: AH=E0h"NetWare",AH=F2h"Novell",AX=F211h/SF=0Ah
  70553. Format of NetWare "Get Printer Status" request packet:
  70554. Offset Size Description (Table 02101)
  70555. 00h WORD length of following data
  70556. 02h BYTE 06h (subfunction "Get Printer Status")
  70557. 03h BYTE target printer number (00h-04h)
  70558. SeeAlso: #02102,#01814
  70559. Format of NetWare "Get Printer Status" reply packet:
  70560. Offset Size Description (Table 02102)
  70561. 00h BYTE flag: printer halted if FFh
  70562. 01h BYTE flag: printer off-line if FFh
  70563. 02h BYTE current form type
  70564. 03h BYTE redirected printer number
  70565. SeeAlso: #02101
  70566. --------N-21F211SF0A-------------------------
  70567. INT 21 - Novell NetWare - GET PRINTER QUEUE
  70568. AX = F211h subfn 0Ah
  70569. CX = length of request buffer in bytes
  70570. DX = length of reply buffer in bytes
  70571. DS:SI -> request buffer (see #02103)
  70572. ES:DI -> reply buffer
  70573. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70574. SeeAlso: AH=F2h"Novell",AX=F211h/SF=06h
  70575. Format of NetWare "Get Printer Queue" request packet:
  70576. Offset Size Description (Table 02103)
  70577. 00h WORD length of following data
  70578. 02h BYTE 0Ah (subfunction "Get Printer Queue")
  70579. ???
  70580. --------N-21F212-----------------------------
  70581. INT 21 - Novell NetWare - GET VOLUME INFO WITH NUMBER
  70582. AX = F212h
  70583. CX = length of request buffer in bytes
  70584. DX = length of reply buffer in bytes
  70585. DS:SI -> request buffer (see #02104)
  70586. ES:DI -> reply buffer (see #02105)
  70587. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70588. SeeAlso: AH=F2h"Novell",AX=F216h/SF=15h,AX=F217h/SF=E9h
  70589. Format of NetWare "Get Volume Info with Number" request packet:
  70590. Offset Size Description (Table 02104)
  70591. 00h BYTE volume number
  70592. SeeAlso: #02105
  70593. Format of NetWare "Get Volume Info with Number" reply packet:
  70594. Offset Size Description (Table 02105)
  70595. 00h WORD sectors per cluster
  70596. 02h WORD total clusters in volume
  70597. 04h WORD free clusters
  70598. 06h WORD total directory entries for volume (FFFFh if not relevant)
  70599. 08h WORD available directory entries (FFFFh if not relevant)
  70600. 0Ah 16 BYTEs volume name
  70601. 1Ah WORD removability
  70602. 0000h fixed media
  70603. FFFFh removable
  70604. SeeAlso: #02104
  70605. --------N-21F214CX0000-----------------------
  70606. INT 21 - Novell NetWare - GET FILE SERVER DATE AND TIME
  70607. AX = F214h
  70608. CX = 0000h (no request packet)
  70609. DX = length of reply packet in bytes
  70610. ES:DI -> buffer for reply packet (see #02106)
  70611. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70612. SeeAlso: AH=F2h"NetWare",AH=E3h/SF=CAh,AH=E7h"NetWare"
  70613. Format of NetWare "Get File Server Date and Time" reply packet:
  70614. Offset Size Description (Table 02106)
  70615. 00h BYTE year-1900 (80-179)
  70616. 01h BYTE month (1-12)
  70617. 02h BYTE day (1-31)
  70618. 03h BYTE hour
  70619. 04h BYTE minute
  70620. 05h BYTE second
  70621. 06h BYTE day of week
  70622. SeeAlso: #02012 at AH=E3h/SF=CAh,#02087 at AH=E7h
  70623. --------N-21F215SF01-------------------------
  70624. INT 21 - Novell NetWare - GET BROADCAST MESSAGE (OLD)
  70625. AX = F215h subfn 01h
  70626. CX = length of request buffer in bytes
  70627. DX = length of reply buffer in bytes
  70628. DS:SI -> request buffer (see #01822 at AH=E1h/SF=01h)
  70629. ES:DI -> reply buffer (see #02107)
  70630. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70631. SeeAlso: AH=F2h"Novell",AH=E1h/SF=01h,AX=F215h/SF=02h,AX=F215h/SF=0Bh
  70632. Format of NetWare "Get Broadcast Message (Old)" reply packet:
  70633. Offset Size Description (Table 02107)
  70634. 00h BYTE length of message (00h-37h)
  70635. 00h if no broadcast messages pending
  70636. 01h N BYTEs message (no control characters or characters > 7Eh)
  70637. SeeAlso: #01821,#01822
  70638. --------N-21F215SF02-------------------------
  70639. INT 21 - Novell NetWare - DISABLE BROADCASTS
  70640. AX = F215h subfn 02h
  70641. CX = length of request packet in bytes
  70642. DX = 0000h (no reply packet)
  70643. DS:SI -> request packet (see #01823 at AH=E1h/SF=02h)
  70644. ES:DI ignored
  70645. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70646. SeeAlso: AH=F2h"Novell",AH=E1h/SF=02h,AX=F215h/SF=01h,AX=F215h/SF=03h
  70647. --------N-21F215SF03-------------------------
  70648. INT 21 - Novell NetWare - ENABLE BROADCASTS
  70649. AX = F215h subfn 03h
  70650. CX = length of request packet in bytes
  70651. DX = 0000h (no reply packet)
  70652. DS:SI -> request packet (see #01824 at AH=E1h/SF=03h)
  70653. ES:DI ignored
  70654. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70655. SeeAlso: AH=F2h"Novell",AH=E1h/SF=03h,AX=F215h/SF=01h,AX=F215h/SF=02h
  70656. --------N-21F215SF08-------------------------
  70657. INT 21 - Novell NetWare - CHECK PIPE STATUS
  70658. AX = F215h subfn 08h
  70659. CX = length of request buffer in bytes
  70660. DX = length of reply buffer in bytes
  70661. DS:SI -> request buffer (see #01835 at AH=E1h/SF=08h)
  70662. ES:DI -> reply buffer (see #02108)
  70663. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70664. SeeAlso: AH=F2h"Novell",AH=E1h/SF=08h,AX=F215h/SF=09h
  70665. Format of NetWare "Check Pipe Status" reply packet:
  70666. Offset Size Description (Table 02108)
  70667. 00h BYTE number of connections
  70668. 01h N BYTEs list of pipe statuses
  70669. 00h open
  70670. FEh incomplete
  70671. FFh closed
  70672. SeeAlso: #01835,#01836
  70673. --------N-21F215SF09-------------------------
  70674. INT 21 - Novell NetWare - BROADCAST TO CONSOLE
  70675. AX = F215h subfn 09h
  70676. CX = length of request packet in bytes
  70677. DX = 0000h (no reply packet)
  70678. DS:SI -> request packet (see #01837 at AH=E1h/SF=09h)
  70679. ES:DI ignored
  70680. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70681. Note: requires Access Control rights to the target directory or its parent
  70682. SeeAlso: AH=E1h/SF=09h,AH=F2h"NetWare",AX=F215h/SF=08h
  70683. --------N-21F215SF0B-------------------------
  70684. INT 21 - Novell NetWare - GET BROADCAST MESSAGE
  70685. AX = F215h subfn 0Bh
  70686. CX = length of request buffer in bytes
  70687. DX = length of reply buffer in bytes
  70688. DS:SI -> request buffer (see #02109)
  70689. ES:DI -> reply buffer (see #02110)
  70690. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70691. SeeAlso: AH=F2h"Novell",AH=E1h/SF=01h,AX=F215h/SF=01h
  70692. Format of NetWare "Get Broadcast Message" request packet:
  70693. Offset Size Description (Table 02109)
  70694. 00h WORD length of following data
  70695. 02h BYTE 0Bh (subfunction "Get Broadcast Message")
  70696. SeeAlso: #02110,#01821
  70697. Format of NetWare "Get Broadcast Message" reply packet:
  70698. Offset Size Description (Table 02110)
  70699. 00h BYTE length of message
  70700. 01h N BYTEs message
  70701. SeeAlso: #02109,#01822
  70702. --------N-21F216SF00-------------------------
  70703. INT 21 - Novell NetWare - SET DIRECTORY HANDLE
  70704. AX = F216h subfn 00h
  70705. CX = length of request buffer in bytes
  70706. DX = 0000h (no reply buffer)
  70707. DS:SI -> request buffer (see #01840 at AH=E2h/SF=00h)
  70708. ES:DI ignored
  70709. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70710. SeeAlso: AH=F2h"Novell",AH=E2h/SF=00h,AX=F216h/SF=01h
  70711. --------N-21F216SF01-------------------------
  70712. INT 21 - Novell NetWare - GET DIRECTORY PATH
  70713. AX = F216h subfn 01h
  70714. CX = length of request buffer in bytes
  70715. DX = length of reply buffer in bytes
  70716. DS:SI -> request buffer (see #01842 at AH=E2h/SF=01h)
  70717. ES:DI -> reply buffer (see #01843)
  70718. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70719. SeeAlso: AH=F2h"Novell",AH=E2h/SF=01h,AX=F216h/SF=00h
  70720. --------N-21F216SF02-------------------------
  70721. INT 21 - Novell NetWare - SCAN DIRECTORY INFORMATION
  70722. AX = F216h subfn 02h
  70723. CX = length of request buffer in bytes
  70724. DX = length of reply buffer in bytes
  70725. DS:SI -> request buffer (see #01844 at AH=E2h/SF=02h)
  70726. ES:DI -> reply buffer (see #02111)
  70727. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70728. SeeAlso: AH=F2h"Novell",AH=E2h/SF=02h,AX=F216h/SF=01h,AX=F216h/SF=03h
  70729. Format of NetWare "Scan Directory Information" reply packet:
  70730. Offset Size Description (Table 02111)
  70731. 00h 16 BYTEs subdirectory name
  70732. 10h DWORD (big-endian) date and time of creation (see #01846)
  70733. 14h DWORD (big-endian) object ID of owner
  70734. 18h BYTE maximum directory rights (see #01849)
  70735. 19h BYTE unused
  70736. 1Ah WORD (big-endian) subdirectory number
  70737. SeeAlso: #01844,#01845 at AH=E2h/SF=02h
  70738. --------N-21F216SF03-------------------------
  70739. INT 21 - Novell NetWare - GET EFFECTIVE DIRECTORY RIGHTS (OLD)
  70740. AX = F216h subfn 03h
  70741. CX = length of request buffer in bytes
  70742. DX = length of reply buffer in bytes
  70743. DS:SI -> request buffer (see #01847 at AH=E2h/SF=03h)
  70744. ES:DI -> reply buffer (see #02112)
  70745. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70746. SeeAlso: AH=E2h/SF=03h,AX=F216h/SF=02h,AX=F216h/SF=04h,AX=F257h/SF=1Dh
  70747. Format of NetWare "Get Effective Directory Rights (old)" reply buffer:
  70748. Offset Size Description (Table 02112)
  70749. 00h BYTE effective directory rights (see #01849 at AH=E2h/SF=03h)
  70750. SeeAlso: #01847,#01848 at AH=E2h/SF=03h
  70751. --------N-21F216SF04-------------------------
  70752. INT 21 - Novell NetWare - MODIFY MAXIMUM RIGHTS MASK
  70753. AX = F216h subfn 04h
  70754. CX = length of request buffer in bytes
  70755. DX = 0000h (no reply packet)
  70756. DS:SI -> request packet (see #01850 at AH=E2h/SF=04h)
  70757. ES:DI ignored
  70758. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70759. SeeAlso: AH=F2h"Novell",AH=E2h/SF=04h,AX=F216h/SF=03h,AX=F216h/SF=05h
  70760. --------N-21F216SF05-------------------------
  70761. INT 21 - Novell NetWare - GET VOLUME NUMBER
  70762. AX = F216h subfn 05h
  70763. CX = length of request buffer in bytes
  70764. DX = length of reply buffer in bytes
  70765. DS:SI -> request buffer (see #01852 at AH=E2h/SF=05h)
  70766. ES:DI -> reply buffer (see #02113)
  70767. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70768. SeeAlso: AH=F2h"Novell",AH=E2h/SF=05h,AX=F216h/SF=02h,AX=F216h/SF=06h
  70769. Format of NetWare "Get Volume Number" reply packet:
  70770. Offset Size Description (Table 02113)
  70771. 00h BYTE volume number
  70772. SeeAlso: #01852 at AH=E2h/SF=05h
  70773. --------N-21F216SF06-------------------------
  70774. INT 21 - Novell NetWare - GET VOLUME NAME
  70775. AX = F216h subfn 06h
  70776. CX = length of request buffer in bytes
  70777. DX = length of reply buffer in bytes
  70778. DS:SI -> request buffer (see #01854 at AH=E2h/SF=06h)
  70779. ES:DI -> reply buffer (see #02114)
  70780. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70781. SeeAlso: AH=F2h"Novell",AH=E2h/SF=06h,AX=F216h/SF=05h,AX=F216h/SF=0Ah
  70782. Format of NetWare "Get Volume Name" reply packet:
  70783. Offset Size Description (Table 02114)
  70784. SeeAlso: #01854,#01855 at AH=E2h/SF=06h
  70785. --------N-21F216SF0A-------------------------
  70786. INT 21 - Novell NetWare - CREATE DIRECTORY
  70787. AX = F216h subfn 0Ah
  70788. CX = length of request buffer in bytes
  70789. DX = 0000h (no reply packet)
  70790. DS:SI -> request packet (see #01856 at AH=E2h/SF=0Ah)
  70791. ES:DI ignored
  70792. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70793. SeeAlso: AH=39h,AH=F2h"Novell",AH=E2h/SF=0Ah,AX=F216h/SF=0Bh
  70794. --------N-21F216SF0B-------------------------
  70795. INT 21 - Novell NetWare - DELETE DIRECTORY
  70796. AX = F216h subfn 0Bh
  70797. CX = length of request buffer in bytes
  70798. DX = 0000h (no reply packet)
  70799. DS:SI -> request packet (see #01858 at AH=E2h/SF=0Bh)
  70800. ES:DI ignored
  70801. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70802. SeeAlso: AH=3Ah,AH=F2h"Novell",AH=E2h/SF=0Bh,AX=F216h/SF=0Ah
  70803. --------N-21F216SF0C-------------------------
  70804. INT 21 - Novell NetWare - SCAN DIRECTORY FOR TRUSTEES
  70805. AX = F216h subfn 0Ch
  70806. CX = length of request buffer in bytes
  70807. DX = length of reply buffer in bytes
  70808. DS:SI -> request buffer (see #01859 at AH=E2h/SF=0Ch)
  70809. ES:DI -> reply buffer (see #02115)
  70810. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70811. SeeAlso: AH=F2h"Novell",AH=E2h/SF=0Ch,AX=F216h/SF=0Dh
  70812. Format of NetWare "Scan Directory For Trustees" reply packet:
  70813. Offset Size Description (Table 02115)
  70814. 02h 16 BYTEs directory name
  70815. 12h 4 BYTEs date and time of creation
  70816. 16h DWORD (big-endian) object ID of owner
  70817. 1Ah 5 DWORDs (big-endian) object IDs of Trustees 0 through 4
  70818. 00000000h = end of group
  70819. 2Eh 5 BYTEs directory rights for Trustees 0 through 4 (see #01849)
  70820. SeeAlso: #01859 at AH=E2h/SF=0Ch
  70821. --------N-21F216SF0D-------------------------
  70822. INT 21 - Novell NetWare - ADD TRUSTEE TO DIRECTORY
  70823. AX = F216h subfn 0Dh
  70824. CX = length of request buffer in bytes
  70825. DX = 0000h (no reply packet)
  70826. DS:SI -> request packet (see #01861 at AH=E2h/SF=0Dh)
  70827. ES:DI ignored
  70828. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70829. Note: requires Access Control rights to the target directory or its parent
  70830. SeeAlso: AH=F2h"NetWare",AH=E2h/SF=0Dh,AX=F216h/SF=0Ch,AX=F216h/SF=0Eh
  70831. --------N-21F216SF0E-------------------------
  70832. INT 21 - Novell NetWare - DELETE TRUSTEE FROM DIRECTORY
  70833. AX = F216h subfn 0Eh
  70834. CX = length of request buffer in bytes
  70835. DX = 0000h (no reply packet)
  70836. DS:SI -> request packet (see #01862 at AH=E2h/SF=0Eh)
  70837. ES:DI ignored
  70838. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70839. SeeAlso: AH=F2h"Novell",AH=E2h/SF=0Eh,AX=F216h/SF=0Ch,AX=F216h/SF=0Dh
  70840. --------N-21F216SF0F-------------------------
  70841. INT 21 - Novell NetWare - RENAME DIRECTORY
  70842. AX = F216h subfn 0Fh
  70843. CX = length of request buffer in bytes
  70844. DX = 0000h (no reply packet)
  70845. DS:SI -> request packet (see #01864 at AH=E2h/SF=0Fh)
  70846. ES:DI ignored
  70847. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70848. SeeAlso: AH=F2h"Novell",AH=E2h/SF=0Fh,AX=F216h/SF=0Ah
  70849. --------N-21F216SF10-------------------------
  70850. INT 21 - Novell NetWare - PURGE ERASED FILES (OLD)
  70851. AX = F216h subfn 10h
  70852. CX = length of request buffer in bytes
  70853. DX = 0000h (no reply packet)
  70854. DS:SI -> request packet (see #01865 at AH=E2h/SF=10h)
  70855. ES:DI ignored
  70856. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70857. SeeAlso: AH=F2h"Novell",AH=E2h/SF=10h,AX=F216h/SF=11h
  70858. --------N-21F216SF11-------------------------
  70859. INT 21 - Novell NetWare - RECOVER ERASED FILE (OLD)
  70860. AX = F216h subfn 11h
  70861. CX = length of request buffer in bytes
  70862. DX = length of reply buffer in bytes
  70863. DS:SI -> request packet (see #01867 at AH=E2h/SF=11h)
  70864. ES:DI -> reply buffer (see #02116)
  70865. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70866. SeeAlso: AH=F2h"Novell",AH=E2h/SF=11h,AX=F216h/SF=10h
  70867. Format of NetWare "Recover Erased File (Old)" reply packet:
  70868. Offset Size Description (Table 02116)
  70869. 02h 15 BYTEs ASCIZ name of erased file
  70870. 11h 15 BYTEs ASCIZ name under which file was restored
  70871. SeeAlso: #01867,#01868 at AH=E2h/SF=11h
  70872. --------N-21F216SF12-------------------------
  70873. INT 21 - Novell NetWare - ALLOCATE PERMANENT DIRECTORY HANDLE
  70874. AX = F216h subfn 12h
  70875. CX = length of request buffer in bytes
  70876. DX = length of reply buffer in bytes
  70877. DS:SI -> request packet (see #01869 at AH=E2h/SF=12h)
  70878. ES:DI -> reply buffer (see #02118)
  70879. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70880. SeeAlso: AH=F2h"Novell",AX=F216h/SF=16h,AH=E2h/SF=12h
  70881. Format of NetWare IPX fragment list entry:
  70882. Offset Size Description (Table 02117)
  70883. 00h DWORD -> fragment data
  70884. 04h WORD size of fragment in bytes
  70885. Format of NetWare "Allocate Permanent Directory Handle" reply packet:
  70886. Offset Size Description (Table 02118)
  70887. 00h BYTE new directory handle
  70888. 01h BYTE access rights
  70889. SeeAlso: #01869,#01873,#02117
  70890. --------N-21F216SF13-------------------------
  70891. INT 21 - Novell NetWare - ALLOCATE TEMPORARY DIRECTORY HANDLE
  70892. AX = F216h subfn 13h
  70893. CX = length of request packet in bytes
  70894. DX = 0000h (no reply packet)
  70895. DS:SI -> request packet (see #01871 at AH=E2h/SF=13h)
  70896. ES:DI ignored
  70897. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70898. SeeAlso: AH=F2h"Novell",AX=F216h/SF=12h,AX=F216h/SF=16h,AH=E2h/SF=13h
  70899. --------N-21F216SF14-------------------------
  70900. INT 21 - Novell NetWare - DEALLOCATE DIRECTORY HANDLE
  70901. AX = F216h subfn 14h
  70902. CX = length of request packet in bytes
  70903. DX = 0000h (no reply packet)
  70904. DS:SI -> request packet (see #01872 at AH=E2h/SF=14h)
  70905. ES:DI ignored
  70906. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70907. SeeAlso: AH=F2h"Novell",AH=E2h/SF=14h,AX=F216h/SF=13h,AX=F216h/SF=16h
  70908. --------N-21F216SF15-------------------------
  70909. INT 21 - Novell NetWare - GET VOLUME INFO WITH HANDLE
  70910. AX = F216h subfn 15h
  70911. CX = length of request packet in bytes
  70912. DX = length of reply buffer in bytes
  70913. DS:SI -> request packet (see #01874 at AH=E2h/SF=15h)
  70914. ES:DI -> reply buffer (see #02119)
  70915. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70916. SeeAlso: AH=F2h"Novell",AH=E2h/SF=15h,AX=F212h,AX=F216h/SF=13h
  70917. Format of NetWare "Get Volume Info With Handle" reply packet:
  70918. Offset Size Description (Table 02119)
  70919. 00h WORD (big-endian) sectors per block
  70920. 02h WORD (big-endian) total blocks on volume
  70921. 04h WORD (big-endian) blocks available on volume
  70922. 06h WORD (big-endian) total directory slots
  70923. 08h WORD (big-endian) directory slots available
  70924. 0Ah 16 BYTEs NUL-padded volume name
  70925. 1Ah WORD (big-endian) flag: volume removable if nonzero
  70926. SeeAlso: #01874 at AH=E2h/SF=15h
  70927. --------N-21F216SF16-------------------------
  70928. INT 21 - Novell NetWare v2+ - ALLOCATE SPECIAL TEMPORARY DIRECTORY HANDLE
  70929. AX = F216h subfn 16h
  70930. CX = length of request packet in bytes
  70931. DX = 0000h (no reply packet)
  70932. DS:SI -> request packet (see #01876 at AH=E2h/SF=16h)
  70933. ES:DI ignored
  70934. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70935. SeeAlso: AH=F2h"Novell",AX=F216h/SF=12h,AX=F216h/SF=13h,AH=E2h/SF=16h
  70936. --------N-21F216SF17-------------------------
  70937. INT 21 - Novell NetWare - SAVE DIRECTORY HANDLE
  70938. AX = F216h subfn 17h
  70939. CX = length of request packet in bytes
  70940. DX = length of reply buffer in bytes
  70941. DS:SI -> request packet (see #01877 at AH=E2h/SF=17h)
  70942. ES:DI -> reply buffer (see #02120)
  70943. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70944. SeeAlso: AH=F2h"Novell",AH=E2h/SF=17h,AX=F216h/SF=18h
  70945. Format of NetWare "Save Directory Handle" reply packet:
  70946. Offset Size Description (Table 02120)
  70947. 00h 16 BYTEs save buffer
  70948. SeeAlso: #01877,#01878,#02121
  70949. --------N-21F216SF18-------------------------
  70950. INT 21 - Novell NetWare - RESTORE DIRECTORY HANDLE
  70951. AX = F216h subfn 18h
  70952. CX = length of request packet in bytes
  70953. DX = length of reply buffer in bytes
  70954. DS:SI -> request packet (see #01879 at AH=E2h/SF=18h)
  70955. ES:DI -> reply buffer (see #02121)
  70956. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70957. SeeAlso: AH=F2h"Novell",AH=E2h/SF=18h,AX=F216h/SF=17h
  70958. Format of NetWare "Restore Directory Handle" reply packet:
  70959. Offset Size Description (Table 02121)
  70960. 00h BYTE new directory handle
  70961. 01h BYTE effective rights (see #01849)
  70962. SeeAlso: #01880,#02120
  70963. --------N-21F216SF19-------------------------
  70964. INT 21 - Novell NetWare - SET DIRECTORY INFORMATION
  70965. AX = F216h subfn 19h
  70966. CX = length of request packet in bytes
  70967. DX = 0000h (no reply packet)
  70968. DS:SI -> request packet (see #01881 at AH=E2h/SF=19h)
  70969. ES:DI ignored
  70970. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70971. SeeAlso: AH=F2h"Novell",AH=E2h/SF=19h,AX=F216h/SF=17h
  70972. --------N-21F216SF1A-------------------------
  70973. INT 21 - Novell NetWare - GET PATH NAME OF VOLUME-DIRECTORY NUMBER PAIR
  70974. AX = F216h subfn 1Ah
  70975. CX = length of request packet in bytes
  70976. DX = length of reply buffer in bytes
  70977. DS:SI -> request packet (see #01883 at AH=E2h/SF=1Ah)
  70978. ES:DI -> reply buffer (see #02122)
  70979. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70980. SeeAlso: AH=F2h"Novell",AH=E2h/SF=1Ah,AX=F216h/SF=0Eh
  70981. Format of NetWare "Get Path Name Of Volume-Dir Number Pair" reply packet:
  70982. Offset Size Description (Table 02122)
  70983. 00h 256 BYTEs path
  70984. SeeAlso: #01883,#01884 at AH=E2h/SF=1Ah
  70985. --------N-21F216SF1B-------------------------
  70986. INT 21 - Novell NetWare - SCAN SALVAGEABLE FILES (OLD)
  70987. AX = F216h subfn 1Bh
  70988. CX = length of request packet in bytes
  70989. DX = length of reply buffer in bytes
  70990. DS:SI -> request packet (see #02123)
  70991. ES:DI -> reply buffer (see #02124)
  70992. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  70993. SeeAlso: AH=F2h"Novell",AX=F216h/SF=1Ch,AX=F216h/SF=1Dh,AX=F257h/SF=10h
  70994. Format of NetWare "Scan Salvageable Files (Old)" request packet:
  70995. Offset Size Description (Table 02123)
  70996. 00h WORD length of following data
  70997. 02h BYTE 1Bh (subfunction "Scan Salvageable Files (Old)")
  70998. 03h BYTE directory handle
  70999. 04h DWORD last sequence number (set to FFFFFFFFh before first call)
  71000. SeeAlso: #02124,#02399
  71001. Format of NetWare "Scan Salvageable Files (Old)" reply packet:
  71002. Offset Size Description (Table 02124)
  71003. 00h DWORD next sequence number
  71004. 04h WORD subdirectory
  71005. 06h DWORD attributes
  71006. 0Ah BYTE unique ID
  71007. 0Bh BYTE flags
  71008. 0Ch BYTE name space
  71009. 0Dh BYTE length of filename
  71010. 0Eh 14 BYTEs filename
  71011. 1Ah DWORD creation date and time
  71012. 1Eh DWORD owner ID
  71013. 22h DWORD last-backup date and time
  71014. 26h DWORD last-backup ID
  71015. 2Ah DWORD last-modified date and time
  71016. 2Eh WORD ???
  71017. 30h DWORD last-modified ID
  71018. 34h DWORD file size
  71019. 38h 44 BYTEs reserved
  71020. 62h WORD inherited rights mask
  71021. 64h WORD last-access date
  71022. 66h DWORD deleted file's time
  71023. 6Ah DWORD deletion date and time
  71024. 6Eh DWORD ID of deletor
  71025. 72h 16 BYTEs reserved
  71026. SeeAlso: #02123,#02400
  71027. --------N-21F216SF1C-------------------------
  71028. INT 21 - Novell NetWare - RECOVER SALVAGEABLE FILE (OLD)
  71029. AX = F216h subfn 1Ch
  71030. CX = length of request packet in bytes
  71031. DX = 0000h (no reply packet)
  71032. DS:SI -> request packet (see #02125)
  71033. ES:DI ignored
  71034. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71035. SeeAlso: AH=F2h"Novell",AX=F216h/SF=1Bh,AX=F216h/SF=1Dh,AX=F257h/SF=11h
  71036. Format of NetWare "Recover Salvageable File (Old)" request packet:
  71037. Offset Size Description (Table 02125)
  71038. 00h WORD length of following data
  71039. 02h BYTE 1Ch (subfunction "Recover Salvageable File (Old)")
  71040. 03h BYTE directory handle
  71041. 04h DWORD sequence number (set to ? before first call)
  71042. 08h BYTE length of filename
  71043. 09h N BYTEs filename in DOS format
  71044. BYTE length of new name for recovered file
  71045. N BYTEs recovered filename in NetWare VOLUME:DIRECTORY/.../FILE format
  71046. SeeAlso: #02401
  71047. --------N-21F216SF1D-------------------------
  71048. INT 21 - Novell NetWare - PURGE SALVAGEABLE FILE (OLD)
  71049. AX = F216h subfn 1Dh
  71050. CX = length of request packet in bytes
  71051. DX = 0000h (no reply packet)
  71052. DS:SI -> request packet (see #02126)
  71053. ES:DI ignored
  71054. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71055. SeeAlso: AH=F2h"Novell",AX=F216h/SF=1Bh,AX=F216h/SF=1Ch,AX=F257h/SF=12h
  71056. Format of NetWare "Purge Salvageable File (old)" request packet:
  71057. Offset Size Description (Table 02126)
  71058. 00h WORD length of following data
  71059. 02h BYTE 1Dh (subfunction "Purge Salvageable File (Old)")
  71060. 03h BYTE directory handle
  71061. 04h DWORD directory entry
  71062. 08h DWORD sequence number from Scan Salvageable Files
  71063. --------N-21F216SF1E-------------------------
  71064. INT 21 - Novell NetWare - SCAN A DIRECTORY
  71065. AX = F216h subfn 1Eh
  71066. CX = length of request packet in bytes
  71067. DX = length of reply buffer in bytes
  71068. DS:SI -> request packet (see #02127)
  71069. ES:DI -> reply buffer (see #02128)
  71070. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71071. SeeAlso: AH=F2h"Novell",AH=E2h/SF=02h,AX=F216h/SF=1Fh
  71072. Format of NetWare "Scan A Directory" request packet:
  71073. Offset Size Description (Table 02127)
  71074. 00h WORD length of following data
  71075. 02h BYTE 1Eh (subfunction "Scan A Directory")
  71076. 03h BYTE directory handle
  71077. 04h BYTE search attributes
  71078. 05h DWORD sequence number
  71079. 09h BYTE length of search filespec
  71080. 0Ah N BYTEs search filespec
  71081. SeeAlso: #02128
  71082. Format of NetWare "Scan A Directory" reply packet:
  71083. Offset Size Description (Table 02128)
  71084. 00h DWORD sequence number (copy into next request packet)
  71085. 04h DWORD subdirectory
  71086. 08h DWORD attributes
  71087. 0Ch BYTE unique ID
  71088. 0Dh BYTE flags
  71089. 0Eh BYTE name space
  71090. 0Fh BYTE length of filename
  71091. ---DOS file---
  71092. 10h 12 BYTEs DOS filename
  71093. 1Ch DWORD creation date and time
  71094. 20h DWORD owner ID
  71095. 24h DWORD last-archived date and time
  71096. 28h DWORD last-archived ID
  71097. 2Ch DWORD last-updated date and time
  71098. 30h DWORD last-updated ID
  71099. 34h DWORD file size
  71100. 38h 44 BYTEs reserved
  71101. 64h WORD inherited rights mask
  71102. 66h WORD last-accessed date
  71103. 68h 28 BYTEs reserved
  71104. ---DOS subdirectory---
  71105. 10h 12 BYTEs DOS directory name
  71106. 1Ch DWORD creation date and time
  71107. 20h DWORD owner ID
  71108. 24h DWORD last-archived date and time
  71109. 28h DWORD last-archived ID
  71110. 2Ch DWORD last-updated date and time
  71111. 30h DWORD next trustee entry
  71112. 34h 48 BYTEs reserved
  71113. 64h DWORD maximum space
  71114. 68h WORD inherited rights mask
  71115. 6Ah 26 BYTEs unused
  71116. SeeAlso: #02127
  71117. --------N-21F216SF1F-------------------------
  71118. INT 21 - Novell NetWare - GET DIRECTORY ENTRY
  71119. AX = F216h subfn 1Fh
  71120. CX = length of request packet in bytes
  71121. DX = length of reply buffer in bytes
  71122. DS:SI -> request packet (see #02129)
  71123. ES:DI -> reply buffer
  71124. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71125. SeeAlso: AH=F2h"Novell",AX=F216h/SF=1Eh
  71126. Format of NetWare "Get Directory Entry" request packet:
  71127. Offset Size Description (Table 02129)
  71128. 00h WORD length of following data
  71129. 02h BYTE 1Fh (subfunction "Get Directory Entry")
  71130. ???
  71131. --------N-21F216SF20-------------------------
  71132. INT 21 - Novell NetWare - SCAN VOLUME'S USER DISK RESTRICTIONS
  71133. AX = F216h subfn 20h
  71134. CX = length of request packet in bytes
  71135. DX = length of reply buffer in bytes
  71136. DS:SI -> request packet (see #02130)
  71137. ES:DI -> reply buffer (see #02131)
  71138. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71139. SeeAlso: AH=F2h"Novell",AX=F216h/SF=23h,AX=F216h/SF=29h
  71140. Format of NetWare "Scan Volume's User Disk Restrictions" request packet:
  71141. Offset Size Description (Table 02130)
  71142. 00h WORD length of following data
  71143. 02h BYTE 20h (subfunction "Scan Volume's User Disk Restrictions")
  71144. 03h BYTE volume number
  71145. 04h DWORD sequence number (set to 00000000h before first call)
  71146. SeeAlso: #02131
  71147. Format of NetWare "Scan Volume's User Disk Restrictions" reply packet:
  71148. Offset Size Description (Table 02131)
  71149. 00h BYTE number of entries returned (max 12)
  71150. 01h 2N DWORDs restriction entries [array]
  71151. Offset Size Description
  71152. 00h DWORD object ID
  71153. 04h DWORD maximum usage allowed (in 4K blocks)
  71154. SeeAlso: #02130
  71155. --------N-21F216SF21-------------------------
  71156. INT 21 - Novell NetWare v3+ - ADD USER DISK SPACE RESTRICTION
  71157. AX = F216h subfn 21h
  71158. CX = length of request packet in bytes
  71159. DX = length of reply buffer in bytes
  71160. DS:SI -> request packet (see #02132)
  71161. ES:DI -> reply buffer (ignored)
  71162. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71163. SeeAlso: AX=F216h/SF=20h,AX=F216h/SF=22h,AX=F216h/SF=24h
  71164. Format of NetWare "Add User Disk Space Restriction" request buffer:
  71165. Offset Size Description (Table 02132)
  71166. 00h WORD 000Ah (length of following data)
  71167. 02h BYTE 21h (subfunction "Add User Disk Space Restriction")
  71168. 03h BYTE volume number
  71169. 04h DWORD (big-endian) object ID
  71170. 08h DWORD (big-endian) disk space limit in 4K blocks
  71171. 00000000h to 40000000h
  71172. --------N-21F216SF22-------------------------
  71173. INT 21 - Novell NetWare - REMOVE USER DISK SPACE RESTRICTIONS
  71174. AX = F216h subfn 22h
  71175. CX = length of request packet in bytes
  71176. DX = length of reply buffer in bytes
  71177. DS:SI -> request packet (see #02133)
  71178. ES:DI -> reply buffer
  71179. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71180. SeeAlso: AH=F2h"Novell",AX=F216h/SF=20h,AX=F216h/SF=21h,AX=F216h/SF=23h
  71181. Format of NetWare "Remove User Disk Space Restrictions" request packet:
  71182. Offset Size Description (Table 02133)
  71183. 00h WORD length of following data
  71184. 02h BYTE 22h (subfunction "Remove User Disk Space Restrictions")
  71185. ???
  71186. --------N-21F216SF23-------------------------
  71187. INT 21 - Novell NetWare - SCAN DIRECTORY SPACE RESTRICTIONS
  71188. AX = F216h subfn 23h
  71189. CX = length of request packet in bytes
  71190. DX = length of reply buffer in bytes
  71191. DS:SI -> request packet (see #02134)
  71192. ES:DI -> reply buffer (see #02135)
  71193. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71194. SeeAlso: AH=F2h"Novell",AX=F216h/SF=20h,AX=F216h/SF=21h,AX=F216h/SF=22h
  71195. Format of NetWare "Scan Directory Space Restrictions" request packet:
  71196. Offset Size Description (Table 02134)
  71197. 00h WORD length of following data
  71198. 02h BYTE 23h (subfunction "Scan Directory Space Restrictions")
  71199. 03h BYTE directory handle
  71200. SeeAlso: #02135
  71201. Format of NetWare "Scan Directory Space Restrictions" reply packet:
  71202. Offset Size Description (Table 02135)
  71203. 00h BYTE number of entries returned
  71204. 01h 10N BYTEs restrictions [array]
  71205. Offset Size Description
  71206. 00h WORD depth of directory from root
  71207. 02h DWORD maximum space allowed for files in directory
  71208. 04h DWORD current space used by files in directory
  71209. SeeAlso: #02134
  71210. --------N-21F216SF24-------------------------
  71211. INT 21 - Novell NetWare v3+ - SET DIRECTORY DISK SPACE RESTRICTION
  71212. AX = F216h subfn 24h
  71213. CX = length of request buffer in bytes
  71214. DX = length of reply buffer in bytes
  71215. DS:SI -> request buffer (see #02136)
  71216. ES:DI -> reply buffer (ignored)
  71217. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71218. SeeAlso: AX=F216h/SF=21h,AX=F216h/SF=22h,AX=F216h/SF=23h,AX=F216h/SF=25h
  71219. Format of NetWare "Set Directory Disk Space Restriction" request buffer:
  71220. Offset Size Description (Table 02136)
  71221. 00h WORD 0006h (length of following data)
  71222. 02h BYTE 24h (subfunction "Set Directory Disk Space Restriction")
  71223. 03h BYTE directory handle
  71224. 04h DWORD (big-endian) disk space limit in 4K blocks
  71225. 00000000h to remove restriction, negative to set to 0 blocks
  71226. --------N-21F216SF25-------------------------
  71227. INT 21 - Novell NetWare - SET DIRECTORY/FILE INFORMATION
  71228. AX = F216h subfn 25h
  71229. CX = length of request packet in bytes
  71230. DX = 0000h (no reply packet)
  71231. DS:SI -> request packet (see #02137)
  71232. ES:DI ignored
  71233. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71234. SeeAlso: AH=F2h"Novell",AX=F216h/SF=02h
  71235. Format of NetWare "Set Directory/File Information" request packet:
  71236. Offset Size Description (Table 02137)
  71237. 00h WORD length of following data
  71238. 02h BYTE 25h (subfunction "Set Directory/File Information")
  71239. 03h BYTE directory handle
  71240. 04h BYTE search attributes
  71241. 05h DWORD sequence number
  71242. 09h DWORD change bits
  71243. 0Dh DWORD directory number
  71244. 11h DWORD attributes
  71245. 15h BYTE unique ID
  71246. 16h BYTE flags
  71247. 17h BYTE name space (see #02387)
  71248. 18h BYTE length of directory/file name
  71249. 19h 12 BYTEs directory/file name
  71250. 25h DWORD creation date and time
  71251. 29h DWORD (big-endian) owner ID
  71252. 2Dh DWORD last-backup date and time
  71253. 31h DWORD (big-endian) last-backup ID
  71254. 35h DWORD last-modification date and time
  71255. 39h DWORD (big-endian) last-modification ID
  71256. 3Dh DWORD file size
  71257. 41h DWORD data fork first FAT
  71258. 45h DWORD next trustee entry
  71259. 49h 36 BYTEs reserved
  71260. 6Dh WORD inherited rights mask
  71261. 6Fh WORD last-access date
  71262. 71h 20 BYTEs reserved
  71263. 85h DWORD primary entry
  71264. 89h DWORD name list
  71265. --------N-21F216SF26-------------------------
  71266. INT 21 - Novell NetWare v3+ - SCAN FILE OR DIRECTORY FOR EXTENDED TRUSTEES
  71267. AX = F216h subfn 26h
  71268. CX = length of request packet in bytes
  71269. DX = length of reply buffer in bytes
  71270. DS:SI -> request packet (see #02138)
  71271. ES:DI -> reply buffer (see #02139)
  71272. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71273. Desc: get up to 20 extended trustee entries per call for a file or directory
  71274. Format of NetWare "Scan File/Directory for Extended Trustees" request buffer:
  71275. Offset Size Description (Table 02138)
  71276. 00h WORD length of following data
  71277. 02h BYTE 26h (subfunc "Scan File or Directory For Extended Trustees")
  71278. 03h BYTE directory handle
  71279. 04h BYTE sequence number
  71280. 00h for first call, increment by number of returned entries
  71281. 05h BYTE length of path
  71282. 06h N BYTEs pathname
  71283. SeeAlso: #02138
  71284. Format of NetWare "Scan File/Directory for Extended Trustees" reply buffer:
  71285. Offset Size Description (Table 02139)
  71286. 00h BYTE number of entries returned (max 20)
  71287. 01h 20 DWORDs (big-endian) list of object IDs
  71288. 51h 20 WORDs list of associated trustee rights
  71289. SeeAlso: #02139
  71290. --------N-21F216SF27-------------------------
  71291. INT 21 - Novell NetWare v3+ - ADD EXTENDED TRUSTEE TO DIRECTORY OR FILE
  71292. AX = F216h subfn 27h
  71293. CX = length of request packet in bytes
  71294. DX = 0000h (no reply packet)
  71295. DS:SI -> request packet (see #02140)
  71296. ES:DI ignored
  71297. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71298. Format of NetWare "Add Extended Trustee to Directory or File" request buffer:
  71299. Offset Size Description (Table 02140)
  71300. 00h WORD length of following data
  71301. 02h BYTE 27h (subfunction "Add Extended Trustee to Directory or File")
  71302. 03h BYTE directory handle
  71303. 04h DWORD (big-endian) object ID
  71304. 08h WORD trustee rights (see #02141)
  71305. 0Ah BYTE path length
  71306. 0Bh N BYTEs path name
  71307. Bitfields for NetWare trustee rights:
  71308. Bit(s) Description (Table 02141)
  71309. 0 read
  71310. 1 write
  71311. 3 create
  71312. 4 delete
  71313. 5 access
  71314. 6 file
  71315. 7 modify
  71316. 8 supervisor
  71317. --------N-21F216SF28-------------------------
  71318. INT 21 - Novell NetWare - SCAN DIRECTORY DISK SPACE
  71319. AX = F216h subfn 28h
  71320. CX = length of request packet in bytes
  71321. DX = length of reply buffer in bytes
  71322. DS:SI -> request packet (see #02142)
  71323. ES:DI -> reply buffer (see #02143)
  71324. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71325. SeeAlso: AH=F2h"Novell",AX=F216h/SF=02h,AX=F216h/SF=20h
  71326. Format of NetWare "Scan Directory Disk Space" request packet:
  71327. Offset Size Description (Table 02142)
  71328. 00h WORD length of following data
  71329. 02h BYTE 28h (subfunction "Scan Directory Disk Space")
  71330. 03h BYTE directory handle
  71331. 04h BYTE search attributes
  71332. 05h DWORD sequence number (set to FFFFFFFFh before first call)
  71333. 09h BYTE length of filespec
  71334. 0Ah N BYTEs search filespec
  71335. SeeAlso: #02143
  71336. Format of NetWare "Scan Directory Disk Space" reply packet:
  71337. Offset Size Description (Table 02143)
  71338. 00h DWORD next sequence number
  71339. 04h DWORD (big-endian) subdirectory number
  71340. 08h DWORD (big-endian) attributes
  71341. 0Ch BYTE unique ID
  71342. 0Dh BYTE flags
  71343. 0Eh BYTE name space (see #02387)
  71344. 0Fh BYTE length of name
  71345. 10h 12 BYTEs name
  71346. 1Ch DWORD creation date and time
  71347. 20h DWORD owner ID
  71348. 24h DWORD date and time last backed up
  71349. 28h DWORD last-backup ID
  71350. 2Ch DWORD date and time last modified
  71351. 30h DWORD last-modification ID
  71352. 34h DWORD data fork size
  71353. 38h DWORD data fork first FAT
  71354. 3Ch DWORD next trustee entry
  71355. 40h 36 BYTEs reserved
  71356. 64h WORD inherited rights mask
  71357. 66h WORD last-access date
  71358. 68h DWORD deleted file date and time
  71359. 6Ch DWORD date and time file was deleted
  71360. 70h DWORD deleted ID
  71361. 74h 8 BYTEs undefined
  71362. 7Ch DWORD primary entry
  71363. 80h DWORD name list
  71364. 84h DWORD other file fork size
  71365. SeeAlso: #02142
  71366. --------N-21F216SF29-------------------------
  71367. INT 21 - Novell NetWare v3+ - GET OBJECT DISK USAGE AND RESTRICTIONS
  71368. AX = F216h subfn 29h
  71369. CX = length of request packet in bytes
  71370. DX = length of reply buffer in bytes
  71371. DS:SI -> request packet (see #02144)
  71372. ES:DI -> reply buffer (see #02145)
  71373. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71374. reply buffer filled
  71375. Note: this function returns successfully, showing no restriction, if an
  71376. invalid object ID is specified
  71377. SeeAlso: AX=F216h/SF=24h,AX=F216h/SF=33h
  71378. Format of NetWare "Get Object Disk Restrictions" request buffer:
  71379. Offset Size Description (Table 02144)
  71380. 00h WORD 0006h (length of following data)
  71381. 02h BYTE 21h (subfunction "Get Object Disk Restrictions")
  71382. 03h BYTE volume number
  71383. 04h DWORD (big-endian) object ID
  71384. SeeAlso: #02145
  71385. Format of NetWare "Get Object Disk Restrictions" reply buffer:
  71386. Offset Size Description (Table 02145)
  71387. 00h DWORD disk space limit
  71388. 04h DWORD disk space currently in use by object
  71389. SeeAlso: #02144
  71390. --------N-21F216SF2A-------------------------
  71391. INT 21 - Novell NetWare - GET EFFECTIVE RIGHTS
  71392. AX = F216h subfn 2Ah
  71393. CX = length of request packet in bytes
  71394. DX = length of reply buffer in bytes
  71395. DS:SI -> request packet (see #02146)
  71396. ES:DI -> reply buffer (see #02147)
  71397. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71398. SeeAlso: AH=F2h"Novell",AX=F216h/SF=32h
  71399. Format of NetWare "Get Effective Rights" request packet:
  71400. Offset Size Description (Table 02146)
  71401. 00h WORD length of following data
  71402. 02h BYTE 2Ah (subfunction "Get Effective Rights")
  71403. ???
  71404. --------N-21F216SF2B-------------------------
  71405. INT 21 - Novell NetWare - REMOVE EXTENDED TRUSTEE FROM DIR OR FILE
  71406. AX = F216h subfn 2Bh
  71407. CX = length of request packet in bytes
  71408. DX = 0000h (no reply packet)
  71409. DS:SI -> request packet (see #02117,#02147)
  71410. ES:DI ignored
  71411. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71412. SeeAlso: AH=F2h"Novell",AX=F216h/SF=26h,AX=F216h/SF=27h
  71413. Format of NetWare "Remove Extended Trustee From Dir Or File" request packet:
  71414. Offset Size Description (Table 02147)
  71415. 00h WORD length of following data
  71416. 02h BYTE 2Bh (subfunction "Remove Extended Trustee From Dir Or File")
  71417. 03h BYTE directory handle
  71418. 04h DWORD trustee's object ID
  71419. 08h BYTE unused
  71420. 09h BYTE length of pathname
  71421. 0Ah N BYTEs directory path in form VOLUME:DIRECTORY/.../DIRECTORY
  71422. --------N-21F216SF2C-------------------------
  71423. INT 21 - Novell NetWare - GET VOLUME USAGE
  71424. AX = F216h subfn 2Ch
  71425. CX = length of request packet in bytes
  71426. DX = length of reply buffer in bytes
  71427. DS:SI -> request packet (see #02148)
  71428. ES:DI -> reply buffer (see #02149)
  71429. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71430. SeeAlso: AH=F2h"Novell",AX=F216h/SF=20h,AX=F216h/SF=29h
  71431. Format of NetWare "Get Volume Usage" request packet:
  71432. Offset Size Description (Table 02148)
  71433. 00h WORD length of following data
  71434. 02h BYTE 2Ch (subfunction "Get Volume Usage")
  71435. ???
  71436. --------N-21F216SF2D-------------------------
  71437. INT 21 - Novell NetWare - GET DIRECTORY INFORMATION
  71438. AX = F216h subfn 2Dh
  71439. CX = length of request packet in bytes
  71440. DX = length of reply buffer in bytes
  71441. DS:SI -> request packet (see #02149)
  71442. ES:DI -> reply buffer (see #02150)
  71443. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71444. SeeAlso: AH=F2h"Novell",AX=F216h/SF=2Ch,AX=F216h/SF=2Eh
  71445. Format of NetWare "Get Directory Information" request packet:
  71446. Offset Size Description (Table 02149)
  71447. 00h WORD length of following data
  71448. 02h BYTE 2Dh (subfunction "Get Directory Information")
  71449. 03h BYTE directory handle
  71450. SeeAlso: #02150
  71451. Format of NetWare "Get Directory Information" reply packet:
  71452. Offset Size Description (Table 02150)
  71453. 00h DWORD total blocks
  71454. 04h DWORD available blocks
  71455. 08h DWORD total number of directory entries
  71456. 0Ch DWORD number of available directory entries
  71457. 10h 4 BYTEs reserved
  71458. 14h BYTE sectors per block
  71459. 15h BYTE length of volume name
  71460. 16h N BYTEs volume name
  71461. SeeAlso: #02149
  71462. --------N-21F216SF2E-------------------------
  71463. INT 21 - Novell NetWare - RENAME OR MOVE
  71464. AX = F216h subfn 2Eh
  71465. CX = length of request packet in bytes
  71466. DX = 0000h (no reply packet)
  71467. DS:SI -> request packet (see #02151)
  71468. ES:DI ignored
  71469. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71470. SeeAlso: AH=F2h"Novell",AX=F217h/SF=34h,AX=F223h/SF=07h,AX=F244h
  71471. Format of NetWare "Rename Or Move" request packet:
  71472. Offset Size Description (Table 02151)
  71473. 00h WORD length of following data
  71474. 02h BYTE 2Eh (subfunction "Rename Or Move")
  71475. 03h BYTE source directory handle
  71476. 04h BYTE search attributes
  71477. 05h BYTE source path component count
  71478. 06h N BYTEs source path
  71479. BYTE destination directory handle
  71480. BYTE destination path component count
  71481. N BYTEs destination path
  71482. --------N-21F216SF2F-------------------------
  71483. INT 21 - Novell NetWare - GET NAME SPACE INFORMATION
  71484. AX = F216h subfn 2Fh
  71485. CX = length of request packet in bytes
  71486. DX = length of reply buffer in bytes
  71487. DS:SI -> request packet (see #02152)
  71488. ES:DI -> reply buffer (see #02153)
  71489. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71490. SeeAlso: AH=F2h"Novell",AX=F216h/SF=30h,AX=F257h/SF=18h
  71491. Format of NetWare "Get Name Space Information" request packet:
  71492. Offset Size Description (Table 02152)
  71493. 00h WORD length of following data
  71494. 02h BYTE 2Fh (subfunction "Get Name Space Information")
  71495. 03h BYTE volume number
  71496. SeeAlso: #02153
  71497. Format of NetWare "Get Name Space Information" request packet:
  71498. Offset Size Description (Table 02153)
  71499. 00h BYTE length of namespace name
  71500. 01h N BYTEs name of namespace
  71501. BYTE number of data streams
  71502. var data stream information [one entry per data stream]
  71503. Offset Size Description
  71504. 00h BYTE associated name space
  71505. 01h BYTE length of data stream name
  71506. 02h N BYTEs data stream name
  71507. BYTE number of loaded name spaces
  71508. BYTE bitmap of loaded name spaces
  71509. N BYTEs list of name spaces being used
  71510. BYTE index number
  71511. SeeAlso: #02152
  71512. --------N-21F216SF30-------------------------
  71513. INT 21 - Novell NetWare - GET NAME SPACE DIRECTORY ENTRY
  71514. AX = F216h subfn 30h
  71515. CX = length of request packet in bytes
  71516. DX = length of reply buffer in bytes
  71517. DS:SI -> request packet (see #02154)
  71518. ES:DI -> reply buffer (see #02155)
  71519. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71520. SeeAlso: AH=F2h"Novell",AX=F216h/SF=2Fh
  71521. Format of NetWare "Get Name Space Directory Entry" request packet:
  71522. Offset Size Description (Table 02154)
  71523. 00h WORD length of following data
  71524. 02h BYTE 30h (subfunction "Get Name Space Directory Entry")
  71525. 03h BYTE volume number
  71526. 04h DWORD sequence number (set to 00000000h before first call)
  71527. 08h BYTE name space (see #02387)
  71528. SeeAlso: #02155
  71529. Format of NetWare "Get Name Space Directory Entry" request packet:
  71530. Offset Size Description (Table 02155)
  71531. 00h DWORD next sequence number
  71532. 04h DWORD subdirectory
  71533. 08h DWORD attributes
  71534. 0Ch BYTE unique ID
  71535. 0Dh BYTE flags
  71536. 0Eh BYTE name space (see #02387)
  71537. 0Fh BYTE length of name
  71538. 10h 12 BYTEs filename
  71539. 1Ch DWORD creation date and time
  71540. 20h DWORD (big-endian) owner ID
  71541. 24h DWORD last-backup date and time
  71542. 28h DWORD (big-endian) last-backup ID
  71543. 2Ch DWORD last-modification date and time
  71544. ---DOS file---
  71545. 30h DWORD (big-endian) last-modification ID
  71546. 34h DWORD file size
  71547. 38h 44 BYTEs reserved
  71548. 64h WORD inherited rights mask
  71549. 66h WORD last-access date
  71550. 68h 28 BYTEs reserved
  71551. ---DOS subdirectory---
  71552. 30h DWORD next trustee entry
  71553. 34h 48 BYTEs reserved
  71554. 64h WORD maximum space
  71555. 66h WORD inherited rights mask
  71556. 68h 26 BYTEs reserved
  71557. ---Macintosh subdirectory---
  71558. 10h 32 BYTEs Mac filename
  71559. 30h DWORD resource fork
  71560. 34h DWORD resource fork size
  71561. 38h 32 BYTEs Finder information
  71562. 58h 6 BYTEs ProDOS information
  71563. 5Eh 38 BYTEs reserved
  71564. SeeAlso: #02154
  71565. --------N-21F216SF31-------------------------
  71566. INT 21 - Novell NetWare - OPEN DATA STREAM
  71567. AX = F216h subfn 31h
  71568. CX = length of request packet in bytes
  71569. DX = length of reply buffer in bytes
  71570. DS:SI -> request packet (see #02156)
  71571. ES:DI -> reply buffer (see #02157)
  71572. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71573. SeeAlso: AH=F2h"Novell",AX=F216h/SF=30h
  71574. Format of NetWare "Open Data Stream" request packet:
  71575. Offset Size Description (Table 02156)
  71576. 00h WORD length of following data
  71577. 02h BYTE 31h (subfunction "Open Data Stream")
  71578. 03h BYTE data stream
  71579. 04h BYTE directory handle
  71580. 05h BYTE file attributes
  71581. 06h BYTE open rights
  71582. 07h BYTE length of filename
  71583. 08h N BYTEs filename (8.3)
  71584. SeeAlso: #02157
  71585. Format of NetWare "Open Data Stream" reply packet:
  71586. Offset Size Description (Table 02157)
  71587. 00h DWORD file handle
  71588. SeeAlso: #02156
  71589. --------N-21F216SF32-------------------------
  71590. INT 21 - Novell NetWare v2.2+ - GET OBJECT EFFECTIVE RIGHTS
  71591. AX = F216h subfn 32h
  71592. CX = length of request packet in bytes
  71593. DX = length of reply buffer in bytes
  71594. DS:SI -> request packet (see #02158)
  71595. ES:DI -> reply buffer (see #02159)
  71596. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71597. reply buffer filled
  71598. SeeAlso: AX=F216h/SF=29h
  71599. Format of NetWare "Get Object Effective Rights" request buffer:
  71600. Offset Size Description (Table 02158)
  71601. 00h WORD length of following data
  71602. 02h BYTE 32h (subfunction "Get Object Effective Rights")
  71603. 03h DWORD object ID
  71604. 07h BYTE directory handle
  71605. 08h var counted path string
  71606. SeeAlso: #02159
  71607. Format of NetWare "Get Object Effective Rights" reply buffer:
  71608. Offset Size Description (Table 02159)
  71609. 00h WORD object's effective rights
  71610. 02h 6 BYTEs reserved
  71611. SeeAlso: #02158
  71612. --------N-21F216SF33-------------------------
  71613. INT 21 - Novell NetWare v2.2+ - GET EXTENDED VOLUME INFORMATION
  71614. AX = F216h subfn 33h
  71615. CX = length of request packet in bytes
  71616. DX = length of reply buffer in bytes
  71617. DS:SI -> request packet (see #02160)
  71618. ES:DI -> reply buffer (see #02161)
  71619. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71620. reply buffer filled
  71621. SeeAlso: AX=F216h/SF=29h
  71622. Format of NetWare "Get Extended Volume Information" request buffer:
  71623. Offset Size Description (Table 02160)
  71624. 00h WORD length of following data
  71625. 02h BYTE 33h (subfunction "Get Extended Volume Information")
  71626. ---v2.2---
  71627. 03h BYTE volume ID
  71628. ---v4.x---
  71629. 03h DWORD volume number
  71630. SeeAlso: #02161
  71631. Format of NetWare "Get Extended Volume Information" reply buffer:
  71632. Offset Size Description (Table 02161)
  71633. 00h WORD length of returned data
  71634. 02h DWORD volume type
  71635. 06h DWORD status flag bits
  71636. bit 0: suballocation
  71637. bit 1: compressoin
  71638. bit 2: migration
  71639. bit 3: auditing
  71640. 0Ah DWORD sector size
  71641. 0Eh DWORD sectors per cluster
  71642. 12h DWORD total clusters in volume
  71643. 16h DWORD free clusters
  71644. 1Ah DWORD freeable suballocated clusters
  71645. 1Eh DWORD freeable in-limbo sectors
  71646. 22h DWORD non-freeable in-limbo sectors
  71647. 26h DWORD non-freeable available suballocated sectors
  71648. 2Ah DWORD unuable suballocated sectors
  71649. 2Eh DWORD total suballocated clusters
  71650. 32h DWORD number of data streams
  71651. 36h DWORD number of in-limbo data streams
  71652. 3Ah DWORD age of oldest deleted file in clock ticks
  71653. 3Eh DWORD number of compressed data streams
  71654. 42h DWORD number of compressed in-limbo data streams
  71655. 46h DWORD number of uncompressable data streams
  71656. 4Ah DWORD number of precompressed sectors
  71657. 4Eh DWORD number of compressed sectors
  71658. 52h DWORD number of migrated files
  71659. 56h DWORD number of migrated sectors
  71660. 5Ah DWORD number of clusters used by FAT
  71661. 5Eh DWORD number of clusters used by directories
  71662. 62h DWORD number of clusters used by extended directories
  71663. 66h DWORD total number of directory entries
  71664. 6Ah DWORD number of unused directory entries
  71665. 6Eh DWORD total number of extended directory extants
  71666. 72h DWORD number of unused extended directory extants
  71667. 76h DWORD number of extended attributes defined (see AX=F256h/SF=04h)
  71668. 7Ah DWORD number of extended-attribute extants used
  71669. 7Eh DWORD object ID for Directory Services
  71670. 82h DWORD date and time volume last modified
  71671. 86h var counted volume name string
  71672. SeeAlso: #02160
  71673. --------N-21F217SF01-------------------------
  71674. INT 21 - Novell NetWare - CHANGE USER PASSWORD (OLD)
  71675. AX = F217h subfn 01h
  71676. CX = length of request packet in bytes
  71677. DX = 0000h (no reply packet)
  71678. DS:SI -> request packet (see #01891 at AH=E3h/SF=01h)
  71679. ES:DI ignored
  71680. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71681. Note: this function requires an object of type USER, unlike the newer
  71682. password changing function AX=F217h/SF=40h
  71683. SeeAlso: AH=F2h"Novell",AH=E3h/SF=01h,AX=F217h/SF=02h,AX=F217h/SF=40h
  71684. --------N-21F217SF02-------------------------
  71685. INT 21 - Novell NetWare - GET USER CONNECTION LIST (OLD)
  71686. AX = F217h subfn 02h
  71687. CX = length of request packet in bytes
  71688. DX = length of reply buffer in bytes
  71689. DS:SI -> request packet (see #01892 at AH=E3h/SF=02h)
  71690. ES:DI -> reply buffer (see #02162)
  71691. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71692. SeeAlso: AH=F2h"Novell",AH=E3h/SF=02h,AX=F217h/SF=01h,AX=F217h/SF=0Ch
  71693. Format of NetWare "Get User Connection List (old)" reply packet:
  71694. Offset Size Description (Table 02162)
  71695. 00h BYTE length of connection list
  71696. 01h BYTE number of bytes in connection list
  71697. 02h N BYTEs list of connection numbers in use by user
  71698. SeeAlso: #01892
  71699. --------N-21F217SF0C-------------------------
  71700. INT 21 - Novell NetWare - VERIFY SERIALIZATION
  71701. AX = F217h subfn 0Ch
  71702. CX = length of request packet in bytes
  71703. DX = length of reply buffer in bytes
  71704. DS:SI -> request packet (see #01896 at AH=E3h/SF=0Ch)
  71705. ES:DI -> reply buffer (see #02163)
  71706. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71707. SeeAlso: AH=F2h"Novell",AH=E3h/SF=0Ch,AX=F217h/SF=12h
  71708. Format of NetWare "Verify Serialization" reply packet:
  71709. Offset Size Description (Table 02163)
  71710. 00h WORD server application number
  71711. SeeAlso: #01896
  71712. --------N-21F217SF0E-------------------------
  71713. INT 21 - Novell NetWare - GET DISK UTILIZATION
  71714. AX = F217h subfn 0Eh
  71715. CX = length of request packet in bytes
  71716. DX = length of reply buffer in bytes
  71717. DS:SI -> request packet (see #01900 at AH=E3h/SF=0Eh)
  71718. ES:DI -> reply buffer (see #02164)
  71719. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71720. SeeAlso: AH=F2h"Novell",AH=E3h/SF=0Eh,AX=F217h/SF=D6h
  71721. Format of NetWare "Get Disk Utilization" reply packet:
  71722. Offset Size Description (Table 02164)
  71723. 00h BYTE volume number (00h-1Fh)
  71724. 01h DWORD (big-endian) object ID
  71725. 05h WORD (big-endian) directories used by object
  71726. 07h WORD (big-endian) files created by object
  71727. 09h WORD (big-endian) disk blocks used by object-created files
  71728. SeeAlso: #01900 at AH=E3h/SF=0Eh
  71729. --------N-21F217SF0F-------------------------
  71730. INT 21 - Novell NetWare - SCAN FILE INFORMATION
  71731. AX = F217h subfn 0Fh
  71732. CX = length of request packet in bytes
  71733. DX = length of reply buffer in bytes
  71734. DS:SI -> request packet (see #01903 at AH=E3h/SF=0Fh)
  71735. ES:DI -> reply buffer (see #02165)
  71736. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71737. SeeAlso: AH=F2h"Novell",AH=E3h/SF=0Fh,AX=F217h/SF=10h
  71738. Format of NetWare "Scan File Information" reply packet:
  71739. Offset Size Description (Table 02165)
  71740. 00h WORD next sequence number (place in request buffer for next call)
  71741. 02h 14 BYTEs ASCIZ filename
  71742. 10h BYTE file attributes (see #01420 at AX=4301h)
  71743. 11h BYTE extended file attributes (see #01804 at AH=B6h)
  71744. 12h DWORD (big-endian) file size in bytes
  71745. 16h WORD (big-endian) file's creation date (see #01666 at AX=5700h)
  71746. 18h WORD (big-endian) date of last access (see #01665 at AX=5700h)
  71747. 1Ah DWORD (big-endian) date and time of last update (see #01846)
  71748. 1Eh DWORD (big-endian) object ID of owner
  71749. 22h DWORD (big-endian) date and time last archived (see #01846)
  71750. 26h 55 BYTEs reserved
  71751. SeeAlso: #01903 at AH=E3h/SF=0Fh
  71752. --------N-21F217SF10-------------------------
  71753. INT 21 - Novell NetWare - SET FILE INFORMATION
  71754. AX = F217h subfn 10h
  71755. CX = length of request packet in bytes
  71756. DX = 0000h (no reply packet)
  71757. DS:SI -> request packet (see #01905 at AH=E3h/SF=10h)
  71758. ES:DI ignored
  71759. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71760. SeeAlso: AH=F2h"Novell",AH=E3h/SF=10h,AX=F217h/SF=0Fh
  71761. --------N-21F217SF11-------------------------
  71762. INT 21 - Novell NetWare - GET FILE SERVER INFORMATION
  71763. AX = F217h subfn 11h
  71764. CX = length of request packet in bytes
  71765. DX = length of reply buffer in bytes
  71766. DS:SI -> request packet (see #01907 at AH=E3h/SF=11h)
  71767. ES:DI -> reply buffer (see #02166)
  71768. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71769. SeeAlso: AH=F2h"Novell",AH=E3h/SF=11h,AX=F217h/SF=F1h
  71770. Format of NetWare "Get File Server Information" reply packet:
  71771. Offset Size Description (Table 02166)
  71772. 00h 48 BYTEs server's name
  71773. 30h BYTE NetWare version
  71774. 31h BYTE NetWare subversion (0-99)
  71775. 32h WORD (big-endian) number of connections supported
  71776. NetWare 4.01 reportedly returns maximum simulataneously-used
  71777. connections
  71778. 34h WORD (big-endian) number of connections in use
  71779. 36h WORD (big-endian) maximum connected volumes
  71780. ---Advanced NetWare 2.1+ ---
  71781. 38h BYTE operating system revision number
  71782. 39h BYTE fault tolerance (SFT) level
  71783. 3Ah BYTE TTS level
  71784. 3Bh WORD (big-endian) maximum simultaneously-used connections
  71785. NetWare 4.01 reportedly returns number of connections in use
  71786. 3Dh BYTE accounting version
  71787. 3Eh BYTE VAP version
  71788. 3Fh BYTE queueing version
  71789. 40h BYTE print server version
  71790. 41h BYTE virtual console version
  71791. 42h BYTE security restrictions level
  71792. 43h BYTE internetwork bridge version
  71793. 44h 60 BYTEs reserved
  71794. SeeAlso: #01907
  71795. --------N-21F217SF12-------------------------
  71796. INT 21 - Novell NetWare - GET NETWORK SERIAL NUMBER
  71797. AX = F217h subfn 12h
  71798. CX = length of request packet in bytes
  71799. DX = length of reply buffer in bytes
  71800. DS:SI -> request packet (see #01909 at AH=E3h/SF=12h)
  71801. ES:DI -> reply buffer (see #02167)
  71802. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71803. SeeAlso: AH=F2h"Novell",AH=E3h/SF=12h,AX=F217h/SF=0Ch
  71804. Format of NetWare "Get Network Serial Number" reply packet:
  71805. Offset Size Description (Table 02167)
  71806. 00h 4 BYTEs (big-endian) NetWare server serial number
  71807. 04h 2 BYTEs (big-endian) NetWare application serial number
  71808. SeeAlso: #01909 at AH=E3h/SF=12h
  71809. --------N-21F217SF13-------------------------
  71810. INT 21 - Novell NetWare - GET INTERNET ADDRESS (OLD)
  71811. AX = F217h subfn 13h
  71812. CX = length of request packet in bytes
  71813. DX = length of reply buffer in bytes
  71814. DS:SI -> request packet (see #01911 at AH=E3h/SF=13h)
  71815. ES:DI -> reply buffer (see #02168)
  71816. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71817. SeeAlso: AH=F2h"Novell",AH=E3h/SF=13h,AX=F217h/SF=1Ah
  71818. Format of NetWare "Get Internet Address (old)" reply packet:
  71819. Offset Size Description (Table 02168)
  71820. 00h 4 BYTEs network number
  71821. 04h 6 BYTEs physical node address
  71822. 0Ah 2 BYTEs socket number
  71823. SeeAlso: #01911 at AH=E3h/SF=13h,#02174
  71824. --------N-21F217SF14-------------------------
  71825. INT 21 - Novell NetWare - LOGIN OBJECT
  71826. AX = F217h subfn 14h
  71827. CX = length of request packet in bytes
  71828. DX = 0000h (no reply packet)
  71829. DS:SI -> request packet (see #01913 at AH=E3h/SF=14h)
  71830. ES:DI ignored
  71831. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71832. SeeAlso: AH=F2h"Novell",AH=E3h/SF=14h,AX=F216h/SF=18h,AX=F217h/SF=CCh
  71833. SeeAlso: AX=F258h/SF=03h,AX=F268h/SF=3Dh
  71834. --------N-21F217SF15-------------------------
  71835. INT 21 - Novell NetWare - GET OBJECT CONNECTION LIST (OLD)
  71836. AX = F217h subfn 15h
  71837. CX = length of request packet in bytes
  71838. DX = length of reply buffer in bytes
  71839. DS:SI -> request packet (see #01915 at AH=E3h/SF=15h)
  71840. ES:DI -> reply buffer (see #02169)
  71841. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71842. SeeAlso: AH=F2h"Novell",AH=E3h/SF=15h,AX=F217h/SF=1Bh
  71843. Format of NetWare "Get Object Connection List (old)" reply packet:
  71844. Offset Size Description (Table 02169)
  71845. 00h BYTE number of connections
  71846. 01h N BYTEs connection list
  71847. SeeAlso: #01915
  71848. --------N-21F217SF16-------------------------
  71849. INT 21 - Novell NetWare - GET CONNECTION INFORMATION (OLD)
  71850. AX = F217h subfn 16h
  71851. CX = length of request packet in bytes
  71852. DX = length of reply buffer in bytes
  71853. DS:SI -> request packet (see #02170)
  71854. ES:DI -> reply buffer (see #02171)
  71855. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71856. reply buffer filled
  71857. SeeAlso: AH=F2h"Novell",AX=F217h/SF=1Ch,AX=F217h/SF=1Fh
  71858. Format of NetWare "Get Connection Information (old)" request packet:
  71859. Offset Size Description (Table 02170)
  71860. 00h WORD 0002h (length of following data)
  71861. 02h BYTE 16h (subfunction "Get Connection Information (old)")
  71862. 03h BYTE target connection number
  71863. Note: connection numbers greater than the maximum supported by the server
  71864. can cause ABENDs
  71865. SeeAlso: #02171
  71866. Format of NetWare "Get Connection Information (old)" reply packet:
  71867. Offset Size Description (Table 02171)
  71868. 00h DWORD (big-endian) unique user ID, 00000000h if no one logged in
  71869. 04h WORD (big-endian) user type
  71870. 06h 48 BYTEs user name
  71871. 36h 7 BYTEs login time (see #02087)
  71872. 3Dh BYTE reserved
  71873. SeeAlso: #02170
  71874. --------N-21F217SF17-------------------------
  71875. INT 21 - Novell NetWare - GET ENCRYPTION KEY
  71876. AX = F217h subfn 17h
  71877. CX = length of request packet in bytes
  71878. DX = length of reply buffer in bytes
  71879. DS:SI -> request packet (see #02172)
  71880. ES:DI -> reply buffer
  71881. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71882. SeeAlso: AH=F2h"Novell",AX=F217h/SF=18h,AX=F217h/SF=4Ah,AX=F217h/SF=4Bh
  71883. Format of NetWare "Get Encryption Key" request packet:
  71884. Offset Size Description (Table 02172)
  71885. 00h WORD length of following data
  71886. 02h BYTE 17h (subfunction "Get Encryption Key")
  71887. ???
  71888. --------N-21F217SF18-------------------------
  71889. INT 21 - Novell NetWare - LOGIN OBJECT ENCRYPTED
  71890. AX = F217h subfn 18h
  71891. CX = length of request packet in bytes
  71892. DX = length of reply buffer in bytes
  71893. DS:SI -> request packet (see #02173)
  71894. ES:DI -> reply buffer
  71895. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71896. SeeAlso: AH=F2h"Novell",AX=F217h/SF=14h,AX=F217h/SF=17h
  71897. Format of NetWare "Login Object Encrypted" request packet:
  71898. Offset Size Description (Table 02173)
  71899. 00h WORD length of following data
  71900. 02h BYTE 18h (subfunction "Login Object Encrypted")
  71901. ???
  71902. --------N-21F217SF1A-------------------------
  71903. INT 21 - Novell NetWare - GET INTERNET ADDRESS
  71904. AX = F217h subfn 1Ah
  71905. CX = length of request packet in bytes
  71906. DX = length of reply buffer in bytes
  71907. DS:SI -> request packet (see #02174)
  71908. ES:DI -> reply buffer (see #02175)
  71909. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71910. SeeAlso: AH=F2h"Novell",AX=F217h/SF=13h
  71911. Format of NetWare "Get Internet Address" request packet:
  71912. Offset Size Description (Table 02174)
  71913. 00h WORD length of following data
  71914. 02h BYTE 1Ah (subfunction "Get Internet Address")
  71915. 03h DWORD target connection ID
  71916. SeeAlso: #02175
  71917. Format of NetWare "Get Internet Address" reply packet:
  71918. Offset Size Description (Table 02175)
  71919. 00h 4 BYTEs network number
  71920. 04h 6 BYTEs physical node address
  71921. 0Ah 2 BYTEs socket number
  71922. 0Ch BYTE connection type
  71923. 00h not in use
  71924. 02h NCP
  71925. 03h AFP
  71926. SeeAlso: #02174
  71927. --------N-21F217SF1B-------------------------
  71928. INT 21 - Novell NetWare - GET OBJECT CONNECTION LIST
  71929. AX = F217h subfn 1Bh
  71930. CX = length of request packet in bytes
  71931. DX = length of reply buffer in bytes
  71932. DS:SI -> request packet (see #02176)
  71933. ES:DI -> reply buffer (see #02177)
  71934. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71935. SeeAlso: AH=F2h"Novell",AX=F217h/SF=15h
  71936. Format of NetWare "Get Object Connection List" request packet:
  71937. Offset Size Description (Table 02176)
  71938. 00h WORD length of following data
  71939. 02h BYTE 1Bh (subfunction "Get Object Connection List")
  71940. 03h DWORD search connection number
  71941. set to highest connection number returned by previous call, or
  71942. 00000000h before first call
  71943. 07h WORD object type
  71944. 09h BYTE length of object's name
  71945. 0Ah N BYTEs object name
  71946. SeeAlso: #02177
  71947. Format of NetWare "Get Object Connection List" reply packet:
  71948. Offset Size Description (Table 02177)
  71949. 00h BYTE length of connection number list
  71950. 01h N WORDs array of server connection numbers
  71951. SeeAlso: #02176
  71952. --------N-21F217SF1C-------------------------
  71953. INT 21 - Novell NetWare v3+ - GET CONNECTION INFORMATION
  71954. AX = F217h subfn 1Ch
  71955. CX = length of request packet in bytes
  71956. DX = length of reply buffer in bytes
  71957. DS:SI -> request packet (see #02178)
  71958. ES:DI -> reply buffer (see #02179)
  71959. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71960. reply buffer filled
  71961. SeeAlso: AH=F2h"Novell",AX=F217h/SF=16h,AX=F217h/SF=1Fh
  71962. Format of NetWare "Get Connection Information" request packet:
  71963. Offset Size Description (Table 02178)
  71964. 00h WORD 0005h (length of following data)
  71965. 02h BYTE 1Ch (subfunction "Get Connection Information")
  71966. 03h DWORD target connection number
  71967. Note: connection numbers greater than the maximum supported by the server
  71968. can cause ABENDs
  71969. SeeAlso: #02179,#02170
  71970. Format of NetWare "Get Connection Information" reply packet:
  71971. Offset Size Description (Table 02179)
  71972. 00h DWORD (big-endian) unique user ID, 00000000h if no one logged in
  71973. 04h WORD (big-endian) user type
  71974. 06h 48 BYTEs user name
  71975. 36h 7 BYTEs login time (see #02087)
  71976. 3Dh BYTE reserved
  71977. SeeAlso: #02178,#02171
  71978. --------N-21F217SF1D-------------------------
  71979. INT 21 - Novell NetWare v4 - CHANGE CONNECTION STATE
  71980. AX = F217h subfn 1Dh
  71981. CX = length of request buffer in bytes
  71982. DX = length of reply buffer in bytes
  71983. DS:SI -> request buffer (see #02180)
  71984. ES:DI -> reply buffer
  71985. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  71986. reply buffer filled
  71987. Format of NetWare "Change Connection State" requst buffer:
  71988. Offset Size Description (Table 02180)
  71989. 00h WORD length of following data
  71990. 02h BYTE 1Dh (subfunction "Change Connection State")
  71991. 03h DWORD new state
  71992. --------N-21F217SF1E-------------------------
  71993. INT 21 - Novell NetWare v4 - SET WATCHDOG DELAY INTERVAL
  71994. AX = F217h subfn 1Eh
  71995. CX = length of request buffer in bytes
  71996. DX = length of reply buffer in bytes
  71997. DS:SI -> request buffer (see #02181)
  71998. ES:DI -> reply buffer
  71999. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72000. reply buffer filled
  72001. Format of NetWare "Set Watchdog Delay Interval" request buffer:
  72002. Offset Size Description (Table 02181)
  72003. 00h WORD length of following data
  72004. 02h BYTE 1Eh (subfunction "Set Watchdog Delay Interval")
  72005. 03h DWORD interval in minutes
  72006. --------N-21F217SF1F-------------------------
  72007. INT 21 - Novell NetWare v4 - GET CONNECTION LIST
  72008. AX = F217h subfn 1Fh
  72009. CX = length of request buffer in bytes
  72010. DX = length of reply buffer in bytes
  72011. DS:SI -> request buffer (see #02182)
  72012. ES:DI -> reply buffer (see #02183)
  72013. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72014. reply buffer filled
  72015. Format of NetWare "Get Connection List" request buffer:
  72016. Offset Size Description (Table 02182)
  72017. 00h WORD length of following data
  72018. 02h BYTE 1Fh (subfunction "Get Connection List")
  72019. 03h DWORD object ID
  72020. 07h DWORD ??? (initialize to FFFFFFFFh before first call)
  72021. SeeAlso: #02183
  72022. Format of NetWare "Get Connection List" reply buffer:
  72023. Offset Size Description (Table 02183)
  72024. 00h WORD number of connections following (max 50)
  72025. 02h 50 DWORDs connection numbers
  72026. SeeAlso: #02182
  72027. --------N-21F217SF32-------------------------
  72028. INT 21 - Novell NetWare - CREATE BINDERY OBJECT
  72029. AX = F217h subfn 32h
  72030. CX = length of request packet in bytes
  72031. DX = 0000h (no reply packet)
  72032. DS:SI -> request packet (see #01921 at AH=E3h/SF=32h)
  72033. ES:DI ignored
  72034. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72035. SeeAlso: AH=F2h"Novell",AH=E3h/SF=32h,AX=F217h/SF=33h,AX=F217h/SF=34h
  72036. --------N-21F217SF33-------------------------
  72037. INT 21 - Novell NetWare - DELETE BINDERY OBJECT
  72038. AX = F217h subfn 33h
  72039. CX = length of request packet in bytes
  72040. DX = 0000h (no reply packet)
  72041. DS:SI -> request packet (see #01923 at AH=E3h/SF=33h)
  72042. ES:DI ignored
  72043. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72044. SeeAlso: AH=F2h"Novell",AH=E3h/SF=33h,AX=F217h/SF=32h,AX=F217h/SF=34h
  72045. --------N-21F217SF34-------------------------
  72046. INT 21 - Novell NetWare - RENAME BINDERY OBJECT
  72047. AX = F217h subfn 34h
  72048. CX = length of request packet in bytes
  72049. DX = 0000h (no reply packet)
  72050. DS:SI -> request packet (see #01924 at AH=E3h/SF=34h)
  72051. ES:DI ignored
  72052. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72053. SeeAlso: AH=F2h"Novell",AH=E3h/SF=34h,AX=F217h/SF=32h,AX=F217h/SF=33h
  72054. --------N-21F217SF35-------------------------
  72055. INT 21 - Novell NetWare - GET BINDERY OBJECT ID
  72056. AX = F217h subfn 35h
  72057. CX = length of request packet in bytes
  72058. DX = length of reply buffer in bytes
  72059. DS:SI -> request packet (see #01925 at AH=E3h/SF=35h)
  72060. ES:DI -> reply buffer (see #02184)
  72061. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72062. SeeAlso: AH=F2h"Novell",AH=E3h/SF=35h,AX=F217h/SF=36h,AX=F217h/SF=45h
  72063. Format of NetWare "Get Bindery Object ID" reply packet:
  72064. Offset Size Description (Table 02184)
  72065. 00h DWORD (big-endian) object ID
  72066. 04h WORD (big-endian) type of object
  72067. 06h 48 BYTEs object name
  72068. SeeAlso: #01925 at AH=E3h/SF=35h
  72069. --------N-21F217SF36-------------------------
  72070. INT 21 - Novell NetWare - GET BINDERY OBJECT NAME
  72071. AX = F217h subfn 36h
  72072. CX = length of request packet in bytes
  72073. DX = length of reply buffer in bytes
  72074. DS:SI -> request packet (see #01928 at AH=E3h/SF=36h)
  72075. ES:DI -> reply buffer (see #02185)
  72076. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72077. SeeAlso: AH=F2h"Novell",AH=E3h/SF=36h,AX=F217h/SF=35h,AX=F217h/SF=37h
  72078. Format of NetWare "Get Bindery Object Name" reply packet:
  72079. Offset Size Description (Table 02185)
  72080. 00h DWORD (big-endian) object ID
  72081. 04h WORD (big-endian) type of object
  72082. 06h 48 BYTEs object name
  72083. SeeAlso: #01928 at AH=E3h/SF=36h
  72084. --------N-21F217SF37-------------------------
  72085. INT 21 - Novell NetWare - SCAN BINDERY OBJECT
  72086. AX = F217h subfn 37h
  72087. CX = length of request packet in bytes
  72088. DX = length of reply buffer in bytes
  72089. DS:SI -> request packet (see #01930 at AH=E3h/SF=37h)
  72090. ES:DI -> reply buffer (see #02186)
  72091. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72092. SeeAlso: AH=F2h"Novell",AH=E3h/SF=37h,AX=F217h/SF=3Ch
  72093. Format of NetWare "Scan Bindery Object" reply packet:
  72094. Offset Size Description (Table 02186)
  72095. 00h
  72096. SeeAlso: #01930
  72097. --------N-21F217SF38-------------------------
  72098. INT 21 - Novell NetWare - CHANGE BINDERY OBJECT SECURITY
  72099. AX = F217h subfn 38h
  72100. CX = length of request packet in bytes
  72101. DX = 0000h (no reply buffer)
  72102. DS:SI -> request packet (see #01932 at AH=E3h/SF=38h)
  72103. ES:DI ignored
  72104. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72105. SeeAlso: AH=F2h"Novell",AH=E3h/SF=38h,AX=F217h/SF=32h
  72106. --------N-21F217SF39-------------------------
  72107. INT 21 - Novell NetWare - CREATE PROPERTY
  72108. AX = F217h subfn 39h
  72109. CX = length of request packet in bytes
  72110. DX = 0000h (no reply packet)
  72111. DS:SI -> request packet (see #01934 at AH=E3h/SF=39h)
  72112. ES:DI ignored
  72113. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72114. SeeAlso: AH=F2h"Novell",AH=E3h/SF=39h,AX=F217h/SF=3Ah
  72115. --------N-21F217SF3A-------------------------
  72116. INT 21 - Novell NetWare - DELETE PROPERTY
  72117. AX = F217h subfn 3Ah
  72118. CX = length of request packet in bytes
  72119. DX = 0000h (no reply packet)
  72120. DS:SI -> request packet (see #01936 at AH=E3h/SF=3Ah)
  72121. ES:DI ignored
  72122. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72123. SeeAlso: AH=F2h"Novell",AH=E3h/SF=3Ah,AX=F217h/SF=39h,AX=F217h/SF=3Bh
  72124. --------N-21F217SF3B-------------------------
  72125. INT 21 - Novell NetWare - CHANGE PROPERTY SECURITY
  72126. AX = F217h subfn 3Bh
  72127. CX = length of request packet in bytes
  72128. DX = 0000h (no reply buffer)
  72129. DS:SI -> request packet (see #01938 at AH=E3h/SF=3Bh)
  72130. ES:DI ignored
  72131. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72132. SeeAlso: AH=F2h"Novell",AH=E3h/SF=3Bh
  72133. --------N-21F217SF3C-------------------------
  72134. INT 21 - Novell NetWare - SCAN PROPERTY
  72135. AX = F217h subfn 3Ch
  72136. CX = length of request packet in bytes
  72137. DX = length of reply buffer in bytes
  72138. DS:SI -> request packet (see #01939 at AH=E3h/SF=3Ch)
  72139. ES:DI -> reply buffer (see #02187)
  72140. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72141. SeeAlso: AH=F2h"Novell",AH=E3h/SF=3Ch,AX=F217h/SF=39h,AX=F217h/SF=3Dh
  72142. Format of NetWare "Scan Property" reply packet:
  72143. Offset Size Description (Table 02187)
  72144. 00h
  72145. SeeAlso: #01939
  72146. --------N-21F217SF3D-------------------------
  72147. INT 21 - Novell NetWare - READ PROPERTY VALUE
  72148. AX = F217h subfn 3Dh
  72149. CX = length of request packet in bytes
  72150. DX = length of reply buffer in bytes
  72151. DS:SI -> request packet (see #01942 at AH=E3h/SF=3Dh)
  72152. ES:DI -> reply buffer (see #02188)
  72153. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72154. SeeAlso: AH=F2h"Novell",AH=E3h/SF=3Dh,AX=F217h/SF=39h,AX=F217h/SF=3Eh
  72155. Format of NetWare "Read Property Value" request packet:
  72156. Offset Size Description (Table 02188)
  72157. 00h
  72158. SeeAlso: #01942
  72159. --------N-21F217SF3E-------------------------
  72160. INT 21 - Novell NetWare - WRITE PROPERTY VALUE
  72161. AX = F217h subfn 3Eh
  72162. CX = length of request packet in bytes
  72163. DX = 0000h (no reply packet)
  72164. DS:SI -> request packet (see #01944 at AH=E3h/SF=3Eh)
  72165. ES:DI ignored
  72166. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72167. SeeAlso: AH=F2h"Novell",AH=E3h/SF=3Eh,AX=F217h/SF=39h,AX=F217h/SF=3Dh
  72168. --------N-21F217SF3F-------------------------
  72169. INT 21 - Novell NetWare - VERIFY BINDERY OBJECT PASSWORD
  72170. AX = F217h subfn 3Fh
  72171. CX = length of request packet in bytes
  72172. DX = 0000h (no reply packet)
  72173. DS:SI -> request packet (see #01947 at AH=E3h/SF=3Fh)
  72174. ES:DI ignored
  72175. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72176. SeeAlso: AH=F2h"Novell",AH=E3h/SF=3Fh,AX=F217h/SF=40h
  72177. --------N-21F217SF40-------------------------
  72178. INT 21 - Novell NetWare - CHANGE BINDERY OBJECT PASSWORD
  72179. AX = F217h subfn 40h
  72180. CX = length of request packet in bytes
  72181. DX = 0000h (no reply buffer)
  72182. DS:SI -> request packet (see #01948 at AH=E3h/SF=40h)
  72183. ES:DI ignored
  72184. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72185. SeeAlso: AH=F2h"Novell",AH=E3h/SF=40h,AX=F217h/SF=3Fh
  72186. --------N-21F217SF41-------------------------
  72187. INT 21 - Novell NetWare v2.2+ - ADD OBJECT TO SET
  72188. AX = F217h subfn 41h
  72189. CX = length of request packet in bytes
  72190. DX = 0000h (no reply packet)
  72191. DS:SI -> request packet (see #01951 at AH=E3h/SF=41h)
  72192. ES:DI ignored
  72193. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72194. Desc: add a member to an object's group property
  72195. SeeAlso: AH=F2h"Novell",AH=E3h/SF=41h,AX=F217h/SF=42h,AX=F217h/SF=43h
  72196. --------N-21F217SF42-------------------------
  72197. INT 21 - Novell NetWare - DELETE BINDERY OBJECT FROM SET
  72198. AX = F217h subfn 42h
  72199. CX = length of request packet in bytes
  72200. DX = 0000h (no reply packet)
  72201. DS:SI -> request packet (see #01952 at AH=E3h/SF=42h)
  72202. ES:DI ignored
  72203. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72204. SeeAlso: AH=F2h"Novell",AH=E3h/SF=42h,AX=F217h/SF=41h,AX=F217h/SF=43h
  72205. --------N-21F217SF43-------------------------
  72206. INT 21 - Novell NetWare - IS BINDERY OBJECT IN SET?
  72207. AX = F217h subfn 43h
  72208. CX = length of request packet in bytes
  72209. DX = 0000h (no reply packet)
  72210. DS:SI -> request packet (see #01954 at AH=E3h/SF=43h)
  72211. ES:DI ignored
  72212. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72213. SeeAlso: AH=F2h"Novell",AH=E3h/SF=43h,AX=F217h/SF=41h,AX=F217h/SF=42h
  72214. --------N-21F217SF44-------------------------
  72215. INT 21 - Novell NetWare - CLOSE BINDERY
  72216. AX = F217h subfn 44h
  72217. CX = length of request packet in bytes
  72218. DX = 0000h (no reply packet)
  72219. DS:SI -> request packet (see #01955 at AH=E3h/SF=44h)
  72220. ES:DI ignored
  72221. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72222. SeeAlso: AH=F2h"Novell",AH=E3h/SF=44h,AX=F217h/SF=45h
  72223. --------N-21F217SF45-------------------------
  72224. INT 21 - Novell NetWare - OPEN BINDERY
  72225. AX = F217h subfn 45h
  72226. CX = length of request packet in bytes
  72227. DX = 0000h (no reply packet)
  72228. DS:SI -> request packet (see #01956 at AH=E3h/SF=45h)
  72229. ES:DI ignored
  72230. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72231. SeeAlso: AH=F2h"Novell",AH=E3h/SF=45h,AX=F217h/SF=44h
  72232. --------N-21F217SF46-------------------------
  72233. INT 21 - Novell NetWare - GET BINDERY ACCESS LEVEL
  72234. AX = F217h subfn 46h
  72235. CX = length of request packet in bytes
  72236. DX = length of reply buffer in bytes
  72237. DS:SI -> request packet (see #01957 at AH=E3h/SF=46h)
  72238. ES:DI -> reply buffer (see #02189)
  72239. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72240. SeeAlso: AH=F2h"Novell",AH=E3h/SF=46h,AX=F217h/SF=45h
  72241. Format of NetWare "Get Bindery Access Level" reply packet:
  72242. Offset Size Description (Table 02189)
  72243. 00h BYTE security levels
  72244. 01h DWORD (big-endian) object ID
  72245. SeeAlso: #01957,#01958 at AH=E3h/SF=46h
  72246. --------N-21F217SF47-------------------------
  72247. INT 21 - Novell NetWare - SCAN BINDERY OBJECT TRUSTEE PATHS
  72248. AX = F217h subfn 47h
  72249. CX = length of request packet in bytes
  72250. DX = length of reply buffer in bytes
  72251. DS:SI -> request packet (see #01959 at AH=E3h/SF=47h)
  72252. ES:DI -> reply buffer (see #02190)
  72253. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72254. SeeAlso: AH=F2h"Novell",AH=E3h/SF=47h,AX=F216h/SF=0Ch,AX=F217h/SF=48h
  72255. Format of NetWare "Scan Bindery Object Trustee Paths" reply packet:
  72256. Offset Size Description (Table 02190)
  72257. 00h WORD (big-endian) next sequence number
  72258. 02h DWORD (big-endian) object ID
  72259. 06h BYTE trustee directory rights (see #01849 at AH=E2h/SF=03h)
  72260. 07h BYTE length of trustee path
  72261. 08h N BYTEs trustee path
  72262. SeeAlso: #01959,#01960 at AH=E3h/SF=47h
  72263. --------N-21F217SF48-------------------------
  72264. INT 21 - Novell NetWare - GET BINDERY OBJECT ACCESS LEVEL
  72265. AX = F217h subfn 48h
  72266. CX = length of request packet in bytes
  72267. DX = length of reply buffer in bytes
  72268. DS:SI -> request packet (see #02191)
  72269. ES:DI -> reply buffer (see #02192)
  72270. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72271. SeeAlso: AH=F2h"Novell",AX=F217h/SF=45h,AX=F217h/SF=46h
  72272. Format of NetWare "Get Bindery Object Access Level" request packet:
  72273. Offset Size Description (Table 02191)
  72274. 00h WORD length of following data (max ABh)
  72275. 02h BYTE 48h (subfunction "Get Bindery Object Access Level")
  72276. 03h DWORD object ID
  72277. SeeAlso: #02192
  72278. Format of NetWare "Get Bindery Object Access Level" reply packet:
  72279. Offset Size Description (Table 02192)
  72280. 00h BYTE object access level
  72281. SeeAlso: #02191
  72282. --------N-21F217SF49-------------------------
  72283. INT 21 - Novell NetWare - IS STATION A MANAGER?
  72284. AX = F217h subfn 49h
  72285. CX = length of request packet in bytes
  72286. DX = 0000h (no reply packet)
  72287. DS:SI -> request packet (see #02193)
  72288. ES:DI ignored
  72289. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72290. SeeAlso: AH=F2h"Novell",AX=F217h/SF=43h
  72291. Format of NetWare "Is Station A Manager?" request packet:
  72292. Offset Size Description (Table 02193)
  72293. 00h WORD length of following data
  72294. 02h BYTE 49h (subfunction "Is Station A Manager?")
  72295. 03h DWORD object ID
  72296. --------N-21F217SF4A-------------------------
  72297. INT 21 - Novell NetWare - KEYED VERIFY BINDERY OBJECT PASSWORD
  72298. AX = F217h subfn 4Ah
  72299. CX = length of request packet in bytes
  72300. DX = 0000h (no reply packet)
  72301. DS:SI -> request packet (see #02194)
  72302. ES:DI ignored
  72303. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72304. SeeAlso: AH=F2h"Novell",AX=F217h/SF=4Bh
  72305. Format of NetWare "Keyed Verify Bindery Object Password" request packet:
  72306. Offset Size Description (Table 02194)
  72307. 00h WORD length of following data
  72308. 02h BYTE 4Ah (subfunction "Keyed Verify Bindery Object Password")
  72309. 03h 8 BYTEs key
  72310. 0Bh WORD type
  72311. 0Dh BYTE length of object's name
  72312. 0Eh N BYTEs object name
  72313. SeeAlso: #02195
  72314. --------N-21F217SF4B-------------------------
  72315. INT 21 - Novell NetWare - KEYED CHANGE BINDERY OBJECT PASSWORD
  72316. AX = F217h subfn 4Bh
  72317. CX = length of request packet in bytes
  72318. DX = 0000h (no reply packet)
  72319. DS:SI -> request packet (see #02195)
  72320. ES:DI ignored
  72321. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72322. SeeAlso: AH=F2h"Novell",AX=F217h/SF=4Ah
  72323. Format of NetWare "Keyed Change Bindery Object Password" request packet:
  72324. Offset Size Description (Table 02195)
  72325. 00h WORD length of following data
  72326. 02h BYTE 4Bh (subfunction "Keyed Change Bindery Object Password")
  72327. 03h 8 BYTEs key
  72328. 0Bh WORD type
  72329. 0Dh BYTE length of object name
  72330. 0Eh N BYTEs object name
  72331. BYTE length of new password
  72332. N BYTEs new password
  72333. SeeAlso: #01948
  72334. --------N-21F217SF4C-------------------------
  72335. INT 21 - Novell NetWare - LIST RELATIONS OF AN OBJECT
  72336. AX = F217h subfn 4Ch
  72337. CX = length of request packet in bytes
  72338. DX = length of reply buffer in bytes
  72339. DS:SI -> request packet (see #02196)
  72340. ES:DI -> reply buffer (see #02197)
  72341. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72342. SeeAlso: AH=F2h"Novell",AX=F217h/SF=39h
  72343. Format of NetWare "List Relations Of An Object" request packet:
  72344. Offset Size Description (Table 02196)
  72345. 00h WORD length of following data
  72346. 02h BYTE 4Ch (subfunction "List Relations Of An Object")
  72347. 03h DWORD last bindery ID seen (set to FFFFFFFFh on first call)
  72348. 07h WORD object type
  72349. 09h BYTE length of object's name
  72350. 0Ah N BYTEs object's name
  72351. BYTE length of property name
  72352. N BYTEs property name
  72353. SeeAlso: #02197
  72354. Format of NetWare "List Relations Of An Object" reply packet:
  72355. Offset Size Description (Table 02197)
  72356. 00h WORD number of relations returned
  72357. 02h var relations
  72358. SeeAlso: #02196
  72359. --------N-21F217SF64-------------------------
  72360. INT 21 - Novell NetWare v2.1+ - CREATE QUEUE
  72361. AX = F217h subfn 64h
  72362. CX = length of request packet in bytes
  72363. DX = length of reply buffer in bytes
  72364. DS:SI -> request packet (see #01962 at AH=E3h/SF=64h)
  72365. ES:DI -> reply buffer (see #02198)
  72366. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72367. SeeAlso: AH=F2h"Novell",AH=E3h/SF=64h,AX=F217h/SF=65h,AX=F217h/SF=66h
  72368. Format of NetWare "Create Queue" reply packet:
  72369. Offset Size Description (Table 02198)
  72370. 00h DWORD (big-endian) object ID of queue
  72371. SeeAlso: #01962,#01963
  72372. --------N-21F217SF65-------------------------
  72373. INT 21 - Novell NetWare v2.1+ - DESTROY QUEUE
  72374. AX = F217h subfn 65h
  72375. CX = length of request packet in bytes
  72376. DX = 0000h (no reply packet)
  72377. DS:SI -> request packet (see #01964 at AH=E3h/SF=65h)
  72378. ES:DI ignored
  72379. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72380. SeeAlso: AH=F2h"Novell",AH=E3h/SF=65h,AX=F217h/SF=64h,AX=F217h/SF=66h
  72381. --------N-21F217SF66-------------------------
  72382. INT 21 - Novell NetWare v2.1+ - READ QUEUE CURRENT STATUS (OLD)
  72383. AX = F217h subfn 66h
  72384. CX = length of request packet in bytes
  72385. DX = length of reply buffer in bytes
  72386. DS:SI -> request packet (see #01965 at AH=E3h/SF=64h)
  72387. ES:DI -> reply buffer (see #02199)
  72388. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72389. SeeAlso: AH=F2h"Novell",AH=E3h/SF=66h,AX=F217h/SF=64h,AX=F217h/SF=67h
  72390. Format of NetWare "Read Queue Current Status (Old)" reply packet:
  72391. Offset Size Description (Table 02199)
  72392. 00h DWORD (big-endian) object ID of queue
  72393. 04h BYTE status of queue (see #01967)
  72394. 05h BYTE number of jobs in queue (00h-FAh)
  72395. 06h BYTE number of servers attached to queue (00h-19h)
  72396. 07h 25 DWORDs list of object IDs of attached servers
  72397. 6Bh 25 BYTEs list of attached servers' stations
  72398. 84h BYTE (call) maximum number of servers to return
  72399. SeeAlso: #01965,#01966 at AH=E3h/SF=66h
  72400. --------N-21F217SF67-------------------------
  72401. INT 21 - Novell NetWare v2.1+ - SET QUEUE CURRENT STATUS (OLD)
  72402. AX = F217h subfn 67h
  72403. CX = length of request packet in bytes
  72404. DX = 0000h (no reply packet)
  72405. DS:SI -> request packet (see #01968 at AH=E3h/SF=67h)
  72406. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72407. SeeAlso: AH=F2h"Novell",AH=E3h/SF=67h,AX=F217h/SF=66h,AX=F217h/SF=68h
  72408. --------N-21F217SF68-------------------------
  72409. INT 21 - Novell NetWare v2.1+ - CREATE QUEUE JOB AND FILE (OLD)
  72410. AX = F217h subfn 68h
  72411. CX = length of request packet in bytes
  72412. DX = length of reply buffer in bytes
  72413. DS:SI -> request packet (see #01970 at AH=E3h/SF=68h)
  72414. ES:DI -> reply buffer (see #02200)
  72415. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72416. SeeAlso: AH=F2h"Novell",AH=E3h/SF=68h,AX=F217h/SF=67h,AX=F217h/SF=69h
  72417. Format of NetWare "Create Queue Job And File (Old)" reply packet:
  72418. Offset Size Description (Table 02200)
  72419. 00h BYTE client station
  72420. 01h BYTE client task number
  72421. 02h DWORD (big-endian) object ID of client
  72422. 06h DWORD (big-endian) object ID of target server
  72423. 0Ah 6 BYTEs target execution time (year,month,day,hour,minute,second)
  72424. 10h 6 BYTEs job entry time (year,month,day,hour,minute,second)
  72425. 16h WORD (big-endian) job number
  72426. 18h WORD (big-endian) job type
  72427. 1Ah BYTE job position
  72428. 1Bh BYTE job control flags (see #01980)
  72429. 1Ch 14 BYTEs ASCIZ job file name
  72430. 2Ah 6 BYTEs job file handle
  72431. 30h BYTE server station
  72432. 31h BYTE server task number
  72433. 32h DWORD (big-endian) object ID of server or 00000000h
  72434. SeeAlso: #01970,#01972
  72435. --------N-21F217SF69-------------------------
  72436. INT 21 - Novell NetWare v2.1+ - CLOSE FILE AND START QUEUE JOB (OLD)
  72437. AX = F217h subfn 69h
  72438. CX = length of request packet in bytes
  72439. DX = 0000h (no reply packet)
  72440. DS:SI -> request packet (see #01973 at AH=E3h/SF=69h)
  72441. ES:DI ignored
  72442. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72443. SeeAlso: AH=F2h"Novell",AH=E3h/SF=69h,AX=F217h/SF=6Ah,AX=F217h/SF=7Fh
  72444. --------N-21F217SF6A-------------------------
  72445. INT 21 - Novell NetWare v2.1+ - REMOVE JOB FROM QUEUE (OLD)
  72446. AX = F217h subfn 6Ah
  72447. CX = length of request packet in bytes
  72448. DX = 0000h (no reply packet)
  72449. DS:SI -> request packet (see #01975 at AH=E3h/SF=6Ah)
  72450. ES:DI ignored
  72451. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72452. SeeAlso: AH=F2h"Novell",AH=E3h/SF=6Ah,AX=F217h/SF=68h,AX=F217h/SF=69h
  72453. --------N-21F217SF6B-------------------------
  72454. INT 21 - Novell NetWare v2.1+ - GET QUEUE JOB LIST (OLD)
  72455. AX = F217h subfn 6Bh
  72456. CX = length of request packet in bytes
  72457. DX = length of reply buffer in bytes
  72458. DS:SI -> request packet (see #01976 at AH=E3h/SF=6Bh)
  72459. ES:DI -> reply buffer (see #02201)
  72460. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72461. SeeAlso: AH=F2h"Novell",AH=E3h/SF=6Bh,AX=F217h/SF=6Ah,AX=F217h/SF=6Ch
  72462. SeeAlso: AX=F217h/SF=81h
  72463. Format of NetWare "Get Queue Job List (old)" reply packet:
  72464. Offset Size Description (Table 02201)
  72465. 00h WORD (big-endian) job count
  72466. 02h N WORDs (big-endian) list of job numbers by position in queue
  72467. SeeAlso: #01976,#01977 at AH=E3h/SF=6Bh
  72468. --------N-21F217SF6C-------------------------
  72469. INT 21 - Novell NetWare v2.1+ - READ QUEUE JOB ENTRY (OLD)
  72470. AX = F217h subfn 6Ch
  72471. CX = length of request packet in bytes
  72472. DX = length of reply buffer in bytes
  72473. DS:SI -> request packet (see #01978 at AH=E3h/SF=6Ch)
  72474. ES:DI -> reply buffer (see #02202)
  72475. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72476. SeeAlso: AH=F2h"Novell",AH=E3h/SF=6Ch,AX=F217h/SF=6Bh,AX=F217h/SF=6Dh
  72477. Format of NetWare "Read Queue Job Entry (old)" reply packet:
  72478. Offset Size Description (Table 02202)
  72479. 00h BYTE client station number
  72480. 01h BYTE client task number
  72481. 02h DWORD object ID of client
  72482. 06h DWORD (big-endian) object ID of target server
  72483. FFFFFFFFh if any server acceptable
  72484. 0Ah 6 BYTEs target execution time (year,month,day,hour,minute,second)
  72485. FFFFFFFFFFFFh if serviced as soon as possible
  72486. 10h 6 BYTEs job entry time (year,month,day,hour,minute,second)
  72487. 16h WORD (big-endian) job number
  72488. 18h WORD (big-endian) job type
  72489. 1Ah BYTE job position
  72490. 1Bh BYTE job control flags (see #01980)
  72491. 1Ch 14 BYTEs ASCIZ job filename
  72492. 2Ah 6 BYTEs job file handle
  72493. 30h BYTE server station
  72494. 31h BYTE server task number
  72495. 32h DWORD object ID of server
  72496. 36h 50 BYTEs ASCIZ job description string
  72497. 68h 152 BYTEs client record area
  72498. SeeAlso: #01978,#01979
  72499. --------N-21F217SF6D-------------------------
  72500. INT 21 - Novell NetWare v2.1+ - CHANGE QUEUE JOB ENTRY (OLD)
  72501. AX = F217h subfn 6Dh
  72502. CX = length of request packet in bytes
  72503. DX = 0000h (no reply packet)
  72504. DS:SI -> request packet (see #01981 at AH=E3h/SF=6Dh)
  72505. ES:DI ignored
  72506. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72507. SeeAlso: AH=F2h"Novell",AX=F217h/SF=7Bh,AH=E3h/SF=6Dh,AX=F217h/SF=6Ch
  72508. --------N-21F217SF6E-------------------------
  72509. INT 21 - Novell NetWare v2.1+ - CHANGE QUEUE JOB POSITION
  72510. AX = F217h subfn 6Eh
  72511. CX = length of request packet in bytes
  72512. DX = 0000h (no reply packet)
  72513. DS:SI -> request packet (see #01982 at AH=E3h/SF=6Eh)
  72514. ES:DI ignored
  72515. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72516. SeeAlso: AX=F217h/SF=6Dh,AH=E3h/SF=6Eh
  72517. --------N-21F217SF6F-------------------------
  72518. INT 21 - Novell NetWare v2.1+ - ATTACH QUEUE SERVER TO QUEUE
  72519. AX = F217h subfn 6Fh
  72520. CX = length of request packet in bytes
  72521. DX = 0000h (no reply packet)
  72522. DS:SI -> request packet (see #01984 at AH=E3h/SF=6Fh)
  72523. ES:DI ignored
  72524. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72525. SeeAlso: AH=F2h"Novell",AH=E3h/SF=6Fh,AX=F217h/SF=D2h
  72526. --------N-21F217SF70-------------------------
  72527. INT 21 - Novell NetWare v2.1+ - DETACH QUEUE SERVER FROM QUEUE
  72528. AX = F217h subfn 70h
  72529. CX = length of request packet in bytes
  72530. DX = 0000h (no reply packet)
  72531. DS:SI -> request packet (see #01985 at AH=E3h/SF=70h)
  72532. ES:DI ignored
  72533. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72534. SeeAlso: AH=F2h"Novell",AH=E3h/SF=70h,AX=F217h/SF=6Fh
  72535. --------N-21F217SF71-------------------------
  72536. INT 21 - Novell NetWare v2.1+ - SERVICE QUEUE JOB AND OPEN FILE
  72537. AX = F217h subfn 71h
  72538. CX = length of request packet in bytes
  72539. DX = 0000h (no reply packet)
  72540. DS:SI -> request packet (see #01986 at AH=E3h/SF=71h)
  72541. ES:DI ignored
  72542. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72543. Notes: the caller must be on a workstation which is security-equivalent to a
  72544. member of the queue's Q_USERS, Q_OPERATORS, or Q_SERVERS properties
  72545. SeeAlso: AH=E3h/SF=71h,AX=F217h/SF=70h,AX=F217h/SF=72h
  72546. --------N-21F217SF72-------------------------
  72547. INT 21 - Novell NetWare v2.1+ - FINISH SERVICING QUEUE JOB (OLD)
  72548. AX = F217h subfn 72h
  72549. CX = length of request packet in bytes
  72550. DX = 0000h (no reply packet)
  72551. DS:SI -> request packet (see #01987 at AH=E3h/SF=72h)
  72552. ES:DI ignored
  72553. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72554. SeeAlso: AH=F2h"Novell",AH=E3h/SF=72h,AX=F217h/SF=71h,AX=F217h/SF=73h
  72555. SeeAlso: AX=F217h/SF=83h
  72556. --------N-21F217SF73-------------------------
  72557. INT 21 - Novell NetWare v2.1+ - ABORT SERVICING QUEUE JOB (OLD)
  72558. AX = F217h subfn 73h
  72559. CX = length of request packet in bytes
  72560. DX = 0000h (no reply packet)
  72561. DS:SI -> request packet (see #01988 at AH=E3h/SF=73h)
  72562. ES:DI ignored
  72563. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72564. SeeAlso: AH=F2h"Novell",AH=E3h/SF=73h,AX=F217h/SF=72h,AX=F217h/SF=84h
  72565. --------N-21F217SF74-------------------------
  72566. INT 21 - Novell NetWare v2.1+ - CHANGE TO CLIENT RIGHTS (OLD)
  72567. AX = F217h subfn 74h
  72568. CX = length of request packet in bytes
  72569. DX = 0000h (no reply packet)
  72570. DS:SI -> request packet (see #01990 at AH=E3h/SF=74h)
  72571. ES:DI ignored
  72572. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72573. Desc: temporarily assume the login identity of the client submitting the
  72574. job being serviced
  72575. SeeAlso: AH=F2h"NetWare",AH=E3h/SF=74h,AX=F217h/SF=85h
  72576. --------N-21F217SF75-------------------------
  72577. INT 21 - Novell NetWare v2.1+ - RESTORE QUEUE SERVER RIGHTS
  72578. AX = F217h subfn 75h
  72579. CX = length of request packet in bytes
  72580. DX = 0000h (no reply packet)
  72581. DS:SI -> request packet (see #01991 at AH=E3h/SF=75h)
  72582. ES:DI ignored
  72583. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72584. SeeAlso: AH=F2h"Novell",AH=E3h/SF=75h,AX=F217h/SF=74h
  72585. --------N-21F217SF76-------------------------
  72586. INT 21 - Novell NetWare - READ QUEUE SERVER CURRENT STATUS (OLD)
  72587. AX = F217h subfn 76h
  72588. CX = length of request packet in bytes
  72589. DX = length of reply buffer in bytes
  72590. DS:SI -> request packet (see #01992 at AH=E3h/SF=76h)
  72591. ES:DI -> reply buffer (see #02203)
  72592. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72593. SeeAlso: AH=F2h"Novell",AH=E3h/SF=76h,AX=F217h/SF=74h,AX=F217h/SF=77h
  72594. Format of NetWare "Read Queue Server Current Status (old)" reply packet:
  72595. Offset Size Description (Table 02203)
  72596. 00h 64 BYTEs server status record (format depends on server)
  72597. first four bytes should contain estimated "price" for an
  72598. average job
  72599. SeeAlso: #01992,#01993 at AH=E3h/SF=76h
  72600. --------N-21F217SF77-------------------------
  72601. INT 21 - Novell NetWare - SET QUEUE SERVER CURRENT STATUS
  72602. AX = F217h subfn 77h
  72603. CX = length of request packet in bytes
  72604. DX = 0000h (no reply packet)
  72605. DS:SI -> request packet (see #01994 at AH=E3h/SF=77h)
  72606. ES:DI ignored
  72607. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72608. SeeAlso: AH=F2h"Novell",AH=E3h/SF=77h,AX=F217h/SF=76h
  72609. --------N-21F217SF78-------------------------
  72610. INT 21 - Novell NetWare - GET QUEUE JOB FILE SIZE (OLD)
  72611. AX = F217h subfn 78h
  72612. CX = length of request packet in bytes
  72613. DX = length of reply buffer in bytes
  72614. DS:SI -> request packet (see #01996 at AH=E3h/SF=78h)
  72615. ES:DI -> reply buffer (see #02204)
  72616. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72617. SeeAlso: AH=F2h"Novell",AH=E3h/SF=78h,AX=F217h/SF=71h,AX=F217h/SF=79h
  72618. Format of NetWare "Get Queue Job File Size (old)" reply packet:
  72619. Offset Size Description (Table 02204)
  72620. 00h DWORD (big-endian) object ID of queue
  72621. 04h WORD (big-endian) job number
  72622. 06h DWORD (big-endian) size of job file in bytes
  72623. SeeAlso: #01996,#01997 at AH=E3h/SF=78h
  72624. --------N-21F217SF79-------------------------
  72625. INT 21 - Novell NetWare - CREATE QUEUE JOB AND FILE
  72626. AX = F217h subfn 79h
  72627. CX = length of request packet in bytes
  72628. DX = length of reply buffer in bytes
  72629. DS:SI -> request packet (see #02205)
  72630. ES:DI -> reply buffer (see #02206)
  72631. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72632. SeeAlso: AH=F2h"Novell",AX=F217h/SF=7Ah,AX=F217h/SF=7Bh
  72633. Format of NetWare "Create Queue Job And File" request packet:
  72634. Offset Size Description (Table 02205)
  72635. 00h WORD length of following data
  72636. 02h BYTE 79h (subfunction "Create Queue Job And File")
  72637. 03h DWORD queue ID
  72638. 07h 280 BYTEs queue job structure (see #02210)
  72639. SeeAlso: #02206,#02207,#02209
  72640. Format of NetWare "Create Queue Job And File" reply packet:
  72641. Offset Size Description (Table 02206)
  72642. 00h 10 BYTEs reserved for future use
  72643. 0Ah DWORD client station
  72644. 0Eh DWORD client task
  72645. 12h DWORD client ID
  72646. 16h DWORD target server ID
  72647. 1Ah 6 BYTEs target execution time year,month,day,hour,minute,second
  72648. (FFFFFFFFFFFFh = first opportunity)
  72649. 20h 6 BYTEs job entry time
  72650. (set by queue manager)
  72651. 26h DWORD job number (1-999) assigned by queue manager
  72652. 2Ah WORD job type
  72653. 2Ch WORD position of job in queue (0001h = first, etc.)
  72654. 2Eh WORD job control flags (see #01980 at AH=E3h/SF=6Ch)
  72655. 30h 14 BYTEs ASCIZ job file name
  72656. 3Eh DWORD job file handle (set by queue manager)
  72657. 42h DWORD server station (set by queue manager)
  72658. 46h DWORD server task number (set by queue manager)
  72659. 4Ah DWORD server object ID (set by queue manager)
  72660. SeeAlso: #02205,#02210
  72661. --------N-21F217SF7A-------------------------
  72662. INT 21 - Novell NetWare - READ QUEUE JOB ENTRY
  72663. AX = F217h subfn 7Ah
  72664. CX = length of request packet in bytes
  72665. DX = length of reply buffer in bytes
  72666. DS:SI -> request packet (see #02207)
  72667. ES:DI -> reply buffer (see #02208)
  72668. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72669. SeeAlso: AH=F2h"Novell",AX=F217h/SF=79h,AX=F217h/SF=7Bh
  72670. Format of NetWare "Read Queue Job Entry" request packet:
  72671. Offset Size Description (Table 02207)
  72672. 00h WORD length of following data
  72673. 02h BYTE 7Ah (subfunction "Read Queue Job Entry")
  72674. 03h DWORD queue ID
  72675. 07h DWORD job entry number
  72676. SeeAlso: #02208,#02205,#02209
  72677. Format of NetWare "Read Queue Job Entry" reply packet:
  72678. Offset Size Description (Table 02208)
  72679. 00h 280 BYTEs job structure (see #02210)
  72680. SeeAlso: #02207
  72681. --------N-21F217SF7B-------------------------
  72682. INT 21 - Novell NetWare v2.1+ - CHANGE QUEUE JOB ENTRY
  72683. AX = F217h subfn 7Bh
  72684. CX = length of request packet in bytes
  72685. DX = 0000h (no reply packet)
  72686. DS:SI -> request packet (see #02209)
  72687. ES:DI ignored
  72688. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72689. SeeAlso: AH=F2h"Novell",AX=F217h/SF=6Dh,AX=F217h/SF=79h,AX=F217h/SF=7Dh
  72690. Format of NetWare "Change Queue Job Entry" request packet:
  72691. Offset Size Description (Table 02209)
  72692. 00h WORD length of following data
  72693. 02h BYTE 7Bh (subfunction "Change Queue Job Entry")
  72694. 03h DWORD queue ID
  72695. 07h 280 BYTEs job structure (see #02210)
  72696. SeeAlso: #02205,#02207
  72697. Format of NetWare v3.11+ job structure:
  72698. Offset Size Description (Table 02210)
  72699. 00h WORD record-in-use flag
  72700. 02h DWORD -> previous record
  72701. 06h DWORD -> next record
  72702. 0Ah DWORD client station connection number
  72703. 0Eh DWORD client task number
  72704. (set by queue manager)
  72705. 12h DWORD client object ID
  72706. 16h DWORD target server object ID
  72707. 1Ah 6 BYTEs target execution time year,month,day,hour,minute,second
  72708. (FFFFFFFFFFFFh = first opportunity)
  72709. 20h 6 BYTEs job entry time
  72710. (set by queue manager)
  72711. 26h DWORD job number (1-999) assigned by queue manager
  72712. 2Ah WORD job type
  72713. 2Ch WORD position of job in queue (0001h = first, etc.)
  72714. 2Eh WORD job control flags (see #01980 at AH=E3h/SF=6Ch)
  72715. 30h 14 BYTEs ASCIZ job file name
  72716. 3Eh DWORD job file handle (set by queue manager)
  72717. 42h DWORD server station (set by queue manager)
  72718. 46h DWORD server task number (set by queue manager)
  72719. 4Ah DWORD server object ID (set by queue manager)
  72720. 4Eh 50 BYTEs ASCIZ job description string
  72721. 80h 152 BYTEs client record area
  72722. SeeAlso: #02209,#01971
  72723. --------N-21F217SF7D-------------------------
  72724. INT 21 - Novell NetWare - READ QUEUE CURRENT STATUS
  72725. AX = F217h subfn 7Dh
  72726. CX = length of request packet in bytes
  72727. DX = length of reply buffer in bytes
  72728. DS:SI -> request packet (see #02211)
  72729. ES:DI -> reply buffer (see #02212)
  72730. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72731. SeeAlso: AH=F2h"Novell",AX=F217h/SF=66h,AX=F217h/SF=79h,AX=F217h/SF=7Bh
  72732. SeeAlso: AX=F217h/SF=7Eh
  72733. Format of NetWare "Read Queue Current Status" request packet:
  72734. Offset Size Description (Table 02211)
  72735. 00h WORD length of following data
  72736. 02h BYTE 7Dh (subfunction "Read Queue Current Status")
  72737. 03h DWORD (big-endian) object ID of queue
  72738. SeeAlso: #02212,#02213
  72739. Format of NetWare "Read Queue Current Status" reply packet:
  72740. Offset Size Description (Table 02212)
  72741. 00h DWORD queue ID
  72742. 04h DWORD queue status
  72743. bit 0: no more jobs can be added
  72744. bit 1: no more queue servers can be attached
  72745. bit 2: attached queu servers can not service queue jobs
  72746. 08h DWORD current number of jobs in queue
  72747. 0Ch DWORD number of servers attached to queue
  72748. 10h N DWORDs attached server IDs
  72749. SeeAlso: #02211,#01966 at AH=E3h/SF=66h
  72750. --------N-21F217SF7E-------------------------
  72751. INT 21 - Novell NetWare - SET QUEUE CURRENT STATUS
  72752. AX = F217h subfn 7Eh
  72753. CX = length of request packet in bytes
  72754. DX = 0000h (no reply packet)
  72755. DS:SI -> request packet (see #02213)
  72756. ES:DI ignored
  72757. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72758. SeeAlso: AH=F2h"Novell",AX=F217h/SF=7Dh
  72759. Format of NetWare "Set Queue Current Status" request packet:
  72760. Offset Size Description (Table 02213)
  72761. 00h WORD length of following data
  72762. 02h BYTE 7Eh (subfunction "Set Queue Current Status")
  72763. 03h DWORD queue ID
  72764. 07h DWORD queue status
  72765. bit 0: no more jobs can be added
  72766. bit 1: no more queue servers can be attached
  72767. bit 2: attached queu servers can not service queue jobs
  72768. SeeAlso: #02211
  72769. --------N-21F217SF7F-------------------------
  72770. INT 21 - Novell NetWare - CLOSE FILE AND START QUEUE JOB
  72771. AX = F217h subfn 7Fh
  72772. CX = length of request packet in bytes
  72773. DX = 0000h (no reply packet)
  72774. DS:SI -> request packet (see #02214)
  72775. ES:DI ignored
  72776. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72777. SeeAlso: AH=F2h"Novell",AX=F217h/SF=69h,AX=F217h/SF=80h,AX=F217h/SF=81h
  72778. Format of NetWare "Close File And Start Queue Job" request packet:
  72779. Offset Size Description (Table 02214)
  72780. 00h WORD length of following data
  72781. 02h BYTE 7Fh (subfunction "Close File And Start Queue Job")
  72782. 03h DWORD queue ID
  72783. 07h DWORD job number
  72784. --------N-21F217SF80-------------------------
  72785. INT 21 - Novell NetWare - REMOVE JOB FROM QUEUE
  72786. AX = F217h subfn 80h
  72787. CX = length of request packet in bytes
  72788. DX = 0000h (no reply packet)
  72789. DS:SI -> request packet (see #02215)
  72790. ES:DI ignored
  72791. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72792. SeeAlso: AH=F2h"Novell",AX=F217h/SF=6Ah,AX=F217h/SF=7Fh
  72793. Format of NetWare "Remove Job From Queue" request packet:
  72794. Offset Size Description (Table 02215)
  72795. 00h WORD length of following data
  72796. 02h BYTE 80h (subfunction "Remove Job From Queue")
  72797. 03h DWORD queue ID
  72798. 07h DWORD job number (returned when job was added to queue)
  72799. --------N-21F217SF81-------------------------
  72800. INT 21 - Novell NetWare - GET QUEUE JOB LIST
  72801. AX = F217h subfn 81h
  72802. CX = length of request buffer in bytes
  72803. DX = length of reply buffer in bytes
  72804. DS:SI -> request buffer (see #02216)
  72805. ES:DI -> reply buffer (see #02217)
  72806. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72807. SeeAlso: AH=F2h"Novell",AX=F217h/SF=6Bh
  72808. Format of NetWare "Get Queue Job List" request packet:
  72809. Offset Size Description (Table 02216)
  72810. 00h WORD length of following data
  72811. 02h BYTE 81h (subfunction "Get Queue Job List")
  72812. 03h DWORD queue ID
  72813. 07h DWORD address of next job in queue
  72814. SeeAlso: #02217
  72815. Format of NetWare "Get Queue Job List" reply packet:
  72816. Offset Size Description (Table 02217)
  72817. 00h DWORD total jobs in queue
  72818. 04h DWORD length of job number list (max 125)
  72819. 08h N DWORDs list of job numbers in queue
  72820. SeeAlso: #02216
  72821. --------N-21F217SF82-------------------------
  72822. INT 21 - Novell NetWare v2.1+ - CHANGE JOB PRIORITY
  72823. AX = F217h subfn 82h
  72824. CX = length of request packet in bytes
  72825. DX = 0000h (no reply packet)
  72826. DS:SI -> request packet (see #02218)
  72827. ES:DI ignored
  72828. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72829. SeeAlso: AH=F2h"Novell"
  72830. Format of NetWare "Change Job Priority" request packet:
  72831. Offset Size Description (Table 02218)
  72832. 00h WORD length of following data
  72833. 02h BYTE 82h (subfunction "Change Job Priority")
  72834. 03h DWORD queue ID
  72835. 07h DWORD job number
  72836. 0Bh DWORD priority
  72837. --------N-21F217SF83-------------------------
  72838. INT 21 - Novell NetWare v3.1+ - FINISH SERVICING QUEUE JOB
  72839. AX = F217h subfn 83h
  72840. CX = length of request packet in bytes
  72841. DX = 0000h (no reply packet)
  72842. DS:SI -> request packet (see #01998 at AH=E3h/SF=83h)
  72843. ES:DI ignored
  72844. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72845. SeeAlso: AH=F2h"Novell",AH=E3h/SF=83h,AX=F217h/SF=72h,AX=F217h/SF=84h
  72846. --------N-21F217SF84-------------------------
  72847. INT 21 - Novell NetWare v3.1+ - ABORT SERVICING QUEUE JOB
  72848. AX = F217h subfn 84h
  72849. CX = length of request packet in bytes
  72850. DX = 0000h (no reply packet)
  72851. DS:SI -> request packet (see #02000 at AH=E3h/SF=84h)
  72852. ES:DI ignored
  72853. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72854. Desc: inform the Queue Management System (QMS) that the queue server is
  72855. unable to service a previously-accepted job
  72856. SeeAlso: AH=F2h"Novell",AH=E3h/SF=84h,AX=F217h/SF=73h,AX=F217h/SF=83h
  72857. --------N-21F217SF85-------------------------
  72858. INT 21 - Novell NetWare v3.1+ - CHANGE TO CLIENT RIGHTS
  72859. AX = F217h subfn 85h
  72860. CX = length of request packet in bytes
  72861. DX = 0000h (no reply packet)
  72862. DS:SI -> request packet (see #02219)
  72863. ES:DI ignored
  72864. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72865. Desc: temporarily assume the login identity of the client submitting the
  72866. job being serviced
  72867. SeeAlso: AH=F2h"NetWare",AH=E3h/SF=74h,AX=F217h/SF=74h
  72868. Format of NetWare "Change to Client Rights" request packet:
  72869. Offset Size Description (Table 02219)
  72870. 00h WORD length of following data
  72871. 02h BYTE 85h (subfunction "Change to Client Rights")
  72872. 03h DWORD queue object ID
  72873. 07h DWORD job number
  72874. SeeAlso: #01990
  72875. --------N-21F217SF86-------------------------
  72876. INT 21 - Novell NetWare v3.1+ - READ QUEUE SERVER CURRENT STATUS
  72877. AX = F217h subfn 86h
  72878. CX = length of request buffer in bytes
  72879. DX = length of reply buffer in bytes
  72880. DS:SI -> request buffer (see #02220)
  72881. ES:DI -> reply buffer (see #02221)
  72882. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72883. SeeAlso: AH=F2h"Novell",AX=F217h/SF=76h,AX=F217h/SF=77h,AX=F217h/SF=7Dh
  72884. Format of NetWare "Read Queue Server Current Status" request packet:
  72885. Offset Size Description (Table 02220)
  72886. 00h WORD length of following data
  72887. 02h BYTE 86h (subfunction "Read Queue Server Current Status")
  72888. 03h DWORD queue ID
  72889. 07h DWORD server ID
  72890. 0Bh DWORD connection ID
  72891. SeeAlso: #02221
  72892. Format of NetWare "Read Queue Server Current Status" request packet:
  72893. Offset Size Description (Table 02221)
  72894. 00h 64 BYTEs server status record
  72895. SeeAlso: #02220
  72896. --------N-21F217SF87-------------------------
  72897. INT 21 - Novell NetWare v3.1+ - GET QUEUE JOB FILE SIZE
  72898. AX = F217h subfn 87h
  72899. CX = length of request buffer in bytes
  72900. DX = length of reply buffer in bytes
  72901. DS:SI -> request buffer (see #02222)
  72902. ES:DI -> reply buffer (see #02223)
  72903. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72904. SeeAlso: AH=F2h"Novell",AX=F217h/SF=78h
  72905. Format of NetWare "Get Queue Job File Size" request packet:
  72906. Offset Size Description (Table 02222)
  72907. 00h WORD length of following data
  72908. 02h BYTE 87h (subfunction "Get Queue Job File Size")
  72909. ???
  72910. SeeAlso: #02223
  72911. Format of NetWare "Get Queue Job File Size" request packet:
  72912. Offset Size Description (Table 02223)
  72913. 00h ???
  72914. SeeAlso: #02222
  72915. --------N-21F217SF96-------------------------
  72916. INT 21 - Novell NetWare - GET ACCOUNT STATUS
  72917. AX = F217h subfn 96h
  72918. CX = length of request buffer in bytes
  72919. DX = length of reply buffer in bytes
  72920. DS:SI -> request buffer (see #02003 at AH=E3h/SF=96h)
  72921. ES:DI -> reply buffer (see #02224)
  72922. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72923. SeeAlso: AH=F2h"Novell",AH=E3h/SF=96h,AX=F217h/SF=97h,AX=F217h/SF=98h
  72924. Format of NetWare "Get Account Status" reply packet:
  72925. Offset Size Description (Table 02224)
  72926. 00h DWORD (big-endian) account balance
  72927. 04h DWORD (big-endian) credit limit
  72928. signed number indicating lowest allowable account balance
  72929. 06h 120 BYTEs reserved
  72930. 80h DWORD (big-endian) object ID, server 1
  72931. 84h DWORD (big-endian) hold amount, server 1
  72932. ...
  72933. F6h DWORD (big-endian) object ID, server 16
  72934. FAh DWORD (big-endian) hold amount, server 16
  72935. Note: the reply buffer lists the servers which have placed holds on a portion
  72936. of the account balance, and the amount reserved by each
  72937. SeeAlso: #02003,#02004 at AH=E3h/SF=96h
  72938. --------N-21F217SF97-------------------------
  72939. INT 21 - Novell NetWare - SUBMIT ACCOUNT CHARGE
  72940. AX = F217h subfn 97h
  72941. CX = length of request packet in bytes
  72942. DX = 0000h (no reply packet)
  72943. DS:SI -> request packet (see #02005 at AH=E3h/SF=97h)
  72944. ES:DI ignored
  72945. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72946. SeeAlso: AH=F2h"Novell",AH=E3h/SF=97h,AX=F217h/SF=96h,AX=F217h/SF=98h
  72947. --------N-21F217SF98-------------------------
  72948. INT 21 - Novell NetWare - SUBMIT ACCOUNT HOLD
  72949. AX = F217h subfn 98h
  72950. CX = length of request packet in bytes
  72951. DX = 0000h (no reply packet)
  72952. DS:SI -> request packet (see #02006 at AH=E3h/SF=98h)
  72953. ES:DI ignored
  72954. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72955. SeeAlso: AH=F2h"Novell",AH=E3h/SF=98h,AX=F217h/SF=97h,AX=F217h/SF=99h
  72956. --------N-21F217SF99-------------------------
  72957. INT 21 - Novell NetWare - SUBMIT ACCOUNT NOTE
  72958. AX = F217h subfn 99h
  72959. CX = length of request packet in bytes
  72960. DX = 0000h (no reply packet)
  72961. DS:SI -> request packet (see #02008 at AH=E3h/SF=99h)
  72962. ES:DI ignored
  72963. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72964. SeeAlso: AH=F2h"Novell",AH=E3h/SF=99h,AX=F217h/SF=96h,AX=F217h/SF=98h
  72965. --------N-21F217SFC8-------------------------
  72966. INT 21 - Novell NetWare - CHECK CONSOLE PRIVILEGES
  72967. AX = F217h subfn C8h
  72968. CX = length of request packet in bytes
  72969. DX = 0000h (no reply packet)
  72970. DS:SI -> request packet (see #02009 at AH=E3h/SF=C8h)
  72971. ES:DI ignored
  72972. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72973. SeeAlso: AH=F2h"Novell",AH=E3h/SF=C8h,AX=F217h/SF=C9h,AX=F217h/SF=D1h
  72974. --------N-21F217SFC9-------------------------
  72975. INT 21 - Novell NetWare - GET FILE SERVER DESCRIPTION STRINGS
  72976. AX = F217h subfn C9h
  72977. CX = length of request buffer in bytes
  72978. DX = length of reply buffer in bytes
  72979. DS:SI -> request buffer (see #02010 at AH=E3h/SF=C9h)
  72980. ES:DI -> reply buffer (see #02225)
  72981. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72982. SeeAlso: AH=F2h"Novell",AH=E3h/SF=C9h,AX=F217h/SF=C8h,AX=F217h/SF=CAh
  72983. Format of NetWare "Get File Server Description Strings" reply packet:
  72984. Offset Size Description (Table 02225)
  72985. 00h var ASCIZ name of company distributing this copy of NetWare
  72986. var ASCIZ version and revision
  72987. 9 BYTEs ASCIZ revision date (mm/dd/yy)
  72988. var ASCIZ copyright notice
  72989. SeeAlso: #02010,#02011 at AH=E3h/SF=C9h
  72990. --------N-21F217SFCA-------------------------
  72991. INT 21 - Novell NetWare - SET FILE SERVER DATE AND TIME
  72992. AX = F217h subfn CAh
  72993. CX = length of request packet in bytes
  72994. DX = 0000h (no reply packet)
  72995. DS:SI -> request packet (see #02012 at AH=E3h/SF=CAh)
  72996. ES:DI ignored
  72997. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  72998. SeeAlso: AH=F2h"Novell",AH=E3h/SF=CAh,AX=F217h/SF=C8h,AX=F217h/SF=CBh
  72999. --------N-21F217SFCB-------------------------
  73000. INT 21 - Novell NetWare - DISABLE FILE SERVER LOGIN
  73001. AX = F217h subfn CBh
  73002. CX = length of request packet in bytes
  73003. DX = 0000h (no reply packet)
  73004. DS:SI -> request packet (see #02013 at AH=E3h/SF=CBh)
  73005. ES:DI ignored
  73006. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73007. SeeAlso: AH=F2h"Novell",AH=E3h/SF=CBh,AX=F217h/SF=C8h,AX=F217h/SF=CCh
  73008. --------N-21F217SFCC-------------------------
  73009. INT 21 - Novell NetWare - ENABLE FILE SERVER LOGIN
  73010. AX = F217h subfn CCh
  73011. CX = length of request packet in bytes
  73012. DX = 0000h (no reply packet)
  73013. DS:SI -> request packet (see #02015 at AH=E3h/SF=CCh)
  73014. ES:DI ignored
  73015. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73016. SeeAlso: AH=F2h"Novell",AH=E3h/SF=CCh,AX=F217h/SF=C8h,AX=F217h/SF=CBh
  73017. --------N-21F217SFCD-------------------------
  73018. INT 21 - Novell NetWare - GET FILE SERVER LOGIN STATUS
  73019. AX = F217h subfn CDh
  73020. CX = length of request buffer in bytes
  73021. DX = length of reply buffer in bytes
  73022. DS:SI -> request buffer (see #02016 at AH=E3h/SF=CDh)
  73023. ES:DI -> reply buffer (see #02226)
  73024. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73025. SeeAlso: AH=F2h"Novell",AH=E3h/SF=CDh,AX=F217h/SF=CBh,AX=F217h/SF=CCh
  73026. Format of NetWare "Get File Server Login Status" reply packet:
  73027. Offset Size Description (Table 02226)
  73028. 00h BYTE login state (00h disabled, 01h enabled)
  73029. SeeAlso: #02016,#02017 at AH=E3h/SF=CDh
  73030. --------N-21F217SFCE-------------------------
  73031. INT 21 - Novell NetWare - PURGE ALL ERASED FILES
  73032. AX = F217h subfn CEh
  73033. CX = length of request packet in bytes
  73034. DX = 0000h (no reply packet)
  73035. DS:SI -> request packet (see #02018 at AH=E3h/SF=CEh)
  73036. ES:DI ignored
  73037. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73038. SeeAlso: AH=F2h"Novell",AH=E3h/SF=CEh,AX=F244h
  73039. --------N-21F217SFCF-------------------------
  73040. INT 21 - Novell NetWare - DISABLE TRANSACTION TRACKING
  73041. AX = F217h subfn CFh
  73042. CX = length of request packet in bytes
  73043. DX = 0000h (no reply packet)
  73044. DS:SI -> request packet (see #02019 at AH=E3h/SF=CFh)
  73045. ES:DI ignored
  73046. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73047. SeeAlso: AH=F2h"Novell",AH=E3h/SF=CFh,AX=F217h/SF=D0h
  73048. --------N-21F217SFD0-------------------------
  73049. INT 21 - Novell NetWare - ENABLE TRANSACTION TRACKING
  73050. AX = F217h subfn D0h
  73051. CX = length of request packet in bytes
  73052. DX = 0000h (no reply packet)
  73053. DS:SI -> request packet (see #02021 at AH=E3h/SF=D0h)
  73054. ES:DI ignored
  73055. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73056. SeeAlso: AH=F2h"Novell",AH=E3h/SF=D0h,AX=F217h/SF=CFh
  73057. --------N-21F217SFD1-------------------------
  73058. INT 21 - Novell NetWare - SEND CONSOLE BROADCAST
  73059. AX = F217h subfn D1h
  73060. CX = length of request packet in bytes
  73061. DX = 0000h (no reply packet)
  73062. DS:SI -> request packet (see #02022 at AH=E3h/SF=D1h)
  73063. ES:DI ignored
  73064. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73065. SeeAlso: AH=F2h"Novell",AH=E3h/SF=D1h,AX=F217h/SF=D2h
  73066. --------N-21F217SFD2-------------------------
  73067. INT 21 - Novell NetWare v3+ - CLEAR CONNECTION NUMBER (LOGOUT STATION)
  73068. AX = F217h subfn D2h
  73069. CX = length of request packet in bytes
  73070. DX = 0000h (no reply packet)
  73071. DS:SI -> request packet (see #02023 at AH=E3h/SF=D2h)
  73072. ES:DI ignored
  73073. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73074. reply buffer filled
  73075. SeeAlso: AH=F2h"Novell",AH=E3h/SF=D2h,AX=F217h/SF=D1h,AX=F217h/SF=FEh
  73076. --------N-21F217SFD3-------------------------
  73077. INT 21 - Novell NetWare - DOWN FILE SERVER
  73078. AX = F217h subfn D3h
  73079. CX = length of request packet in bytes
  73080. DX = 0000h (no reply packet)
  73081. DS:SI -> request packet (see #02026 at AH=E3h/SF=D3h)
  73082. ES:DI ignored
  73083. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73084. SeeAlso: AH=F2h"Novell",AH=E3h/SF=D3h,AX=F217h/SF=D2h
  73085. --------N-21F217SFD4-------------------------
  73086. INT 21 - Novell NetWare - GET FILE SYSTEM STATISTICS
  73087. AX = F217h subfn D4h
  73088. CX = length of request buffer in bytes
  73089. DX = length of reply buffer in bytes
  73090. DS:SI -> request buffer (see #02027 at AH=E3h/SF=D4h)
  73091. ES:DI -> reply buffer (see #02227)
  73092. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73093. SeeAlso: AH=F2h"Novell",AH=E3h/SF=D4h,AX=F217h/SF=D6h,AX=F217h/SF=D9h
  73094. Format of NetWare "Get File System Statistics" reply packet:
  73095. Offset Size Description (Table 02227)
  73096. 00h DWORD clock ticks since system started
  73097. 04h WORD maximum open files set by configuration
  73098. 06h WORD maximum files open concurrently
  73099. 08h WORD current number of open files
  73100. 0Ah DWORD total files opened
  73101. 0Eh DWORD total file read requests
  73102. 12h DWORD total file write requests
  73103. 16h WORD current changed FATs
  73104. 18h WORD total changed FATs
  73105. 1Ah WORD number of FAT write errors
  73106. 1Ch WORD number of fatal FAT write errors
  73107. 1Eh WORD number of FAT scan errors
  73108. 20h WORD maximum concurrently-indexed files
  73109. 22h WORD current number of indexed files
  73110. 24h WORD number of attached indexed files
  73111. 26h WORD number of indexed files available
  73112. Note: all fields are big-endian
  73113. SeeAlso: #02027,#02028 at AH=E3h/SF=D4h
  73114. --------N-21F217SFD5-------------------------
  73115. INT 21 - Novell NetWare - GET TRANSACTION TRACKING STATISTICS
  73116. AX = F217h subfn D5h
  73117. CX = length of request buffer in bytes
  73118. DX = length of reply buffer in bytes
  73119. DS:SI -> request buffer (see #02029 at AH=E3h/SF=D5h)
  73120. ES:DI -> reply buffer (see #02228)
  73121. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73122. SeeAlso: AH=F2h"Novell",AH=E3h/SF=D5h,AX=F217h/SF=D0h
  73123. Format of NetWare "Get Transaction Tracking Statistics" reply packet:
  73124. Offset Size Description (Table 02228)
  73125. 00h DWORD (big-endian) clock ticks since system started
  73126. 04h BYTE transaction tracking supported if nonzero
  73127. (all following fields are invalid if zero)
  73128. 05h BYTE transaction tracking enabled
  73129. 06h WORD (big-endian) transaction volume number
  73130. 08h WORD (big-endian) maximum simultaneous transactions configured
  73131. 0Ah WORD (big-endian) maximum simultaneous transactions since startup
  73132. 0Ch WORD (big-endian) current transactions in progress
  73133. 0Eh DWORD (big-endian) total transactions performed
  73134. 12h DWORD (big-endian) total write transactions
  73135. 16h DWORD (big-endian) total transactions backed out
  73136. 1Ah WORD (big-endian) number of unfilled backout requests
  73137. 1Ch WORD (big-endian) disk blocks used for transaction tracking
  73138. 1Eh DWORD (big-endian) blocks allocated for tracked-file FATs
  73139. 22h DWORD (big-endian) number of file size changes during a transaction
  73140. 26h DWORD (big-endian) number of file truncations during a transaction
  73141. 2Ah BYTE number of records following
  73142. 2Bh Active Transaction Records [array]
  73143. Offset Size Description
  73144. 00h BYTE logical connection number
  73145. 01h BYTE task number
  73146. SeeAlso: #02029,#02030 at AH=E3h/SF=D5h
  73147. --------N-21F217SFD6-------------------------
  73148. INT 21 - Novell NetWare - GET DISK CACHE STATISTICS
  73149. AX = F217h subfn D6h
  73150. CX = length of request buffer in bytes
  73151. DX = length of reply buffer in bytes
  73152. DS:SI -> request buffer (see #02031 at AH=E3h/SF=D6h)
  73153. ES:DI -> reply buffer (see #02229)
  73154. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73155. SeeAlso: AH=F2h"Novell",AH=E3h/SF=D6h,AX=F217h/SF=D5h,AX=F217h/SF=D8h
  73156. Format of NetWare "Get Disk Cache Statistics" reply packet:
  73157. Offset Size Description (Table 02229)
  73158. 00h DWORD clock ticks since system started
  73159. 04h WORD number of cache buffers
  73160. 06h WORD size of cache buffer in bytes
  73161. 08h WORD number of dirty cache buffers
  73162. 0Ah DWORD number of cache read requests
  73163. 0Eh DWORD number of cache write requests
  73164. 12h DWORD number of cache hits
  73165. 16h DWORD number of cache misses
  73166. 1Ah DWORD number of physical read requests
  73167. 1Eh DWORD number of physical write requests
  73168. 22h WORD number of physical read errors
  73169. 24h WORD number of physical write errors
  73170. 26h DWORD cache get requests
  73171. 2Ah DWORD cache full write requests
  73172. 2Eh DWORD cache partial write requests
  73173. 32h DWORD background dirty writes
  73174. 36h DWORD background aged writes
  73175. 3Ah DWORD total cache writes
  73176. 3Eh DWORD number of cache allocations
  73177. 42h WORD thrashing count
  73178. 44h WORD number of times LRU block was dirty
  73179. 46h WORD number of reads on cache blocks not yet filled by writes
  73180. 48h WORD number of times a fragmented write occurred
  73181. 4Ah WORD number of cache hits on unavailable block
  73182. 4Ch WORD number of times a cache block was scrapped
  73183. Note: all fields are big-endian
  73184. SeeAlso: #02031,#02032 at AH=E3h/SF=D6h
  73185. --------N-21F217SFD7-------------------------
  73186. INT 21 - Novell NetWare - GET DRIVE MAPPING TABLE
  73187. AX = F217h subfn D7h
  73188. CX = length of request buffer in bytes
  73189. DX = length of reply buffer in bytes
  73190. DS:SI -> request buffer (see #02033 at AH=E3h/SF=D7h)
  73191. ES:DI -> reply buffer (see #02230)
  73192. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73193. SeeAlso: AX=EF00h,AX=EF01h,AX=EF02h,AH=F2h"Novell",AH=E3h/SF=D7h
  73194. Format of NetWare "Get Drive Mapping Table" reply packet:
  73195. Offset Size Description (Table 02230)
  73196. 00h DWORD (big-endian) clock tick elapsed since system started
  73197. 04h BYTE fault tolerance (SFT) level
  73198. 05h BYTE number of logical drives attached to server
  73199. 06h BYTE number of physical drives attached to server
  73200. 07h 5 BYTEs disk channel types (00h none, 01h XT, 02h AT, 03h SCSI,
  73201. 04h disk coprocessor drive, 32h-FFh value-added drive types)
  73202. 0Ch WORD (big-endian) number of outstanding controller commands
  73203. 0Eh 32 BYTEs drive mapping table (FFh = no such drive)
  73204. 2Eh 32 BYTEs drive mirror table (secondary physical drive, FFh = none)
  73205. 4Eh 32 BYTEs dead mirror table (last drive mapped to, FFh if never mirrored)
  73206. 6Eh BYTE physical drive being remirrored (FFh = none)
  73207. 6Fh BYTE reserved
  73208. 70h DWORD (big-endian) remirrored block
  73209. 74h 60 BYTEs SFT error table (internal error counters)
  73210. SeeAlso: #02033,#02034 at AH=E3h/SF=D7h
  73211. --------N-21F217SFD8-------------------------
  73212. INT 21 - Novell NetWare - GET PHYSICAL DISK STATISTICS
  73213. AX = F217h subfn D8h
  73214. CX = length of request buffer in bytes
  73215. DX = length of reply buffer in bytes
  73216. DS:SI -> request buffer (see #02035 at AH=E3h/SF=D8h)
  73217. ES:DI -> reply buffer (see #02231)
  73218. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73219. SeeAlso: AH=F2h"Novell",AH=E3h/SF=D8h,AX=F217h/SF=D9h
  73220. Format of NetWare "Get Physical Disk Statistics" request packet:
  73221. Offset Size Description (Table 02231)
  73222. 00h DWORD (big-endian) clock ticks since system started
  73223. 04h BYTE physical disk channel
  73224. 05h BYTE flag: drive removable if nonzero
  73225. 06h BYTE physical drive type
  73226. 07h BYTE drive number within controller
  73227. 08h BYTE controller number
  73228. 09h BYTE controller type
  73229. 0Ah DWORD (big-endian) size of drive in 4K disk blocks
  73230. 0Eh WORD (big-endian) number of cylinders on drive
  73231. 10h BYTE number of heads
  73232. 11h BYTE number of sectors per track
  73233. 12h 64 BYTEs ASCIZ drive make and model
  73234. 52h WORD (big-endian) number of I/O errors
  73235. 56h DWORD (big-endian) start of Hot Fix table
  73236. 58h WORD (big-endian) size of Hot Fix table
  73237. 5Ah WORD (big-endian) number of Hot Fix blocks available
  73238. 5Ch BYTE flag: Hot Fix disabled if nonzero
  73239. SeeAlso: #02035,#02036 at AH=E3h/SF=D8h
  73240. --------N-21F217SFD9-------------------------
  73241. INT 21 - Novell NetWare - GET DISK CHANNEL STATISTICS
  73242. AX = F217h subfn D9h
  73243. CX = length of request buffer in bytes
  73244. DX = length of reply buffer in bytes
  73245. DS:SI -> request buffer (see #02037 at AH=E3h/SF=D9h)
  73246. ES:DI -> reply buffer (see #02232)
  73247. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73248. SeeAlso: AH=F2h"Novell",AH=E3h/SF=D9h,AX=F217h/SF=D8h
  73249. Format of NetWare "Get Disk Channel Statistics" reply packet:
  73250. Offset Size Description (Table 02232)
  73251. 00h DWORD (big-endian) clock ticks since system started
  73252. 04h WORD (big-endian) channel run state (see #02039)
  73253. 06h WORD (big-endian) channel synchronization state (see #02040)
  73254. 08h BYTE driver type
  73255. 09h BYTE major version of driver
  73256. 0Ah BYTE minor version of driver
  73257. 0Bh 65 BYTEs ASCIZ driver description
  73258. 4Ch WORD (big-endian) first I/O address used
  73259. 4Eh WORD (big-endian) length of first I/O address
  73260. 50h WORD (big-endian) second I/O address used
  73261. 52h WORD (big-endian) length of second I/O address
  73262. 54h 3 BYTEs first shared memory address
  73263. 57h 2 BYTEs length of first shared memory address
  73264. 59h 3 BYTEs second shared memory address
  73265. 5Ch 2 BYTEs length of second shared memory address
  73266. 5Eh BYTE first interrupt number in-use flag
  73267. 5Fh BYTE first interrupt number used
  73268. 60h BYTE second interrupt number in-use flag
  73269. 61h BYTE second interrupt number used
  73270. 62h BYTE first DMA channel in-use flag
  73271. 63h BYTE first DMA channel used
  73272. 64h BYTE second DMA channel in-use flag
  73273. 65h BYTE second DMA channel used
  73274. 66h BYTE flags
  73275. 67h BYTE reserved
  73276. 68h 80 BYTEs ASCIZ configuration description
  73277. SeeAlso: #02037,#02038 at AH=E3h/SF=D9h
  73278. --------N-21F217SFDA-------------------------
  73279. INT 21 - Novell NetWare v2.2+ - GET CONNECTION'S TASK INFORMATION
  73280. AX = F217h subfn DAh
  73281. CX = length of request buffer in bytes
  73282. DX = length of reply buffer in bytes
  73283. DS:SI -> request buffer (see #02041 at AH=E3h/SF=DAh)
  73284. ES:DI -> reply buffer (see #02233)
  73285. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73286. SeeAlso: AH=F2h"Novell",AH=E3h/SF=DAh,AX=F217h/SF=EAh
  73287. Format of NetWare "Get Connection's Task Information" reply packet:
  73288. Offset Size Description (Table 02233)
  73289. 00h BYTE lock status of connection (see #02043)
  73290. 01h var Lock Status Information (see #02044)
  73291. N BYTE number of records following
  73292. N+1 Active Task Information Records [array]
  73293. Offset Size Description
  73294. 00h BYTE task number (01h-FFh)
  73295. 01h BYTE task state
  73296. 00h normal task
  73297. 01h in TTS explicit transaction
  73298. 02h in TTS implicit transaction
  73299. 04h shared fileset lock active
  73300. SeeAlso: #02248,#02041,#02042 at AH=E3h/SF=DAh
  73301. --------N-21F217SFDB-------------------------
  73302. INT 21 - Novell NetWare v2.2+ - GET CONNECTION'S OPEN FILES (OLD)
  73303. AX = F217h subfn DBh
  73304. CX = length of request buffer in bytes
  73305. DX = length of reply buffer in bytes
  73306. DS:SI -> request buffer (see #02045 at AH=E3h/SF=DBh)
  73307. ES:DI -> reply buffer (see #02234)
  73308. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73309. SeeAlso: AH=F2h"Novell",AH=E3h/SF=DBh,AX=F217h/SF=EBh
  73310. Format of NetWare "Get Connection's Open Files (old)" reply packet:
  73311. Offset Size Description (Table 02234)
  73312. 00h WORD next request record (place in "last record" field on next call)
  73313. 0000h if no more records
  73314. 02h BYTE number of records following
  73315. 03h var array of File Information Records (see #02047 at AH=E3h/SF=DBh)
  73316. SeeAlso: #02045,#02046 at AH=E3h/SF=DBh
  73317. --------N-21F217SFDC-------------------------
  73318. INT 21 - Novell NetWare v2.2+ - GET CONNECTIONS USING A FILE (OLD)
  73319. AX = F217h subfn DCh
  73320. CX = length of request buffer in bytes
  73321. DX = length of reply buffer in bytes
  73322. DS:SI -> request buffer (see #02050 at AH=E3h/SF=DCh)
  73323. ES:DI -> reply buffer (see #02235)
  73324. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73325. SeeAlso: AH=F2h"Novell",AH=E3h/SF=DCh,AX=F217h/SF=ECh
  73326. Format of NetWare "Get Connections Using A File (old)" reply packet:
  73327. Offset Size Description (Table 02235)
  73328. 00h WORD (big-endian) count of tasks which have opened or logged file
  73329. 02h WORD (big-endian) count of tasks which have opened file
  73330. 04h WORD (big-endian) count of opens for reading
  73331. 06h WORD (big-endian) count of opens for writing
  73332. 08h WORD (big-endian) deny read count
  73333. 0Ah WORD (big-endian) deny write count
  73334. 0Ch WORD next request record (place in "last record" field on next call)
  73335. 0000h if no more records
  73336. 0Eh BYTE locked flag
  73337. 00h not locked exclusively
  73338. else locked exclusively
  73339. 0Fh BYTE number of records following
  73340. 10h var array of File Usage Information Records
  73341. (see #02052 at AH=E3h/SF=DCh)
  73342. SeeAlso: #02050,#02051 at AH=E3h/SF=DCh
  73343. --------N-21F217SFDD-------------------------
  73344. INT 21 - Novell NetWare - GET PHYSICAL RECORD LOCKS BY CONNECTN AND FILE (OLD)
  73345. AX = F217h subfn DDh
  73346. CX = length of request buffer in bytes
  73347. DX = length of reply buffer in bytes
  73348. DS:SI -> request buffer (see #02054 at AH=E3h/SF=DDh)
  73349. ES:DI -> reply buffer (see #02236)
  73350. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73351. SeeAlso: AH=F2h"Novell",AH=E3h/SF=DDh,AX=F217h/SF=DEh,AX=F217h/SF=EDh
  73352. Format of NetWare "Get Phys Record Locks By Conn & File (old)" reply packet:
  73353. Offset Size Description (Table 02236)
  73354. 00h WORD next request record (place in "last record" on next call)
  73355. 0000h if no more records
  73356. 02h BYTE number of physical record locks
  73357. 03h BYTE number of records following
  73358. 04h var array of Physical Record Lock Info records
  73359. (see #02056 at AH=E3h/SF=DDh)
  73360. SeeAlso: #02054,#02055 at AH=E3h/SF=DDh
  73361. --------N-21F217SFDE-------------------------
  73362. INT 21 - Novell NetWare - GET PHYSICAL RECORD LOCKS BY FILE (OLD)
  73363. AX = F217h subfn DEh
  73364. CX = length of request buffer in bytes
  73365. DX = length of reply buffer in bytes
  73366. DS:SI -> request buffer (see #02058 at AH=E3h/SF=DEh)
  73367. ES:DI -> reply buffer (see #02237)
  73368. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73369. SeeAlso: AH=F2h"Novell",AH=E3h/SF=DEh,AX=F217h/SF=EEh
  73370. Format of NetWare "Get Physical Record Locks By File (old)" reply packet:
  73371. Offset Size Description (Table 02237)
  73372. 00h WORD next request record (place in "last record" on next call)
  73373. 0000h if no more records
  73374. 02h BYTE number of physical record locks
  73375. 03h BYTE number of records following
  73376. 04h var array of Physical Record Lock Info records (see #02060)
  73377. SeeAlso: #02058,#02059 at AH=E3h/SF=DEh
  73378. --------N-21F217SFDF-------------------------
  73379. INT 21 - Novell NetWare - GET LOGICAL RECORDS BY CONNECTION (OLD)
  73380. AX = F217h subfn DFh
  73381. CX = length of request buffer in bytes
  73382. DX = length of reply buffer in bytes
  73383. DS:SI -> request buffer (see #02061 at AH=E3h/SF=DFh)
  73384. ES:DI -> reply buffer (see #02238)
  73385. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73386. SeeAlso: AH=F2h"Novell",AH=E3h/SF=DFh,AX=F217h/SF=EFh
  73387. Format of NetWare "Get Logical Records By Connection (old)" reply packet:
  73388. Offset Size Description (Table 02238)
  73389. 00h WORD next request record (place in "last record" field on next call)
  73390. 0000h if no more locked records
  73391. 02h BYTE number of records following
  73392. 03h var array of Logical Lock Information Records
  73393. (see #02063 at AH=E3h/SF=DFh)
  73394. SeeAlso: #02061,#02062 at AH=E3h/SF=DFh
  73395. --------N-21F217SFE0-------------------------
  73396. INT 21 - Novell NetWare - GET LOGICAL RECORD INFORMATION (OLD)
  73397. AX = F217h subfn E0h
  73398. CX = length of request buffer in bytes
  73399. DX = length of reply buffer in bytes
  73400. DS:SI -> request buffer (see #02064 at AH=E3h/SF=E0h)
  73401. ES:DI -> reply buffer (see #02239)
  73402. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73403. SeeAlso: AH=F2h"Novell",AH=E3h/SF=E0h,AX=F217h/SF=F0h
  73404. Format of NetWare "Get Logical Record Information (Old)" reply packet:
  73405. Offset Size Description (Table 02239)
  73406. 00h WORD (big-endian) number of logical connections logging the record
  73407. 02h WORD (big-endian) number of logical connections with shareable lock
  73408. 04h WORD (big-endian) next request record (place in "last record" field
  73409. on next call)
  73410. 06h BYTE locked exclusively if nonzero
  73411. 07h BYTE number of records following
  73412. 08h var array of Task Information Records (see #02066 at AH=E3h/SF=E0h)
  73413. SeeAlso: #02064,#02065 at AH=E3h/SF=E0h
  73414. --------N-21F217SFE1-------------------------
  73415. INT 21 - Novell NetWare - GET CONNECTION'S SEMAPHORES (OLD)
  73416. AX = F217h subfn E1h
  73417. CX = length of request buffer in bytes
  73418. DX = length of reply buffer in bytes
  73419. DS:SI -> request buffer (see #02067 at AH=E3h/SF=E1h)
  73420. ES:DI -> reply buffer (see #02240)
  73421. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73422. SeeAlso: AH=F2h"Novell",AH=E3h/SF=E1h,AX=F217h/SF=F1h
  73423. Format of NetWare "Get Connection's Semaphores (old)" reply packet:
  73424. Offset Size Description (Table 02240)
  73425. 00h WORD next request record (place in "last record" field on next call)
  73426. 02h BYTE number of records following
  73427. 03h var array of Semaphore Information Records
  73428. (see #02069 at AH=E3h/SF=E1h)
  73429. SeeAlso: #02067,#02068 at AH=E3h/SF=E1h
  73430. --------N-21F217SFE2-------------------------
  73431. INT 21 - Novell NetWare - GET SEMAPHORE INFORMATION (OLD)
  73432. AX = F217h subfn E2h
  73433. CX = length of request buffer in bytes
  73434. DX = length of reply buffer in bytes
  73435. DS:SI -> request buffer (see #02070 at AH=E3h/SF=E2h)
  73436. ES:DI -> reply buffer (see #02241)
  73437. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73438. SeeAlso: AH=F2h"Novell",AH=E3h/SF=E2h,AX=F217h/SF=F2h
  73439. Format of NetWare "Get Semaphore Information (old)" reply packet:
  73440. Offset Size Description (Table 02241)
  73441. 00h WORD next request record (place in "last record" on next call)
  73442. 0000h if no more
  73443. 02h WORD (big-endian) number of logical connections opening semaphore
  73444. 04h BYTE semaphore value (-127 to 128)
  73445. 05h BYTE number of records following
  73446. 06h var array of Semaphore Information records (see #02072)
  73447. SeeAlso: #02070,#02071 at AH=E3h/SF=E2h
  73448. --------N-21F217SFE3-------------------------
  73449. INT 21 - Novell NetWare - GET LAN DRIVER'S CONFIGURATION INFORMATION
  73450. AX = F217h subfn E3h
  73451. CX = length of request buffer in bytes
  73452. DX = length of reply buffer in bytes
  73453. DS:SI -> request buffer (see #02073 at AH=E3h/SF=E3h)
  73454. ES:DI -> reply buffer (see #02242)
  73455. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73456. SeeAlso: AH=F2h"Novell",AH=E3h/SF=E3h,AX=F217h/SF=E7h,AX=F217h/SF=E8h
  73457. Format of NetWare "Get Lan Driver's Configuration Information" reply packet:
  73458. Offset Size Description (Table 02242)
  73459. 00h 4 BYTEs network number
  73460. 04h 6 BYTEs node number
  73461. 0Ah BYTE LAN driver installed (00h no--remaining fields invalid)
  73462. 0Bh BYTE option number selected at configuration time
  73463. 0Ch 160 BYTEs configuration text
  73464. ASCIZ hardware type
  73465. ASCIZ hardware settings
  73466. SeeAlso: #02073,#02074 at AH=E3h/SF=E3h
  73467. --------N-21F217SFE5-------------------------
  73468. INT 21 - Novell NetWare - GET CONNECTION'S USAGE STATISTICS
  73469. AX = F217h subfn E5h
  73470. CX = length of request buffer in bytes
  73471. DX = length of reply buffer in bytes
  73472. DS:SI -> request buffer (see #02075 at AH=E3h/SF=E5h)
  73473. ES:DI -> reply buffer (see #02243)
  73474. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73475. SeeAlso: AH=F2h"Novell",AH=E3h/SF=E5h,AX=F217h/SF=EAh
  73476. Format of NetWare "Get Connection's Usage Statistics" reply packet:
  73477. Offset Size Description (Table 02243)
  73478. 00h DWORD (big-endian) clock ticks since server started
  73479. 04h 6 BYTEs bytes read
  73480. 0Ah 6 BYTEs bytes written
  73481. 10h DWORD (big-endian) total request packets
  73482. SeeAlso: #02075,#02076 at AH=E3h/SF=E5h
  73483. --------N-21F217SFE6-------------------------
  73484. INT 21 - Novell NetWare - GET OBJECT'S REMAINING DISK SPACE
  73485. AX = F217h subfn E6h
  73486. CX = length of request buffer in bytes
  73487. DX = length of reply buffer in bytes
  73488. DS:SI -> request buffer (see #02077 at AH=E3h/SF=E6h)
  73489. ES:DI -> reply buffer (see #02244)
  73490. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73491. SeeAlso: AH=F2h"Novell",AH=E3h/SF=E6h,AX=F216h/SF=20h,AX=F216h/SF=23h
  73492. Format of NetWare "Get Object's Remaining Disk Space" reply packet:
  73493. Offset Size Description (Table 02244)
  73494. 00h DWORD (big-endian) clock ticks elapsed since server started
  73495. 04h DWORD (big-endian) object ID
  73496. 08h DWORD (big-endian) 4K disk blocks available to user
  73497. 0Ch BYTE restrictions (00h enforced, FFh not enforced)
  73498. SeeAlso: #02077,#02078 at AH=E3h/SF=E6h
  73499. --------N-21F217SFE7-------------------------
  73500. INT 21 - Novell NetWare - GET FILE SERVER LAN I/O STATISTICS
  73501. AX = F217h subfn E7h
  73502. CX = length of request buffer in bytes
  73503. DX = length of reply buffer in bytes
  73504. DS:SI -> request buffer (see #02079 at AH=E3h/SF=E7h)
  73505. ES:DI -> reply buffer (see #02245)
  73506. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73507. SeeAlso: AH=F2h"Novell",AH=E3h/SF=E7h,AX=F217h/SF=11h,AX=F217h/SF=F5h
  73508. Format of NetWare "Get File Server Lan I/O Statistics" reply packet:
  73509. Offset Size Description (Table 02245)
  73510. 00h DWORD clock ticks since system started
  73511. 04h WORD total routing buffers
  73512. 06h WORD maximum routing buffers used
  73513. 08h WORD current routing buffers used
  73514. 0Ah DWORD total file service packets
  73515. 0Eh WORD number of file service packets buffered
  73516. 10h WORD number of invalid connection packets
  73517. 12h WORD packets with bad logical connection numbers
  73518. 14h WORD number of packets received during processing
  73519. 16h WORD number of requests reprocessed
  73520. 18h WORD packets with bad sequence numbers
  73521. 1Ah WORD number of duplicate replies sent
  73522. 1Ch WORD number of acknowledgements sent
  73523. 1Eh WORD number of packets with bad request types
  73524. 20h WORD requests to attach to ws for which a request is being processed
  73525. 22h WORD requests to attach from ws which is already attaching
  73526. 24h WORD number of forged detach requests
  73527. 26h WORD detach requests with bad connection number
  73528. 28h WORD requests to detach from ws for which requests pending
  73529. 2Ah WORD number of cancelled replies
  73530. 2Ch WORD packets discarded due to excessive hop count
  73531. 2Eh WORD packets discarded due to unknown net
  73532. 30h WORD incoming packets discarded for lack of DGroup buffer
  73533. 32h WORD outgoing packets discarded due to lack of buffer
  73534. 34h WORD received packets destined for B,C, or D side drivers
  73535. 36h DWORD number of NetBIOS packets propagated through net
  73536. 3Ah DWORD total number of non-file-service packets
  73537. 3Eh DWORD total number of routed packets
  73538. Note: all fields are big-endian
  73539. SeeAlso: #02079,#02080 at AH=E3h/SF=E7h
  73540. --------N-21F217SFE8-------------------------
  73541. INT 21 - Novell NetWare - GET FILE SERVER MISC INFORMATION
  73542. AX = F217h subfn E8h
  73543. CX = length of request buffer in bytes
  73544. DX = length of reply buffer in bytes
  73545. DS:SI -> request buffer (see #02081 at AH=E3h/SF=E8h)
  73546. ES:DI -> reply buffer (see #02246)
  73547. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73548. SeeAlso: AH=F2h"Novell",AH=E3h/SF=E8h,AX=F217h/SF=11h,AX=F217h/SF=F5h
  73549. Format of NetWare "Get File Server Misc Information" reply packet:
  73550. Offset Size Description (Table 02246)
  73551. 00h DWORD (big-endian) clock ticks since system started
  73552. 04h BYTE CPU type
  73553. 00h Motorola 68000
  73554. 01h Intel 8086, 8088, or V20
  73555. 02h Intel 80286+
  73556. 05h BYTE reserved
  73557. 06h BYTE number of service processes in server
  73558. 07h BYTE server utilization in percent
  73559. 08h WORD (big-endian) maximum bindery objects set by configuration
  73560. 0000h = unlimited
  73561. 0Ah WORD (big-endian) maximum number of bindery objects used
  73562. 0Ch WORD (big-endian) current number of bindery objects in use
  73563. 0Eh WORD (big-endian) total server memory in KB
  73564. 10h WORD (big-endian) wasted server memory in KB
  73565. normally 0000h
  73566. 12h WORD number of records following (01h-03h)
  73567. 14h var array of Dynamic Memory Information records (see #02083)
  73568. SeeAlso: #02081,#02082 at AH=E3h/SF=E8h
  73569. --------N-21F217SFE9-------------------------
  73570. INT 21 - Novell NetWare - GET VOLUME INFORMATION
  73571. AX = F217h subfn E9h
  73572. CX = length of request buffer in bytes
  73573. DX = length of reply buffer in bytes
  73574. DS:SI -> request buffer (see #02084 at AH=E3h/SF=E9h)
  73575. ES:DI -> reply buffer (see #02247)
  73576. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73577. SeeAlso: AH=F2h"Novell",AH=E3h/SF=E9h,AX=F212h,AX=F216h/SF=15h
  73578. Format of NetWare "Get Volume Information" reply packet:
  73579. Offset Size Description (Table 02247)
  73580. 00h DWORD (big-endian) elapsed system time
  73581. 04h BYTE volume number
  73582. 05h BYTE logical drive number
  73583. 06h WORD (big-endian) sectors per block
  73584. 08h WORD (big-endian) starting block
  73585. 0Ah WORD (big-endian) total blocks on volume
  73586. 0Ch WORD (big-endian) blocks available on volume
  73587. 0Eh WORD (big-endian) total directory slots
  73588. 10h WORD (big-endian) directory slots available
  73589. 12h WORD (big-endian) maximum directory entries actually used
  73590. 14h BYTE flag: volume hashed if nonzero
  73591. 15h BYTE flag: volume cached if nonzero
  73592. 16h BYTE flag: volume removable if nonzero
  73593. 17h BYTE flag: volume mounted if nonzero
  73594. 18h 16 BYTEs NUL-padded volume name
  73595. SeeAlso: #02084,#02085 at AH=E3h/SF=E9h
  73596. --------N-21F217SFEA-------------------------
  73597. INT 21 - Novell NetWare v3.11+ - GET CONNECTION'S TASK INFORMATION
  73598. AX = F217h subfn EAh
  73599. CX = length of request buffer in bytes
  73600. DX = length of reply buffer in bytes
  73601. DS:SI -> request buffer (see #02248)
  73602. ES:DI -> reply buffer (see #02233)
  73603. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73604. SeeAlso: AH=F2h"Novell",AX=F217h/SF=DAh
  73605. Format of NetWare "Get Connection's Task Information" request packet:
  73606. Offset Size Description (Table 02248)
  73607. 00h WORD length of following data
  73608. 02h BYTE EAh (subfunction "Get Connection's Task Information")
  73609. 03h WORD connection number
  73610. SeeAlso: #02233,#02041 at AH=E3h/SF=DAh
  73611. --------N-21F217SFEB-------------------------
  73612. INT 21 - Novell NetWare v3+ - GET CONNECTION'S OPEN FILES
  73613. AX = F217h subfn EBh
  73614. CX = length of request buffer in bytes
  73615. DX = length of reply buffer in bytes
  73616. DS:SI -> request buffer (see #02249)
  73617. ES:DI -> reply buffer (see #02250)
  73618. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73619. reply buffer filled
  73620. SeeAlso: AH=F2h"Novell",AX=F217h/SF=DBh
  73621. Format of NetWare "Get Connection's Open Files" request buffer:
  73622. Offset Size Description (Table 02249)
  73623. 00h WORD 0005h (length of following data)
  73624. 02h BYTE EBh (subfunction "Get Connection's Open Files")
  73625. 03h WORD target connection number
  73626. 05h WORD last record seen (set to 0000h for first call)
  73627. Note: connection numbers greater than the maximum supported by the server
  73628. can cause ABENDs
  73629. SeeAlso: #02250
  73630. Format of NetWare "Get Connection's Open Files" reply buffer:
  73631. Offset Size Description (Table 02250)
  73632. 00h WORD next request record
  73633. 02h WORD number of records returned (max 28)
  73634. 04h 29N BYTEs array of connection records (see #02251)
  73635. SeeAlso: #02249
  73636. Format of NetWare connection record:
  73637. Offset Size Description (Table 02251)
  73638. 00h WORD task number
  73639. 02h BYTE lock type
  73640. 03h BYTE access control
  73641. 04h BYTE lock flag
  73642. 05h BYTE volume number
  73643. 06h DWORD parent directory entry number
  73644. 0Ah DWORD directory entry number
  73645. 0Eh BYTE fork count
  73646. 0Fh BYTE data stream type / name space (see #02387)
  73647. 10h BYTE file name length
  73648. 11h 12 BYTEs file name
  73649. SeeAlso: #02250
  73650. --------N-21F217SFEC-------------------------
  73651. INT 21 - Novell NetWare v3+ - GET CONNECTIONS USING A FILE
  73652. AX = F217h subfn ECh
  73653. CX = length of request buffer in bytes
  73654. DX = length of reply buffer in bytes
  73655. DS:SI -> request buffer (see #02252)
  73656. ES:DI -> reply buffer (see #02253)
  73657. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73658. reply buffer filled
  73659. SeeAlso: AH=F2h"Novell",AX=F217h/SF=DCh
  73660. Format of NetWare "Get Connections Using a File" request buffer:
  73661. Offset Size Description (Table 02252)
  73662. 00h WORD 0009h (length of following data)
  73663. 02h BYTE ECh (subfunction "Get Connections Using a File")
  73664. 03h BYTE data stream type
  73665. 04h BYTE volume number
  73666. 05h DWORD directory entry number
  73667. 09h WORD last record seen (0000h for first call)
  73668. SeeAlso: #02253
  73669. Format of NetWare "Get Connections Using a File" reply buffer:
  73670. Offset Size Description (Table 02253)
  73671. 00h WORD next request record
  73672. 02h WORD use count
  73673. 04h WORD open count
  73674. 06h WORD number of times open for reading
  73675. 08h WORD number of times open for writing
  73676. 0Ah WORD Deny Read count
  73677. 0Ch WORD Deny Write count
  73678. 0Eh BYTE flag: locked
  73679. 0Fh BYTE fork count
  73680. 10h WORD number of records returned (max 70)
  73681. 12h 7N BYTEs returned records (see #02254)
  73682. SeeAlso: #02252
  73683. Format of returned record:
  73684. Offset Size Description (Table 02254)
  73685. 00h WORD connection number
  73686. 02h WORD task number
  73687. 04h BYTE lock type
  73688. 05h BYTE access flag
  73689. 06h BYTE lock flag
  73690. SeeAlso: #02253
  73691. --------N-21F217SFED-------------------------
  73692. INT 21 - Novell NetWare v3+ - GET PHYSICAL RECORD LOCKS BY CONNECTION AND FILE
  73693. AX = F217h subfn EDh
  73694. CX = length of request buffer in bytes
  73695. DX = length of reply buffer in bytes
  73696. DS:SI -> request buffer (see #02255)
  73697. ES:DI -> reply buffer (see #02256)
  73698. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73699. SeeAlso: AH=F2h"Novell",AX=F217h/SF=DDh,AX=F217h/SF=EEh
  73700. Format of NetWare "Get Phys Record Locks By Conn And File" request packet:
  73701. Offset Size Description (Table 02255)
  73702. 00h WORD length of following data
  73703. 02h BYTE EDh (subfunction "Get Physical Record Locks By Connection
  73704. And File")
  73705. 03h WORD target connection number
  73706. 05h BYTE last record seen (set to 00h before first call)
  73707. 06h BYTE volume number
  73708. 07h DWORD directory entry number
  73709. 0Bh N BYTEs filename
  73710. SeeAlso: #02256
  73711. Format of NetWare "Get Physical Record Locks By Connect And File" reply packet:
  73712. Offset Size Description (Table 02256)
  73713. 00h WORD next record (place in last-seen field on next call)
  73714. 02h WORD number of locks returned
  73715. 04h 11N BYTEs lock records
  73716. Offset Size Description
  73717. 00h WORD (big-endian) task number
  73718. 02h BYTE lock status
  73719. 03h DWORD (big-endian) record start offset
  73720. 07h DWORD (big-endian) record end offset
  73721. SeeAlso: #02255
  73722. --------N-21F217SFEE-------------------------
  73723. INT 21 - Novell NetWare v3+ - GET PHYSICAL RECORD LOCKS BY FILE
  73724. AX = F217h subfn EEh
  73725. CX = length of request buffer in bytes
  73726. DX = length of reply buffer in bytes
  73727. DS:SI -> request buffer (see #02257)
  73728. ES:DI -> reply buffer (see #02258)
  73729. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73730. reply buffer filled
  73731. SeeAlso: AH=F2h"Novell",AX=F217h/SF=DEh
  73732. Format of NetWare "Get Physical Record Locks by File" request buffer:
  73733. Offset Size Description (Table 02257)
  73734. 00h WORD 0009h (length of following data)
  73735. 02h BYTE EEh (subfunction "Get Physical Record Locks by File")
  73736. 03h BYTE data stream number
  73737. 04h BYTE volume number
  73738. 05h DWORD directory entry number
  73739. 09h WORD last record seen (0000h for first call)
  73740. SeeAlso: #02258
  73741. Format of NetWare "Get Physical Record Locks by File" reply buffer:
  73742. Offset Size Description (Table 02258)
  73743. 00h WORD next request record
  73744. 02h WORD number of locks
  73745. 04h 17N BYTEs array of lock records, one per lock (see #02259)
  73746. SeeAlso: #02257
  73747. Format of NetWare lock record:
  73748. Offset Size Description (Table 02259)
  73749. 00h WORD logged count
  73750. 02h WORD number of shareable locks
  73751. 04h DWORD start offset of record
  73752. 08h DWORD end offset of record
  73753. 0Ch WORD logical connection number
  73754. 0Eh WORD task number
  73755. 10h BYTE lock type
  73756. SeeAlso: #02258
  73757. --------N-21F217SFEF-------------------------
  73758. INT 21 - Novell NetWare v3+ - GET LOGICAL RECORDS BY CONNECTION
  73759. AX = F217h subfn EFh
  73760. CX = length of request buffer in bytes
  73761. DX = length of reply buffer in bytes
  73762. DS:SI -> request buffer (see #02260)
  73763. ES:DI -> reply buffer (see #02261)
  73764. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73765. SeeAlso: AH=F2h"Novell",AX=F217h/SF=DFh
  73766. Format of NetWare "Get Logical Records By Connection" request packet:
  73767. Offset Size Description (Table 02260)
  73768. 00h WORD length of following data
  73769. 02h BYTE EFh (subfunction "Get Logical Records By Connection")
  73770. 03h WORD target connection number
  73771. 05h WORD last record seen (set to 0000h before first call)
  73772. SeeAlso: #02261
  73773. Format of NetWare "Get Logical Records By Connection" request packet:
  73774. Offset Size Description (Table 02261)
  73775. 00h WORD next record (place in last-seen field on next call)
  73776. 02h WORD number of records returned
  73777. 04h Logical Lock Information records (see #02063 at AH=E3h/SF=DFh)
  73778. SeeAlso: #02260
  73779. --------N-21F217SFF0-------------------------
  73780. INT 21 - Novell NetWare v3+ - GET LOGICAL RECORD INFORMATION
  73781. AX = F217h subfn F0h
  73782. CX = length of request buffer in bytes
  73783. DX = length of reply buffer in bytes
  73784. DS:SI -> request buffer (see #02262)
  73785. ES:DI -> reply buffer (see #02263)
  73786. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73787. SeeAlso: AH=F2h"Novell",AX=F217h/SF=E0h,AX=F217h/SF=EFh
  73788. Format of NetWare "Get Logical Record Information" request packet:
  73789. Offset Size Description (Table 02262)
  73790. 00h WORD length of following data
  73791. 02h BYTE F0h (subfunction "Get Logical Record Information")
  73792. 03h WORD last record seen
  73793. 05h BYTE length of logical record name
  73794. 06h N BYTEs logical record name (case-sensitive)
  73795. SeeAlso: #02263
  73796. Format of NetWare "Get Logical Record Information" request packet:
  73797. Offset Size Description (Table 02263)
  73798. 00h WORD number of connections logging record
  73799. 02h WORD number of shareable locks
  73800. 04h BYTE flag: locked exclusively if nonzero
  73801. 05h WORD next request record (place in last-seen field on next call)
  73802. 07h BYTE number of records returned
  73803. 08h logical record information records [array]
  73804. Offset Size Description
  73805. 00h WORD connection number
  73806. 02h BYTE task number
  73807. 03h BYTE lock status
  73808. SeeAlso: #02262
  73809. --------N-21F217SFF1-------------------------
  73810. INT 21 - Novell NetWare v3+ - GET CONNECTION'S SEMAPHORES
  73811. AX = F217h subfn F1h
  73812. CX = length of request buffer in bytes
  73813. DX = length of reply buffer in bytes
  73814. DS:SI -> request buffer (see #02264)
  73815. ES:DI -> reply buffer (see #02265)
  73816. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73817. SeeAlso: AH=F2h"Novell",AX=F217h/SF=E1h
  73818. Format of NetWare "Get Connection's Semaphores" request packet:
  73819. Offset Size Description (Table 02264)
  73820. 00h WORD length of following data
  73821. 02h BYTE F1h (subfunction "Get Connection's Semaphores")
  73822. 03h WORD connection number
  73823. 05h WORD last record seen (set to 0000h before first call)
  73824. SeeAlso: #02265
  73825. Format of NetWare "Get Connection's Semaphores" reply packet:
  73826. Offset Size Description (Table 02265)
  73827. 00h WORD next record (place in last-seen field on next call)
  73828. 02h WORD number of semaphores returned
  73829. 04h BYTEs semaphore information records [packed array] (see #02266)
  73830. SeeAlso: #02264
  73831. Format of NetWare semaphore information record:
  73832. Offset Size Description (Table 02266)
  73833. 00h WORD semaphore's current value
  73834. 02h WORD number of connections using semaphore
  73835. 04h WORD task number
  73836. 06h BYTE length of semaphore's name
  73837. 07h N BYTEs semaphore name
  73838. SeeAlso: #02265
  73839. --------N-21F217SFF2-------------------------
  73840. INT 21 - Novell NetWare v3+ - GET SEMAPHORE INFORMATION
  73841. AX = F217h subfn F2h
  73842. CX = length of request buffer in bytes
  73843. DX = length of reply buffer in bytes
  73844. DS:SI -> request buffer (see #02267)
  73845. ES:DI -> reply buffer (see #02268)
  73846. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73847. reply buffer filled
  73848. SeeAlso: AH=F2h"Novell",AX=F217h/SF=E2h
  73849. Format of NetWare "Get Semaphore Information" request buffer:
  73850. Offset Size Description (Table 02267)
  73851. 00h WORD length of following data (max 84h)
  73852. 02h BYTE F2h (subfunction "Get Semaphore Information")
  73853. 03h WORD last record seen (0000h on first call)
  73854. 05h BYTE length of semaphore name (max 128)
  73855. 06h N BYTEs semaphore name
  73856. SeeAlso: #02268
  73857. Format of NetWare "Get Semaphore Information" reply buffer:
  73858. Offset Size Description (Table 02268)
  73859. 00h WORD next request record
  73860. 02h WORD open count
  73861. 04h BYTE value of semaphore
  73862. 05h WORD number of records returned
  73863. 07h 2N WORDs list of logical connection number/task number pairs
  73864. SeeAlso: #02267
  73865. --------N-21F217SFF3-------------------------
  73866. INT 21 - Novell NetWare v3+ - MAP DIRECTORY NUMBER TO PATH
  73867. AX = F217h subfn F3h
  73868. CX = length of request buffer in bytes
  73869. DX = length of reply buffer in bytes
  73870. DS:SI -> request buffer (see #02269)
  73871. ES:DI -> reply buffer (see #02270)
  73872. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73873. reply buffer filled
  73874. SeeAlso: AX=F217h/SF=F4h
  73875. Format of NetWare "Map Directory Number to Path" request buffer:
  73876. Offset Size Description (Table 02269)
  73877. 00h WORD 0007h (length of following data)
  73878. 02h BYTE F3h (subfunction "Map Directory Number to Path")
  73879. 03h BYTE volume number
  73880. 04h DWORD directory entry number
  73881. 08h BYTE name space type
  73882. SeeAlso: #02270
  73883. Format of NetWare "Map Directory Number to Path" reply buffer:
  73884. Offset Size Description (Table 02270)
  73885. 00h BYTE directory path length
  73886. 01h N BYTEs directory path (NetWare style, separated by length descriptors
  73887. rather than slashes or backslashes)
  73888. SeeAlso: #02269
  73889. --------N-21F217SFF4-------------------------
  73890. INT 21 - Novell NetWare v3+ - CONVERT PATH TO DIRECTORY ENTRY
  73891. AX = F217h subfn F4h
  73892. CX = length of request buffer in bytes
  73893. DX = length of reply buffer in bytes
  73894. DS:SI -> request buffer (see #02271)
  73895. ES:DI -> reply buffer (see #02272)
  73896. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73897. reply buffer filled
  73898. SeeAlso: AX=F217h/SF=F3h
  73899. Format of NetWare "Convert Path to Directory Entry" request packet:
  73900. Offset Size Description (Table 02271)
  73901. 00h WORD length of following data
  73902. 02h BYTE F4h (subfunction "Convert Path to Directory Entry")
  73903. 03h BYTE directory handle or 00h for none
  73904. 04h BYTE length of directory path
  73905. 05h N BYTEs directory path (must be fully qualified if no handle specified)
  73906. SeeAlso: #02272
  73907. Format of NetWare "Convert Path to Directory Entry" reply packet:
  73908. Offset Size Description (Table 02272)
  73909. 00h BYTE volume number
  73910. 01h DWORD directory entry number
  73911. SeeAlso: #02271
  73912. --------N-21F217SFF5-------------------------
  73913. INT 21 - Novell NetWare - GET FILE SERVER EXTENDED MISC INFORMATION
  73914. AX = F217h subfn F5h
  73915. CX = length of request buffer in bytes
  73916. DX = length of reply buffer in bytes
  73917. DS:SI -> request buffer (see #02273)
  73918. ES:DI -> reply buffer (see #02274)
  73919. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73920. SeeAlso: AH=F2h"Novell",AX=F217h/SF=11h,AX=F217h/SF=C9h,AX=F217h/SF=E8h
  73921. Format of NetWare "Get File Server Extended Misc Information" request packet:
  73922. Offset Size Description (Table 02273)
  73923. 00h WORD length of following data
  73924. 02h BYTE F5h (subfunction "Get File Server Extended Misc Information")
  73925. 03h BYTE length of reply buffer
  73926. SeeAlso: #02274
  73927. Format of NetWare "Get File Server Extended Misc Information" reply packet:
  73928. Offset Size Description (Table 02274)
  73929. 00h DWORD system interval marker
  73930. (up-time in clock ticks, wraps to 0 on reaching FFFFFFFFh)
  73931. 04h BYTE processor type
  73932. 00h Motorola 680x0
  73933. 01h Intel 8088/8086
  73934. 02h 80286
  73935. 05h BYTE reserved for future use
  73936. 06h BYTE number of service processes
  73937. 07h BYTE server utilization percentage
  73938. 08h WORD maximum bindery objects set by configuration
  73939. 0Ah WORD actual maximum bindery objects
  73940. 0Ch WORD current number of bindery objects
  73941. 0Eh WORD (big-endian) total server memory
  73942. 10h WORD (big-endian) wasted server memory
  73943. 12h WORD (big-endian) number of dynamic memory areas
  73944. 14h DWORD (big-endian) total space in dynamic memory area
  73945. 18h DWORD maximum dynamic space used
  73946. 1Ch DWORD dynamic space currently used
  73947. SeeAlso: #02273
  73948. --------N-21F217SFF6-------------------------
  73949. INT 21 - Novell NetWare - GET VOLUME EXTENDED INFORMATION
  73950. AX = F217h subfn F6h
  73951. CX = length of request buffer in bytes
  73952. DX = length of reply buffer in bytes
  73953. DS:SI -> request buffer (see #02275)
  73954. ES:DI -> reply buffer (see #02276)
  73955. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73956. SeeAlso: AH=F2h"Novell",AX=F217h/SF=E8h
  73957. Format of NetWare "Get Volume Extended Information" request packet:
  73958. Offset Size Description (Table 02275)
  73959. 00h WORD length of following data
  73960. 02h BYTE F6h (subfunction "Get Volume Extended Information")
  73961. 03h BYTE volume number
  73962. 04h BYTE size of reply buffer
  73963. SeeAlso: #02276
  73964. Format of NetWare "Get Volume Extended Information" reply packet:
  73965. Offset Size Description (Table 02276)
  73966. 00h DWORD system interval
  73967. (up-time in clock ticks, wraps to 0 on reaching FFFFFFFFh)
  73968. 04h BYTE volume number
  73969. 05h BYTE logical drive number
  73970. 06h WORD number of 512-byte sectors per disk block
  73971. 08h DWORD starting block number of volume
  73972. 0Ch WORD total number of disk blocks
  73973. 0Eh WORD number of free disk blocks
  73974. 10h WORD total number of directory entries
  73975. 12h WORD number of available directory entries
  73976. 14h WORD maximum directory entries ever used
  73977. 16h BYTE flag: volume is hashed in memory if nonzero
  73978. 17h BYTE flag: volume is cached if nonzero
  73979. 18h BYTE flag: volume is removable if nonzero
  73980. 19h BYTE flag: volume is mounted if nonzero
  73981. 1Ah 16 BYTEs volume name (null-padded)
  73982. SeeAlso: #02275
  73983. --------N-21F217SFFE-------------------------
  73984. INT 21 - Novell NetWare v4 - CLEAR CONNECTION NUMBER GREATER THAN 250
  73985. AX = F217h subfn FEh
  73986. CX = length of request packet in bytes
  73987. DX = 0000h (no reply packet)
  73988. DS:SI -> request packet (see #02277)
  73989. ES:DI ignored
  73990. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  73991. SeeAlso: AH=E3h/SF=D2h,AX=F217h/SF=D2h
  73992. Format of NetWare "Clear Connection Number" request buffer:
  73993. Offset Size Description (Table 02277)
  73994. 00h WORD length of following data
  73995. 02h BYTE FEh (subfunction "Clear Connection Number")
  73996. 03h DWORD connection number
  73997. SeeAlso: #02023
  73998. --------N-21F21B-----------------------------
  73999. INT 21 - Novell NetWare - LOCK PHYSICAL RECORD SET (OLD)
  74000. AX = F21Bh
  74001. CX = length of request packet in bytes
  74002. DX = 0000h (no reply packet)
  74003. DS:SI -> request packet (see #02480 at AX=F26Eh)
  74004. ES:DI ignored
  74005. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74006. SeeAlso: AH=F2h"Novell",AX=F26Eh,AH=C2h"NetWare"
  74007. --------N-21F21E-----------------------------
  74008. INT 21 - Novell NetWare - CLEAR PHYSICAL RECORD
  74009. AX = F21Eh
  74010. CX = length of request packet in bytes
  74011. DX = 0000h (no reply packet)
  74012. DS:SI -> request packet (see #02278)
  74013. ES:DI ignored
  74014. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74015. SeeAlso: AH=5Ch,AH=BEh"NetWare",AH=F2h"Novell",AX=F20Bh,AX=F21Fh
  74016. Format of NetWare "Clear Physical Record" request packet:
  74017. Offset Size Description (Table 02278)
  74018. 00h BYTE reserved for future use
  74019. 01h 6 BYTEs NetWare file handle
  74020. 07h DWORD starting offset of locked region
  74021. 0Bh DWORD length of locked region
  74022. SeeAlso: #02279
  74023. --------N-21F21F-----------------------------
  74024. INT 21 - Novell NetWare - CLEAR PHYSICAL RECORD SET
  74025. AX = F21Fh
  74026. CX = length of request packet in bytes
  74027. DX = 0000h (no reply packet)
  74028. DS:SI -> request packet (see #02279)
  74029. ES:DI ignored
  74030. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74031. SeeAlso: AH=5Ch,AH=C4h"NetWare",AH=F2h"Novell",AX=F20Eh,AX=F21Eh
  74032. Format of NetWare "Clear Physical Record Set" request packet:
  74033. Offset Size Description (Table 02279)
  74034. 00h BYTE lock flag (00h = not locked)
  74035. SeeAlso: #02278
  74036. --------N-21F220SF00-------------------------
  74037. INT 21 - Novell NetWare - OPEN SEMAPHORE (OLD)
  74038. AX = F220h subfn 00h
  74039. CX = length of request buffer in bytes
  74040. DX = length of reply buffer in bytes
  74041. DS:SI -> request buffer (see #02280)
  74042. ES:DI -> reply buffer (see #02281)
  74043. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74044. SeeAlso: AH=F2h"Novell",AX=C500h,AX=F220h/SF=01h,AX=F220h/SF=03h
  74045. Format of NetWare "Open Semaphore (old)" request packet:
  74046. Offset Size Description (Table 02280)
  74047. 00h BYTE 00h (subfunction "Open Semaphore (old)")
  74048. 01h BYTE initial value of semaphore ( >= 0)
  74049. 02h BYTE length of semaphore's name (max 512)
  74050. 03h N BYTEs semaphore name
  74051. SeeAlso: #02281,#02282
  74052. Format of NetWare "Open Semaphore (old)" reply packet:
  74053. Offset Size Description (Table 02281)
  74054. 00h DWORD semaphore handle
  74055. 04h BYTE number of processes using semaphore (including caller)
  74056. SeeAlso: #02280,#02283
  74057. --------N-21F220SF01-------------------------
  74058. INT 21 - Novell NetWare - EXAMINE SEMAPHORE (OLD)
  74059. AX = F220h subfn 01h
  74060. CX = length of request buffer in bytes
  74061. DX = length of reply buffer in bytes
  74062. DS:SI -> request buffer (see #02282)
  74063. ES:DI -> reply buffer (see #02283)
  74064. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74065. SeeAlso: AH=F2h"Novell",AX=C501h,AX=F220h/SF=00h,AX=F220h/SF=03h
  74066. Format of NetWare "Close Semaphore (old)" request packet:
  74067. Offset Size Description (Table 02282)
  74068. 00h BYTE 01h (subfunction "Examine Semaphore (old)")
  74069. 01h DWORD semaphore handle
  74070. SeeAlso: #02283,#02280
  74071. Format of NetWare "Close Semaphore (old)" request packet:
  74072. Offset Size Description (Table 02283)
  74073. 00h BYTE current semaphore value
  74074. 01h BYTE number of processes using semaphore (including caller)
  74075. SeeAlso: #02282,#02281
  74076. --------N-21F220SF02-------------------------
  74077. INT 21 - Novell NetWare - WAIT ON SEMAPHORE (OLD)
  74078. AX = F220h subfn 02h
  74079. CX = length of request packet in bytes
  74080. DX = 0000h (no reply packet)
  74081. DS:SI -> request packet (see #02284)
  74082. ES:DI ignored
  74083. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74084. SeeAlso: AH=F2h"Novell",AX=C502h,AX=F220h/SF=00h,AX=F220h/SF=03h
  74085. Format of NetWare "Wait on Semaphore (old)" request packet:
  74086. Offset Size Description (Table 02284)
  74087. 00h BYTE 02h (subfunction "Wait on Semaphore (old)")
  74088. 01h DWORD semaphore handle
  74089. 05h WORD timeout in 1/18s (0000h = return immediately)
  74090. SeeAlso: #02282,#02285
  74091. --------N-21F220SF03-------------------------
  74092. INT 21 - Novell NetWare - SIGNAL SEMAPHORE (OLD)
  74093. AX = F220h subfn 03h
  74094. CX = length of request packet in bytes
  74095. DX = 0000h (no reply packet)
  74096. DS:SI -> request packet (see #02285)
  74097. ES:DI ignored
  74098. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74099. SeeAlso: AH=F2h"Novell",AX=C503h,AX=F220h/SF=02h,AX=F220h/SF=04h
  74100. Format of NetWare "Signal Semaphore (old)" request packet:
  74101. Offset Size Description (Table 02285)
  74102. 00h BYTE 03h (subfunction "Signal Semaphore (old)")
  74103. 01h DWORD semaphore handle
  74104. SeeAlso: #02284,#02286
  74105. --------N-21F220SF04-------------------------
  74106. INT 21 - Novell NetWare - CLOSE SEMAPHORE (OLD)
  74107. AX = F220h subfn 04h
  74108. CX = length of request packet in bytes
  74109. DX = 0000h (no reply packet)
  74110. DS:SI -> request packet (see #02286)
  74111. ES:DI ignored
  74112. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74113. SeeAlso: AH=F2h"Novell",AX=C504h,AX=F220h/SF=00h,AX=F220h/SF=01h
  74114. SeeAlso: AX=F26Fh/SF=01h
  74115. Format of NetWare "Close Semaphore (old)" request packet:
  74116. Offset Size Description (Table 02286)
  74117. 00h BYTE 04h (subfunction "Close Semaphore (old)")
  74118. 01h DWORD semaphore handle
  74119. SeeAlso: #02285,#02483
  74120. --------N-21F222SF00-------------------------
  74121. INT 21 - Novell NetWare - TTS IS AVAILABLE
  74122. AX = F222h subfn 00h
  74123. CX = length of request packet in bytes
  74124. DX = 0000h (no reply packet)
  74125. DS:SI -> request packet (see #02287)
  74126. ES:DI ignored
  74127. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74128. SeeAlso: AH=F2h"Novell",AX=C702h,AX=F222h/SF=01h,AX=F222h/SF=05h
  74129. Format of NetWare "TTS Is Available" request packet:
  74130. Offset Size Description (Table 02287)
  74131. 00h BYTE 00h (subfunction "TTS Is Available")
  74132. --------N-21F222SF01-------------------------
  74133. INT 21 - Novell NetWare - TTS BEGIN TRANSACTION
  74134. AX = F222h subfn 01h
  74135. CX = length of request packet in bytes
  74136. DX = 0000h (no reply packet)
  74137. DS:SI -> request packet (see #02288)
  74138. ES:DI ignored
  74139. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74140. SeeAlso: AH=F2h"Novell",AX=C700h,AX=F222h/SF=02h,AX=F222h/SF=03h
  74141. Format of NetWare "TTS Begin Transaction" request packet:
  74142. Offset Size Description (Table 02288)
  74143. 00h BYTE 01h (subfunction "TTS Begin Transaction")
  74144. SeeAlso: #02289,#02291
  74145. --------N-21F222SF02-------------------------
  74146. INT 21 - Novell NetWare - TTS END TRANSACTION
  74147. AX = F222h subfn 02h
  74148. CX = length of request buffer in bytes
  74149. DX = length of reply buffer in bytes
  74150. DS:SI -> request buffer (see #02289)
  74151. ES:DI -> reply buffer (see #02290)
  74152. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74153. SeeAlso: AH=F2h"Novell",AX=C701h,AX=F222h/SF=01h,AX=F222h/SF=04h
  74154. Format of NetWare "TTS End Transaction" request packet:
  74155. Offset Size Description (Table 02289)
  74156. 00h BYTE 02h (subfunction "TTS End Transaction")
  74157. SeeAlso: #02290,#02288
  74158. Format of NetWare "TTS End Transaction" reply packet:
  74159. Offset Size Description (Table 02290)
  74160. 00h DWORD transaction number
  74161. SeeAlso: #02289,#02292
  74162. --------N-21F222SF03-------------------------
  74163. INT 21 - Novell NetWare - TTS ABORT TRANSACTION
  74164. AX = F222h subfn 03h
  74165. CX = length of request packet in bytes
  74166. DX = 0000h (no reply packet)
  74167. DS:SI -> request packet (see #02291)
  74168. ES:DI ignored
  74169. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74170. SeeAlso: AH=F2h"Novell",AX=C703h,AX=F222h/SF=01h,AX=F222h/SF=02h
  74171. SeeAlso: AX=F220h/SF=04h
  74172. Format of NetWare "TTS Abort Transaction" request packet:
  74173. Offset Size Description (Table 02291)
  74174. 00h BYTE 03h (subfunction "TTS Abort Transaction")
  74175. SeeAlso: #02288,#02289
  74176. --------N-21F222SF04-------------------------
  74177. INT 21 - Novell NetWare - TTS TRANSACTION STATUS
  74178. AX = F222h subfn 04h
  74179. CX = length of request packet in bytes
  74180. DX = 0000h (no reply packet)
  74181. DS:SI -> request packet (see #02292)
  74182. ES:DI ignored
  74183. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74184. SeeAlso: AH=F2h"Novell",AX=C704h,AX=F222h/SF=02h,AX=F222h/SF=03h
  74185. Format of NetWare "TTS Transaction Status" request packet:
  74186. Offset Size Description (Table 02292)
  74187. 00h BYTE 04h (subfunction "TTS Transaction Status")
  74188. 01h DWORD transaction number
  74189. SeeAlso: #02289,#02290
  74190. --------N-21F222SF05-------------------------
  74191. INT 21 - Novell NetWare - TTS GET APPLICATION THRESHOLDS
  74192. AX = F222h subfn 05h
  74193. CX = length of request buffer in bytes
  74194. DX = length of reply buffer in bytes
  74195. DS:SI -> request buffer (see #02293)
  74196. ES:DI -> reply buffer (see #02294)
  74197. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74198. SeeAlso: AH=F2h"Novell",AX=C705h,AX=F222h/SF=06h,AX=F222h/SF=07h
  74199. Format of NetWare "TTS Get Application Thresholds" request packet:
  74200. Offset Size Description (Table 02293)
  74201. 00h BYTE 05h (subfunction "TTS Get Application Thresholds")
  74202. SeeAlso: #02294,#02295
  74203. Format of NetWare "TTS Get Application Thresholds" request packet:
  74204. Offset Size Description (Table 02294)
  74205. 00h BYTE logical lock threshold
  74206. 01h BYTE physical lock threshold
  74207. SeeAlso: #02293,#02295
  74208. --------N-21F222SF06-------------------------
  74209. INT 21 - Novell NetWare - TTS SET APPLICATION THRESHOLDS
  74210. AX = F222h subfn 06h
  74211. CX = length of request packet in bytes
  74212. DX = 0000h (no reply packet)
  74213. DS:SI -> request packet (see #02295)
  74214. ES:DI ignored
  74215. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74216. SeeAlso: AH=F2h"Novell",AX=C706h,AX=F222h/SF=05h,AX=F222h/SF=08h
  74217. Format of NetWare "TTS Set Application Thresholds" request packet:
  74218. Offset Size Description (Table 02295)
  74219. 00h BYTE 06h (subfunction "TTS Set Application Thresholds")
  74220. 01h BYTE logical lock threshold before implicit transaction started
  74221. 02h BYTE physical lock threshold before implicit transaction started
  74222. SeeAlso: #02294,#02298
  74223. --------N-21F222SF07-------------------------
  74224. INT 21 - Novell NetWare - TTS GET WORKSTATION THRESHOLDS
  74225. AX = F222h subfn 07h
  74226. CX = length of request buffer in bytes
  74227. DX = length of reply buffer in bytes
  74228. DS:SI -> request buffer (see #02296)
  74229. ES:DI -> reply buffer (see #02297)
  74230. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74231. SeeAlso: AH=F2h"Novell",AX=C707h,AX=F222h/SF=05h,AX=F222h/SF=08h
  74232. Format of NetWare "TTS Get Workstation Thresholds" request packet:
  74233. Offset Size Description (Table 02296)
  74234. 00h BYTE 07h (subfunction "TTS Get Workstation Thresholds")
  74235. SeeAlso: #02297
  74236. Format of NetWare "TTS Get Workstation Thresholds" reply packet:
  74237. Offset Size Description (Table 02297)
  74238. 00h BYTE logical lock threshold
  74239. 01h BYTE physical lock threshold
  74240. SeeAlso: #02296
  74241. --------N-21F222SF08-------------------------
  74242. INT 21 - Novell NetWare - TTS SET WORKSTATION THRESHOLDS
  74243. AX = F222h subfn 08h
  74244. CX = length of request packet in bytes
  74245. DX = 0000h (no reply packet)
  74246. DS:SI -> request packet (see #02298)
  74247. ES:DI ignored
  74248. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74249. SeeAlso: AH=F2h"Novell",AX=C708h,AX=F222h/SF=06h,AX=F222h/SF=07h
  74250. Format of NetWare "TTS Set Workstation Thresholds" request packet:
  74251. Offset Size Description (Table 02298)
  74252. 00h BYTE 08h (subfunction "TTS Set Workstation Thresholds")
  74253. 01h BYTE logical lock threshold before implicit transaction started
  74254. 02h BYTE physical lock threshold before implicit transaction started
  74255. SeeAlso: #02295
  74256. --------N-21F222SF09-------------------------
  74257. INT 21 - Novell NetWare - TTS GET CONTROL FLAGS
  74258. AX = F222h subfn 09h
  74259. CX = length of request buffer in bytes
  74260. DX = length of reply buffer in bytes
  74261. DS:SI -> request buffer (see #02299)
  74262. ES:DI -> reply buffer (see #02300)
  74263. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74264. SeeAlso: AH=F2h"Novell",AX=C702h,AX=F222h/SF=07h,AX=F222h/SF=0Ah
  74265. Format of NetWare "TTS Get Transaction Bits" request packet:
  74266. Offset Size Description (Table 02299)
  74267. 00h BYTE 09h (subfunction "TTS Get Transaction Bits")
  74268. SeeAlso: #02300
  74269. Format of NetWare "TTS Get Transaction Bits" reply packet:
  74270. Offset Size Description (Table 02300)
  74271. 00h BYTE TTS control flags
  74272. bit 0: forced (automatic) record locking enabled
  74273. bits 1-7: reserved
  74274. SeeAlso: #02299
  74275. --------N-21F222SF0A-------------------------
  74276. INT 21 - Novell NetWare - TTS SET CONTROL FLAGS
  74277. AX = F222h subfn 0Ah
  74278. CX = length of request packet in bytes
  74279. DX = 0000h (no reply packet)
  74280. DS:SI -> request packet (see #02301)
  74281. ES:DI ignored
  74282. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74283. SeeAlso: AH=F2h"Novell",AX=C702h,AX=F222h/SF=08h,AX=F222h/SF=09h
  74284. Format of NetWare "TTS Set Transaction Bits" request packet:
  74285. Offset Size Description (Table 02301)
  74286. 00h BYTE 0Ah (subfunction "TTS Set Transaction Bits")
  74287. 01h BYTE TTS control flags
  74288. bit 0: forced (automatic) record locking enabled
  74289. bits 1-7: reserved
  74290. --------N-21F223SF01-------------------------
  74291. INT 21 - Novell NetWare v2+ - AFP CREATE DIRECTORY
  74292. AX = F223h subfn 01h
  74293. CX = length of request buffer in bytes
  74294. DX = length of reply buffer in bytes
  74295. DS:SI -> request buffer (see #02302)
  74296. ES:DI -> reply buffer (see #02303)
  74297. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74298. SeeAlso: AH=F2h"Novell",AX=F223h/SF=02h,AX=F223h/SF=0Dh
  74299. Format of NetWare "AFP Create Directory" request packet:
  74300. Offset Size Description (Table 02302)
  74301. 00h WORD (big-endian) length of following data
  74302. 02h BYTE 01h (subfunction "AFP Create Directory")
  74303. 03h BYTE volume number
  74304. 04h DWORD AFP entry ID
  74305. 08h BYTE reserved for future use
  74306. 09h 32 BYTEs Finder information
  74307. 29h BYTE path length
  74308. 2Ah N BYTEs AFP-style directory pathname (relative to AFP entry ID)
  74309. SeeAlso: #02303,#02304,#02330
  74310. Format of NetWare "AFP Create Directory" reply packet:
  74311. Offset Size Description (Table 02303)
  74312. 00h DWORD new directory ID
  74313. SeeAlso: #02302,#02331
  74314. --------N-21F223SF02-------------------------
  74315. INT 21 - Novell NetWare v2+ - AFP CREATE FILE
  74316. AX = F223h subfn 02h
  74317. CX = length of request buffer in bytes
  74318. DX = length of reply buffer in bytes
  74319. DS:SI -> request buffer (see #02304)
  74320. ES:DI -> reply buffer (see #02305)
  74321. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74322. SeeAlso: AH=F2h"Novell",AX=F223h/SF=02h,AX=F223h/SF=03h,AX=F223h/SF=0Dh
  74323. Format of NetWare "AFP Create File" request packet:
  74324. Offset Size Description (Table 02304)
  74325. 00h WORD (big-endian) length of following data
  74326. 02h BYTE 01h (subfunction "AFP Create Directory")
  74327. 03h BYTE volume number
  74328. 04h DWORD AFP entry ID
  74329. 08h BYTE flag: delete existing file? (00h no, 01h yes)
  74330. 09h 32 BYTEs Finder information
  74331. 29h BYTE path length
  74332. 2Ah N BYTEs AFP-style directory pathname (relative to AFP entry ID)
  74333. SeeAlso: #02302,#02305,#02306,#02332
  74334. Format of NetWare "AFP Create File" reply packet:
  74335. Offset Size Description (Table 02305)
  74336. 00h DWORD new file's AFP entry ID
  74337. SeeAlso: #02304,#02333
  74338. --------N-21F223SF03-------------------------
  74339. INT 21 - Novell NetWare v2+ - AFP DELETE FILE
  74340. AX = F223h subfn 03h
  74341. CX = length of request packet in bytes
  74342. DX = 0000h (no reply packet)
  74343. DS:SI -> request packet (see #02306)
  74344. ES:DI ignored
  74345. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74346. Note: directories may be deleted if they are empty
  74347. SeeAlso: AH=F2h"Novell",AX=F223h/SF=02h,AX=F223h/SF=0Dh
  74348. Format of NetWare "AFP Delete File" request packet:
  74349. Offset Size Description (Table 02306)
  74350. 00h WORD (big-endian) length of following data
  74351. 02h BYTE 03h (subfunction "AFP Delete File")
  74352. 03h BYTE volume number
  74353. 04h DWORD AFP entry ID
  74354. 08h BYTE path length
  74355. 09h N BYTEs AFP-style pathname (relative to AFP entry ID)
  74356. SeeAlso: #02304
  74357. --------N-21F223SF04-------------------------
  74358. INT 21 - Novell NetWare v2+ - AFP GET ENTRY ID FROM FILENAME
  74359. AX = F223h subfn 04h
  74360. CX = length of request buffer in bytes
  74361. DX = length of reply buffer in bytes
  74362. DS:SI -> request buffer (see #02307)
  74363. ES:DI -> reply buffer (see #02308)
  74364. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74365. SeeAlso: AH=F2h"Novell",AX=F223h/SF=06h,AX=F223h/SF=0Ch,AX=F223h/SF=12h
  74366. Format of NetWare "AFP Get Entry ID from Name" request packet:
  74367. Offset Size Description (Table 02307)
  74368. 00h WORD (big-endian) length of following data
  74369. 02h BYTE 04h (subfunction "AFP Get Entry ID from Name")
  74370. 03h BYTE volume number
  74371. 04h DWORD AFP entry ID
  74372. 08h BYTE path length
  74373. 09h N BYTEs AFP-style pathname (relative to AFP entry ID)
  74374. SeeAlso: #02308,#02314
  74375. Format of NetWare "AFP Get Entry ID from Name" reply packet:
  74376. Offset Size Description (Table 02308)
  74377. 00h DWORD AFP entry ID corresponding to specified file/directory
  74378. SeeAlso: #02307,#02315
  74379. --------N-21F223SF05-------------------------
  74380. INT 21 - Novell NetWare v2+ - AFP GET FILE INFORMATION
  74381. AX = F223h subfn 05h
  74382. CX = length of request buffer in bytes
  74383. DX = length of reply buffer in bytes
  74384. DS:SI -> request buffer (see #02309)
  74385. ES:DI -> reply buffer (see #02311)
  74386. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74387. SeeAlso: AH=F2h"Novell",AX=F223h/SF=04h,AX=F223h/SF=09h,AX=F223h/SF=13h
  74388. Format of NetWare "AFP Get File Information" request packet:
  74389. Offset Size Description (Table 02309)
  74390. 00h WORD (big-endian) length of following data
  74391. 02h BYTE 05h (subfunction "AFP Get File Information")
  74392. 03h BYTE volume number
  74393. 04h DWORD AFP entry ID
  74394. 08h WORD request bitmap
  74395. 0Ah BYTE path length
  74396. 0Bh N BYTEs AFP-style pathname (relative to AFP entry ID)
  74397. SeeAlso: #02311
  74398. Bitfields for NetWare AFP request bitmap:
  74399. Bit(s) Description (Table 02310)
  74400. 0 return AFP entry ID
  74401. 1 return data fork length
  74402. 2 return resource fork length
  74403. 3 return number of contained files/subdirectories
  74404. 4 return owner ID
  74405. 5 return short name
  74406. 6 return access rights
  74407. 7 ??? (unused?)
  74408. 8 return attributes
  74409. 9 return parent directory ID
  74410. 10 return creation date
  74411. 11 return last-access date
  74412. 12 return last-modified date and time
  74413. 13 return last-backup date and time
  74414. 14 return Finder information
  74415. 15 return long name
  74416. SeeAlso: #02309,#02336,#02337
  74417. Format of NetWare "AFP Get File Information" reply packet:
  74418. Offset Size Description (Table 02311)
  74419. 00h DWORD AFP entry ID for specified file
  74420. 04h DWORD AFP entry ID for specified file's parent directory
  74421. 08h WORD directory/file attributes (see #02312)
  74422. 0Ah DWORD length of data fork
  74423. 0Eh DWORD length of resource fork
  74424. 12h WORD total files and subdirectories contained within entry
  74425. always 0000h if entry is a file
  74426. 14h WORD creation date in AFP format
  74427. 16h WORD last-access date in AFP format
  74428. 18h WORD last-modified date in AFP format
  74429. 1Ah WORD last-modified time in AFP format
  74430. 1Ch WORD last-backup date in AFP format
  74431. 1Eh WORD last-backup time in AFP format
  74432. 20h 32 BYTEs Finder information
  74433. 40h 32 BYTEs long filename
  74434. 60h DWORD NetWare object ID of owner
  74435. 64h 12 BYTEs short filename (MS-DOS 8.3 format)
  74436. 70h WORD access privileges (see #02313)
  74437. SeeAlso: #02309,#02338
  74438. Bitfields for NetWare AFP file/directory attributes:
  74439. Bit(s) Description (Table 02312)
  74440. 0 search mode
  74441. 1 search mode
  74442. 2 search mode
  74443. 3 (undefined)
  74444. 4 transaction
  74445. 5 index
  74446. 6 read audit
  74447. 7 write audit
  74448. 8 read-only
  74449. 9 hidden
  74450. 10 system
  74451. 11 execute-only
  74452. 12 subdirectory
  74453. 13 archive
  74454. 14 (undefined)
  74455. 15 shareable file
  74456. SeeAlso: #02311,#02322,#02337
  74457. Bitfields for NetWare AFP access privileges:
  74458. Bit(s) Description (Table 02313)
  74459. 8 read (files)
  74460. 9 write (files)
  74461. 10 open (files)
  74462. 11 create (files)
  74463. 12 delete (files)
  74464. 13 parental (directories): create/delete/rename subdirectories
  74465. 14 search (directories)
  74466. 15 modify file status flags
  74467. SeeAlso: #02311,#02337,#02327
  74468. --------N-21F223SF06-------------------------
  74469. INT 21 - Novell NetWare v2+ - AFP GET ENTRY ID FROM NETWARE HANDLE
  74470. AX = F223h subfn 06h
  74471. CX = length of request buffer in bytes
  74472. DX = length of reply buffer in bytes
  74473. DS:SI -> request buffer (see #02314)
  74474. ES:DI -> reply buffer (see #02315)
  74475. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74476. SeeAlso: AH=F2h"Novell",AX=F223h/SF=04h,AX=F223h/SF=0Ch,AX=F223h/SF=12h
  74477. Format of NetWare "AFP Get Entry ID from NetWare Handle" request packet:
  74478. Offset Size Description (Table 02314)
  74479. 00h WORD (big-endian) length of following data
  74480. 02h BYTE 06h (subfunction "AFP Get Entry ID from NetWare Handle")
  74481. 03h 6 BYTEs NetWare file handle
  74482. SeeAlso: #02315,#02307
  74483. Format of NetWare "AFP Get Entry ID from NetWare Handle" reply packet:
  74484. Offset Size Description (Table 02315)
  74485. 00h BYTE volume number
  74486. 01h DWORD AFP entry ID corresponding to same file as NetWare handle
  74487. 05h BYTE fork indicator (00h data fork, 01h resource fork)
  74488. SeeAlso: #02314,#02308
  74489. --------N-21F223SF07-------------------------
  74490. INT 21 - Novell NetWare v2+ - AFP RENAME
  74491. AX = F223h subfn 07h
  74492. CX = length of request packet in bytes
  74493. DX = 0000h (no reply packet)
  74494. DS:SI -> request packet (see #02316)
  74495. ES:DI ignored
  74496. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74497. SeeAlso: AH=F2h"Novell",AX=F223h/SF=01h,AX=F223h/SF=03h,AX=F223h/SF=08h
  74498. Format of NetWare "AFP Rename" request packet:
  74499. Offset Size Description (Table 02316)
  74500. 00h WORD (big-endian) length of following data
  74501. 02h BYTE 07h (subfunction "AFP Rename")
  74502. 03h BYTE volume number
  74503. 04h DWORD source AFP entry ID
  74504. 08h DWORD destination AFP entry ID
  74505. 0Ch BYTE source path length
  74506. 0Dh N BYTEs AFP-style source path (relative to source AFP entry ID)
  74507. BYTE destination path length
  74508. N BYTEs AFP-style destination path (relative to destination entry ID)
  74509. Note: the file may be moved from one directory to another without being
  74510. renamed by setting the destination path to the empty string
  74511. --------N-21F223SF08-------------------------
  74512. INT 21 - Novell NetWare v2+ - AFP OPEN FILE FORK
  74513. AX = F223h subfn 08h
  74514. CX = length of request buffer in bytes
  74515. DX = length of reply buffer in bytes
  74516. DS:SI -> request buffer (see #02317)
  74517. ES:DI -> reply buffer (see #02318)
  74518. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74519. SeeAlso: AH=F2h"Novell",AX=F223h/SF=01h,AX=F223h/SF=05h,AX=F223h/SF=09h
  74520. Format of NetWare "AFP Open File Fork" request packet:
  74521. Offset Size Description (Table 02317)
  74522. 00h WORD (big-endian) length of following data
  74523. 02h BYTE 08h (subfunction "AFP Open File Fork")
  74524. 03h BYTE volume number
  74525. 04h DWORD AFP entry ID
  74526. 08h BYTE fork indicator (00h = data fork, 01h = resource fork)
  74527. 09h BYTE access mode
  74528. bit 0: read
  74529. bit 1: write
  74530. bit 2: deny read access to others
  74531. bit 3: deny write access to others
  74532. bit 4: compatibility mode (should be set)
  74533. 0Ah BYTE path length
  74534. 0Bh N BYTEs AFP-style pathname (relative to AFP entry ID)
  74535. SeeAlso: #02318
  74536. Format of NetWare "AFP Open File Fork" reply packet:
  74537. Offset Size Description (Table 02318)
  74538. 00h DWORD AFP entry ID for newly-opened file fork
  74539. 04h DWORD length of opened fork
  74540. 08h 6 BYTEs NetWare file handle
  74541. SeeAlso: #02317
  74542. --------N-21F223SF09-------------------------
  74543. INT 21 - Novell NetWare v2+ - AFP SET FILE INFORMATION
  74544. AX = F223h subfn 09h
  74545. CX = length of request packet in bytes
  74546. DX = 0000h (no reply packet)
  74547. DS:SI -> request packet (see #02319)
  74548. ES:DI ignored
  74549. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74550. SeeAlso: AH=F2h"Novell",AX=F223h/SF=05h,AX=F223h/SF=0Ah,AX=F223h/SF=13h
  74551. Format of NetWare "AFP Set File Information" request packet:
  74552. Offset Size Description (Table 02319)
  74553. 00h WORD (big-endian) length of following data
  74554. 02h BYTE 09h (subfunction "AFP Set File Information")
  74555. 03h BYTE volume number
  74556. 04h DWORD AFP entry ID
  74557. 08h WORD request bitmap (see #02320)
  74558. 0Ah WORD directory/file attributes (see #02335)
  74559. 0Ch WORD creation date in AFP format
  74560. 0Eh WORD last-access date in AFP format
  74561. 10h WORD last-modified date in AFP format
  74562. 12h WORD last-modified time in AFP format
  74563. 14h WORD last-backup date in AFP format
  74564. 16h WORD last-backup time in AFP format
  74565. 18h 32 BYTEs Finder information
  74566. 38h BYTE path length
  74567. 39h N BYTEs AFP-style pathname (relative to AFP entry ID)
  74568. SeeAlso: #02334
  74569. Bitfields for NetWare AFP request bitmap:
  74570. Bit(s) Description (Table 02320)
  74571. 8 set attributes
  74572. 10 set creation date
  74573. 11 set last-access date
  74574. 12 set last-modified date
  74575. 13 set last-backup date
  74576. 14 set Finder information
  74577. SeeAlso: #02319,#02334
  74578. --------N-21F223SF0A-------------------------
  74579. INT 21 - Novell NetWare v2+ - AFP SCAN FILE INFORMATION
  74580. AX = F223h subfn 0Ah
  74581. CX = length of request buffer in bytes
  74582. DX = length of reply buffer in bytes
  74583. DS:SI -> request buffer (see #02321)
  74584. ES:DI -> reply buffer (see #02323)
  74585. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74586. SeeAlso: AH=F2h"Novell",AX=F223h/SF=01h,AX=F223h/SF=03h,AX=F223h/SF=08h
  74587. Format of NetWare "AFP Scan File Information" request packet:
  74588. Offset Size Description (Table 02321)
  74589. 00h WORD (big-endian) length of following data
  74590. 02h BYTE 0Ah (subfunction "AFP Scan File Information")
  74591. 03h BYTE volume number
  74592. 04h DWORD AFP entry ID
  74593. 08h DWORD AFP last-seen ID (from previous call)
  74594. FFFFFFFFh on first call
  74595. 0Ch WORD number of entries to return (max. 4)
  74596. 0Eh WORD search bitmap (see #02322)
  74597. 10h WORD request bitmap (see #02310)
  74598. 12h BYTE path length
  74599. 13h N BYTEs AFS-style directory path (relative to AFP entry ID)
  74600. SeeAlso: #02323,#02336
  74601. Bitfields for NetWare AFP search bitmap:
  74602. Bit(s) Description (Table 02322)
  74603. 8 hidden files and directories
  74604. 9 system files and directories
  74605. 10 subdirectories
  74606. 11 files
  74607. SeeAlso: #02321,#02336,#02310,#02312
  74608. Format of NetWare "AFP Scan File Information" reply packet:
  74609. Offset Size Description (Table 02323)
  74610. 00h WORD number of entries returned
  74611. 02h 120N BYTEs file information records (see #02324)
  74612. SeeAlso: #02321
  74613. Format of NetWare AFP file information:
  74614. Offset Size Description (Table 02324)
  74615. 00h DWORD AFP entry ID
  74616. 04h DWORD parent directory's AFP entry ID
  74617. 08h WORD directory/file attributes (see #02312)
  74618. 0Ah DWORD length of data fork
  74619. 0Eh DWORD length of resource fork
  74620. 12h WORD total files and subdirectories contained within entry
  74621. always 0000h if entry is a file
  74622. 14h WORD creation date in AFP format
  74623. 16h WORD last-access date in AFP format
  74624. 18h WORD last-modified date in AFP format
  74625. 1Ah WORD last-modified time in AFP format
  74626. 1Ch WORD last-backup date in AFP format
  74627. 1Eh WORD last-backup time in AFP format
  74628. 20h 32 BYTEs Finder information
  74629. 40h 32 BYTEs long filename
  74630. 60h DWORD NetWare object ID of owner
  74631. 64h 12 BYTEs short filename (MS-DOS 8.3 format)
  74632. 70h WORD access privileges (see #02313)
  74633. SeeAlso: #02323
  74634. --------N-21F223SF0B-------------------------
  74635. INT 21 - Novell NetWare v2+ - AFP ALLOCATE TEMPORARY DIRECTORY HANDLE
  74636. AX = F223h subfn 0Bh
  74637. CX = length of request buffer in bytes
  74638. DX = length of reply buffer in bytes
  74639. DS:SI -> request buffer (see #02325)
  74640. ES:DI -> reply buffer (see #02326)
  74641. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74642. SeeAlso: AH=F2h"Novell",AX=F223h/SF=0Dh
  74643. Format of NetWare "AFP Alloc Temporary Directory Handle" request packet:
  74644. Offset Size Description (Table 02325)
  74645. 00h WORD (big-endian) length of following data
  74646. 02h BYTE 0Bh (subfunction "AFT Alloc Temporary Directory Handle")
  74647. 03h BYTE volume number
  74648. 04h DWORD AFP entry ID
  74649. 08h BYTE path length
  74650. 09h N BYTEs AFP-style pathname
  74651. SeeAlso: #02326
  74652. Format of NetWare "AFP Alloc Temporary Directory Handle" request packet:
  74653. Offset Size Description (Table 02326)
  74654. 00h BYTE directory handle
  74655. 01h BYTE NetWare access rights (see #02327)
  74656. SeeAlso: #02325
  74657. Bitfields for NetWare AFP access rights:
  74658. Bit(s) Description (Table 02327)
  74659. 0 read
  74660. 1 write
  74661. 2 open
  74662. 3 create
  74663. 4 delete
  74664. 5 parental: create/delete/rename subdirectories
  74665. 6 search
  74666. 7 modify file status flags
  74667. SeeAlso: #02326,#02313
  74668. --------N-21F223SF0C-------------------------
  74669. INT 21 - Novell NetWare v2+ - AFP GET ENTRY ID FROM PATHNAME
  74670. AX = F223h subfn 0Ch
  74671. CX = length of request buffer in bytes
  74672. DX = length of reply buffer in bytes
  74673. DS:SI -> request buffer (see #02328)
  74674. ES:DI -> reply buffer (see #02329)
  74675. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74676. SeeAlso: AH=F2h"Novell",AX=F223h/SF=04h,AX=F223h/SF=06h,AX=F223h/SF=12h
  74677. Format of NetWare "AFP Get Entry ID from Path Name" request packet:
  74678. Offset Size Description (Table 02328)
  74679. 00h WORD (big-endian) length of following data
  74680. 02h BYTE 0Ch (subfunction "AFP Get Entry ID from Path Name")
  74681. 03h BYTE NetWare directory handle
  74682. 04h BYTE path length
  74683. 05h N BYTEs pathname
  74684. SeeAlso: #02329
  74685. Format of NetWare "AFP Get Entry ID from Path Name" reply packet:
  74686. Offset Size Description (Table 02329)
  74687. 00h DWORD AFP entry ID corresponding to specified file
  74688. SeeAlso: #02328
  74689. --------N-21F223SF0D-------------------------
  74690. INT 21 - Novell NetWare v2+ - AFP 2.0 CREATE DIRECTORY
  74691. AX = F223h subfn 0Dh
  74692. CX = length of request buffer in bytes
  74693. DX = length of reply buffer in bytes
  74694. DS:SI -> request buffer (see #02330)
  74695. ES:DI -> reply buffer (see #02331)
  74696. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74697. SeeAlso: AH=F2h"Novell",AX=F223h/SF=01h,AX=F223h/SF=0Eh
  74698. Format of NetWare "AFP 2.0 Create Directory" request buffer:
  74699. Offset Size Description (Table 02330)
  74700. 00h WORD (big-endian) length of following data
  74701. 02h BYTE 0Dh (subfunction "AFP 2.0 Create Directory")
  74702. 03h BYTE volume number
  74703. 04h DWORD AFP entry ID
  74704. 08h BYTE reserved for future use
  74705. 09h 32 BYTEs Finder information
  74706. 29h 6 BYTEs ProDOS information
  74707. 2Fh BYTE path length
  74708. 30h var AFS-style directory path (relative to AFP entry)
  74709. SeeAlso: #02331,#02302
  74710. Format of NetWare "AFP 2.0 Create Directory" reply buffer:
  74711. Offset Size Description (Table 02331)
  74712. 00h DWORD new directory ID
  74713. SeeAlso: #02330,#02303
  74714. --------N-21F223SF0E-------------------------
  74715. INT 21 - Novell NetWare v2+ - AFP 2.0 CREATE FILE
  74716. AX = F223h subfn 0Eh
  74717. CX = length of request buffer in bytes
  74718. DX = length of reply buffer in bytes
  74719. DS:SI -> request buffer (see #02332)
  74720. ES:DI -> reply buffer (see #02333)
  74721. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74722. SeeAlso: AH=F2h"Novell",AX=F223h/SF=0Dh
  74723. Format of NetWare "AFP 2.0 Create File" request packet:
  74724. Offset Size Description (Table 02332)
  74725. 00h WORD (big-endian) length of following data
  74726. 02h BYTE 0Eh (function "AFP 2.0 Create File")
  74727. 03h BYTE volume number
  74728. 04h DWORD AFP entry ID
  74729. 08h BYTE flag: delete existing file? (00h no, 01h yes)
  74730. 09h 32 BYTEs Finder information
  74731. 29h 6 BYTEs ProDOS information
  74732. 2Fh BYTE path length
  74733. 30h var AFP-style pathname (relative to AFP entry ID)
  74734. SeeAlso: #02333,#02304
  74735. Format of NetWare "AFP 2.0 Create File" reply packet:
  74736. Offset Size Description (Table 02333)
  74737. 00h DWORD new file ID
  74738. SeeAlso: #02332,#02305
  74739. --------N-21F223SF10-------------------------
  74740. INT 21 - Novell NetWare v2+ - AFP 2.0 SET FILE INFORMATION
  74741. AX = F223h subfn 10h
  74742. CX = length of request packet in bytes
  74743. DX = 0000h (no reply packet)
  74744. DS:SI -> request packet (see #02334)
  74745. ES:DI ignored
  74746. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74747. SeeAlso: AH=F2h"Novell",AX=F223h/SF=09h,AX=F223h/SF=11h
  74748. Format of NetWare "AFP 2.0 Set File Information" request packet:
  74749. Offset Size Description (Table 02334)
  74750. 00h WORD (big-endian) length of following data
  74751. 02h BYTE 10h (subfunction "AFS 2.0 Set File Information")
  74752. 03h BYTE volume number
  74753. 04h DWORD AFP entry ID
  74754. 08h WORD request bitmap (see #02320)
  74755. 0Ah WORD directory/file attributes (see #02335)
  74756. 0Ch WORD creation date in AFP format
  74757. 0Eh WORD last-access date in AFP format
  74758. 10h WORD last-modified date in AFP format
  74759. 12h WORD last-modified time in AFP format
  74760. 14h WORD last-backup date in AFP format
  74761. 16h WORD last-backup time in AFP format
  74762. 18h 32 BYTEs Finder information
  74763. 38h 6 BYTEs ProDOS information
  74764. 3Eh BYTE path length
  74765. 3Fh N BYTEs AFP-style pathname (relative to AFP entry ID)
  74766. SeeAlso: #02319
  74767. Bitfields for NetWare AFP directory/file attributes:
  74768. Bit(s) Description (Table 02335)
  74769. 0 read-only
  74770. 1 hidden
  74771. 2 system
  74772. 3 execute-only
  74773. 4 subdirectory
  74774. 5 archive
  74775. 7 shareable file
  74776. SeeAlso: #02334
  74777. --------N-21F223SF11-------------------------
  74778. INT 21 - Novell NetWare v2+ - AFP 2.0 SCAN FILE INFORMATION
  74779. AX = F223h subfn 11h
  74780. CX = length of request buffer in bytes
  74781. DX = length of reply buffer in bytes
  74782. DS:SI -> request buffer (see #02336)
  74783. ES:DI -> reply buffer (see #02337)
  74784. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74785. SeeAlso: AH=F2h"Novell",AX=F223h/SF=0Dh,AX=F223h/SF=10h
  74786. Format of NetWare "AFP 2.0 Scan File Information" request packet:
  74787. Offset Size Description (Table 02336)
  74788. 00h WORD (big-endian) length of following data
  74789. 02h BYTE 11h (subfunction "AFP 2.0 Scan File Information")
  74790. 03h BYTE volume number
  74791. 04h DWORD AFP entry ID
  74792. 08h DWORD AFP last-seen ID (from previous call)
  74793. FFFFFFFFh on first call
  74794. 0Ch WORD number of entries to return (max. 4)
  74795. 0Eh WORD search bitmap (see #02322)
  74796. 10h WORD request bitmap (see #02310)
  74797. 12h BYTE path length
  74798. 13h N BYTEs AFS-style directory path (relative to AFP entry ID)
  74799. SeeAlso: #02337
  74800. Format of NetWare "AFP 2.0 Scan File Information" reply packet:
  74801. Offset Size Description (Table 02337)
  74802. 00h WORD number of entries returned
  74803. 02h 120N BYTEs file information records (see #02338)
  74804. SeeAlso: #02336
  74805. Format of NetWare AFP 2.0 file information:
  74806. Offset Size Description (Table 02338)
  74807. 00h DWORD AFP entry ID
  74808. 04h DWORD parent directory's AFP entry ID
  74809. 08h WORD directory/file attributes (see #02312)
  74810. 0Ah DWORD length of data fork
  74811. 0Eh DWORD length of resource fork
  74812. 12h WORD total files and subdirectories contained within entry
  74813. always 0000h if entry is a file
  74814. 14h WORD creation date in AFP format
  74815. 16h WORD last-access date in AFP format
  74816. 18h WORD last-modified date in AFP format
  74817. 1Ah WORD last-modified time in AFP format
  74818. 1Ch WORD last-backup date in AFP format
  74819. 1Eh WORD last-backup time in AFP format
  74820. 20h 32 BYTEs Finder information
  74821. 40h 32 BYTEs long filename
  74822. 60h DWORD NetWare object ID of owner
  74823. 64h 12 BYTEs short filename (MS-DOS 8.3 format)
  74824. 70h WORD access privileges (see #02313)
  74825. 72h 6 BYTEs ProDOS information
  74826. SeeAlso: #02337,#02310,#02311
  74827. --------N-21F223SF12-------------------------
  74828. INT 21 - Novell NetWare v2+ - AFP GET DOS FILENAME FROM ENTRY ID
  74829. AX = F223h subfn 12h
  74830. CX = length of request buffer in bytes
  74831. DX = length of reply buffer in bytes
  74832. DS:SI -> request buffer (see #02339)
  74833. ES:DI -> reply buffer (see #02340)
  74834. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74835. SeeAlso: AH=F2h"Novell",AX=F223h/SF=04h,AX=F223h/SF=06h
  74836. Format of NetWare "AFP Get DOS Name from Entry ID" request packet:
  74837. Offset Size Description (Table 02339)
  74838. 00h WORD (big-endian) length of following data
  74839. 02h BYTE 12h (subfunction "AFP Get DOS Name From Entry ID")
  74840. 03h BYTE volume number
  74841. 04h DWORD AFP entry ID
  74842. SeeAlso: #02340
  74843. Format of NetWare "AFP Get DOS Name from Entry ID" reply packet:
  74844. Offset Size Description (Table 02340)
  74845. 00h BYTE length of DOS pathname
  74846. 01h N BYTEs pathname corresponding to AFP entry ID
  74847. SeeAlso: #02339
  74848. --------N-21F223SF13-------------------------
  74849. INT 21 - Novell NetWare v2+ - AFP GET MACINTOSH INFORMATION ON DELETED FILE
  74850. AX = F223h subfn 13h
  74851. CX = length of request buffer in bytes
  74852. DX = length of reply buffer in bytes
  74853. DS:SI -> request buffer (see #02341)
  74854. ES:DI -> reply buffer (see #02342)
  74855. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74856. SeeAlso: AH=F2h"Novell",AX=F223h/SF=04h,AX=F223h/SF=05h,AX=F223h/SF=09h
  74857. Format of NetWare "AFP Get Macintosh Info on Deleted File" request packet:
  74858. Offset Size Description (Table 02341)
  74859. 00h WORD (big-endian) length of following data
  74860. 02h BYTE 13h (subfunction "AFP Get Macintosh Info on Deleted File")
  74861. 03h BYTE volume number
  74862. 04h DWORD server's DOS directory entry index
  74863. SeeAlso: #02342
  74864. Format of NetWare "AFP Get Macintosh Info on Deleted File" reply packet:
  74865. Offset Size Description (Table 02342)
  74866. 00h 32 BYTEs Finder information
  74867. 20h 6 BYTEs ProDOS information
  74868. 26h DWORD size of resource fork
  74869. 2Ah BYTE length of filename
  74870. 2Bh N BYTEs filename
  74871. SeeAlso: #02341
  74872. --------N-21F23D-----------------------------
  74873. INT 21 - Novell NetWare - COMMIT FILE
  74874. AX = F23Dh
  74875. CX = length of request packet in bytes
  74876. DX = 0000h (no reply packet)
  74877. DS:SI -> request packet (see #02347)
  74878. ES:DI ignored
  74879. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74880. SeeAlso: AH=3Eh,AH=F2h"Novell",AX=F23Eh,AX=F243h
  74881. --------N-21F23E-----------------------------
  74882. INT 21 - Novell NetWare - FILE SEARCH INITIALIZE (FindFirst)
  74883. AX = F23Eh
  74884. CX = length of request buffer in bytes
  74885. DX = length of reply buffer in bytes
  74886. DS:SI -> request buffer (see #02343)
  74887. ES:DI -> reply buffer (see #02344)
  74888. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74889. SeeAlso: AH=4Eh,AH=F2h"Novell",AX=F23Fh,AX=F242h
  74890. Format of NetWare "File Search Initialize" request packet:
  74891. Offset Size Description (Table 02343)
  74892. 00h BYTE directory handle
  74893. 01h BYTE length of directory path
  74894. 02h N BYTEs path of directory to search, in VOLUME:DIRECTORY/... format
  74895. SeeAlso: #02344,#02345
  74896. Format of NetWare "File Search Initialize" reply packet:
  74897. Offset Size Description (Table 02344)
  74898. 00h BYTE volume number
  74899. 01h WORD directory ID
  74900. 03h WORD search sequence number
  74901. 05h BYTE directory access rights
  74902. SeeAlso: #02343,#02346
  74903. --------N-21F23F-----------------------------
  74904. INT 21 - Novell NetWare - FILE SEARCH CONTINUE (FindNext)
  74905. AX = F23Fh
  74906. CX = length of request buffer in bytes
  74907. DX = length of reply buffer in bytes
  74908. DS:SI -> request buffer (see #02345)
  74909. ES:DI -> reply buffer (see #02346)
  74910. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74911. SeeAlso: AH=4Eh,AH=F2h"Novell",AX=F23Eh,AX=F242h
  74912. Format of NetWare "File Search Continue" request packet:
  74913. Offset Size Description (Table 02345)
  74914. 00h BYTE volume number
  74915. 02h WORD directory ID from File Search Initialize
  74916. 04h WORD search sequence (set to FFFFh before first call)
  74917. 06h BYTE search attributes
  74918. 07h BYTE length of search directory path
  74919. 08h N BYTEs name of search directory in VOLUME:DIRECTORY/.../DIR format
  74920. SeeAlso: #02346
  74921. Format of NetWare "File Search Continue" reply packet:
  74922. Offset Size Description (Table 02346)
  74923. 00h WORD next search sequence
  74924. 02h WORD directory ID from File Search Initialize
  74925. 04h WORD reserved for future use
  74926. 06h 14 BYTEs filename
  74927. 14h BYTE file attributes
  74928. 15h BYTE file mode
  74929. 16h DWORD file length
  74930. 2Ah WORD creation date
  74931. 2Ch WORD last-access date
  74932. 2Eh WORD last-modification date
  74933. 30h WORD last-modification time
  74934. SeeAlso: #02345
  74935. --------N-21F242-----------------------------
  74936. INT 21 - Novell NetWare - CLOSE FILE
  74937. AX = F242h
  74938. CX = length of request packet in bytes
  74939. DX = 0000h (no reply packet)
  74940. DS:SI -> request packet (see #02347)
  74941. ES:DI ignored
  74942. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74943. SeeAlso: AH=3Eh,AH=F2h"Novell",AX=F23Eh,AX=F243h,AX=F24Ah
  74944. Format of NetWare "Commit/Close File" request packet:
  74945. Offset Size Description (Table 02347)
  74946. 00h BYTE reserved (0)
  74947. 01h 6 BYTEs NetWare file handle
  74948. --------N-21F243-----------------------------
  74949. INT 21 - Novell NetWare - CREATE FILE
  74950. AX = F243h
  74951. CX = length of request buffer in bytes
  74952. DX = length of reply buffer in bytes
  74953. DS:SI -> request buffer (see #02348)
  74954. ES:DI -> reply buffer (see #02349)
  74955. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  74956. SeeAlso: AH=3Ch,AH=F2h"Novell",AX=F23Eh,AX=F242h,AX=F24Ah,AX=F24Dh
  74957. Format of NetWare "Create File" request packet:
  74958. Offset Size Description (Table 02348)
  74959. 00h BYTE directory handle
  74960. 01h BYTE file attributes
  74961. 02h BYTE length of filename
  74962. 03h N BYTEs filename in DOS format
  74963. SeeAlso: #02349
  74964. Format of NetWare "Create File" reply packet:
  74965. Offset Size Description (Table 02349)
  74966. 00h 6 BYTEs NetWare file handle
  74967. 06h WORD reserved
  74968. 08h 14 BYTEs DOS-format filename
  74969. 16h BYTE file attributes
  74970. 17h BYTE file execute type
  74971. 18h DWORD file length
  74972. 1Ch WORD creation date
  74973. 1Eh WORD last-access date
  74974. 20h WORD last-modification date
  74975. 22h WORD last-modification time
  74976. SeeAlso: #02348
  74977. --------N-21F244-----------------------------
  74978. INT 21 - Novell NetWare - FILE SERVICES - ERASE FILE
  74979. AX = F244h
  74980. CX = length of request packet in bytes
  74981. DX = 0000h (no reply packet)
  74982. DS:SI -> request packet (see #02351)
  74983. ES:DI ignored
  74984. Return: AL = status (see #02350)
  74985. Note: this function only marks the file for deletion; use AH=E2h/SF=CEh to
  74986. actually delete all marked files
  74987. SeeAlso: AH=13h,AH=41h,AH=E2h/SF=0Bh,AH=E3h/SF=CEh
  74988. (Table 02350)
  74989. Values for NetWare function status:
  74990. 00h successful
  74991. 98h nonexistent volume
  74992. 9Bh invaid directory handle
  74993. 9Ch invalid path
  74994. FFh no files found
  74995. SeeAlso: #02094,#02860 at INT 2F/AX=7A20h/BX=0000h
  74996. Format of NetWare "Erase Files" request packet:
  74997. Offset Size Description (Table 02351)
  74998. 00h BYTE directory handle
  74999. 01h BYTE search attributes (see #01420 at AX=4301h)
  75000. 02h BYTE length of filespec
  75001. 03h N BYTEs ASCIZ filespec (may include wildcards)
  75002. --------N-21F247-----------------------------
  75003. INT 21 - Novell NetWare - GET CURRENT FILE SIZE
  75004. AX = F247h
  75005. CX = length of request buffer in bytes
  75006. DX = length of reply buffer in bytes
  75007. DS:SI -> request buffer (see #02352)
  75008. ES:DI -> reply buffer (see #02353)
  75009. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75010. SeeAlso: AH=42h,AH=F2h"Novell",AX=F23Eh,AX=F242h,AX=F24Ah,AX=F24Dh
  75011. Format of NetWare "Get Current Size of File" request packet:
  75012. Offset Size Description (Table 02352)
  75013. 00h BYTE reserved for future use
  75014. 01h 6 BYTEs NetWare file handle
  75015. SeeAlso: #02353
  75016. Format of NetWare "Get Current Size of File" reply packet:
  75017. Offset Size Description (Table 02353)
  75018. 00h DWORD current size of file
  75019. SeeAlso: #02352
  75020. --------N-21F24A-----------------------------
  75021. INT 21 - Novell NetWare - COPY FROM ONE FILE TO ANOTHER
  75022. AX = F24Ah
  75023. CX = length of request buffer in bytes
  75024. DX = length of reply buffer in bytes
  75025. DS:SI -> request buffer (see #02354)
  75026. ES:DI -> reply buffer (see #02355)
  75027. Return: AX = status (see #02350)
  75028. Note: this function only marks the file for deletion; use AH=E2h/SF=CEh to
  75029. actually delete all marked files
  75030. SeeAlso: AH=F2h"Novell",AX=F243h,AX=F247h,AH=F3h"NetWare"
  75031. Format of NetWare "Copy from One File to Another" request packet:
  75032. Offset Size Description (Table 02354)
  75033. 00h BYTE reserved for future use
  75034. 01h 6 BYTEs source NetWare file handle
  75035. 07h 6 BYTEs destination NetWare file handle
  75036. 0Dh DWORD source file offset
  75037. 11h DWORD destination file offset
  75038. 15h DWORD number of bytes to copy
  75039. SeeAlso: #02355
  75040. Format of NetWare "Copy from One File to Another" reply packet:
  75041. Offset Size Description (Table 02355)
  75042. 00h DWORD number of bytes actually copied
  75043. SeeAlso: #02354
  75044. --------N-21F24D-----------------------------
  75045. INT 21 - Novell NetWare - CREATE NEW FILE
  75046. AX = F24Dh
  75047. CX = length of request buffer in bytes
  75048. DX = length of reply buffer in bytes
  75049. DS:SI -> request buffer (see #02356)
  75050. ES:DI -> reply buffer (see #02357)
  75051. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75052. SeeAlso: AX=6C00h,AH=F2h"Novell",AX=F23Eh,AX=F242h,AX=F243h
  75053. Format of NetWare "Create New File" request packet:
  75054. Offset Size Description (Table 02356)
  75055. 00h BYTE directory handle
  75056. 01h BYTE file attributes
  75057. 02h BYTE length of filename
  75058. 03h N BYTEs filename in DOS format
  75059. SeeAlso: #02357
  75060. Format of NetWare "Create New File" reply packet:
  75061. Offset Size Description (Table 02357)
  75062. 00h 6 BYTEs NetWare file handle
  75063. 06h WORD reserved
  75064. 08h 14 BYTEs DOS-format filename
  75065. 16h BYTE file attributes
  75066. 17h BYTE file execute type
  75067. 18h DWORD file length
  75068. 1Ch WORD creation date
  75069. 1Eh WORD last-access date
  75070. 20h WORD last-modification date
  75071. 22h WORD last-modification time
  75072. SeeAlso: #02356
  75073. --------N-21F24E-----------------------------
  75074. INT 21 - Novell NetWare v2+ - ALLOW TASK ACCESS TO FILE
  75075. AX = F24Eh
  75076. CX = length of request buffer in bytes
  75077. DX = length of reply buffer in bytes
  75078. DS:SI -> request buffer (see #02358)
  75079. ES:DI -> reply buffer (see #02359)
  75080. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75081. reply buffer filled
  75082. Desc: allow calling task to gain access to an already-open file belonging
  75083. to another task of the same client
  75084. Note: the caller receives the same access rights as the owning task, and
  75085. must use the returned new handle to access the file
  75086. SeeAlso: AH=F2h"NetWare",AX=F244h
  75087. Format of NetWare "Allow Task Access to File" request packet:
  75088. Offset Size Description (Table 02358)
  75089. 00h BYTE reserved for future use
  75090. 01h 6 BYTEs NetWare file handle
  75091. SeeAlso: #02359
  75092. Format of NetWare "Allow Task Access to File" reply packet:
  75093. Offset Size Description (Table 02359)
  75094. 00h 6 BYTEs new file handle
  75095. SeeAlso: #02358
  75096. --------N-21F256SF01-------------------------
  75097. INT 21 - Novell NetWare - CLOSE EXTENDED ATTRIBUTE HANDLE
  75098. AX = F256h subfn 01h
  75099. CX = length of request packet in bytes
  75100. DX = 0000h (no reply packet)
  75101. DS:SI -> request packet (see #02360)
  75102. ES:DI ignored
  75103. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75104. SeeAlso: AH=F2h"Novell",AX=F256h/SF=02h,AX=F256h/SF=04h,AX=F256h/SF=05h
  75105. Format of NetWare "Close Extended Attribute Handle" request packet:
  75106. Offset Size Description (Table 02360)
  75107. 00h BYTE 01h (subfunction "Close Extended Attribute Handle")
  75108. 01h WORD reserved for future use
  75109. 03h DWORD extended attribute handle
  75110. --------N-21F256SF02-------------------------
  75111. INT 21 - Novell NetWare - WRITE EXTENDED ATTRIBUTE
  75112. AX = F256h subfn 02h
  75113. CX = length of request buffer in bytes
  75114. DX = length of reply buffer in bytes
  75115. DS:SI -> request buffer (see #02361)
  75116. ES:DI -> reply buffer (see #02362)
  75117. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75118. SeeAlso: AH=F2h"Novell",AX=F256h/SF=01h,AX=F256h/SF=03h,AX=F256h/SF=05h
  75119. Format of NetWare "Write Extended Attribute" request packet:
  75120. Offset Size Description (Table 02361)
  75121. 00h BYTE 02h (subfunction "Write Extended Attribute")
  75122. 01h WORD flags (see #02372)
  75123. 03h 8 BYTEs extended attribute handle structure (see #02373)
  75124. 0Bh DWORD write size
  75125. 0Fh DWORD write position
  75126. 13h DWORD access flag
  75127. 17h WORD length of value
  75128. 19h WORD key length
  75129. 1Bh N BYTEs key
  75130. N BYTEs value
  75131. SeeAlso: #02361,#02363
  75132. Format of NetWare "Write Extended Attribute" reply packet:
  75133. Offset Size Description (Table 02362)
  75134. 00h DWORD error code
  75135. 04h DWORD number of bytes written
  75136. 08h DWORD new extended attribute handle
  75137. SeeAlso: #02361
  75138. --------N-21F256SF03-------------------------
  75139. INT 21 - Novell NetWare - READ EXTENDED ATTRIBUTE
  75140. AX = F256h subfn 03h
  75141. CX = length of request buffer in bytes
  75142. DX = length of reply buffer in bytes
  75143. DS:SI -> request buffer (see #02363)
  75144. ES:DI -> reply buffer (see #02364)
  75145. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75146. SeeAlso: AH=F2h"Novell",AX=F256h/SF=01h,AX=F256h/SF=04h,AX=F256h/SF=05h
  75147. Format of NetWare "Read Extended Attribute" request packet:
  75148. Offset Size Description (Table 02363)
  75149. 00h BYTE 03h (subfunction "Read Extended Attribute")
  75150. 01h WORD flags (see #02372)
  75151. 03h 8 BYTEs extended attribute handle structure (see #02373)
  75152. 0Bh DWORD read position
  75153. 0Fh DWORD inspect size
  75154. 13h WORD key length
  75155. 15h N BYTEs key
  75156. SeeAlso: #02364,#02361
  75157. Format of NetWare "Read Extended Attribute" reply packet:
  75158. Offset Size Description (Table 02364)
  75159. 00h DWORD error code
  75160. 04h DWORD total extended attribute value length
  75161. 08h DWORD new extended attribute handle
  75162. 0Ch DWORD access flag
  75163. 10h WORD value length
  75164. 12h N BYTEs EA value
  75165. SeeAlso: #02363
  75166. --------N-21F256SF04-------------------------
  75167. INT 21 - Novell NetWare - ENUMERATE EXTENDED ATTRIBUTES
  75168. AX = F256h subfn 04h
  75169. CX = length of request buffer in bytes
  75170. DX = length of reply buffer in bytes
  75171. DS:SI -> request buffer (see #02365)
  75172. ES:DI -> reply buffer (see #02366)
  75173. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75174. SeeAlso: AH=F2h"Novell",AX=F256h/SF=01h,AX=F256h/SF=02h,AX=F256h/SF=05h
  75175. Format of NetWare "Enumerate Extended Attributes" request packet:
  75176. Offset Size Description (Table 02365)
  75177. 00h BYTE 04h (subfunction "Enumerate Extended Attributes")
  75178. 01h WORD flags (see #02372)
  75179. 03h 8 BYTEs extended attribute handle structure (see #02373)
  75180. 0Bh DWORD inspect size
  75181. 0Fh WORD enumeration sequence
  75182. 11h WORD key length
  75183. 13h N BYTEs key
  75184. SeeAlso: #02366
  75185. Format of NetWare "Enumerate Extended Attributes" reply packet:
  75186. Offset Size Description (Table 02366)
  75187. 00h DWORD error code
  75188. 04h DWORD total extended attributes
  75189. 08h DWORD total extended attribute data size
  75190. 0Ch DWORD total extended attribute key size
  75191. 10h DWORD new extended attribute handle
  75192. ---information level 0---
  75193. 14h 2 WORDs reserved
  75194. ---information level 1---
  75195. 14h WORD number of enumerated extended attribute structures
  75196. 16h var EA structure level 1
  75197. ---information level 6---
  75198. 14h WORD reserved
  75199. 16h var EA structure level 6
  75200. ---information level 7---
  75201. 14h WORD number of enumerated extended attribute structures
  75202. 16h var EA structure level 7
  75203. SeeAlso: #02365
  75204. Format of NetWare Extended Attribute structure level 1:
  75205. Offset Size Description (Table 02367)
  75206. 00h DWORD length of EA value
  75207. 04h WORD length of EA key
  75208. 06h DWORD access flag
  75209. 0Ah N BYTEs key
  75210. SeeAlso: #02366,#02368,#02369
  75211. Format of NetWare Extended Attribute structure level 6:
  75212. Offset Size Description (Table 02368)
  75213. 00h DWORD length of EA value
  75214. 04h WORD length of EA key
  75215. 06h DWORD access flag
  75216. 0Ah DWORD key extents
  75217. 0Eh DWORD value extents
  75218. 12h N BYTEs key
  75219. SeeAlso: #02366,#02367,#02369
  75220. Format of NetWare Extended Attribute structure level 7:
  75221. Offset Size Description (Table 02369)
  75222. 00h BYTE key length
  75223. 01h N BYTEs key
  75224. BYTE 00h
  75225. SeeAlso: #02366,#02367,#02368
  75226. --------N-21F256SF05-------------------------
  75227. INT 21 - Novell NetWare - DUPLICATE EXTENDED ATTRIBUTES
  75228. AX = F256h subfn 05h
  75229. CX = length of request buffer in bytes
  75230. DX = length of reply buffer in bytes
  75231. DS:SI -> request buffer (see #02370)
  75232. ES:DI -> reply buffer (see #02371)
  75233. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75234. SeeAlso: AH=F2h"Novell",AX=F256h/SF=01h,AX=F256h/SF=02h,AX=F256h/SF=04h
  75235. Format of NetWare "Duplicate Extended Attributes" request packet:
  75236. Offset Size Description (Table 02370)
  75237. 00h BYTE 05h (subfunction "Duplicate Extended Attributes")
  75238. 01h WORD source flags (see #02372)
  75239. 03h WORD destination flags (see #02372)
  75240. 05h 8 BYTEs source extended attribute structure (see #02373)
  75241. 0Dh 8 BYTEs destination extended attribute structure (see #02373)
  75242. SeeAlso: #02371
  75243. Format of NetWare "Duplicate Extended Attributes" reply packet:
  75244. Offset Size Description (Table 02371)
  75245. 00h DWORD number duplicated
  75246. 04h DWORD data size duplicated
  75247. 08h DWORD key size duplicated
  75248. SeeAlso: #02370
  75249. Bitfields for NetWare extended attribute flags:
  75250. Bit(s) Description (Table 02372)
  75251. 1-0 extended attribute handle structure type
  75252. 00 volume number and directory entry number
  75253. 01 NetWare file handle
  75254. 10 extended attribute handle
  75255. 11 not used
  75256. 2 close handle on error
  75257. 6-4 information level (0,1,6,7)
  75258. 7 not used
  75259. SeeAlso: #02370,#02373
  75260. Format of NetWare extended attribute structure:
  75261. Offset Size Description (Table 02373)
  75262. ---type 0---
  75263. 00h DWORD volume number
  75264. 04h DWORD directory entry number
  75265. ---type 1---
  75266. 00h DWORD NetWare file handle
  75267. 04h 4 BYTEs unused
  75268. ---type 2---
  75269. 00h DWORD extended attribute handle
  75270. 04h 4 BYTEs unused
  75271. SeeAlso: #02372
  75272. --------N-21F257SF01-------------------------
  75273. INT 21 - Novell NetWare - OPEN/CREATE FILE OR SUBDIRECTORY
  75274. AX = F257h subfn 01h
  75275. CX = length of request buffer in bytes
  75276. DX = length of reply buffer in bytes
  75277. DS:SI -> request buffer (see #02374)
  75278. ES:DI -> reply buffer (see #02375)
  75279. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75280. SeeAlso: AH=F2h"Novell",AX=6C00h,AX=F257h/SF=02h,AX=F257h/SF=04h
  75281. Format of NetWare "Open/Create File or Subdirectory" request packet:
  75282. Offset Size Description (Table 02374)
  75283. 00h BYTE 01h (subfunction "Open/Create File or Subdirectory")
  75284. 01h BYTE name space (see #02387)
  75285. 02h BYTE open/create mode
  75286. 03h WORD search attributes
  75287. 05h DWORD return information mask
  75288. 09h DWORD create attributes
  75289. 0Dh WORD desired access rights (see #02377)
  75290. 0Fh NetWare handle/path structure
  75291. SeeAlso: #02375
  75292. Format of NetWare "Open/Create File or Subdirectory" reply packet:
  75293. Offset Size Description (Table 02375)
  75294. 00h DWORD file handle
  75295. 04h BYTE open/create action
  75296. 00h open
  75297. 01h replace
  75298. 03h create
  75299. 05h BYTE reserved
  75300. SeeAlso: #02374
  75301. Format of NetWare Handle/Path structure:
  75302. Offset Size Description (Table 02376)
  75303. 00h BYTE volume number
  75304. 01h DWORD directory base or short handle
  75305. 05h BYTE handle flag
  75306. 00h short directory handle
  75307. 01h directory base
  75308. FFh no handle
  75309. 06h BYTE path component count
  75310. 07h N BYTEs path component
  75311. Bitfields for NetWare desired access rights:
  75312. Bit(s) Description (Table 02377)
  75313. 0 read-only mode
  75314. 1 write-only
  75315. 2 deny read
  75316. 3 deny write
  75317. 4 compatibility mode
  75318. 6 write-through mode
  75319. SeeAlso: #02374
  75320. --------N-21F257SF02-------------------------
  75321. INT 21 - Novell NetWare - INITIALIZE SEARCH
  75322. AX = F257h subfn 02h
  75323. CX = length of request buffer in bytes
  75324. DX = length of reply buffer in bytes
  75325. DS:SI -> request buffer (see #02378)
  75326. ES:DI -> reply buffer (see #02379)
  75327. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75328. SeeAlso: AH=4Eh,AH=F2h"Novell",AX=F257h/SF=01h,AX=F257h/SF=03h
  75329. Format of NetWare "Initialize Search" request packet:
  75330. Offset Size Description (Table 02378)
  75331. 00h BYTE 02h (subfunction "Initialize Search")
  75332. 01h BYTE name space (see #02387)
  75333. 02h BYTE reserved for future use
  75334. 03h NetWare Handle/Path structure (see #02376)
  75335. SeeAlso: #02379
  75336. Format of NetWare "Initialize Search" reply packet:
  75337. Offset Size Description (Table 02379)
  75338. 00h 9 BYTEs search sequence
  75339. BYTE volume number
  75340. DWORD directory number
  75341. DWORD current directory number
  75342. SeeAlso: #02378
  75343. --------N-21F257SF03-------------------------
  75344. INT 21 - Novell NetWare - SCAN NAMESPACE ENTRY INFO
  75345. AX = F257h subfn 03h
  75346. CX = length of request buffer in bytes
  75347. DX = length of reply buffer in bytes
  75348. DS:SI -> request buffer (see #02380)
  75349. ES:DI -> reply buffer (see #02381)
  75350. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75351. SeeAlso: AH=F2h"Novell",AX=F257h/SF=04h,AX=F257h/SF=05h
  75352. Format of NetWare "Search for File or Subdirectory" request packet:
  75353. Offset Size Description (Table 02380)
  75354. 00h BYTE 03h (subfunction "Search for File or Subdirectory")
  75355. ???
  75356. SeeAlso: #02381
  75357. Format of NetWare "Search for File or Subdirectory" reply packet:
  75358. Offset Size Description (Table 02381)
  75359. 00h ???
  75360. SeeAlso: #02380
  75361. --------N-21F257SF04-------------------------
  75362. INT 21 - Novell NetWare - RENAME OR MOVE FILE OR SUBDIRECTORY
  75363. AX = F257h subfn 04h
  75364. CX = length of request packet in bytes
  75365. DX = 0000h (no reply packet)
  75366. DS:SI -> request packet (see #02382)
  75367. ES:DI ignored
  75368. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75369. SeeAlso: AH=56h,AH=F2h"Novell",AX=F257h/SF=02h,AX=F257h/SF=03h,AX=F257h/SF=05h
  75370. Format of NetWare "Rename or Move File or Subdirectory" request packet:
  75371. Offset Size Description (Table 02382)
  75372. 00h BYTE 04h (subfunction "Rename or Move File or Subdirectory")
  75373. 01h BYTE name space (see #02387)
  75374. 02h BYTE rename flags
  75375. bit 0: rename successful
  75376. bit 1: compatibility mode
  75377. 03h WORD search attributes
  75378. 05h source NetWare Handle Path
  75379. destination NetWare Handle Path
  75380. --------N-21F257SF05-------------------------
  75381. INT 21 - Novell NetWare - SCAN FILE OR SUBDIRECTORY FOR TRUSTEES
  75382. AX = F257h subfn 05h
  75383. CX = length of request buffer in bytes
  75384. DX = length of reply buffer in bytes
  75385. DS:SI -> request buffer (see #02383)
  75386. ES:DI -> reply buffer (see #02384)
  75387. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75388. SeeAlso: AH=F2h"Novell",AX=F257h/SF=04h,AX=F257h/SF=06h
  75389. Format of NetWare "Scan File or Subdirectory for Trustees" request packet:
  75390. Offset Size Description (Table 02383)
  75391. 00h BYTE 05h (subfunction "Scan File or Subdirectory for Trustees")
  75392. 01h BYTE name space (see #02387)
  75393. 02h BYTE reserved for future use
  75394. 03h DWORD scan sequence (set to 00000000h before first call)
  75395. 07h NetWare Handle/Path structure (see #02376)
  75396. SeeAlso: #02384
  75397. Format of NetWare "Scan File or Subdirectory for Trustees" reply packet:
  75398. Offset Size Description (Table 02384)
  75399. 00h DWORD next scan sequence or FFFFFFFFh if no more
  75400. 04h WORD number of trustee object IDs returned
  75401. 06h trustee structure
  75402. SeeAlso: #02383
  75403. --------N-21F257SF06-------------------------
  75404. INT 21 - Novell NetWare v3+ - GET INFORMATION ABOUT FILE OR DIRECTORY
  75405. AX = F257h subfn 06h
  75406. CX = length of request buffer in bytes
  75407. DX = length of reply buffer in bytes
  75408. DS:SI -> request buffer (see #02385)
  75409. ES:DI -> reply buffer (see #02388)
  75410. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75411. reply buffer filled
  75412. SeeAlso: AH=F2h"Novell",AX=F257h/SF=02h,AX=F257h/SF=05h,AX=F257h/SF=07h
  75413. Format of NetWare "Get NS Entry Info" request buffer:
  75414. Offset Size Description (Table 02385)
  75415. 00h BYTE 06h (subfunction "Get NS Entry Info")
  75416. 01h BYTE name space (see #02387)
  75417. 02h BYTE destination name space
  75418. 03h WORD search attributes
  75419. 05h DWORD return information mask (see #02386)
  75420. 09h BYTE volume number
  75421. 0Ah DWORD directory base
  75422. 0Eh BYTE handle flag
  75423. 00h first byte of dir base is dir handle; ignore volume number
  75424. 01h dir base = unique ID, volume number set
  75425. FFh volume number and dir base ignored, volume part of path
  75426. 0Fh BYTE number of path components
  75427. 10h N BYTEs list of path components (each a counted string)
  75428. SeeAlso: #02388
  75429. Bitfields for return information mask:
  75430. Bit(s) Description (Table 02386)
  75431. 0 include filename
  75432. 1 data stream space allocated info
  75433. 2 attributes info
  75434. 3 data stream size info
  75435. 4 total space allocated for all data streams
  75436. 5 extended attributes info
  75437. 6 archive info
  75438. 7 modify info
  75439. 8 create info
  75440. 9 name space info
  75441. 10 directory info
  75442. 11 rights info
  75443. (Table 02387)
  75444. Values for NetWare name space:
  75445. 00h DOS
  75446. 01h Macintosh
  75447. 02h NFS
  75448. 03h FTAM
  75449. 04h OS/2
  75450. SeeAlso: #02385,#02393
  75451. Format of NetWare "Get NS Entry Info" reply buffer:
  75452. Offset Size Description (Table 02388)
  75453. 00h 72 BYTEs reserved
  75454. 48h DWORD creator's name space number
  75455. 4Ch 257 BYTEs reserved
  75456. SeeAlso: #02385
  75457. --------N-21F257SF07-------------------------
  75458. INT 21 - Novell NetWare - MODIFY FILE OR SUBDIRECTORY DOS INFORMATION
  75459. AX = F257h subfn 07h
  75460. CX = length of request packet in bytes
  75461. DX = 0000h (no reply packet)
  75462. DS:SI -> request packet (see #02389)
  75463. ES:DI ignored
  75464. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75465. SeeAlso: AH=F2h"Novell",AX=F257h/SF=04h,AX=F257h/SF=08h
  75466. Format of NetWare "Modify File or Subdirectory DOS Information" request packet:
  75467. Offset Size Description (Table 02389)
  75468. 00h BYTE 07h (subfunction "Modify File or Subdirectory DOS Information")
  75469. 01h BYTE name space (see #02387)
  75470. 02h BYTE reserved for future use
  75471. 03h WORD search attributes
  75472. 05h DWORD modify DOS mask
  75473. 09h Modify DOS information structure
  75474. --------N-21F257SF08-------------------------
  75475. INT 21 - Novell NetWare - DELETE FILE/DIRECTORY
  75476. AX = F257h subfn 08h
  75477. CX = length of request buffer in bytes
  75478. DX = length of reply buffer in bytes
  75479. DS:SI -> request buffer (see #02390)
  75480. ES:DI -> reply buffer (see #02391)
  75481. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75482. SeeAlso: AH=F2h"Novell",AX=F257h/SF=01h,AX=F257h/SF=07h
  75483. Format of NetWare "Delete File/Directory" request packet:
  75484. Offset Size Description (Table 02390)
  75485. 00h BYTE 08h (subfunction "Delete File/Directory")
  75486. ???
  75487. SeeAlso: #02391
  75488. Format of NetWare "Delete File/Directory" reply packet:
  75489. Offset Size Description (Table 02391)
  75490. 00h ???
  75491. SeeAlso: #02390
  75492. --------N-21F257SF09-------------------------
  75493. INT 21 - Novell NetWare - SET SHORT DIRECTORY HANDLE
  75494. AX = F257h subfn 09h
  75495. CX = length of request packet in bytes
  75496. DX = 0000h (no reply packet)
  75497. DS:SI -> request packet (see #02392)
  75498. ES:DI ignored
  75499. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75500. SeeAlso: AH=F2h"Novell",AX=F257h/SF=0Ch
  75501. Format of NetWare "Set Short Directory Handle" request packet:
  75502. Offset Size Description (Table 02392)
  75503. 00h BYTE 09h (subfunction "Set Short Directory Handle")
  75504. 01h BYTE name space (see #02387)
  75505. 02h BYTE data stream
  75506. 03h BYTE destination directory handle
  75507. 04h BYTE reserved for future use
  75508. 05h NetWare Handle/Path structure (see #02376)
  75509. --------N-21F257SF0A-------------------------
  75510. INT 21 - Novell NetWare v3+ - ADD TRUSTEE SET TO FILE OR SUBDIRECTORY
  75511. AX = F257h subfn 0Ah
  75512. CX = length of request packet in bytes
  75513. DX = 0000h (no reply packet)
  75514. DS:SI -> request packet (see #02393)
  75515. ES:DI ignored
  75516. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75517. reply buffer filled
  75518. SeeAlso: AX=F257h/SF=0Bh
  75519. Format of NetWare "Add Trustee Set" request packet:
  75520. Offset Size Description (Table 02393)
  75521. 00h BYTE 0Ah (subfunction "Add Trustee Set to File or Subdirectory")
  75522. 01h BYTE name space (see #02387)
  75523. 02h 2 BYTEs reserved
  75524. 04h WORD trustee rights (see #02141)
  75525. 06h WORD object ID count
  75526. 08h NetWare Handle/Path structure (see #02376)
  75527. 6 BYTEs trustee structure (see #02394)
  75528. Format of NetWare trustee structure:
  75529. Offset Size Description (Table 02394)
  75530. 00h DWORD object ID
  75531. 04h WORD trustee rights
  75532. SeeAlso: #02393
  75533. --------N-21F257SF0B-------------------------
  75534. INT 21 - Novell NetWare - DELETE TRUSTEE
  75535. AX = F257h subfn 0Bh
  75536. CX = length of request buffer in bytes
  75537. DX = length of reply buffer in bytes
  75538. DS:SI -> request buffer (see #02395)
  75539. ES:DI -> reply buffer (see #02396)
  75540. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75541. SeeAlso: AH=F2h"Novell",AX=F257h/SF=0Ah
  75542. Format of NetWare "Delete Trustee" request packet:
  75543. Offset Size Description (Table 02395)
  75544. 00h BYTE 0Bh (subfunction "Delete Trustee")
  75545. ???
  75546. SeeAlso: #02396
  75547. Format of NetWare "Delete Trustee" reply packet:
  75548. Offset Size Description (Table 02396)
  75549. 00h ???
  75550. SeeAlso: #02395
  75551. --------N-21F257SF0C-------------------------
  75552. INT 21 - Novell NetWare v2+ - ALLOCATE SHORT DIRECTORY HANDLE
  75553. AX = F257h subfn 0Ch
  75554. CX = length of request buffer in bytes
  75555. DX = length of reply buffer in bytes
  75556. DS:SI -> request buffer (see #02397)
  75557. ES:DI -> reply buffer (see #02398)
  75558. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75559. Note: unlike "Alloc Permanent Directory Handle", this function does not
  75560. automatically map a drive
  75561. SeeAlso: AH=F2h"Novell",AX=F223h/SF=04h,AX=F223h/SF=05h,AX=F223h/SF=09h
  75562. Format of NetWare "Allocate Short Directory Handle" request packet:
  75563. Offset Size Description (Table 02397)
  75564. 00h BYTE 0Ch (subfunction "Allocate Short Directory Handle")
  75565. 01h BYTE name space (see #02387)
  75566. 02h 2 BYTEs reserved for future use
  75567. 04h WORD allocation mode
  75568. bits 1-0: 00 permanent handle
  75569. 01 temporary handle
  75570. 10 special temporary handle
  75571. 11 reserved
  75572. 06h NetWare Handle/Path structure (see #02376)
  75573. SeeAlso: #02398
  75574. Format of NetWare "Allocate Short Directory Handle" reply packet:
  75575. Offset Size Description (Table 02398)
  75576. 00h BYTE new directory handle
  75577. 01h BYTE volume number
  75578. 02h DWORD reserved for future use
  75579. SeeAlso: #02397
  75580. --------N-21F257SF10-------------------------
  75581. INT 21 - Novell NetWare - SCAN SALVAGEABLE FILES
  75582. AX = F257h subfn 10h
  75583. CX = length of request buffer in bytes
  75584. DX = length of reply buffer in bytes
  75585. DS:SI -> request buffer (see #02399)
  75586. ES:DI -> reply buffer (see #02400)
  75587. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75588. SeeAlso: AH=F2h"Novell",AX=F216h/SF=1Bh,AX=F257h/SF=11h,AX=F257h/SF=12h
  75589. Format of NetWare "Scan Salvageable Files" request packet:
  75590. Offset Size Description (Table 02399)
  75591. 00h BYTE 10h (subfunction "Scan Salvageable Files")
  75592. 01h BYTE name space
  75593. 02h BYTE data stream
  75594. 03h DWORD return information mask
  75595. 07h DWORD last sequence (set to FFFFFFFFh before first call)
  75596. 0Bh NetWare Handle/Path structure (see #02376)
  75597. SeeAlso: #02400,#02123
  75598. Format of NetWare "Scan Salvageable Files" reply packet:
  75599. Offset Size Description (Table 02400)
  75600. 00h DWORD next sequence number
  75601. 04h WORD deletion time
  75602. 06h WORD deletion date
  75603. 08h DWORD ID of deletor
  75604. 0Ch DWORD volume number
  75605. 10h DWORD directory entry number
  75606. 14h NetWare Information Structure
  75607. SeeAlso: #02399,#02124
  75608. --------N-21F257SF11-------------------------
  75609. INT 21 - Novell NetWare - RECOVER SALVAGEABLE FILE
  75610. AX = F257h subfn 11h
  75611. CX = length of request packet in bytes
  75612. DX = 0000h (no reply packet)
  75613. DS:SI -> request packet (see #02401)
  75614. ES:DI ignored
  75615. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75616. SeeAlso: AH=F2h"Novell",AX=F216h/SF=1Ch,AX=F257h/SF=10h,AX=F257h/SF=12h
  75617. Format of NetWare "Recover Salvageable File" request packet:
  75618. Offset Size Description (Table 02401)
  75619. 00h BYTE 11h (subfunction "Recover Salvageable File")
  75620. 01h BYTE name space
  75621. 02h BYTE reserved for future use
  75622. 03h DWORD sequence number
  75623. 07h DWORD volume number
  75624. 0Bh DWORD scan directory base
  75625. 0Fh BYTE new file name length
  75626. 10h N BYTEs new file name
  75627. SeeAlso: #02402,#02125
  75628. --------N-21F257SF12-------------------------
  75629. INT 21 - Novell NetWare - PURGE SALVAGEABLE FILE
  75630. AX = F257h subfn 12h
  75631. CX = length of request packet in bytes
  75632. DX = 0000h (no reply packet)
  75633. DS:SI -> request packet (see #02402)
  75634. ES:DI ignored
  75635. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75636. SeeAlso: AH=F2h"Novell",AX=F216h/SF=1Dh,AX=F257h/SF=10h,AX=F257h/SF=11h
  75637. Format of NetWare "Purge Salvageable File" request packet:
  75638. Offset Size Description (Table 02402)
  75639. 00h BYTE 12h (subfunction "Purge Salvageable File")
  75640. 01h BYTE name space
  75641. 02h BYTE reserved
  75642. 03h DWORD sequence number
  75643. 07h DWORD volume number
  75644. 0Bh DWORD directory entry number
  75645. SeeAlso: #02401
  75646. --------N-21F257SF13-------------------------
  75647. INT 21 - Novell NetWare - GET NAMESPACE INFORMATION
  75648. AX = F257h subfn 13h
  75649. CX = length of request buffer in bytes
  75650. DX = length of reply buffer in bytes
  75651. DS:SI -> request buffer (see #02403)
  75652. ES:DI -> reply buffer (see #02404)
  75653. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75654. SeeAlso: AH=F2h"Novell",AX=F257h/SF=12h,AX=F257h/SF=15h
  75655. Format of NetWare "Get Namespace Information" request packet:
  75656. Offset Size Description (Table 02403)
  75657. 00h BYTE 13h (subfunction "Get Namespace Information")
  75658. 01h BYTE source name space (see #02387)
  75659. 02h BYTE destination name space
  75660. 03h BYTE reserved for future use
  75661. 04h BYTE volume number
  75662. 05h DWORD directory base
  75663. 09h DWORD namespace information mask
  75664. SeeAlso: #02404
  75665. Format of NetWare "Get Namespace Information" reply packet:
  75666. Offset Size Description (Table 02404)
  75667. 00h var namespace-specific information
  75668. SeeAlso: #02403
  75669. --------N-21F257SF15-------------------------
  75670. INT 21 - Novell NetWare - GET PATH STRING FROM SHORT DIRECTORY HANDLE
  75671. AX = F257h subfn 15h
  75672. CX = length of request buffer in bytes
  75673. DX = length of reply buffer in bytes
  75674. DS:SI -> request buffer (see #02405)
  75675. ES:DI -> reply buffer (see #02406)
  75676. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75677. SeeAlso: AH=F2h"Novell",AX=F257h/SF=13h,AX=F257h/SF=16h
  75678. Format of NetWare "Get Path String from Short Directory Handle" request packet:
  75679. Offset Size Description (Table 02405)
  75680. 00h BYTE 15h (subfunction "Get Path String from Short Directory Handle")
  75681. 01h BYTE name space (see #02387)
  75682. 02h BYTE short directory handle
  75683. SeeAlso: #02406
  75684. Format of NetWare "Get Path String from Short Directory Handle" reply packet:
  75685. Offset Size Description (Table 02406)
  75686. 00h BYTE length of path
  75687. 01h N BYTEs full directory path
  75688. SeeAlso: #02405
  75689. --------N-21F257SF16-------------------------
  75690. INT 21 - Novell NetWare - GENERATE DIRECTORY BASE AND VOLUME NUMBER
  75691. AX = F257h subfn 16h
  75692. CX = length of request buffer in bytes
  75693. DX = length of reply buffer in bytes
  75694. DS:SI -> request buffer (see #02407)
  75695. ES:DI -> reply buffer (see #02408)
  75696. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75697. SeeAlso: AH=F2h"Novell",AX=F257h/SF=15h,AX=F257h/SF=17h
  75698. Format of NetWare "Generate Directory Base and Volume Number" request packet:
  75699. Offset Size Description (Table 02407)
  75700. 00h BYTE 16h (subfunction "Generate Directory Base and Volume Number")
  75701. 01h BYTE name space (#02802)
  75702. 02h 3 BYTEs reserved for future use
  75703. 05h NetWare Handle/Path structure (see #02376)
  75704. SeeAlso: #02408
  75705. Format of NetWare "Generate Directory Base and Volume Number" reply packet:
  75706. Offset Size Description (Table 02408)
  75707. 00h DWORD namespace directory base
  75708. 04h DWORD DOS directory base
  75709. 08h BYTE volume number
  75710. SeeAlso: #02407
  75711. --------N-21F257SF17-------------------------
  75712. INT 21 - Novell NetWare - GET NAME SPACE INFORMATION FORMAT
  75713. AX = F257h subfn 17h
  75714. CX = length of request buffer in bytes
  75715. DX = length of reply buffer in bytes
  75716. DS:SI -> request buffer (see #02409)
  75717. ES:DI -> reply buffer (see #02410)
  75718. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75719. SeeAlso: AH=F2h"Novell",AX=F257h/SF=18h,AX=F257h/SF=19h
  75720. Format of NetWare "Get Name Space Information Format" request packet:
  75721. Offset Size Description (Table 02409)
  75722. 00h BYTE 17h (subfunction "Get Name Space Information Format")
  75723. 01h BYTE name space (see #02387)
  75724. 02h BYTE volume number
  75725. SeeAlso: #02410
  75726. Format of NetWare "Get Name Space Information Format" reply packet:
  75727. Offset Size Description (Table 02410)
  75728. 00h DWORD fixed bitmask
  75729. 04h DWORD variable bitmask
  75730. 08h DWORD huge bitmask
  75731. 0Ch WORD fixed bits defined
  75732. 0Eh WORD variable bits defined
  75733. 10h WORD huge bits defined
  75734. 12h 128 BYTEs field lengths
  75735. SeeAlso: #02409
  75736. --------N-21F257SF18-------------------------
  75737. INT 21 - Novell NetWare - GET NAME SPACES LOADED
  75738. AX = F257h subfn 18h
  75739. CX = length of request buffer in bytes
  75740. DX = length of reply buffer in bytes
  75741. DS:SI -> request buffer (see #02411)
  75742. ES:DI -> reply buffer (see #02412)
  75743. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75744. SeeAlso: AH=F2h"Novell",AX=F257h/SF=17h,AX=F257h/SF=19h,AX=F257h/SF=1Ah
  75745. SeeAlso: AX=F216h/SF=2Fh
  75746. Format of NetWare "Get Name Spaces Loaded" request packet:
  75747. Offset Size Description (Table 02411)
  75748. 00h BYTE 18h (subfunction "Get Name Spaces Loaded")
  75749. 01h 2 BYTEs reserved for future use
  75750. 03h BYTE volume number
  75751. SeeAlso: #02412
  75752. Format of NetWare "Get Name Spaces Loaded" reply packet:
  75753. Offset Size Description (Table 02412)
  75754. 00h WORD number of namespace elements
  75755. 02h WORD number of namespace elements loaded
  75756. 04h N BYTEs loaded name spaces (each byte contains number of one loaded
  75757. name space)
  75758. SeeAlso: #02411
  75759. --------N-21F257SF19-------------------------
  75760. INT 21 - Novell NetWare - WRITE NAME SPACE INFO
  75761. AX = F257h subfn 19h
  75762. CX = length of request packet in bytes
  75763. DX = 0000h (no reply packet)
  75764. DS:SI -> request packet (see #02413)
  75765. ES:DI ignored
  75766. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75767. SeeAlso: AH=F2h"Novell",AX=F257h/SF=17h,AX=F257h/SF=18h
  75768. Format of NetWare "Write Name Space Info" request packet:
  75769. Offset Size Description (Table 02413)
  75770. 00h BYTE 19h (subfunction "Write Name Space Info")
  75771. 01h BYTE source name space (see #02387)
  75772. 02h BYTE destination name space
  75773. 03h BYTE volume number
  75774. 04h DWORD directory entry number
  75775. 08h DWORD namespace information bitmask
  75776. 0Ch 512 BYTEs namespace-specific informatin
  75777. --------N-21F257SF1A-------------------------
  75778. INT 21 - Novell NetWare - READ EXTENDED NAME SPACE INFO
  75779. AX = F257h subfn 1Ah
  75780. CX = length of request buffer in bytes
  75781. DX = length of reply buffer in bytes
  75782. DS:SI -> request buffer (see #02414)
  75783. ES:DI -> reply buffer (see #02415)
  75784. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75785. SeeAlso: AH=F2h"Novell",AX=F257h/SF=18h,AX=F257h/SF=19h,AX=F257h/SF=1Bh
  75786. Format of NetWare "Read Extended Name Space Info" request packet:
  75787. Offset Size Description (Table 02414)
  75788. 00h BYTE 1Ah (subfunction "Read Extended Name Space Info")
  75789. 01h BYTE name space (see #02387)
  75790. 02h BYTE volume number
  75791. 03h DWORD directory base
  75792. 07h DWORD huge mask
  75793. 0Bh 16 BYTEs huge state information
  75794. SeeAlso: #02415
  75795. Format of NetWare "Read Extended Name Space Info" reply packet:
  75796. Offset Size Description (Table 02415)
  75797. 00h 16 BYTEs next huge state information
  75798. 10h DWORD huge data length
  75799. 14h N BYTEs huge data
  75800. SeeAlso: #02414
  75801. --------N-21F257SF1B-------------------------
  75802. INT 21 - Novell NetWare - WRITE EXTENDED NAME SPACE INFO
  75803. AX = F257h subfn 1Bh
  75804. CX = length of request buffer in bytes
  75805. DX = length of reply buffer in bytes
  75806. DS:SI -> request buffer (see #02416)
  75807. ES:DI -> reply buffer (see #02417)
  75808. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75809. SeeAlso: AH=F2h"Novell",AX=F257h/SF=17h,AX=F257h/SF=18h,AX=F257h/SF=1Ah
  75810. Format of NetWare "Write Extended Name Space Info" request packet:
  75811. Offset Size Description (Table 02416)
  75812. 00h BYTE 1Bh (subfunction "Write Extended Name Space Info")
  75813. 01h BYTE name space (see #02387)
  75814. 02h BYTE volume number
  75815. 03h DWORD directory entry number
  75816. 07h DWORD huge mask
  75817. 0Bh 16 BYTEs huge state information
  75818. 1Bh DWORD huge data length
  75819. 1Fh N BYTEs huge data
  75820. SeeAlso: #02417
  75821. Format of NetWare "Write Extended Name Space Info" request packet:
  75822. Offset Size Description (Table 02417)
  75823. 00h 16 BYTEs next huge state information
  75824. 10h DWORD huge data used
  75825. SeeAlso: #02416
  75826. --------N-21F257SF1C-------------------------
  75827. INT 21 - Novell NetWare - GET NS FULL PATH STRING
  75828. AX = F257h subfn 1Ch
  75829. CX = length of request buffer in bytes
  75830. DX = length of reply buffer in bytes
  75831. DS:SI -> request buffer (see #02418)
  75832. ES:DI -> reply buffer (see #02419)
  75833. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75834. Note: this call returns the path in reverse order (root directory last)
  75835. SeeAlso: AH=F2h"Novell",AX=F257h/SF=03h,AX=F257h/SF=15h
  75836. Format of NetWare "Get NS Full Path String" request packet:
  75837. Offset Size Description (Table 02418)
  75838. 00h BYTE 1Ch (subfunction "Get NS Full Path String")
  75839. 01h BYTE source name space
  75840. 02h BYTE destination name space
  75841. 03h 10 BYTEs path cookie (see #02420)
  75842. 04h NetWare Handle/Path structure (see #02376)
  75843. SeeAlso: #02419
  75844. Format of NetWare "Get NS Full Path String" reply packet:
  75845. Offset Size Description (Table 02419)
  75846. 00h 10 BYTEs next path cookie (see #02420)
  75847. 0Ah WORD size of path component(s) in packet
  75848. 0Ch WORD number of path components in packet
  75849. 0Eh path components
  75850. SeeAlso: #02418
  75851. Format of NetWare path cookie:
  75852. Offset Size Description (Table 02420)
  75853. 00h WORD flags
  75854. bit 0: last component is a filename
  75855. 02h DWORD cookie1
  75856. 06h DWORD cookie2
  75857. Note: "cookie1" and "cookie2" are to be set to FFFFFFFFh initially; if
  75858. "cookie2" is FFFFFFFFh on return, all path components have been
  75859. transferred
  75860. SeeAlso: #02418,#02419
  75861. --------N-21F257SF1D-------------------------
  75862. INT 21 - Novell NetWare - GET EFFECTIVE DIRECTORY RIGHTS
  75863. AX = F257h subfn 1Dh
  75864. CX = length of request buffer in bytes
  75865. DX = length of reply buffer in bytes
  75866. DS:SI -> request buffer (see #02421)
  75867. ES:DI -> reply buffer (see #02422)
  75868. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75869. SeeAlso: AX=F216h/SF=03h,AX=F257h/SF=06h,AX=F257h/SF=0Ch,AX=F257h/SF=15h
  75870. Format of NetWare "Get Effective Directory Rights" request packet:
  75871. Offset Size Description (Table 02421)
  75872. 00h BYTE 1Dh (subfunction "Get Effective Directory Rights")
  75873. 01h BYTE name space (see #02387)
  75874. 02h BYTE destination name space (see #02387)
  75875. 03h WORD search attributes
  75876. 05h DWORD return information mask
  75877. 09h NetWare Handle/Path structure (see #02376)
  75878. SeeAlso: #02422
  75879. Format of NetWare "Get Effective Directory Rights" reply packet:
  75880. Offset Size Description (Table 02422)
  75881. 00h WORD caller's effective rights
  75882. 02h NetWare Information Structure
  75883. SeeAlso: #02421
  75884. --------N-21F258SF01-------------------------
  75885. INT 21 - Novell NetWare v4+ - GET VOLUME AUDITING STATISTICS
  75886. AX = F258h subfn 01h
  75887. CX = length of request buffer in bytes
  75888. DX = length of reply buffer in bytes
  75889. DS:SI -> request buffer (see #02423)
  75890. ES:DI -> reply buffer (see #02424)
  75891. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75892. reply buffer filled
  75893. SeeAlso: AX=F268h/SF=C8h
  75894. Format of NetWare "Get Volume Auditing Statistics" request buffer:
  75895. Offset Size Description (Table 02423)
  75896. 00h BYTE 01h (function "Get Volume Auditing Statistics")
  75897. 01h DWORD volume
  75898. SeeAlso: #02424
  75899. Format of NetWare "Get Volume Auditing Statistics" reply buffer:
  75900. Offset Size Description (Table 02424)
  75901. 00h WORD auditing version (date)
  75902. 02h WORD audit file version (date)
  75903. 04h DWORD auditing enabled flag
  75904. 08h DWORD audit file's size
  75905. 0Ch DWORD audit configuration file's size
  75906. 10h DWORD maximum audit file size
  75907. 14h DWORD audit file size threshold
  75908. 18h DWORD number of audit records
  75909. 1Ch DWORD number of history records
  75910. SeeAlso: #02423,#02476
  75911. --------N-21F258SF02-------------------------
  75912. INT 21 - Novell NetWare - ADD AUDIT PROPERTY
  75913. AX = F258h subfn 02h
  75914. CX = length of request buffer in bytes
  75915. DX = length of reply buffer in bytes
  75916. DS:SI -> request buffer (see #02425)
  75917. ES:DI -> reply buffer (see #02426)
  75918. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75919. SeeAlso: AH=F2h"Novell",AX=F217h/SF=39h,AX=F258h/SF=06h,AX=F258h/SF=08h
  75920. Format of NetWare "Add Audit Property" request packet:
  75921. Offset Size Description (Table 02425)
  75922. 00h BYTE 02h (subfunction "Add Audit Property")
  75923. ???
  75924. SeeAlso: #02426
  75925. Format of NetWare "Add Audit Property" reply packet:
  75926. Offset Size Description (Table 02426)
  75927. 00h ???
  75928. SeeAlso: #02425
  75929. --------N-21F258SF03-------------------------
  75930. INT 21 - Novell NetWare - LOGIN AS VOLUME AUDITOR
  75931. AX = F258h subfn 03h
  75932. CX = length of request buffer in bytes
  75933. DX = length of reply buffer in bytes
  75934. DS:SI -> request buffer (see #02427)
  75935. ES:DI -> reply buffer (see #02428)
  75936. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75937. SeeAlso: AH=F2h"Novell",AX=F258h/SF=04h,AX=F258h/SF=0Dh
  75938. Format of NetWare "Login As Volume Auditor" request packet:
  75939. Offset Size Description (Table 02427)
  75940. 00h BYTE 03h (subfunction "Login As Volume Auditor")
  75941. ???
  75942. SeeAlso: #02428
  75943. Format of NetWare "Login As Volume Auditor" reply packet:
  75944. Offset Size Description (Table 02428)
  75945. 00h ???
  75946. SeeAlso: #02427
  75947. --------N-21F258SF04-------------------------
  75948. INT 21 - Novell NetWare - CHANGE AUDITOR PASSWORD
  75949. AX = F258h subfn 04h
  75950. CX = length of request buffer in bytes
  75951. DX = length of reply buffer in bytes
  75952. DS:SI -> request buffer (see #02429)
  75953. ES:DI -> reply buffer
  75954. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75955. SeeAlso: AH=F2h"Novell",AX=F258h/SF=03h
  75956. Format of NetWare "Change Auditor Password" request packet:
  75957. Offset Size Description (Table 02429)
  75958. 00h BYTE 04h (subfunction "Change Auditor Password")
  75959. ???
  75960. --------N-21F258SF05-------------------------
  75961. INT 21 - Novell NetWare - CHECK AUDIT ACCESS
  75962. AX = F258h subfn 05h
  75963. CX = length of request buffer in bytes
  75964. DX = length of reply buffer in bytes
  75965. DS:SI -> request buffer (see #02430)
  75966. ES:DI -> reply buffer
  75967. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75968. SeeAlso: AH=F2h"Novell",AX=F258h/SF=02h,AX=F258h/SF=08h
  75969. Format of NetWare "Check Audit Access" request packet:
  75970. Offset Size Description (Table 02430)
  75971. 00h BYTE 05h (subfunction "Check Audit Access")
  75972. ???
  75973. --------N-21F258SF06-------------------------
  75974. INT 21 - Novell NetWare - REMOVE AUDIT PROPERTY
  75975. AX = F258h subfn 06h
  75976. CX = length of request buffer in bytes
  75977. DX = length of reply buffer in bytes
  75978. DS:SI -> request buffer (see #02431)
  75979. ES:DI -> reply buffer
  75980. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75981. SeeAlso: AH=F2h"Novell",AX=F258h/SF=02h,AX=F258h/SF=05h
  75982. Format of NetWare "Remove Audit Property" request packet:
  75983. Offset Size Description (Table 02431)
  75984. 00h BYTE 06h (subfunction "Remove Audit Property")
  75985. ???
  75986. --------N-21F258SF07-------------------------
  75987. INT 21 - Novell NetWare - DISABLE AUDITING ON VOLUME
  75988. AX = F258h subfn 07h
  75989. CX = length of request buffer in bytes
  75990. DX = length of reply buffer in bytes
  75991. DS:SI -> request buffer (see #02432)
  75992. ES:DI -> reply buffer
  75993. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  75994. SeeAlso: AH=F2h"Novell",AX=F258h/SF=08h,AX=F258h/SF=09h
  75995. Format of NetWare "Disable Auditing on Volume" request packet:
  75996. Offset Size Description (Table 02432)
  75997. 00h BYTE 07h (subfunction "Disable Auditing on Volume")
  75998. ???
  75999. --------N-21F258SF08-------------------------
  76000. INT 21 - Novell NetWare - ENABLE AUDITING ON VOLUME
  76001. AX = F258h subfn 08h
  76002. CX = length of request buffer in bytes
  76003. DX = length of reply buffer in bytes
  76004. DS:SI -> request buffer (see #02433)
  76005. ES:DI -> reply buffer
  76006. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76007. SeeAlso: AH=F2h"Novell",AX=F258h/SF=07h,AX=F258h/SF=09h
  76008. Format of NetWare "Enable Auditing on Volume" request packet:
  76009. Offset Size Description (Table 02433)
  76010. 00h BYTE 08h (subfunction "Enable Auditing on Volume")
  76011. ???
  76012. --------N-21F258SF09-------------------------
  76013. INT 21 - Novell NetWare - IS USER AUDITED?
  76014. AX = F258h subfn 09h
  76015. CX = length of request buffer in bytes
  76016. DX = length of reply buffer in bytes
  76017. DS:SI -> request buffer (see #02434)
  76018. ES:DI -> reply buffer
  76019. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76020. SeeAlso: AH=F2h"Novell",AX=F258h/SF=07h,AX=F258h/SF=08h
  76021. Format of NetWare "Is User Audited?" request packet:
  76022. Offset Size Description (Table 02434)
  76023. 00h BYTE 09h (subfunction "Is User Audited?")
  76024. ???
  76025. --------N-21F258SF0A-------------------------
  76026. INT 21 - Novell NetWare - READ AUDITING BITMAP
  76027. AX = F258h subfn 0Ah
  76028. CX = length of request buffer in bytes
  76029. DX = length of reply buffer in bytes
  76030. DS:SI -> request buffer (see #02435)
  76031. ES:DI -> reply buffer (see #02436)
  76032. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76033. SeeAlso: AH=F2h"Novell",AX=F258h/SF=0Bh,AX=F258h/SF=10h
  76034. Format of NetWare "Read Auditing Bitmap" request packet:
  76035. Offset Size Description (Table 02435)
  76036. 00h BYTE 0Ah (subfunction "Read Auditing Bitmap")
  76037. ???
  76038. SeeAlso: #02436,#02437
  76039. Format of NetWare "Read Auditing Bitmap" reply packet:
  76040. Offset Size Description (Table 02436)
  76041. 00h ???
  76042. SeeAlso: #02435,#02438
  76043. --------N-21F258SF0B-------------------------
  76044. INT 21 - Novell NetWare - READ AUDIT CONFIG HEADER
  76045. AX = F258h subfn 0Bh
  76046. CX = length of request buffer in bytes
  76047. DX = length of reply buffer in bytes
  76048. DS:SI -> request buffer (see #02437)
  76049. ES:DI -> reply buffer (see #02438)
  76050. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76051. SeeAlso: AH=F2h"Novell",AX=F258h/SF=0Ah,AX=F258h/SF=11h
  76052. Format of NetWare "Read Audit Configuration Header" request packet:
  76053. Offset Size Description (Table 02437)
  76054. 00h BYTE 0Bh (subfunction "Read Audit Configuration Header")
  76055. ???
  76056. SeeAlso: #02438,#02435
  76057. Format of NetWare "Read Audit Configuration Header" reply packet:
  76058. Offset Size Description (Table 02438)
  76059. 00h ???
  76060. SeeAlso: #02437,#02436
  76061. --------N-21F258SF0D-------------------------
  76062. INT 21 - Novell NetWare - LOGOUT AS VOLUME AUDITOR
  76063. AX = F258h subfn 0Dh
  76064. CX = length of request buffer in bytes
  76065. DX = length of reply buffer in bytes
  76066. DS:SI -> request buffer (see #02439)
  76067. ES:DI -> reply buffer
  76068. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76069. SeeAlso: AH=F2h"Novell",AX=F258h/SF=03h
  76070. Format of NetWare "Logout as Volume Auditor" request packet:
  76071. Offset Size Description (Table 02439)
  76072. 00h BYTE 0Dh (subfunction "Logout as Volume Auditor")
  76073. ???
  76074. --------N-21F258SF0E-------------------------
  76075. INT 21 - Novell NetWare - RESET AUDITING FILE
  76076. AX = F258h subfn 0Eh
  76077. CX = length of request buffer in bytes
  76078. DX = length of reply buffer in bytes
  76079. DS:SI -> request buffer (see #02440)
  76080. ES:DI -> reply buffer
  76081. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76082. SeeAlso: AH=F2h"Novell",AX=F258h/SF=0Ah,AX=F258h/SF=0Fh
  76083. Format of NetWare "Reset Auditing File" request packet:
  76084. Offset Size Description (Table 02440)
  76085. 00h BYTE 0Eh (subfunction "Reset Auditing File")
  76086. ???
  76087. --------N-21F258SF0F-------------------------
  76088. INT 21 - Novell NetWare - RESET AUDIT HISTORY FILE
  76089. AX = F258h subfn 0Fh
  76090. CX = length of request buffer in bytes
  76091. DX = length of reply buffer in bytes
  76092. DS:SI -> request buffer (see #02441)
  76093. ES:DI -> reply buffer
  76094. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76095. SeeAlso: AH=F2h"Novell",AX=F258h/SF=0Eh
  76096. Format of NetWare "Reset Audit History File" request packet:
  76097. Offset Size Description (Table 02441)
  76098. 00h BYTE 0Fh (subfunction "Reset Audit History File")
  76099. ???
  76100. --------N-21F258SF10-------------------------
  76101. INT 21 - Novell NetWare - WRITE AUDITING BITMAP
  76102. AX = F258h subfn 10h
  76103. CX = length of request buffer in bytes
  76104. DX = length of reply buffer in bytes
  76105. DS:SI -> request buffer (see #02442)
  76106. ES:DI -> reply buffer
  76107. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76108. SeeAlso: AH=F2h"Novell",AX=F258h/SF=0Ah,AX=F258h/SF=11h
  76109. Format of NetWare "Write Auditing Bitmap" request packet:
  76110. Offset Size Description (Table 02442)
  76111. 00h BYTE 10h (subfunction "Write Auditing Bitmap")
  76112. ???
  76113. SeeAlso: #02443
  76114. --------N-21F258SF11-------------------------
  76115. INT 21 - Novell NetWare - WRITE AUDIT CONFIG HEADER
  76116. AX = F258h subfn 11h
  76117. CX = length of request buffer in bytes
  76118. DX = length of reply buffer in bytes
  76119. DS:SI -> request buffer (see #02443)
  76120. ES:DI -> reply buffer
  76121. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76122. SeeAlso: AH=F2h"Novell",AX=F258h/SF=0Bh,AX=F258h/SF=10h
  76123. Format of NetWare "Write Audit Configuration Header" request packet:
  76124. Offset Size Description (Table 02443)
  76125. 00h BYTE 11h (subfunction "Write Audit Configuration Header")
  76126. ???
  76127. SeeAlso: #02442
  76128. --------N-21F258SF13-------------------------
  76129. INT 21 - Novell NetWare - GET AUDITING FLAGS
  76130. AX = F258h subfn 13h
  76131. CX = length of request buffer in bytes
  76132. DX = length of reply buffer in bytes
  76133. DS:SI -> request buffer (see #02444)
  76134. ES:DI -> reply buffer (see #02445)
  76135. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76136. SeeAlso: AH=F2h"Novell",AX=F258h/SF=05h
  76137. Format of NetWare "Get Auditing Flags" request packet:
  76138. Offset Size Description (Table 02444)
  76139. 00h BYTE 13h (subfunction "Get Auditing Flags")
  76140. ???
  76141. SeeAlso: #02445
  76142. Format of NetWare "Get Auditing Flags" reply packet:
  76143. Offset Size Description (Table 02445)
  76144. 00h ???
  76145. SeeAlso: #02444
  76146. --------N-21F258SF14-------------------------
  76147. INT 21 - Novell NetWare - CLOSE OLD AUDITING FILE
  76148. AX = F258h subfn 14h
  76149. CX = length of request buffer in bytes
  76150. DX = length of reply buffer in bytes
  76151. DS:SI -> request buffer (see #02446)
  76152. ES:DI -> reply buffer
  76153. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76154. SeeAlso: AH=F2h"Novell",AX=F258h/SF=15h
  76155. Format of NetWare "Close Old Auditing File" request packet:
  76156. Offset Size Description (Table 02446)
  76157. 00h BYTE 14h (subfunction "Close Old Auditing File")
  76158. ???
  76159. SeeAlso: #02447
  76160. --------N-21F258SF15-------------------------
  76161. INT 21 - Novell NetWare - DELETE OLD AUDITING FILE
  76162. AX = F258h subfn 15h
  76163. CX = length of request buffer in bytes
  76164. DX = length of reply buffer in bytes
  76165. DS:SI -> request buffer (see #02447)
  76166. ES:DI -> reply buffer
  76167. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76168. SeeAlso: AH=F2h"Novell",AX=F258h/SF=14h
  76169. Format of NetWare "Delete Old Auditing File" request packet:
  76170. Offset Size Description (Table 02447)
  76171. 00h BYTE 15h (subfunction "Delete Old Auditing File")
  76172. ???
  76173. SeeAlso: #02446
  76174. --------N-21F258SF16-------------------------
  76175. INT 21 - Novell NetWare - CHECK AUDIT LEVEL TWO ACCESS
  76176. AX = F258h subfn 16h
  76177. CX = length of request buffer in bytes
  76178. DX = length of reply buffer in bytes
  76179. DS:SI -> request buffer (see #02448)
  76180. ES:DI -> reply buffer
  76181. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76182. SeeAlso: AH=F2h"Novell",AX=F258h/SF=05h
  76183. Format of NetWare "Check Audit Level Two Access" request packet:
  76184. Offset Size Description (Table 02448)
  76185. 00h BYTE 16h (subfunction "Check Audit Level Two Access")
  76186. ???
  76187. --------N-21F25ASF01-------------------------
  76188. INT 21 - Novell NetWare - GET DATA MIGRATION INFO
  76189. AX = F25Ah subfn 01h
  76190. CX = length of request buffer in bytes
  76191. DX = length of reply buffer in bytes
  76192. DS:SI -> request buffer (see #02449)
  76193. ES:DI -> reply buffer (see #02450)
  76194. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76195. SeeAlso: AH=F2h"Novell",AX=F25Ah/SF=80h,AX=F25Ah/SF=86h
  76196. Format of NetWare "Get Data Migration Information" request packet:
  76197. Offset Size Description (Table 02449)
  76198. 00h WORD length of following data
  76199. 02h BYTE 01h (subfunction "Get Data Migration Information")
  76200. SeeAlso: #02450
  76201. Format of NetWare "Get Data Migration Information" reply packet:
  76202. Offset Size Description (Table 02450)
  76203. 00h ???
  76204. SeeAlso: #02449
  76205. --------N-21F25ASF80-------------------------
  76206. INT 21 - Novell NetWare - MOVE FILE DATA TO DATA MIGRATION
  76207. AX = F25Ah subfn 80h
  76208. CX = length of request buffer in bytes
  76209. DX = length of reply buffer in bytes
  76210. DS:SI -> request buffer (see #02451)
  76211. ES:DI -> reply buffer (see #02452)
  76212. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76213. SeeAlso: AH=F2h"Novell",AX=F25Ah/SF=82h,AX=F25Ah/SF=85h
  76214. Format of NetWare "Move File Data to Data Migration" request packet:
  76215. Offset Size Description (Table 02451)
  76216. 00h WORD length of following data
  76217. 02h BYTE 80h (subfunction "Move File Data to Data Migration")
  76218. 03h DWORD volume number
  76219. 07h DWORD directory entry number
  76220. 0Bh DWORD name space (see #02387)
  76221. 0Fh DWORD support module ID
  76222. 13h DWORD save key flag
  76223. 00000010h to save key when file is demigrated
  76224. SeeAlso: #02452
  76225. Format of NetWare "Move File Data to Data Migration" reply packet:
  76226. Offset Size Description (Table 02452)
  76227. 00h DWORD volume-unique ID
  76228. SeeAlso: #02451
  76229. --------N-21F25ASF81-------------------------
  76230. INT 21 - Novell NetWare - DATA MIGRATION FILE INFORMATION
  76231. AX = F25Ah subfn 81h
  76232. CX = length of request buffer in bytes
  76233. DX = length of reply buffer in bytes
  76234. DS:SI -> request buffer (see #02453)
  76235. ES:DI -> reply buffer (see #02454)
  76236. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76237. SeeAlso: AH=F2h"Novell",AX=F25Ah/SF=80h,AX=F25Ah/SF=82h,AX=F25Ah/SF=83h
  76238. Format of NetWare "Data Migration File Information" request packet:
  76239. Offset Size Description (Table 02453)
  76240. 00h WORD length of following data
  76241. 02h BYTE 81h (subfunction "Data Migration File Information")
  76242. 03h DWORD volume number
  76243. 07h DWORD directory entry number
  76244. 0Bh DWORD name space (see #02387)
  76245. SeeAlso: #02454
  76246. Format of NetWare "Data Migration File Information" reply packet:
  76247. Offset Size Description (Table 02454)
  76248. 00h DWORD support module ID
  76249. 04h DWORD estimate restoration time
  76250. 08h DWORD bitmask of supported data streams
  76251. SeeAlso: #02453
  76252. --------N-21F25ASF82-------------------------
  76253. INT 21 - Novell NetWare - VOLUME DATA MIGRATION STATUS
  76254. AX = F25Ah subfn 82h
  76255. CX = length of request buffer in bytes
  76256. DX = length of reply buffer in bytes
  76257. DS:SI -> request buffer (see #02455)
  76258. ES:DI -> reply buffer (see #02456)
  76259. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76260. SeeAlso: AH=F2h"Novell",AX=F25Ah/SF=01h,AX=F25Ah/SF=83h,AX=F25Ah/SF=84h
  76261. Format of NetWare "Volume Data Migration Status" request packet:
  76262. Offset Size Description (Table 02455)
  76263. 00h WORD length of following data
  76264. 02h BYTE 82h (subfunction "Volume Data Migration Status")
  76265. 03h DWORD volume number
  76266. 07h DWORD support module ID
  76267. SeeAlso: #02456
  76268. Format of NetWare "Volume Data Migration Status" request packet:
  76269. Offset Size Description (Table 02456)
  76270. 00h DWORD number of migrated files
  76271. 04h DWORD total size required to restore all migrated files
  76272. 08h DWORD total space used on migration device
  76273. 0Ch DWORD limbo space (demigrated files with save-key flag set)
  76274. 10h DWORD total space including limbo space
  76275. 14h DWORD number of files in limbo
  76276. SeeAlso: #02455
  76277. --------N-21F25ASF83-------------------------
  76278. INT 21 - Novell NetWare - GET MIGRATION OR STATUS INFORMATION
  76279. AX = F25Ah subfn 83h
  76280. CX = length of request buffer in bytes
  76281. DX = length of reply buffer in bytes
  76282. DS:SI -> request buffer (see #02457)
  76283. ES:DI -> reply buffer (see #02458)
  76284. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76285. SeeAlso: AH=F2h"Novell",AX=F25Ah/SF=82h,AX=F25Ah/SF=84h,AX=F25Ah/SF=85h
  76286. Format of NetWare "Get Migration or Status Information" request packet:
  76287. Offset Size Description (Table 02457)
  76288. 00h WORD length of following data
  76289. 02h BYTE 83h (subfunction "Get Migration or Status Information")
  76290. SeeAlso: #02458
  76291. Format of NetWare "Get Migration or Status Information" request packet:
  76292. Offset Size Description (Table 02458)
  76293. 00h DWORD presence flag
  76294. FFFFFFFFh if Data Migration NLM is loaded and running
  76295. 04h DWORD major version
  76296. 08h DWORD minor version
  76297. 0Ch DWORD flag: has support module registered with Data Migrator?
  76298. SeeAlso: #02457
  76299. --------N-21F25ASF84-------------------------
  76300. INT 21 - Novell NetWare - DATA MIGRATION SUPPORT MODULE INFORMATION
  76301. AX = F25Ah subfn 84h
  76302. CX = length of request buffer in bytes
  76303. DX = length of reply buffer in bytes
  76304. DS:SI -> request buffer (see #02459)
  76305. ES:DI -> reply buffer (see #02460)
  76306. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76307. SeeAlso: AH=F2h"Novell",AX=F25Ah/SF=82h,AX=F25Ah/SF=83h,AX=F25Ah/SF=86h
  76308. Format of NetWare "Data Migration Support Module Information" request packet:
  76309. Offset Size Description (Table 02459)
  76310. 00h WORD length of following data
  76311. 02h BYTE 84h (subfunction "Data Migration Support Module Information")
  76312. 03h DWORD information level
  76313. 0000h get data migration NLM info
  76314. 0001h get loaded support modules
  76315. 0002h get name of support module
  76316. 07h DWORD support module ID
  76317. SeeAlso: #02460
  76318. Format of NetWare "Data Migration Support Module Information" request packet:
  76319. Offset Size Description (Table 02460)
  76320. ---information level 0---
  76321. 00h DWORD read/write access status
  76322. 04h DWORD length of Specific Device Information block (max 384)
  76323. 08h DWORD space available on support module
  76324. 0Ch DWORD amount of space used
  76325. 10h BYTE length of support module's name
  76326. 11h 14 BYTEs support module name
  76327. 1Fh 128 BYTEs support module information
  76328. ---information level 1---
  76329. 00h DWORD number of support modules
  76330. 04h 32 BYTEs support module IDs
  76331. ---information level 2---
  76332. 00h BYTE length of module name
  76333. 01h 32 BYTEs support module name
  76334. SeeAlso: #02459
  76335. --------N-21F25ASF85-------------------------
  76336. INT 21 - Novell NetWare - MOVE FILE DATA FROM DATA MIGRATION
  76337. AX = F25Ah subfn 85h
  76338. CX = length of request packet in bytes
  76339. DX = 0000h (no reply packet)
  76340. DS:SI -> request packet (see #02461)
  76341. ES:DI ignored
  76342. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76343. SeeAlso: AH=F2h"Novell",AX=F25Ah/SF=80h,AX=F25Ah/SF=83h,AX=F25Ah/SF=86h
  76344. Format of NetWare "Move File Data From Data Migration" request packet:
  76345. Offset Size Description (Table 02461)
  76346. 00h WORD length of following data
  76347. 02h BYTE 85h (subfunction "Move File Data from Data Migration")
  76348. 03h DWORD volume number
  76349. 07h DWORD directory entry number
  76350. 0Bh DWORD name space (see #02387)
  76351. SeeAlso: #02452
  76352. --------N-21F25ASF86-------------------------
  76353. INT 21 - Novell NetWare - GET OR SET DEFAULT SUPPORT MODULE
  76354. AX = F25Ah subfn 86h
  76355. CX = length of request buffer in bytes
  76356. DX = length of reply buffer in bytes
  76357. DS:SI -> request buffer (see #02462)
  76358. ES:DI -> reply buffer (see #02463)
  76359. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76360. SeeAlso: AH=F2h"Novell",AX=F25Ah/SF=01h,AX=F25Ah/SF=80h,AX=F25Ah/SF=84h
  76361. Format of NetWare "Get or Set Default Support Module" request packet:
  76362. Offset Size Description (Table 02462)
  76363. 00h WORD length of following data
  76364. 02h BYTE 86h (subfunction "Get or Set Default Support Module")
  76365. 03h DWORD direction
  76366. 00h get default support module
  76367. 01h set default support module
  76368. 07h DWORD new module ID if setting
  76369. SeeAlso: #02463
  76370. Format of NetWare "Get or Set Default Support Module" request packet:
  76371. Offset Size Description (Table 02463)
  76372. 00h DWORD support module ID
  76373. SeeAlso: #02462
  76374. --------N-21F268SF01-------------------------
  76375. INT 21 - Novell NetWare v4+ - GET TREE NAME
  76376. AX = F268h subfn 01h
  76377. CX = length of request buffer in bytes (0001h)
  76378. DX = length of reply buffer in bytes (0064h)
  76379. DS:SI -> request buffer (see #02464)
  76380. ES:DI -> reply buffer (see #02465)
  76381. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76382. reply buffer filled
  76383. SeeAlso: AX=F268h/SF=04h
  76384. Format of NetWare "Get Tree Name" request buffer:
  76385. Offset Size Description (Table 02464)
  76386. 00h BYTE 01h (subfunction "Get Tree Name")
  76387. Format of NetWare "Get Tree Name" reply buffer:
  76388. Offset Size Description (Table 02465)
  76389. 00h DWORD Ping version
  76390. 04h DWORD length of tree name
  76391. 08h 32 BYTEs tree name, padded with underscores ('_')
  76392. 28h 60 BYTEs ???
  76393. --------N-21F268SF04-------------------------
  76394. INT 21 - Novell NetWare v4+ - GET BINDERY CONTEXT
  76395. AX = F268h subfn 04h
  76396. CX = length of request buffer in bytes (0001h)
  76397. DX = length of reply buffer in bytes
  76398. DS:SI -> request buffer (see #02466)
  76399. ES:DI -> reply buffer (see #02467)
  76400. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76401. reply buffer filled
  76402. SeeAlso: AX=F268h/SF=01h,AX=F268h/SF=C8h
  76403. Format of NetWare "Get Bindery Context" request buffer:
  76404. Offset Size Description (Table 02466)
  76405. 00h BYTE 04h (subfunction "Get Bindery Context")
  76406. Format of NetWare "Get Bindery Context" reply buffer:
  76407. Offset Size Description (Table 02467)
  76408. 00h DWORD length (max 200)
  76409. 04h N WORDs Unicode bindery context string
  76410. --------N-21F268SF05-------------------------
  76411. INT 21 - Novell NetWare v4+ - MONITOR NDS CONNECTION
  76412. AX = F268h subfn 05h
  76413. CX = length of request buffer in bytes (0001h)
  76414. DX = length of reply buffer in bytes
  76415. DS:SI -> request buffer (see #02468)
  76416. ES:DI -> reply buffer (unused???)
  76417. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76418. Format of NetWare "Monitor NDS Connection" request buffer:
  76419. Offset Size Description (Table 02468)
  76420. 00h BYTE 05h (subfunction "Monitor NDS Connection"
  76421. --------N-21F268SF16-------------------------
  76422. INT 21 - Novell NetWare v4+ - NDS LIST PARTITIONS
  76423. AX = F268h subfn 16h
  76424. CX = length of request buffer in bytes
  76425. DX = length of reply buffer in bytes
  76426. DS:SI -> request buffer (see #02469)
  76427. ES:DI -> reply buffer (see #02470)
  76428. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76429. reply buffer filled
  76430. Note: the length specified in CX must be exactly 13 bytes more than the
  76431. length field at offset 09h in the request buffer for this function
  76432. to be successful
  76433. SeeAlso: AX=F268h/SF=35h
  76434. Format of NetWare "NDS List Partitions" request buffer:
  76435. Offset Size Description (Table 02469)
  76436. 00h BYTE 02h
  76437. 01h DWORD ??? (FFFFFFFFh)
  76438. 05h DWORD ??? (00000202h)
  76439. 09h DWORD length (00000018h)
  76440. 0Dh DWORD ??? (00000000h)
  76441. 11h DWORD function (00000016h) (subfunction "NDS List Partitions")
  76442. 15h DWORD ??? (00000400h)
  76443. 19h DWORD API version (00000000h)
  76444. 1Dh DWORD ??? (00000000h)
  76445. 21h DWORD iteration (FFFFFFFFh)
  76446. SeeAlso: #02470,#02471
  76447. Format of NetWare "NDS List Partitions" reply buffer:
  76448. Offset Size Description (Table 02470)
  76449. 00h DWORD length
  76450. 04h DWORD ???
  76451. 08h DWORD return code
  76452. 0Ch DWORD iteration
  76453. 10h 1000 BYTEs returned data
  76454. SeeAlso: #02469
  76455. --------N-21F268SF35-------------------------
  76456. INT 21 - Novell NetWare v4+ - NDS GET SERVER NAME AND ADDRESS
  76457. AX = F268h subfn 35h
  76458. CX = length of request buffer in bytes
  76459. DX = length of reply buffer in bytes
  76460. DS:SI -> request buffer (see #02471)
  76461. ES:DI -> reply buffer (see #02472)
  76462. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76463. reply buffer filled
  76464. Note: the length specified in CX must be exactly 13 bytes more than the
  76465. length field at offset 09h in the request buffer for this function
  76466. to be successful
  76467. SeeAlso: AX=F268h/SF=16h
  76468. Format of NetWare "NDS Get Server Name and Address" request buffer:
  76469. Offset Size Description (Table 02471)
  76470. 00h BYTE 02h
  76471. 01h DWORD ??? (FFFFFFFFh)
  76472. 05h DWORD ??? (00000202h)
  76473. 09h DWORD length (0000000Ch)
  76474. 0Dh DWORD ??? (00000000h)
  76475. 11h DWORD function (00000035h) (subfunc "NDS Get Server Name and Addr")
  76476. 15h DWORD ??? (00000400h)
  76477. SeeAlso: #02469,#02472
  76478. Format of NetWare "NDS Get Server Name and Address" reply buffer:
  76479. Offset Size Description (Table 02472)
  76480. 00h DWORD length
  76481. 04h DWORD ???
  76482. 08h DWORD return code
  76483. 0Ch DWORD length of name
  76484. 10h N WORDs Unicode server name string
  76485. var padding
  76486. DWORD ??? (00000001h)
  76487. DWORD ??? (00000000h)
  76488. DWORD ??? (0000000Ch)
  76489. 12 BYTEs server's IPX address
  76490. SeeAlso: #02471
  76491. --------N-21F268SF3D-------------------------
  76492. INT 21 - Novell NetWare v4+ - NDS LOGOUT
  76493. AX = F268h subfn 3Dh
  76494. CX = length of request buffer in bytes
  76495. DX = length of reply buffer in bytes
  76496. DS:SI -> request buffer (see #02473)
  76497. ES:DI -> reply buffer (see #02474)
  76498. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76499. reply buffer filled
  76500. SeeAlso: AX=F217h/SF=14h
  76501. Format of NetWare "NDS Logout" request buffer:
  76502. Offset Size Description (Table 02473)
  76503. 00h BYTE 02h
  76504. 01h DWORD ??? (FFFFFFFFh)
  76505. 05h DWORD ??? (00000202h)
  76506. 09h DWORD length (0000000Ch)
  76507. 0Dh DWORD ??? (00000000h)
  76508. 11h DWORD function (0000003Dh) (subfunction "NDS Logout")
  76509. 15h DWORD ??? (00000000h)
  76510. SeeAlso: #02474
  76511. Format of NetWare "NDS Logout" reply buffer:
  76512. Offset Size Description (Table 02474)
  76513. 00h DWORD length
  76514. 04h DWORD ???
  76515. 08h DWORD return code
  76516. SeeAlso: #02473
  76517. --------N-21F268SFC8-------------------------
  76518. INT 21 - Novell NetWare v4+ - GET DS AUDITING STATISTICS
  76519. AX = F268h subfn C8h
  76520. CX = length of request buffer in bytes (0001h)
  76521. DX = length of reply buffer in bytes (0020h)
  76522. DS:SI -> request buffer (see #02475)
  76523. ES:DI -> reply buffer (see #02476)
  76524. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76525. reply buffer filled
  76526. SeeAlso: AX=F258h/SF=01h,AX=F268h/SF=01h,AX=F268h/SF=04h
  76527. Format of NetWare "Get DS Auditing Statistics" request buffer:
  76528. Offset Size Description (Table 02475)
  76529. 00h BYTE C8h (subfunction "Get DS Auditing Statistics")
  76530. SeeAlso: #02476
  76531. Format of NetWare "Get DS Auditing Statistics" reply buffer:
  76532. Offset Size Description (Table 02476)
  76533. 00h WORD auditing version (date)
  76534. 02h WORD audit file version (date)
  76535. 04h DWORD auditing enabled flag
  76536. 08h DWORD audit file's size
  76537. 0Ch DWORD audit configuration file's size
  76538. 10h DWORD maximum audit file size
  76539. 14h DWORD audit file size threshold
  76540. 18h DWORD number of audit records
  76541. 1Ch DWORD number of history records
  76542. SeeAlso: #02424,#02475
  76543. --------N-21F269-----------------------------
  76544. INT 21 - Novell NetWare - LOG FILE
  76545. AX = F269h
  76546. CX = length of request packet in bytes
  76547. DX = 0000h (no reply packet)
  76548. DS:SI -> request packet (see #02477)
  76549. ES:DI ignored
  76550. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76551. SeeAlso: AH=F2h"Novell",AX=F203h,AX=F26Ah,AH=EBh"NetWare"
  76552. Format of NetWare "Log File" request packet:
  76553. Offset Size Description (Table 02477)
  76554. 00h BYTE directory handle
  76555. 01h BYTE lock flag
  76556. 00h log only
  76557. 01h log and lock
  76558. 02h WORD lock timeout in clock ticks (0000h = don't wait)
  76559. 04h BYTE length of filename
  76560. 05h N BYTEs filename
  76561. --------N-21F26A-----------------------------
  76562. INT 21 - Novell NetWare - LOCK FILE SET
  76563. AX = F26Ah
  76564. CX = length of request packet in bytes
  76565. DX = 0000h (no reply packet)
  76566. DS:SI -> request packet (see #02478)
  76567. ES:DI ignored
  76568. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76569. SeeAlso: AH=F2h"Novell",AX=F204h,AX=F269h,AH=CBh"NetWare"
  76570. Format of NetWare "Lock File Set" request packet:
  76571. Offset Size Description (Table 02478)
  76572. 00h WORD lock timeout in clock ticks (0000h = don't wait)
  76573. --------N-21F26C-----------------------------
  76574. INT 21 - Novell NetWare - LOCK LOGICAL RECORD SET
  76575. AX = F26Ch
  76576. CX = length of request packet in bytes
  76577. DX = 0000h (no reply packet)
  76578. DS:SI -> request packet (see #02479)
  76579. ES:DI ignored
  76580. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76581. SeeAlso: AH=F2h"Novell",AX=F20Ah,AX=F26Ah,AH=CBh"NetWare"
  76582. Format of NetWare "Lock Logical Record Set" request packet:
  76583. Offset Size Description (Table 02479)
  76584. 00h BYTE lock flag
  76585. 00h shareable lock
  76586. 01h exclusive lock
  76587. 01h WORD lock timeout in clock ticks (0000h = don't wait)
  76588. --------N-21F26E-----------------------------
  76589. INT 21 - Novell NetWare - LOCK PHYSICAL RECORD SET
  76590. AX = F26Eh
  76591. CX = length of request packet in bytes
  76592. DX = 0000h (no reply packet)
  76593. DS:SI -> request packet (see #02480)
  76594. ES:DI ignored
  76595. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76596. SeeAlso: AH=F2h"Novell",AX=F21Bh,AX=F26Ch,AH=C2h"NetWare"
  76597. Format of NetWare "Lock Physical Record Set" request packet:
  76598. Offset Size Description (Table 02480)
  76599. 00h BYTE lock flag
  76600. 00h exclusive lock
  76601. 02h shareable lock
  76602. 01h WORD lock timeout in clock ticks (0000h = don't wait)
  76603. --------N-21F26FSF00-------------------------
  76604. INT 21 - Novell NetWare - OPEN SEMAPHORE
  76605. AX = F26Fh subfn 00h
  76606. CX = length of request buffer in bytes
  76607. DX = length of reply buffer in bytes
  76608. DS:SI -> request buffer (see #02481)
  76609. ES:DI -> reply buffer (see #02482)
  76610. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76611. SeeAlso: AH=F2h"Novell",AX=F26Fh/SF=01h,AX=F26Fh/SF=02h
  76612. Format of NetWare "Open Semaphore" request packet:
  76613. Offset Size Description (Table 02481)
  76614. 00h BYTE 00h (subfunction "Open Semaphore")
  76615. 01h BYTE initial semaphore value
  76616. 02h BYTE length of semaphore's name
  76617. 03h N BYTEs semaphore name
  76618. SeeAlso: #02482
  76619. Format of NetWare "Open Semaphore" request packet:
  76620. Offset Size Description (Table 02482)
  76621. 00h DWORD semaphore handle
  76622. 04h BYTE number of clients using semaphore (including caller)
  76623. SeeAlso: #02481
  76624. --------N-21F26FSF01-------------------------
  76625. INT 21 - Novell NetWare - CLOSE SEMAPHORE
  76626. AX = F26Fh subfn 01h
  76627. CX = length of request packet in bytes
  76628. DX = 0000h (no reply packet)
  76629. DS:SI -> request packet (see #02483)
  76630. ES:DI ignored
  76631. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76632. SeeAlso: AH=F2h"Novell",AX=F26Fh/SF=00h,AX=F26Fh/SF=03h,AX=F220h/SF=04h
  76633. Format of NetWare "Close Semaphore" request packet:
  76634. Offset Size Description (Table 02483)
  76635. 00h BYTE 01h (subfunction "Close Semaphore")
  76636. 01h DWORD semaphore handle
  76637. SeeAlso: #02286
  76638. --------N-21F26FSF02-------------------------
  76639. INT 21 - Novell NetWare - WAIT ON SEMAPHORE
  76640. AX = F26Fh subfn 02h
  76641. CX = length of request packet in bytes
  76642. DX = 0000h (no reply packet)
  76643. DS:SI -> request packet (see #02484)
  76644. ES:DI ignored
  76645. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76646. SeeAlso: AH=F2h"Novell",AX=F26Fh/SF=00h,AX=F26Fh/SF=04h
  76647. Format of NetWare "Wait on Semaphore" request packet:
  76648. Offset Size Description (Table 02484)
  76649. 00h BYTE 02h (subfunction "Wait on Semaphore")
  76650. 01h DWORD semaphore handle
  76651. 05h WORD timeout in clock ticks (0000h = no wait)
  76652. --------N-21F26FSF03-------------------------
  76653. INT 21 - Novell NetWare - SIGNAL SEMAPHORE
  76654. AX = F26Fh subfn 03h
  76655. CX = length of request packet in bytes
  76656. DX = 0000h (no reply packet)
  76657. DS:SI -> request packet (see #02485)
  76658. ES:DI ignored
  76659. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76660. SeeAlso: AH=F2h"Novell",AX=F26Fh/SF=02h,AX=F26Fh/SF=04h
  76661. Format of NetWare "Signal Semaphore" request packet:
  76662. Offset Size Description (Table 02485)
  76663. 00h BYTE 03h (subfunction "Signal Semaphore")
  76664. 01h DWORD semaphore handle
  76665. --------N-21F26FSF04-------------------------
  76666. INT 21 - Novell NetWare - EXAMINE SEMAPHORE
  76667. AX = F26Fh subfn 04h
  76668. CX = length of request buffer in bytes
  76669. DX = length of reply buffer in bytes
  76670. DS:SI -> request buffer (see #02486)
  76671. ES:DI -> reply buffer (see #02487)
  76672. Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76673. SeeAlso: AH=F2h"Novell",AX=F26Fh/SF=02h,AX=F26Fh/SF=03h
  76674. Format of NetWare "Examine Semaphore" request packet:
  76675. Offset Size Description (Table 02486)
  76676. 00h BYTE 04h (subfunction "Examine Semaphore")
  76677. 01h DWORD semaphore handle
  76678. SeeAlso: #02487
  76679. Format of NetWare "Examine Semaphore" reply packet:
  76680. Offset Size Description (Table 02487)
  76681. 00h BYTE semaphore's current value
  76682. 01h BYTE number of clients using semaphore
  76683. SeeAlso: #02486
  76684. --------N-21F272-----------------------------
  76685. INT 21 - Novell NetWare v4+ - GET FILE SERVER UTC TIME
  76686. AX = F272h
  76687. CX = length of request buffer in bytes (0003h)
  76688. DX = length of reply buffer in bytes (0064h)
  76689. DS:SI -> request buffer (see #02488)
  76690. ES:DI -> reply buffer (see #02489)
  76691. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76692. reply buffer filled
  76693. Format of NetWare "Get File Server UTC Time" request buffer:
  76694. Offset Size Description (Table 02488)
  76695. 00h BYTE ??? (00h)
  76696. 01h BYTE ??? (01h)
  76697. 02h BYTE ??? (01h)
  76698. SeeAlso: #02489
  76699. Format of NetWare "Get File Server UTC Time" reply buffer:
  76700. Offset Size Description (Table 02489)
  76701. 00h DWORD seconds
  76702. 04h DWORD ???
  76703. 04h DWORD ??? (00000204h)
  76704. 04h DWORD ??? (00000000h)
  76705. 04h DWORD ??? (00000000h)
  76706. 04h DWORD ??? (FFFFFFFFh)
  76707. 04h DWORD ??? (00000000h)
  76708. SeeAlso: #02488
  76709. --------N-21F27BSF01-------------------------
  76710. INT 21 - Novell NetWare v4+ - GET CACHE INFORMATION
  76711. AX = F27Bh subfn 01h
  76712. CX = length of request buffer in bytes
  76713. DX = length of reply buffer in bytes
  76714. DS:SI -> request buffer (see #02490)
  76715. ES:DI -> reply buffer (see #02491)
  76716. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76717. reply buffer filled
  76718. SeeAlso: AX=F27Bh/SF=02h
  76719. Format of NetWare "Get Cache Information" request buffer:
  76720. Offset Size Description (Table 02490)
  76721. 00h WORD 0001h (length of following data)
  76722. 02h BYTE 01h (subfunction "Get Cache Information")
  76723. SeeAlso: #02491
  76724. Format of NetWare "Get Cache Information" reply buffer:
  76725. Offset Size Description (Table 02491)
  76726. 00h DWORD current server time
  76727. 04h BYTE vconsole version
  76728. 05h BYTE vconsole revision
  76729. 06h WORD reserved
  76730. 08h DWORD "readExistingBlockCount"
  76731. 0Ch DWORD "readExistingWriteWaitCount"
  76732. 10h DWORD "readExistingPartialReadCount"
  76733. 14h DWORD "readExistingReadErrorCount"
  76734. 18h DWORD "writeBlockCount"
  76735. 1Ch DWORD "writeEntireBlockCount"
  76736. 20h DWORD "getDiskCount"
  76737. 24h DWORD "getDiskNeedToAllocCount"
  76738. 28h DWORD "getDiskSomeoneBeatMeCount"
  76739. 2Ch DWORD "getDiskPartialReadCount"
  76740. 30h DWORD "getDiskReadErrorCount"
  76741. 34h DWORD "getAsyncDiskCount"
  76742. 38h DWORD "getAsyncDiskNeedToAlloc"
  76743. 3Ch DWORD "getAsyncDiskSomeoneBeatMe"
  76744. 40h DWORD "errorDoingAsyncReadCount"
  76745. 44h DWORD "getDiskNoReadCount"
  76746. 48h DWORD "getDiskNoReadAllocCount"
  76747. 4Ch DWORD "getDiskNoReadSomeoneBeatMeCount"
  76748. 50h DWORD "diskWriteCount"
  76749. 54h DWORD "diskWriteAllocCount"
  76750. 58h DWORD "diskWriteSomeoneBeatMeCount"
  76751. 5Ch DWORD "writeErrorCount"
  76752. 60h DWORD "waitOnSemaphoreCount"
  76753. 64h DWORD "allocBlockWaitForSomeoneCount"
  76754. 68h DWORD "allocBlockCount"
  76755. 6Ch DWORD "allocBlockWaitCount"
  76756. 70h DWORD original number of cache buffers
  76757. 74h DWORD current number of cache buffers
  76758. 78h DWORD cache dirty-block threshold
  76759. 7Ch DWORD "waitNodeCount"
  76760. 80h DWORD "waitNodeAllocFailureCount"
  76761. 84h DWORD "moveCacheNodeCount"
  76762. 88h DWORD "moveCacheNodeFromAvailCount"
  76763. 8Ch DWORD "accelerateCacheNodeWriteCount"
  76764. 90h DWORD "removeCacheNodeCount"
  76765. 94h DWORD "removeCacheNodeFromAvailCount"
  76766. 98h DWORD number of cache checks
  76767. 9Ch DWORD number of cache hits
  76768. A0h DWORD number of dirty-cache checks
  76769. A4h DWORD number of dirty-cache hits
  76770. A8h DWORD "cacheUsedWhileChecking"
  76771. ACh DWORD "waitForDirtyBlocksDecreaseCount"
  76772. B0h DWORD "allocBlockFromAvailCount"
  76773. B4h DWORD "allocBlockFromLRUCount"
  76774. B8h DWORD "allocBlockAlreadyWaiting"
  76775. BCh DWORD "LRUSittingTime"
  76776. C0h DWORD maximum byte count
  76777. C4h DWORD minimum number of cache buffers
  76778. C8h DWORD minimum cache report threshold
  76779. D0h DWORD "allocWaitingCount"
  76780. D4h DWORD number of dirty cache blocks
  76781. D8h DWORD "cacheDirtyWaitTime"
  76782. DCh DWORD "maxDirtyTime"
  76783. E0h DWORD number of directory cache buffers
  76784. E4h DWORD "cacheByteToBlockShiftFactor"
  76785. SeeAlso: #02490
  76786. --------N-21F27BSF02-------------------------
  76787. INT 21 - Novell NetWare v4+ - GET SERVER INFORMATION
  76788. AX = F27Bh subfn 02h
  76789. CX = length of request buffer in bytes
  76790. DX = length of reply buffer in bytes
  76791. DS:SI -> request buffer (see #02492)
  76792. ES:DI -> reply buffer (see #02493)
  76793. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76794. reply buffer filled
  76795. SeeAlso: AX=F27Bh/SF=01h
  76796. Format of NetWare "Get Server Information" request buffer:
  76797. Offset Size Description (Table 02492)
  76798. 00h WORD 0001h (length of following data)
  76799. 02h BYTE 02h (subfunction "Get Server Information")
  76800. SeeAlso: #02493
  76801. Format of NetWare "Get Server Information" reply buffer:
  76802. Offset Size Description (Table 02493)
  76803. 00h DWORD current server time
  76804. 04h BYTE vconsole version
  76805. 05h BYTE vconsole revision
  76806. 06h WORD reserved
  76807. 08h DWORD current NCP stations in use
  76808. 0Ch DWORD peak NCP stations in use
  76809. 10h DWORD total NCP requests
  76810. 14h DWORD server utilization
  76811. 18h DWORD number of cancelled replies
  76812. 1Ch DWORD "writeHeldOffCount"
  76813. 20h DWORD "writeHeldOffWithDuplicateRequest"
  76814. 24h DWORD number of invalid request types
  76815. 28h DWORD "beingAbortedCount"
  76816. 2Ch DWORD "alreadyDoingReallocCount"
  76817. 30h DWORD "deAllocInvalidSlotCount"
  76818. 34h DWORD "deAllocBeingProcessedCount"
  76819. 38h DWORD "deAllocForgedPacketCount"
  76820. 3Ch DWORD "startStationErrorCount"
  76821. 40h DWORD number of invalid slot numbers
  76822. 44h DWORD "beingProcessedCount"
  76823. 48h DWORD number of forged packets
  76824. 4Ch DWORD number still transmitting
  76825. 50h DWORD "reExecuteRequestCount"
  76826. 54h DWORD number of invalid sequence numbers
  76827. 58h DWORD "duplicateIsBeingSentAlreadyCnt"
  76828. 5Ch DWORD number of positive acknowledgements sent
  76829. 60h DWORD number of duplicate replies sent
  76830. 64h DWORD number of times out of memory for station control
  76831. 68h DWORD number of times out of available connections
  76832. 6Ch DWORD "reallocSlotCount"
  76833. 70h DWORD "reallocSlotCameTooSoonCount"
  76834. 74h WORD number of times maximum hop count exceeded
  76835. 76h WORD number of unknown networks
  76836. 78h WORD "NoSpaceForService"
  76837. 7Ah WORD number of times out of receive buffers
  76838. 7Ch WORD "notMyNetwork"
  76839. 7Eh DWORD number of NetBIOS packets propagated
  76840. 82h DWORD total number of packets serviced
  76841. 86h DWORD total number of packets routed
  76842. SeeAlso: #02492
  76843. --------N-21F27BSF04-------------------------
  76844. INT 21 - Novell NetWare v4+ - GET USER INFORMATION
  76845. AX = F27Bh subfn 04h
  76846. CX = length of request buffer in bytes
  76847. DX = length of reply buffer in bytes
  76848. DS:SI -> request buffer (see #02494)
  76849. ES:DI -> reply buffer (see #02495)
  76850. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76851. reply buffer filled
  76852. Format of NetWare "Get User Information" request buffer:
  76853. Offset Size Description (Table 02494)
  76854. 00h WORD 0005h (length of following data)
  76855. 02h BYTE 04h (subfunction "Get User Information")
  76856. 03h DWORD connection number
  76857. SeeAlso: #02495
  76858. Format of NetWare "Get User Information" reply buffer:
  76859. Offset Size Description (Table 02495)
  76860. 00h DWORD current server time
  76861. 04h BYTE vconsole version
  76862. 05h BYTE vconsole revision
  76863. 06h WORD reserved
  76864. 08h DWORD connection number
  76865. 0Ch DWORD use count
  76866. 10h BYTE connection service type
  76867. 11h 7 BYTEs login time
  76868. 18h DWORD status
  76869. 1Ch DWORD expiration time
  76870. 20h DWORD object type
  76871. 24h BYTE transaction flag
  76872. 25h BYTE logical lock threshold
  76873. 26h BYTE record lock threshold
  76874. 27h BYTE file write flags
  76875. 28h BYTE file write state
  76876. 29h BYTE (filler)
  76877. 2Ah WORD file lock count
  76878. 2Ch WORD record lock count
  76879. 2Eh 6 BYTEs total number of bytes read
  76880. 34h 6 BYTEs total number of bytes written
  76881. 3Ah DWORD total requests
  76882. 3Eh DWORD held requests
  76883. 42h 6 BYTEs held bytes read
  76884. 48h 6 BYTEs held bytes written
  76885. 4Eh BYTE length of user name
  76886. 4Fh N BYTEs user name
  76887. SeeAlso: #02494
  76888. --------N-21F27BSF06-------------------------
  76889. INT 21 - Novell NetWare v4+ - GET IPX/SPX Information
  76890. AX = F27Bh subfn 06h
  76891. CX = length of request buffer in bytes
  76892. DX = length of reply buffer in bytes
  76893. DS:SI -> request buffer (see #02496)
  76894. ES:DI -> reply buffer (see #02497)
  76895. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76896. reply buffer filled
  76897. Format of NetWare "Get IPX/SPX Information" request buffer:
  76898. Offset Size Description (Table 02496)
  76899. 00h WORD 0001h (length of following data)
  76900. 02h BYTE 06h (subfunction "Get IPX/SPX Information")
  76901. SeeAlso: #02497
  76902. Format of NetWare "Get IPX/SPX Information" reply buffer:
  76903. Offset Size Description (Table 02497)
  76904. 00h DWORD current server time
  76905. 04h BYTE vconsole version
  76906. 05h BYTE vconsole revision
  76907. 06h WORD reserved
  76908. 08h DWORD number of IPX packets sent
  76909. 0Ch WORD number of malformed IPX packets
  76910. 0Eh DWORD number of IPX Get-ECB requests
  76911. 12h DWORD number of failed IPX Get-ECB requests
  76912. 16h DWORD number of IPX AES events
  76913. 1Ah WORD number of postponed IPX AES events
  76914. 1Ch WORD maximum number of sockets (from configuration)
  76915. 1Eh WORD maximum number of open sockets
  76916. 20h WORD number of failed IPX socket opens
  76917. 22h DWORD number of IPX "listen" ECBs
  76918. 24h WORD number of failed IPX EBC cancels
  76919. 26h WORD number of failed IPX Get-Local-Target requests
  76920. 28h WORD maximum number of SPX connections (from configuration)
  76921. 2Ah WORD maximum number of SPX connections used
  76922. 2Ch WORD number of SPX Establish-Connection requests
  76923. 2Eh WORD number of failed SPX Establish-Connection requests
  76924. 30h WORD total number of SPX "listen-connect" requests
  76925. 32h WORD number of failed SPX "listen-connect" requests
  76926. 34h DWORD number of SPX sends
  76927. 38h DWORD number of SPX "window-choke"s
  76928. 3Ch WORD number of bad SPX sends
  76929. 3Eh WORD number of failed SPX sends
  76930. 40h WORD number of aborted SPX connections
  76931. 42h DWORD number of SPX packet listens
  76932. 46h WORD number of bad SPX packet listens
  76933. 48h DWORD number of incoming SPX packets
  76934. 4Ch WORD number of bad incoming SPX packets
  76935. 4Eh WORD number of supressed SPX packets
  76936. 50h WORD "SPXNoSesListenECBCount"
  76937. 52h WORD "SPXWatchDogDestSesCount"
  76938. SeeAlso: #02496
  76939. --------N-21F27BSF08-------------------------
  76940. INT 21 - Novell NetWare v4+ - GET CPU INFORMATION
  76941. AX = F27Bh subfn 08h
  76942. CX = length of request buffer in bytes
  76943. DX = length of reply buffer in bytes
  76944. DS:SI -> request buffer (see #02498)
  76945. ES:DI -> reply buffer (see #02499)
  76946. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76947. reply buffer filled
  76948. Format of NetWare "Get CPU Information" request buffer:
  76949. Offset Size Description (Table 02498)
  76950. 00h WORD 0005h (length of following data)
  76951. 02h BYTE 08h (subfunction "Get CPU Information")
  76952. 03h DWORD CPU number
  76953. SeeAlso: #02499
  76954. Format of NetWare "Get CPU Information" reply buffer:
  76955. Offset Size Description (Table 02499)
  76956. 00h DWORD current server time
  76957. 04h BYTE vconsole version
  76958. 05h BYTE vconsole revision
  76959. 06h WORD reserved
  76960. 08h DWORD number of CPUs
  76961. 0Ch DWORD page table owner flag
  76962. 10h DWORD CPU type flag
  76963. 14h DWORD coprocessor flag
  76964. 18h DWORD bus type flag
  76965. 1Ch DWORD I/O engine flag
  76966. 20h DWORD filesystem engine flag
  76967. 24h DWORD non-dedicated flag
  76968. 28h 201 BYTEs counted string: CPU string;number of coprocessors;bus string
  76969. SeeAlso: #02498
  76970. --------N-21F27BSF09-------------------------
  76971. INT 21 - Novell NetWare v4+ - GET VOLUME SWITCH INFORMATION
  76972. AX = F27Bh subfn 09h
  76973. CX = length of request buffer in bytes
  76974. DX = length of reply buffer in bytes
  76975. DS:SI -> request buffer (see #02500)
  76976. ES:DI -> reply buffer (see #02501)
  76977. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  76978. reply buffer filled
  76979. Format of NetWare "Get Volume Switch Information" request buffer:
  76980. Offset Size Description (Table 02500)
  76981. 00h WORD 0005h (length of following data)
  76982. 02h BYTE 09h (subfunction "Get Volume Switch Information")
  76983. 03h DWORD starting item number
  76984. SeeAlso: #02501
  76985. Format of NetWare "Get Volume Switch Information" reply buffer:
  76986. Offset Size Description (Table 02501)
  76987. 00h DWORD current server time
  76988. 04h BYTE vconsole version
  76989. 05h BYTE vconsole revision
  76990. 06h WORD reserved
  76991. 08h DWORD total LFS counters
  76992. 0Ch DWORD current LFS counters
  76993. 10h DWORD "readFile"
  76994. 14h DWORD "writeFile"
  76995. 18h DWORD "deleteFile"
  76996. 1Ch DWORD "renMove"
  76997. 20h DWORD "openFile"
  76998. 24h DWORD "createFile"
  76999. 28h DWORD "createAndOpenFile"
  77000. 2Ch DWORD "closeFile"
  77001. 30h DWORD "scanDeleteFile"
  77002. 34h DWORD "salvageFile"
  77003. 38h DWORD "purgeFile"
  77004. 3Ch DWORD "migrateFile"
  77005. 40h DWORD "deMigrateFile"
  77006. 44h DWORD "createDir"
  77007. 48h DWORD "deleteDir"
  77008. 4Ch DWORD "directoryScans"
  77009. 50h DWORD "mapPathToDirNum"
  77010. 54h DWORD "modifyDirEntry"
  77011. 58h DWORD "getAccessRights"
  77012. 5Ch DWORD "getAccessRightsFromIDs"
  77013. 60h DWORD "mapDirNumToPath"
  77014. 64h DWORD "getEntryFromPathStrBase"
  77015. 68h DWORD "getOtherNSEntry"
  77016. 6Ch DWORD "getExtDirInfo"
  77017. 70h DWORD "getParentDirNum"
  77018. 74h DWORD "addTrusteeR"
  77019. 78h DWORD "scanTrusteeR"
  77020. 7Ch DWORD "delTrusteeR"
  77021. 80h DWORD "purgeTrust"
  77022. 84h DWORD "findNextTrustRef"
  77023. 88h DWORD "scanUserRestNodes"
  77024. 8Ch DWORD "addUserRest"
  77025. 90h DWORD "deleteUserRest"
  77026. 94h DWORD "rtnDirSpaceRest"
  77027. 98h DWORD "getActualAvailDskSp"
  77028. 9Ch DWORD "cntOwnedFilesAndDirs"
  77029. A0h DWORD "migFileInfo"
  77030. A4h DWORD "volMigInfo"
  77031. A8h DWORD "readMigFileData"
  77032. ACh DWORD "getVolusageStats"
  77033. B0h DWORD "getActualVolUsageStats"
  77034. B4h DWORD "getDirUsageStats"
  77035. B8h DWORD "NMFileReadsCount"
  77036. BCh DWORD "NMFileWritesCount"
  77037. C0h DWORD "mapPathToDirNumOrPhantom"
  77038. C4h DWORD "stationsHasAccessRgtsGntedBelow"
  77039. C8h DWORD "gtDataSteamLensFromPathStrBase"
  77040. CCh DWORD "checkAndGetDirectoryEntry"
  77041. D0h DWORD "getDeletedEntry"
  77042. D4h DWORD "getOriginalNameSpace"
  77043. D8h DWORD "getActualFileSize"
  77044. DCh DWORD "verifyNameSpaceNumber"
  77045. E0h DWORD "verifyDataStreamNumber"
  77046. E4h DWORD "checkVolumeNumber"
  77047. E8h DWORD "commitFile"
  77048. ECh DWORD "VMGetDirectoryEntry"
  77049. F0h DWORD "createDMFileEntry"
  77050. F4h DWORD "renameNameSpaceEntry"
  77051. F8h DWORD "logFile"
  77052. FCh DWORD "releaseFile"
  77053. 100h DWORD "clearFile"
  77054. 104h DWORD "setVolumeFlag"
  77055. 108h DWORD "clearVolumeFlag"
  77056. 10Ch DWORD "getOriginalInfo"
  77057. 110h DWORD "createMigratedDir"
  77058. 114h DWORD "F3OpenCreate"
  77059. 118h DWORD "F3InitFileSearch"
  77060. 11Ch DWORD "F3ContinueFileSearch"
  77061. 120h DWORD "F3RenameFile"
  77062. 124h DWORD "F3ScanForTrustees"
  77063. 128h DWORD "F3ObtainFileInfo"
  77064. 12Ch DWORD "F3ModifyInfo"
  77065. 130h DWORD "F3EraseFile"
  77066. 134h DWORD "F3SetDirHandle"
  77067. 138h DWORD "F3AddTrustees"
  77068. 13Ch DWORD "F3DeleteTrustees"
  77069. 140h DWORD "F3AllocDirHandle"
  77070. 144h DWORD "F3ScanSalvagedFiles"
  77071. 148h DWORD "F3RecoverSalvagedFiles"
  77072. 14Ch DWORD "F3PurgeSalvageableFile"
  77073. 150h DWORD "F3GetNSSpecificInfo"
  77074. 154h DWORD "F3ModifyNSSpecificInfo"
  77075. 158h DWORD "F3SearchSet"
  77076. 15Ch DWORD "F3GetDirBase"
  77077. 160h DWORD "F3QueryNameSpaceInfo"
  77078. 164h DWORD "F3GetNameSpaceList"
  77079. 168h DWORD "F3GetHugeInfo"
  77080. 16Ch DWORD "F3SetHugeInfo"
  77081. 170h DWORD "F3GetFullPathString"
  77082. 174h DWORD "F3GetEffectiveDirectoryRights"
  77083. SeeAlso: #02500
  77084. --------N-21F27BSF0A-------------------------
  77085. INT 21 - Novell NetWare v4+ - GET LOADED NLMs
  77086. AX = F27Bh subfn 0Ah
  77087. CX = length of request buffer in bytes
  77088. DX = length of reply buffer in bytes
  77089. DS:SI -> request buffer (see #02502)
  77090. ES:DI -> reply buffer (see #02503)
  77091. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  77092. reply buffer filled
  77093. Format of NetWare "Get NLMs Loaded" request buffer:
  77094. Offset Size Description (Table 02502)
  77095. 00h WORD 0005h (length of following data)
  77096. 02h BYTE 0Ah (subfunction "Get NLMs Loaded")
  77097. 03h DWORD first NLM number to report
  77098. SeeAlso: #02503
  77099. Format of NetWare "Get NLMs Loaded" reply buffer:
  77100. Offset Size Description (Table 02503)
  77101. 00h DWORD current server time
  77102. 04h BYTE vconsole version
  77103. 05h BYTE vconsole revision
  77104. 06h WORD reserved
  77105. 08h DWORD total number of NLMs
  77106. 0Ch DWORD number of NLM numbers following (max 50)
  77107. 10h 50 DWORDs NLM numbers
  77108. SeeAlso: #02502
  77109. --------N-21F27BSF0B-------------------------
  77110. INT 21 - Novell NetWare v4+ - GET NLM INFORMATION
  77111. AX = F27Bh subfn 0Bh
  77112. CX = length of request buffer in bytes
  77113. DX = length of reply buffer in bytes
  77114. DS:SI -> request buffer (see #02504)
  77115. ES:DI -> reply buffer (see #02505)
  77116. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  77117. reply buffer filled
  77118. Format of NetWare "Get NLM Information" request buffer:
  77119. Offset Size Description (Table 02504)
  77120. 00h WORD 0005h (length of following data)
  77121. 02h BYTE 0Bh (subfunction "Get NLM Information")
  77122. 03h DWORD NLM number
  77123. SeeAlso: #02505
  77124. Format of NetWare "Get NLM Information" reply buffer:
  77125. Offset Size Description (Table 02505)
  77126. 00h DWORD current server time
  77127. 04h BYTE vconsole version
  77128. 05h BYTE vconsole revision
  77129. 06h WORD reserved
  77130. 08h DWORD identification number
  77131. 0Ch DWORD flags
  77132. 10h DWORD NLM type (see #02506)
  77133. 14h DWORD parent identifier
  77134. 18h DWORD major version
  77135. 1Ch DWORD minor version
  77136. 20h DWORD revision
  77137. 24h DWORD year
  77138. 28h DWORD month
  77139. 2Ch DWORD day
  77140. 30h DWORD bytes available for allocation
  77141. 34h DWORD "allocFreeCount"
  77142. 38h DWORD last garbage collection
  77143. 3Ch DWORD message language
  77144. 40h DWORD number of referenced public identifiers
  77145. 44h 200 BYTEs NLM strings: filename, NLM name, copyright
  77146. SeeAlso: #02504
  77147. (Table 02506)
  77148. Values for NetWare NLM type:
  77149. 0001h LAN
  77150. 0002h DSK
  77151. 0003h NAM
  77152. 0004h utility NLM
  77153. 0005h MSL
  77154. 0006h operating system NLM
  77155. 0007h paged NLM
  77156. 0008h HAM
  77157. 0009h CDM
  77158. 000Ah file system NLM
  77159. 000Bh real mode NLM
  77160. 000Ch hidden NLM
  77161. SeeAlso: #02505
  77162. --------N-21F27BSF0D-------------------------
  77163. INT 21 - Novell NetWare v4+ - GET OS VERSION INFORMATION
  77164. AX = F27Bh subfn 0Dh
  77165. CX = length of request buffer in bytes
  77166. DX = length of reply buffer in bytes
  77167. DS:SI -> request buffer (see #02507)
  77168. ES:DI -> reply buffer (see #02508)
  77169. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  77170. reply buffer filled
  77171. Format of NetWare "Get OS Version Information" request buffer:
  77172. Offset Size Description (Table 02507)
  77173. 00h WORD 0001h (length of following data)
  77174. 02h BYTE 0Dh (subfunction "Get OS Version Information")
  77175. SeeAlso: #02508
  77176. Format of NetWare "Get OS Version Information" reply buffer:
  77177. Offset Size Description (Table 02508)
  77178. 00h DWORD current server time
  77179. 04h BYTE vconsole version
  77180. 05h BYTE vconsole revision
  77181. 06h WORD reserved
  77182. 08h BYTE operating system major version
  77183. 09h BYTE operating system minor version
  77184. 0Ah BYTE operating system revision number
  77185. 0Bh BYTE accounting version
  77186. 0Ch BYTE VAP version
  77187. 0Dh BYTE queueing version
  77188. 0Eh BYTE security restrictions level
  77189. 0Fh BYTE bridging support
  77190. 10h DWORD maximum number of volumes
  77191. 14h DWORD number of connection slots
  77192. 18h DWORD maximum number of logged-in connections
  77193. 1Ch DWORD maximum number of name spaces
  77194. 20h DWORD maximum number of LANs
  77195. 24h DWORD maximum number of media types
  77196. 28h DWORD maximum number of protocols
  77197. 2Ch DWORD maximum subdirectory tree depth
  77198. 30h DWORD maximum number of data streams
  77199. 34h DWORD maximum number of spooled printers
  77200. 38h DWORD serial number
  77201. 3Ch WORD application number
  77202. SeeAlso: #02507
  77203. --------N-21F27BSF14-------------------------
  77204. INT 21 - Novell NetWare v4+ - GET ACTIVE LAN BOARD LIST
  77205. AX = F27Bh subfn 14h
  77206. CX = length of request buffer in bytes
  77207. DX = length of reply buffer in bytes
  77208. DS:SI -> request buffer (see #02509)
  77209. ES:DI -> reply buffer (see #02510)
  77210. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  77211. reply buffer filled
  77212. Format of NetWare "Get Active LAN Board List" request buffer:
  77213. Offset Size Description (Table 02509)
  77214. 00h WORD 0005h (length of following data)
  77215. 02h BYTE 14h (subfunction "Get Active LAN Board List")
  77216. 03h DWORD start number
  77217. SeeAlso: #02510
  77218. Format of NetWare "Get Active LAN Board List" reply buffer:
  77219. Offset Size Description (Table 02510)
  77220. 00h DWORD current server time
  77221. 04h BYTE vconsole version
  77222. 05h BYTE vconsole revision
  77223. 06h WORD reserved
  77224. 08h DWORD maximum number of LANs
  77225. 0Ch DWORD number of LAN board numbers returned
  77226. 10h 50 DWORDs board numbers
  77227. SeeAlso: #02509
  77228. --------N-21F27BSF15-------------------------
  77229. INT 21 - Novell NetWare v4+ - GET LAN CONFIGURATION
  77230. AX = F27Bh subfn 15h
  77231. CX = length of request buffer in bytes
  77232. DX = length of reply buffer in bytes
  77233. DS:SI -> request buffer (see #02511)
  77234. ES:DI -> reply buffer (see #02512)
  77235. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  77236. reply buffer filled
  77237. SeeAlso: AX=F27Bh/SF=16h
  77238. Format of NetWare "Get LAN Configuration" request buffer:
  77239. Offset Size Description (Table 02511)
  77240. 00h WORD 0005h (length of following data)
  77241. 02h BYTE 15h (subfunction "Get LAN Configuration")
  77242. 03h DWORD LAN board number
  77243. SeeAlso: #02512
  77244. Format of NetWare "Get LAN Configuration" reply buffer:
  77245. Offset Size Description (Table 02512)
  77246. 00h DWORD current server time
  77247. 04h BYTE vconsole version
  77248. 05h BYTE vconsole revision
  77249. 06h WORD reserved
  77250. 08h BYTE driver configuration major version
  77251. 09h BYTE driver configuration minor version
  77252. 0Ah 6 BYTEs driver node address
  77253. 10h WORD driver mode flags
  77254. 12h WORD driver board number
  77255. 14h WORD driver board instance
  77256. 16h DWORD driver maximum size
  77257. 1Ah DWORD driver maximum receive size
  77258. 1Eh DWORD driver receive size
  77259. 22h 3 DWORDs reserved
  77260. 2Eh WORD driver card ID
  77261. 30h WORD driver transport time
  77262. 32h DWORD driver source routing
  77263. 36h WORD driver line speed
  77264. 38h WORD driver reserved
  77265. 3Ah BYTE driver major version
  77266. 3Bh BYTE driver minor version
  77267. 3Ch WORD driver flags
  77268. 3Eh WORD driver send retries
  77269. 40h DWORD driver link
  77270. 44h WORD driver sharing flags
  77271. 46h WORD driver slot
  77272. 48h 4 WORDs driver I/O port and lengths
  77273. 50h DWORD driver memory decode 0
  77274. 54h WORD driver length 0
  77275. 56h DWORD driver memory decode 1
  77276. 5Ah WORD driver length 1
  77277. 5Ch 2 BYTEs driver's interrupts
  77278. 5Eh 2 BYTEs driver's DMA usage
  77279. 60h 18 BYTEs driver's logical name
  77280. 72h 14 BYTEs driver I/O reserved
  77281. 80h 128 BYTEs driver card name
  77282. 100h 40 BYTEs driver media type
  77283. 128h 180 BYTEs driver custom variables
  77284. SeeAlso: #02511
  77285. --------N-21F27BSF16-------------------------
  77286. INT 21 - Novell NetWare v4+ - GET LAN COMMON COUNTERS
  77287. AX = F27Bh subfn 16h
  77288. CX = length of request buffer in bytes
  77289. DX = length of reply buffer in bytes
  77290. DS:SI -> request buffer (see #02513)
  77291. ES:DI -> reply buffer (see #02514)
  77292. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  77293. reply buffer filled
  77294. SeeAlso: AX=F27Bh/SF=15h
  77295. Format of NetWare "Get LAN Common Counters" request buffer:
  77296. Offset Size Description (Table 02513)
  77297. 00h WORD 0009h (length of following data)
  77298. 02h BYTE 16h (subfunction "Get LAN Common Counters")
  77299. 03h DWORD LAN board number
  77300. 07h DWORD starting block number (set to 00000000h for first call)
  77301. SeeAlso: #02514
  77302. Format of NetWare "Get LAN Common Counters" reply buffer:
  77303. Offset Size Description (Table 02514)
  77304. 00h DWORD current server time
  77305. 04h BYTE vconsole version
  77306. 05h BYTE vconsole revision
  77307. 06h WORD reserved
  77308. 08h BYTE statistics major version
  77309. 09h BYTE statistics minor version
  77310. 0Ah DWORD number of generic counters
  77311. 0Eh DWORD number of counter blocks
  77312. 12h DWORD number of custom variables
  77313. 16h DWORD next counter block number
  77314. 1Ah DWORD "notSupportedMask"
  77315. 1Eh DWORD total number of packets tranmitted
  77316. 22h DWORD total number of packets received
  77317. 26h DWORD number of times no ECBs were available
  77318. 2Ah DWORD number of transmitted packets which were too large
  77319. 2Eh DWORD number of transmitted packets which were too small
  77320. 32h DWORD number of packet receive overflows
  77321. 36h DWORD number of received packets which were too large
  77322. 3Ah DWORD number of received packets which were too small
  77323. 3Eh DWORD number of miscellaneous transmitted-packet errors
  77324. 42h DWORD number of miscellaneous received-packet errors
  77325. 46h DWORD number of times transmission retried
  77326. 4Ah DWORD number of checksum errors
  77327. 4Eh DWORD number of hardware receive mismatches
  77328. 52h 50 BYTEs reserved
  77329. SeeAlso: #02513
  77330. --------N-21F27BSF29-------------------------
  77331. INT 21 - Novell NetWare v4+ - GET PROTOCOL STACK BY BOARD
  77332. AX = F27Bh subfn 29h
  77333. CX = length of request buffer in bytes
  77334. DX = length of reply buffer in bytes
  77335. DS:SI -> request buffer (see #02515)
  77336. ES:DI -> reply buffer (see #02516)
  77337. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  77338. reply buffer filled
  77339. Format of NetWare "Get Protocol Stack by Board" request buffer:
  77340. Offset Size Description (Table 02515)
  77341. 00h WORD 0005h (length of following data)
  77342. 02h BYTE 29h (subfunction "Get Protocol Stack by Board")
  77343. 03h DWORD LAN board number
  77344. SeeAlso: #02516
  77345. Format of NetWare "Get Protocol Stack by Board" reply buffer:
  77346. Offset Size Description (Table 02516)
  77347. 00h DWORD current server time
  77348. 04h BYTE vconsole version
  77349. 05h BYTE vconsole revision
  77350. 06h WORD reserved
  77351. 08h WORD number of stacks listed (max 50)
  77352. 0Ah 50 DWORDs protocol identifiers
  77353. SeeAlso: #02515
  77354. --------N-21F27BSF33-------------------------
  77355. INT 21 - Novell NetWare v4+ - GET ROUTER INFO
  77356. AX = F27Bh subfn 33h
  77357. CX = length of request buffer in bytes
  77358. DX = length of reply buffer in bytes
  77359. DS:SI -> request buffer (see #02517)
  77360. ES:DI -> reply buffer (see #02518)
  77361. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  77362. reply buffer filled
  77363. SeeAlso: AX=F27Bh/SF=35h
  77364. Format of NetWare "Get Router Info" request buffer:
  77365. Offset Size Description (Table 02517)
  77366. 00h WORD 0005h (length of following data)
  77367. 02h BYTE 33h (function "Get Router Info")
  77368. 03h DWORD network number
  77369. SeeAlso: #02518
  77370. Format of NetWare "Get Router Info" reply buffer:
  77371. Offset Size Description (Table 02518)
  77372. 00h DWORD current server time
  77373. 04h BYTE vconsole version
  77374. 05h BYTE vconsole revision
  77375. 06h WORD reserved
  77376. 08h DWORD network number
  77377. 0Ch WORD hops to net
  77378. 0Eh WORD network status
  77379. 10h WORD time to net
  77380. SeeAlso: #02517,#02519
  77381. --------N-21F27BSF35-------------------------
  77382. INT 21 - Novell NetWare v4+ - GET KNOWN NETWORKS INFO
  77383. AX = F27Bh subfn 35h
  77384. CX = length of request buffer in bytes
  77385. DX = length of reply buffer in bytes
  77386. DS:SI -> request buffer (see #02519)
  77387. ES:DI -> reply buffer (see #02520)
  77388. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  77389. reply buffer filled
  77390. SeeAlso: AX=F27Bh/SF=33h,AX=F27Bh/SF=38h
  77391. Format of NetWare "Get Router Info" request buffer:
  77392. Offset Size Description (Table 02519)
  77393. 00h WORD 0005h (length of following data)
  77394. 02h BYTE 35h (function "Get Known Networks Info")
  77395. 03h DWORD start number (00000000h)
  77396. SeeAlso: #02520
  77397. Format of NetWare "Get Router Info" reply buffer:
  77398. Offset Size Description (Table 02520)
  77399. 00h DWORD current server time
  77400. 04h BYTE vconsole version
  77401. 05h BYTE vconsole revision
  77402. 06h WORD reserved
  77403. 08h DWORD number of records following (max 20)
  77404. 0Ch var array of network info records
  77405. Offset Size Description
  77406. 00h WORD network number
  77407. 04h WORD hops to net
  77408. 06h WORD network status
  77409. 08h WORD time to net
  77410. SeeAlso: #02517,#02519
  77411. --------N-21F27BSF38-------------------------
  77412. INT 21 - Novell NetWare v4+ - GET KNOWN SERVERS INFO
  77413. AX = F27Bh subfn 38h
  77414. CX = length of request buffer in bytes
  77415. DX = length of reply buffer in bytes
  77416. DS:SI -> request buffer (see #02521)
  77417. ES:DI -> reply buffer (see #02522)
  77418. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  77419. reply buffer filled
  77420. SeeAlso: AX=F27Bh/SF=35h
  77421. Format of NetWare "Get Known Servers" request buffer:
  77422. Offset Size Description (Table 02521)
  77423. 00h WORD 0009h (length of following data)
  77424. 02h BYTE 38h (function "Get Known Servers")
  77425. 03h DWORD start number
  77426. 07h DWORD server type
  77427. SeeAlso: #02522
  77428. Format of NetWare "Get Known Servers" reply buffer:
  77429. Offset Size Description (Table 02522)
  77430. 00h DWORD current server time
  77431. 04h BYTE vconsole version
  77432. 05h BYTE vconsole revision
  77433. 06h WORD reserved
  77434. 08h DWORD number of records following (max 20)
  77435. 0Ch var server record(s)
  77436. Offset Size Description
  77437. 00h DWORD network number
  77438. 04h 6 BYTEs node number
  77439. 0Ah WORD socket number
  77440. 0Ch WORD hops to server
  77441. 0Eh 48 BYTEs object name
  77442. SeeAlso: #02521
  77443. --------N-21F27BSF3C-------------------------
  77444. INT 21 - Novell NetWare v4+ - GET SERVER SET COMMANDS INFO
  77445. AX = F27Bh subfn 3Ch
  77446. CX = length of request buffer in bytes
  77447. DX = length of reply buffer in bytes
  77448. DS:SI -> request buffer (see #02523)
  77449. ES:DI -> reply buffer (see #02524)
  77450. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  77451. reply buffer filled
  77452. Format of NetWare "Get Server Set Commands Info" request packet:
  77453. Offset Size Description (Table 02523)
  77454. 00h WORD 0005h (length of following data)
  77455. 02h BYTE 3Ch (subfunction "Get Server Set Commands Info")
  77456. 03h DWORD start sequence number
  77457. SeeAlso: #02524
  77458. Format of NetWare "Get Server Set Commands Info" packet:
  77459. Offset Size Description (Table 02524)
  77460. 00h DWORD current server time
  77461. 04h BYTE vconsole version
  77462. 05h BYTE vconsole revision
  77463. 06h WORD reserved
  77464. 08h DWORD number of set commands
  77465. 0Ch DWORD next sequence number
  77466. 10h DWORD set command type
  77467. 14h DWORD set command category
  77468. 18h DWORD set command flags
  77469. 1Ch BYTE length of set command name
  77470. 1Dh N BYTEs set command name
  77471. BYTE number of set command values
  77472. N BYTEs set command values
  77473. SeeAlso: #02523
  77474. --------N-21F27BSF3D-------------------------
  77475. INT 21 - Novell NetWare v4+ - GET SERVER SET CATEGORIES
  77476. AX = F27Bh subfn 3Dh
  77477. CX = length of request buffer in bytes
  77478. DX = length of reply buffer in bytes
  77479. DS:SI -> request buffer (see #02525)
  77480. ES:DI -> reply buffer (see #02526)
  77481. Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
  77482. reply buffer filled
  77483. Format of NetWare "Get Server Set Categories" request packet:
  77484. Offset Size Description (Table 02525)
  77485. 00h WORD 0005h (length of following data)
  77486. 02h BYTE 3Dh (subfunction "Get Server Set Categories")
  77487. 03h DWORD start sequence number
  77488. SeeAlso: #02526
  77489. Format of NetWare "Get Server Set Categories" reply packet:
  77490. Offset Size Description (Table 02526)
  77491. 00h DWORD current server time
  77492. 04h BYTE vconsole version
  77493. 05h BYTE vconsole revision
  77494. 06h WORD reserved
  77495. 08h DWORD number of set categories
  77496. 0Ch DWORD next sequence number
  77497. 10h BYTE length of category name
  77498. 11h N BYTEs category name
  77499. SeeAlso: #02525
  77500. --------v-21F2AA-----------------------------
  77501. INT 21 - VIRUS - "PcVrsDs" - INSTALLATION CHECK
  77502. AX = F2AAh
  77503. Return: AH = AAh if resident
  77504. SeeAlso: AH=F1h"VIRUS",AH=F3h"VIRUS"
  77505. --------N-21F3-------------------------------
  77506. INT 21 - Novell NetWare - FILE SERVICES - FILE SERVER FILE COPY
  77507. AH = F3h
  77508. ES:DI -> request buffer (see #02527)
  77509. Return: AL = status/error code
  77510. CX:DX = number of bytes copied
  77511. Notes: this function is supported by Advanced NetWare 2.0+
  77512. both source and destination must be on the same file server
  77513. SeeAlso: AH=3Ch,AH=3Fh"DOS"
  77514. Format of NetWare "File Server File Copy" request buffer:
  77515. Offset Size Description (Table 02527)
  77516. 00h WORD source file handle (as returned by AH=3Ch or AH=3Dh)
  77517. 02h WORD destination file handle
  77518. 04h DWORD starting offset in source
  77519. 08h DWORD starting offset in destination
  77520. 0Ch DWORD number of bytes to copy
  77521. --------T-21F3-------------------------------
  77522. INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB
  77523. AH = F3h
  77524. AL = character
  77525. Return: AL = 00h successful
  77526. 01h buffer full (128 characters)
  77527. SeeAlso: AH=E3h"DoubleDOS",AH=F1h"DoubleDOS",AH=F2h"DoubleDOS"
  77528. SeeAlso: AH=F8h"DoubleDOS"
  77529. --------v-21F3-------------------------------
  77530. INT 21 - VIRUS - "Carfield" - INSTALLATION CHECK
  77531. AH = F3h
  77532. Return: AX = 0400h if resident
  77533. SeeAlso: AH=D5h"Carfield",AX=F2AAh,AH=F7h"VIRUS"
  77534. --------T-21F400-----------------------------
  77535. INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS
  77536. AX = F400h
  77537. Return: AL = program status
  77538. 00h if DoubleDOS not present
  77539. 01h if running in visible DoubleDOS partition
  77540. 02h if running in the invisible DoubleDOS partition
  77541. SeeAlso: AX=E400h,AH=F5h"DoubleDOS"
  77542. --------T-21F5-------------------------------
  77543. INT 21 - DoubleDOS - OTHER PROGRAM STATUS
  77544. AH = F5h
  77545. Return: AL = program status
  77546. 00h no program in other partition
  77547. 01h program in other partition is running
  77548. 02h program in other partition is suspended
  77549. SeeAlso: AH=E5h"DoubleDOS",AX=F400h"DoubleDOS"
  77550. --------v-21F7-------------------------------
  77551. INT 21 - VIRUS - "GP1" - INSTALLATION CHECK
  77552. AH = F7h
  77553. Return: AX = 0300h if resident
  77554. SeeAlso: AH=F0h"VIRUS",AH=F9h"VIRUS"
  77555. --------D-21F8-------------------------------
  77556. INT 21 - DOS v2.11-2.13 - SET OEM INT 21 HANDLER
  77557. AH = F8h
  77558. DS:DX -> OEM INT 21 handler for functions F9h to FFh
  77559. FFFFh:FFFFh disables OEM handler
  77560. Notes: this function is known to be supported by Toshiba T1000 ROM MS-DOS
  77561. v2.11, Sanyo MS-DOS v2.11, and TI Professional Computer DOS v2.13
  77562. calls to AH=F9h through AH=FFH will return AL=00h if no handler set
  77563. handler is called with all registers exactly as set by caller, and
  77564. should exit with IRET
  77565. SeeAlso: AH=F9h"OEM"
  77566. --------T-21F8-------------------------------
  77567. INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS
  77568. AH = F8h
  77569. AL = program for which to set flags
  77570. 00h this program
  77571. 01h other program
  77572. DX = keyboard control flags (see #02088 at AH=E8h"DoubleDOS")
  77573. Return: DX = previous flags
  77574. Notes: disabling Ctrl-PrtSc will allow the program to intercept the keystroke;
  77575. disabling any of the other keystrokes disables them completely
  77576. this function is identical to AH=E8h
  77577. SeeAlso: AH=E8h"DoubleDOS",AH=F1h"DoubleDOS",AH=F2h"DoubleDOS"
  77578. SeeAlso: AH=F3h"DoubleDOS"
  77579. --------D-21F9-------------------------------
  77580. INT 21 - DOS v2.11-2.13 - OEM FUNCTION
  77581. AH = F9h
  77582. Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM")
  77583. SeeAlso: AH=F8h"OEM",AH=FAh"OEM"
  77584. --------T-21F9-------------------------------
  77585. INT 21 - DoubleDOS - SET TIMESHARING PRIORITY
  77586. AH = F9h
  77587. AL = priority
  77588. 00h visible program gets 70%, invisible gets 30% (default)
  77589. 01h visible program gets 50%, invisible gets 50%
  77590. 02h visible program gets 30%, invisible gets 70%
  77591. 03h Top program gets 70%, bottom program gets 30%
  77592. 04h Top program gets 30%, bottom program gets 70%
  77593. 05h get current priority
  77594. Return: AL = priority setting
  77595. Note: identical to AH=E9h
  77596. SeeAlso: AH=E9h"DoubleDOS",AH=FAh"DoubleDOS",AH=FBh"DoubleDOS"
  77597. --------v-21F9-------------------------------
  77598. INT 21 - VIRUS - "Satans-Bug" - INSTALLATION CHECK
  77599. AH = F9h
  77600. Return: AX = AC0Ah if resident
  77601. SeeAlso: AH=F7h"VIRUS",AH=FBh"VIRUS",AX=FEDCh"VIRUS"
  77602. --------D-21FA-------------------------------
  77603. INT 21 - DOS v2.11-2.13 - OEM FUNCTION
  77604. AH = FAh
  77605. Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM")
  77606. SeeAlso: AH=F8h"OEM",AH=F9h"OEM",AH=FBh"OEM"
  77607. --------T-21FA-------------------------------
  77608. INT 21 - DoubleDOS - TURN OFF TASK SWITCHING
  77609. AH = FAh
  77610. Return: task switching turned off
  77611. SeeAlso: AH=EAh"DoubleDOS",AH=F9h"DoubleDOS",AH=FBh"DoubleDOS"
  77612. SeeAlso: INT FA"DoubleDOS"
  77613. --------v-21FA-------------------------------
  77614. INT 21 - VIRUS - "Cinderella 2" - INSTALLATION CHECK
  77615. AH = FAh
  77616. Return: AH = F9h if resident
  77617. SeeAlso: AH=F0h"VIRUS",AX=FBA0h"VIRUS"
  77618. --------v-21FA--DX5945-----------------------
  77619. INT 21 U - PC Tools v7+ VDEFEND, VSAFE, VWATCH - API
  77620. AH = FAh
  77621. DX = 5945h
  77622. AL = function (00h-02h for VDEFEND, 00h-07h for VSAFE and VWATCH)
  77623. Return: varies by function
  77624. Note: this API is identical to the API on INT 13/AH=FAh and INT 16/AH=FAh,
  77625. so it is listed in its entirety only under INT 16/AX=FA00h and
  77626. following
  77627. SeeAlso: INT 13/AX=FA00h,INT 16/AX=FA00h
  77628. --------k-21FAFF-----------------------------
  77629. INT 21 U - IBM PC-DOS - KEYBGK - SELECT KEYBOARD LAYOUT
  77630. AX = FAFFh
  77631. CL = keyboard layout
  77632. 31h keyboard 319
  77633. 32h keyboard 220
  77634. BX = code page (869 or 813 decimal)
  77635. Return: AL = F1h if installed
  77636. DX destroyed
  77637. --------D-21FB-------------------------------
  77638. INT 21 - DOS v2.11-2.13 - OEM FUNCTION
  77639. AH = FBh
  77640. Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM")
  77641. SeeAlso: AH=F8h"OEM",AH=FAh"OEM",AH=FCh"OEM"
  77642. --------T-21FB-------------------------------
  77643. INT 21 - DoubleDOS - TURN ON TASK SWITCHING
  77644. AH = FBh
  77645. Return: task switching turned on
  77646. SeeAlso: AH=EBh"DoubleDOS",AH=F9h"DoubleDOS",AH=FAh"DoubleDOS"
  77647. SeeAlso: INT FB"DoubleDOS"
  77648. --------v-21FB-------------------------------
  77649. INT 21 - VIRUS - "Cinderella" - INSTALLATION CHECK
  77650. AH = FBh
  77651. Return: AH = 00h if resident
  77652. SeeAlso: AH=F9h"VIRUS",AH=FAh"VIRUS",AX=FB0Ah
  77653. --------v-21FB0A-----------------------------
  77654. INT 21 - VIRUS - "dBASE" - INSTALLATION CHECK
  77655. AX = FB0Ah
  77656. Return: AX = 0AFBh if resident
  77657. SeeAlso: AH=FBh"VIRUS",AX=FBA0h"VIRUS",AH=FCh"VIRUS"
  77658. --------v-21FBA0-----------------------------
  77659. INT 21 - VIRUS - "Groove" - INSTALLATION CHECK
  77660. AX = FBA0h
  77661. Return: AX = 0ABFh if resident
  77662. SeeAlso: AX=FB0Ah"VIRUS",AX=FBFBh"VIRUS"
  77663. --------v-21FBFB-----------------------------
  77664. INT 21 - VIRUS - "Dir.1367" - INSTALLATION CHECK
  77665. AX = FBFBh
  77666. Return: AX = BFBFh if resident
  77667. SeeAlso: AX=FBA0h"VIRUS",AH=FCh"VIRUS"
  77668. --------D-21FC-------------------------------
  77669. INT 21 - DOS v2.11-2.13 - OEM FUNCTION
  77670. AH = FCh
  77671. Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM")
  77672. SeeAlso: AH=F8h"OEM",AH=FBh"OEM",AH=FDh"OEM"
  77673. --------T-21FC-------------------------------
  77674. INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS
  77675. AH = FCh
  77676. Return: ES = segment of virtual screen
  77677. Desc: Determine the address of the virtual screen to which the program
  77678. should write instead of the actual video memory, so that the
  77679. multitasked programs do not interfere with each other's output.
  77680. Notes: screen address can change if task-switching is on!
  77681. identical to AH=ECh
  77682. SeeAlso: AH=ECh"DoubleDOS",INT FC"DoubleDOS"
  77683. --------v-21FC-------------------------------
  77684. INT 21 - VIRUS - "Troi" - INSTALLATION CHECK
  77685. AH = FCh
  77686. Return: AL = A5h if resident
  77687. SeeAlso: AX=FBA0h"VIRUS",AX=FC03h"VIRUS",AH=FDh"VIRUS"
  77688. --------v-21FC03-----------------------------
  77689. INT 21 - VIRUS - "Invisible" - INSTALLATION CHECK
  77690. AX = FC03h
  77691. Return: AX = 03FCh if resident
  77692. SeeAlso: AH=FCh"VIRUS",AH=FDh"VIRUS"
  77693. --------D-21FD-------------------------------
  77694. INT 21 - DOS v2.11-2.13 - OEM FUNCTION
  77695. AH = FDh
  77696. Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM")
  77697. SeeAlso: AH=F8h"OEM",AH=FCh"OEM",AH=FEh"OEM"
  77698. --------v-21FD-------------------------------
  77699. INT 21 - VIRUS - "Border" - INSTALLATION CHECK
  77700. AH = FDh
  77701. Return: AH = 13h if resident
  77702. SeeAlso: AH=FCh"VIRUS",AX=FDACh"VIRUS",AH=FEh"VIRUS"
  77703. --------s-21FD12BX3457-----------------------
  77704. INT 21 - Gravis UltraSound - MegaEm/MEGA_EM - INSTALLATION CHECK
  77705. AX = FD12h
  77706. BX = 3457h
  77707. Return: AX = 5678h if installed
  77708. BX = 1235h if v1.x or v2.x installed
  77709. CL = interrupt vector used by MegaEm (default 81h)
  77710. BX = 1237h if v3.x installed
  77711. CL = interrupt vector used by MegaEm (default 81h)
  77712. DX = version number
  77713. Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32
  77714. emulator for the Gravis UltraSound
  77715. SeeAlso: INT 2F/AX=CD00h/BX=464Fh,INT 7E/AX=00FEh"SBOS",INT 81/AX=0200h
  77716. --------v-21FDAC-----------------------------
  77717. INT 21 - VIRUS - "Delwin" - INSTALLATION CHECK
  77718. AX = FDACh
  77719. Return: AX = 02E3h if resident
  77720. SeeAlso: AH=FDh"VIRUS",AH=FEh"VIRUS"
  77721. --------D-21FE-------------------------------
  77722. INT 21 - DOS v2.11-2.13 - OEM FUNCTION
  77723. AH = FEh
  77724. Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM")
  77725. SeeAlso: AH=F8h"OEM",AH=FDh"OEM",AH=FFh"OEM"
  77726. --------T-21FE-------------------------------
  77727. INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS
  77728. AH = FEh
  77729. AL = number of 55ms time slices to give away
  77730. Return: returns after giving away time slices
  77731. SeeAlso: AH=EEh"DoubleDOS",INT FE"DoubleDOS"
  77732. --------v-21FE-------------------------------
  77733. INT 21 - VIRUS - "483" - INSTALLATION CHECK
  77734. AH = FEh
  77735. Return: AH = 00h if resident
  77736. SeeAlso: AX=FDACh"VIRUS",AX=FE01h
  77737. --------v-21FE01-----------------------------
  77738. INT 21 - VIRUS - "Flip" - INSTALLATION CHECK
  77739. AX = FE01h
  77740. Return: AX = 01FEh if resident
  77741. SeeAlso: AH=FEh"VIRUS",AX=FE02h
  77742. --------v-21FE02-----------------------------
  77743. INT 21 - VIRUS - "2468"/"Tequila" - INSTALLATION CHECK
  77744. AX = FE02h
  77745. Return: AX = 01FDh if resident
  77746. SeeAlso: AX=FE01h,AX=FE03h,AX=FEDCh"VIRUS"
  77747. --------v-21FE03-----------------------------
  77748. INT 21 - VIRUS - "2468"/"Tequila" - DISPLAY VIRUS MESSAGE
  77749. AX = FE03h
  77750. SeeAlso: AX=FE02h,AX=FEADh
  77751. --------v-21FEAD------------------------
  77752. INT 21 - VIRUS - "Shifting Objective" - INSTALLATION CHECK
  77753. AX = FEADh
  77754. Return: AX = D00Dh if resident
  77755. SeeAlso: AX=FE03h,AX=FEDCh"VIRUS"
  77756. --------d-21FEDC-----------------------------
  77757. INT 21 - PCMag PCMANAGE/DCOMPRES - INSTALLATION CHECK
  77758. AX = FEDCh
  77759. Return: AX = CDEFh if installed
  77760. Program: the PCMANAGE/DCOMPRES combination from PC Magazine permits
  77761. infrequently-used files to be compressed to save space and
  77762. transparently expanded when accessed
  77763. SeeAlso: AH=DCh,INT 2D/AL=10h"dLite"
  77764. --------v-21FEDC-----------------------------
  77765. INT 21 - VIRUS - "Black Monday" - INSTALLATION CHECK
  77766. AX = FEDCh
  77767. Return: AL = DCh if resident
  77768. SeeAlso: AX=FE02h,AX=FEFEh
  77769. --------v-21FEFE-----------------------------
  77770. INT 21 - VIRUS - "CIDER" - INSTALLATION CHECK
  77771. AX = FEFEh
  77772. Return: SI = 1994h if resident
  77773. SeeAlso: AX=FEDCh"VIRUS",AH=FFh"VIRUS"
  77774. --------D-21FF-------------------------------
  77775. INT 21 - DOS v2.11-2.13 - OEM FUNCTION
  77776. AH = FFh
  77777. Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM")
  77778. SeeAlso: AH=F8h"OEM",AH=FEh"OEM"
  77779. --------K-21FF-------------------------------
  77780. INT 21 - CED (Command EDitor) - INSTALLABLE COMMANDS
  77781. AH = FFh
  77782. AL = subfunction
  77783. 00h add installable command
  77784. BL = mode
  77785. bit 0 = 1 callable from DOS prompt
  77786. bit 1 = 1 callable from application
  77787. DS:SI -> CR-terminated command name
  77788. ES:DI -> FAR routine entry point
  77789. 01h remove installable command
  77790. DS:SI -> CR-terminated command name
  77791. 02h reserved, may be used to test for CED installation
  77792. Return: CF clear if successful
  77793. CF set on error
  77794. AX = error code
  77795. 01h invalid function
  77796. 02h command not found (subfunction 01h only)
  77797. 08h insufficient memory (subfunction 00h only)
  77798. 0Eh bad data (subfunction 00h only)
  77799. AH = FFh if CED not installed
  77800. Program: CED is a shareware DOS command-line enhancer by Christopher J. Dunford
  77801. SeeAlso: AX=0A00h
  77802. --------E-21FF-------------------------------
  77803. INT 21 - DJ GO32.EXE 80386+ DOS extender - DOS EXTENSIONS
  77804. AH = FFh
  77805. AL = function
  77806. 01h create file
  77807. 02h open file
  77808. 03h get file statistics
  77809. 04h get time of day
  77810. 05h set time of day
  77811. 06h stat
  77812. 07h system
  77813. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  77814. GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  77815. SeeAlso: INT 10/AH=FFh"GO32"
  77816. --------K-21FF-------------------------------
  77817. INT 21 - DOSED.COM - INSTALLATION CHECK
  77818. AH = FFh
  77819. DS:SI -> "DOSED"
  77820. ES = 0000h
  77821. Return: ES:DI -> "DOSED" if installed
  77822. Program: DOSED is a free DOS commandline editor/history buffer by Sverre H.
  77823. Huseby
  77824. --------v-21FF-------------------------------
  77825. INT 21 - VIRUS - "Sunday", "Tumen 0.5", "Hero" - INSTALLATION CHECK
  77826. AH = FFh
  77827. Return: AH = 00h if "Tumen 0.5" or "Hero" resident
  77828. AX = 0400h if "Sunday" resident
  77829. SeeAlso: AX=FEDCh"VIRUS",AX=FF01h"VIRUS"
  77830. --------E-21FF-------------------------------
  77831. INT 21 UP - Rational Systems DOS/4GW - API
  77832. AH = FFh
  77833. DH = function (00h-17h) (also see separate entries below)
  77834. DL = subfunction or argument
  77835. Return: CF clear if valid function number
  77836. AX = status???
  77837. CF set if invalid function
  77838. SeeAlso: INT 15/AX=BFDCh
  77839. --------E-21FF--DH00-------------------------
  77840. INT 21 UP - Rational Systems DOS/4GW - GET VERSION???
  77841. AH = FFh
  77842. DH = 00h
  77843. DL = ??? (78h seen)
  77844. Return: CF clear
  77845. EAX = 4734FFFFh (high word is byte-swapped "4G") if DOS/4G installed
  77846. Note: Quarterdeck's DESQview/X X Toolkit library uses this call to determine
  77847. whether the direct-mapped linear 4GB segment's selector is 34h or 38h
  77848. SeeAlso: INT 21/AH=FFh/DH=00h"DOS/4GW"
  77849. --------E-21FF--DH02-------------------------
  77850. INT 21 UP - Rational Systems DOS/4GW - SET ???
  77851. AH = FFh
  77852. DH = 02h
  77853. DL = ???
  77854. Return: CF clear
  77855. --------E-21FF--DH05-------------------------
  77856. INT 21 UP - Rational Systems DOS/4GW - ???
  77857. AH = FFh
  77858. DH = 05h
  77859. BX = ???
  77860. Return: ???
  77861. --------E-21FF--DH06-------------------------
  77862. INT 21 UP - Rational Systems DOS/4GW - ???
  77863. AH = FFh
  77864. DH = 06h
  77865. BX = ???
  77866. Return: ???
  77867. --------E-21FF--DH07-------------------------
  77868. INT 21 UP - Rational Systems DOS/4GW - ???
  77869. AH = FFh
  77870. DH = 07h
  77871. BX = ???
  77872. Return: ???
  77873. --------E-21FF--DH08-------------------------
  77874. INT 21 UP - Rational Systems DOS/4GW - ???
  77875. AH = FFh
  77876. DH = 08h
  77877. BX = ???
  77878. CX = ???
  77879. ES = ???
  77880. Return: ???
  77881. --------E-21FF--DH09-------------------------
  77882. INT 21 UP - Rational Systems DOS/4GW - GET ???
  77883. AH = FFh
  77884. DH = 09h
  77885. Return: ES:BX -> ???
  77886. --------E-21FF--DH0A-------------------------
  77887. INT 21 UP - Rational Systems DOS/4GW - ???
  77888. AH = FFh
  77889. DH = 0Ah
  77890. AL = ???
  77891. BX = ???
  77892. CX = ???
  77893. Return: ES = ??? or 0000h
  77894. --------E-21FF--DH0B-------------------------
  77895. INT 21 UP - Rational Systems DOS/4GW - ???
  77896. AH = FFh
  77897. DH = 0Bh
  77898. AL = ???
  77899. BX = ???
  77900. CX = ???
  77901. Return: ???
  77902. --------E-21FF--DH0C-------------------------
  77903. INT 21 UP - Rational Systems DOS/4GW - GET/SET ???
  77904. AH = FFh
  77905. DH = 0Ch
  77906. DL = ??? (00h or 01h)
  77907. Return: CF clear if successful
  77908. AL = previous value of ???
  77909. CF set on error (DL out of range)
  77910. AX = FFFFh
  77911. --------E-21FF--DH0D-------------------------
  77912. INT 21 UP - Rational Systems DOS/4GW - ???
  77913. AH = FFh
  77914. DH = 0Dh
  77915. ???
  77916. Return: ???
  77917. --------E-21FF--DH0E-------------------------
  77918. INT 21 UP - Rational Systems DOS/4GW - ???
  77919. AH = FFh
  77920. DH = 0Eh
  77921. Return: DX:AX -> XBRK structure (see #00508 at INT 15/AX=BF02h)
  77922. BX = ???
  77923. CX = ???
  77924. SeeAlso: INT 15/AX=BF02h
  77925. --------E-21FF--DH0F-------------------------
  77926. INT 21 UP - Rational Systems DOS/4GW - ???
  77927. AH = FFh
  77928. DH = 0Fh
  77929. ???
  77930. Return: ???
  77931. --------E-21FF--DH10-------------------------
  77932. INT 21 UP - Rational Systems DOS/4GW - ???
  77933. AH = FFh
  77934. DH = 10h
  77935. AL = ???
  77936. BX = ???
  77937. CX = ???
  77938. DI = ???
  77939. SI = ???
  77940. Return: ???
  77941. Note: among other things, frees two memory blocks via INT 21/AH=49h
  77942. --------E-21FF--DH11-------------------------
  77943. INT 21 UP - Rational Systems DOS/4GW - NOP
  77944. AH = FFh
  77945. DH = 11h
  77946. --------E-21FF--DH12-------------------------
  77947. INT 21 UP - Rational Systems DOS/4GW - EXCHANGE ??? POINTERS
  77948. AH = FFh
  77949. DH = 12h
  77950. DS:SI -> new ???
  77951. ES:DI -> new ???
  77952. Return: DS:SI -> previous ???
  77953. ES:DI -> previous ???
  77954. --------E-21FF--DH13-------------------------
  77955. INT 21 UP - Rational Systems DOS/4GW - ???
  77956. AH = FFh
  77957. DH = 13h
  77958. AL = ???
  77959. ES = ???
  77960. Return: ???
  77961. --------E-21FF--DH14-------------------------
  77962. INT 21 UP - Rational Systems DOS/4GW - ???
  77963. AH = FFh
  77964. DH = 14h
  77965. BX = ???
  77966. CX = ???
  77967. Return: CF clear
  77968. AX = ???
  77969. DX = ???
  77970. --------E-21FF--DH15-------------------------
  77971. INT 21 UP - Rational Systems DOS/4GW - GET ??? FUNCTIONS
  77972. AH = FFh
  77973. DH = 15h
  77974. Return: CF clear
  77975. DX:AX -> FAR function for ???
  77976. CX:BX -> FAR function for ???
  77977. SI:DI -> FAR function for ???
  77978. --------E-21FF--DH16-------------------------
  77979. INT 21 UP - Rational Systems DOS/4GW - GET ???
  77980. AH = FFh
  77981. DH = 16h
  77982. Return: AX = ???
  77983. --------E-21FF--DH17-------------------------
  77984. INT 21 UP - Rational Systems DOS/4GW - ???
  77985. AH = FFh
  77986. DH = 17h
  77987. AL = ???
  77988. DL = ???
  77989. Return: ???
  77990. --------N-21FF00-----------------------------
  77991. INT 21 - TopWare Network OS v5.10+ - GET SYSTEM INFORMATION
  77992. AX = FF00h
  77993. CL = what to get
  77994. 00h user information (see #02528)
  77995. 01h drive mapping (see #02529)
  77996. 02h printer server(s)
  77997. 05h local DOS drive number
  77998. Return: ES:BX -> desired information
  77999. Program: TopWare Network Operating System is manufactured by Grand Computer
  78000. Company
  78001. Note: this call is only supported on Workstations, not on the server
  78002. SeeAlso: AX=FF04h,INT 2F/AX=FF00h
  78003. Format of TopWare user information:
  78004. Offset Size Description (Table 02528)
  78005. 00h BYTE node ID
  78006. 01h 15 BYTEs user name
  78007. 10h WORD user number
  78008. 12h BYTE group number
  78009. Format of TopWare drive mapping [array]:
  78010. Offset Size Description (Table 02529)
  78011. 00h BYTE bits 6-0: drive number (1=A:, etc.)
  78012. bit 7: this is a server drive
  78013. 01h 3 BYTEs mapping drive (for example, "C:\")
  78014. 04h 64 BYTEs current directory
  78015. --------E-21FF00DX0078-----------------------
  78016. INT 21 - Rational Systems DOS/4G - INSTALLATION CHECK
  78017. AX = FF00h
  78018. DX = 0078h
  78019. Return: AL <> 00h if installed
  78020. GS = segment of kernel if nonzero
  78021. SeeAlso: INT 15/AX=BF02h
  78022. --------v-21FF01-----------------------------
  78023. INT 21 - VIRUS - "Drop" - INSTALLATION CHECK
  78024. AX = FF01h
  78025. Return: AX = 01FFh if resident
  78026. SeeAlso: AH=FEh"VIRUS",AX=FF0Fh"FLU_SHOT"
  78027. --------N-21FF04-----------------------------
  78028. INT 21 - TopWare Network OS v5.10+ - GET/SET DEFAULT FILE PROTECTION ATTRIBS
  78029. AX = FF04h
  78030. CL = function
  78031. 00h get protections
  78032. Return: BH = read attribute
  78033. BL = write attribute
  78034. 01h set protections
  78035. BH = read attribute
  78036. BL = write attribute
  78037. Note: this function is supported only on Workstations, not on the server
  78038. SeeAlso: AX=FF00h"TopWare"
  78039. --------v-21FF0F-----------------------------
  78040. INT 21 - FLU_SHOT+ v1.83 - INSTALLATION CHECK
  78041. AX = FF0Fh
  78042. Return: AX = 0101h if resident
  78043. Program: FLU_SHOT+ is an antivirus/antitrojan program by Ross M. Greenberg and
  78044. Software Concepts Design
  78045. Note: the "PSQR/1720" virus calls this function to determine whether
  78046. FLU_SHOT+ is present
  78047. SeeAlso: AH=FFh"VIRUS",AX=FF10h"VIRUS"
  78048. --------v-21FF10-----------------------------
  78049. INT 21 - VIRUS - "Twins" - INSTALLATION CHECK
  78050. AX = FF10h
  78051. Return: AL = 07h if resident
  78052. SeeAlso: AX=FF0Fh,AX=FFFEh
  78053. --------N-21FF80DHFF-------------------------
  78054. INT 21 - TopWare Network OS v5.10+ - SEND MESSAGE
  78055. AX = FF80h
  78056. DH = FFh
  78057. DL = destination address (FFh for broadcast)
  78058. CX = message length (max 2000)
  78059. DS:SI -> message to be sent (see #02530)
  78060. Return: nothing
  78061. Program: TopWare Network Operating System is manufactured by Grand Computer
  78062. Company
  78063. Notes: this function is supported on both Workstations and the server
  78064. there is no guarantee that the message will be received correctly, or
  78065. at all, by the destination
  78066. Format of TopWare message:
  78067. Offset Size Description (Table 02530)
  78068. 00h BYTE type code
  78069. 07h TopSend
  78070. 11h user application
  78071. other reserved for TopWare
  78072. 01h var data
  78073. Note: sending messages with a type code other than 11h will cause
  78074. unpredictable results
  78075. --------N-21FF82-----------------------------
  78076. INT 21 - TopWare Network OS v5.10+ - GET STATION ADDRESS
  78077. AX = FF82h
  78078. Return: AL = station address
  78079. Note: this function is supported on both Workstations and the server
  78080. SeeAlso: AX=FF91h
  78081. --------N-21FF8C-----------------------------
  78082. INT 21 - TopWare Network OS v5.10+ - GET STATUS OF TopShow/Emulated FUNCTION
  78083. AX = FF8Ch
  78084. BL = subfunction
  78085. 00h get TopShow status
  78086. FFh get Emulated status
  78087. Return: AL = status
  78088. 00h not installed
  78089. 01h already installed
  78090. --------N-21FF8D-----------------------------
  78091. INT 21 - TopWare Network OS v5.10+ - CALL TopShow FUNCTION
  78092. AX = FF8Dh
  78093. CH = monochrome flag (01h monochrome, 00h not monochrome)
  78094. CL = screen mode of station to be viewed (see #02531)
  78095. BL = graphic page number for monochrome
  78096. Return: AL = status (00h successful, else failed)
  78097. SeeAlso: AX=FF8Eh,AX=FFCFh
  78098. (Table 02531)
  78099. Values for TopWare screen mode:
  78100. 00h text mode
  78101. 01h 720x348
  78102. 02h 640x408
  78103. 03h 720x352
  78104. 04h 640x390
  78105. 05h reserved
  78106. --------N-21FF8E-----------------------------
  78107. INT 21 - TopWare Network OS v5.10+ - CANCEL TopShow FUNCTION
  78108. AX = FF8Eh
  78109. Return: AL = 00h (successful, TopShow removed)
  78110. SeeAlso: AX=FF8Dh
  78111. --------N-21FF91-----------------------------
  78112. INT 21 - TopWare Network OS v5.10+ - GET FILE SERVER STATION NUMBER
  78113. AX = FF91h
  78114. Return: AL = station number of file server
  78115. SeeAlso: AX=FF82h
  78116. --------N-21FF97-----------------------------
  78117. INT 21 - TopWare Network OS v5.10+ - GET MAXIMUM STATION NUMBER (server only)
  78118. AX = FF97h
  78119. Return: AL = maximum station number
  78120. SeeAlso: AX=FF98h
  78121. --------N-21FF98-----------------------------
  78122. INT 21 - TopWare Network OS v5.10+ - GET MAXIMUM FILE NUMBER (server only)
  78123. AX = FF98h
  78124. Return: AL = maximum file
  78125. SeeAlso: AX=FF97h
  78126. --------N-21FF9A-----------------------------
  78127. INT 21 - TopWare Network OS v5.10+ - RECEIVE OF USER-DEFINED PACKETS
  78128. AX = FF9Ah
  78129. ES:BX -> buffer for user-defined packet (see #02532)
  78130. Return: nothing
  78131. Format of TopWare user-defined packet:
  78132. Offset Size Description (Table 02532)
  78133. 00h BYTE FFh
  78134. 01h WORD (call) length of data field plus 3
  78135. (ret) length of received message (0000h if none received)
  78136. 03h BYTE destination ID (FFh for broadcast message)
  78137. 04h BYTE sending station ID
  78138. 05h BYTE type code (11h; all other codes reserved for TopWare)
  78139. 06h N BYTEs received message
  78140. --------N-21FF9F-----------------------------
  78141. INT 21 - TopWare Network OS v5.10+ - ENABLE/DISABLE TopTerm SERVICE
  78142. AX = FF9Fh
  78143. CL = new state (00h disable [disregard TopTerm packets], 01h enable)
  78144. Return: AL = status (00h successful, FFh failed)
  78145. Note: this function is only supported by Workstations, not the server
  78146. --------N-21FFB0-----------------------------
  78147. INT 21 - TopWare Network OS v5.10+ - GET SPOOLER PRINTING PRIORITY
  78148. AX = FFB0h
  78149. Return: AL = priority status (see #02533)
  78150. SeeAlso: AX=FFB1h
  78151. Bitfields for TopWare printer priority status:
  78152. Bit(s) Description (Table 02533)
  78153. 2 LPT3 has high priority
  78154. 1 LPT2 has high priority
  78155. 0 LPT1 has high priority
  78156. --------N-21FFB1-----------------------------
  78157. INT 21 - TopWare Network OS v5.10+ - SET SPOOLER PRINTING PRIORITY
  78158. AX = FFB1h
  78159. CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  78160. CH = new priority (00h normal, 01h high)
  78161. Return: nothing
  78162. SeeAlso: AX=FFB0h
  78163. --------N-21FFB3-----------------------------
  78164. INT 21 - TopWare Network OS v5.10+ - GET DEFAULT START-OF-JOB FORMFEED STATUS
  78165. AX = FFB3h
  78166. Return: AL = starting formfeed status (see #02534)
  78167. SeeAlso: AX=FFB4h,AX=FFC0h
  78168. Bitfields for TopWare printer start-of-job formfeed status:
  78169. Bit(s) Description (Table 02534)
  78170. 2 LPT3 has formfeed enabled
  78171. 1 LPT2 has formfeed enabled
  78172. 0 LPT1 has formfeed enabled
  78173. --------N-21FFB4-----------------------------
  78174. INT 21 - TopWare Network OS v5.10+ - SET DEFAULT START-OF-JOB FORMFEED STATUS
  78175. AX = FFB4h
  78176. CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  78177. CH = new formfeed status (00h off, 01h on)
  78178. Return: nothing
  78179. SeeAlso: AX=FFB3h,AX=FFC1h
  78180. --------N-21FFBB-----------------------------
  78181. INT 21 - TopWare Network OS v5.10+ - GET PRINTER SERVER STATION ADDRESS
  78182. AX = FFBBh
  78183. CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  78184. Return: AL = current mapping printer server station number
  78185. 00h if local
  78186. SeeAlso: AX=FFBCh
  78187. --------N-21FFBC-----------------------------
  78188. INT 21 - TopWare Network OS v5.10+ - CANCEL TopShow FUNCTION
  78189. AX = FFBCh
  78190. CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  78191. CL = printer server station address or 00h for local printer
  78192. Return: AL = status (00h successful, else failed)
  78193. SeeAlso: AX=FFBBh
  78194. --------N-21FFBD-----------------------------
  78195. INT 21 - TopWare Network OS v5.10+ - GET CURRENT AUTOPRINT TIME
  78196. AX = FFBDh
  78197. CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  78198. Return: AX = current AutoPrint timeout in clock ticks
  78199. SeeAlso: AX=FFBEh
  78200. --------N-21FFBE-----------------------------
  78201. INT 21 - TopWare Network OS v5.10+ - SET AUTOPRINT TIME
  78202. AX = FFBEh
  78203. CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  78204. BX = timeout in clock ticks
  78205. SeeAlso: AX=FFBDh
  78206. --------N-21FFBF-----------------------------
  78207. INT 21 - TopWare Network OS v5.10+ - GET LOGON USER INFORMATION
  78208. AX = FFBFh
  78209. DX:BX -> buffer for logon information (see #02535)
  78210. Return: AL = status (00h successful, else failed)
  78211. AH = number of logged-in stations
  78212. Format of TopWare logon information:
  78213. Offset Size Description (Table 02535)
  78214. 00h BYTE station address
  78215. 01h 15 BYTEs username
  78216. --------N-21FFC0-----------------------------
  78217. INT 21 - TopWare Network OS v5.10+ - GET DEFAULT END-OF-JOB FORMFEED STATUS
  78218. AX = FFC0h
  78219. Return: AL = ending formfeed status (see #02536)
  78220. SeeAlso: AX=FFB3h,AX=FFC1h
  78221. Bitfields for TopWare printer end-of-job formfeed status:
  78222. Bit(s) Description (Table 02536)
  78223. 2 LPT3 has formfeed enabled
  78224. 1 LPT2 has formfeed enabled
  78225. 0 LPT1 has formfeed enabled
  78226. --------N-21FFC1-----------------------------
  78227. INT 21 - TopWare Network OS v5.10+ - SET DEFAULT END-OF-JOB FORMFEED STATUS
  78228. AX = FFC1h
  78229. CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  78230. CH = new formfeed status (00h off, 01h on)
  78231. Return: nothing
  78232. SeeAlso: AX=FFB4h,AX=FFC0h
  78233. --------N-21FFC2-----------------------------
  78234. INT 21 - TopWare Network OS v5.10+ - GET DEFAULT COPIES OF SPOOLING FILE
  78235. AX = FFC2h
  78236. CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  78237. Return: AL = default number of copies printed
  78238. SeeAlso: AX=FFC7h
  78239. --------N-21FFC3-----------------------------
  78240. INT 21 - TopWare Network OS v5.10+ - GET SHARING STATUS OF PRINTER SERVER
  78241. AX = FFC3h
  78242. Return: AL = sharing status of printers (see #02537)
  78243. FFh if not a printer server
  78244. Bitfields for TopWare printer sharing status:
  78245. Bit(s) Description (Table 02537)
  78246. 2 LPT3 is shared
  78247. 1 LPT2 is shared
  78248. 0 LPT1 is shared
  78249. --------N-21FFC4-----------------------------
  78250. INT 21 - TopWare Network OS v5.10+ - GET/SET LPT PORT ON PRINT SERVER
  78251. AX = FFC4h
  78252. BL = subfunction
  78253. 00h get
  78254. Return: AL = mapped printer port on print server
  78255. 01h set
  78256. CL = network printer port (00h LPT1, 01h LPT2, 02h LPT3)
  78257. CH = local printer (00h LPT1, 01h LPT2, 02h LPT3)
  78258. --------N-21FFC6-----------------------------
  78259. INT 21 - TopWare Network OS v5.10+ - SET DEFAULT PRINT FILE HEADER
  78260. AX = FFC6h
  78261. CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  78262. CL = header state (00h off, 01h on)
  78263. SeeAlso: AX=FFC8h
  78264. --------N-21FFC7-----------------------------
  78265. INT 21 - TopWare Network OS v5.10+ - SET DEFAULT PRINT COPIES
  78266. AX = FFC7h
  78267. CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  78268. CL = new default number of copies to print
  78269. SeeAlso: AX=FFC2h
  78270. --------N-21FFC8-----------------------------
  78271. INT 21 - TopWare Network OS v5.10+ - GET DEFAULT PRINT FILE HEADER STATUS
  78272. AX = FFC8h
  78273. Return: AL = header status for printers (see #02538)
  78274. SeeAlso: AX=FFC6h
  78275. Bitfields for TopWare print header status:
  78276. Bit(s) Description (Table 02538)
  78277. 2 LPT3 has headers enabled
  78278. 1 LPT2 has headers enabled
  78279. 0 LPT1 has headers enabled
  78280. --------N-21FFC9-----------------------------
  78281. INT 21 - TopWare Network OS v5.10+ - SET PRINTER SHARING
  78282. AX = FFC9h
  78283. CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  78284. CL = new sharing state (00h off, 01h on)
  78285. Return: AL = status (00h successful, FFh not printer server)
  78286. --------N-21FFCA-----------------------------
  78287. INT 21 - TopWare Network OS v5.10+ - MOVE FILE FROM ONE PRINT SERVER TO ANOTHER
  78288. AX = FFCAh
  78289. CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  78290. CL = original printer server station address
  78291. BL = target printer server station address
  78292. DS:DX -> filename (12 bytes)
  78293. Return: AL = status (00h successful, else failed)
  78294. SeeAlso: AX=FFCBh
  78295. --------N-21FFCB-----------------------------
  78296. INT 21 - TopWare Network OS v5.10+ - DELETE FILE FROM SPOOLING QUEUE
  78297. AX = FFCBh
  78298. CH = printer number (00h LPT1, 01h LPT2, 02h LPT3)
  78299. CL = printer server station address
  78300. DS:DX -> filename (12 bytes)
  78301. Return: AL = status (00h successful, else failed)
  78302. SeeAlso: AX=FFCAh
  78303. --------N-21FFCC-----------------------------
  78304. INT 21 - TopWare Network OS v5.10+ - GET PRINT SERVER'S SPOOLING QUEUE STATUS
  78305. AX = FFCCh
  78306. CL = printer server station address
  78307. BH = start item number of spooling file for print server
  78308. BL = number of the item to be retrieved
  78309. DS:DX -> buffer for queued file information (see #02539)
  78310. Return: AL = status
  78311. 00h successful
  78312. AH = number of spool files
  78313. DS:DX buffer filled
  78314. nonzero failed
  78315. Format of TopWare queued file information buffer [16-item array, one element]:
  78316. Offset Size Description (Table 02539)
  78317. 00h 12 BYTEs filename
  78318. 0Ch DWORD size
  78319. 10h WORD date
  78320. 12h WORD time
  78321. 14h 15 BYTEs username
  78322. 23h BYTE count
  78323. 24h BYTE flag: header
  78324. 25h BYTE print number
  78325. --------N-21FFCD-----------------------------
  78326. INT 21 - TopWare Network OS v5.10+ - GET STATUS OF ALL PRINT SERVERS
  78327. AX = FFCDh
  78328. DS:DX -> buffer for server status (see #02540)
  78329. Return: AL = status
  78330. 00h successful
  78331. AH = number of print servers
  78332. nonzero failed
  78333. Format of TopWare server status:
  78334. Offset Size Description (Table 02540)
  78335. 00h BYTE station address
  78336. 01h 15 BYTEs username
  78337. 10h BYTE flag: 01h printer is shared, 00h sharing disabled
  78338. 11h BYTE number of files pending in queue
  78339. --------N-21FFCF-----------------------------
  78340. INT 21 - TopWare Network OS v5.10+ - CALL TopLook FUNCTION
  78341. AX = FFCFh
  78342. DH = page number (0-2, 2 is text mode)
  78343. DL = type
  78344. 00h look at specific screen
  78345. 01h AutoLook on
  78346. FFh AutoLook off
  78347. BH = station number wishing to look
  78348. BL = station number to be looked at
  78349. CH = monochrome flag (01h monochrome, 00h not monochrome)
  78350. CL = screen mode (see #02531)
  78351. Return: AL = status (00h successful, nonzero failed)
  78352. SeeAlso: AX=FF8Dh
  78353. --------N-21FFD6-----------------------------
  78354. INT 21 - TopWare Network OS v5.10+ - GET KEYCARD SERIAL NUMBER AND MAX USERS
  78355. AX = FFD6h
  78356. ES:BX -> 12-byte buffer for keycard serial number
  78357. Return: CX = maximum number of users
  78358. ES:BX buffer filled
  78359. --------N-21FFD7-----------------------------
  78360. INT 21 - TopWare Network OS v5.10+ - GET NETWORK PROTECTION ATTRIBUTES STATUS
  78361. AX = FFD7h
  78362. Return: AL = status (00h disabled, 01h enabled)
  78363. --------N-21FFE3DL00-------------------------
  78364. INT 21 - TopWare Network OS v5.10+ - INITIATE ACCESS TO SPECIFIC PACKET TYPE
  78365. AX = FFE3h
  78366. DL = 00h
  78367. BX = packet type for Ethernet header (IP = 0800h, ARP = 0806h, etc.)
  78368. ES:DI -> receive routine (see #02542)
  78369. Return: CF clear if successful
  78370. AX = handle number
  78371. CF set on error
  78372. DH = error code (03h,05h,09h,0Ah,11h) (see #02541)
  78373. SeeAlso: AX=FFE3h/DL=01h
  78374. (Table 02541)
  78375. Values for TopWare error code:
  78376. 01h invalid handle
  78377. 03h no interfaces of the specified type found
  78378. 05h bad packet type
  78379. 09h insufficient space
  78380. 0Ah type already being accessed
  78381. 0Ch unable to send packet (usually hardware error)
  78382. 11h invalid function
  78383. (Table 02542)
  78384. Values TopWare receive routine is called with:
  78385. AX = function
  78386. 0000h request packet buffer
  78387. CX = packet size
  78388. Return: ES:DI -> buffer or 0000h:0000h to discard packet
  78389. 0001h packet copied
  78390. CX = packet size
  78391. DS:SI -> copied packet (same as returned ES:DI above)
  78392. --------N-21FFE3DL01-------------------------
  78393. INT 21 - TopWare Network OS v5.10+ - END ACCESS TO SPECIFIC PACKET TYPE
  78394. AX = FFE3h
  78395. DL = 01h
  78396. BX = handle returned by AX=FFE3h/DL=00h
  78397. Return: CF clear if successful
  78398. CF set on error
  78399. DH = error code (01h,11h) (see #02541)
  78400. Note: the specified access handle will no longer be valid after this call
  78401. SeeAlso: AX=FFE3h/DL=00h
  78402. --------N-21FFE3DL02-------------------------
  78403. INT 21 - TopWare Network OS v5.10+ - SEND PACKET
  78404. AX = FFE3h
  78405. DL = 02h
  78406. CX = length of data buffer
  78407. DS:SI -> buffer containing data
  78408. Return: CF clear if successful
  78409. CF set on error
  78410. DH = error code (0Ch,11h) (see #02541)
  78411. --------N-21FFE3DL03-------------------------
  78412. INT 21 - TopWare Network OS v5.10+ - GET LOCAL NETWORK INTERFACE ADDRESS
  78413. AX = FFE3h
  78414. DL = 03h
  78415. ES:DI -> 6-byte buffer for address
  78416. SeeAlso: AX=FFE3h/DL=00h
  78417. --------v-21FFFE-----------------------------
  78418. INT 21 - VIRUS - "08/15"/"Many Fingers" - INSTALLATION CHECK
  78419. AX = FFFEh
  78420. Return: AX = 0815h if resident
  78421. SeeAlso: AX=FF10h,AX=FFFEh/BX=0000h
  78422. --------v-21FFFEBX0000-----------------------
  78423. INT 21 - VIRUS - "Anti-Thunderbyte/LEMMING" - INSTALLATION CHECK
  78424. AX = FFFEh
  78425. BX = 0000h
  78426. Return: BX = FFFFh if resident
  78427. SeeAlso: AX=FFFEh,AX=FFFFh
  78428. --------v-21FFFF-----------------------------
  78429. INT 21 - VIRUS - "Ontario", "Year 1992"/"B1M92" - INSTALLATION CHECK
  78430. AX = FFFFh
  78431. Return: AX = 0000h if "Ontario" resident
  78432. AX = 1992h if "Year 1992"/"B1M92" resident
  78433. SeeAlso: AX=FF0Fh,AX=FFFFh/CX=0000h,INT 6B"VIRUS"
  78434. --------v-21FFFFCX0000-----------------------
  78435. INT 21 - VIRUS - "Revenge" - INSTALLATION CHECK
  78436. AX = FFFFh
  78437. CX = 0000h
  78438. Return: CX = 0006h if resident
  78439. SeeAlso: AX=FFFFh,INT 6B"VIRUS"
  78440. --------D-22---------------------------------
  78441. INT 22 - DOS 1+ - PROGRAM TERMINATION ADDRESS
  78442. Desc: this vector specifies the address of the routine which is to be given
  78443. control after a program is terminated; it should never be called
  78444. directly, since it does not point at an interrupt handler
  78445. Notes: this vector is restored from the DWORD at offset 0Ah in the PSP during
  78446. termination, and then a FAR JMP is performed to the address in INT 22
  78447. normally points at the instruction immediately following INT 21/AH=4Bh
  78448. call which loaded the current program
  78449. SeeAlso: INT 20,INT 21/AH=00h,INT 21/AH=31h,INT 21/AH=4Ch
  78450. --------G-22---------------------------------
  78451. INT 22 - COMTROL HOSTESS i/ISA DEBUGGER - CHANGE FIRMWARE DEBUGGING PORT
  78452. AL = new firmware debugging port
  78453. Return: ???
  78454. SeeAlso: INT 21"COMTROL",INT 23"COMTROL"
  78455. --------D-23---------------------------------
  78456. INT 23 - DOS 1+ - CONTROL-C/CONTROL-BREAK HANDLER
  78457. ---DOS 1.x---
  78458. Return: AH = 00h abort program
  78459. if all registers preserved, restart DOS call
  78460. ---DOS 2+---
  78461. CF clear
  78462. Return: all registers preserved
  78463. return via RETF with CF set or (MS-DOS 1,DR DOS) RETF 2 with CF set
  78464. DOS will abort program with errorlevel 0
  78465. else (RETF/RETF 2 with CF clear or IRET with CF ignored)
  78466. interrupted DOS call is restarted
  78467. Notes: this interrupt is invoked whenever DOS detects a ^C or ^Break; it
  78468. should never be called directly
  78469. MS-DOS 1.25 also invokes INT 23 on a divide overflow (INT 00)
  78470. MS-DOS remembers the stack pointer before calling INT 23, and if it is
  78471. not the same on return, pops and discards the top word; this is what
  78472. permits a return with RETF as well as IRET or RETF 2
  78473. MS-DOS 2.1+ ignores the returned CF if SP is the same on return as it
  78474. was when DOS called INT 23, so RETF 2 will not terminate the program
  78475. Novell DOS 7 always pops a word if CF is set on return, so one should
  78476. not return with RETF 2 and CF set or IRET with the stored flags' CF
  78477. set
  78478. any DOS call may safely be made within the INT 23 handler, although
  78479. the handler must check for a recursive invocation if it does
  78480. call DOS
  78481. SeeAlso: INT 1B
  78482. --------G-23---------------------------------
  78483. INT 23 - COMTROL HOSTESS i/ISA DEBUGGER - GET CONFIGURATION INFORMATION
  78484. AL = query type
  78485. 00h get old config map
  78486. Return: AX = old config map
  78487. 01h get dual-ported RAM map
  78488. Return: BX:AX = dual-ported RAM map
  78489. 02h get SCC port map
  78490. Return: BX:AX = SCC port map
  78491. SeeAlso: INT 22"COMTROL",INT 26"COMTROL"
  78492. --------D-24---------------------------------
  78493. INT 24 C - DOS 1+ - CRITICAL ERROR HANDLER
  78494. Notes: invoked when a critical (usually hardware) error is encountered by DOS
  78495. (see #02543); should never be called directly
  78496. when DOS terminates a program, it copies the previous value of the
  78497. INT 24 vector out of the PSP (see #01378) and into the interrupt
  78498. vector table
  78499. SeeAlso: INT 21/AH=95h
  78500. (Table 02543)
  78501. Values critical error handler is called with:
  78502. AH = type and processing flags (see #02544)
  78503. AL = drive number if AH bit 7 clear
  78504. BP:SI -> device driver header (see #01646 at INT 21/AH=52h)
  78505. (BP:[SI+4] bit 15 set if character device)
  78506. DI low byte contains error code if AH bit 7 set (see #02545)
  78507. STACK: DWORD return address for INT 24 call
  78508. WORD flags pushed by INT 24
  78509. WORD original AX on entry to INT 21
  78510. WORD BX
  78511. WORD CX
  78512. WORD DX
  78513. WORD SI
  78514. WORD DI
  78515. WORD BP
  78516. WORD DS
  78517. WORD ES
  78518. DWORD return address for INT 21 call
  78519. WORD flags pushed by INT 21
  78520. Return: AL = action code (see #02546)
  78521. SS,SP,DS,ES,BX,CX,DX preserved
  78522. Notes: the only DOS calls the handler may make are INT 21/AH=01h-0Ch,30h,59h
  78523. if the handler returns to the application by popping the stack, DOS
  78524. will be in an unstable state until the first call with AH > 0Ch
  78525. for DOS 3.1+, IGNORE (AL=00h) is turned into FAIL (AL=03h) on network
  78526. critical errors
  78527. if IGNORE specified but not allowed, it is turned into FAIL
  78528. if RETRY specified but not allowed, it is turned into FAIL
  78529. if FAIL specified but not allowed, it is turned into ABORT
  78530. (DOS 3.0+) if a critical error occurs inside the critical error
  78531. handler, the DOS call is automatically failed (AL set to 03h and
  78532. the INT 24 call skipped)
  78533. Bitfields for critical error type and processing flags:
  78534. Bit(s) Description (Table 02544)
  78535. 7 clear = disk I/O error
  78536. set = -- if block device, bad FAT image in memory
  78537. -- if char device, error code in DI
  78538. 6 unused
  78539. 5 Ignore allowed (DOS 3.0+)
  78540. 4 Retry allowed (DOS 3.0+)
  78541. 3 Fail allowed (DOS 3.0+)
  78542. 2-1 disk area of error
  78543. 00 = DOS area 01 = FAT
  78544. 10 = root dir 11 = data area
  78545. 0 set if write, clear if read
  78546. SeeAlso: #02545,#02546
  78547. (Table 02545)
  78548. Values for critical error code:
  78549. 00h write-protection violation attempted
  78550. 01h unknown unit for driver
  78551. 02h drive not ready
  78552. 03h unknown command given to driver
  78553. 04h data error (bad CRC)
  78554. 05h bad device driver request structure length
  78555. 06h seek error
  78556. 07h unknown media type
  78557. 08h sector not found
  78558. 09h printer out of paper
  78559. 0Ah write fault
  78560. 0Bh read fault
  78561. 0Ch general failure
  78562. 0Dh (DOS 3.0+) sharing violation
  78563. 0Eh (DOS 3.0+) lock violation
  78564. 0Fh invalid disk change
  78565. 10h (DOS 3.0+) FCB unavailable
  78566. 11h (DOS 3.0+) sharing buffer overflow
  78567. 12h (DOS 4.0+) code page mismatch
  78568. 13h (DOS 4.0+) out of input
  78569. 14h (DOS 4.0+) insufficient disk space
  78570. SeeAlso: #02544,#02546
  78571. (Table 02546)
  78572. Values for critical error handler action code:
  78573. 00h ignore error and continue processing request
  78574. 01h retry operation
  78575. 02h terminate program as though INT 21/AH=4Ch called (INT 20h for DOS 1.x)
  78576. 03h fail system call in progress (DOS 3+)
  78577. SeeAlso: #02544,#02546
  78578. --------D-25---------------------------------
  78579. INT 25 - DOS 1+ - ABSOLUTE DISK READ (except partitions > 32M)
  78580. AL = drive number (00h = A:, 01h = B:, etc)
  78581. CX = number of sectors to read (not FFFFh)
  78582. DX = starting logical sector number (0000h - highest sector on drive)
  78583. DS:BX -> buffer for data
  78584. Return: CF clear if successful
  78585. CF set on error
  78586. AH = status (see #02547)
  78587. AL = error code (same as passed to INT 24 in DI)
  78588. AX = 0207h if more than 64K sectors on drive -- use new-style call
  78589. may destroy all other registers except segment registers
  78590. Notes: original flags are left on stack, and must be popped by caller
  78591. this call bypasses the DOS filesystem
  78592. examination of CPWIN386.CPL indicates that if this call fails with
  78593. error 0408h on an old-style (<32M) call, one should retry the
  78594. call with the high bit of the drive number in AL set
  78595. Novell DOS 7 decides whether the old-style or new-style (>32M) version
  78596. of INT 25 must be used solely on the basis of the partition's size,
  78597. thus forcing use of the new-style call even for data in the first
  78598. 32M of the partition
  78599. BUGS: DOS 3.1 through 3.3 set the word at ES:[BP+1Eh] to FFFFh if AL is an
  78600. invalid drive number
  78601. DR DOS 3.41 will return with a jump instead of RETF, leaving the
  78602. wrong number of bytes on the stack; use the huge-partition version
  78603. (INT 25/CX=FFFFh) for all partition sizes under DR DOS 3.41
  78604. SeeAlso: INT 13/AH=02h,INT 25/CX=FFFFh,INT 26,INT 21/AX=7305h
  78605. (Table 02547)
  78606. Values for disk I/O status:
  78607. 80h device failed to respond (timeout)
  78608. 40h seek operation failed
  78609. 20h controller failed
  78610. 10h data error (bad CRC)
  78611. 08h DMA failure
  78612. 04h requested sector not found
  78613. 03h write-protected disk (INT 26 only)
  78614. 02h bad address mark
  78615. 01h bad command
  78616. --------D-25----CXFFFF-----------------------
  78617. INT 25 - DOS 3.31+ - ABSOLUTE DISK READ (32M-2047M hard-disk partition)
  78618. CX = FFFFh
  78619. AL = drive number (0=A, 1=B, etc)
  78620. DS:BX -> disk read packet (see #02548)
  78621. Return: CF clear if successful
  78622. CF set on error
  78623. AH = status (see #02547)
  78624. AL = error code (same as passed to INT 24 in DI)
  78625. AX = 0207h for FAT32 drive -- use INT 21/AX=7305h
  78626. may destroy all other registers except segment registers; Win9X always
  78627. sets SI to 0000h due to an apparent coding bug
  78628. Notes: partition is potentially >32M (and requires this form of the call) if
  78629. bit 1 of the device attribute word in the device driver is set
  78630. original flags are left on stack, and must be removed by caller
  78631. this call bypasses the DOS filesystem
  78632. for FAT32 drives (which may be up to 2TB in size), use INT 21/AX=7305h
  78633. SeeAlso: INT 13/AH=02h,INT 25,INT 26/CX=FFFFh,INT 21/AX=7305h
  78634. Format of disk read packet:
  78635. Offset Size Description (Table 02548)
  78636. 00h DWORD sector number
  78637. 04h WORD number of sectors to read
  78638. 06h DWORD transfer address
  78639. SeeAlso: #02552
  78640. --------k-25CDCD-----------------------------
  78641. INT 25 - Stacker - GET DEVICE DRIVER ADDRESS
  78642. AX = CDCDh
  78643. DS:BX -> buffer for address (see #02549)
  78644. CX = 0001h
  78645. DX = 0000h
  78646. Return: AX = CDCDh if Stacker installed
  78647. DS:BX buffer filled
  78648. Note: not supported by Stacker Anywhere; to obtain the Stacker device
  78649. driver address and to detect drives controlled by all versions
  78650. of Stacker, INT 21/AX=4404h"Stacker" or lookup via the CDS and DPB
  78651. should be preferred (see INT 21/AH=52h)
  78652. Stacker Anywhere does not link its built-in device driver into
  78653. the standard device driver chain, but it can be found via CDS/DPB
  78654. SeeAlso: INT 21/AX=4404h"Stacker"
  78655. Format of Stacker v2+ driver address buffer:
  78656. Offset Size Description (Table 02549)
  78657. 00h WORD signature CDCDh
  78658. 02h WORD ??? 0001h
  78659. 04h DWORD pointer to Stacker signature at device driver offset 1Ah
  78660. (see #02550)
  78661. Format of Stacker v2+ device driver:
  78662. Offset Size Description (Table 02550)
  78663. 00h DWORD pointer to next driver, offset=FFFFh if last driver
  78664. FFFFh:FFFFh for Stacker Anywhere
  78665. 04h WORD device attributes (see #01647,#01648)
  78666. 06h WORD device strategy entry point
  78667. 08h WORD device interrupt entry point
  78668. 0Ah BYTE number of subunits (drives) supported by driver
  78669. 0 for Stacker Anywhere
  78670. 0Bh 7 BYTEs signature "STAC-CD" for Stacker and Stacker Anywhere
  78671. 12h 7 BYTEs ???
  78672. 19h BYTE always = 01h ?? (Stacker Anywhere points here)
  78673. 1Ah WORD signature A55Ah (all other Stacker versions point here)
  78674. 1Ch WORD Stacker version * 64h
  78675. 0C8h = 200, 012Ch = 300, 0190h = 400 (also Stacker Anywhere)
  78676. 1Eh WORD offset of volume-specific information offset table
  78677. (list of WORDs, one per drive, containing offsets to various
  78678. information)
  78679. 20h 56 BYTEs n/a
  78680. 58h BYTE volume number, set after INT 21/AX=4404h, INT 21/AX=4408h
  78681. (use to index into volume-specific info offset table,
  78682. should be set to FFh before and tested for change after)
  78683. 59h 19 BYTEs n/a
  78684. 6Ch 4 BYTEs ASCII string "SWAP"
  78685. 70h 26 BYTEs drive mapping table (one byte for each drive A: through Z:)
  78686. (only used for drives swapped by SSWAP.COM; other drives
  78687. compressed by Stacker can be found with the standard device
  78688. driver header signature (see INT 21/AH=52h)
  78689. ---Stacker 4, Stacker Anywhere---
  78690. 8Ah 40 BYTEs ???
  78691. B2h 4 BYTEs ASCII string "SWP2"
  78692. B6h 26 BYTEs drive table ???
  78693. D0h 150 BYTEs ???
  78694. 166h 60 BYTEs LZSINFO structure (see #02808 at INT 2F/AX=4A12h)
  78695. SeeAlso: #02551,#01646 at INT 21/AH=52h
  78696. Format of Stacker boot record:
  78697. Offset Size Description (Table 02551)
  78698. 1F0h 8 BYTEs Stacker signature (first byte is CDh)
  78699. 1F8h DWORD pointer to start of Stacker device driver
  78700. 1FCh WORD Stacker volume number
  78701. 1FEh WORD ???
  78702. SeeAlso: #02550
  78703. --------c-25--FFSI4358-----------------------
  78704. INT 25 - PC-CACHE.SYS - INSTALLATION CHECK
  78705. AL = FFh
  78706. SI = 4358h
  78707. Return: SI = 6378h if installed
  78708. CX = segment of device driver PC-CACHE.SYS
  78709. DX = version (major in DH, minor in DL)
  78710. Program: PC-CACHE.SYS is a small device driver used by PC-Cache v5.x to obtain
  78711. access to certain disk drivers for devices such as Bernoulli drives
  78712. SeeAlso: INT 13/AH=A0h
  78713. --------!---Section--------------------------
  78714. Interrupt List, part 11 of 18
  78715. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  78716. --------D-26---------------------------------
  78717. INT 26 - DOS 1+ - ABSOLUTE DISK WRITE (except partitions > 32M)
  78718. AL = drive number (00h = A:, 01h = B:, etc)
  78719. CX = number of sectors to write (not FFFFh)
  78720. DX = starting logical sector number (0000h - highest sector on drive)
  78721. DS:BX -> data to write
  78722. Return: CF clear if successful
  78723. CF set on error
  78724. AH = status (see #02547)
  78725. AL = error code (same as passed to INT 24 in DI)
  78726. AX = 0207h if more than 64K sectors on drive -- use new-style call
  78727. may destroy all other registers except segment registers
  78728. Notes: original flags are left on stack, and must be popped by caller
  78729. this call bypasses the DOS filesystem, though DOS 5+ invalidates any
  78730. disk buffers referencing sectors which are written with this call
  78731. examination of CPWIN386.CPL indicates that if this call fails with
  78732. error 0408h on an old-style (<32M) call, one should retry the
  78733. call with the high bit of the drive number in AL set
  78734. Novell DOS 7 decides whether the old-style or new-style (>32M) version
  78735. of INT 26 must be used solely on the basis of the partition's size,
  78736. thus forcing use of the new-style call even for data in the first
  78737. 32M of the partition
  78738. Windows98 will display an error message and deliberately hang the
  78739. system on attempted write to any hard disk if neither bit 7 of the
  78740. Extended Drive Info byte nor bit 6 of "DOS_FLAG" (List-of-Lists+60h)
  78741. is set
  78742. BUGS: DOS 3.1 through 3.3 set the word at ES:[BP+1Eh] to FFFFh if AL is an
  78743. invalid drive number
  78744. DR DOS 3.41 will return with a jump instead of RETF, leaving the
  78745. wrong number of bytes on the stack; use the huge-partition version
  78746. (INT 26/CX=FFFFh) for all partition sizes under DR DOS 3.41
  78747. SeeAlso: INT 13/AH=03h,INT 25,INT 26/CX=FFFFh,INT 21/AX=7305h
  78748. --------D-26----CXFFFF-----------------------
  78749. INT 26 - DOS 3.31+ - ABSOLUTE DISK WRITE (32M-2047M hard-disk partition)
  78750. CX = FFFFh
  78751. AL = drive number (0=A, 1=B, etc)
  78752. DS:BX -> disk write packet (see #02552)
  78753. Return: CF clear if successful
  78754. CF set on error
  78755. AH = status (see #02547)
  78756. AL = error code (same as passed to INT 24 in DI)
  78757. may destroy all other registers except segment registers
  78758. Notes: partition is potentially >32M (and requires this form of the call) if
  78759. bit 1 of the device attribute word in the device driver is set
  78760. original flags are left on stack, and must be removed by caller
  78761. this call bypasses the DOS filesystem, though DOS 5+ invalidates any
  78762. disk buffers referencing sectors which are written with this call
  78763. for FAT32 drives (which may be up to 2TB in size), use INT 21/AX=7305h
  78764. Windows98 will display an error message and deliberately hang the
  78765. system on attempted write to any hard disk if neither bit 7 of the
  78766. Extended Drive Info byte nor bit 6 of "DOS_FLAG" (List-of-Lists+60h)
  78767. is set
  78768. SeeAlso: INT 13/AH=03h,INT 25/CX=FFFFh,INT 26,INT 21/AX=7305h
  78769. Format of disk write packet:
  78770. Offset Size Description (Table 02552)
  78771. 00h DWORD sector number
  78772. 04h WORD number of sectors to read
  78773. 06h DWORD transfer address
  78774. SeeAlso: #02548
  78775. --------G-26---------------------------------
  78776. INT 26 - COMTROL HOSTESS i/ISA DEBUGGER - ENTER/EXIT EXTENDED ADDRESSING MODE
  78777. ???
  78778. Return: ???
  78779. SeeAlso: INT 23"COMTROL",INT 27"COMTROL"
  78780. --------D-27---------------------------------
  78781. INT 27 - DOS 1+ - TERMINATE AND STAY RESIDENT
  78782. DX = number of bytes to keep resident (max FFF0h)
  78783. CS = segment of PSP
  78784. Return: never
  78785. Notes: this is an obsolete call
  78786. INT 22, INT 23, and INT 24 are restored from the PSP
  78787. does not close any open files
  78788. the minimum number of bytes which will remain resident is 110h for
  78789. DOS 2.x and 60h for DOS 3.0+; there is no minimum for DOS 1.x, which
  78790. implements this service in COMMAND.COM rather than the DOS kernel
  78791. SeeAlso: INT 21/AH=31h
  78792. --------G-27---------------------------------
  78793. INT 27 - COMTROL HOSTESS i/ISA DEBUGGER - INVOKE REMOTE TURBO DEBUGGER KERNEL
  78794. ???
  78795. Return: ???
  78796. Desc: invoke a copy of the remote Turbo Debugger kernel on the Hostess i
  78797. controller
  78798. SeeAlso: INT 20"COMTROL",INT 26"COMTROL"
  78799. --------D-28---------------------------------
  78800. INT 28 C - DOS 2+ - DOS IDLE INTERRUPT
  78801. SS:SP = top of MS-DOS stack for I/O functions
  78802. Return: all registers preserved
  78803. Desc: This interrupt is invoked each time one of the DOS character input
  78804. functions loops while waiting for input. Since a DOS call is in
  78805. progress even though DOS is actually idle during such input waits,
  78806. hooking this function is necessary to allow a TSR to perform DOS
  78807. calls while the foreground program is waiting for user input. The
  78808. INT 28h handler may invoke any INT 21h function except functions
  78809. 00h through 0Ch.
  78810. Notes: under DOS 2.x, the critical error flag (the byte immediately after the
  78811. InDOS flag) must be set in order to call DOS functions 50h/51h from
  78812. the INT 28h handler without destroying the DOS stacks.
  78813. calls to INT 21/AH=3Fh,40h from within an INT 28 handler may not use a
  78814. handle which refers to CON
  78815. at the time of the call, the InDOS flag (see INT 21/AH=34h) is normally
  78816. set to 01h; if larger, DOS is truly busy and should not be reentered
  78817. the default handler is an IRET instruction
  78818. supported in OS/2 compatibility box
  78819. the _MS-DOS_Programmer's_Reference_ for DOS 5.0 incorrectly documents
  78820. this interrupt as superseded
  78821. the performance of NetWare Lite servers (and probably other peer-to-
  78822. peer networks) can be dramatically improved by calling INT 28
  78823. frequently from an application's idle loop
  78824. SeeAlso: INT 21/AH=34h,INT 2A/AH=84h,INT 2F/AX=1680h
  78825. --------U-289999-----------------------------
  78826. INT 28 u - PCXDUMP v9.00+ - INSTALLATION CHECK
  78827. AX = 9999h
  78828. Return: AX = AAAAh if installed
  78829. CX = version number * 100 (example: 03A2h = 930 = v9.30)
  78830. DL = interrupt used by the dump function (see #02553)
  78831. (00h if call not available)
  78832. BX = CS of PCXDUMP's INT 28 handler (undocumented)
  78833. ES = segment of PCXDUMP's memory block (v9.30, undocumented)
  78834. Program: PCXDUMP is a shareware screen grabber saving in PCX format
  78835. Notes: if DL<>00h a dump can be requested by calling INT DL as shown
  78836. below (the user can choose the interrupt number at installation
  78837. time); if DL=00h the dump function can be called only by hotkeys
  78838. (this is the default)
  78839. (Table 02553)
  78840. Call PCXDUMP screen-dump function with:
  78841. INT xx
  78842. AX = 1234h
  78843. BX = dump type
  78844. 0000h Color dump
  78845. 0001h Immediate color dump
  78846. 0002h Black/White dump
  78847. 0003h Immediate B/W dump
  78848. 0004h Inverted B/W dump
  78849. 0005h Gray scaled dump
  78850. 0006h Inverted gray scaled dump
  78851. 0007h Text screen dump to text file
  78852. 0008h Text screen dump to ansi file
  78853. Return: nothing
  78854. Notes: if BX=0001h, 0003h, 0007h or 0008h the whole screen will be
  78855. dumped; the other valid values will draw a selection frame
  78856. on the screen except in text modes (text modes allow only
  78857. full screen dumps)
  78858. this function doesn't perform the dump, it only requests it;
  78859. the dump will be performed after a few milliseconds if it's
  78860. safe to do so, thus the author recommends putting a 60 ms delay
  78861. after this call
  78862. --------D-29---------------------------------
  78863. INT 29 C - DOS 2+ - FAST CONSOLE OUTPUT
  78864. AL = character to display
  78865. Return: nothing
  78866. BX may be destroyed by some versions of DOS 3.3
  78867. Notes: automatically called when writing to a device with bit 4 of its device
  78868. driver header set (see also INT 21/AH=52h)
  78869. COMMAND.COM v3.2 and v3.3 compare the INT 29 vector against the INT 20
  78870. vector and assume that ANSI.SYS is installed if the segment is larger
  78871. the default handler under DOS 2.x and 3.x simply calls INT 10/AH=0Eh
  78872. the default handler under DESQview 2.2 understands the <Esc>[2J
  78873. screen-clearing sequence, calls INT 10/AH=0Eh for all others
  78874. SeeAlso: INT 21/AH=52h,INT 2F/AX=0802h,INT 79"AVATAR.SYS"
  78875. --------U-29E60DCL0E-------------------------
  78876. INT 29 - ShowGFX - INSTALLATION CHECK
  78877. AX = E60Dh
  78878. CL = 0Eh
  78879. DX = C0DEh
  78880. Return: DX = DEC0h
  78881. Program: ShowGFX is a PCBoard graphics driver by Solar Designer
  78882. --------N-2A00-------------------------------
  78883. INT 2A - NETWORK - INSTALLATION CHECK
  78884. AH = 00h
  78885. Return: AH <> 00h if installed
  78886. CF set if NetWare v2.15 NetBIOS emulator installed
  78887. Note: supported by PC LAN Program, LAN Manager, LANtastic, NetWare, 10NET,
  78888. etc.
  78889. SeeAlso: INT 5C"NetBIOS"
  78890. --------N-2A0000-----------------------------
  78891. INT 2A - AT&T Starlan Extended NetBIOS (var length names) - INSTALLATION CHECK
  78892. AX = 0000h
  78893. Return: AH = DDh
  78894. SeeAlso: INT 5B"Extended NetBIOS"
  78895. --------N-2A01-------------------------------
  78896. INT 2A - NETWORK (Microsoft,LANtastic) - EXECUTE NETBIOS REQUEST,NO ERROR RETRY
  78897. AH = 01h
  78898. ES:BX -> NCB (see #03249 at INT 5C"NetBIOS")
  78899. Return: AL = NetBIOS error code
  78900. AH = status
  78901. 00h no error
  78902. 01h error occurred
  78903. SeeAlso: AH=04h,AX=0500h,INT 5B"Extended NetBIOS",INT 5C"NetBIOS"
  78904. --------N-2A02-------------------------------
  78905. INT 2A - NETWORK (Microsoft) - SET NET PRINTER MODE
  78906. AH = 02h
  78907. ???
  78908. Return: ???
  78909. --------N-2A0300-----------------------------
  78910. INT 2A - NETWORK - CHECK DIRECT I/O
  78911. AX = 0300h
  78912. DS:SI -> ASCIZ device name (may be full path or only drive specifier--
  78913. must include the colon)
  78914. Return: CF clear if direct physical addressing (INT 13,INT 25) permissible
  78915. CF set if access via files only
  78916. Notes: do not use direct disk accesses if this function returns CF set or the
  78917. device is redirected (INT 21/AX=5F02h)
  78918. use AH=00h to determine whether the network is installed; if not,
  78919. direct physical access is allowed
  78920. may take some time to execute, so programs which need to check
  78921. frequently should save the result of the first call
  78922. this function is called by the DOS kernel on INT 25 and INT 26
  78923. supported by PC LAN Program, LAN Manage, LANtastic, NetWare, 10NET,
  78924. etc.
  78925. SeeAlso: INT 13/AH=02h,INT 13/AH=03h,INT 25,INT 26,INT 21/AX=5F02h
  78926. --------N-2A04-------------------------------
  78927. INT 2A - NETWORK - EXECUTE NetBIOS REQUEST
  78928. AH = 04h
  78929. AL = error retry
  78930. 00h automatically retry request on errors 09h, 12h, and 21h
  78931. (see #03248 at INT 5C"NetBIOS")
  78932. 01h no retry
  78933. 02h ???
  78934. ES:BX -> Network Control Block (see #03249 at INT 5C"NetBIOS")
  78935. Return: AX = 0000h if successful
  78936. AH = 01h on error
  78937. AL = error code
  78938. Notes: invokes either INT 5B or INT 5C as appropriate
  78939. supported by PC LAN Program, LANtastic, LAN Manager, NetWare, 10NET,
  78940. etc.
  78941. NetWare 2.15 NetBIOS emulator returns CF clear if successful, CF set
  78942. on error
  78943. PC LAN Program defines any non-zero return value in AH as an error
  78944. indicator for subfunction 00h, and any non-zero return value in AX
  78945. as an error indicator for subfunction 01h
  78946. SeeAlso: AH=00h,AH=01h,AX=0500h,INT 5B"Extended NetBIOS",INT 5C"NetBIOS"
  78947. --------N-2A0500-----------------------------
  78948. INT 2A - NETWORK - GET NETWORK RESOURCE AVAILABILITY
  78949. AX = 0500h
  78950. Return: AX reserved
  78951. BX = number of network names available
  78952. CX = number of network control blocks available
  78953. DX = number of network sessions available
  78954. Notes: supported by PC LAN Program, LAN Manager, LANtastic, NetWare, 10NET,
  78955. etc.
  78956. the application should call this function before using any network
  78957. resources, and maintain its own count to avoid exceeding the
  78958. network's resource limits
  78959. SeeAlso: AH=00h,AH=01h,AH=04h,INT 5C"NetBIOS"
  78960. --------N-2A06-------------------------------
  78961. INT 2A - NETBIOS, LANtastic - NETWORK PRINT-STREAM CONTROL
  78962. AH = 06h
  78963. AL = function
  78964. 01h set concatenation mode
  78965. all printer output put in one job until return to DOS prompt
  78966. 02h set truncation mode (default)
  78967. printer open/close or BIOS/DOS output switch starts new job
  78968. 03h flush printer output and start new print job
  78969. Return: CF set on error
  78970. AX = error code
  78971. CF clear if successful
  78972. Notes: subfunction 03h is equivalent to Ctrl/Alt/keypad-*
  78973. supported by PC LAN Program, LANtastic, NetWare, 10NET, etc.
  78974. LANtastic v4.x no longer supports this call
  78975. this function sets the printer mode for all redirected printers
  78976. SeeAlso: INT 21/AX=5D08h,INT 21/AX=5D09h,INT 2F/AX=1125h
  78977. --------N-2A07-------------------------------
  78978. INT 2A U - PC Network v1.00 - RECEIVER.COM - ???
  78979. AH = 07h
  78980. ???
  78981. Return: ???
  78982. Program: PC Network is an early networking package which was renamed the
  78983. IBM PC Local Area Network Program (PC LAN Program) as of v1.10
  78984. SeeAlso: AH=86h
  78985. --------N-2A2001-----------------------------
  78986. INT 2A - MS Networks or NETBIOS - ???
  78987. AX = 2001h
  78988. ???
  78989. Return: ???
  78990. Note: intercepted by DESQview 2.x
  78991. --------N-2A2002-----------------------------
  78992. INT 2A - NETWORK - ???
  78993. AX = 2002h
  78994. ???
  78995. Return: ???
  78996. Note: called by MS-DOS 3.30-6.00 APPEND
  78997. --------N-2A2003-----------------------------
  78998. INT 2A - NETWORK - ???
  78999. AX = 2003h
  79000. ???
  79001. Return: ???
  79002. Note: called by MS-DOS 3.30-6.00 APPEND
  79003. --------N-2A4147DX0000-----------------------
  79004. INT 2A U - NetSoft DOS-NET v1.20+ - INSTALLATION CHECK
  79005. AX = 4147h ('AG')
  79006. DX = 0000h
  79007. Return: DX = 4147h if installed
  79008. DS:SI -> configuration data (see #02554)
  79009. Program: DOS-NET is a shareware networking package by Albert Graham
  79010. Note: this call is supported by CLIENT.COM, SERVER.COM, ROUTER.COM, and
  79011. NETDOS.COM
  79012. SeeAlso: INT 65/DX=4147h,INT 65/DX=4741h
  79013. Format of DOS-NET v1.20 configuration data area:
  79014. Offset Size Description (Table 02554)
  79015. 00h BYTE ???
  79016. 01h BYTE interrupt number used by DOS-NET APIs
  79017. 02h WORD function number to place in AX for above interrupt
  79018. 04h BYTE minor version as two BCD digits (e.g. 20h for v1.20)
  79019. 05h BYTE major version number (01h for v1.20)
  79020. 06h 2 BYTEs ???
  79021. 08h WORD ??? (used by ARCNET.COM)
  79022. bit 15: ??? (set by MACTEST.COM)
  79023. 0Ah WORD ??? (used by NDIS.COM and ODI.COM)
  79024. 0Ch 22 BYTEs ???
  79025. 24h DWORD -> ??? function (set by PROTECT.COM)
  79026. 28h 12 BYTEs ???
  79027. 34h DWORD -> ??? function (set by FASTVIEW.COM)
  79028. 38h DWORD -> ??? function (set by FASTVIEW.COM)
  79029. 58h DWORD -> ??? (offsets 04h and 1Ah from value are used by NETFILES)
  79030. ???
  79031. 7Ch WORD ???
  79032. 7Eh WORD ??? (may be high half of a DWORD at 7Ch)
  79033. ???
  79034. A8h DWORD -> ??? (used by SM.COM)
  79035. ???
  79036. 114h WORD ???
  79037. 116h WORD ??? (may be high half of a DWORD at 114h)
  79038. ???
  79039. 1BDh BYTE ??? flags
  79040. bit 0: ???
  79041. bit 6: ???
  79042. ???
  79043. 1E1h BYTE ???
  79044. ???
  79045. 208h WORD ??? (used by SM.COM, MACTEST)
  79046. 282h WORD ???
  79047. 284h 2 BYTEs ???
  79048. 286h WORD ??? flags
  79049. bit 0: ???
  79050. ???
  79051. 31Eh WORD ???
  79052. 320h WORD ??? (used by NDIS.COM and ODI.COM)
  79053. 322h 8 BYTEs ???
  79054. 32Ah WORD ??? (used by NDIS.COM and ODI.COM)
  79055. ???
  79056. 33Eh 4 BYTEs ??? (used by ODI.COM)
  79057. 342h N BYTEs ??? (used by NDIS.COM)
  79058. ???
  79059. 3CFh BYTE ??? flags
  79060. bit 2: ???
  79061. 3D2h BYTE installed-component flags
  79062. bit 0: PROTECT installed
  79063. bit 1: NETCACHE installed
  79064. bit 3: SM.COM installed
  79065. bit 7: NETDEBUG installed
  79066. 3D3h BYTE installed-component flags
  79067. bit 0: NETFILES installed
  79068. bit 6: FASTVIEW installed
  79069. ???
  79070. 3FFh BYTE ??? (used by NDIS.COM)
  79071. 400h BYTE ???
  79072. 401h BYTE ??? (used by SM.COM)
  79073. 402h BYTE ??? (used by SM.COM)
  79074. ???
  79075. 448h BYTE ???
  79076. 449h BYTE ??? (used by MACTEST)
  79077. 44Ah BYTE ??? (used by PROTECT)
  79078. 44Bh BYTE ???
  79079. 44Ch BYTE ???
  79080. 44Dh BYTE ??? (used by SM.COM)
  79081. 44Eh BYTE ??? (used by SM.COM, MACTEST)
  79082. ???
  79083. --------N-2A7802-----------------------------
  79084. INT 2A - NETWORK - PC LAN PROG v1.31+ - GET LOGGED ON USER NAME
  79085. AX = 7802h
  79086. ES:DI -> 8-byte buffer to be filled
  79087. Return: AL = 00h if no user logged on to Extended Services
  79088. AL <> 00h if user logged on to Extended Services
  79089. buffer at ES:DI filled with name, padded to 8 chars with blanks.
  79090. --------D-2A80-------------------------------
  79091. INT 2A CU - NETWORK - BEGIN DOS CRITICAL SECTION
  79092. AH = 80h
  79093. AL = critical section number (00h-0Fh) (see #02555)
  79094. Notes: normally hooked to avoid interrupting a critical section, rather than
  79095. called
  79096. the handler should ensure that none of the critical sections are
  79097. reentered, usually by suspending a task which attempts to reenter
  79098. an active critical section
  79099. the DOS kernel does not invoke critical sections 01h and 02h unless it
  79100. is patched. DOS 3.1+ contains a zero-terminated list of words
  79101. beginning at offset -11 from the Swappable Data Area
  79102. (see #01687 at INT 21/AX=5D06h); each word contains the offset within
  79103. the DOS data segment of a byte which must be changed from C3h (RET)
  79104. to 50h (PUSH AX) under DOS 3.x or from 00h to a nonzero value under
  79105. DOS 4.0+ to enable use of critical sections. For DOS 4.0+, all
  79106. words in this list point at the byte at offset 0D0Ch.
  79107. MS Windows patches the DOS kernel's calls to INT 2A/AH=80h-81h into
  79108. far calls to its own handler, and does not reflect the calls back
  79109. to INT 2A unless SYSTEM.INI contains ReflectDOSInt2A=1 or
  79110. ModifyDOSInt2A=0 in the [386Enh] section
  79111. Novell NETX does not issue INT 2A/AH=80h and INT 2A/AH=81h calls when
  79112. it intercepts INT 21 calls and processes them itself
  79113. SeeAlso: AH=81h,AH=82h,AX=8700h,INT 21/AX=5D06h,INT 21/AX=5D0Bh
  79114. (Table 02555)
  79115. Values for DOS critical section number:
  79116. 01h DOS kernel, SHARE.EXE, DOSMGR
  79117. apparently for maintaining the integrity of DOS/SHARE/NET
  79118. data structures
  79119. 02h DOS kernel, DOSMGR
  79120. ensures that no multitasking occurs while DOS is calling an
  79121. installable device driver
  79122. 05h network redirector
  79123. 06h DOS 4.x only IFSFUNC
  79124. 08h ASSIGN.COM
  79125. 0Ah MSCDEX, CORELCDX
  79126. 0Fh IBM PC LAN server (while intercepting INT 10/AH=06h,07h,0Eh)
  79127. --------D-2A81-------------------------------
  79128. INT 2A CU - NETWORK - END DOS CRITICAL SECTION
  79129. AH = 81h
  79130. AL = critical section number (00h-0Fh) (see #02555)
  79131. Notes: normally hooked rather than called
  79132. the handler should reawaken any tasks which were suspended due to an
  79133. attempt to enter the specified critical section
  79134. MS Windows patches the DOS kernel's calls to INT 2A/AH=80h-81h into
  79135. far calls to its own handler, and does not reflect the calls back
  79136. to INT 2A unless SYSTEM.INI contains ReflectDOSInt2A=1 or
  79137. ModifyDOSInt2A=0 in the [386Enh] section
  79138. SeeAlso: AH=80h,AH=82h,AX=8700h
  79139. --------D-2A82-------------------------------
  79140. INT 2A CU - NETWORK - END DOS CRITICAL SECTIONS 0 THROUGH 7
  79141. AH = 82h
  79142. Notes: called by the INT 21h function dispatcher for function 0 and functions
  79143. greater than 0Ch except 59h, and on process termination
  79144. the handler should reawaken any tasks which were suspended due to an
  79145. attempt to enter one of the critical sections 0 through 7
  79146. SeeAlso: AH=81h
  79147. --------N-2A84-------------------------------
  79148. INT 2A CU - NETWORK - KEYBOARD BUSY LOOP
  79149. AH = 84h
  79150. Note: similar to DOS's INT 28h, called from inside the DOS keyboard input
  79151. loop (i.e. INT 21/AH=07h or INT 21/AH=08h) to allow the network
  79152. software to process requests
  79153. SeeAlso: INT 28
  79154. --------N-2A86-------------------------------
  79155. INT 2A U - PC Network v1.00 - RECEIVER.COM - ???
  79156. AH = 86h
  79157. ???
  79158. Return: ???
  79159. SeeAlso: AH=07h,AH=C4h
  79160. --------P-2A8700-----------------------------
  79161. INT 2A CU - PRINT - BEGIN BACKGROUND PRINTING
  79162. AX = 8700h
  79163. CF clear
  79164. Return: CF clear if OK to print in background now
  79165. CF set if background printing not allowed at this time
  79166. Desc: used to inform interested programs that PRINT is about to start its
  79167. background processing, and allow those programs to postpone the
  79168. processing if necessary
  79169. Notes: when PRINT gains control and wants to begin printing, it calls this
  79170. function. If CF is clear on return, PRINT begins its background
  79171. processing, and calls AX=8701h when it is done. If CF is set on
  79172. return, PRINT will relinquish control immediately, and will not
  79173. call AX=8701h
  79174. PCVENUS (an early network shell by IBM and CMU) hooks this call to
  79175. prevent background printing while its own code is active
  79176. SeeAlso: AH=80h,AH=81h,AX=8701h
  79177. --------P-2A8701-----------------------------
  79178. INT 2A CU - PRINT - END BACKGROUND PRINTING
  79179. AX = 8701h
  79180. Desc: used to inform interested programs that PRINT has completed its
  79181. background processing
  79182. Note: called by PRINT after it has performed some background printing; not
  79183. called if AX=8700h returned with CF set.
  79184. SeeAlso: AX=8700h
  79185. --------N-2A89-------------------------------
  79186. INT 2A U - PC Network v1.00 - RECEIVER.COM - ???
  79187. AH = 89h
  79188. AL = ??? (ASSIGN uses 08h)
  79189. ???
  79190. Return: ???
  79191. --------I-2A90-------------------------------
  79192. INT 2A U - IBM PC 3270 EMULATION PROGRAM - ???
  79193. AH = 90h
  79194. ???
  79195. Return: ???
  79196. Note: the LANtastic redirector and SERVER.EXE use this function with AL=01h,
  79197. 03h-07h,0Ch-11h
  79198. --------N-2AC2-------------------------------
  79199. INT 2A U - Network - ???
  79200. AH = C2h
  79201. AL = subfunction
  79202. 07h ???
  79203. 08h ???
  79204. BX = 0001h
  79205. ???
  79206. Return: ???
  79207. Note: this function is called by the DOS 3.30-6.00 APPEND
  79208. --------N-2AC4-------------------------------
  79209. INT 2A U - PC Network v1.00 - RECEIVER.COM - ???
  79210. AH = C4h
  79211. AL = subfunction
  79212. 07h ???
  79213. 08h ???
  79214. BX = ???
  79215. ???
  79216. Return: ???
  79217. SeeAlso: AH=86h
  79218. --------N-2AD800-----------------------------
  79219. INT 2A U - Novell NetWare Lite - SERVER - SET ???
  79220. AX = D800h
  79221. Return: nothing
  79222. Desc: sets ??? flag, and sets ??? to initial value
  79223. Note: called by CLIENT
  79224. SeeAlso: AX=D801h,AX=D850h
  79225. --------N-2AD801-----------------------------
  79226. INT 2A U - Novell NetWare Lite - SERVER - RESET ???
  79227. AX = D801h
  79228. Return: nothing
  79229. Desc: clears the ??? flag set by AX=D800h
  79230. Note: called by CLIENT
  79231. SeeAlso: AX=D800h,AX=D850h
  79232. --------N-2AD850-----------------------------
  79233. INT 2A U - Novell NetWare Lite - CLIENT - INCREMENT ???
  79234. AX = D850h
  79235. Return: nothing
  79236. Desc: increments an internal byte-sized counter
  79237. Note: this function is intercepted by DV/X 1.10 PEERSERV.DVR and the
  79238. Advanced NetWare 4.0 DOS Requester
  79239. SeeAlso: AX=D851h
  79240. --------N-2AD851-----------------------------
  79241. INT 2A U - Novell NetWare Lite - CLIENT - RESET ???
  79242. AX = D851h
  79243. Return: nothing
  79244. Desc: resets an internal byte-sized counter to zero
  79245. Note: this function is intercepted by DV/X 1.10 PEERSERV.DVR and the
  79246. Advanced NetWare 4.0 DOS Requester
  79247. SeeAlso: AX=D850h
  79248. --------N-2AD852-----------------------------
  79249. INT 2A U - Novell NetWare - DOS Requester v1.03 - ???
  79250. AX = D852h
  79251. Return: ???
  79252. Note: calls the NetWare Lite SERVER installation check, and sets ??? pointer
  79253. SeeAlso: AX=D853h,INT 2F/AX=D880h
  79254. --------N-2AD853-----------------------------
  79255. INT 2A U - Novell NetWare - DOS Requester v1.03 - ???
  79256. AX = D853h
  79257. Return: ???
  79258. Note: clears the pointer set by AX=D852h
  79259. SeeAlso: AX=D852h
  79260. --------N-2AE0-------------------------------
  79261. INT 2A U - PC Network 1.00 - ???
  79262. AH = E0h
  79263. AL = subfunction??? (01h,02h, maybe others)
  79264. ???
  79265. Return: ???
  79266. Note: called by PCNet 1.00 NET.COM, a shell program from which others are run
  79267. --------N-2AFF90-----------------------------
  79268. INT 2A - PC/TCP PREDIR.EXE - ???
  79269. AX = FF90h
  79270. Return: AX = ???
  79271. Note: PREDIR.EXE is the network printer redirector included as part of the
  79272. PC/TCP system by FTP Software, Inc.
  79273. --------N-2AFF91-----------------------------
  79274. INT 2A - PC/TCP PREDIR.EXE - ???
  79275. AX = FF91h
  79276. BX = ???
  79277. Return: AX = status???
  79278. --------N-2AFF92-----------------------------
  79279. INT 2A - PC/TCP PREDIR.EXE - INSTALLATION CHECK
  79280. AX = FF92h
  79281. Return: AX = 0000h if installed
  79282. BX = redirected printer port (FFFFh if no printers redirected)
  79283. CX = version (CH = major, CL = minor)
  79284. Note: PREDIR.EXE is the network printer redirector included as part of the
  79285. PC/TCP system by FTP Software, Inc.
  79286. --------N-2AFF93-----------------------------
  79287. INT 2A - PC/TCP PREDIR.EXE - ???
  79288. AX = FF93h
  79289. Return: AX = ???
  79290. --------N-2AFF94-----------------------------
  79291. INT 2A - PC/TCP PREDIR.EXE - ???
  79292. AX = FF94h
  79293. BX = ???
  79294. CX = ???
  79295. DX = ???
  79296. Return: AX = ???
  79297. Note: PREDIR.EXE is the network printer redirector included as part of the
  79298. PC/TCP system by FTP Software, Inc.
  79299. --------N-2AFF95-----------------------------
  79300. INT 2A - PC/TCP PREDIR.EXE - GET CONFIGURATION STRINGS
  79301. AX = FF95h
  79302. CX = what to get
  79303. 0000h ??? (returned pointer to "C:\COMMAND.COM")
  79304. 0001h spooling program
  79305. 0002h ???
  79306. 0003h spool file name
  79307. 0004h swap file name
  79308. Return: AX = status
  79309. 0000h successful
  79310. BX:DX -> ASCIZ configuration string
  79311. --------N-2AFF96-----------------------------
  79312. INT 2A - PC/TCP PREDIR.EXE - SET PRINT JOB TERMINATION CONFIGURATION
  79313. AX = FF96h
  79314. CX = what to set
  79315. 0000h ???
  79316. 0001h print-on-hotkey state
  79317. 0002h print-on-exit state
  79318. 0003h print job timeout in clock ticks
  79319. 0004h print-on-EOF state
  79320. BX = new value (0000h disabled, 0001h enabled except for timeout)
  79321. Return: AX = ???
  79322. SeeAlso: AX=FF97h
  79323. Note: PREDIR.EXE is the network printer redirector included as part of the
  79324. PC/TCP system by FTP Software, Inc.
  79325. --------N-2AFF97-----------------------------
  79326. INT 2A - PC/TCP PREDIR.EXE - GET PRINT JOB TERMINATION CONFIGURATION
  79327. AX = FF97h
  79328. CX = what to get
  79329. 0000h ???
  79330. 0001h print-on-hotkey state
  79331. 0002h print-on-exit state
  79332. 0003h print job timeout in clock ticks
  79333. 0004h print-on-EOF state
  79334. Return: AX = status
  79335. 0000h successful
  79336. BX = old value (0000h disabled, 0001 enabled except for timeout)
  79337. SeeAlso: AX=FF96h
  79338. --------D-2B---------------------------------
  79339. INT 2B - DOS 2+ - RESERVED
  79340. Note: this vector is not used in MS-DOS versions <= 6.22, and points at an
  79341. IRET instruction
  79342. --------D-2B---------------------------------
  79343. INT 2B - IBM ROM-DOS v4.0 - ???
  79344. AH = function
  79345. 00h ??? (modifies data in IBMBIO.COM)
  79346. 01h internal operations
  79347. 02h ???
  79348. AL = index (00h-0Ch)
  79349. Return: AX = ??? or (CMOS 2Dh and CMOS 2Eh)
  79350. 03h get ??? data
  79351. Return: AX = (CMOS 2Dh and CMOS 2Eh)
  79352. BX = FFFFh
  79353. other does nothing
  79354. Note: function 03h is called by ROMSHELL.COM; if BX != 0, then the ES:DI from
  79355. INT 2F/AX=1982h points at valid data
  79356. SeeAlso: INT 2F/AX=1982h
  79357. --------D-2C---------------------------------
  79358. INT 2C - DOS 2+ - RESERVED
  79359. Note: this vector is not used in DOS versions <= 6.00, and points at an IRET
  79360. --------O-2C---------------------------------
  79361. INT 2C - STARLITE architecture - KERNEL API
  79362. Note: STARLITE is an architecture by General Software for a series of MS-DOS
  79363. compatible operating systems (OEM DOS, NETWORK DOS, and SMP DOS) to
  79364. be released in 1991. The interrupt number is subject to change
  79365. before the actual release.
  79366. --------m-2C---------------------------------
  79367. INT 2C R - Cloaking - CALL PROTECTED-MODE PASSALONG CHAIN
  79368. Notes: when this interrupt is invoked in V86 mode, RM386 will invoke the first
  79369. in a chain of protected-mode handlers, and will only pass execution
  79370. to the V86-mode INT 2C handler if none of the handlers in the
  79371. passalong chain handle the call instead. This is the method by which
  79372. the real-mode stub of a cloaked application communicates with the
  79373. protected-mode portion.
  79374. the cloaking host calls the passalong chain with EAX=58494E33h ('WIN3')
  79375. when MS Windows starts up and with EAX=334E4958h ('3NIW') when
  79376. Windows shuts down; between these two broadcasts, the additional
  79377. Windows-only Cloaking services are available
  79378. this function was first introduced with RM386 (RAM-MAN/386) v6.00, the
  79379. memory manager included in Helix Software's Netroom
  79380. SeeAlso: INT 2C/AX=0009h,INT 2F/AX=4310h"Cloaking"
  79381. --------m-2C0000-----------------------------
  79382. INT 2C P - Cloaking - ALLOCATE GDT SELECTOR
  79383. AX = 0000h
  79384. EBX = base address
  79385. CL = access mode byte
  79386. CH = extended access mode byte (omit limit field)
  79387. EDX = segment limit
  79388. Return: CF clear if successful
  79389. AX = selector
  79390. CF set on error
  79391. AX = error code (see #02556)
  79392. Notes: this INT 2C interface is used by Netroom's DPMI.EXE v3.00
  79393. to access extended memory, set the base address to the desired
  79394. physical address plus 400000h (4M)
  79395. this function was first introduced with RM386 (RAM-MAN/386) v6.00, the
  79396. memory manager included in Helix Software's Netroom
  79397. SeeAlso: AX=0001h,AX=0002h,AX=0003h,AX=0004h,AX=0005h,INT 31/AH=57h,#00501
  79398. (Table 02556)
  79399. Values for Cloaking error code:
  79400. 0001h no more selectors
  79401. 0002h not a GDT ring 0 selector
  79402. 0003h invalid selector (out of range, not user selector)
  79403. 0004h selector not allocated
  79404. --------m-2C0001-----------------------------
  79405. INT 2C P - Cloaking - FREE GDT SELECTOR
  79406. AX = 0001h
  79407. SI = selector
  79408. Return: CF clear if successful
  79409. CF set on error
  79410. AX = error code (see #02556)
  79411. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79412. SeeAlso: AX=0000h,INT 2F/AX=4310h"Cloaking"
  79413. --------m-2C0002-----------------------------
  79414. INT 2C P - Cloaking - SET SEGMENT BASE ADDRESS
  79415. AX = 0002h
  79416. SI = selector
  79417. EBX = new physical base addres
  79418. Return: CF clear if successful
  79419. CF set on error
  79420. AX = error code (see #02556)
  79421. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79422. SeeAlso: AX=0000h,AX=0003h,AX=0004h,INT 31/AX=0007h,#00501
  79423. --------m-2C0003-----------------------------
  79424. INT 2C P - Cloaking - SET SEGMENT LIMIT
  79425. AX = 0003h
  79426. SI = selector
  79427. EBX = new limit
  79428. Return: CF clear if successful
  79429. CF set on error
  79430. AX = error code (see #02556)
  79431. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79432. SeeAlso: AX=0000h,AX=0002h,AX=0004h,INT 31/AX=0008h
  79433. --------m-2C0004-----------------------------
  79434. INT 2C P - Cloaking - SET SEGMENT ACCESS MODE
  79435. AX = 0004h
  79436. SI = selector
  79437. CL = new access mode byte (see #00502)
  79438. Return: CF clear if successful
  79439. CF set on error
  79440. AX = error code (see #02556)
  79441. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79442. SeeAlso: AX=0000h,AX=0002h,AX=0003h,AX=0005h,INT 31/AX=0009h
  79443. --------m-2C0005-----------------------------
  79444. INT 2C P - Cloaking - SET SEGMENT EXTENDED ACCESS MODE
  79445. AX = 0005h
  79446. SI = selector
  79447. CL = new extended access mode byte (limit field ignored) (see #02557)
  79448. Return: CF clear if successful
  79449. CF set on error
  79450. AX = error code (see #02556)
  79451. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79452. SeeAlso: AX=0000h,AX=0002h,AX=0003h,AX=0004h,INT 31/AX=0009h
  79453. Bitfields for extended access mode byte:
  79454. Bit(s) Description (Table 02557)
  79455. 7 4K granularity instead of byte granularity
  79456. 6 32-bit code segment
  79457. 5 reserved (0)
  79458. 4 segment available to system
  79459. SeeAlso: #00505
  79460. --------m-2C0006-----------------------------
  79461. INT 2C P - Cloaking - GET PROTECTED-MODE INTERRUPT VECTOR
  79462. AX = 0006h
  79463. CL = vector (00h-7Fh)
  79464. Return: CF clear
  79465. DX:EBX -> current interrupt handler
  79466. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79467. SeeAlso: AX=0007h,INT 31/AX=0204h
  79468. --------m-2C0007-----------------------------
  79469. INT 2C P - Cloaking - SET PROTECTED-MODE INTERRUPT VECTOR
  79470. AX = 0007h
  79471. CL = vector (00h-7Fh)
  79472. DX:EBX -> interrupt handler
  79473. Return: CF clear
  79474. Notes: this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79475. the IDT entry's type remains unchanged
  79476. SeeAlso: AX=0006h,INT 31/AX=0205h
  79477. --------m-2C0008-----------------------------
  79478. INT 2C P - Cloaking - GET PASSALONG ADDRESS
  79479. AX = 0008h
  79480. Return: CF clear
  79481. DX:EBX = current passalong address
  79482. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79483. SeeAlso: AX=0009h,AX=002Ch,INT 2F/AX=4310h"Cloaking"
  79484. --------m-2C0009-----------------------------
  79485. INT 2C P - Cloaking - SET PASSALONG ADDRESS
  79486. AX = 0009h
  79487. DX:EBX = new value for passalong address (see #02558)
  79488. Return: CF clear
  79489. Notes: when an INT 2C instruction is executed in V86 mode, the Cloaking host
  79490. calls the passalong address. The handler should check whether the
  79491. upcall is of interest to it, and if not it should jump to the old
  79492. passalong address (retrieved with AX=0008h before the handler was
  79493. installed). The final handler should return with CF clear to cause
  79494. the interrupt to be reflected back to V86 mode if none of the
  79495. passalong handlers is triggered
  79496. this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79497. SeeAlso: AX=0008h,AX=002Dh,INT 2C"PASSALONG CHAIN"
  79498. (Table 02558)
  79499. Values Cloaking passalong address is called with:
  79500. EAX = CS:IP of byte following INT 2C instruction invoking passalong
  79501. SS:EBX -> caller registers (see #02559)
  79502. CF clear
  79503. others undefined
  79504. Return: CF clear: pass along to V86-mode INT 2C handler
  79505. CF set: return immediately to V86 mode
  79506. Format of Cloaking caller registers:
  79507. Offset Size Description (Table 02559)
  79508. 00h DWORD EDI
  79509. 04h DWORD ESI
  79510. 08h DWORD EBP
  79511. 0Ch DWORD reserved (ESP from PUSHAD instruction)
  79512. 10h DWORD EBX
  79513. 14h DWORD EDX
  79514. 18h DWORD ECX
  79515. 1Ch DWORD EAX
  79516. 20h DWORD error code
  79517. 24h DWORD EIP
  79518. 28h WORD CS
  79519. 2Ah WORD padding
  79520. 2Ch DWORD EFLAGS
  79521. 30h DWORD ESP
  79522. 34h WORD SS
  79523. 36h WORD padding
  79524. --remainder not available if protected-mode ring3 trap---
  79525. 38h WORD ES
  79526. 3Ah WORD padding
  79527. 3Ch WORD DS
  79528. 3Eh WORD padding
  79529. 40h WORD FS
  79530. 42h WORD padding
  79531. 44h WORD GS
  79532. 46h WORD padding
  79533. --------m-2C000A-----------------------------
  79534. INT 2C P - Cloaking - GET BASE ADDRESS OF GDT SELECTOR
  79535. AX = 000Ah
  79536. SI = selector
  79537. Return: CF clear if successful
  79538. EBX = segment base address
  79539. CF set on error
  79540. AX = error code (see #02556)
  79541. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00, the
  79542. memory manager included in Helix Software's Netroom
  79543. SeeAlso: AX=0000h,AX=0002h,AX=000Bh
  79544. --------m-2C000B-----------------------------
  79545. INT 2C P - Cloaking - GET SELECTOR LIMIT
  79546. AX = 000Bh
  79547. SI = selector
  79548. Return: CF clear if successful
  79549. EBX = segment base address
  79550. CF set on error
  79551. AX = error code (see #02556)
  79552. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79553. SeeAlso: AX=000Ah,INT 2F/AX=4310h"Cloaking"
  79554. --------m-2C---------------------------------
  79555. INT 2C P - RM386 v6.00 - CLOAKING - RESERVED FOR CLOAKED BIOS USE UNDER WINDOWS
  79556. AX = function (000Ch-001Fh)
  79557. --------m-2C000F-----------------------------
  79558. INT 2C P - Cloaking v1.01 - "Simulate_Shell_Event"
  79559. AX = 000Fh
  79560. ECX = event code (see #02560)
  79561. DX = subfunction for event
  79562. EDX high word = boost value (see #02561)
  79563. SI:EDI -> completion procedure
  79564. Return: CF clear if successful (event scheduled)
  79565. CF set on error
  79566. Note: this function is only available while MS Windows is running
  79567. SeeAlso: AX=0011h,AX=0012h,INT 2F/AX=1605h,INT 2F/AX=4310h"Cloaking"
  79568. (Table 02560)
  79569. Values for Cloaking shell event code:
  79570. 0414h Hot key event
  79571. subevent 0000h: Alt-Space
  79572. subevent 0001h: Alt-Enter
  79573. subevent 0002h: Dir-VM
  79574. 0415h Switch context
  79575. subevent 0000h for DOS VM context, nonzero for System VM context
  79576. 0416h Clipboard event
  79577. 0417h Termination event
  79578. subevent 0000h for normal termination, nonzero for error
  79579. 0418h Display message
  79580. subevent 0000h for normal message, nonzero for system model ASAP
  79581. 0419h Crash
  79582. 041Ah Paste complete
  79583. subevent 0000h: normal
  79584. subevent 0001h: cancelled by user
  79585. subevent 0002h: cancelled
  79586. 041Bh Contention event
  79587. 041Ch Screen switch
  79588. subevent 0000h: forward
  79589. subevent 0001h: back
  79590. 041Dh Filesystem change
  79591. 041Eh Check Focus
  79592. 041Fh Panic
  79593. Bitfields for boost value:
  79594. Bit(s) Description (Table 02561)
  79595. 0 boost system VM until focus changes
  79596. 1 boost system VM on Switcher screen
  79597. 2 boost system VM until response
  79598. 3 boost system VM during clipboard activity
  79599. 4 boost system VM during print screen
  79600. 5 boost system VM during update
  79601. --------m-2C0011-----------------------------
  79602. INT 2C P - Cloaking v1.01 - "Switch_VMs_and_Call_back"
  79603. AX = 0011h
  79604. EBX = handle of VM to be made active
  79605. SI:EDI -> 32-bit FAR completion procedure
  79606. Return: CF clear if successful (scheduled)
  79607. CF set on error
  79608. Notes: this function is only available while MS Windows is running
  79609. the completion procedure is called with CF clear if the specified
  79610. VM has been made active, or with CF set on error
  79611. SeeAlso: AX=000Fh,AX=0012h
  79612. --------m-2C0012-----------------------------
  79613. INT 2C P - Cloaking v1.01 - "Query_Current_VM"
  79614. AX = 0012h
  79615. Return: CF clear
  79616. EBX = handle of active VM
  79617. ESI = handle of system VM
  79618. ECX = VM status flags (see #02562)
  79619. EDX = shell flags (see #02563)
  79620. Note: this function is only available while MS Windows is running in enhanced
  79621. mode
  79622. SeeAlso: AX=000Fh,AX=0011h,AX=0013h
  79623. Bitfields for VM status flags:
  79624. Bit(s) Description (Table 02562)
  79625. 0 in exclusive mode
  79626. 1 runs in background
  79627. 2 being created
  79628. 3 suspended
  79629. 4 not executable
  79630. 5 executing in protected mode
  79631. 6 contains PM application
  79632. 7 32-bit PM application
  79633. 8 called from VxD
  79634. 9 high priority background
  79635. 10 blocked on semaphore
  79636. 11 awakening
  79637. 12 has pageable V86
  79638. 13 has locked V86
  79639. 14 is scheduled
  79640. 15 idle
  79641. 16 closing
  79642. Bitfields for shell flags:
  79643. Bit(s) Description (Table 02563)
  79644. 2 windowed
  79645. 5 Alt-Tab reserved
  79646. 6 Alt-Esc reserved
  79647. 7 Alt-Space reserved
  79648. 8 Alt-PrtSc reserved
  79649. 9 Alt-Enter reserved
  79650. 10 Alt-PrtSc reserved
  79651. 11 PrtSc reserved
  79652. 12 polling enabled
  79653. 13 no HMA
  79654. 14 has shortcut key
  79655. 15 locked EMS handles
  79656. 16 locked XMS handles
  79657. 17 fast paste enabled
  79658. 18 locked V86 memory
  79659. 30 close-on-exit enabled
  79660. --------m-2C0013-----------------------------
  79661. INT 2C P - Cloaking v1.01 - "Issue_System_Modal_Message"
  79662. AX = 0013h
  79663. EDX = message box flags (see #02564)
  79664. DS:ECX -> ASCIZ message text
  79665. DS:EDI -> ASCIZ caption
  79666. Return: CF clear
  79667. EAX = response code
  79668. Note: this function is only available while MS Windows is running in enhanced
  79669. mode
  79670. SeeAlso: AX=000Fh,AX=0012h
  79671. Bitfields for message box flags:
  79672. Bit(s) Description (Table 02564)
  79673. 3-0 response codes (see #02565)
  79674. 7-4 icon codes
  79675. 1 = Warning hand
  79676. 2 = exclamation mark
  79677. 4 = asterisk
  79678. 9-8 default response (0 = first button, 1 = second, 2 = third)
  79679. 12 message is system model
  79680. 15 don't change focus
  79681. 29 hang with interrupts enabled
  79682. 30 do not window
  79683. 31 execute ASAP
  79684. (Table 02565)
  79685. Values for response codes:
  79686. 00h OK
  79687. 01h OK, Cancel
  79688. 02h Abort, Retry, Ignore
  79689. 03h Yes, No, Cancel
  79690. 04h Yes, No
  79691. 05h Retry, Cancel
  79692. --------m-2C001D-----------------------------
  79693. INT 2C P - Cloaking v1.01 - GET INT 2C API HANDLER ENTRY POINT
  79694. AX = 001Dh
  79695. Return: CF clear
  79696. DX:EBX = selector:offset of Cloaking host INT 2C handler
  79697. Desc: get the Cloaking host's entry point to bypass any other programs
  79698. which may have hooked INT 2C in protected mode
  79699. Note: the returned entry point must be called with a simulated INT, i.e.
  79700. a PUSHD must precede the far call to the handler
  79701. SeeAlso: INT 2F/AX=4310h"Cloaking"
  79702. --------m-2C001E-----------------------------
  79703. INT 2C P - Cloaking v1.01 - CLEAR CRITICAL SECTION
  79704. AX = 001Eh
  79705. Return: CF clear
  79706. Desc: allow MS Windows to switch to another VM after having prevented it
  79707. by invoking a critical section
  79708. SeeAlso: AX=001Fh,INT 15/AX=101Ch,INT 2F/AX=1682h
  79709. --------m-2C001F-----------------------------
  79710. INT 2C P - Cloaking v1.01 - SET CRITICAL SECTION
  79711. AX = 001Fh
  79712. Return: CF clear
  79713. Desc: prevent MS Windows from switching to another VM
  79714. SeeAlso: AX=001Eh,INT 15/AX=101Bh,INT 2F/AX=1681h
  79715. --------m-2C0020-----------------------------
  79716. INT 2C P - Cloaking - GET SIZE OF PROTECTED-MODE STATE
  79717. AX = 0020h
  79718. Return: EAX = number of bytes required for storing state
  79719. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79720. SeeAlso: AX=0021h,AX=0022h
  79721. --------m-2C0021-----------------------------
  79722. INT 2C P - Cloaking - SAVE PROTECTED-MODE STATE
  79723. AX = 0021h
  79724. ES:EDI -> buffer for protected-mode state
  79725. Return: CF clear
  79726. buffer filled
  79727. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79728. SeeAlso: AX=0020h,AX=0022h
  79729. --------m-2C0022-----------------------------
  79730. INT 2C P - Cloaking - RESTORE PROTECTED-MODE STATE
  79731. AX = 0022h
  79732. DS:ESI -> buffer containing previously-saved protected-mode state
  79733. Return: CF clear if successful
  79734. state restored
  79735. CF set on error (invalid buffer contents)
  79736. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79737. SeeAlso: AX=0020h,AX=0021h
  79738. --------m-2C0023-----------------------------
  79739. INT 2C P - Cloaking - ISSUE PROTECTED-MODE XMS CALL
  79740. AX = 0023h
  79741. Notes: not currently implemented--NOP in RM386 v6.00
  79742. this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79743. --------m-2C0024-----------------------------
  79744. INT 2C P - Cloaking - SET V86-MODE STACK
  79745. AX = 0024h
  79746. DX:EBX = new value for V86-mode SS:ESP
  79747. Return: nothing
  79748. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79749. --------m-2C0025-----------------------------
  79750. INT 2C P - Cloaking - CALL V86-MODE PROCEDURE
  79751. AX = 0025h
  79752. DS:EBX -> client register structure (see #02559)
  79753. Return: CF clear if successful
  79754. client register structure updated
  79755. CF set if no more nested procedure call space available
  79756. Notes: this call uses the V86-mode stack supplied in the client structure, and
  79757. calls the routine specified by CS:IP in the client structure
  79758. this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79759. SeeAlso: AX=0026h,AX=0027h,INT 31/AX=0301h
  79760. --------m-2C0026-----------------------------
  79761. INT 2C P - Cloaking - CALL V86-MODE INTERRUPT HANDLER
  79762. AX = 0026h
  79763. DS:EBX -> client register structure (see #02559)
  79764. CX = interrupt number
  79765. Return: CF clear if successful
  79766. client register structure updated
  79767. CF set if no more nested procedure call space available
  79768. Notes: this call uses the V86-mode stack supplied in the client structure
  79769. this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79770. SeeAlso: AX=0025h,AX=0027h,INT 31/AX=0300h
  79771. --------m-2C0027-----------------------------
  79772. INT 2C P - Cloaking - CHAIN TO V86-MODE INTERRUPT HANDLER
  79773. AX = 0027h
  79774. DS:EBX -> client register structure (see #02559)
  79775. Return: CF clear if successful
  79776. client register structure updated
  79777. CF set if no more nested procedure call space available
  79778. Notes: this call uses the V86-mode stack supplied in the client structure,
  79779. and jumps to the address specified by CS:IP in the client structure
  79780. this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79781. SeeAlso: AX=0025h,AX=0026h
  79782. --------m-2C0028-----------------------------
  79783. INT 2C P - Cloaking - GET ESP0 FROM TSS
  79784. AX = 0028h
  79785. Return: CF clear
  79786. EAX = TSS's ESP0
  79787. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00, the
  79788. memory manager included in Helix Software's Netroom
  79789. --------m-2C0029-----------------------------
  79790. INT 2C P - Cloaking - SET SECONDARY STACK
  79791. AX = 0029h
  79792. DX:EBX = new value for SS:ESP of ring 3 secondary stack
  79793. Return: CF clear
  79794. Desc: inform RM386 of the ring 3 interrupt stack location
  79795. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79796. --------m-2C002A-----------------------------
  79797. INT 2C P - Cloaking - SET 8259 IRQ BASE VECTORS
  79798. AX = 002Ah
  79799. BL = base vector of master interrupt controller
  79800. CL = base vector of slave interrupt controller
  79801. Notes: this call merely informs RM386 that the caller has changed the
  79802. interrupt mappings
  79803. this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79804. SeeAlso: INT 67/AX=DE0Bh
  79805. --------m-2C002BCH81-------------------------
  79806. INT 2C P - Cloaking - PROTECTED-MODE VIRTUAL DMA SERVICES
  79807. AX = 002Bh
  79808. CH = 81h
  79809. CL = subfunction (02h-0Ch)
  79810. other registers as appropriate for subfunction
  79811. Return: varies by function
  79812. CF set on error
  79813. Notes: these functions are equivalent to the INT 4B/AX=81xxh subfunctions
  79814. with the same numbers
  79815. this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79816. SeeAlso: INT 4B/AX=8102h,INT 4B/AX=810Ch
  79817. --------m-2C002C-----------------------------
  79818. INT 2C P - Cloaking - GET PORT-TRAPPING PASSALONG
  79819. AX = 002Ch
  79820. Return: CF clear
  79821. DX:EBX = current I/O trapping passalong address
  79822. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79823. SeeAlso: AX=0008h,AX=002Dh
  79824. --------m-2C002D-----------------------------
  79825. INT 2C P - Cloaking - SET PORT-TRAPPING PASSALONG
  79826. AX = 002Dh
  79827. DX:EBX = new I/O trapping passalong address (see #02566)
  79828. Return: CF clear
  79829. Notes: RM386 calls the passalong address whenever an access to a monitored
  79830. I/O port is attempted; the handler should check whether it is a port
  79831. that it is interested in, and if not call the previous passalong
  79832. address (which was retrieved with AX=002Ch before installing the
  79833. new handler)
  79834. this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79835. SeeAlso: AX=0009h,AX=002Ch,INT 67/AX=5DEAh
  79836. (Table 02566)
  79837. Values Cloaking port-trapping passalong address is called with:
  79838. EAX = CS:IP of faulting instruction (unless executing in protected-mode
  79839. ring 3)
  79840. SS:EBX -> caller register structure (see #02559)
  79841. check EFLAGS V86-mode bit for type
  79842. CX = first two bytes of I/O instruction which was trapped
  79843. DX = port to which I/O is being performed
  79844. CF clear
  79845. Return: CF clear if RM386 should perform I/O operation
  79846. CF set if I/O should be skipped
  79847. Note: RM386 skips the trapped I/O instruction, so the passalong handler
  79848. should not modify the client CS:EIP
  79849. --------m-2C002E-----------------------------
  79850. INT 2C P - Cloaking - TRAP I/O PORT
  79851. AX = 002Eh
  79852. DX = port number to trap
  79853. Return: CF clear if successful
  79854. CF set on error (port out of range or reserved)
  79855. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79856. SeeAlso: AX=002Fh,AX=0030h
  79857. --------m-2C002F-----------------------------
  79858. INT 2C PU - Cloaking - UNTRAP I/O PORT
  79859. AX = 002Fh
  79860. DX = port number for which to cancel trapping
  79861. Return: CF clear if successful
  79862. CF set on error (port out of range or reserved)
  79863. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79864. SeeAlso: AX=002Eh,AX=0030h
  79865. --------m-2C0030-----------------------------
  79866. INT 2C PU - Cloaking - GET TRAPPING STATE OF SPECIFIED PORT
  79867. AX = 0030h
  79868. DX = port number
  79869. Return: CF clear if successful
  79870. BX = current state (0000h not trapped, 0001h trapped)
  79871. CF set on error (port out of range or reserved)
  79872. Note: this function was first introduced with RM386 (RAM-MAN/386) v6.00
  79873. SeeAlso: AX=002Eh,AX=002Fh
  79874. --------m-2C0031-----------------------------
  79875. INT 2C PU - RM386 v6.00 - BUG
  79876. AX = 0031h
  79877. Program: RM386 (RAM-MAN/386) is the memory manager included in Helix
  79878. Software's Netroom
  79879. Note: due to a fencepost error, RM386 v6.00 will branch unpredictably if
  79880. invoked with this function
  79881. --------m-2C0031-----------------------------
  79882. INT 2C P - Cloaking v1.01 - ALLOCATE V86 CALLBACK
  79883. AX = 0031h
  79884. DX:EBX = CS:EIP of protected-mode routine to be invoked by callback
  79885. Return: CF clear if successful
  79886. EBX = CS:IP of V86-mode callback handler
  79887. CF set on error
  79888. SeeAlso: AX=0032h
  79889. --------m-2C0032-----------------------------
  79890. INT 2C P - Cloaking v1.01 - FREE V86 CALLBACK
  79891. AX = 0032h
  79892. EBX = CS:IP of V86-mode callback handler
  79893. Return: CF clear if successful
  79894. CF set on error
  79895. AX = error code
  79896. 0005h invalid callback address
  79897. 0006h callback already free
  79898. SeeAlso: AX=0032h
  79899. --------m-2C0033-----------------------------
  79900. INT 2C P - Cloaking v1.01 - REGISTER CLOAKING CLIENT
  79901. AX = 0033h
  79902. DS:EDX -> client registration structure (see #02567)
  79903. Return: CF clear if successful
  79904. CF set on error (linked list corrupt)
  79905. SeeAlso: AX=0034h,#02778 at INT 2F/AX=4310h"Cloaking"
  79906. Format of client registration structure:
  79907. Offset Size Description (Table 02567)
  79908. 00h PWORD link to next structure
  79909. 06h PWORD link to previous structure
  79910. 0Ch 2 BYTEs client version (major, minor)
  79911. 0Eh 20 BYTEs client name
  79912. 22h DWORD physical address of client start
  79913. 26h DWORD client's total size in bytes
  79914. Note: the link area should not be modified once the structure has been
  79915. used for the registration call
  79916. --------m-2C0034-----------------------------
  79917. INT 2C P - Cloaking v1.01 - UNREGISTER CLOAKING CLIENT
  79918. AX = 0034h
  79919. DS:EDX -> client registration structure (see #02567)
  79920. Return: CF clear if successful
  79921. CF set on error (linked list corrupt)
  79922. Note: the client must unregister before freeing the XMS block containing
  79923. its registration structure(s)
  79924. SeeAlso: AX=0033h,#02778 at INT 2F/AX=4310h"Cloaking"
  79925. --------D-2D---------------------------------
  79926. INT 2D - DOS 2+ - RESERVED
  79927. Note: this vector is not used in DOS versions <= 6.00, and points at an IRET
  79928. BUG: RM386 v6.00-6.02 (as distributed with Helix's Netroom v3.x) contains
  79929. a stack bug in its protected-mode INT 2D handler which causes a crash
  79930. when INT 2D is invoked from V86 mode
  79931. --------t-2D---------------------------------
  79932. INT 2D - ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION (AMIS) [v3.6]
  79933. AH = multiplex number
  79934. AL = function
  79935. 00h installation check
  79936. 01h get private entry point
  79937. 02h uninstall
  79938. 03h request popup
  79939. 04h determine chained interrupts
  79940. 05h get hotkey list
  79941. 06h get device-driver information
  79942. 07h-0Fh reserved for future enhancements
  79943. Return: AL = 00h (not implemented)
  79944. other application-dependent
  79945. other registers vary by function (also see individual entries below)
  79946. Return: varies by function
  79947. Notes: programs should not use fixed multiplex numbers; rather, a program
  79948. should scan all multiplex numbers from 00h to FFh, remembering the
  79949. first unused multiplex in case the program is not yet installed.
  79950. For multiplex numbers which are in use, the program should compare
  79951. the first 16 bytes of the signature string to determine whether it
  79952. is already installed on that multiplex number. If not previously
  79953. installed, it should use the first free multiplex number.
  79954. functions other than 00h are not valid unless a program is installed
  79955. on the selected multiplex number
  79956. to be considered fully compliant with version 3.6 of the specification,
  79957. programs must implement at least functions 00h, 02h (no resident
  79958. uninstall code required), and 04h (return value 04h). TSRs that
  79959. provide hotkeys with which the user can activate them must also
  79960. implement function 05h. TSRs which provide DOS device drivers must
  79961. also implement function 06h. The absolute minimum fully-compliant
  79962. implementation has an overhead of 64 bytes (80 bytes with function
  79963. 05h) plus 22 bytes per hooked interrupt (for the interrupt sharing
  79964. protocol header and hook list entry).
  79965. the signature string and description may be used by memory mappers
  79966. to display the installed programs
  79967. to be considered fully compliant, users of this specification must
  79968. adhere to the IBM interrupt sharing protocol (see #02568), which will
  79969. permit removal of TSRs in arbitrary order and interrupt handler
  79970. reordering. All TSRs following this specification should be
  79971. removable unless they are loaded from CONFIG.SYS, though they need
  79972. not keep the code for removing themselves resident; it is acceptable
  79973. for a separate program to perform the interrupt unhooking and
  79974. memory-freeing steps of removal.
  79975. A sample public-domain implementation including example TSRs and
  79976. utility programs may be found in a separate package distributed as
  79977. AMISLnnn.ZIP (AMISL092.ZIP as of this writing).
  79978. Please let me know if you choose to follow this proposal. The
  79979. signature and a list of the private API calls you use would be
  79980. appreciated, as well.
  79981. SeeAlso: INT 2D/AL=00h,INT 2D/AL=01h,INT 2D/AL=02h,INT 2D/AL=03h,INT 2D/AL=04h
  79982. SeeAlso: INT 2D/AL=05h,INT 2D/AL=06h,INT 2F"NOTES"
  79983. Format of interrupt sharing protocol interrupt handler entry point:
  79984. Offset Size Description (Table 02568)
  79985. 00h 2 BYTEs short jump to actual start of interrupt handler, immediately
  79986. following this data block (EBh 10h)
  79987. 02h DWORD address of next handler in chain
  79988. 06h WORD signature 424Bh
  79989. 08h BYTE EOI flag
  79990. 00h software interrupt or secondary hardware interrupt handler
  79991. 80h primary hardware interrupt handler (will issue EOI)
  79992. 09h 2 BYTEs short jump to hardware reset routine
  79993. must point at a valid FAR procedure (may be just RETF)
  79994. 0Bh 7 BYTEs reserved (0) by IBM for future expansion
  79995. Note: when chaining to the prior handler, the interrupt handler must perform
  79996. an indirect jump/call using the address at offset 02h in the
  79997. ISP header. This permits another AMIS TSR to hook itself into
  79998. the chain at a position other than as the first handler to receive
  79999. an interrupt.
  80000. SeeAlso: INT F1/AH=01h"Common ISDN API",INT F1/AH=06h"CAPI",#04068
  80001. --------t-2D--00-----------------------------
  80002. INT 2D - AMIS v3.0+ - INSTALLATION CHECK
  80003. AL = 00h
  80004. AH = multiplex number for program
  80005. Return: AL = 00h if free
  80006. AL = FFh if multiplex number in use
  80007. CX = binary version number (CH = major, CL = minor)
  80008. DX:DI -> signature string (see #02569) identifying the program
  80009. using the multiplex number
  80010. SeeAlso: INT 2D/AL=01h,INT 2D/AL=02h,INT 2D/AL=03h,INT 2D/AL=04h,INT 2D/AL=05h
  80011. SeeAlso: INT 2D/AL=06h
  80012. Index: installation check;Alternate Multiplex Interrupt Specification
  80013. Index: installation check;AMIS|installation check;FASTMOUS
  80014. Index: installation check;SPELLER|installation check;Monitor
  80015. Index: installation check;NOLPT|installation check;NOTE
  80016. Index: installation check;RBkeyswp|installation check;SWITCHAR
  80017. Index: installation check;VGABLANK|installation check;EATMEM
  80018. Index: installation check;RECALL|installation check;XPTR2
  80019. Format of AMIS signature string:
  80020. Offset Size Description (Table 02569)
  80021. 00h 8 BYTEs blank-padded manufacturer's name (possibly abbreviated)
  80022. 08h 8 BYTEs blank-padded product name
  80023. 10h 64 BYTEs ASCIZ product description (optional, may be a single 00h)
  80024. Note: it is not necessary to reserve a full 64 bytes for the description,
  80025. just enough to store the actual ASCIZ string
  80026. SeeAlso: #02570
  80027. (Table 02570)
  80028. Values for AMIS signatures known to be in use:
  80029. 'Byrial J' 'EKLAVO ' permits keyboard entry of Esperanto accented letters
  80030. 'CoveSoft' 'Burnout+' shareware screen saver Burnout Plus
  80031. 'Crynwr ' 'SPELLER ' TSR spelling-checker
  80032. 'CPH1995 ' 'CDTSR ' resident CD-Audio player
  80033. 'CPH1996 ' 'DSAPI '
  80034. 'CSJewell' 'Modula3L' Curtis Jewell's Modula-3 compiler (non-TSR)
  80035. 'DAISYCHA' 'INDRIVER' Advanced Parallel Port daisy chain driver (vendor name
  80036. in product description field, if desired)
  80037. (see also INT 2D/AL=DCh)
  80038. 'DTown SD' 'DTU ' DTown Software Development's DTown Utilities
  80039. (see also INT 2D/AL=20h)
  80040. 'ECLIPSE ' 'PLUMP ' Eclipse Software's printer and plotter spooler
  80041. 'GraySoft' 'GIPC ' GraySoft's Inter-Process Communications driver
  80042. 'heathh ' 'Monitor '
  80043. 'Helge O ' TSRs by Helge Olav Helgesen
  80044. 'J. Berry' 'RATSR ' RemoteAccess Network Manager workstation module
  80045. 'JWB ' 'RAMLIGHT' James Birdsall's on-screen RAMdisk activity indicator
  80046. 'M Better' 'iHPFS ' Marcus Better's HPFS filesystem driver for DOS
  80047. 'M. Paul ' 'FREEVER ' DOS version-faking TSR by Matthias Paul
  80048. 'Nildram ' 'ST ' Screen Thief graphics screen grabber
  80049. 'Pino Nav' 'ALTMENU ' activate any program's menu bar by pressing Alt key
  80050. 'Pino Nav' 'Keybit ' Pino Navato's KEYBIT Lite Italian keyboard driver v4+
  80051. 'PowrQuot' 'CAPRILOG'
  80052. 'PowrQuot' 'CAPRITSR'
  80053. 'PowrQuot' 'CAPRIWIN'
  80054. 'R-Ware ' 'dLite ' run-time data decompression TSR
  80055. 'Ralf B ' 'disaXXYY' RBdisabl -- disable key scancode XX w/ shift states YY
  80056. 'Ralf B ' 'DUALVGA ' dual-VGA support, screen blanker, and DPMS driver
  80057. 'Ralf B ' 'FASTMOUS' example TSR included with sample AMIS library code
  80058. 'Ralf B ' 'NoBreak ' disable Ctrl-@, Ctrl-C, and Ctrl-Break keys
  80059. 'Ralf B ' 'NOLPT n ' example TSR -- turn LPTn into bit-bucket
  80060. 'Ralf B ' 'NOTE ' example TSR -- popup note-taker
  80061. 'Ralf B ' 'RBclock ' RBclock -- on-screen real-time clock
  80062. 'Ralf B ' 'RBclockE' RBclock -- on-screen elapsed-time clock
  80063. 'Ralf B ' 'RBdvorak' Dvorak keyboard mapping w/ opt Esc/~, LCtrl/CapsLk swap
  80064. 'Ralf B ' 'RBkcount' display count of keystrokes on screen
  80065. 'Ralf B ' 'RBkeyswp' RBkeyswap v3.0+ -- swap Esc/~ and LCtrl/CapsLock keys
  80066. 'Ralf B ' 'RBnoboot' disable Ctrl-Alt-Del key combination
  80067. 'Ralf B ' 'ShftCaps' require Shift-CapsLock to turn on CapsLock
  80068. 'Ralf B ' 'ShftNumL' require Shift-NumLock to turn off NumLock
  80069. 'Ralf B ' 'SWITCHAR' example TSR -- add switchar() support removed from DOS5
  80070. 'Ralf B ' 'VGABLANK' VGA-only screen blanker
  80071. 'Ralf B ' 'WINTAME ' yield CPU when program in Win95 DOS box is idle
  80072. 'Sally IS' 'Mdisk ' removeable, resizeable RAMdisk
  80073. 'Sally IS' 'Scr2Tex ' screen dumper with output in (La)Tex format
  80074. 'SRT ' 'STOPBOOT' reboot preventer by Steve Talbot
  80075. 'Thaco ' 'NEST ' Eirik Pedersen's programmer's delimiter matcher
  80076. 'TifaWARE' 'EATMEM ' George A. Theall's public domain memory restrictor for
  80077. testing programs (v1.1+)
  80078. 'TifaWARE' 'RECALL ' public domain commandline editor and history (v1.2+)
  80079. 'Todd ' 'XPTR2 ' PC-to-Transputer interface by Todd Radel
  80080. 'WlkngOwl' 'NoiseSYS' NOISE.SYS random-number generator
  80081. SeeAlso: #02569
  80082. --------t-2D--01-----------------------------
  80083. INT 2D - AMIS v3.0+ - GET PRIVATE ENTRY POINT
  80084. AL = 01h
  80085. AH = multiplex number for program
  80086. Return: AL = 00h if all API calls via INT 2D
  80087. AL = FFh if entry point supported
  80088. DX:BX -> entry point for bypassing interrupt chain
  80089. Note: this function is not valid unless a program is installed on the
  80090. specified multiplex number; use INT 2D/AL=00h to check
  80091. SeeAlso: INT 2D/AL=00h,INT 2D/AL=02h,INT 2D/AL=03h,INT 2D/AL=04h,INT 2D/AL=05h
  80092. SeeAlso: INT 2D/AL=06h
  80093. Index: entry point;Alternate Multiplex Interrupt|entry point;AMIS
  80094. --------t-2D--02-----------------------------
  80095. INT 2D - AMIS v3.0+ - UNINSTALL
  80096. AL = 02h
  80097. AH = multiplex number for program
  80098. DX:BX = return address for successful uninstall (may be ignored by TSR)
  80099. Return: AL = status
  80100. 00h not implemented (makes TSR non-compliant with specification)
  80101. 01h unsuccessful
  80102. 02h can not uninstall yet, will do so when able
  80103. 03h safe to remove, but no resident uninstaller
  80104. (TSR still enabled)
  80105. BX = segment of memory block with resident code
  80106. 04h safe to remove, but no resident uninstaller
  80107. (TSR now disabled)
  80108. BX = segment of memory block with resident code
  80109. 05h not safe to remove now, try again later
  80110. 06h disabled, but can not be removed from memory
  80111. because loaded from CONFIG.SYS
  80112. 07h safe to remove, but no resident device-driver
  80113. uninstaller. Caller must unlink device
  80114. drivers from DOS device chain as well as
  80115. unhooking interrupts and freeing memory
  80116. BX = segment of memory block with resident code
  80117. FFh successful
  80118. return at DX:BX with AX destroyed if successful and TSR honors
  80119. specific return address
  80120. Note: this function is not valid unless a program is installed on the
  80121. specified multiplex number; use INT 2D/AL=00h to check
  80122. SeeAlso: INT 2D/AL=00h,INT 2D/AL=01h,INT 2D/AL=03h,INT 2D/AL=04h,INT 2D/AL=05h
  80123. SeeAlso: INT 2D/AL=06h
  80124. Index: uninstall;Alternate Multiplex Interrupt Specification|uninstall;AMIS
  80125. --------t-2D--03-----------------------------
  80126. INT 2D - AMIS v3.0+ - REQUEST POP-UP
  80127. AL = 03h
  80128. AH = multiplex number for program
  80129. Return: AL = status
  80130. 00h not implemented or TSR is not a pop-up
  80131. 01h can not pop up at this time, try again later
  80132. 02h can not pop up yet, will do so when able
  80133. 03h already popped up
  80134. 04h unable to pop up, user intervention required
  80135. BX = standard reason code
  80136. 0000h unknown failure
  80137. 0001h interrupt chain passes through memory
  80138. which must be swapped out to pop up
  80139. 0002h swap-in failed
  80140. CX = application's reason code if nonzero
  80141. FFh TSR popped up and was exited by user
  80142. BX = return value
  80143. 0000h no return value
  80144. 0001h TSR unloaded
  80145. 0002h-00FFh reserved
  80146. 0100h-FFFFh application-dependent
  80147. Note: this function is not valid unless a program is installed on the
  80148. specified multiplex number; use INT 2D/AL=00h to check
  80149. SeeAlso: INT 2D/AL=00h,INT 2D/AL=01h,INT 2D/AL=02h,INT 2D/AL=04h,INT 2D/AL=05h
  80150. SeeAlso: INT 2D/AL=06h
  80151. --------t-2D--04-----------------------------
  80152. INT 2D - AMIS v3.0+ - DETERMINE CHAINED INTERRUPTS
  80153. AL = 04h
  80154. AH = multiplex number for program
  80155. BL = interrupt number (except 2Dh)
  80156. Return: AL = status
  80157. 00h not implemented (makes TSR non-compliant with specification)
  80158. 01h (obsolete) unable to determine
  80159. 02h (obsolete) interrupt hooked
  80160. 03h (obsolete) interrupt hooked, address returned
  80161. DX:BX -> TSR's interrupt BL handler
  80162. 04h list of hooked interrupts returned
  80163. DX:BX -> interrupt hook list (see #02571)
  80164. FFh interrupt not hooked
  80165. Notes: BL is ignored if the TSR returns AL=04h; in that case, the caller
  80166. needs to scan the return list rather than making additional calls
  80167. to this function. If the return is not 00h or 04h, then the caller
  80168. must cycle through the remaining interrupt numbers it wishes to
  80169. check.
  80170. return values 01h through 03h may not be used by AMIS v3.6-compliant
  80171. programs; they are included here solely for compatibility with
  80172. version 3.3, though they were probably never used in any
  80173. implementation
  80174. for return values 01h through 03h, since INT 2D is known to be hooked,
  80175. the resident code need not test for BL=2Dh (to minimize its size),
  80176. and the return value is therefore undefined in that case.
  80177. this function is not valid unless a program is installed on the
  80178. specified multiplex number; use INT 2D/AL=00h to check
  80179. SeeAlso: INT 2D/AL=00h,INT 2D/AL=01h,INT 2D/AL=02h,INT 2D/AL=03h,INT 2D/AL=05h
  80180. SeeAlso: INT 2D/AL=06h
  80181. Format of AMIS interrupt hook list [array]:
  80182. Offset Size Description (Table 02571)
  80183. 00h BYTE interrupt number (last entry in array is 2Dh)
  80184. 01h WORD offset within hook list's segment of the interrupt handler
  80185. this will point at the initial short jump of the interrupt
  80186. sharing protocol header (see #02568)
  80187. SeeAlso: #02572
  80188. --------t-2D--05-----------------------------
  80189. INT 2D - AMIS v3.5+ - GET HOTKEYS
  80190. AL = 05h
  80191. AH = multiplex number for program
  80192. Return: AL = status
  80193. 00h not implemented
  80194. FFh supported
  80195. DX:BX -> hotkey list (see #02572)
  80196. Notes: this function is not valid unless a program is installed on the
  80197. specified multiplex number; use INT 2D/AL=00h to check
  80198. programs which provide hotkeys are required to provide this function
  80199. to be fully compliant with this specification
  80200. SeeAlso: INT 2D/AL=00h,INT 2D/AL=01h,INT 2D/AL=02h,INT 2D/AL=03h,INT 2D/AL=04h
  80201. SeeAlso: INT 2D/AL=06h
  80202. Format of AMIS hotkey list:
  80203. Offset Size Description (Table 02572)
  80204. 00h BYTE type of hotkey checking (see #02573)
  80205. 01h BYTE number of hotkeys (may be zero if TSR can disable hotkeys)
  80206. 02h 6N BYTEs array of hotkey definitions
  80207. (one per hotkey, first should be primary hotkey)
  80208. Offset Size Description
  80209. 00h BYTE hotkey scan code (00h/80h if shift states only)
  80210. hotkey triggers on release if bit 7 set
  80211. 01h WORD required shift states (see #02574)
  80212. 03h WORD disallowed shift states (see #02574)
  80213. 05h BYTE hotkey flags (see #02575)
  80214. Notes: except for bit 7, the shift states correspond exactly to the return
  80215. values from INT 16/AH=12h. A set bit in the required states word
  80216. indicates that the corresponding shift state must be active when the
  80217. hotkey's scan code is received for the hotkey to be recognized; a
  80218. clear bit means that the corresponding state may be ignored. A set
  80219. bit in the disallowed shift states word indicates that the
  80220. corresponding shift state must be inactive.
  80221. for the disallowed-states word, if one of the "either" bits is set,
  80222. then both the corresponding left bit and right bit must be set
  80223. examples:
  80224. Ctrl-Alt-Del monitoring: 53h 000Ch 0003h 06h
  80225. Alt-key tap (DESQview): B8h 0000h 0007h 08h
  80226. Shf-Shf-N (NOTE.COM): 31h 0003h 000Ch 00h
  80227. Index: hotkeys;AMIS
  80228. SeeAlso: #00006
  80229. Bitfields for type of AMIS hotkey checking:
  80230. Bit(s) Description (Table 02573)
  80231. 0 checks before chaining INT 09
  80232. 1 checks after chaining INT 09
  80233. 2 checks before chaining INT 15/AH=4Fh
  80234. 3 checks after chaining INT 15/AH=4Fh
  80235. 4 checks on INT 16/AH=00h,01h,02h
  80236. 5 checks on INT 16/AH=10h,11h,12h
  80237. 6 checks on INT 16/AH=20h,21h,22h
  80238. 7 reserved (0)
  80239. SeeAlso: #02572
  80240. Bitfields for AMIS shift states:
  80241. Bit(s) Description (Table 02574)
  80242. 0 right shift pressed
  80243. 1 left shift pressed
  80244. 2 either control key pressed
  80245. 3 either Alt key pressed
  80246. 4 ScrollLock active
  80247. 5 NumLock active
  80248. 6 CapsLock active
  80249. 7 either shift key pressed
  80250. 8 left control key pressed
  80251. 9 left Alt key pressed
  80252. 10 right control key pressed
  80253. 11 right Alt key pressed
  80254. 12 ScrollLock pressed
  80255. 13 NumLock pressed
  80256. 14 CapsLock pressed
  80257. 15 SysReq key pressed
  80258. Notes: if bit 2 is set, either control key may be pressed for the hotkey; if
  80259. bits 8 and 10 are both set, then both control keys must be pressed.
  80260. Similarly for bits 3 and 9/11, as well as 7 and 0/1.
  80261. the SysReq key is often labeled SysRq
  80262. SeeAlso: #02572,#02575
  80263. Bitfields for AMIS hotkey flags:
  80264. Bit(s) Description (Table 02575)
  80265. 0 hotkey chained before processing
  80266. 1 hotkey chained after processing
  80267. 2 others should pass through this hotkey so that it can be monitored
  80268. 3 hotkey will not activate if other keys pressed/released before hotkey
  80269. press is completed
  80270. 4 this key is remapped into some other key
  80271. 5 this key is conditionally chained (sometimes passed on, sometimes
  80272. swallowed)
  80273. 6-7 reserved (0)
  80274. SeeAlso: #02572,#02574
  80275. --------t-2D--06-----------------------------
  80276. INT 2D - AMIS v3.6 - GET DEVICE-DRIVER INFORMATION
  80277. AL = 06h
  80278. AH = multiplex number for program
  80279. Return: AL = number of device driver headers supplied by prog.
  80280. AH = device-driver flags (see #02576)
  80281. DX:BX -> first device driver header (see #01646)
  80282. Program: AMIS is the Alternate Multiplex Interrupt Specification promulgated
  80283. by Ralf Brown
  80284. Notes: if AL=00h, AH,BX,DX are meaningless and may be destroyed
  80285. this function is not valid unless a program is installed on the
  80286. specified multiplex number; use INT 2D/AL=00h to check
  80287. programs which provide device drivers are required to support this
  80288. function to be considered fully compliant with v3.6+ of the
  80289. specification
  80290. SeeAlso: INT 2D/AL=00h,INT 2D/AL=01h,INT 2D/AL=02h,INT 2D/AL=03h,INT 2D/AL=04h
  80291. SeeAlso: INT 2D/AL=05h
  80292. Bitfields for AMIS device-driver information flags:
  80293. Bit(s) Description (Table 02576)
  80294. 0 program loaded from CONFIG.SYS, and thus can not be removed from memory
  80295. (leave clear if unable to determine)
  80296. 1 device driver headers have not been linked into DOS device chain
  80297. 2 reentrant device driver(s)
  80298. --------N-2D--10-----------------------------
  80299. INT 2D - RATSR 2.0+ - GET STATUS
  80300. AL = 10h
  80301. AH = AMIS multiplex number for RATSR
  80302. Return: AL = status
  80303. 01h listening (no connection)
  80304. 02h receiving \
  80305. 03h sending > station being monitored
  80306. 04h initializing receive /
  80307. AH = keyboard lock status (00h unlocked, 01h locked)
  80308. Program: RATSR is a utility by James Berry provided with
  80309. RemoteAccess/Professional, a commercial bulletin board system, that
  80310. allows remote control of a station over a network
  80311. SeeAlso: INT 2D"AMIS"
  80312. --------d-2D--10-----------------------------
  80313. INT 2D - dLite 1.0+ - GET PARAMETER BLOCK ADDRESS
  80314. AL = 10h
  80315. AH = AMIS multiplex number for dLite
  80316. Return: CF clear if successful
  80317. ES:BX -> parameter block (see #02577)
  80318. CF set on error
  80319. Program: dLite is a shareware TSR by Rainer Schuetze which transparently
  80320. expands compressed files when they are read
  80321. SeeAlso: AL=11h"dLite",AL=12h"dLite",INT 21/AX=FEDCh"PCMANAGE"
  80322. Format of dLite parameter block:
  80323. Offset Size Description (Table 02577)
  80324. 00h BYTE TSR flags (see #02578)
  80325. 01h WORD maximum number of programs needing original filesize
  80326. 03h WORD current number of programs needing original filesize
  80327. 05h WORD maximum number of files that can be handled by dLite (should
  80328. be the same as FILES= in CONFIG.SYS)
  80329. 07h WORD offset (in the same segment as the parameter block) of the
  80330. table of programs needing the original filesize (8 bytes
  80331. each, without path or extension, uppercase, and zero \
  80332. terminated if shorter than 8 bytes)
  80333. Bitfields for dLite TSR flags:
  80334. Bit(s) Description (Table 02578)
  80335. 0 deny FCB access
  80336. 1 dLite sleeping rather than activated
  80337. 2 always indicate original filesize when reading directory entries,
  80338. rather than only for specified programs
  80339. 3-7 reserved
  80340. SeeAlso: #02577
  80341. --------V-2D--10-----------------------------
  80342. INT 2D - Burnout Plus v3.00 - GET STATE/CONTROL INFORMATION
  80343. AL = 10h
  80344. AH = AMIS multiplex number for Burnout Plus
  80345. Return: AL = 01h
  80346. BX = Burnout Plus status (see #02579)
  80347. CX = record of features loaded (see #02580)
  80348. ES:DI -> Burnout Plus control structure (see #02581)
  80349. Program: Burnout Plus is a DOS screen saver from Cove Software
  80350. SeeAlso: INT 14/AX=AA01h,INT 2D"AMIS"
  80351. Index: screen saver;Burnout Plus
  80352. Bitfields for Burnout Plus status:
  80353. Bit(s) Description (Table 02579)
  80354. 0 screen is blanked
  80355. 1 MS Windows is active (Burnout Plus deactivated)
  80356. 2-15 reserved
  80357. Bitfields for Burnout Plus features loaded/features enabled:
  80358. Bit(s) Description (Table 02580)
  80359. 0 mouse activity monitor
  80360. 1 passkey support
  80361. 2 password support
  80362. 3 continuous clear
  80363. 4 software blanking
  80364. 5 video activity monitor
  80365. 6 disk activity monitor
  80366. 7 activating keystroke suppression
  80367. SeeAlso: #02581
  80368. Format of Burnout Plus control structure:
  80369. Offset Size Description (Table 02581)
  80370. 00h BYTE size of structure in bytes
  80371. 01h WORD Burnout Plus version
  80372. 03h WORD screen blanking reset count in clock ticks
  80373. 05h WORD current countdown value in clock ticks
  80374. 07h BYTE type of timeout specification
  80375. 08h BYTE instant-blank hotkey
  80376. 09h WORD extended status information (see #02582)
  80377. the bits for password, passkey, and software blanking are
  80378. ignored and cannot be enabled or disabled externally
  80379. 0Bh WORD features enabled (see #02580)
  80380. Note: all fields except the first two may be modified by external programs
  80381. to affect the operation of Burnout Plus
  80382. Index: hotkeys;Burnout Plus
  80383. Bitfields for extended Burnout Plus status information:
  80384. Bit(s) Description (Table 02582)
  80385. 0 Burnout Plus disabled
  80386. 1 force screen to blank on next clock tick
  80387. 2 restore screen if currently blanked
  80388. 3-15 reserved
  80389. Note: 1 and 2 are automatically cleared by Burnout Plus after blanking
  80390. or restoring the screen
  80391. SeeAlso: #02581
  80392. --------V-2D--10-----------------------------
  80393. INT 2D U - Screen Thief v1.00 - FREE HIGH MEMORY BUFFERS
  80394. AL = 10h
  80395. AH = AMIS multiplex number for Screen Thief
  80396. Return: nothing
  80397. Program: Screen Thief is a graphics screen grabber
  80398. Note: releases any code and data stored in EMS, DOS UMBs, or XMS UMBs, but
  80399. does not release the low-memory stub; this may be used to effect a
  80400. partial uninstall if INT 2D/AL=02h fails
  80401. SeeAlso: INT D8"Screen Thief"
  80402. --------i-2D--10-----------------------------
  80403. INT 2D U - RAMLIGHT v1.0 - GET MONITORING INFORMATION
  80404. AL = 10h
  80405. AH = AMIS multiplex number for RAMLIGHT
  80406. Return: ES:BX -> array of fake device driver headers used in monitoring
  80407. CX = number of drives being monitored???
  80408. --------U-2D--10-----------------------------
  80409. INT 2D - DTown Utilities v1.40+ - EXTENDED API INSTALLATION CHECK
  80410. AL = 10h
  80411. Return: AL = FFh
  80412. BL = extended API availability (00h no, 01h API is loaded)
  80413. SeeAlso: INT 2D/AL=11h"DTown",INT 2D/AL=20h,INT 2D/AL=50h
  80414. --------s-2D--10-----------------------------
  80415. INT 2D - CDTSR - GET INTERNAL VARIABLE TABLE
  80416. AL = 10h
  80417. AH = AMIS multiplex number for CDTSR
  80418. Return: CX:DX -> CDTSR internal variable structure (see #02583)
  80419. Program: CDTSR is a resident audio CD player by Colin Hill
  80420. SeeAlso: INT 2D/AL=11h"CDTSR",INT 2D/AL=12h"CDTSR",INT 2D/AL=13h"CDTSR"
  80421. Format of CDTSR internal variable structure:
  80422. Offset Size Description (Table 02583)
  80423. 00h BYTE hotkey scan code (see #00006)
  80424. 01h BYTE hotkey shift states
  80425. 02h BYTE flag: repeat
  80426. 03h BYTE flag: custom repeat
  80427. 04h BYTE flag: background polling
  80428. 05h DWORD (read-only) internal timing variable
  80429. 09h DWORD current track play position, in frames
  80430. 0Dh DWORD current disk play position, in frames
  80431. 11h BYTE number of entries in track program
  80432. 12h BYTE index into track program currently playing (FFh if not playing)
  80433. 13h 100 BYTEs track program (each byte contains one track number)
  80434. 77h BYTE saved cursor end scan line
  80435. 78h BYTE saved cursor start scan line
  80436. 79h BYTE currently playing track
  80437. 7Ah BYTE CD driver media-change flag
  80438. 7Bh WORD video base segment during last popup
  80439. 7Dh WORD video page offset during last popup
  80440. 7Fh BYTE currently-selected track
  80441. 80h DWORD begin of custom repeat, in frames
  80442. 84h DWORD end of custom repeat, in frames
  80443. 88h WORD track program index of top list item
  80444. --------K-2D--10-----------------------------
  80445. INT 2D - KEYBIT Lite v5+ - GET POINTER TO STATUS BYTE
  80446. AL = 10h
  80447. AH = AMIS multiplex number for KEYBIT Lite
  80448. Return: DX:BX -> status byte (see #02584)
  80449. Program: KEYBIT Lite is an enhanced Italian keyboard driver by Pino Navato.
  80450. SeeAlso: INT 2D"AMIS"
  80451. Bitfields for KEYBIT Lite status byte:
  80452. Bit(s) Description (Table 02584)
  80453. 7 KEYBIT Lite active
  80454. 6 E-mail support active
  80455. 5-0 reserved
  80456. Notes: E-mail support is one of the original features of KEYBIT Lite. It is
  80457. the automatic conversion of the 8-bits ASCII chars produced by some
  80458. keys available on Italian keyboards to couples of 7-bits chars.
  80459. Message editors should always enable e-mail support, they should also
  80460. restore its original status before exiting.
  80461. The user can change both status bits by hotkeys.
  80462. --------K-2D--10-----------------------------
  80463. INT 2D - ALTMENU - GET POINTER TO KEY CODE
  80464. AL = 10h
  80465. AH = AMIS multiplex number for signature 'Pino Nav' 'ALTMENU '
  80466. Return: DX:BX -> WORD key code to insert in keyboard buffer on Alt-key tap
  80467. Program: Pino Navato's freeware ALTMENU permits activating the menu bar of
  80468. any program by pressing the Alt key alone.
  80469. Notes: The value in the key code word will be returned in AX by a call to
  80470. INT 16/AH=00h after the Alt key is pressed by itself
  80471. ALTMENU may be disabled by setting the key code equal to 0000h
  80472. SeeAlso: INT 16/AH=00h,INT 2D"AMIS"
  80473. --------d-2D--11-----------------------------
  80474. INT 2D - dLite 1.0+ - CHECK FOR dPressed FILE AND GET ORIGINAL SIZE
  80475. AL = 11h
  80476. AH = AMIS multiplex number for dLite
  80477. BX = file handle
  80478. Return: CF clear if successful
  80479. DX:AX = size of uncompressed file
  80480. CF set on error (not dPressed file)
  80481. SeeAlso: AL=10h"dLite",AL=12h"dLite"
  80482. --------U-2D--11-----------------------------
  80483. INT 2D - DTown Utilities v1.40+ - UTILITY INSTALLATION CHECK
  80484. AL = 11h
  80485. BL = function
  80486. 00h get number of installed utilities
  80487. Return: BL = number of utilities
  80488. 01h get installed utilities
  80489. DX:DI -> buffer containing one byte for each utility
  80490. Return: DX:DI buffer filled with flags (0=no,1=yes) indicating
  80491. whether the corresponding utility is loaded
  80492. Return: AL = FFh if supported
  80493. Note: this function is only available if the extended API has been installed
  80494. in the resident portion
  80495. SeeAlso: INT 2D/AL=10h"DTown",INT 2D/AL=20h
  80496. --------s-2D--11-----------------------------
  80497. INT 2D - CDTSR - REPROGRAM CDTSR
  80498. AL = 11h
  80499. AH = AMIS multiplex number for CDTSR
  80500. Return: nothing
  80501. Program: CDTSR is a resident audio CD player by Colin Hill
  80502. Desc: reprograms CDTSR based on the values in the internal variable
  80503. structure (see #02583), which may have been changed by an application
  80504. SeeAlso: INT 2D/AL=10h"CDTSR",INT 2D/AL=12h"CDTSR",INT 2D/AL=13h"CDTSR"
  80505. --------d-2D--12-----------------------------
  80506. INT 2D - dLite 1.0+ - CHECK FOR dPressed FILE AND GET COMPRESSED SIZE
  80507. AL = 12h
  80508. AH = AMIS multiplex number for dLite
  80509. BX = file handle
  80510. Return: CF clear if successful
  80511. DX:AX = size of compressed file
  80512. CF set on error (not dPressed file)
  80513. SeeAlso: AL=10h"dLite",AL=11h"dLite"
  80514. --------s-2D--12-----------------------------
  80515. INT 2D - CDTSR - DISABLE POPUP
  80516. AL = 12h
  80517. AH = AMIS multiplex number for CDTSR
  80518. Return: nothing
  80519. SeeAlso: INT 2D/AL=10h"CDTSR",INT 2D/AL=11h"CDTSR",INT 2D/AL=13h"CDTSR"
  80520. --------U-2D--12-----------------------------
  80521. INT 2D - FREEVER - GET ORIGINAL DOS VERSION INFO
  80522. AL = 12h
  80523. AH = AMIS multiplex number for FREEVER
  80524. Return: AL = FFh if successful
  80525. BH = major DOS version
  80526. BL = minor DOS version
  80527. CH = DOS version flag
  80528. CL = OEM number
  80529. DH = major DR DOS version number (FFh if unknown)
  80530. DL = minor DR DOS version number (FFh if unknown)
  80531. Program: FREEVER is an AMIS-conformant freeware DOS version-faking TSR similar
  80532. to SETVER for any DOS-compatible OS, written by Matthias Paul
  80533. SeeAlso: INT 2D/AL=13h"FREEVER",INT 2D/AL=14h"FREEVER",INT 2D/AL=17h"FREEVER"
  80534. --------s-2D--13-----------------------------
  80535. INT 2D - CDTSR - ENABLE POPUP
  80536. AL = 13h
  80537. AH = AMIS multiplex number for CDTSR
  80538. Return: nothing
  80539. Program: CDTSR is a resident audio CD player by Colin Hill
  80540. SeeAlso: INT 2D/AL=10h"CDTSR",INT 2D/AL=11h"CDTSR",INT 2D/AL=12h"CDTSR"
  80541. --------U-2D--13-----------------------------
  80542. INT 2D - FREEVER - SET VERSION NUMBERS
  80543. AL = 13h
  80544. AH = AMIS multiplex number for FREEVER
  80545. BH = new major DOS version
  80546. BL = new minor DOS version
  80547. CH = new DOS version flag
  80548. CL = new DOS revision number
  80549. DH = new OEM number
  80550. SeeAlso: INT 2D/AL=12h"FREEVER",INT 2D/AL=15h"FREEVER",INT 2D/AL=17h"FREEVER"
  80551. --------U-2D--14-----------------------------
  80552. INT 2D - FREEVER - ENABLE TSR
  80553. AL = 14h
  80554. AH = AMIS multiplex number for FREEVER
  80555. Return: AL = FFh if successful
  80556. SeeAlso: INT 2D/AL=12h"FREEVER",INT 2D/AL=15h"FREEVER",INT 2D/AL=16h"FREEVER"
  80557. --------U-2D--15-----------------------------
  80558. INT 2D - FREEVER - DISABLE TSR
  80559. AL = 15h
  80560. AH = AMIS multiplex number for FREEVER
  80561. Return: AL = FFh if successful
  80562. SeeAlso: INT 2D/AL=12h"FREEVER",INT 2D/AL=14h"FREEVER",INT 2D/AL=16h"FREEVER"
  80563. --------U-2D--16-----------------------------
  80564. INT 2D - FREEVER - GET TSR STATUS
  80565. AL = 16h
  80566. AH = AMIS multiplex number for FREEVER
  80567. Return: AL = FFh if successful
  80568. BL = status
  80569. 01h resident and active
  80570. 02h resident and inactive
  80571. SeeAlso: INT 2D/AL=12h"FREEVER",INT 2D/AL=15h"FREEVER",INT 2D/AL=17h"FREEVER"
  80572. --------U-2D--17-----------------------------
  80573. INT 2D - FREEVER - GET TaskMAX STATUS AT INSTALLATION
  80574. AL = 17h
  80575. AH = AMIS multiplex number for FREEVER
  80576. Return: AL = FFh if successful
  80577. BL = status
  80578. 00h if TaskMAX not loaded before SETDRVER
  80579. FFh if TaskMAX was loaded before SETDRVER
  80580. Program: FREEVER is an AMIS-conformant freeware DOS version-faking TSR similar
  80581. to SETVER for any DOS-compatible OS, written by Matthias Paul
  80582. SeeAlso: INT 2D/AL=12h"FREEVER",INT 2D/AL=14h"FREEVER",INT 2D/AL=16h"FREEVER"
  80583. --------U-2D--20-----------------------------
  80584. INT 2D - DTown Utilities v1.40+ - GET POP-UP HANDLER ADDRESS
  80585. AL = 20h
  80586. Return: AL = FFh if available
  80587. DX:DI -> DTU popup-handler
  80588. Program: DTown Utilities is a freeware programmer's utility TSR by Jeroen van
  80589. Disseldorp
  80590. Note: this function is only available if the extended API has been installed
  80591. in the resident portion
  80592. SeeAlso: INT 2D/AL=10h"DTown",INT 2D/AL=21h,INT 2D/AL=50h,INT 2D/AL=51h
  80593. SeeAlso: INT 03"DTown"
  80594. --------U-2D--21-----------------------------
  80595. INT 2D - DTown Utilities v1.40+ - POP UP
  80596. AL = 21h
  80597. BL = which utility to bring up
  80598. 00h active utility
  80599. 01h help screen
  80600. 0Ah ASCII table
  80601. 0Bh memory view
  80602. 0Ch CPU status
  80603. 0Dh calculator
  80604. 0Eh miscellaneous
  80605. 0Fh file viewer
  80606. 10h disassembler
  80607. Return: AL = status
  80608. 00h already active
  80609. FFh popped up successfully
  80610. BX = 0000h
  80611. Note: this function is only available if the extended API has been installed
  80612. in the resident portion
  80613. SeeAlso: INT 2D/AL=10h"DTown",INT 2D/AL=20h,INT 2D/AL=50h
  80614. --------U-2D--50-----------------------------
  80615. INT 2D - DTown Utilities v1.40+ - MEMORY VIEW SET ADDRESS
  80616. AL = 50h
  80617. CX:DX = new address for start of memory view utility's display
  80618. Note: this function is only available if the extended API has been installed
  80619. in the resident portion
  80620. Return: AL = FFh if supported
  80621. SeeAlso: INT 2D/AL=10h"DTown",INT 2D/AL=20h,INT 2D/AL=21h,INT 2D/AL=51h
  80622. --------U-2D--51-----------------------------
  80623. INT 2D - DTown Utilities v1.40+ - MEMORY VIEW SET REFERENCE
  80624. AL = 51h
  80625. BL = reference ("bookmark") number
  80626. CX:DX = new address for reference
  80627. Return: AL = status
  80628. 00h invalid index
  80629. FFh reference set
  80630. Note: this function is only available if the extended API has been installed
  80631. in the resident portion
  80632. Program: DTown Utilities is a shareware programmer's utility TSR by Jeroen van
  80633. Disseldorp
  80634. SeeAlso: INT 2D/AL=10h"DTown",INT 2D/AL=20h,INT 2D/AL=50h
  80635. --------b-2D--DC-----------------------------
  80636. INT 2D C - DAISY.SYS - BROADCAST: CHAIN RESCANNED
  80637. AL = DCh
  80638. AH = AMIS multiplex number for signature 'DAISYCHA' 'INDRIVER'
  80639. DL = LPT Port Rescanned
  80640. Program: DAISY.SYS is a daisy chain manager for parallel port peripherals
  80641. conforming to the IEEE 1284.3 Committee's daisy chain specification.
  80642. Desc: This Broadcast is sent whenever daisy chain IDs are reassigned to
  80643. warn parallel port device drivers that their daisy chain ID may
  80644. have been changed.
  80645. Note: This function is a callout from DAISY.SYS, NOT a call into DAISY.SYS
  80646. SeeAlso: INT 17/AX=0200h"Enhanced Parallel Port",#00633,#02570
  80647. --------l-2E---------------------------------
  80648. INT 2E U - DOS 2+ - PASS COMMAND TO COMMAND INTERPRETER FOR EXECUTION
  80649. DS:SI -> commandline to execute (see #02585)
  80650. Return: all registers except CS:IP destroyed
  80651. AX = status (4DOS v4.0)
  80652. 0000h successful
  80653. FFFFh error before processing command (not enough memory, etc)
  80654. other error number returned by command
  80655. Notes: this call allows execution of arbitrary commands (including COMMAND.COM
  80656. internal commands) without loading another copy of COMMAND.COM
  80657. if COMMAND.COM is the user's command interpreter, the primary copy
  80658. executes the command; this allows the master environment to be
  80659. modified by issuing a "SET" command, but changes in the master
  80660. environment will not become effective until all programs descended
  80661. from the primary COMMAND.COM terminate
  80662. since COMMAND.COM processes the string as if typed from the keyboard,
  80663. the transient portion needs to be present, and the calling program
  80664. must ensure that sufficient memory to load the transient portion can
  80665. be allocated by DOS if necessary
  80666. results are unpredictable if invoked by a program run from a batch file
  80667. because this call is not reentrant and COMMAND.COM uses the same
  80668. internal variables when processing a batch file
  80669. hooked but ignored by 4DOS v3.0 COMMAND.COM replacement unless SHELL2E
  80670. has been loaded
  80671. the MS-DOS 5 Programmer's Reference calls this "Reload Transient"
  80672. Format of DOS commandline:
  80673. Offset Size Description (Table 02585)
  80674. 00h BYTE length of command string, not counting trailing CR
  80675. 01h var command string
  80676. N BYTE 0Dh (CR)
  80677. --------O-2E---------------------------------
  80678. INT 2E UP - Windows NT - NATIVE API
  80679. EAX = function number (see #02586)
  80680. EDX = address of parameter block
  80681. Return: ???
  80682. (Table 02586)
  80683. Values for Windows NT NTOS function number:
  80684. 000h AcceptConnectPort (24 bytes of parameters)
  80685. 001h AccessCheck (32 bytes of parameters)
  80686. 002h AccessCheckAndAuditAlarm (44 bytes of parameters)
  80687. 003h AddAtom (8 bytes of parameters)
  80688. 004h AdjustGroupsToken (24 bytes of parameters)
  80689. 005h AdjustPrivilegesToken (24 bytes of parameters)
  80690. 006h AlertResumeThread (8 bytes of parameters)
  80691. 007h AlertThread (4 bytes of parameters)
  80692. 008h AllocateLocallyUniqueId (4 bytes of parameters)
  80693. 009h AllocateUuids (12 bytes of parameters)
  80694. 00Ah AllocateVirtualMemory (24 bytes of parameters)
  80695. 00Bh CallbackReturn (12 bytes of parameters)
  80696. 00Ch CancelIoFile (8 bytes of parameters)
  80697. 00Dh CancelTimer (8 bytes of parameters)
  80698. 00Eh ClearEvent (4 bytes of parameters)
  80699. 00Fh Close (4 bytes of parameters)
  80700. 010h CloseObjectAuditAlarm (12 bytes of parameters)
  80701. 011h CompleteConnectPort (4 bytes of parameters)
  80702. 012h ConnectPort (32 bytes of parameters)
  80703. 013h Continue (8 bytes of parameters)
  80704. 014h CreateDirectoryObject (12 bytes of parameters)
  80705. 015h CreateEvent (20 bytes of parameters)
  80706. 016h CreateEventPair (12 bytes of parameters)
  80707. 017h CreateFile (44 bytes of parameters)
  80708. 018h CreateIoCompletion (16 bytes of parameters)
  80709. 019h CreateKey (28 bytes of parameters)
  80710. 01Ah CreateMailslotFile (32 bytes of parameters)
  80711. 01Bh CreateMutant (16 bytes of parameters)
  80712. 01Ch CreateNamedPipeFile (56 bytes of parameters)
  80713. 01Dh CreatePagingFile (16 bytes of parameters)
  80714. 01Eh CreatePort (20 bytes of parameters)
  80715. 01Fh CreateProcess (32 bytes of parameters)
  80716. 020h CreateProfile (36 bytes of parameters)
  80717. 021h CreateSection (28 bytes of parameters)
  80718. 022h CreateSemaphore (20 bytes of parameters)
  80719. 023h CreateSymbolicLinkObject (16 bytes of parameters)
  80720. 024h CreateThread (32 bytes of parameters)
  80721. 025h CreateTimer (16 bytes of parameters)
  80722. 026h CreateToken (52 bytes of parameters)
  80723. 027h DelayExecution (8 bytes of parameters)
  80724. 028h DeleteAtom (4 bytes of parameters)
  80725. 029h DeleteFile (4 bytes of parameters)
  80726. 02Ah DeleteKey (4 bytes of parameters)
  80727. 02Bh DeleteObjectAuditAlarm (12 bytes of parameters)
  80728. 02Ch DeleteValueKey (8 bytes of parameters)
  80729. 02Dh DeviceIoControlFile (40 bytes of parameters)
  80730. 02Eh DisplayString (4 bytes of parameters)
  80731. 02Fh DuplicateObject (28 bytes of parameters)
  80732. 030h DuplicateToken (24 bytes of parameters)
  80733. 031h EnumerateKey (24 bytes of parameters)
  80734. 032h EnumerateValueKey (24 bytes of parameters)
  80735. 033h ExtendSection (8 bytes of parameters)
  80736. 034h FindAtom (8 bytes of parameters)
  80737. 035h FlushBuffersFile (8 bytes of parameters)
  80738. 036h FlushInstructionCache (12 bytes of parameters)
  80739. 037h FlushKey (4 bytes of parameters)
  80740. 038h FlushVirtualMemory (16 bytes of parameters)
  80741. 039h FlushWriteBuffer (no parameters)
  80742. 03Ah FreeVirtualMemory (16 bytes of parameters)
  80743. 03Bh FsControlFile (40 bytes of parameters)
  80744. 03Ch GetContextThread (8 bytes of parameters)
  80745. 03Dh GetPlugPlayEvent (16 bytes of parameters)
  80746. 03Eh GetTickCount (no parameters)
  80747. 03Fh ImpersonateClientOfPort (8 bytes of parameters)
  80748. 040h ImpersonateThread (12 bytes of parameters)
  80749. 041h InitializeRegistry (4 bytes of parameters)
  80750. 042h ListenPort (8 bytes of parameters)
  80751. 043h LoadDriver (4 bytes of parameters)
  80752. 044h LoadKey (8 bytes of parameters)
  80753. 045h LoadKey2 (12 bytes of parameters)
  80754. 046h LockFile (40 bytes of parameters)
  80755. 047h LockVirtualMemory (16 bytes of parameters)
  80756. 048h MakeTemporaryObject (4 bytes of parameters)
  80757. 049h MapViewOfSection (40 bytes of parameters)
  80758. 04Ah NotifyChangeDirectoryFile (36 bytes of parameters)
  80759. 04Bh NotifyChangeKey (40 bytes of parameters)
  80760. 04Ch OpenDirectoryObject (12 bytes of parameters)
  80761. 04Dh OpenEvent (12 bytes of parameters)
  80762. 04Eh OpenEventPair (12 bytes of parameters)
  80763. 04Fh OpenFile (24 bytes of parameters)
  80764. 050h OpenIoCompletion (12 bytes of parameters)
  80765. 051h OpenKey (12 bytes of parameters)
  80766. 052h OpenMutant (12 bytes of parameters)
  80767. 053h OpenObjectAuditAlarm (48 bytes of parameters)
  80768. 054h OpenProcess (16 bytes of parameters)
  80769. 055h OpenProcessToken (12 bytes of parameters)
  80770. 056h OpenSection (12 bytes of parameters)
  80771. 057h OpenSemaphore (12 bytes of parameters)
  80772. 058h OpenSymbolicLinkObject (12 bytes of parameters)
  80773. 059h OpenThread (16 bytes of parameters)
  80774. 05Ah OpenThreadToken (16 bytes of parameters)
  80775. 05Bh OpenTimer (12 bytes of parameters)
  80776. 05Ch PlugPlayControl (16 bytes of parameters)
  80777. 05Dh PrivilegeCheck (12 bytes of parameters)
  80778. 05Eh PrivilegedServiceAuditAlarm (20 bytes of parameters)
  80779. 05Fh PrivilegeObjectAuditAlarm (24 bytes of parameters)
  80780. 060h ProtectVirtualMemory (20 bytes of parameters)
  80781. 061h PulseEvent (8 bytes of parameters)
  80782. 062h QueryInformationAtom (20 bytes of parameters)
  80783. 063h QueryAttributesFile (8 bytes of parameters)
  80784. 064h QueryDefaultLocale (8 bytes of parameters)
  80785. 065h QueryDirectoryFile (44 bytes of parameters)
  80786. 066h QueryDirectoryObject (28 bytes of parameters)
  80787. 067h QueryEaFile (36 bytes of parameters)
  80788. 068h QueryEvent (20 bytes of parameters)
  80789. 069h QueryFullAttributesFile (8 bytes of parameters)
  80790. 06Ah QueryInformationFile (20 bytes of parameters)
  80791. 06Bh QueryIoCompletion (20 bytes of parameters)
  80792. 06Ch QueryInformationPort (20 bytes of parameters)
  80793. 06Dh QueryInformationProcess (20 bytes of parameters)
  80794. 06Eh QueryInformationThread (20 bytes of parameters)
  80795. 06Fh QueryInformationToken (20 bytes of parameters)
  80796. 070h QueryIntervalProfile (8 bytes of parameters)
  80797. 071h QueryKey (20 bytes of parameters)
  80798. 072h QueryMultipleValueKey (24 bytes of parameters)
  80799. 073h QueryMutant (20 bytes of parameters)
  80800. 074h QueryObject (20 bytes of parameters)
  80801. 075h QueryOleDirectoryFile (44 bytes of parameters)
  80802. 076h QueryPerformanceCounter (8 bytes of parameters)
  80803. 077h QuerySection (20 bytes of parameters)
  80804. 078h QuerySecurityObject (20 bytes of parameters)
  80805. 079h QuerySemaphore (20 bytes of parameters)
  80806. 07Ah QuerySymbolicLinkObject (12 bytes of parameters)
  80807. 07Bh QuerySystemEnvironmentValue (16 bytes of parameters)
  80808. 07Ch QuerySystemInformation (16 bytes of parameters)
  80809. 07Dh QuerySystemTime (4 bytes of parameters)
  80810. 07Eh QueryTimer (20 bytes of parameters)
  80811. 07Fh QueryTimerResolution (12 bytes of parameters)
  80812. 080h QueryValueKey (24 bytes of parameters)
  80813. 081h QueryVirtualMemory (24 bytes of parameters)
  80814. 082h QueryVolumeInformationFile (20 bytes of parameters)
  80815. 083h QueueApcThread (20 bytes of parameters)
  80816. 084h RaiseException (12 bytes of parameters)
  80817. 085h RaiseHardError (24 bytes of parameters)
  80818. 086h ReadFile (36 bytes of parameters)
  80819. 087h ReadFileScatter (36 bytes of parameters)
  80820. 088h ReadRequestData (24 bytes of parameters)
  80821. 089h ReadVirtualMemory (20 bytes of parameters)
  80822. 08Ah RegisterThreadTerminatePort (4 bytes of parameters)
  80823. 08Bh ReleaseMutant (8 bytes of parameters)
  80824. 08Ch ReleaseSemaphore (12 bytes of parameters)
  80825. 08Dh RemoveIoCompletion (20 bytes of parameters)
  80826. 08Eh ReplaceKey (12 bytes of parameters)
  80827. 08Fh ReplyPort (8 bytes of parameters)
  80828. 090h ReplyWaitReceivePort (16 bytes of parameters)
  80829. 091h ReplyWaitReplyPort (8 bytes of parameters)
  80830. 092h RequestPort (8 bytes of parameters)
  80831. 093h RequestWaitReplyPort (12 bytes of parameters)
  80832. 094h ResetEvent (8 bytes of parameters)
  80833. 095h RestoreKey (12 bytes of parameters)
  80834. 096h ResumeThread (8 bytes of parameters)
  80835. 097h SaveKey (8 bytes of parameters)
  80836. 098h SetIoCompletion (20 bytes of parameters)
  80837. 099h SetContextThread (8 bytes of parameters)
  80838. 09Ah SetDefaultHardErrorPort (4 bytes of parameters)
  80839. 09Bh SetDefaultLocale (8 bytes of parameters)
  80840. 09Ch SetEaFile (16 bytes of parameters)
  80841. 09Dh SetEvent (8 bytes of parameters)
  80842. 09Eh SetHighEventPair (4 bytes of parameters)
  80843. 09Fh SetHighWaitLowEventPair (4 bytes of parameters)
  80844. 0A0h ??? (??? bytes of parameters)
  80845. 0A1h SetInformationFile (20 bytes of parameters)
  80846. 0A2h SetInformationKey (16 bytes of parameters)
  80847. 0A3h SetInformationObject (16 bytes of parameters)
  80848. 0A4h SetInformationProcess (16 bytes of parameters)
  80849. 0A5h SetInformationThread (16 bytes of parameters)
  80850. 0A6h SetInformationToken (16 bytes of parameters)
  80851. 0A7h SetIntervalProfile (8 bytes of parameters)
  80852. 0A8h SetLdtEntries (24 bytes of parameters)
  80853. 0A9h SetLowEventPair (4 bytes of parameters)
  80854. 0AAh SetLowWaitHighEventPair (4 bytes of parameters)
  80855. 0ABh ??? (??? bytes of parameters)
  80856. 0ACh SetSecurityObject (12 bytes of parameters)
  80857. 0ADh SetSystemEnvironmentValue (8 bytes of parameters)
  80858. 0AEh SetSystemInformation (12 bytes of parameters)
  80859. 0AFh SetSystemPowerState (12 bytes of parameters)
  80860. 0B0h SetSystemTime (8 bytes of parameters)
  80861. 0B1h SetTimer (28 bytes of parameters)
  80862. 0B2h SetTimerResolution (12 bytes of parameters)
  80863. 0B3h SetValueKey (24 bytes of parameters)
  80864. 0B4h SetVolumeInformationFile (20 bytes of parameters)
  80865. 0B5h ShutdownSystem (4 bytes of parameters)
  80866. 0B6h SignalAndWaitForSingleObject (16 bytes of parameters)
  80867. 0B7h StartProfile (4 bytes of parameters)
  80868. 0B8h StopProfile (4 bytes of parameters)
  80869. 0B9h SuspendThread (8 bytes of parameters)
  80870. 0BAh SystemDebugControl (24 bytes of parameters)
  80871. 0BBh TerminateProcess (8 bytes of parameters)
  80872. 0BCh TerminateThread (8 bytes of parameters)
  80873. 0BDh TestAlert (no parameters)
  80874. 0BEh UnloadDriver (4 bytes of parameters)
  80875. 0BFh UnloadKey (4 bytes of parameters)
  80876. 0C0h UnlockFile (20 bytes of parameters)
  80877. 0C1h UnlockVirtualMemory (16 bytes of parameters)
  80878. 0C2h UnmapViewOfSection (8 bytes of parameters)
  80879. 0C3h VdmControl (8 bytes of parameters)
  80880. 0C4h WaitForMultipleObjects (20 bytes of parameters)
  80881. 0C5h WaitForSingleObject (12 bytes of parameters)
  80882. 0C6h WaitHighEventPair (4 bytes of parameters)
  80883. 0C7h WaitLowEventPair (4 bytes of parameters)
  80884. 0C8h WriteFile (36 bytes of parameters)
  80885. 0C9h WriteFileGather (36 bytes of parameters)
  80886. 0CAh WriteRequestData (24 bytes of parameters)
  80887. 0CBh WriteVirtualMemory (20 bytes of parameters)
  80888. 0CCh W32Call (20 bytes of parameters)
  80889. 0CDh CreateChannel (8 bytes of parameters)
  80890. 0CEh ListenChannel (8 bytes of parameters)
  80891. 0CFh OpenChannel (8 bytes of parameters)
  80892. 0D0h ReplyWaitSendChannel (12 bytes of parameters)
  80893. 0D1h SendWaitReplyChannel (16 bytes of parameters)
  80894. 0D2h SetContextChannel (4 bytes of parameters)
  80895. 0D3h YieldExecution (no parameters)
  80896. --------l-2E----BXE22E-----------------------
  80897. INT 2E - 4DOS v2.x-3.03 SHELL2E.COM - UNINSTALL
  80898. BX = E22Eh
  80899. DS:SI -> zero byte
  80900. Return: if successful, SHELL2E terminates itself with INT 21/AH=4Ch
  80901. ----------2F---------------------------------
  80902. INT 2F - Multiplex - NOTES
  80903. AH = identifier of program which is to handle the interrupt
  80904. 00h-7Fh reserved for DOS
  80905. B8h-BFh reserved for networks
  80906. C0h-FFh reserved for applications
  80907. AL is the function code
  80908. This is a general mechanism for verifying the presence of a TSR and
  80909. communicating with it. When searching for a free identifier code for AH
  80910. using the installation check (AL=00h), the calling program should set
  80911. BX/CX/DX to 0000h and must not depend on any registers other than CS:IP
  80912. and SS:SP to be valid on return, since numerous programs now use additional
  80913. registers on input and/or output for the installation check.
  80914. Notes: Since the multiplex chain is growing so long, and beginning to
  80915. experience multiplex number collisions, I have proposed an alternate
  80916. multiplex interrupt on INT 2D. If you decide to use the alternate
  80917. multiplex, please let me know.
  80918. DOS and some other programs return values in the flags register, so
  80919. any TSR which chains by calling the previous handler rather than
  80920. jumping to it should ensure that the returned flags are preserved
  80921. and passed back to the original caller
  80922. SeeAlso: INT 2D"ALTERNATE MULTIPLEX"
  80923. --------t-2F---------------------------------
  80924. INT 2F - BMB Compuscience Canada Utilities Interface - INSTALLATION CHECK
  80925. AH = xx (dynamically assigned based upon a search for a multiplex
  80926. number which doesn't answer installed)
  80927. AL = 00h installation check
  80928. ES:DI = EBEBh:BEBEh
  80929. Return: AL = 00h not installed
  80930. 01h not installed, not OK to install
  80931. FFh installed; if ES:DI was EBEBh:BEBEh on entry, ES:DI will point
  80932. to a string of the form 'MMMMPPPPPPPPvNNNN' where MMMM is a
  80933. short form of the manufacturer's name, PPPPPPPP is a product
  80934. name and NNNN is the product's version number
  80935. --------t-2F---------------------------------
  80936. INT 2F - Ross Wentworth's Turbo Pascal POPUP LIBRARY
  80937. AH = programmer-selected multiplex number
  80938. AL = function
  80939. 00h installation check
  80940. Return: AL = FFh if installed
  80941. 01h get TSR interrupt vectors
  80942. Return: DX:AX -> vector table (see #02587)
  80943. 02h get TSR code segment
  80944. Return: AX = code segment for all interrupt handlers
  80945. 03h call user exit routine and release TSR's memory
  80946. 04h get signature string
  80947. Return: DX:AX -> counted string containing signature
  80948. 05h get TSR's INT 2F handler
  80949. Return: DX:AX -> INT 2F handler
  80950. 06h enable/disable TSR
  80951. BL = new state (00h disabled, 01h enabled)
  80952. 07h activate TSR (popup if not disabled)
  80953. 08h get hotkeys
  80954. BL = which hotkey (00h = hotkey 1, 01h = hotkey 2)
  80955. Return: AX = hotkey (AH = keyflags, AL = scancode)
  80956. 09h set hotkey
  80957. BL = which hotkey (00h = hotkey 1, 01h = hotkey 2)
  80958. CX = new hotkey (CH = keyflags, CL = scancode)
  80959. 0Ah-1Fh reserved
  80960. Index: installation check;Ross Wentworth POPUP library
  80961. Index: hotkeys;Ross Wentworth POPUP library
  80962. Format of POPUP vector table entry:
  80963. Offset Size Description (Table 02587)
  80964. 00h BYTE vector number (00h = end of table)
  80965. 01h DWORD original vector
  80966. 05h WORD offset of interrupt handler in TSR's code segment
  80967. --------t-2F---------------------------------
  80968. INT 2F - CiriSOFT Spanish University of Valladolid TSR's Interface
  80969. AH = xx (dynamically assigned based upon a search for a multiplex
  80970. number from C0h to FFh which doesn't answer installed)
  80971. AL = 00h installation check
  80972. ES:DI = 1492h:1992h
  80973. Return: AL = 00h not installed
  80974. 01h not installed, not OK to install
  80975. FFh installed; and if ES:DI was 1492h:1992h on entry, ES:DI will
  80976. point to author_name_ver table (see #02588)
  80977. AH = FFh
  80978. Note: this interface permits advanced communication with TSRs: it is possible
  80979. to make a generic uninstall utility, advanced TSR relocator programs
  80980. in order to fit fragmented memory areas, etc.
  80981. See also: INT 2D"AMIS",INT 2F"Compuscience"
  80982. Index: installation check;CiriSOFT TSR interface
  80983. Index: uninstall;CiriSOFT TSR interface
  80984. Format of CiriSOFT author_name_ver table:
  80985. Offset Size Description (Table 02588)
  80986. -16 WORD segment of the start of the resident TSR code (CS in programs
  80987. with PSP, XMS upper memory segment if installed as UMB...)
  80988. -14 WORD offset of the start of the resident TSR code (frequently 100h
  80989. in *.COM programs and 0 in upper memory TSR's).
  80990. -12 WORD memory used by TSR (in paragraphs). Knowing the memory area
  80991. used by TSR is possible to determine if hooked vectors are
  80992. still pointing it (and if it is safe to uninstall).
  80993. -10 BYTE characteristics byte (see #02589)
  80994. -9 BYTE number of multiplex entry used (redefinition available). Note
  80995. that the TSR must use THIS variable in it's INT 2Fh handler.
  80996. -8 WORD offset to vector_area table (see #02590)
  80997. -6 WORD offset to extra_area table (see #02591,#02589 [bit 7])
  80998. -4 4 BYTEs signature string "*##*"
  80999. 00h var "AUTHOR:PROGRAM_NAME:VERSION",0 (variable length, this area
  81000. is used in order to determine if the TSR is already resident
  81001. and it's version code; the ':' char is used as delimiter)
  81002. Bitfields for CiriSOFT characteristics byte:
  81003. Bit(s) Description (Table 02589)
  81004. 0-2 type
  81005. 000 normal program (with PSP)
  81006. 001 upper XMS memory block (needed HIMEM.SYS function to free memory
  81007. when uninstalling)
  81008. 010 device driver (*.SYS)
  81009. 011 device driver in EXE format
  81010. 1xx others (reserved)
  81011. 3-6 reserved
  81012. 7 set if extra_table defined and supported (see #02591)
  81013. SeeAlso: #02588
  81014. Format of CiriSOFT vector_area table:
  81015. Offset Size Description (Table 02590)
  81016. -1 BYTE number of vectors intercepted by TSR
  81017. 00h BYTE first vector number
  81018. 01h DWORD first vector pointer before installing the TSR
  81019. 05h BYTE second vector number
  81020. 06h DWORD second vector pointer before installing the TSR
  81021. 0Ah ... (and so on)
  81022. Note: the TSR must use these variables to invoke the previous interrupt
  81023. handler routines
  81024. SeeAlso: #02588
  81025. Format of extra_area table (needed only to improve relocation feature):
  81026. Offset Size Description (Table 02591)
  81027. 00h WORD offset to external_ctrl table (see #02592)
  81028. 0000h if not supported
  81029. 02h WORD reserved for future use (0)
  81030. SeeAlso: #02588
  81031. Format of CiriSOFT external_ctrl table:
  81032. Offset Size Description (Table 02592)
  81033. 00h BYTE bit 0: TSR is relocatable (no absolute segment references)
  81034. 01h WORD offset to a variable which can activate/inhibit the TSR
  81035. ---And if bit 0 in offset 00h is off:
  81036. 03h DWORD pointer to ASCIZ pathname for executable file which supports
  81037. /SR parameter (silent installation & inhibit)
  81038. 07h DWORD pointer to first variable to initialize on the copy reloaded
  81039. from the previous TSR still resident
  81040. 0Bh DWORD pointer to last variable (all variables packed in one block)
  81041. --------c-2F00-------------------------------
  81042. INT 2F U - DOS 2.x only PRINT.COM - SUBMIT FILE FOR PRINTING
  81043. AH = 00h
  81044. DS:DX -> opened FCB (see #01345 at INT 21/AX=0Fh)
  81045. Return: AH = number of files currently in print queue
  81046. AL = status
  81047. 00h file successfully added
  81048. 01h queue is full
  81049. ES:BX -> print queue (10 FCBs; first byte of FFh indicates unused)
  81050. ES:DX -> currently-printing FCB (if DX=FFFFh, none printing)
  81051. Notes: DOS 2.x PRINT.COM does not chain to previous INT 2F handler
  81052. values in AH other than 00h or 01h cause PRINT to return the number of
  81053. files in the queue in AH
  81054. SeeAlso: AH=01h"PRINT",AX=0102h
  81055. --------P-2F00-------------------------------
  81056. INT 2F U - PSPRINT - PRINT JOB CONTROL
  81057. AH = 00h
  81058. ???
  81059. Return: ???
  81060. --------c-2F0080-----------------------------
  81061. INT 2F - DOS 3.1+ PRINT - GIVE PRINT A TIME SLICE
  81062. AX = 0080h
  81063. Return: after PRINT executes
  81064. Notes: PRINT returns AL=01h if AH=00h but AL is not 80h on entry
  81065. this function is not supported by the Novell DOS 7 PRINT.COM
  81066. --------N-2F00D8-----------------------------
  81067. INT 2F - Personal NetWare - VLM - ???
  81068. AX = 00D8h
  81069. ???
  81070. Return: ???
  81071. Note: hooked by one of the .VLMs loaded by VLM.EXE v1.10, but apparently a
  81072. NOP
  81073. --------c-2F01-------------------------------
  81074. INT 2F U - DOS 2.x only PRINT.COM - REMOVE FILE FROM PRINT QUEUE
  81075. AH = 01h
  81076. DS:DX -> FCB (see #01345 at INT 21/AH=0Fh) for file to be canceled
  81077. Return: AH = number of files currently in print queue
  81078. AL = 00h (successful)
  81079. ES:BX -> print queue (10 FCBs; first byte of FFh indicates unused)
  81080. ES:DX -> currently-printing FCB (if DX=FFFFh, none printing)
  81081. Notes: DOS 2.x PRINT.COM does not chain to previous INT 2F handler
  81082. values in AH other than 00h or 01h cause PRINT to return the number of
  81083. files in the queue in AH
  81084. SeeAlso: AH=00h"PRINT.COM",AX=0103h
  81085. --------c-2F0100-----------------------------
  81086. INT 2F - DOS 3.0+ PRINT - INSTALLATION CHECK
  81087. AX = 0100h
  81088. Return: AL = status
  81089. 00h not installed
  81090. 01h not installed, but not OK to install
  81091. FFh installed
  81092. AH = 00h (Novell DOS 7)
  81093. SeeAlso: AX=0101h
  81094. --------c-2F0100SI20D6-----------------------
  81095. INT 2F U - PrintCache 3.1 PRINT.COM - INSTALLATION CHECK
  81096. AX = 0100h
  81097. SI = 20D6h
  81098. DI = 8761h
  81099. Return: AX = 00FFh if installed
  81100. DI = 0001h if PrintCache's PRINT.COM installed and magic values match
  81101. SI = resident code segment
  81102. Program: PrintCache PRINT.COM is a DOS PRINT replacement included in
  81103. LaserTools' PrintCache memory/disk-based print spooler package
  81104. Note: if either of SI or DI differ from the indicated magic values, only AX
  81105. will be modified on return, for compatibility with DOS PRINT
  81106. SeeAlso: AX=0101h/SI=20D6h,AX=C000h"PCACHE"
  81107. --------c-2F0101-----------------------------
  81108. INT 2F - DOS 3.0+ PRINT - SUBMIT FILE FOR PRINTING
  81109. AX = 0101h
  81110. DS:DX -> submit packet (see #02593)
  81111. Return: CF clear if successful
  81112. AL = status
  81113. 01h added to queue
  81114. 9Eh now printing
  81115. CF set on error
  81116. AX = error code (see #02594,#01680 at INT 21/AH=59h/BX=0000h)
  81117. SeeAlso: AX=0102h
  81118. Format of PRINT submit packet:
  81119. Offset Size Description (Table 02593)
  81120. 00h BYTE level (must be 00h)
  81121. 01h DWORD pointer to ASCIZ filename (no wildcards)
  81122. (Table 02594)
  81123. Values for PRINT error code:
  81124. 0001h invalid function
  81125. 0002h file not found
  81126. 0003h path not found
  81127. 0004h out of file handles
  81128. 0005h access denied
  81129. 0008h print queue full
  81130. 0009h spooler busy
  81131. 000Ch name too long
  81132. 000Fh invalid drive
  81133. --------c-2F0101SI20D6-----------------------
  81134. INT 2F U - PrintCache v3.1 PRINT.COM - SUBMIT FILE FOR PRINTING
  81135. AX = 0101h
  81136. SI = 20D6h
  81137. DI = 8761h
  81138. DS:DX -> submit packet (see #02593)
  81139. CL = print options
  81140. bit 4: use default options
  81141. Return: CF clear if successful
  81142. AL = status
  81143. 01h added to queue
  81144. 9Eh now printing
  81145. CF set on error
  81146. AX = error code (see #02594)
  81147. Program: PrintCache PRINT.COM is a DOS PRINT replacement included in
  81148. LaserTools' PrintCache memory/disk-based print spooler package
  81149. Note: if either SI or DI differs from the indicated magic values on entry,
  81150. PrintCache will use the default print options for the file for
  81151. compatibility with DOS PRINT
  81152. SeeAlso: AX=0100h/SI=20D6h,AX=0101h,AH=00h"PRINT",AX=0107h"PrintCache"
  81153. --------c-2F0102-----------------------------
  81154. INT 2F - DOS 3.0+ PRINT - REMOVE FILE FROM PRINT QUEUE
  81155. AX = 0102h
  81156. DS:DX -> ASCIZ filename (wildcards allowed)
  81157. Return: CF clear if successful
  81158. CF set on error
  81159. AX = error code (see #02594)
  81160. SeeAlso: AX=0101h,AX=0103h,AH=01h"PRINT"
  81161. --------c-2F0103-----------------------------
  81162. INT 2F - DOS 3.0+ PRINT - CANCEL ALL FILES IN PRINT QUEUE
  81163. AX = 0103h
  81164. Return: CF clear if successful
  81165. CF set on error
  81166. AX = error code (see #02594)
  81167. SeeAlso: AX=0102h
  81168. --------c-2F0104-----------------------------
  81169. INT 2F - DOS 3.0+ PRINT - FREEZE PRINT QUEUE TO READ JOB STATUS
  81170. AX = 0104h
  81171. Return: CF clear if successful
  81172. DX = error count since status last read
  81173. DS:SI -> print queue
  81174. CF set on error
  81175. AX = error code (see #02594)
  81176. Desc: get the list of print jobs, temporarily suspending PRINT's activities
  81177. to avoid changing the list while it is being examined
  81178. Notes: the print queue is an array of 64-byte ASCIZ filenames terminated by
  81179. an empty filename; the first name is the file currently being printed
  81180. printing is stopped until AX=0105h is called to prevent the queue
  81181. from changing while the filenames are being read
  81182. SeeAlso: AX=0101h,AX=0105h
  81183. --------c-2F0105-----------------------------
  81184. INT 2F - DOS 3.0+ PRINT - RESTART PRINT QUEUE AFTER STATUS READ
  81185. AX = 0105h
  81186. Return: CF clear if successful
  81187. CF set on error
  81188. AX = error code (see #02594)
  81189. Desc: restart PRINT's activities once an application finishes examining the
  81190. print queue
  81191. SeeAlso: AX=0104h
  81192. --------c-2F0106-----------------------------
  81193. INT 2F - DOS 3.3+ PRINT - GET PRINTER DEVICE
  81194. AX = 0106h
  81195. Return: CF set if files in print queue
  81196. AX = error code 0008h (queue full)
  81197. DS:SI -> device driver header (see #01646)
  81198. CF clear if print queue empty
  81199. AX = 0000h
  81200. Desc: determine which device, if any, PRINT is currently using for output
  81201. Notes: undocumented prior to the release of MS-DOS 5.0
  81202. this function can be used to allow a program to avoid printing to the
  81203. printer on which PRINT is currently performing output
  81204. SeeAlso: AX=0104h
  81205. --------c-2F0107-----------------------------
  81206. INT 2F U - PrintCache v3.1 PRINT.COM - SET TRAILING FORM FEEDS
  81207. AX = 0107h
  81208. CL bit 0: output form feed between print jobs
  81209. Return: AL destroyed
  81210. SeeAlso: AX=0100h/SI=20D6h,AX=0101h/SI=20D6h
  81211. --------N-2F0200-----------------------------
  81212. INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - INSTALLATION CHECK
  81213. AX = 0200h
  81214. Return: AL = FFh if installed
  81215. Desc: determine whether the PC LAN Program redirector is installed
  81216. SeeAlso: AX=0201h,AX=0203h
  81217. --------N-2F0201-----------------------------
  81218. INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???
  81219. AX = 0201h
  81220. Return: nothing???
  81221. Notes: this function is called by the DOS 3.3+ PRINT.COM
  81222. AX=0202h appears to be the opposite function
  81223. these functions are supposedly used to signal opening and closing of
  81224. printers
  81225. SeeAlso: AX=0202h
  81226. --------N-2F0202-----------------------------
  81227. INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???
  81228. AX = 0202h
  81229. ???
  81230. Return: nothing???
  81231. Notes: this function is called by the DOS 3.3+ PRINT.COM
  81232. these functions are supposedly used to signal opening and closing of
  81233. printers
  81234. SeeAlso: AX=0201h
  81235. --------N-2F0203-----------------------------
  81236. INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???
  81237. AX = 0203h
  81238. Return: nothing???
  81239. Notes: this function is called by the DOS 3.3+ PRINT.COM
  81240. AX=0204h appears to be the opposite function
  81241. these functions are supposedly used to signal opening and closing of
  81242. printers
  81243. SeeAlso: AX=0200h,AX=0204h
  81244. --------N-2F0204-----------------------------
  81245. INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???
  81246. AX = 0204h
  81247. ???
  81248. Return: nothing???
  81249. Notes: this function is called by the DOS 3.3+ PRINT.COM
  81250. AX=0203h appears to be the opposite function
  81251. these functions are supposedly used to signal opening and closing of
  81252. printers
  81253. SeeAlso: AX=0200h,AX=0203h
  81254. --------N-2F---------------------------------
  81255. INT 2F U - PC LAN PROGRAM REDIR/REDIRIFS internal - ???
  81256. AX = 02xxh
  81257. ???
  81258. Return: ???
  81259. --------l-2F0500-----------------------------
  81260. INT 2F U - DOS 3.0+ CRITICAL ERROR HANDLER - INSTALLATION CHECK
  81261. AX = 0500h
  81262. Return: AL = status
  81263. 00h not installed, OK to install
  81264. 01h not installed, can't install
  81265. FFh installed
  81266. BX destroyed (MSCDEX v2.21-2.25)
  81267. CF clear (MSCDEX v2.21-2.25)
  81268. Desc: determine whether a critical error message override is installed
  81269. Note: this set of functions allows a user program to partially or completely
  81270. override the default critical error handler's message in COMMAND.COM
  81271. SeeAlso: AH=05h,INT 24
  81272. --------l-2F05-------------------------------
  81273. INT 2F CU - DOS 3.0+ CRITICAL ERROR HANDLER - EXPAND ERROR INTO STRING
  81274. AH = 05h
  81275. ---DOS 3.x---
  81276. AL = extended error code (not zero)
  81277. ---DOS 4.0+ ---
  81278. AL = error type
  81279. 01h DOS extended error code
  81280. 02h parameter error
  81281. BX = error code
  81282. Return: CF clear if successful
  81283. ES:DI -> ASCIZ error message (read-only)
  81284. AL = completion state
  81285. 00h message requires completion with device name, drive, etc.
  81286. 01h message is complete as returned
  81287. CF set if error code can't be converted to string
  81288. AX,DI,ES destroyed
  81289. other flags corrupted
  81290. Notes: called at start of COMMAND.COM's default critical error handler if
  81291. installed by a user program, allowing partial or complete overriding
  81292. of the default error messages
  81293. subfunction 02h is called by many DOS 4 external programs
  81294. DR DOS's COMMAND.COM appends additional info ("0 files copied") to the
  81295. returned string
  81296. SeeAlso: AX=0500h,AX=122Eh,INT 24
  81297. --------U-2F0600-----------------------------
  81298. INT 2F - DOS 3.0+ ASSIGN - INSTALLATION CHECK
  81299. AX = 0600h
  81300. Return: AL = status
  81301. 00h not installed
  81302. 01h not installed, but not OK to install
  81303. FFh installed
  81304. Notes: ASSIGN is not a TSR in DR DOS 5.0; it is internally replaced by SUBST
  81305. (see INT 21/AH=52h)
  81306. undocumented prior to the release of DOS 5.0
  81307. SeeAlso: AX=0601h,INT 21/AH=52h
  81308. --------U-2F0601-----------------------------
  81309. INT 2F U - DOS 3.0+ ASSIGN - GET DRIVE ASSIGNMENT TABLE
  81310. AX = 0601h
  81311. Return: ES = segment of ASSIGN work area and assignment table
  81312. Note: the 26 bytes starting at ES:0103h specify which drive each of A: to Z:
  81313. is mapped to. Initially set to 01h 02h 03h....
  81314. SeeAlso: AX=0600h,AX=AF14h"WinDOS"
  81315. --------D-2F0800-----------------------------
  81316. INT 2F U - DRIVER.SYS support - INSTALLATION CHECK
  81317. AX = 0800h
  81318. Return: AL = status
  81319. 00h not installed, OK to install
  81320. 01h not installed, not OK to install
  81321. FFh installed
  81322. Desc: determine whether the internal support code used by DRIVER.SYS is
  81323. present; it is always present in DOS 3.2+
  81324. Note: supported by DR DOS 5.0 and Novell DOS 7
  81325. --------D-2F0801-----------------------------
  81326. INT 2F U - DRIVER.SYS support - ADD NEW BLOCK DEVICE
  81327. AX = 0801h
  81328. DS:DI -> drive data table (see #02601,#02602,#02603)
  81329. Return: AX,BX,SI,ES destroyed
  81330. Notes: moves down internal list of drive data tables, copying and modifying
  81331. the drive description flags word for tables referencing same physical
  81332. drive
  81333. the data table is appended to the chain of tables
  81334. supported by DR DOS 5.0 and Novell DOS 7
  81335. SeeAlso: AX=0803h
  81336. --------D-2F0802-----------------------------
  81337. INT 2F U - DRIVER.SYS support - EXECUTE DEVICE DRIVER REQUEST
  81338. AX = 0802h
  81339. ES:BX -> device driver request header (see #02597)
  81340. Return: request header updated as per requested operation
  81341. STACK: WORD original flags from INT call (left by RETF in device
  81342. driver, at least in DOS 5.0-6.22)
  81343. Notes: supported by DR DOS 5.0
  81344. DOS 3.2 executes this function on any AL value from 02h through F7h;
  81345. DOS 4.0+ executes this function on AL=02h and AL=04h-F7h
  81346. the command codes (see #02595) and structures described below apply
  81347. to all drivers which support the appropriate commands; this call is
  81348. just one of a number of ways in which a device driver request may
  81349. be invoked
  81350. supported by Novell DOS 7
  81351. SeeAlso: AX=0800h,AX=0801h,AX=0803h,AX=1510h,INT 21/AH=52h,INT 21/AH=99h
  81352. SeeAlso: INT 21/AH=9Ah
  81353. (Table 02595)
  81354. Values for device driver command code:
  81355. 00h (0) INIT
  81356. 01h (1) MEDIA CHECK (block devices)
  81357. 02h (2) BUILD BPB (block devices)
  81358. 03h (3) IOCTL INPUT
  81359. 04h (4) INPUT
  81360. 05h (5) NONDESTRUCTIVE INPUT, NO WAIT (character devices)
  81361. 06h (6) INPUT STATUS (character devices)
  81362. 07h (7) INPUT FLUSH (character devices)
  81363. 08h (8) OUTPUT
  81364. 09h (9) OUTPUT WITH VERIFY
  81365. 0Ah (10) OUTPUT STATUS (character devices)
  81366. 0Bh (11) OUTPUT FLUSH (character devices)
  81367. 0Ch (12) IOCTL OUTPUT
  81368. 0Dh (13) (DOS 3.0+) DEVICE OPEN
  81369. 0Eh (14) (DOS 3.0+) DEVICE CLOSE
  81370. 0Fh (15) (DOS 3.0+) REMOVABLE MEDIA (block devices)
  81371. 10h (16) (DOS 3.0+) OUTPUT UNTIL BUSY (character devices)
  81372. 11h (17) (European MS-DOS 4.0) STOP OUTPUT (console screen drivers only)
  81373. 12h (18) (European MS-DOS 4.0) RESTART OUTPUT (console screen drivers only)
  81374. 13h (19) (DOS 3.2+) GENERIC IOCTL
  81375. 14h (20) unused
  81376. 15h (21) (European MS-DOS 4.0) RESET UNCERTAIN MEDIA FLAG
  81377. 16h (22) unused
  81378. 17h (23) (DOS 3.2+) GET LOGICAL DEVICE
  81379. 18h (24) (DOS 3.2+) SET LOGICAL DEVICE
  81380. 19h (25) (DOS 5.0+) CHECK GENERIC IOCTL SUPPORT
  81381. 80h (128)(CD-ROM) READ LONG
  81382. 81h (129)(CD-ROM) reserved
  81383. 82h (130)(CD-ROM) READ LONG PREFETCH
  81384. 83h (131)(CD-ROM) SEEK
  81385. 84h (132)(CD-ROM) PLAY AUDIO
  81386. 85h (133)(CD-ROM) STOP AUDIO
  81387. 86h (134)(CD-ROM) WRITE LONG
  81388. 87h (135)(CD-ROM) WRITE LONG VERIFY
  81389. 88h (136)(CD-ROM) RESUME AUDIO
  81390. Bitfields for device request status:
  81391. Bit(s) Description (Table 02596)
  81392. 15 error
  81393. 14-11 reserved
  81394. 10 ??? set by DOS kernel on entry to some driver calls
  81395. 9 busy
  81396. 8 done (may be clear on return under European MS-DOS 4.0)
  81397. 7-0 error code if bit 15 set (see #02598)
  81398. Format of device driver request header:
  81399. Offset Size Description (Table 02597)
  81400. 00h BYTE length of request header
  81401. 01h BYTE subunit within device driver
  81402. 02h BYTE command code (see #02595)
  81403. 03h WORD status (filled in by device driver) (see #02596)
  81404. ---DOS---
  81405. 05h 4 BYTEs reserved (unused in DOS 2.x and 3.x)
  81406. 09h DWORD (European MS-DOS 4.0 only) pointer to next request header in
  81407. device's request queue
  81408. (other versions) reserved (unused in DOS 2.x and 3.x)
  81409. ---STARLITE architecture---
  81410. 05h DWORD pointer to next request header
  81411. 09h 4 BYTEs reserved
  81412. ---command code 00h---
  81413. 0Dh BYTE (ret) number of units
  81414. 0Eh DWORD (call) pointer to DOS device helper function (see #02599)
  81415. (European MS-DOS 4.0 only)
  81416. (call) pointer past end of memory available to driver (DOS 5+)
  81417. (ret) address of first free byte following driver
  81418. 12h DWORD (call) pointer to commandline arguments
  81419. (ret) pointer to BPB array (block drivers) or
  81420. 0000h:0000h (character drivers)
  81421. 16h BYTE (DOS 3.0+) drive number for first unit of block driver (0=A)
  81422. ---European MS-DOS 4.0---
  81423. 17h DWORD pointer to function to save registers on stack
  81424. ---DOS 5+ ---
  81425. 17h WORD (ret) error-message flag
  81426. 0001h MS-DOS should display error msg on init failure
  81427. ---command code 01h---
  81428. 0Dh BYTE media descriptor
  81429. 0Eh BYTE (ret) media status
  81430. 00h don't know
  81431. 01h media has not changed
  81432. FFh media has been changed
  81433. 0Fh DWORD (ret, DOS 3.0+) pointer to previous volume ID if the
  81434. OPEN/CLOSE/RM bit in device header is set and disk changed
  81435. ---command code 02h---
  81436. 0Dh BYTE media descriptor
  81437. 0Eh DWORD transfer address
  81438. -> scratch sector if NON-IBM FORMAT bit in device header set
  81439. -> first FAT sector otherwise
  81440. 12h DWORD pointer to BPB (set by driver) (see #01663 at INT 21/AH=53h)
  81441. ---command codes 03h,0Ch---
  81442. (see also INT 21/AX=4402h"DOS 2+",INT 21/AX=4403h"DOS")
  81443. 0Dh BYTE media descriptor (block devices only)
  81444. 0Eh DWORD transfer address
  81445. 12h WORD (call) number of bytes to read/write
  81446. (ret) actual number of bytes read or written
  81447. ---command codes 04h,08h,09h (except Compaq DOS 3.31, DR DOS 6)---
  81448. 0Dh BYTE media descriptor (block devices only)
  81449. 0Eh DWORD transfer address
  81450. 12h WORD byte count (character devices) or sector count (block devices)
  81451. 14h WORD starting sector number (block devices only)
  81452. 16h DWORD (DOS 3.0+) pointer to volume ID if error 0Fh returned
  81453. 1Ah DWORD (DOS 4.0+) 32-bit starting sector number (block devices with
  81454. device attribute word bit 1 set only) if starting sector
  81455. number above is FFFFh (see INT 21/AH=52h)
  81456. ---command codes 04h,08h,09h (Compaq DOS 3.31, DR DOS 6)---
  81457. 0Dh BYTE media descriptor (block devices only)
  81458. 0Eh DWORD transfer address
  81459. 12h WORD byte count (character devices) or sector count (block devices)
  81460. 14h DWORD 32-bit starting sector number (block devices only)
  81461. Note: to reliably determine which variant of the request block for
  81462. functions 04h,08h,09h has been passed to the driver, check
  81463. the length field as well as the word at offset 14h. If the
  81464. length is 1Eh and 14h=FFFFh, use the DWORD at 1Ah as the
  81465. starting sector number; if the length is 18h, use the DWORD
  81466. at 14h; otherwise, use the WORD at 14h.
  81467. ---command code 05h---
  81468. 0Dh BYTE byte read from device if BUSY bit clear on return
  81469. ---command codes 06h,07h,0Ah,0Bh,0Dh,0Eh,0Fh---
  81470. no further fields
  81471. ---command code 10h---
  81472. 0Dh BYTE unused
  81473. 0Eh DWORD transfer address
  81474. 12h WORD (call) number of bytes to write
  81475. (ret) actual number of bytes written
  81476. ---command codes 11h,12h---
  81477. 0Dh BYTE reserved
  81478. ---command code 15h---
  81479. no further fields
  81480. ---command codes 13h,19h---
  81481. 0Dh BYTE category code
  81482. 00h unknown
  81483. 01h COMn:
  81484. 03h CON
  81485. 05h LPTn:
  81486. 07h mouse (European MS-DOS 4.0)
  81487. 08h disk
  81488. 9Eh (STARLITE) Media Access Control driver
  81489. 0Eh BYTE function code
  81490. 00h (STARLITE) MAC Bind request
  81491. 0Fh WORD copy of DS at time of IOCTL call (apparently unused in DOS 3.3)
  81492. SI contents (European MS-DOS 4.0)
  81493. 11h WORD offset of device driver header (see #01646)
  81494. DI contents (European MS-DOS 4.0)
  81495. 13h DWORD pointer to parameter block from INT 21/AX=440Ch or AX=440Dh
  81496. ---command codes 80h,82h---
  81497. 0Dh BYTE addressing mode
  81498. 00h HSG (default)
  81499. 01h Phillips/Sony Red Book
  81500. 0Eh DWORD transfer address (ignored for command 82h)
  81501. 12h WORD number of sectors to read
  81502. (if 0 for command 82h, request is an advisory seek)
  81503. 14h DWORD starting sector number
  81504. logical sector number in HSG mode
  81505. frame/second/minute/unused in Red Book mode
  81506. (HSG sector = minute * 4500 + second * 75 + frame - 150)
  81507. 18h BYTE data read mode
  81508. 00h cooked (2048 bytes per frame)
  81509. 01h raw (2352 bytes per frame, including EDC/ECC)
  81510. 19h BYTE interleave size (number of sectors stored consecutively)
  81511. 1Ah BYTE interleave skip factor
  81512. (number of sectors between consecutive portions)
  81513. ---command code 83h---
  81514. 0Dh BYTE addressing mode
  81515. 00h HSG (default)
  81516. 01h Phillips/Sony Red Book
  81517. 0Eh DWORD transfer address (ignored)
  81518. 12h WORD number of sectors to read (ignored)
  81519. 14h DWORD starting sector number (see also above)
  81520. ---command code 84h---
  81521. 0Dh BYTE addressing mode
  81522. 00h HSG (default)
  81523. 01h Phillips/Sony Red Book
  81524. 0Eh DWORD starting sector number (see also above)
  81525. 12h DWORD number of sectors to play
  81526. ---command codes 85h,88h---
  81527. no further fields
  81528. ---command codes 86h,87h---
  81529. 0Dh BYTE addressing mode
  81530. 00h HSG (default)
  81531. 01h Phillips/Sony Red Book
  81532. 0Eh DWORD transfer address (ignored in write mode 0)
  81533. 12h WORD number of sectors to write
  81534. 14h DWORD starting sector number (also see above)
  81535. 18h BYTE write mode
  81536. 00h mode 0 (write all zeros)
  81537. 01h mode 1 (default) (2048 bytes per sector)
  81538. 02h mode 2 form 1 (2048 bytes per sector)
  81539. 03h mode 2 form 2 (2336 bytes per sector)
  81540. 19h BYTE interleave size (number of sectors stored consecutively)
  81541. 1Ah BYTE interleave skip factor
  81542. (number of sectors between consecutive portions)
  81543. (Table 02598)
  81544. Values for device driver error code:
  81545. 00h write-protect violation
  81546. 01h unknown unit
  81547. 02h drive not ready
  81548. 03h unknown command
  81549. 04h CRC error
  81550. 05h bad drive request structure length
  81551. 06h seek error
  81552. 07h unknown media
  81553. 08h sector not found
  81554. 09h printer out of paper
  81555. 0Ah write fault
  81556. 0Bh read fault
  81557. 0Ch general failure
  81558. 0Dh reserved
  81559. 0Eh (CD-ROM) media unavailable
  81560. 0Fh invalid disk change
  81561. (Table 02599)
  81562. Call European MS-DOS 4.0 device helper function with:
  81563. DL = function
  81564. 00h "SchedClock" called on each timer tick
  81565. AL = tick interval in milliseconds
  81566. 01h "DevDone" device I/O complete
  81567. ES:BX -> request header
  81568. Note: must update status word first; may be called from
  81569. an interrupt handler
  81570. 02h "PullRequest" pull next request from queue
  81571. DS:SI -> DWORD pointer to start of device's request queue
  81572. Return: ZF clear if pending request
  81573. ES:BX -> request header
  81574. ZF set if no more requests
  81575. 03h "PullParticular" remove specific request from queue
  81576. DS:SI -> DWORD pointer to start of device's request queue
  81577. ES:BX -> request header
  81578. Return: ZF set if request header not found
  81579. 04h "PushRequest" push the request onto the queue
  81580. DS:SI -> DWORD pointer to start of device's request queue
  81581. ES:BX -> request header
  81582. interrupts disabled
  81583. 05h "ConsInputFilter" keyboard input check
  81584. AX = character (high byte 00h if PC ASCII character)
  81585. Return: ZF set if character should be discarded
  81586. ZF clear if character should be handled normally
  81587. Note: called by keyboard interrupt handler so DOS can scan
  81588. for special input characters
  81589. 06h "SortRequest" push request in sorted order by starting sector
  81590. DS:SI -> DWORD pointer to start of device's request queue
  81591. ES:BX -> request header
  81592. interrupts disabled
  81593. 07h "SigEvent" send signal on keyboard event
  81594. AH = event identifier
  81595. Return: AL,FLAGS destroyed
  81596. 09h "ProcBlock" block on event
  81597. AX:BX = event identifier (typically a pointer)
  81598. CX = timeout in ms or 0000h for never
  81599. DH = interruptable flag (nonzero if pause may be interrupted)
  81600. interrupts disabled
  81601. Return: after corresponding ProcRun call
  81602. CF clear if event wakeup, set if unusual wakeup
  81603. ZF set if timeout wakeup, clear if interrupted
  81604. AL = wakeup code, nonzero if unusual wakeup
  81605. interrupts enabled
  81606. BX,CX,DX destroyed
  81607. Note: block process and schedules another to run
  81608. 0Ah "ProcRun" unblock process
  81609. AX:BX = event identifier (typically a pointer)
  81610. Return: AX = number of processes awakened
  81611. ZF set if no processes awakened
  81612. BX,CX,DX destroyed
  81613. 0Bh "QueueInit" initialize/clear character queue
  81614. DS:BX -> character queue structure (see #02600)
  81615. Note: the queue size field must be set before calling
  81616. 0Dh "QueueWrite" put a character in the queue
  81617. DS:BX -> character queue (see #02600)
  81618. AL = character to append to end of queue
  81619. Return: ZF set if queue is full
  81620. ZF clear if character stored
  81621. 0Eh "QueueRead" get a character from the queue
  81622. DS:BX -> character queue (see #02600)
  81623. Return: ZF set if queue is empty
  81624. ZF clear if characters in queue
  81625. AL = first character in queue
  81626. 10h "GetDOSVar" return pointer to DOS variable
  81627. AL = index of variable
  81628. 03h current process ID
  81629. BX = index into variable if AL specifies an array
  81630. CX = expected length of variable
  81631. Return: CF clear if successful
  81632. DX:AX -> variable
  81633. CF set on error
  81634. AX,DX destroyed
  81635. BX,CX destroyed
  81636. Note: the variables may not be modified
  81637. 14h "Yield" yield CPU if higher-priority task ready to run
  81638. Return: FLAGS destroyed
  81639. 1Bh "CritEnter" begin system critical section
  81640. DS:BX -> semaphore (6 BYTEs, initialized to zero)
  81641. Return: AX,BX,CX,DX destroyed
  81642. 1Ch "CritLeave" end system critical section
  81643. DS:BX -> semaphore (6 BYTEs, initialized to zero)
  81644. Return: AX,BX,CX,DX destroyed
  81645. Note: must be called in the context of the process which
  81646. called CritEnter on the semaphore
  81647. Note: the DWORD pointing at the request queue must be allocated by the driver
  81648. and initialized to 0000h:0000h. It always points at the next request
  81649. to be executed
  81650. Format of European MS-DOS 4.0 character queue:
  81651. Offset Size Description (Table 02600)
  81652. 00h WORD size of queue in bytes
  81653. 02h WORD index of next character out
  81654. 04h WORD count of characters in the queue
  81655. 06h N BYTEs queue buffer
  81656. --------D-2F0803-----------------------------
  81657. INT 2F U - DOS 4.0+ DRIVER.SYS support - GET DRIVE DATA TABLE LIST
  81658. AX = 0803h
  81659. Return: DS:DI -> first drive data table in list (see #02601,#02602,#02603)
  81660. Note: not available under DR DOS 5.0, but supported by Novell DOS 7 (using
  81661. the MS-DOS 4+ data table format)
  81662. SeeAlso: AX=0801h
  81663. Format of DOS 3.30 drive data table:
  81664. Offset Size Description (Table 02601)
  81665. 00h DWORD pointer to next table (offset FFFFh if last table)
  81666. 04h BYTE physical unit number (for INT 13)
  81667. 05h BYTE logical drive number (0=A:)
  81668. 06h 19 BYTEs BIOS Parameter Block (see also INT 21/AH=53h)
  81669. Offset Size Description
  81670. 00h WORD bytes per sector
  81671. 02h BYTE sectors per cluster, FFh if unknown
  81672. 03h WORD number of reserved sectors
  81673. 05h BYTE number of FATs
  81674. 06h WORD number of root dir entries
  81675. 08h WORD total sectors
  81676. 0Ah BYTE media descriptor, 00h if unknown
  81677. 0Bh WORD sectors per FAT
  81678. 0Dh WORD sectors per track
  81679. 0Fh WORD number of heads
  81680. 11h WORD number of hidden sectors
  81681. 19h BYTE flags
  81682. bit 6: 16-bit FAT instead of 12-bit FAT
  81683. 1Ah WORD number of DEVICE OPEN calls without corresponding DEVICE CLOSE
  81684. 1Ch 11 BYTEs volume label or "NO NAME " if none (always "NO NAME" for
  81685. fixed media)
  81686. 27h BYTE terminating null for volume label???
  81687. 28h BYTE device type (see #01561 at INT 21/AX=440Dh"DOS 3.2+")
  81688. 29h WORD bit flags describing drive (see #02604)
  81689. 2Bh WORD number of cylinders
  81690. 2Dh 19 BYTEs BIOS Parameter Block for highest capacity supported
  81691. 40h 3 BYTEs ???
  81692. 43h 9 BYTEs filesystem type???, default = "NO NAME "
  81693. (apparently only MS-DOS 3.30 fixed media, nulls for removable
  81694. media and PC-DOS 3.30)
  81695. 4Ch BYTE least-significant byte of last-accessed cylinder number
  81696. ---removable media---
  81697. 4Dh DWORD time of last access in clock ticks (FFFFFFFFh if never)
  81698. ---fixed media---
  81699. 4Dh WORD partition (FFFFh = primary, 0001h = extended)
  81700. 4Fh WORD absolute cylinder number of partition's start on physical
  81701. drive (always FFFFh if primary partition)
  81702. SeeAlso: #02602,#02603
  81703. Format of COMPAQ DOS 3.31 drive data table:
  81704. Offset Size Description (Table 02602)
  81705. 00h DWORD pointer to next table (offset FFFFh if last table)
  81706. 04h BYTE physical unit number (for INT 13)
  81707. 05h BYTE logical drive number (0=A:)
  81708. 06h 25 BYTEs BIOS Parameter Block (see #02603)
  81709. 1Fh 6 BYTEs reserved fields from BPB above???
  81710. 25h BYTE flags
  81711. bit 6: 16-bit FAT instead of 12-bit FAT
  81712. bit 5: large volume???
  81713. 26h WORD device-open count???
  81714. 28h 11 BYTEs volume label or "NO NAME " if none (always "NO NAME" for
  81715. fixed media)
  81716. 33h BYTE terminating null for volume label
  81717. 34h BYTE device type (see #01561 at INT 21/AX=440Dh"DOS 3.2+")
  81718. 35h WORD bit flags describing drive (see #02604)
  81719. 37h WORD number of cylinders
  81720. 39h 25 BYTEs BIOS parameter block for highest capacity drive supports
  81721. 52h 6 BYTEs ??? apparently always zeros
  81722. 58h BYTE least-significant byte of last-accessed cylinder number
  81723. ---removable media---
  81724. 59h DWORD time of last access in clock ticks (FFFFFFFFh if never)
  81725. ---fixed media---
  81726. 59h WORD partition (FFFFh = primary, 0001h = extended)
  81727. 5Bh WORD absolute cylinder number of partition's start on physical
  81728. drive (always FFFFh if primary partition)
  81729. SeeAlso: #02601,#02603
  81730. Format of DOS 4.0-7.0 drive data table:
  81731. Offset Size Description (Table 02603)
  81732. 00h DWORD pointer to next table (offset FFFFh if last table)
  81733. 04h BYTE physical unit number (for INT 13)
  81734. 05h BYTE logical drive number (0=A:)
  81735. 06h 25 BYTEs BIOS Parameter Block (see also INT 21/AH=53h)
  81736. Offset Size Description
  81737. 00h WORD bytes per sector
  81738. 02h BYTE sectors per cluster, FFh if unknown
  81739. 03h WORD number of reserved sectors
  81740. 05h BYTE number of FATs
  81741. 06h WORD number of root dir entries
  81742. 08h WORD total sectors (refer to offset 15h if zero)
  81743. 0Ah BYTE media descriptor, 00h if unknown
  81744. 0Bh WORD sectors per FAT
  81745. 0Dh WORD sectors per track
  81746. 0Fh WORD number of heads
  81747. 11h DWORD number of hidden sectors
  81748. 15h DWORD total sectors if WORD at 08h is zero
  81749. 1Fh BYTE flags
  81750. bit 6: 16-bit FAT instead of 12-bit
  81751. bit 7: unsupportable disk (all accesses will return Not Ready)
  81752. 20h WORD device-open count
  81753. 22h BYTE device type (see #01561 at INT 21/AX=440Dh"DOS 3.2+")
  81754. 23h WORD bit flags describing drive (see #02604)
  81755. 25h WORD number of cylinders (for partition only, if hard disk)
  81756. 27h 25 BYTEs BIOS Parameter Block for default (highest) capacity supported
  81757. 40h 6 BYTEs reserved (part of BPB above)
  81758. 46h BYTE last track accessed
  81759. ---removable media---
  81760. 47h DWORD time of last access in clock ticks (FFFFFFFFh if never)
  81761. ---fixed media---
  81762. 47h WORD partition (FFFFh = primary, 0001h = extended)
  81763. always 0001h for DOS 5+
  81764. 49h WORD absolute cylinder number of partition's start on physical drive
  81765. (FFFFh if primary partition in DOS 4.x)
  81766. ------
  81767. 4Bh 11 BYTEs volume label or "NO NAME " if none (apparently taken from
  81768. extended boot record rather than root directory)
  81769. 56h BYTE terminating null for volume label
  81770. 57h DWORD serial number
  81771. 5Bh 8 BYTEs filesystem type ("FAT12 " or "FAT16 ")
  81772. 63h BYTE terminating null for filesystem type
  81773. SeeAlso: #02601,#02602
  81774. Bitfields for flags describing drive:
  81775. Bit(s) Description (Table 02604)
  81776. 0 fixed media
  81777. 1 door lock ("changeline") supported
  81778. 2 current BPB locked
  81779. 3 all sectors in a track are the same size
  81780. 4 physical drive has multiple logical units
  81781. 5 current logical drive for shared physical drive
  81782. 6 disk change detected
  81783. 7 device parameters were changed (set DASD before formatting)
  81784. (see #01560 at INT 21/AX=440Dh"DOS 3.2+")
  81785. 8 disk reformatted (BPB of current media was changed)
  81786. 9 access flag (fixed media only, disables reads and writes)
  81787. (see #01566 at INT 21/AX=440Dh"DOS 3.2+")
  81788. --------f-2F1000-----------------------------
  81789. INT 2F - SHARE - INSTALLATION CHECK
  81790. AX = 1000h
  81791. Return: AL = status
  81792. 00h not installed, OK to install
  81793. 01h not installed, not OK to install
  81794. FFh installed
  81795. BUGS: values of AL other than 00h put DOS 3.x SHARE into an infinite loop
  81796. (08E9: OR AL,AL
  81797. 08EB: JNZ 08EB) <- the buggy instruction (DOS 3.3)
  81798. values of AL other than described here put PC-DOS 4.00 into the same
  81799. loop (the buggy instructions are the same)
  81800. Notes: supported by OS/2 v1.3+ compatibility box, which always returns AL=FFh
  81801. if DOS 4.01 SHARE was automatically loaded, file sharing is in an
  81802. inactive state (due to the undocumented /NC flag used by the autoload
  81803. code) until this call is made
  81804. DOS 5+ chains to the previous handler if AL <> 00h on entry
  81805. Windows Enhanced mode hooks this call and reports that SHARE is
  81806. installed even when it is not
  81807. SeeAlso: AX=1080h,INT 21/AH=52h,INT 21/AX=4457h/DX=FFFFh
  81808. --------d-2F1001-----------------------------
  81809. INT 2F U - DR DOS 6.0 SHARE internal - SET ???
  81810. AX = 1001h
  81811. DX:BX -> ???function
  81812. Notes: this function is also supported by SuperStor, a disk-compression
  81813. program by Addstor which is bundled with DR DOS 6.0, and the
  81814. Novell DOS 7 DELWATCH.EXE
  81815. the default handler for the pointer set by this call under DELWATCH
  81816. simply returns with CF set
  81817. SeeAlso: AX=1000h,AX=F800h
  81818. --------f-2F1040-----------------------------
  81819. INT 2F U - DOS 4 only SHARE internal - ???
  81820. AX = 1040h
  81821. ???
  81822. Return: AL = FFh???
  81823. SeeAlso: AX=1000h
  81824. --------f-2F1080-----------------------------
  81825. INT 2F U - DOS 4 only SHARE internal - TURN ON FILE SHARING CHECKS
  81826. AX = 1080h
  81827. Return: AL = status
  81828. F0h successful
  81829. FFh checking was already on
  81830. Note: DOS 4.x SHARE has dual functions: FCB support for large (>32M) media
  81831. and file sharing checks. The undocumented commandline flag /NC can
  81832. be used to disable the sharing code.
  81833. SeeAlso: AX=1000h,AX=1081h
  81834. --------f-2F1081-----------------------------
  81835. INT 2F U - DOS 4 only SHARE internal - TURN OFF FILE SHARING CHECKS
  81836. AX = 1081h
  81837. Return: AL = status
  81838. F0h successful
  81839. FFh checking was already off
  81840. Note: (see AX=1080h)
  81841. SeeAlso: AX=1000h,AX=1080h
  81842. --------O-2F10FE-----------------------------
  81843. INT 2F U - Novell DOS 7 DELWATCH.EXE - INSTALLATION CHECK
  81844. AX = 10FEh
  81845. Return: AX = 20FFh if installed and active
  81846. DX:BX -> private entry point (see #02605)
  81847. SeeAlso: #01352,INT 21/AX=4306h,INT 21/AX=5704h
  81848. (Table 02605)
  81849. Call DELWATCH private entry point with:
  81850. AH = function
  81851. 00h NOP???
  81852. Return: AX = 0000h
  81853. CX = 0004h (unsupported function)
  81854. 01h disable DELWATCH on drive
  81855. AL = drive number (00h = A:)
  81856. Return: AX = status (0000h if failed, FFFFh if successful)
  81857. 02h ???
  81858. AL = drive number (00h = A:)
  81859. ???
  81860. Return: ???
  81861. 03h ???
  81862. AL = drive number (00h = A:)
  81863. CX = ??? (0000h/0001h)
  81864. ???
  81865. Return: ???
  81866. 04h ???
  81867. AL = drive number (00h = A:)
  81868. ???
  81869. Return: ???
  81870. 05h ???
  81871. AL = drive number (00h = A:)
  81872. ???
  81873. Return: ???
  81874. 06h enable DELWATCH on drive
  81875. AL = drive number with bit 7 set (80h = A:, etc.)
  81876. BX = maximum files of same name in one directory to save
  81877. CX = maximum files to save on this disk
  81878. ???
  81879. Return: AX = status
  81880. 0000h failed
  81881. FFFFh successful
  81882. CX = error code on failure
  81883. (0004h if AL < 80h on entry)
  81884. 07h ???
  81885. 08h set file extensions list
  81886. AL = sense (00h exclude named extensions, 01h only named ext.)
  81887. DS:BX -> 31-byte ASCIZ extension list (three blank-padded bytes
  81888. per extension)
  81889. Return: AX = FFFFh (successful)
  81890. 09h ???
  81891. AL = drive number (00h = A:)
  81892. ???
  81893. Return: ???
  81894. 0Ah ???
  81895. AL = drive number (00h = A:)
  81896. ???
  81897. Return: ???
  81898. 0Bh reset ???
  81899. Return: AX = FFFFh (successful)
  81900. see also function 0Dh
  81901. 0Ch check if drive enabled
  81902. AL = drive number with bit 7 set (80h = A:, etc.)
  81903. Return: AX = state
  81904. 0000h disabled or error (check CX)
  81905. 0001h drive enabled
  81906. CX = error code (0004h invalid drive number)
  81907. 0Dh set ???
  81908. BX = ???
  81909. Return: AX = FFFFh (successful)
  81910. see also function 0Bh
  81911. 0Eh ???
  81912. AL = drive number (00h = A:)
  81913. ???
  81914. Return: ???
  81915. Return: AX = 0000h, CX = 0001h if DELWATCH busy
  81916. registers unchanged if AH >= 0Fh on entry
  81917. --------O-2F10FF-----------------------------
  81918. INT 2F U - Multiplex - DR DOS 5.0 - ???
  81919. AX = 10FFh
  81920. ES:BX -> ???
  81921. Note: sets pointer in kernel
  81922. --------N-2F1100-----------------------------
  81923. INT 2F C - NETWORK REDIRECTOR - INSTALLATION CHECK
  81924. AX = 1100h
  81925. Return: AL = status
  81926. 00h not installed, OK to install
  81927. 01h not installed, not OK to install
  81928. FFh installed
  81929. AH = product identifier (ad hoc by various manufacturers)
  81930. 00h if PC Tools v8 DRIVEMAP
  81931. 42h ('B') for Beame&Whiteside BWNFS v3.0a
  81932. 6Eh ('n') for NetWare Lite v1.1 CLIENT
  81933. Notes: this function is called by the DOS 3.1+ kernel
  81934. in DOS 4.x only, the 11xx calls are all in IFSFUNC.EXE, not in the
  81935. PC LAN Program redirector; DOS 5+ moves the calls back into the
  81936. redirector
  81937. the PC Network 1.00 redirector (renamed to PC LAN Program in 1.1-1.3)
  81938. only supports AL=00h-27h
  81939. --------d-2F1100SFDADA-----------------------
  81940. INT 2F - MSCDEX (MS CD-ROM Extensions) - INSTALLATION CHECK
  81941. AX = 1100h subfn DADAh
  81942. STACK: WORD DADAh
  81943. Return: AL = status
  81944. 00h not installed, OK to install
  81945. STACK unchanged
  81946. 01h not installed, not OK to install
  81947. STACK unchanged
  81948. FFh installed
  81949. STACK: WORD ADADh if MSCDEX installed
  81950. DADBh if Lotus CD/Networker installed
  81951. Note: although MSCDEX sets the stack word to ADADh on return, any value other
  81952. than DADAh is considered to mean that MSCDEX is already installed;
  81953. Lotus CD/Networker v4+ uses this feature to fool MSCDEX into
  81954. thinking it is already installed when it is in fact CD/Networker
  81955. that is installed
  81956. Index: installation check;Lotus CD/Networker
  81957. Index: Lotus CD/Networker;installation check
  81958. --------N-2F1101-----------------------------
  81959. INT 2F CU - NETWORK REDIRECTOR - REMOVE REMOTE DIRECTORY
  81960. AX = 1101h
  81961. SS = DOS DS
  81962. SDA first filename pointer -> fully-qualified directory name
  81963. SDA CDS pointer -> current directory structure for drive with dir
  81964. Return: CF set on error
  81965. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  81966. CF clear if successful
  81967. Note: this function is called by the DOS 3.1+ kernel
  81968. SeeAlso: AX=1103h,AX=1105h,INT 21/AH=3Ah,INT 21/AH=60h
  81969. --------N-2F1102-----------------------------
  81970. INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - REMOVE REMOTE DIRECTORY
  81971. AX = 1102h
  81972. SS = DOS DS
  81973. SDA first filename pointer -> fully-qualified directory name
  81974. SDA CDS pointer -> current directory structure for drive with dir
  81975. Return: CF set on error
  81976. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  81977. CF clear if successful
  81978. Note: appears to be identical to AX=1101h; MS internal documentation calls
  81979. this function "SEQ_RMDIR"
  81980. SeeAlso: AX=1101h
  81981. --------N-2F1103-----------------------------
  81982. INT 2F CU - NETWORK REDIRECTOR - MAKE REMOTE DIRECTORY
  81983. AX = 1103h
  81984. SS = DOS DS
  81985. SDA first filename pointer -> fully-qualified directory name
  81986. SDA CDS pointer -> current directory structure for drive with dir
  81987. Return: CF set on error
  81988. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  81989. CF clear if successful
  81990. Note: this function is called by the DOS 3.1+ kernel
  81991. SeeAlso: AX=1101h,AX=1105h,INT 21/AH=39h,INT 21/AH=60h
  81992. --------N-2F1104-----------------------------
  81993. INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - MAKE REMOTE DIRECTORY
  81994. AX = 1104h
  81995. SS = DOS DS
  81996. SDA first filename pointer -> fully-qualified directory name
  81997. SDA CDS pointer -> current directory structure for drive with dir
  81998. Return: CF set on error
  81999. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82000. CF clear if successful
  82001. Note: appears to be identical to AX=1103h
  82002. SeeAlso: AX=1103h
  82003. --------N-2F1105-----------------------------
  82004. INT 2F CU - NETWORK REDIRECTOR - CHDIR
  82005. AX = 1105h
  82006. SS = DOS DS
  82007. SDA first filename pointer -> fully-qualified directory name
  82008. SDA CDS pointer -> current directory structure for drive with dir
  82009. Return: CF set on error
  82010. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82011. CF clear if successful
  82012. CDS updated with new path
  82013. Notes: this function is called by the DOS 3.1+ kernel
  82014. directory string in CDS should not have a terminating backslash unless
  82015. the current directory is the root
  82016. SeeAlso: AX=1101h,AX=1103h,INT 21/AH=3Bh,INT 21/AH=60h
  82017. --------N-2F1106-----------------------------
  82018. INT 2F CU - NETWORK REDIRECTOR - CLOSE REMOTE FILE
  82019. AX = 1106h
  82020. ES:DI -> filled-in SFT (assumed to point at SDA's current SFT field)
  82021. Return: CF set on error
  82022. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82023. CF clear if successful
  82024. SFT updated (redirector must decrement open count, which may be
  82025. done with INT 2F/AX=1208h)
  82026. ES:DI must be preserved
  82027. Note: this function is called by the DOS 3.1+ kernel
  82028. SeeAlso: AX=1116h,AX=1201h,AX=1208h,AX=1227h,INT 21/AH=3Eh
  82029. --------N-2F1107-----------------------------
  82030. INT 2F CU - NETWORK REDIRECTOR - COMMIT REMOTE FILE
  82031. AX = 1107h
  82032. ES:DI -> filled-in SFT (assumed to point at SDA's current SFT field)
  82033. Return: CF set on error
  82034. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82035. CF clear if successful
  82036. all buffers for file flushed
  82037. directory entry updated
  82038. ES:DI must be preserved
  82039. Desc: perform all the buffer flushing, directory updates, etc. that would be
  82040. performed on a file close, but do not decrement the SFT reference
  82041. count
  82042. Note: this function is called by the DOS 3.1+ kernel
  82043. SeeAlso: INT 21/AH=68h,INT 21/AX=5D01h
  82044. --------N-2F1108-----------------------------
  82045. INT 2F CU - NETWORK REDIRECTOR - READ FROM REMOTE FILE
  82046. AX = 1108h
  82047. ES:DI -> SFT
  82048. SFT DPB field -> DPB of drive containing file
  82049. CX = number of bytes
  82050. SS = DOS DS
  82051. SDA DTA field -> user buffer
  82052. Return: CF set on error
  82053. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82054. CF clear if successful
  82055. CX = number of bytes read (0000h = end of file)
  82056. SFT updated
  82057. Note: this function is called by the DOS 3.1+ kernel
  82058. SeeAlso: AX=1109h,AX=1229h,INT 21/AH=3Fh"DOS",INT 21/AX=5D06h
  82059. --------N-2F1109-----------------------------
  82060. INT 2F CU - NETWORK REDIRECTOR - WRITE TO REMOTE FILE
  82061. AX = 1109h
  82062. ES:DI -> SFT
  82063. SFT DPB field -> DPB of drive containing file
  82064. CX = number of bytes
  82065. SS = DOS DS
  82066. SDA DTA field -> user buffer
  82067. Return: CF set on error
  82068. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82069. CF clear if successful
  82070. CX = number of bytes written
  82071. SFT updated
  82072. Notes: this function is called by the DOS 3.1+ kernel
  82073. PrintCache v3.1 PCACHE.EXE intercepts this function for SFTs where
  82074. the Device Driver Header field points at PCACHE, but does not
  82075. intercept any other network redirector functions
  82076. SeeAlso: AX=1107h,AX=1108h,INT 21/AH=40h,INT 21/AX=5D06h
  82077. --------N-2F110A-----------------------------
  82078. INT 2F CU - NETWORK REDIRECTOR (DOS 3.x only) - LOCK REGION OF FILE
  82079. AX = 110Ah
  82080. BX = file handle
  82081. CX:DX = starting offset
  82082. SI = high word of size
  82083. STACK: WORD low word of size
  82084. ES:DI -> SFT
  82085. SFT DPB field -> DPB of drive containing file
  82086. SS = DOS DS
  82087. Return: CF set on error
  82088. AL = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82089. STACK unchanged
  82090. Notes: this function is called by the DOS 3.10-3.31 kernel
  82091. the redirector is expected to resolve lock conflicts
  82092. SeeAlso: AX=110Bh,INT 21/AH=5Ch
  82093. --------N-2F110A-----------------------------
  82094. INT 2F CU - NETWORK REDIRECTOR (DOS 4.0+) - LOCK/UNLOCK REGION OF FILE
  82095. AX = 110Ah
  82096. BL = function
  82097. 00h lock
  82098. 01h unlock
  82099. CX = number of lock/unlock parameters (0001h for DOS 4.0-6.1)
  82100. DS:DX -> parameter block (see #02606)
  82101. ES:DI -> SFT
  82102. SFT DPB field -> DPB of drive containing file
  82103. SS = DOS DS
  82104. Return: CF set on error
  82105. AL = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82106. Notes: this function is called by the DOS 4.0+ kernel
  82107. the redirector is expected to resolve lock conflicts
  82108. SeeAlso: AX=110Bh,INT 21/AH=5Ch
  82109. Format of parameter block entry [array, but currently limited to single entry]:
  82110. Offset Size Description (Table 02606)
  82111. 00h DWORD start offset
  82112. 04h DWORD size of region
  82113. --------N-2F110B-----------------------------
  82114. INT 2F CU - NETWORK REDIRECTOR (DOS 3.x only) - UNLOCK REGION OF FILE
  82115. AX = 110Bh
  82116. BX = file handle
  82117. CX:DX = starting offset
  82118. SI = high word of size
  82119. STACK: WORD low word of size
  82120. ES:DI -> SFT for file
  82121. SFT DPB field -> DPB of drive containing file
  82122. Return: CF set on error
  82123. AL = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82124. STACK unchanged
  82125. Note: this function is called by the DOS 3.1-3.31 kernel; DOS 4.0+ calls
  82126. AX=110Ah instead
  82127. SeeAlso: AX=110Ah,INT 21/AH=5Ch
  82128. --------N-2F110C-----------------------------
  82129. INT 2F CU - NETWORK REDIRECTOR - GET DISK INFORMATION
  82130. AX = 110Ch
  82131. ES:DI -> current directory structure for desired drive
  82132. Return: CF clear if data valid
  82133. AL = sectors per cluster
  82134. AH = media ID byte
  82135. BX = total clusters
  82136. CX = bytes per sector
  82137. DX = number of available clusters
  82138. CF set if data invalid
  82139. Note: this function is called by the DOS 3.1+ kernel
  82140. SeeAlso: INT 21/AH=36h
  82141. --------N-2F110D-----------------------------
  82142. INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - SET REMOTE FILE'S ATTRIBUTES
  82143. AX = 110Dh
  82144. SDA first filename pointer -> name of file
  82145. ???
  82146. Return: ???
  82147. Note: similar to AX=110Eh
  82148. SeeAlso: AX=110Eh
  82149. --------N-2F110E-----------------------------
  82150. INT 2F CU - NETWORK REDIRECTOR - SET REMOTE FILE'S ATTRIBUTES
  82151. AX = 110Eh
  82152. SS = DOS DS
  82153. SDA first filename pointer -> fully-qualified name of file
  82154. SDA CDS pointer -> current directory structure for drive with file
  82155. STACK: WORD new file attributes
  82156. Return: CF set on error
  82157. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82158. CF clear if successful
  82159. STACK unchanged
  82160. Note: this function is called by the DOS 3.1+ kernel
  82161. SeeAlso: AX=110Dh,AX=110Fh,INT 21/AX=4301h,INT 21/AH=60h
  82162. --------N-2F110F-----------------------------
  82163. INT 2F CU - NETWORK REDIRECTOR - GET REMOTE FILE'S ATTRIBUTES AND SIZE
  82164. AX = 110Fh
  82165. SS = DOS DS
  82166. SDA first filename pointer -> fully-qualified name of file
  82167. SDA CDS pointer -> current directory structure for drive with file
  82168. (offset = FFFFh if null CDS [net direct request])
  82169. SDA search attributes = mask of attributes which may be included in
  82170. search for file
  82171. Return: CF set on error
  82172. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82173. CF clear if successful
  82174. AX = file attributes
  82175. BX:DI = file size
  82176. CX = time stamp of file
  82177. DX = date stamp of file
  82178. Notes: this function is called by the DOS 3.1+ kernel
  82179. wildcards and device names are not permitted
  82180. SeeAlso: AX=110Eh,INT 21/AX=4300h,INT 21/AH=60h
  82181. --------N-2F1110-----------------------------
  82182. INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - GET REMOTE FILE'S ATTRIBUTES AND SIZE
  82183. AX = 1110h
  82184. SDA first filename pointer -> name of file
  82185. ???
  82186. Return: ???
  82187. Note: appears to be similar to AX=110Fh
  82188. SeeAlso: AX=110Eh
  82189. --------N-2F1111-----------------------------
  82190. INT 2F CU - NETWORK REDIRECTOR - RENAME REMOTE FILE
  82191. AX = 1111h
  82192. SS = DS = DOS DS
  82193. SDA first filename pointer = offset of fully-qualified old name
  82194. SDA second filename pointer = offset of fully-qualified new name
  82195. SDA CDS pointer -> current directory structure for drive with file
  82196. Return: CF set on error
  82197. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82198. CF clear if successful
  82199. Note: this function is called by the DOS 3.1+ kernel
  82200. SeeAlso: AX=1112h,INT 21/AH=56h,INT 21/AH=60h
  82201. --------N-2F1112-----------------------------
  82202. INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - RENAME REMOTE FILE
  82203. AX = 1112h
  82204. SS = DS = DOS DS
  82205. SDA first filename pointer -> name of file
  82206. ???
  82207. Return: ???
  82208. Note: similar to AX=1111h
  82209. SeeAlso: AX=1111h
  82210. --------N-2F1113-----------------------------
  82211. INT 2F CU - NETWORK REDIRECTOR - DELETE REMOTE FILE
  82212. AX = 1113h
  82213. SS = DS = DOS DS
  82214. SDA first filename pointer -> fully-qualified filename in DOS DS
  82215. SDA CDS pointer -> current directory structure for drive with file
  82216. Return: CF set on error
  82217. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82218. CF clear if successful
  82219. Notes: this function is called by the DOS 3.1+ kernel
  82220. the filespec may contain wildcards
  82221. SeeAlso: AX=1114h,INT 21/AH=41h,INT 21/AH=60h
  82222. --------N-2F1114-----------------------------
  82223. INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - DELETE REMOTE FILE
  82224. AX = 1114h
  82225. SDA first filename pointer -> name of file
  82226. ???
  82227. Return: ???
  82228. Note: similar to AX=1113h
  82229. SeeAlso: AX=1113h
  82230. --------N-2F1115-----------------------------
  82231. INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - OPEN REMOTE FILE
  82232. AX = 1115h
  82233. SS = DOS DS
  82234. ES:DI -> SFT ???
  82235. ???
  82236. Return: ???
  82237. Note: similar to AX=1116h
  82238. SeeAlso: AX=1116h,AX=112Eh
  82239. --------N-2F1116-----------------------------
  82240. INT 2F CU - NETWORK REDIRECTOR - OPEN EXISTING REMOTE FILE
  82241. AX = 1116h
  82242. ES:DI -> uninitialized SFT
  82243. SS = DOS DS
  82244. SDA first filename pointer -> fully-qualified name of file to open
  82245. STACK: WORD file access and sharing modes (see #01402 at INT 21/AH=3Dh)
  82246. Return: CF set on error
  82247. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82248. CF clear if successful
  82249. SFT filled (except handle count, which DOS manages itself)
  82250. STACK unchanged
  82251. Note: this function is called by the DOS 3.1+ kernel
  82252. SeeAlso: AX=1106h,AX=1115h,AX=1117h,AX=1118h,AX=112Eh,INT 21/AH=3Dh
  82253. SeeAlso: INT 21/AH=60h
  82254. --------N-2F1117-----------------------------
  82255. INT 2F CU - NETWORK REDIRECTOR - CREATE/TRUNCATE REMOTE FILE
  82256. AX = 1117h
  82257. ES:DI -> uninitialized SFT
  82258. SS = DOS DS
  82259. SDA first filename pointer -> fully-qualified name of file to open
  82260. SDA CDS pointer -> current directory structure for drive with file
  82261. STACK: WORD file creation mode
  82262. low byte = file attributes (see #01401 at INT 21/AH=3Ch)
  82263. high byte = 00h normal create, 01h create new file
  82264. Return: CF set on error
  82265. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82266. CF clear if successful
  82267. SFT filled (except handle count, which DOS manages itself)
  82268. STACK unchanged
  82269. Note: this function is called by the DOS 3.1+ kernel
  82270. SeeAlso: AX=1106h,AX=1116h,AX=1118h,AX=112Eh,INT 21/AH=3Ch,INT 21/AH=60h
  82271. --------N-2F1118-----------------------------
  82272. INT 2F CU - NETWORK REDIRECTOR - CREATE/TRUNCATE FILE WITHOUT CDS
  82273. AX = 1118h
  82274. ES:DI -> uninitialized SFT
  82275. SS = DOS DS
  82276. SDA first filename pointer -> fully-qualified name of file
  82277. STACK: WORD file creation mode
  82278. low byte = file attributes
  82279. high byte = 00h normal create, 01h create new file
  82280. Return: ???
  82281. STACK unchanged
  82282. Note: this function is called by the DOS 3.1+ kernel when creating a file
  82283. on a drive for which the SDA CDS pointer has offset FFFFh
  82284. SeeAlso: AX=1106h,AX=1116h,AX=1117h,AX=112Eh,INT 21/AH=60h
  82285. --------N-2F1119-----------------------------
  82286. INT 2F CU - NETWORK REDIRECTOR - FIND FIRST FILE WITHOUT CDS
  82287. AX = 1119h
  82288. SS = DS = DOS DS
  82289. [DTA] = uninitialized 21-byte findfirst search data
  82290. (see #01626 at INT 21/AH=4Eh)
  82291. SDA first filename pointer -> fully-qualified search template
  82292. SDA search attribute = attribute mask for search
  82293. Return: CF set on error
  82294. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82295. CF clear if successful
  82296. [DTA] = updated findfirst search data
  82297. (bit 7 of first byte must be set)
  82298. [DTA+15h] = standard directory entry for file (see #01352)
  82299. Notes: this function is called by the DOS 3.1+ kernel
  82300. DOS 4.x IFSFUNC returns CF set, AX=0003h
  82301. SeeAlso: AX=111Ah,AX=111Bh,INT 21/AH=1Ah
  82302. --------N-2F111A-----------------------------
  82303. INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - FIND NEXT FILE WITHOUT CDS
  82304. AX = 111Ah
  82305. ???
  82306. Return: CF set
  82307. AX = error code (03h for DOS 4.01 IFSFUNC)
  82308. Note: use AX=111Ch for DOS 5+
  82309. SeeAlso: AX=1119h,AX=111Ch
  82310. --------N-2F111B-----------------------------
  82311. INT 2F CU - NETWORK REDIRECTOR - FINDFIRST
  82312. AX = 111Bh
  82313. SS = DS = DOS DS
  82314. [DTA] = uninitialized 21-byte findfirst search data
  82315. (see #01626 at INT 21/AH=4Eh)
  82316. SDA first filename pointer -> fully-qualified search template
  82317. SDA CDS pointer -> current directory structure for drive with file
  82318. SDA search attribute = attribute mask for search
  82319. Return: CF set on error
  82320. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82321. CF clear if successful
  82322. [DTA] = updated findfirst search data
  82323. (bit 7 of first byte must be set)
  82324. [DTA+15h] = standard directory entry for file (see #01352)
  82325. Note: this function is called by the DOS 3.1+ kernel
  82326. SeeAlso: AX=1119h,AX=111Ch,INT 21/AH=1Ah,INT 21/AH=4Eh,INT 21/AH=60h
  82327. --------N-2F111C-----------------------------
  82328. INT 2F CU - NETWORK REDIRECTOR - FINDNEXT
  82329. AX = 111Ch
  82330. SS = DS = DOS DS
  82331. ES:DI -> CDS
  82332. ES:DI -> DTA (MSDOS v5.0)
  82333. [DTA] = 21-byte findfirst search data
  82334. (see #01626 at INT 21/AH=4Eh)
  82335. Return: CF set on error
  82336. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82337. CF clear if successful
  82338. [DTA] = updated findfirst search data
  82339. (bit 7 of first byte must be set)
  82340. [DTA+15h] = standard directory entry for file (see #01352)
  82341. Note: this function is called by the DOS 3.1+ kernel
  82342. SeeAlso: AX=1119h,AX=111Bh,INT 21/AH=1Ah,INT 21/AH=4Fh
  82343. --------N-2F111D-----------------------------
  82344. INT 2F CU - NETWORK REDIRECTOR - CLOSE ALL REMOTE FILES FOR PROCESS (ABORT)
  82345. AX = 111Dh
  82346. SS = DOS DS
  82347. SDA PSP segment field = PSP of terminating process
  82348. Return: nothing
  82349. Notes: used when a process is aborted; the process being terminated is
  82350. indicated by the "sharing PSP" field in the SDA (offset 1Ah/1Ch)
  82351. this function is called by the DOS 3.1+ kernel
  82352. closes all FCBs opened by process
  82353. SeeAlso: INT 21/AX=5D04h
  82354. --------N-2F111E-----------------------------
  82355. INT 2F CU - NETWORK REDIRECTOR - DO REDIRECTION
  82356. AX = 111Eh
  82357. SS = DOS DS
  82358. STACK: WORD function to execute
  82359. 5F00h get redirection mode
  82360. BL = type (03h printer, 04h disk)
  82361. Return: BH = state (00h off, 01h on)
  82362. 5F01h set redirection mode
  82363. BL = type (03h printer, 04h disk)
  82364. BH = state (00h off, 01h on)
  82365. 5F02h get redirection list entry
  82366. BX = redirection list index
  82367. DS:SI -> 16-byte local device name buffer
  82368. ES:DI -> 128-byte network name buffer
  82369. Return: must set user's BX to device type and CX to
  82370. stored parameter value, using AX=1218h to get
  82371. stack frame address
  82372. 5F03h redirect device
  82373. BL = device type (see INT 21/AX=5F03h)
  82374. CX = stored parameter value
  82375. DS:SI -> ASCIZ source device name
  82376. ES:DI -> destination ASCIZ network path + ASCIZ passwd
  82377. 5F04h cancel redirection
  82378. DS:SI -> ASCIZ device name or network path
  82379. 5F05h get redirection list extended entry
  82380. BX = redirection list index
  82381. DS:SI -> buffer for ASCIZ source device name
  82382. ES:DI -> buffer for destination ASCIZ network path
  82383. Return: BH = status flag
  82384. BL = type (03h printer, 04h disk)
  82385. CX = stored parameter value
  82386. BP = NETBIOS local session number
  82387. 5F06h similar to 5F05h???
  82388. Return: CF set on error
  82389. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82390. STACK unchanged
  82391. Notes: this function is called by the DOS 3.1+ kernel on INT 21/AH=5Fh
  82392. (including LAN Manager calls)
  82393. the PC Network 1.00 redirector does not support function 5F06h
  82394. SeeAlso: INT 21/AX=5F00h,INT 21/AX=5F01h,INT 21/AX=5F02h,INT 21/AX=5F03h
  82395. SeeAlso: INT 21/AX=5F04h,INT 21/AX=5F05h,INT 21/AX=5F06h
  82396. --------N-2F111F-----------------------------
  82397. INT 2F CU - NETWORK REDIRECTOR - PRINTER SETUP
  82398. AX = 111Fh
  82399. STACK: WORD function
  82400. 5E02h set printer setup
  82401. 5E03h get printer setup
  82402. 5E04h set printer mode
  82403. 5E05h get printer mode
  82404. Return: CF set on error
  82405. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82406. STACK unchanged
  82407. Note: this function is called by the DOS 3.1+ kernel
  82408. SeeAlso: INT 21/AX=5E02h,INT 21/AX=5E03h,INT 21/AX=5E04h,INT 21/AX=5E05h
  82409. --------N-2F1120-----------------------------
  82410. INT 2F CU - NETWORK REDIRECTOR - FLUSH ALL DISK BUFFERS
  82411. AX = 1120h
  82412. DS = DOS DS
  82413. ???
  82414. Return: CF clear (successful)
  82415. Notes: this function is called by the DOS 3.1+ kernel
  82416. uses CDS array pointer and LASTDRIVE= entries in DOS list of lists
  82417. SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h
  82418. --------N-2F1121-----------------------------
  82419. INT 2F CU - NETWORK REDIRECTOR - SEEK FROM END OF REMOTE FILE
  82420. AX = 1121h
  82421. CX:DX = offset (in bytes) from end
  82422. ES:DI -> SFT
  82423. SFT DPB field -> DPB of drive with file
  82424. SS = DOS DS
  82425. Return: CF set on error
  82426. AL = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82427. CF clear if successful
  82428. DX:AX = new file position
  82429. Note: this function is called by the DOS 3.1+ kernel, but only when seeking
  82430. from the end of a file opened with sharing modes set in such a
  82431. manner that another process is able to change the size of the file
  82432. while it is already open
  82433. SeeAlso: AX=1228h,INT 21/AH=42h
  82434. --------N-2F1122-----------------------------
  82435. INT 2F CU - NETWORK REDIRECTOR - PROCESS TERMINATION HOOK
  82436. AX = 1122h
  82437. SS = DOS DS
  82438. DS = PSP of process about to terminate
  82439. Return: ???
  82440. Notes: this function is called by the DOS 3.1+ kernel
  82441. after calling this function, the kernel calls INT 2F/AX=111Dh
  82442. SeeAlso: AX=111Dh,INT 21/AH=4Ch,INT 60/DI=0601h
  82443. --------N-2F1123-----------------------------
  82444. INT 2F CU - NETWORK REDIRECTOR - QUALIFY REMOTE FILENAME
  82445. AX = 1123h
  82446. DS:SI -> ASCIZ filename to canonicalize
  82447. ES:DI -> 128-byte buffer for qualified name
  82448. Return: CF set if not resolved
  82449. Notes: called by MS-DOS 3.1+ kernel, but not called by DR DOS 5.0 unless the
  82450. filename matches the name of a character device
  82451. called first when DOS attempts to resolve a filename (unless inside an
  82452. AX=5D00h server call); if this fails, DOS resolves the name locally
  82453. SeeAlso: AX=1221h,INT 21/AH=60h
  82454. --------N-2F1124-----------------------------
  82455. INT 2F CU - NETWORK REDIRECTOR - TURN OFF REMOTE PRINTER
  82456. AX = 1124h
  82457. ES:DI -> SFT
  82458. SS = DOS DS
  82459. ???
  82460. Return: CX = ???
  82461. Note: this function is called by the DOS 3.1+ kernel if AX=1126h
  82462. returns CF set
  82463. SeeAlso: AX=1126h
  82464. --------N-2F1125-----------------------------
  82465. INT 2F CU - NETWORK REDIRECTOR - REDIRECTED PRINTER MODE
  82466. AX = 1125h
  82467. STACK: WORD subfunction
  82468. 5D07h get print stream state
  82469. Return: DL = current state
  82470. 5D08h set print stream state
  82471. DL = new state
  82472. 5D09h finish print job
  82473. Return: CF set on error
  82474. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82475. STACK unchanged
  82476. Note: this function is called by the DOS 3.1+ kernel
  82477. SeeAlso: INT 21/AX=5D07h,INT 21/AX=5D08h,INT 21/AX=5D09h
  82478. --------N-2F1126-----------------------------
  82479. INT 2F CU - NETWORK REDIRECTOR - REMOTE PRINTER ECHO ON/OFF
  82480. AX = 1126h
  82481. ES:DI -> SFT for file handle 4???
  82482. SS = DOS DS???
  82483. ???
  82484. Return: CF set on error
  82485. Notes: this function is called by the DOS 3.1+ kernel
  82486. called when print echoing (^P, ^PrtSc) changes state and STDPRN has
  82487. bit 11 of the device information word in the SFT set
  82488. SeeAlso: AX=1124h
  82489. --------N-2F1127-----------------------------
  82490. INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - UNUSED
  82491. AX = 1127h
  82492. Return: CF set
  82493. AX = 0001h (invalid function) (see #01680 at INT 21/AH=59h/BX=0000h)
  82494. --------N-2F1127BX4E57-----------------------
  82495. INT 2F - NetWare 4.0 - REMOTE FILE COPY
  82496. AX = 1127h
  82497. BX = 4E57h ('NW') (signature identifying this as a NetWare call)
  82498. SI = source file handle
  82499. DI = destination file handle
  82500. DX:CX = number of bytes to copy, starting at current file position
  82501. Return: CF clear if successful
  82502. CF set on error
  82503. AX = error code (05h,06h,0Bh,11h,3Bh) (see #01680)
  82504. DX:CX = number of bytes successfully copied (file position updated)
  82505. Notes: this is the only call which may be made directly to the NetWare
  82506. redirector from an application
  82507. COMMAND.COM's COPY and DOS's XCOPY reportedly call INT 21/AX=1127h in
  82508. order to speed up copies between files on the same network server;
  82509. if error code 11h (not same device) is returned, the copy is
  82510. performed in the usual manner. However, no such calls appear to
  82511. be present in MS-DOS 6.22.
  82512. --------N-2F1128-----------------------------
  82513. INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - UNUSED
  82514. AX = 1128h
  82515. Return: CF set
  82516. AX = 0001h (invalid function) (see #01680 at INT 21/AH=59h/BX=0000h)
  82517. --------N-2F1129-----------------------------
  82518. INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - UNUSED
  82519. AX = 1129h
  82520. Return: CF set
  82521. AX = 0001h (invalid function) (see #01680 at INT 21/AH=59h/BX=0000h)
  82522. --------N-2F112A-----------------------------
  82523. INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - CLOSE ALL FILES FOR PROCESS
  82524. AX = 112Ah
  82525. DS = DOS DS
  82526. ???
  82527. Return: ???
  82528. Note: does something to each IFS driver
  82529. --------N-2F112B-----------------------------
  82530. INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - GENERIC IOCTL
  82531. AX = 112Bh
  82532. SS = DOS DS
  82533. CX = function/category
  82534. DS:DX -> parameter block
  82535. STACK: WORD value of AX on entry to INT 21 (440Ch or 440Dh)
  82536. ???
  82537. Return: CF set on error
  82538. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82539. CF clear if successful
  82540. Note: this function is called by the DOS 4.0 kernel
  82541. --------N-2F112C-----------------------------
  82542. INT 2F CU - NETWORK REDIRECTOR (DOS 4.0+) - "UPDATE_CB" - ???
  82543. AX = 112Ch
  82544. SS = DOS DS
  82545. SDA current SFT pointer -> SFT for file
  82546. ???
  82547. Return: CF set on error
  82548. Note: called by SHARE in DOS 5.0-6.0
  82549. --------N-2F112D-----------------------------
  82550. INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - EXTENDED ATTRIBUTES
  82551. AX = 112Dh
  82552. BL = subfunction (value of AL on INT 21)
  82553. 02h get extended attributes
  82554. 03h get extended attribute properties
  82555. 04h set extended attributes
  82556. Return: CF clear
  82557. else ???
  82558. Return: CX = ??? (00h or 02h for DOS 4.01)
  82559. ES:DI -> SFT for file
  82560. SS = DOS DS
  82561. Return: DS = DOS DS
  82562. Note: this function is called by the DOS 4.0 kernel on INT 21/AX=5702h,
  82563. INT 21/AX=5703h, and INT 21/AX=5704h
  82564. SeeAlso: INT 21/AX=5702h,INT 21/AX=5703h,INT 21/AX=5704h,INT 21/AH=6Eh
  82565. --------N-2F112E-----------------------------
  82566. INT 2F CU - NETWORK REDIRECTOR (DOS 4.0+) - EXTENDED OPEN/CREATE FILE
  82567. AX = 112Eh
  82568. SS = DS = DOS DS
  82569. ES:DI -> uninitialized SFT for file
  82570. STACK: WORD file attribute for created/truncated file
  82571. low byte = file attributes
  82572. high byte = 00h normal create/open, 01h create new file
  82573. SDA first filename pointer -> fully-qualified filename
  82574. SDA extended file open action = action code
  82575. (see #01770 at INT 21/AX=6C00h)
  82576. SDA extended file open mode = open mode for file (see INT 21/AX=6C00h)
  82577. Return: CF set on error
  82578. AX = error code
  82579. CF clear if successful
  82580. CX = result code
  82581. 01h file opened
  82582. 02h file created
  82583. 03h file replaced (truncated)
  82584. SFT initialized (except handle count, which DOS manages itself)
  82585. Note: this function is called by the DOS 4.0+ kernel
  82586. BUG: this function is not called correctly under some DOS versions
  82587. (at least 5.0 and 6.2):
  82588. the file attribute on the stack is not correct if the action
  82589. code is 11h,
  82590. the result code in CX is not passed back to the application.
  82591. SeeAlso: AX=1115h,AX=1116h,AX=1117h,INT 21/AX=6C00h
  82592. --------N-2F112F-----------------------------
  82593. INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - IFS IOCTL
  82594. AX = 112Fh
  82595. SS = DOS DS
  82596. STACK: WORD function in low byte
  82597. 00h ???
  82598. DS:SI -> Current Directory Structure???
  82599. CL = drive (1=A:)
  82600. 01h ???
  82601. DS:SI -> ???
  82602. CL = file handle???
  82603. 02h ???
  82604. DS:SI -> Current Directory Structure???
  82605. DI = ???
  82606. CX = drive (1=A:)
  82607. ???
  82608. Return: CF set on error
  82609. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  82610. CF clear if successful
  82611. Note: this function is called by the DOS 4.0 kernel
  82612. SeeAlso: INT 21/AH=6Bh
  82613. --------N-2F1130-----------------------------
  82614. INT 2F CU - IFSFUNC.EXE (DOS 4.x only) - GET IFSFUNC SEGMENT
  82615. AX = 1130h
  82616. Return: ES = CS of resident IFSFUNC
  82617. --------N-2F1180-----------------------------
  82618. INT 2F - LAN Manager Enhanced DOS Services - ???
  82619. AX = 1180h
  82620. ???
  82621. Return: ???
  82622. SeeAlso: AX=1100h,AX=1181h,AX=118Eh
  82623. --------N-2F1181-----------------------------
  82624. INT 2F - LAN Manager Enhanced DOS Services - SET USER NAME???
  82625. AX = 1181h
  82626. ???
  82627. Return: ???
  82628. SeeAlso: AX=1100h,AX=1180h
  82629. --------N-2F1182-----------------------------
  82630. INT 2F - LAN Manager Enhanced DOS Services - INSTALL SERVICE
  82631. AX = 1182h
  82632. ???
  82633. Return: ???
  82634. SeeAlso: AX=1100h,AX=1180h
  82635. --------N-2F1184-----------------------------
  82636. INT 2F - LAN Manager Enhanced DOS - ???
  82637. AX = 1184h
  82638. ???
  82639. Return: ???
  82640. --------N-2F1186-----------------------------
  82641. INT 2F - LAN Manager Enhanced DOS - DosReadAsynchNmPipe
  82642. AX = 1186h
  82643. DS:SI -> stack frame (see #02607)
  82644. Return: CF clear if successful
  82645. CF set if error
  82646. AX = error code
  82647. Note: LAN Manager enhance mode adds features beyond the standard redirector
  82648. file/printer services
  82649. SeeAlso: AX=118Fh,AX=1190h,AX=1191h,INT 21/AX=5F39h
  82650. Format of LAN Manager DosReadAsynchNmPipe stack frame:
  82651. Offset Size Description (Table 02607)
  82652. 00h DWORD -> number of bytes read
  82653. 04h WORD size of buffer
  82654. 06h DWORD -> buffer
  82655. 0Ah DWORD -> return code
  82656. 0Eh DWORD function to call on completion as function( char far *buffer )
  82657. 12h WORD handle
  82658. --------N-2F118A-----------------------------
  82659. INT 2F - LAN Manager 2.0+ DOS Enhanced ENCRYPT.EXE - STREAM ENCRYPTION SERVICE
  82660. AX = 118Ah
  82661. BX = function (0000h or 0001h)
  82662. Return: CF clear if successful
  82663. AX = 1100h success
  82664. CF set if error
  82665. AX = 0001h, etc.
  82666. SeeAlso: AX=1186h,AH=41h,AH=42h,AH=4Bh
  82667. --------N-2F118B-----------------------------
  82668. INT 2F - LAN Manager Enhanced DOS - ???
  82669. AX = 118Bh
  82670. ???
  82671. Return: ???
  82672. --------N-2F118C-----------------------------
  82673. INT 2F - LAN Manager Enhanced DOS - ???
  82674. AX = 118Ch
  82675. ???
  82676. Return: ???
  82677. --------N-2F118E-----------------------------
  82678. INT 2F - LAN Manager Enhanced DOS - ???
  82679. AX = 118Eh
  82680. ???
  82681. Return: ???
  82682. --------N-2F118F-----------------------------
  82683. INT 2F - LAN Manager Enhanced DOS - DosWriteAsynchNmPipe
  82684. AX = 118Fh
  82685. DS:SI -> stack frame (see #02608)
  82686. Return: CF clear if successful
  82687. CF set if error
  82688. AX = error code
  82689. SeeAlso: AX=1186h,AX=1191h,INT 21/AX=5F3Ah
  82690. Format of LAN Manager DosReadAsynchNmPipe stack frame:
  82691. Offset Size Description (Table 02608)
  82692. 00h DWORD -> number of bytes read
  82693. 04h WORD Size of buffer
  82694. 06h DWORD -> buffer
  82695. 0Ah DWORD -> return code
  82696. 0Eh DWORD function to call on completion as function( char far *buffer )
  82697. 12h WORD handle
  82698. --------N-2F1190-----------------------------
  82699. INT 2F - LAN Manager Enhanced DOS - DosReadAsynchNmPipe2
  82700. AX = 1190h
  82701. DS:SI -> stack frame (see #02609)
  82702. Return: CF clear if successful
  82703. CF set if error
  82704. AX = error code
  82705. SeeAlso: AX=1186h,AX=1191h
  82706. Format of LAN Manager DosReadAsynchNmPipe2 stack frame:
  82707. Offset Size Description (Table 02609)
  82708. 00h DWORD -> number of bytes read
  82709. 04h WORD size of buffer
  82710. 06h DWORD -> buffer
  82711. 0Ah DWORD -> return code
  82712. 0Eh DWORD function to call on completion as function( char far *buffer )
  82713. 12h WORD handle
  82714. 14h DWORD ???
  82715. --------N-2F1191-----------------------------
  82716. INT 2F - LAN Manager Enhanced DOS - DosWriteAsynchNmPipe2
  82717. AX = 1191h
  82718. DS:SI -> stack frame (see #02610)
  82719. Return: CF clear if successful
  82720. CF set if error
  82721. AX = error code
  82722. SeeAlso: AX=118Fh,AX=1190h,INT 21/AX=5F3Ah
  82723. Format of LAN Manager DosReadAsynchNmPipe2 stack frame:
  82724. Offset Size Description (Table 02610)
  82725. 00h DWORD -> number of bytes read
  82726. 04h WORD size of buffer
  82727. 06h DWORD -> buffer
  82728. 0Ah DWORD -> return code
  82729. 0Eh DWORD function to call on completion as function( char far *buffer )
  82730. 12h WORD handle
  82731. 14h DWORD ???
  82732. --------D-2F1200-----------------------------
  82733. INT 2F U - DOS 3.0+ internal - INSTALLATION CHECK
  82734. AX = 1200h
  82735. Return: AL = FFh (for compatibility with other INT 2F functions)
  82736. --------D-2F1201-----------------------------
  82737. INT 2F U - DOS 3.0+ internal - CLOSE CURRENT FILE
  82738. AX = 1201h
  82739. SS = DOS DS = DOS kernel data seg (must be using a DOS internal stack)
  82740. SDA current SFT pointer -> SFT of file to close
  82741. Return: CF set on error
  82742. ES:DI -> SFT for file
  82743. CX undefined (new reference count of SFT in many versions)
  82744. BX destroyed
  82745. SeeAlso: AX=1106h,AX=1227h,INT 21/AH=3Eh
  82746. --------D-2F1202-----------------------------
  82747. INT 2F U - DOS 3.0+ internal - GET INTERRUPT ADDRESS
  82748. AX = 1202h
  82749. STACK: WORD vector number
  82750. Return: ES:BX -> interrupt vector (DWORD containing handler's address)
  82751. STACK unchanged
  82752. --------D-2F1203-----------------------------
  82753. INT 2F U - DOS 3.0+ internal - GET DOS DATA SEGMENT
  82754. AX = 1203h
  82755. Return: DS = data segment of IBMDOS.COM/MSDOS.SYS
  82756. Note: for DOS prior to version 5.0, the data segment is the same as the code
  82757. segment
  82758. --------D-2F1204-----------------------------
  82759. INT 2F U - DOS 3.0+ internal - NORMALIZE PATH SEPARATOR
  82760. AX = 1204h
  82761. STACK: WORD character to normalize
  82762. Return: AL = normalized character (forward slash turned to backslash, all
  82763. others unchanged)
  82764. ZF set if path separator
  82765. STACK unchanged
  82766. --------D-2F1205-----------------------------
  82767. INT 2F U - DOS 3.0+ internal - OUTPUT CHARACTER TO STANDARD OUTPUT
  82768. AX = 1205h
  82769. STACK: WORD character to output
  82770. Return: STACK unchanged
  82771. Note: can be called only from within DOS
  82772. --------D-2F1206-----------------------------
  82773. INT 2F U - DOS 3.0+ internal - INVOKE CRITICAL ERROR
  82774. AX = 1206h
  82775. DI = error code
  82776. BP:SI -> device driver header (see #01646)
  82777. SS = DOS DS (must be using a DOS internal stack)
  82778. STACK: WORD value to be passed to INT 24 in AX
  82779. Return: AL = 0-3 for Abort, Retry, Ignore, Fail
  82780. STACK unchanged
  82781. SeeAlso: INT 24
  82782. --------D-2F1207-----------------------------
  82783. INT 2F U - DOS 3.0+ internal - MAKE DISK BUFFER MOST-RECENTLY USED
  82784. AX = 1207h
  82785. DS:DI -> disk buffer
  82786. Return: nothing
  82787. Desc: move the indicated buffer to the end of the disk buffer chain (least-
  82788. recently used is first); under DOS 3.3, the buffer is then moved to
  82789. the start of the disk buffer chain if it was marked unused
  82790. Notes: can be called only from within DOS
  82791. this function is nearly the same as AX=120Fh
  82792. SeeAlso: AX=120Fh
  82793. --------D-2F1208-----------------------------
  82794. INT 2F U - DOS 3.0+ internal - DECREMENT SFT REFERENCE COUNT
  82795. AX = 1208h
  82796. ES:DI -> SFT
  82797. Return: AX = original value of reference count
  82798. Notes: if the reference count was 1, it is set to FFFFh ("busy", since 0
  82799. indicates that the SFT is not in use). It is the caller's
  82800. responsibility to set the reference count to zero after cleaning up.
  82801. used by network redirectors such as MSCDEX
  82802. SeeAlso: AX=1106h
  82803. --------D-2F1209-----------------------------
  82804. INT 2F U - DOS 3.0+ internal - FLUSH AND FREE DISK BUFFER
  82805. AX = 1209h
  82806. DS:DI -> disk buffer
  82807. Return: disk buffer marked unused, contents written to disk if buffer dirty
  82808. Note: can be called only from within DOS
  82809. SeeAlso: AX=120Eh,AX=1215h
  82810. --------D-2F120A-----------------------------
  82811. INT 2F U - DOS 3.0+ internal - PERFORM CRITICAL ERROR INTERRUPT
  82812. AX = 120Ah
  82813. DS = SS = DOS DS (must be using a DOS internal stack)
  82814. STACK: WORD extended error code
  82815. Return: AL = user response (0=ignore, 1=retry, 2=abort, 3=fail)
  82816. CF clear if retry, set otherwise
  82817. STACK unchanged
  82818. Notes: can only be called during a DOS function call, as it uses various
  82819. fields in the SDA to set up the registers for the INT 24
  82820. reportedly sets current DPB's first root directory sector to 1
  82821. SeeAlso: INT 24
  82822. --------D-2F120B-----------------------------
  82823. INT 2F U - DOS 3.0+ internal - SIGNAL SHARING VIOLATION TO USER
  82824. AX = 120Bh
  82825. ES:DI -> system file table entry for previous open of file
  82826. STACK: WORD extended error code (should be 20h--sharing violation)
  82827. Return: CF clear if operation should be retried
  82828. CF set if operation should not be retried
  82829. AX = error code (20h) (see #01680 at INT 21/AH=59h/BX=0000h)
  82830. STACK unchanged
  82831. Notes: can only be called during a DOS function call
  82832. should only be called if an attempt was made to open an already-open
  82833. file contrary to the sharing rules
  82834. invokes INT 24 if SFT file opened via FCB or in compatibility mode with
  82835. inheritance allowed
  82836. --------D-2F120C-----------------------------
  82837. INT 2F U - DOS 3.0+ internal - OPEN DEVICE AND SET SFT OWNER/MODE
  82838. AX = 120Ch
  82839. SDA current SFT pointer -> SFT for file
  82840. DS = DOS DS
  82841. SS = DOS DS (must be using a DOS internal stack)
  82842. Return: ES, DI, AX destroyed
  82843. Notes: invokes "device open" call on device driver for SFT
  82844. changes owner of last-accessed SFT to calling process if it was opened
  82845. via FCB
  82846. called by network redirectors such as MSCDEX
  82847. --------D-2F120D-----------------------------
  82848. INT 2F U - DOS 3.0+ internal - GET DATE AND TIME
  82849. AX = 120Dh
  82850. SS = DOS DS (must be using a DOS internal stack)
  82851. Return: AX = current date in packed format (see #01666 at INT 21/AX=5700h)
  82852. DX = current time in packed format (see #01665 at INT 21/AX=5700h)
  82853. SeeAlso: INT 21/AH=2Ah,INT 21/AH=2Ch
  82854. --------D-2F120E-----------------------------
  82855. INT 2F U - DOS 3.0+ internal - MARK ALL DISK BUFFERS UNREFERENCED
  82856. AX = 120Eh
  82857. SS = DOS DS (must be using a DOS internal stack)
  82858. Return: DS:DI -> first disk buffer
  82859. Notes: clears "referenced" flag on all disk buffers
  82860. in DOS 5+, this has become essentially a NOP, invoking the same code
  82861. used by AX=1224h (SHARING DELAY)
  82862. SeeAlso: AX=1209h,AX=1210h,INT 21/AH=0Dh
  82863. --------D-2F120F-----------------------------
  82864. INT 2F U - DOS 3.0+ internal - MAKE BUFFER MOST RECENTLY USED
  82865. AX = 120Fh
  82866. DS:DI -> disk buffer
  82867. SS = DOS DS (must be using a DOS internal stack)
  82868. Return: DS:DI -> next buffer in buffer list
  82869. Desc: move the indicated buffer to the end of the disk buffer chain (least-
  82870. recently used is first); under DOS 3.3, the buffer is then moved to
  82871. the start of the disk buffer chain if it was marked unused
  82872. Note: this function is the same as AX=1207h except that it returns a
  82873. pointer to the buffer following the specified buffer in the buffer
  82874. chain
  82875. SeeAlso: AX=1207h
  82876. --------D-2F1210-----------------------------
  82877. INT 2F U - DOS 3.0+ internal - FIND UNREFERENCED DISK BUFFER
  82878. AX = 1210h
  82879. DS:DI -> first disk buffer to check
  82880. Return: ZF clear if found
  82881. DS:DI -> first unreferenced disk buffer
  82882. ZF set if not found
  82883. Note: in DOS 5+, this has become essentially a NOP, invoking the same code
  82884. used by AX=1224h (SHARING DELAY)
  82885. SeeAlso: AX=120Eh
  82886. --------D-2F1211-----------------------------
  82887. INT 2F U - DOS 3.0+ internal - NORMALIZE ASCIZ FILENAME
  82888. AX = 1211h
  82889. DS:SI -> ASCIZ filename to normalize
  82890. ES:DI -> buffer for normalized filename
  82891. Return: destination buffer filled with uppercase filename, with slashes turned
  82892. to backslashes
  82893. SeeAlso: AX=121Eh,AX=1221h
  82894. --------D-2F1212-----------------------------
  82895. INT 2F U - DOS 3.0+ internal - GET LENGTH OF ASCIZ STRING
  82896. AX = 1212h
  82897. ES:DI -> ASCIZ string
  82898. Return: CX = length of string
  82899. SeeAlso: AX=1225h
  82900. --------D-2F1213-----------------------------
  82901. INT 2F U - DOS 3.0+ internal - UPPERCASE CHARACTER
  82902. AX = 1213h
  82903. STACK: WORD character to convert to uppercase
  82904. Return: AL = uppercase character
  82905. STACK unchanged
  82906. --------D-2F1214-----------------------------
  82907. INT 2F U - DOS 3.0+ internal - COMPARE FAR POINTERS
  82908. AX = 1214h
  82909. DS:SI = first pointer
  82910. ES:DI = second pointer
  82911. Return: ZF set if pointers are equal, ZF clear if not equal
  82912. CF clear if pointers equal, CF set if not
  82913. --------D-2F1215-----------------------------
  82914. INT 2F U - DOS 3.0+ internal - FLUSH BUFFER
  82915. AX = 1215h
  82916. DS:DI -> disk buffer
  82917. SS = DOS DS (must be using a DOS internal stack)
  82918. STACK: WORD drives for which to skip buffer
  82919. ignore buffer if drive same as high byte, or bytes differ and
  82920. the buffer is for a drive OTHER than that given in low byte
  82921. Return: STACK unchanged
  82922. Note: can be called only from within DOS
  82923. SeeAlso: AX=1209h
  82924. --------D-2F1216-----------------------------
  82925. INT 2F U - DOS 3.0+ internal - GET ADDRESS OF SYSTEM FILE TABLE ENTRY
  82926. AX = 1216h
  82927. BX = system file table entry number
  82928. Return: CF clear if successful
  82929. ES:DI -> system file table entry
  82930. BX = relative entry number in system file table containing entry
  82931. AX destroyed
  82932. CF set if BX greater than FILES=
  82933. Note: supported by DR DOS 5+
  82934. SeeAlso: AX=1220h
  82935. --------D-2F1217-----------------------------
  82936. INT 2F U - DOS 3.0+ internal - GET CURRENT DIRECTORY STRUCTURE FOR DRIVE
  82937. AX = 1217h
  82938. SS = DOS DS (must be using a DOS internal stack)
  82939. STACK: WORD drive (0 = A:, 1 = B:, etc)
  82940. Return: CF set on error
  82941. (drive > LASTDRIVE)
  82942. CF clear if successful
  82943. DS:SI -> current directory structure for specified drive
  82944. STACK unchanged
  82945. SeeAlso: AX=1219h
  82946. --------D-2F1218-----------------------------
  82947. INT 2F U - DOS 3.0+ internal - GET CALLER'S REGISTERS
  82948. AX = 1218h
  82949. Return: DS:SI -> saved caller's AX,BX,CX,DX,SI,DI,BP,DS,ES (on stack)
  82950. Note: only valid while within DOS
  82951. --------D-2F1219-----------------------------
  82952. INT 2F U - DOS 3.0+ internal - SET DRIVE???
  82953. AX = 1219h
  82954. SS = DOS DS (must be using a DOS internal stack)
  82955. STACK: WORD drive (0 = default, 1 = A:, etc)
  82956. Return: ???
  82957. STACK unchanged
  82958. Notes: calls AX=1217h
  82959. builds a current directory structure if inside server call
  82960. (INT 21/AX=5D00h)
  82961. SeeAlso: AX=1217h,AX=121Fh
  82962. --------D-2F121A-----------------------------
  82963. INT 2F U - DOS 3.0+ internal - GET FILE'S DRIVE
  82964. AX = 121Ah
  82965. DS:SI -> filename
  82966. Return: AL = drive (0 = default, 1 = A:, etc, FFh = invalid)
  82967. DS:SI -> filename without leading X: (if present)
  82968. SeeAlso: INT 21/AH=19h,INT 21/AH=60h
  82969. --------D-2F121B-----------------------------
  82970. INT 2F U - DOS 3.0+ internal - SET YEAR/LENGTH OF FEBRUARY
  82971. AX = 121Bh
  82972. CL = year - 1980
  82973. Return: AL = number of days in February
  82974. Note: requires DS to be set to the DOS data segment
  82975. SeeAlso: INT 21/AH=2Bh"DATE"
  82976. --------D-2F121C-----------------------------
  82977. INT 2F U - DOS 3.0+ internal - CHECKSUM MEMORY
  82978. AX = 121Ch
  82979. DS:SI -> start of memory to checksum
  82980. CX = number of bytes
  82981. DX = initial checksum
  82982. SS = DOS DS (must be using a DOS internal stack)
  82983. Return: AX, CX destroyed
  82984. DX = checksum
  82985. DS:SI -> first byte after checksummed range
  82986. Notes: used by DOS to determine day count since 1/1/80 given a date
  82987. supported by DR DOS 5.0+
  82988. SeeAlso: AX=121Dh
  82989. --------D-2F121D-----------------------------
  82990. INT 2F U - DOS 3.0+ internal - SUM MEMORY
  82991. AX = 121Dh
  82992. DS:SI -> memory to add up
  82993. CX = 0000h
  82994. DX = limit
  82995. Return: AL = byte which exceeded limit
  82996. CX = number of bytes before limit exceeded
  82997. DX = remainder after adding first CX bytes
  82998. DS:SI -> byte beyond the one which exceeded the limit
  82999. Notes: used by DOS to determine year or month given day count since 1/1/80
  83000. supported by DR DOS 5.0+
  83001. SeeAlso: AX=121Ch
  83002. --------D-2F121E-----------------------------
  83003. INT 2F U - DOS 3.0+ internal - COMPARE FILENAMES
  83004. AX = 121Eh
  83005. DS:SI -> first ASCIZ filename
  83006. ES:DI -> second ASCIZ filename
  83007. Return: ZF set if filenames equivalent, ZF clear if not
  83008. Note: supported by DR DOS 5.0+
  83009. SeeAlso: AX=1211h,AX=1221h
  83010. --------D-2F121F-----------------------------
  83011. INT 2F U - DOS 3.0+ internal - BUILD CURRENT DIRECTORY STRUCTURE
  83012. AX = 121Fh
  83013. SS = DOS DS (must be using a DOS internal stack)
  83014. STACK: WORD drive letter
  83015. Return: ES:DI -> current directory structure (will be overwritten by next call)
  83016. STACK unchanged
  83017. --------D-2F1220-----------------------------
  83018. INT 2F U - DOS 3.0+ internal - GET JOB FILE TABLE ENTRY
  83019. AX = 1220h
  83020. BX = file handle
  83021. Return: CF set on error
  83022. AL = 6 (invalid file handle)
  83023. CF clear if successful
  83024. ES:DI -> JFT entry for file handle in current process
  83025. Notes: the byte pointed at by ES:DI contains the number of the SFT for the
  83026. file handle, or FFh if the handle is not open
  83027. supported by DR DOS 5.0+
  83028. SeeAlso: AX=1216h,AX=1229h
  83029. --------D-2F1221-----------------------------
  83030. INT 2F U - DOS 3.0+ internal - CANONICALIZE FILE NAME
  83031. AX = 1221h
  83032. DS:SI -> file name to be fully qualified
  83033. ES:DI -> 128-byte buffer for resulting canonical file name
  83034. SS = DOS DS (must be using a DOS internal stack)
  83035. Return: (see INT 21/AH=60h)
  83036. Note: identical to INT 21/AH=60h
  83037. SeeAlso: AX=1123h,INT 21/AH=60h
  83038. --------D-2F1222-----------------------------
  83039. INT 2F U - DOS 3.0+ internal - SET EXTENDED ERROR INFO
  83040. AX = 1222h
  83041. SS = DOS data segment
  83042. SS:SI -> 4-byte records
  83043. BYTE error code, FFh = last record
  83044. BYTE error class, FFh = don't change
  83045. BYTE suggested action, FFh = don't change
  83046. BYTE error locus, FFh = don't change
  83047. SDA error code set
  83048. Return: SI destroyed
  83049. SDA error class, error locus, and suggested action fields set
  83050. Note: can be called only from within DOS
  83051. SeeAlso: AX=122Dh,INT 21/AH=59h/BX=0000h,INT 21/AX=5D0Ah
  83052. --------D-2F1223-----------------------------
  83053. INT 2F U - DOS 3.0+ internal - CHECK IF CHARACTER DEVICE
  83054. AX = 1223h
  83055. DS = DOS DS
  83056. SS = DOS DS (must be using a DOS internal stack)
  83057. SDA+218h (DOS 3.10-3.30) = eight-character blank-padded name
  83058. SDA+22Bh (DOS 4.0-6.0) = eight-character blank-padded name
  83059. SDA file attribute field set
  83060. direction flag clear (i.e. CLD)
  83061. Return: CF set if no character device by that name found
  83062. CF clear if found
  83063. BH bits 4-0 copied from low byte of device attribute word
  83064. BH bit 5 set, bits 7-6 clear
  83065. Notes: can only be called from within DOS
  83066. the check is skipped (always says "not device") if the volume ID bit
  83067. of the file attribute field is set on entry
  83068. SeeAlso: INT 21/AX=5D06h,INT 21/AX=5D0Bh
  83069. --------D-2F1224-----------------------------
  83070. INT 2F U - DOS 3.0+ internal - SHARING RETRY DELAY
  83071. AX = 1224h
  83072. SS = DOS DS (must be using a DOS internal stack)
  83073. Return: after delay set by INT 21/AX=440Bh, unless in server call
  83074. (INT 21/AX=5D00h)
  83075. Note: delay is dependent on the processor speed, and is skipped entirely if
  83076. inside a server call
  83077. SeeAlso: INT 21/AX=440Bh,INT 21/AH=52h,INT 62/AX=0097h
  83078. --------D-2F1225-----------------------------
  83079. INT 2F U - DOS 3.0+ internal - GET LENGTH OF ASCIZ STRING
  83080. AX = 1225h
  83081. DS:SI -> ASCIZ string
  83082. Return: CX = length of string
  83083. Note: supported by DR DOS 5.0+
  83084. SeeAlso: AX=1212h
  83085. --------D-2F1226-----------------------------
  83086. INT 2F U - DOS 3.3+ internal - OPEN FILE
  83087. AX = 1226h
  83088. CL = access mode
  83089. DS:DX -> ASCIZ filename
  83090. SS = DOS DS (must be using a DOS internal stack)
  83091. Return: CF set on error
  83092. AL = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  83093. CF clear if successful
  83094. AX = file handle
  83095. Notes: can only be called from within DOS
  83096. equivalent to INT 21/AH=3Dh
  83097. used by NLSFUNC to access COUNTRY.SYS when invoked by the DOS kernel
  83098. SeeAlso: AX=1227h,INT 21/AH=3Dh
  83099. --------D-2F1227-----------------------------
  83100. INT 2F U - DOS 3.3+ internal - CLOSE FILE
  83101. AX = 1227h
  83102. BX = file handle
  83103. SS = DOS DS (must be using a DOS internal stack)
  83104. Return: CF set on error
  83105. AL = 06h invalid file handle
  83106. CF clear if successful
  83107. Notes: can only be called from within DOS
  83108. equivalent to INT 21/AH=3Eh
  83109. used by NLSFUNC to access COUNTRY.SYS when invoked by the DOS kernel
  83110. SeeAlso: AX=1106h,AX=1201h,AX=1226h,INT 21/AH=3Eh
  83111. --------D-2F1228BP4200-----------------------
  83112. INT 2F U - DOS 3.3+ internal - MOVE FILE POINTER
  83113. AX = 1228h
  83114. BP = 4200h, 4201h, 4202h (see INT 21/AH=42h)
  83115. BX = file handle
  83116. CX:DX = offset in bytes
  83117. SS = DOS DS (must be using a DOS internal stack)
  83118. Return: as for INT 21/AH=42h
  83119. Notes: equivalent to INT 21/AH=42h, but may only be called from inside a DOS
  83120. function call
  83121. sets user stack frame pointer to dummy buffer, moves BP to AX, performs
  83122. LSEEK, and restores frame pointer
  83123. used by NLSFUNC to access COUNTRY.SYS when invoked by the DOS kernel
  83124. SeeAlso: INT 21/AH=42h
  83125. --------D-2F1229-----------------------------
  83126. INT 2F U - DOS 3.3+ internal - READ FROM FILE
  83127. AX = 1229h
  83128. BX = file handle
  83129. CX = number of bytes to read
  83130. DS:DX -> buffer
  83131. SS = DOS DS (must be using a DOS internal stack)
  83132. Return: as for INT 21/AH=3Fh"DOS"
  83133. Notes: equivalent to INT 21/AH=3Fh, but may only be called when already inside
  83134. a DOS function call
  83135. used by NLSFUNC to access COUNTRY.SYS when invoked by the DOS kernel
  83136. SeeAlso: AX=1226h,INT 21/AH=3Fh"DOS"
  83137. --------D-2F122A-----------------------------
  83138. INT 2F U - DOS 3.3+ internal - SET FASTOPEN ENTRY POINT
  83139. AX = 122Ah
  83140. BX = entry point to set (0001h or 0002h)
  83141. DS:SI -> FASTOPEN entry point (see #02611,#02612)
  83142. (entry point not set if SI = FFFFh for DOS 4.0+)
  83143. Return: CF set if specified entry point already set
  83144. Notes: entry point in BX is ignored under DOS 3.30
  83145. both entry points set to same handler by DOS 4.01
  83146. DOS 5.0 and 6.0 only set entry point 1
  83147. (Table 02611)
  83148. Values DOS 3.30+ FASTOPEN entry point is called with:
  83149. AL = 01h Lookup
  83150. CX = ??? seems to be offset
  83151. DI = ??? seems to be offset
  83152. SI = offset in DOS DS of filename
  83153. AL = 02h insert file into FASTOPEN cache
  83154. AL = 03h delete file from FASTOPEN cache
  83155. SI = offset in DOS DS of filename
  83156. AL = 04h purge FASTOPEN cache
  83157. AH = subfunction (00h,01h,02h)
  83158. ES:DI -> ???
  83159. CX = ??? (subfunctions 01h and 02h only)
  83160. Returns: CF set on error or not installed
  83161. Note: function 03h calls function 01h first
  83162. SeeAlso: #02612,#02613
  83163. (Table 02612)
  83164. Values PC-DOS 4.01 FASTOPEN is additionally called with:
  83165. AL = 04h ???
  83166. AH = 03h
  83167. ???
  83168. AL = 05h ???
  83169. AL = 0Bh ???
  83170. AL = 0Ch ???
  83171. AL = 0Dh ???
  83172. AL = 0Eh ???
  83173. AL = 0Fh ???
  83174. AL = 10h ???
  83175. SeeAlso: #02611,#02613
  83176. (Table 02613)
  83177. Values MS-DOS 5.0-6.0 FASTOPEN is additionally called with:
  83178. AL = 04h purge FASTOPEN cache
  83179. AH = 03h
  83180. ???
  83181. AL = 05h ???
  83182. DL = drive (00h = A:)
  83183. ???
  83184. AL = 06h ???
  83185. ???
  83186. SeeAlso: #02611,#02612
  83187. --------D-2F122B-----------------------------
  83188. INT 2F U - DOS 3.3+ internal - IOCTL
  83189. AX = 122Bh
  83190. BP = 44xxh
  83191. SS = DOS DS (must be using a DOS internal stack)
  83192. additional registers as appropriate for INT 21/AX=44xxh
  83193. Return: as for INT 21/AH=44h
  83194. Notes: equivalent to INT 21/AH=44h, but may only be called when already inside
  83195. a DOS function call
  83196. sets user stack frame pointer to dummy buffer, moves BP to AX, performs
  83197. IOCTL, and restores frame pointer
  83198. used by NLSFUNC in accessing COUNTRY.SYS when invoked by the DOS kernel
  83199. SeeAlso: INT 21/AH=44h
  83200. --------D-2F122C-----------------------------
  83201. INT 2F U - DOS 3.3+ internal - GET DEVICE CHAIN
  83202. AX = 122Ch
  83203. Return: BX:AX -> header of second device driver (NUL is first) in driver chain
  83204. Note: although this function exists in DR DOS 5.0 and Novell DOS 7, it
  83205. always returns 0000h:0000h prior to Novell DOS 7 Update 15
  83206. SeeAlso: INT 21/AH=52h
  83207. --------D-2F122D-----------------------------
  83208. INT 2F U - DOS 3.3+ internal - GET EXTENDED ERROR CODE
  83209. AX = 122Dh
  83210. SS = DOS DS
  83211. Return: AX = current extended error code
  83212. SeeAlso: AX=1222h,INT 21/AH=59h/BX=0000h
  83213. --------D-2F122E-----------------------------
  83214. INT 2F U - DOS 4.0+ internal - GET OR SET ERROR TABLE ADDRESSES
  83215. AX = 122Eh
  83216. DL = subfunction
  83217. 00h get standard DOS error table (see #02614)
  83218. Return: ES:DI -> error table
  83219. (DOS 4: errors 00h-12h,50h-5Bh)
  83220. (DOS 5: errors 00h-26h,4Fh,51h-59h)
  83221. 01h set standard DOS error table
  83222. ES:DI -> error table
  83223. 02h get parameter error table (errors 00h-0Ah)
  83224. Return: ES:DI -> error table
  83225. 03h set parameter error table
  83226. ES:DI -> error table
  83227. 04h get critical/SHARE error table (errors 13h-2Bh)
  83228. Return: ES:DI -> error table
  83229. 05h set critical/SHARE error table
  83230. ES:DI -> error table
  83231. 06h get ??? error table
  83232. Return: ES:DI -> error table or 0000h:0000h
  83233. 07h set ??? error table
  83234. ES:DI -> error table
  83235. 08h get error message retriever (see #02615)
  83236. Return: ES:DI -> FAR procedure to fetch error message
  83237. 09h set ??? error table
  83238. ES:DI -> error table
  83239. Notes: if the returned segment on a "get" is 0001h, then the offset specifies
  83240. the offset of the error message table within COMMAND.COM, and the
  83241. procedure returned by DL=08h should be called
  83242. DOS 5+ COMMAND.COM does not allow setting any of the addresses (calls
  83243. with DL odd are ignored); they are always returned with segment 0001h
  83244. for DOS 5.0, the standard and critical/SHARE error tables are combined
  83245. into a single error table
  83246. SeeAlso: AX=0500h,INT 21/AH=59h/BX=0000h
  83247. Format of DOS 4.x error table:
  83248. Offset Size Description (Table 02614)
  83249. 00h BYTE FFh
  83250. 01h 2 BYTEs 04h,00h (DOS version???)
  83251. 03h BYTE number of error headers following
  83252. 04h 2N WORDs table of all error headers for table
  83253. Offset Size Description
  83254. 00h WORD error message number
  83255. 02h WORD offset of error message from start of header
  83256. error messages are count byte followed by msg
  83257. Note: DOS 5 error tables consist of one word per error number; each word
  83258. contains either the offset of a counted string or 0000h
  83259. (Table 02615)
  83260. Call error retrieval function with:
  83261. AX = error number (see #02616)
  83262. DI = offset of error table
  83263. Return: ES:DI -> error message (counted string)
  83264. Notes: this function needs to access COMMAND.COM if the messages were not
  83265. loaded into memory permanently with /MSG; the caller should assume
  83266. that the returned message will be overwritten by the next call of
  83267. the function
  83268. supported by DR DOS 5.0
  83269. (Table 02616)
  83270. Values for parameter errors:
  83271. 01h Too many parameters
  83272. 02h Required Parameter missing
  83273. 03h Invalid switch
  83274. 04h Invalid keyword
  83275. 06h Parameter value not in allowed range
  83276. 07h Parameter value not allowed
  83277. 08h Parameter value not allowed
  83278. 09h Parameter format not correct
  83279. 0Ah Invalid parameter
  83280. 0Bh Invalid parameter combination
  83281. --------D-2F122F-----------------------------
  83282. INT 2F U - DOS 4.x internal - SET DOS VERSION NUMBER TO RETURN
  83283. AX = 122Fh
  83284. DX = DOS version number (0000h = return true DOS version)
  83285. Notes: not available under DR DOS 5.0 or 6.0, or Novell DOS 7
  83286. supported by FREEVER.COM, a freeware DOS version faking TSR by Matthias
  83287. Paul
  83288. SeeAlso: INT 21/AH=30h,INT 21/AX=3306h,INT 2F/AX=E000h"SETDRVER"
  83289. ----------2F1230-----------------------------
  83290. INT 2F U - Windows95 - FIND SFT ENTRY IN INTERNAL FILE TABLES
  83291. AX = 1230h
  83292. ES:DI -> SFT entry
  83293. Return: CF clear if SFT found in internal table
  83294. CF set if SFT not in any internal file table
  83295. AX = 0000h
  83296. SI:CX = 32-bit starting cluster number for directory
  83297. DX = directory entry number
  83298. BX = index into new file system table
  83299. Note: the new file system table from which the return values are taken is
  83300. reported to be statically allocated with 20 entries, and used only
  83301. for FCB calls
  83302. BUG: Win95-OSR2 is reported to have a bug that can potentially corrupt
  83303. memory if SFT tables are "arranged poorly"
  83304. SeeAlso: AX=1231h,AX=1200h
  83305. ----------2F1231-----------------------------
  83306. INT 2F U - Windows95 - SET/CLEAR "REPORT WINDOWS TO DOS PROGRAMS" FLAG
  83307. AX = 1231h
  83308. DL = function
  83309. 00h set byte after "IsWIN386" to 01h
  83310. 01h set "IsWIN386" bit 1
  83311. 02h clear "IsWIN386" bit 1
  83312. else
  83313. Return: CF set
  83314. AX = 0001h
  83315. Return: CF clear
  83316. AX = 0000h
  83317. BUG: Windows98 will crash the system if DL>02h on entry due to an off-by-1
  83318. conditional jump; if the jump were correct, the function would return
  83319. CF set/AX=0001h as for Windows95
  83320. SeeAlso: AX=1230h,AX=1200h
  83321. --------O-2F12FFBL00-------------------------
  83322. INT 2F - FreeDOS - FDAK-DDT - INSTALLATION CHECK / STATUS CHECK
  83323. AX = 12FFh
  83324. BL = 00h
  83325. Return: AL = DDh if installed
  83326. BH = state (00h disabled, nonzero enabled)
  83327. BL = readonly flag (00h writable, nonzero read-only)
  83328. Program: FDAK-DDT is the FreeDOS Alternative Kernel Device Drivers Testing
  83329. release by Yury A. Semenov
  83330. SeeAlso: AX=12FFh/BL=07h
  83331. --------O-2F12FFBL01-------------------------
  83332. INT 2F - FreeDOS - FDAK-DDT - ENABLE FDAK DRIVERS
  83333. AX = 12FFh
  83334. BL = 01h
  83335. SeeAlso: AX=12FFh/BL=00h,AX=12FFh/BL=02h
  83336. --------O-2F12FFBL02-------------------------
  83337. INT 2F - FreeDOS - FDAK-DDT - DISABLE FDAK DRIVERS
  83338. AX = 12FFh
  83339. BL = 02h
  83340. SeeAlso: AX=12FFh/BL=00h,AX=12FFh/BL=01h
  83341. --------O-2F12FFBL03-------------------------
  83342. INT 2F - FreeDOS - FDAK-DDT - SWITCH BLOCK DEVICE TO READ-ONLY
  83343. AX = 12FFh
  83344. BL = 03h
  83345. ???
  83346. SeeAlso: AX=12FFh/BL=00h,AX=12FFh/BL=04h
  83347. --------O-2F12FFBL04-------------------------
  83348. INT 2F - FreeDOS - FDAK-DDT - SWITCH BLOCK DEVICE TO READ-WRITE
  83349. AX = 12FFh
  83350. BL = 04h
  83351. ???
  83352. SeeAlso: AX=12FFh/BL=00h,AX=12FFh/BL=03h
  83353. --------O-2F12FFBL05-------------------------
  83354. INT 2F - FreeDOS - FDAK-DDT - TURN ACTIVITY INDICATOR ON
  83355. AX = 12FFh
  83356. BL = 05h
  83357. Note: not yet implemented as of January 1996
  83358. SeeAlso: AX=12FFh/BL=00h,AX=12FFh/BL=06h
  83359. --------O-2F12FFBL06-------------------------
  83360. INT 2F - FreeDOS - FDAK-DDT - TURN ACTIVITY INDICATOR OFF
  83361. AX = 12FFh
  83362. BL = 06h
  83363. Note: not yet implemented as of January 1996
  83364. SeeAlso: AX=12FFh/BL=00h,AX=12FFh/BL=05h
  83365. --------O-2F12FFBL07-------------------------
  83366. INT 2F - FreeDOS - FDAK-DDT - UNINSTALL
  83367. AX = 12FFh
  83368. BL = 07h
  83369. Return: ES = segment of FDAK memory block
  83370. Note: the caller must free the memory block returned in ES
  83371. (via INT 21/AH=49h)
  83372. SeeAlso: AX=12FFh/BL=00h
  83373. --------O-2F12FFBX0005-----------------------
  83374. INT 2F U - Novell DOS 7 - GET/SET/QUERY MEMORY STATE???
  83375. AX = 12FFh
  83376. BX = 0005h
  83377. CX = 0000h
  83378. DX = function
  83379. 0000h ???
  83380. 0001h ???
  83381. Note: called at three separate points inside IBMBIO.COM
  83382. --------m-2F12FFBX0006-----------------------
  83383. INT 2F U - DR DOS 6, Novell DOS 7 - EMM386.EXE - VIDEO MEMORY SPACE CONTROL
  83384. AX = 12FFh
  83385. BX = 0006h
  83386. DX = 0000h
  83387. CX = function
  83388. 0000h get status of video memory space (MEMMAX /V)
  83389. 0001h map memory into video memory space (MEMMAX +V)
  83390. 0002h unmap memory from video memory space (MEMMAX -V)
  83391. Return: CF clear if successful
  83392. AX = 0000h (successful)
  83393. BX = segment of reserved video RAM
  83394. CX = segment of used video RAM
  83395. DX = segment of first upper MCB
  83396. Notes: this functionality is provided by EMM386, and partially supported by
  83397. HIDOS.SYS
  83398. BL specifies which program handles the call, BH is the function number
  83399. BUG: 4DOS 5.51(a) often hangs the system (reported to be reproducable), if
  83400. MEMMAX +V is issued from the 4DOS prompt. To avoid this, one should
  83401. temporary load COMMAND.COM followed by MEMMAX +v , starting the
  83402. application, MEMMAX -v and EXIT. 4DOS 5.5c does not show this
  83403. phenomena on the same systems where 5.51a hangs.
  83404. SeeAlso: AX=D201h/BX=4849h
  83405. --------O-2F12FFBX0000-----------------------
  83406. INT 2F U - Novell DOS 7 - GET ???
  83407. AX = 12FFh
  83408. BX = 0000h
  83409. Return: AX = 0000h if supported
  83410. DX = ??? (internal data)
  83411. SeeAlso: AX=12FFh/BX=0001h
  83412. --------O-2F12FFBX0001-----------------------
  83413. INT 2F U - Novell DOS 7 - SET ???
  83414. AX = 12FFh
  83415. BX = 0001h
  83416. DX = new value for ???
  83417. Return: AX = 0000h if supported
  83418. SeeAlso: AX=12FFh/BX=0000h
  83419. --------O-2F12FFBX0002-----------------------
  83420. INT 2F U - Novell DOS 7 - GET ??? SIZE
  83421. AX = 12FFh
  83422. BX = 0002h
  83423. Return: AX = 0000h if supported
  83424. DX = size of/required-for ??? in paragraphs
  83425. SeeAlso: AX=12FFh/BX=0003h
  83426. --------O-2F12FFBX0003-----------------------
  83427. INT 2F U - Novell DOS 7 - SET ???
  83428. AX = 12FFh
  83429. BX = 0003h
  83430. DX = new value for ???
  83431. Return: AX = 0000h if supported
  83432. SeeAlso: AX=12FFh/BX=0002h
  83433. --------O-2F12FFBX0007-----------------------
  83434. INT 2F U - Novell DOS 7 - SCRIPT.EXE - GET ???
  83435. AX = 12FFh
  83436. BX = 0007h
  83437. CX = 0000h
  83438. Return: CF clear if installed
  83439. AX = 0000h
  83440. BX = ??? (4426h)
  83441. CX = ??? (0068h)
  83442. DX = PSP segment of resident code???
  83443. SI = ??? (4AFAh)
  83444. ES = resident code segment
  83445. --------O-2F12FFBX0009-----------------------
  83446. INT 2F U - Novell DOS 7 - SET ???
  83447. AX = 12FFh
  83448. BX = 0009h
  83449. DX = new value for ???
  83450. Return: ???
  83451. Note: the DX value is stored at offset 66h in SYSVARS and offset 18h in
  83452. the Novell DOS 7 internal variable table
  83453. --------m-2F12FFBX0106-----------------------
  83454. INT 2F U - Novell DOS 7 - EMM386.EXE - GET VERSION???
  83455. AX = 12FFh
  83456. BX = 0106h
  83457. Return: CF clear if successful
  83458. AX = 0000h (successful)
  83459. BX = EDC0h (signature)
  83460. CL = memory manager variant (02h,03h)
  83461. (02h when DPMI/VCPI disabled, 03h when DPMI/VCPI loaded)
  83462. CH = ??? (00h)
  83463. DX = version??? (0300h for v3.0)
  83464. ES = segment of EMM386 low-memory stub
  83465. Notes: BL specifies which program handles the call, BH is the function number
  83466. if the word at ES:0012h is nonzero, if contains the offset within
  83467. segment ES of the CEMM-compatible entry point (see #02617)
  83468. if no other program has hooked INT 67, an alternate installation
  83469. check is to test for the string
  83470. "NOVELL EXPANDED MEMORY MANAGER 386" at offset 14h in the INT 67
  83471. handler's segment; the word immediately preceding this string
  83472. contains the offset of the API entry point if it is nonzero
  83473. Index: entry point;Novell EMM386
  83474. (Table 02617)
  83475. Call Novell EMM386.EXE entry point with:
  83476. AH = 00h get memory manager's status???
  83477. ???
  83478. AH = 01h set memory manager's status???
  83479. ???
  83480. AH = 02h Weitek coprocessor support???
  83481. AL = subfunction???
  83482. more functions???
  83483. SeeAlso: #01513 at INT 21/AX=4402h/SF=02h,#03666 at INT 67/AX=FFA5h
  83484. --------m-2F12FFBL06-------------------------
  83485. INT 2F U - Novell DOS 7 - EMM386.EXE - ???
  83486. AX = 12FFh
  83487. BL = 06h
  83488. BH = function (02h-09h)
  83489. ???
  83490. Return: ???
  83491. --------O-2F12FFBX0EDC-----------------------
  83492. INT 2F U - Novell DOS 7 - EMM386.EXE - CHECK IF MULTITASKING SUPPORT LOADED???
  83493. AX = 12FFh
  83494. BX = 0EDCh ('EDC' = Novell European Development Center)
  83495. Return: AX = 0000h if ??? loaded
  83496. CF clear
  83497. BX = 0000h
  83498. Notes: called by Novell DOS 7 TaskMgr
  83499. if this function returns with AX=0000h, then the code necessary to
  83500. support the API on INT 2F/AX=2780h is loaded and that API becomes
  83501. available for use
  83502. because the request is handled on the initial trap to the memory
  83503. manager caused by INT instructions, this function must be invoked
  83504. with an actual INT 2F instruction instead of some simulation such
  83505. as a far call to the address in the interrupt vector table
  83506. SeeAlso: AX=2780h/CL=01h,AX=2780h/CL=02h,AX=2780h/CL=03h,AX=2780h/CL=04h
  83507. --------D-2F13-------------------------------
  83508. INT 2F U - DOS 3.2+ - SET DISK INTERRUPT HANDLER
  83509. AH = 13h
  83510. DS:DX -> interrupt handler disk driver calls on read/write
  83511. ES:BX = address to restore INT 13 to on system halt (exit from root
  83512. shell) or warm boot (INT 19)
  83513. Return: DS:DX set by previous invocation of this function
  83514. ES:BX set by previous invocation of this function
  83515. Notes: IO.SYS hooks INT 13 and inserts one or more filters ahead of the
  83516. original INT 13 handler. The first is for disk change detection
  83517. on floppy drives, the second is for tracking formatting calls and
  83518. correcting DMA boundary errors, the third is for working around
  83519. problems in a particular version of IBM's ROM BIOS
  83520. before the first call, ES:BX points at the original BIOS INT 13; DS:DX
  83521. also points there unless IO.SYS has installed a special filter for
  83522. hard disk reads (on systems with model byte FCh and BIOS date
  83523. "01/10/84" only), in which case it points at the special filter
  83524. most DOS 3.2+ disk access is via the vector in DS:DX, although a few
  83525. functions are still invoked via an INT 13 instruction
  83526. this is a dangerous security loophole for any virus-monitoring software
  83527. which does not trap this call ("INT13", "Nomenklatura", and many
  83528. Bulgarian viruses are known to use it to get the original ROM entry
  83529. point)
  83530. SeeAlso: INT 13/AH=01h,INT 19,INT 9D"VIRUS"
  83531. --------N-2F13-------------------------------
  83532. INT 2F U - MS-NET - ???
  83533. AH = 13h
  83534. ???
  83535. Return: ???
  83536. Note: supposedly used to move (or control the movement of) NCBs
  83537. --------U-2F1400-----------------------------
  83538. INT 2F C - NLSFUNC.COM - INSTALLATION CHECK
  83539. AX = 1400h
  83540. Return: AL = 00h not installed, OK to install
  83541. 01h not installed, not OK
  83542. FFh installed
  83543. Notes: this function is called by the DOS v3.3+ kernel
  83544. supported by OS/2 v1.3+ compatibility box, which always returns AL=FFh
  83545. supported by DR DOS 5.0
  83546. documented for MS-DOS 5+, but undocumented in prior versions
  83547. SeeAlso: AX=1401h"NLSFUNC",AX=1402h"NLSFUNC"
  83548. --------D-2F1400-----------------------------
  83549. INT 2F - European MS-DOS 4.0 POPUP - "CheckPu" - INSTALLATION CHECK
  83550. AX = 1400h
  83551. Return: AX = FFFFh if installed
  83552. BX = maximum memory required to save screen and keyboard info
  83553. CF clear if successful
  83554. CF set on error
  83555. AX = error code
  83556. 0002h invalid function
  83557. 0004h unknown error
  83558. Note: the POPUP interface is used by background programs (see INT 21/AH=80h)
  83559. to communicate with the user
  83560. SeeAlso: AX=1401h"POPUP",AX=1402h"POPUP",AX=1403h"POPUP"
  83561. --------U-2F1401-----------------------------
  83562. INT 2F CU - NLSFUNC.COM - CHANGE CODE PAGE
  83563. AX = 1401h
  83564. DS:SI -> internal code page structure (see #02618)
  83565. BX = new code page (see #01757 at INT 21/AX=6602h)
  83566. DX = country code???
  83567. Return: AL = status
  83568. 00h successful
  83569. else DOS error code
  83570. Note: this function is called by the DOS v3.3+ kernel
  83571. SeeAlso: AX=1400h"NLSFUNC",AX=1402h"NLSFUNC",INT 21/AH=66h
  83572. Format of DOS 3.30 internal code page structure:
  83573. Offset Size Description (Table 02618)
  83574. 00h 8 BYTEs ???
  83575. 08h 64 BYTEs name of country information file (see #02619)
  83576. 48h WORD system code page (see #01757 at INT 21/AX=6602h)
  83577. 4Ah WORD number of supported subfunctions
  83578. 4Ch 5 BYTEs data to return for INT 21/AX=6502h
  83579. 51h 5 BYTEs data to return for INT 21/AX=6504h
  83580. 56h 5 BYTEs data to return for INT 21/AX=6505h
  83581. 5Bh 5 BYTEs data to return for INT 21/AX=6506h
  83582. 60h 41 BYTEs data to return for INT 21/AX=6501h
  83583. Format of MS-DOS/PC-DOS/OS2/WinNT/PTS-DOS COUNTRY.SYS file:
  83584. Offset Size Description (Table 02619)
  83585. 00h BYTE ID tag (FFh)
  83586. 01h 7 BYTEs ASCII "COUNTRY"
  83587. 08h 8 BYTEs ??? (00h)
  83588. 10h BYTE ??? (01h)
  83589. 11h BYTE ??? (00h)
  83590. 12h BYTE ??? (01h)
  83591. 13h DWORD offset of first entry in file (see #02620)
  83592. SeeAlso: #02623
  83593. Format of MS-DOS/PC-DOS/OS2/WinNT/PTS-DOS COUNTRY.SYS entry:
  83594. Offset Size Description (Table 02620)
  83595. 00h WORD number of country-codepage entries following
  83596. 02h N Country-Codepage entries:
  83597. Offset Size Description
  83598. 00h WORD length of entry, not counting this word (000Ch)
  83599. 02h WORD country ID
  83600. 04h WORD codepage ID
  83601. 06h WORD ??? (0000h)
  83602. 08h WORD ??? (0000h)
  83603. 0Ah DWORD offset of country-subfunction-header in file
  83604. (see #02621)
  83605. Notes: multiple codepages for a country are stored consecutively
  83606. PTS/DOS places a copyright string immediately following this structure,
  83607. though a copyright at the end of the file is preferable
  83608. SeeAlso: #02619
  83609. Format of MS-DOS/PC-DOS/OS2/WinNT/PTS-DOS COUNTRY.SYS country-subfunc header:
  83610. Offset Size Description (Table 02621)
  83611. 00h WORD number of subfunction entries following
  83612. 02h N subfunction entries
  83613. Offset Size Description
  83614. 00h WORD length of subfunction entry, not counting this
  83615. word (usually 06h)
  83616. 02h WORD subfunction ID
  83617. (value passed to INT 21/AH=65h in AL)
  83618. 04h DWORD offset within file of subfunction data entry
  83619. (see #02622)
  83620. SeeAlso: #02620
  83621. Format of MS-DOS/PC-DOS/OS2/WinNT/PTS-DOS COUNTRY.SYS country-subfunc data::
  83622. Offset Size Description (Table 02622)
  83623. 00h BYTE ID-tag (FFh)
  83624. 01h 7 BYTEs table-type signature (blank-padded)
  83625. "CTYINFO" general country info (subfn 01h)
  83626. "UCASE " uppercase table (subfn 02h)
  83627. "LCASE " lowercase table (subfn 03h) (DOS 6.2_)
  83628. "FUCASE " filename uppercase table (subfn 04h)
  83629. "FCHAR " filename terminator table (subfn 05h)
  83630. "COLLATE" collating sequence (subfn 06h)
  83631. "DBCS " double-byte character table (subfn 07h)
  83632. 08h WORD length of following table in bytes
  83633. (if 0000h for DBCS table, there will still be a word of 0000h)
  83634. ---country info (01h)---
  83635. 0Ah WORD country ID (see #01400 at AH=38h)
  83636. 0Ch WORD code page (see #01757)
  83637. 0Eh 34 BYTEs country-dependent info (see #01399 at AH=38h)
  83638. ---uppercase table (02h)---
  83639. 0Ah 128 BYTEs uppercase equivalents (if any) of chars 80h to FFh
  83640. ---lowercase table (03h)---
  83641. 0Ah 256 BYTEs lowercase equivalents (if any) of chars 00h to FFh
  83642. ---filename uppercase table (04h)---
  83643. 0Ah 128 BYTEs uppercase equivalents (if any) of chars 80h to FFh
  83644. ---filename terminator table (05h)---
  83645. 0Ah BYTE ??? (01h for MS-DOS 3.30-6.00)
  83646. 0Bh BYTE lowest permissible character value for filename
  83647. 0Ch BYTE highest permissible character value for filename
  83648. 0Dh BYTE ??? (00h for MS-DOS 3.30-6.00)
  83649. 0Eh BYTE first excluded character in range \ all characters in this
  83650. 0Fh BYTE last excluded character in range / range are illegal
  83651. 10h BYTE ??? (02h for MS-DOS 3.30-6.00)
  83652. 11h BYTE number of illegal (terminator) characters
  83653. 12h N BYTEs characters which terminate a filename: ."/\[]:|<>+=;,
  83654. ---collating sequence (06h)---
  83655. 0Ah 256 BYTEs values used to sort characters 00h to FFh
  83656. ---DBCS table (07h)---
  83657. 0Ah 2N BYTEs start/end for N lead byte ranges
  83658. WORD 0000h (end of table)
  83659. SeeAlso: #02621,#01750,#01751,#01753,#01754,#01755,#01756
  83660. Format of DR DOS/Novell DOS/OpenDOS COUNTRY.SYS file:
  83661. Offset Size Description (Table 02623)
  83662. 00h 126 BYTEs copyright notice (terminated with Ctrl-Z; NUL-padded)
  83663. the copyright notice starts with the signature
  83664. "COUNTRY.SYS Rx.xx" where "x.xx" indicates the file format
  83665. revision, which is checked by the OS (revision is 2.00 for
  83666. DR DOS 3.41 and 2.01 for all newer versions of DR DOS,
  83667. Novell DOS, and OpenDOS)
  83668. 7Eh WORD signature of file format revision
  83669. 0EDCh = 2.00 (DR DOS 3.41)
  83670. EDC1h = 2.01 (all newer versions)
  83671. 80h var country pointer records (see #02624)
  83672. (packed array of variable-size records)
  83673. SeeAlso: #02619
  83674. Format of DR DOS/Novell DOS/OpenDOS COUNTRY.SYS country pointer record::
  83675. Offset Size Description (Table 02624)
  83676. 00h WORD country code (0000h if end of array)
  83677. 02h WORD code page (see #01757)
  83678. 04h WORD ??? (0000h)
  83679. 06h 7 WORDs offsets in file for INT 21/AH=65h subfunctions 01h to 07h, or
  83680. 0000h if no table for that subfunction
  83681. 14h var country information
  83682. Notes: the end-of-file marker is a country pointer record filled entirely with
  83683. zeros
  83684. the data at which the pointers point is in the same format as the
  83685. tables returned by INT 21/AH=65h, except that the general-info
  83686. table for subfunction 01h does not contain the length word at the
  83687. beginning
  83688. SeeAlso: #02623
  83689. --------D-2F1401-----------------------------
  83690. INT 2F - European MS-DOS 4.0 POPUP - "PostPu" - OPEN/CLOSE POPUP SCREEN
  83691. AX = 1401h
  83692. DL = function (00h open, 01h close)
  83693. DH = wait flag
  83694. 00h block until screen opens
  83695. 01h return error if screen is not available
  83696. 02h urgent--always open screen immediately
  83697. Return: CF clear if successful
  83698. BX = amount of memory needed to save screen and keyboard info,
  83699. 0000h if default save location can be used (only if DH was 02h)
  83700. CF set on error
  83701. Note: the application using the screen is frozen until the popup screen is
  83702. closed
  83703. SeeAlso: AX=1400h"POPUP",AX=1402h"POPUP",AX=1403h"POPUP"
  83704. --------U-2F1402-----------------------------
  83705. INT 2F CU - NLSFUNC.COM - GET EXTENDED COUNTRY INFO
  83706. AX = 1402h
  83707. BP = subfunction (same as AL for INT 21/AH=65h)
  83708. BX = code page (see #01757 at INT 21/AX=6602h)
  83709. DX = country code (see #01400 at INT 21/AH=38h)
  83710. DS:SI -> internal code page structure (see #02618)
  83711. ES:DI -> user buffer
  83712. CX = size of user buffer
  83713. Return: AL = status
  83714. 00h successful
  83715. else DOS error code
  83716. Notes: this function is called by the DOS v3.3+ kernel on INT 21/AH=65h
  83717. code page structure apparently only needed for COUNTRY.SYS pathname
  83718. SeeAlso: AX=1401h"NLSFUNC",AX=1403h"NLSFUNC",AX=1404h,INT 21/AH=65h
  83719. --------D-2F1402-----------------------------
  83720. INT 2F - European MS-DOS 4.0 POPUP - "SavePu" - SAVE POPUP SCREEN
  83721. AX = 1402h
  83722. ES:DI -> save buffer (0000h:0000h for default buffer in POPUP)
  83723. Return: CF clear if successful
  83724. CF set on error
  83725. AX = error code (see #02625)
  83726. SeeAlso: AX=1400h"POPUP",AX=1401h"POPUP",AX=1403h"POPUP"
  83727. (Table 02625)
  83728. Values for POPUP error code:
  83729. 0001h process does not own screen
  83730. 0004h unknown error
  83731. 0005h invalid pointer
  83732. --------U-2F1403-----------------------------
  83733. INT 2F CU - NLSFUNC.COM - SET CODE PAGE
  83734. AX = 1403h
  83735. DS:SI -> internal code page structure (see #02618)
  83736. BX = code page (see #01757 at INT 21/AX=6602h)
  83737. DX = country code (see #01400 at INT 21/AH=38h)
  83738. Return: AL = status
  83739. ???
  83740. Note: this function is called by the DOS v3.3+ kernel on INT 21/AH=38h
  83741. SeeAlso: AX=1402h"NLSFUNC",AX=1404h,INT 21/AH=38h"SET"
  83742. --------D-2F1403-----------------------------
  83743. INT 2F - European MS-DOS 4.0 POPUP - "RestorePu" - RESTORE SCREEN
  83744. AX = 1403h
  83745. ES:DI -> buffer containing saved screen
  83746. (0000h:0000h for default buffer in POPUP)
  83747. Return: CF clear if successful
  83748. CF set on error
  83749. AX = error code (see #02625)
  83750. SeeAlso: AX=1400h"POPUP",AX=1401h"POPUP",AX=1402h"POPUP"
  83751. --------U-2F1404-----------------------------
  83752. INT 2F CU - NLSFUNC.COM - GET COUNTRY INFO
  83753. AX = 1404h
  83754. BX = code page (see #01757 at INT 21/AX=6602h)
  83755. DX = country code (see #01400 at INT 21/AH=38h)
  83756. DS:SI -> internal code page structure (see #02618)
  83757. ES:DI -> user buffer
  83758. Return: AL = status
  83759. ???
  83760. Notes: this function is called by the DOS v3.3+ kernel on INT 21/AH=38h
  83761. code page structure apparently only needed for COUNTRY.SYS pathname
  83762. SeeAlso: AX=1402h,AX=1403h,INT 21/AH=38h"GET"
  83763. --------U-2F14FE-----------------------------
  83764. INT 2F U - DR DOS 5.0 NLSFUNC - GET EXTENDED COUNTRY INFORMATION
  83765. AX = 14FEh
  83766. BX = code page (FFFFh=global code page) (see #01757 at INT 21/AX=6602h)
  83767. DX = country ID (FFFFh=current country) (see #01400 at INT 21/AH=38h)
  83768. ES:DI -> country information buffer
  83769. CL = info ID
  83770. 01h get general internationalization info
  83771. 02h get pointer to uppercase table
  83772. 04h get pointer to filename uppercase table
  83773. 05h get pointer to filename terminator table
  83774. 06h get pointer to collating sequence table
  83775. 07h get pointer to Double-Byte Character Set table
  83776. CF set (used to return error if not installed)
  83777. Return: CF clear if successful
  83778. DS:SI -> requested information
  83779. CF set on error
  83780. Notes: DR DOS 5.0 NLSFUNC returns CF set and AX=0001h if AL was not 00h, FEh,
  83781. or FFh on entry.
  83782. the DR DOS kernel calls this function on INT 21/AX=6501h
  83783. the value in CL is not range-checked by the DR DOS 5.0 NLSFUNC
  83784. SeeAlso: #02626,AX=14FFh,INT 21/AH=65h
  83785. Format of DR DOS COUNTRY.SYS file:
  83786. Offset Size Description (Table 02626)
  83787. 00h 126 BYTEs copyright notice (terminated with Ctrl-Z, padded with NULs)
  83788. 7Eh WORD signature EDC1h
  83789. 80h var country pointer records
  83790. Offset Size Description
  83791. 00h WORD country code (0000h if end of array)
  83792. 02h WORD code page (see #01757 at INT 21/AX=6602h)
  83793. 04h WORD ??? (0000h)
  83794. 06h 7 WORDs offsets in file for data tables for subfunctions
  83795. 01h-07h
  83796. var var country information
  83797. --------U-2F14FF-----------------------------
  83798. INT 2F U - DR DOS 5.0 NLSFUNC - PREPARE CODE PAGE
  83799. AX = 14FFh
  83800. BX = code page (see #01757 at INT 21/AX=6602h)
  83801. Return: AX = ???
  83802. ZF set if AX=0000h
  83803. Notes: DR DOS 5.0 NLSFUNC returns CF set and AX=0001h if AL was not 00h, FEh,
  83804. or FFh on entry.
  83805. passes codepage preparation request to each character device supporting
  83806. the generic IOCTL call
  83807. SeeAlso: AX=14FEh,INT 21/AX=440Ch,INT 21/AX=6602h
  83808. --------U-2F1500-----------------------------
  83809. INT 2F - DOS 4.00 GRAPHICS.COM - INSTALLATION CHECK
  83810. AX = 1500h
  83811. Return: AX = FFFFh
  83812. ES:DI -> ??? (graphics data?)
  83813. Note: this installation check conflicts with the CD-ROM Extensions
  83814. installation check; moved to AX=AC00h in later versions
  83815. SeeAlso: AX=AC00h
  83816. --------d-2F1500BX0000-----------------------
  83817. INT 2F - CD-ROM - INSTALLATION CHECK
  83818. AX = 1500h
  83819. BX = 0000h
  83820. Return: BX = number of CD-ROM drive letters used
  83821. CX = starting drive letter (0=A:)
  83822. AX = 15FFh (Novell DOS 7 NWCDEX only!)
  83823. Notes: this installation check DOES NOT follow the format used by other
  83824. software
  83825. this installation check conflicts with the DOS 4.00 GRAPHICS.COM
  83826. installation check
  83827. BUG: this function may return an incorrect starting drive letter when
  83828. INTERLNK is installed
  83829. SeeAlso: AX=150Ch,AX=15FFh,INT 2F/AX=D000h"Lotus"
  83830. --------c-2F1500CH90-------------------------
  83831. INT 2F U - CDBLITZ v2.11 - INSTALLATION CHECK
  83832. AX = 1500h
  83833. CH = 90h (function number)
  83834. BX = 1234h (magic value for CDBLITZ)
  83835. Return: CX = 1234h if installed
  83836. CF clear
  83837. DX = BCD version number (DH = major, DL = minor)
  83838. Program: CDBLITZ is a CD-ROM cache by Blitz 'n' Software, Inc.
  83839. SeeAlso: AX=1500h/CH=99h
  83840. --------c-2F1500CH91-------------------------
  83841. INT 2F U - CDBLITZ v2.11 - GET STATISTICS
  83842. AX = 1500h
  83843. CH = 91h (function number)
  83844. BX = 1234h (magic value for CDBLITZ)
  83845. Return: CF clear
  83846. ES:BX -> statistics record (see #02627)
  83847. SeeAlso: AX=1500h/CH=90h,AX=1500h/CH=97h
  83848. Format of CDBLITZ statistics record:
  83849. Offset Size Description (Table 02627)
  83850. 00h WORD cache mode (see also AX=1500h/CH=94h)
  83851. 0001h 'min', 0002h 'max'
  83852. 02h DWORD number of read calls???
  83853. 06h DWORD total number of sectors read
  83854. 0Ah DWORD unused??? (zero)
  83855. 0Eh DWORD number of cache hit sectors
  83856. 12h WORD cache size in KB
  83857. 14h WORD unused??? (zero)
  83858. 16h WORD cache state (0000h disabled, 0001h enabled)
  83859. --------c-2F1500CH92-------------------------
  83860. INT 2F U - CDBLITZ v2.11 - ENABLE CACHE
  83861. AX = 1500h
  83862. CH = 92h (function number)
  83863. BX = 1234h (magic value for CDBLITZ)
  83864. Return: CF clear
  83865. SeeAlso: AX=1500h/CH=90h,AX=1500h/CH=93h,AX=1500h/CH=94h
  83866. --------c-2F1500CH93-------------------------
  83867. INT 2F U - CDBLITZ v2.11 - DISABLE CACHE
  83868. AX = 1500h
  83869. CH = 93h (function number)
  83870. BX = 1234h (magic value for CDBLITZ)
  83871. Return: CF clear
  83872. SeeAlso: AX=1500h/CH=90h,AX=1500h/CH=92h,AX=1500h/CH=95h
  83873. --------c-2F1500CH94-------------------------
  83874. INT 2F U - CDBLITZ v2.11 - SET 'MAX' MODE (CACHE BOTH DIRECTORIES AND DATA)
  83875. AX = 1500h
  83876. CH = 94h (function number)
  83877. BX = 1234h (magic value for CDBLITZ)
  83878. Return: CF clear
  83879. SeeAlso: AX=1500h/CH=90h,AX=1500h/CH=92h,AX=1500h/CH=95h
  83880. --------c-2F1500CH95-------------------------
  83881. INT 2F U - CDBLITZ v2.11 - SET 'MIN' MODE (CACHE ONLY DIRECTORY ENTRIES)
  83882. AX = 1500h
  83883. CH = 95h (function number)
  83884. BX = 1234h (magic value for CDBLITZ)
  83885. Return: CF clear
  83886. SeeAlso: AX=1500h/CH=90h,AX=1500h/CH=94h
  83887. --------c-2F1500CH96-------------------------
  83888. INT 2F U - CDBLITZ v2.11 - FLUSH CACHE
  83889. AX = 1500h
  83890. CH = 96h (function number)
  83891. BX = 1234h (magic value for CDBLITZ)
  83892. Return: CF clear
  83893. Note: this function resets the counts for number of sectors read and number
  83894. of cache hits, but no other values in the statistics record
  83895. (see #02627)
  83896. SeeAlso: AX=1500h/CH=90h
  83897. --------c-2F1500CH97-------------------------
  83898. INT 2F U - CDBLITZ v2.11 - GET CACHE STATISTICS
  83899. AX = 1500h
  83900. CH = 97h (function number)
  83901. BX = 1234h (magic value for CDBLITZ)
  83902. Return: CF clear
  83903. AL = cache mode (01h 'min', 02h 'max') (see also AX=1500h/CH=94h)
  83904. AH = cache state (00h disabled, 01h enabled)
  83905. BX = cache size in KB
  83906. DX:CX = total number of reads
  83907. DI:SI = number of cache hits
  83908. SeeAlso: AX=1500h/CH=90h,AX=1500h/CH=91h
  83909. --------c-2F1500CH99-------------------------
  83910. INT 2F U - CDBLITZ v2.11 - UNINSTALL
  83911. AX = 1500h
  83912. CH = 99h (function number)
  83913. BX = 1234h (magic value for CDBLITZ)
  83914. Return: CF clear
  83915. ???
  83916. Program: CDBLITZ is a CD-ROM cache by Blitz 'n' Software, Inc.
  83917. SeeAlso: AX=1500h/CH=90h
  83918. --------d-2F1501-----------------------------
  83919. INT 2F - CD-ROM - GET DRIVE DEVICE LIST
  83920. AX = 1501h
  83921. ES:BX -> buffer to hold drive letter list (5 bytes per drive letter)
  83922. Return: buffer filled, for each drive letter
  83923. BYTE subunit number in driver
  83924. DWORD address of device driver header (see #01646)
  83925. Note: reportedly returns AX=0000h and an invalid address under Windows95;
  83926. other reports say it works fine
  83927. SeeAlso: AX=1510h
  83928. --------d-2F1502-----------------------------
  83929. INT 2F - CD-ROM - GET COPYRIGHT FILE NAME
  83930. AX = 1502h
  83931. ES:BX -> 38-byte buffer for name of copyright file
  83932. CX = drive number (0=A:)
  83933. Return: CF set if drive is not a CD-ROM drive
  83934. AX = 000Fh (invalid drive)
  83935. CF clear if successful
  83936. SeeAlso: AX=1503h
  83937. --------d-2F1503-----------------------------
  83938. INT 2F - CD-ROM - GET ABSTRACT FILE NAME
  83939. AX = 1503h
  83940. ES:BX -> 38-byte buffer for name of abstract file
  83941. CX = drive number (0=A:)
  83942. Return: CF set if drive is not a CD-ROM drive
  83943. AX = 000Fh (invalid drive)
  83944. CF clear if successful
  83945. SeeAlso: AX=1502h,AX=1504h
  83946. --------d-2F1504-----------------------------
  83947. INT 2F - CD-ROM - GET BIBLIOGRAPHIC DOC FILE NAME
  83948. AX = 1504h
  83949. ES:BX -> 38-byte buffer for name of bibliographic documentation file
  83950. CX = drive number (0=A:)
  83951. Return: CF set if drive is not a CD-ROM drive
  83952. AX = 000Fh (invalid drive)
  83953. CF clear if successful
  83954. SeeAlso: AX=1502h,AX=1503h
  83955. --------d-2F1505-----------------------------
  83956. INT 2F - CD-ROM - READ VTOC
  83957. AX = 1505h
  83958. ES:BX -> 2048-byte buffer
  83959. CX = drive number (0=A:)
  83960. DX = sector index (0=first volume descriptor,1=second,...)
  83961. Return: CF set on error
  83962. AX = error code (15=invalid drive,21=not ready)
  83963. CF clear if successful
  83964. AX = volume descriptor type (1=standard,FFh=terminator,0=other)
  83965. Note: This function was not supported by Novell DOS 7 NWCDEX prior to the
  83966. 08/16/94 update
  83967. --------d-2F1506-----------------------------
  83968. INT 2F - CD-ROM - TURN DEBUGGING ON
  83969. AX = 1506h
  83970. BX = debugging function to enable
  83971. Note: reserved for development
  83972. SeeAlso: AX=1507h
  83973. --------d-2F1507-----------------------------
  83974. INT 2F - CD-ROM - TURN DEBUGGING OFF
  83975. AX = 1507h
  83976. BX = debugging function to disable
  83977. Note: reserved for development
  83978. SeeAlso: AX=1506h
  83979. --------d-2F1508-----------------------------
  83980. INT 2F - CD-ROM - ABSOLUTE DISK READ
  83981. AX = 1508h
  83982. ES:BX -> buffer
  83983. CX = drive number (0=A:)
  83984. SI:DI = starting sector number
  83985. DX = number of sectors to read
  83986. Return: CF set on error
  83987. AL = error code (0Fh invalid drive,15h not ready)
  83988. CF clear if successful
  83989. Note: returns error 15h (not ready) under Windows95 if the starting sector
  83990. number is less than 10h
  83991. SeeAlso: AX=1509h
  83992. --------d-2F1509-----------------------------
  83993. INT 2F - CD-ROM - ABSOLUTE DISK WRITE
  83994. AX = 1509h
  83995. ES:BX -> buffer
  83996. CX = drive number (0=A:)
  83997. SI:DI = starting sector number
  83998. DX = number of sectors to write
  83999. Note: corresponds to INT 26h and is currently reserved and nonfunctional,
  84000. but could be implemented for CD-R and CD-RW drives
  84001. SeeAlso: AX=1508h
  84002. --------d-2F150A-----------------------------
  84003. INT 2F - CD-ROM - RESERVED
  84004. AX = 150Ah
  84005. --------d-2F150B-----------------------------
  84006. INT 2F - CD-ROM v2.00+ - DRIVE CHECK
  84007. AX = 150Bh
  84008. CX = drive number (0=A:)
  84009. Return: BX = ADADh if MSCDEX.EXE installed
  84010. AX = support status
  84011. 0000h if drive not supported
  84012. nonzero if supported
  84013. SeeAlso: AX=150Dh
  84014. --------d-2F150CBX0000-----------------------
  84015. INT 2F - CD-ROM v2.00+ - GET MSCDEX.EXE VERSION (GET VERSION)
  84016. AX = 150Ch
  84017. BX = 0000h
  84018. Return: BH = major version
  84019. BL = minor version
  84020. Notes: MSCDEX.EXE versions prior to 2.00 leave BX unchanged, thus BX should
  84021. be 0000h on entry
  84022. Corel's CORELCDX.COM v1.01d returns 2.20, v1.12a returns 2.21
  84023. Meridian Data's CDNETEX.EXE returns its own version number, e.g. 4.70
  84024. J.M.A. Hall's CDEMU2.COM returns 2.10 (it is an MSCDEX emulator for
  84025. networked CD-ROM drives)
  84026. Windows95 returns v2.95
  84027. Novell DOS 7 NWCDEX.EXE returns the same version number reported in
  84028. its startup message
  84029. SeeAlso: AX=1500h"CD-ROM",AX=15FFh"CORELCDX"
  84030. --------d-2F150D-----------------------------
  84031. INT 2F - CD-ROM v2.00+ - GET CD-ROM DRIVE LETTERS
  84032. AX = 150Dh
  84033. ES:BX -> buffer for drive letter list (1 byte per drive)
  84034. Return: buffer filled with drive numbers (0=A:). Each byte corresponds
  84035. to the drive in the same position for function 1501h
  84036. SeeAlso: AX=150Bh
  84037. --------d-2F150E-----------------------------
  84038. INT 2F - CD-ROM v2.00+ - GET/SET VOLUME DESCRIPTOR PREFERENCE
  84039. AX = 150Eh
  84040. BX = subfunction
  84041. 00h get preference
  84042. DX = 0000h
  84043. Return: DX = preference settings
  84044. 01h set preference
  84045. DH = volume descriptor preference
  84046. 01h = primary volume descriptor
  84047. 02h = supplementary volume descriptor
  84048. DL = supplementary volume descriptor preference
  84049. 01h = shift-Kanji
  84050. CX = drive number (0=A:)
  84051. Return: CF set on error
  84052. AX = error code (15=invalid drive,1=invalid function)
  84053. CF clear if successful
  84054. --------d-2F150F-----------------------------
  84055. INT 2F - CD-ROM v2.00+ - GET DIRECTORY ENTRY
  84056. AX = 150Fh
  84057. CL = drive number (0=A:)
  84058. CH bit 0 = copy flag
  84059. clear if direct copy
  84060. set if copy to structure which removes ISO/High Sierra diffs
  84061. ES:BX -> ASCIZ path name
  84062. SI:DI -> buffer for directory entry (see #02628,#02629)
  84063. must be 255 bytes for direct copy, 285 bytes for canonical
  84064. Return: CF set on error
  84065. AX = error code
  84066. CF clear if successful
  84067. AX = disk format (0=High Sierra,1=ISO 9660)
  84068. Note: this function was not supported by Novell DOS 7 NWCDEX prior to the
  84069. 08/16/94 update
  84070. Format of CD-ROM directory entry (direct copy):
  84071. Offset Size Description (Table 02628)
  84072. 00h BYTE length of directory entry
  84073. 01h BYTE length of XAR in Logical Block Numbers
  84074. 02h DWORD LBN of data, Intel (little-endian) format
  84075. 06h DWORD LBN of data, Motorola (big-endian) format
  84076. 0Ah DWORD length of file, Intel format
  84077. 0Eh DWORD length of file, Motorola format
  84078. ---High Sierra---
  84079. 12h 6 BYTEs date and time
  84080. 18h BYTE bit flags
  84081. 19h BYTE reserved
  84082. ---ISO 9660---
  84083. 12h 7 BYTEs date and time
  84084. (seventh byte is offset from GMT in 15-minute increments)
  84085. 19h BYTE bit flags
  84086. ---both formats---
  84087. 1Ah BYTE interleave size
  84088. 1Bh BYTE interleave skip factor
  84089. 1Ch WORD volume set sequence number, Intel format
  84090. 1Eh WORD volume set sequence number, Motorola format
  84091. 20h BYTE length of file name
  84092. 21h N BYTEs file name
  84093. BYTE (optional) padding if filename is odd length
  84094. N BYTEs system data
  84095. SeeAlso: #02629,#01352
  84096. Format of CD-ROM directory entry (canonicalized):
  84097. Offset Size Description (Table 02629)
  84098. 00h BYTE length of XAR in Logical Block Numbers
  84099. 01h DWORD Logical Block Number of file start
  84100. 05h WORD size of disk in logical blocks
  84101. 07h DWORD file length in bytes
  84102. 0Bh 7 BYTEs date and time
  84103. 12h BYTE bit flags
  84104. 13h BYTE interleave size
  84105. 14h BYTE interleave skip factor
  84106. 15h WORD volume set sequence number
  84107. 17h BYTE length of file name
  84108. 18h 38 BYTEs ASCIZ filename
  84109. 3Eh WORD file version number
  84110. 40h BYTE number of bytes of system use data
  84111. 41h 220 BYTEs system use data
  84112. SeeAlso: #02628
  84113. --------d-2F1510-----------------------------
  84114. INT 2F - CD-ROM v2.10+ - SEND DEVICE DRIVER REQUEST
  84115. AX = 1510h
  84116. CX = CD-ROM drive letter (0 = A, 1 = B, etc)
  84117. ES:BX -> CD-ROM device driver request header (see #02597 at AX=0802h)
  84118. Return: CF clear if device driver has been called (check the request header's
  84119. status word to determine whether an error has occurred)
  84120. ES:BX request header updated
  84121. CF set if device driver has not been called
  84122. AX = error code (000Fh = invalid drive, 0001h = invalid function)
  84123. ES:BX request header unchanged
  84124. Notes: MSCDEX initializes the device driver request header's subunit field
  84125. based on the drive number specified in CX
  84126. MSCDEX v2.21 through v2.25 (at least) return error code AX=0001h if
  84127. nested calls are attempted
  84128. BUGS: Novell DOS 7 NWCDEX prior to the 12/13/94 update did not initialize
  84129. the subunit field
  84130. Windows95 sets CF if CX isn't a CD-ROM drive but leaves CF unchanged
  84131. if the drive is in fact a CD-ROM
  84132. SeeAlso: AX=0802h
  84133. --------d-2F15FFBX0000-----------------------
  84134. INT 2F - CD-ROM - CORELCDX - INSTALLATION CHECK
  84135. AX = 15FFh
  84136. BX = 0000h
  84137. Return: BX = ABCDh if CORELCDX loaded
  84138. Note: Corel's CORELCDX.COM is a replacement for MSCDEX.EXE; it also supports
  84139. the standard MSCDEX installation check calls AX=1500h and AX=150Ch
  84140. SeeAlso: AX=1500h"CD-ROM",AX=150Ch
  84141. --------W-2F1600-----------------------------
  84142. INT 2F - MS Windows - WINDOWS ENHANCED MODE INSTALLATION CHECK
  84143. AX = 1600h
  84144. Return: AL = status
  84145. 00h neither Windows 3.x enhanced mode nor Windows/386 2.x running
  84146. 01h Windows/386 2.x running
  84147. 80h XMS version 1 driver installed (neither Windows 3.x enhanced
  84148. mode nor Windows/386 2.x running) (obsolete--see note)
  84149. FFh Windows/386 2.x running
  84150. AL = anything else
  84151. AL = Windows major version number >= 3
  84152. AH = Windows minor version number
  84153. Notes: INT 2F/AH=16h comprises an API for non-Windows programs (DOS device
  84154. drivers, TSRs, and applications) to cooperate with multitasking
  84155. Windows/386 2.x and Windows 3.x and higher enhanced mode.
  84156. certain calls are also supported in the Microsoft 80286 DOS extender in
  84157. Windows standard mode
  84158. this function served as the installation check and AX=1610h served to
  84159. get the driver entry point for XMS version 1, which is now obsolete.
  84160. Use AX=4300h and AX=4310h instead
  84161. SeeAlso: AX=160Ah,AX=1610h,AX=4300h,AX=4680h
  84162. Index: installation check;XMS version 1
  84163. --------W-2F1602-----------------------------
  84164. INT 2F - MS Windows/386 2.x - GET API ENTRY POINT
  84165. AX = 1602h
  84166. Return: ES:DI -> Windows/386 2.x API procedure entry point
  84167. Notes: this interface is supported in Windows 3.x and Windows95 only for 2.x
  84168. compatibility
  84169. to get the current virtual machine (VM) ID in Windows/386 2.x:
  84170. AX = 0000h
  84171. ES:DI -> return address
  84172. JUMP to address returned from INT 2F/AX=1602h
  84173. After JUMP, at return address:
  84174. BX = current VM ID.
  84175. SeeAlso: AX=C020h
  84176. --------W-2F1603-----------------------------
  84177. INT 2F C - MS Windows/386 - GET INSTANCE DATA
  84178. AX = 1603h
  84179. Return: AX = 5248h ('RH') if supported
  84180. DS:SI -> Windows/386 instance data (see #02630)
  84181. Notes: reportedly supported by RM Nimbus MS-DOS 3.3 kernel
  84182. this function is called by DOSMGR when AX=1607h/BX=0015h is not
  84183. supported, as is the case in DOS versions prior to 5.0
  84184. see Geoff Chappell's book _DOS_Internals_ for additional discussions of
  84185. this function, DOSMGR's behavior, and instancing in general
  84186. SeeAlso: AX=1607h/BX=0015h
  84187. Format of Windows/386 instance data:
  84188. Offset Size Description (Table 02630)
  84189. 00h WORD segment of IO.SYS (0000h = default 0070h)
  84190. 02h WORD offset in IO.SYS of STACKS data structure (DOS 3.2x)
  84191. 0000h if not applicable
  84192. 04h WORD number of instance data entries (max 32)
  84193. 06h Array of instance data entries
  84194. Offset Size Description
  84195. 00h WORD segment (0002h = DOS kernel)
  84196. 02h WORD offset
  84197. 04h WORD size
  84198. --------W-2F1605-----------------------------
  84199. INT 2F - MS Windows - WINDOWS ENHANCED MODE & 286 DOSX INIT BROADCAST
  84200. AX = 1605h
  84201. ES:BX = 0000h:0000h
  84202. DS:SI = 0000h:0000h
  84203. CX = 0000h
  84204. DX = flags
  84205. bit 0 = 0 if Windows enhanced-mode initialization
  84206. bit 0 = 1 if Microsoft 286 DOS extender initialization
  84207. bits 1-15 reserved (undefined)
  84208. DI = version number (major in upper byte, minor in lower)
  84209. Return: CX = 0000h if okay for Windows to load
  84210. CX = FFFFh (other registers unchanged) if Windows 3.0 in standard mode
  84211. CX <> 0 if Windows should not load
  84212. ES:BX -> startup info structure (see #02631)
  84213. DS:SI -> virtual86 mode enable/disable callback or 0000h:0000h
  84214. (see #02634)
  84215. Notes: the Windows enhanced mode loader and Microsoft 286 DOS extender will
  84216. broadcast an INT 2F/AX=1605h call when initializing. Any DOS device
  84217. driver or TSR can watch for this broadcast and return the appropriate
  84218. values. If the driver or TSR returns CX <> 0, it is also its
  84219. responsibility to display an error message (however, Windows95 is
  84220. reported to load regardless of the returned CX).
  84221. each handler must first chain to the prior INT 2F handler with
  84222. registers unchanged before processing the call
  84223. if the handler requires local data on a per-VM basis, it must store the
  84224. returned ES:BX in the "next" field of a startup info structure and
  84225. return a pointer to that structure in ES:BX
  84226. a single TSR may set the V86 mode enable/disable callback; if DS:SI is
  84227. already nonzero, the TSR must fail the initialization by setting CX
  84228. nonzero
  84229. MSD checks for Windows 3.0 running in standard mode by testing whether
  84230. CX=FFFFh and other registers are unchanged on return
  84231. Novell DOS v7.0 (Update 8 - Update 11) TASKMGR in multitasking mode
  84232. uses this broadcast, even if TASKMGR.INI sets WinPresent= to OFF
  84233. Microsoft's EMM386.EXE for DOS 5+ when installed with the NOEMS option
  84234. changes its driver name from EMMQXXX0 to EMMXXXX0 while Windows is
  84235. active
  84236. SeeAlso: AX=1606h,AX=1608h,AX=4B05h
  84237. Format of Windows Startup Information Structure:
  84238. Offset Size Description (Table 02631)
  84239. 00h 2 BYTEs major, minor version of info structure
  84240. 02h DWORD pointer to next startup info structure or 0000h:0000h
  84241. 06h DWORD pointer to ASCIZ name of virtual device file or 0000h:0000h
  84242. 0Ah DWORD virtual device reference data (see #02633)
  84243. (only used if above nonzero)
  84244. 0Eh DWORD pointer to instance data records (see #02632) or 0000h:0000h
  84245. ---structure version >= 4.0---
  84246. 12h DWORD pointer to optionally-instanced data records (see #02632)
  84247. or 0000h:0000h
  84248. Format of one Instance Item in array:
  84249. Offset Size Description (Table 02632)
  84250. 00h DWORD address of instance data (end of array if 0000h:0000h)
  84251. 04h WORD size of instance data
  84252. SeeAlso: #02631
  84253. Format of Virtual Device Reference Data:
  84254. Offset Size Description (Table 02633)
  84255. 00h DWORD physical address of ??? or 00000000h
  84256. 04h DWORD physical address of ??? table
  84257. 08h DWORD "DEST_PAGE" address to which pages must be mapped
  84258. 0Ch N DWORDs "SRC_PAGE" physical addresses of the pages
  84259. 00000000h = end of table
  84260. Note: EMM386.EXE sets the first pointer to the start of the device driver
  84261. chain, the second pointer to a field of 40h bytes followed by a
  84262. 16-bit offset to the end of the SRC_PAGE table, and DEST_PAGE to
  84263. the start segment of the UMB area
  84264. SeeAlso: #02631
  84265. (Table 02634)
  84266. Values Windows virtual mode enable/disable procedure is called with:
  84267. AX = 0000h disable V86 mode
  84268. AX = 0001h enable V86 mode
  84269. interrupts disabled
  84270. Return: CF set on error
  84271. CF clear if successful
  84272. interrupts disabled
  84273. SeeAlso: #02631
  84274. --------W-2F1606-----------------------------
  84275. INT 2F - MS Windows - WINDOWS ENHANCED MODE & 286 DOSX EXIT BROADCAST
  84276. AX = 1606h
  84277. DX = flags
  84278. bit 0 = 0 if Windows enhanced-mode exit
  84279. bit 0 = 1 if Microsoft 286 DOS extender exit
  84280. bits 1-15 reserved (undefined)
  84281. Notes: if the init broadcast fails (AX=1605h returned CX <> 0), then this
  84282. broadcast will be issued immediately.
  84283. this call will be issued in real mode
  84284. Novell DOS v7.0 (Update 8 - Update 15) TASKMGR in multitasking mode
  84285. uses this broadcast, even if TASKMGR.INI sets WinPresent= to OFF
  84286. SeeAlso: AX=1605h,AX=1609h
  84287. --------W-2F1607-----------------------------
  84288. INT 2F - MS Windows - VIRTUAL DEVICE CALL OUT API
  84289. AX = 1607h
  84290. BX = virtual device ID (see #02642)
  84291. CX = (usually) callout subfunction
  84292. Return: (usually) AX,BX,CX,DX,ES contain results
  84293. Notes: more of a convention than an API, this call specifies a standard
  84294. mechanism for Windows enhanced-mode virtual devices (VxD's) to talk
  84295. to DOS device drivers and TSRs
  84296. see below for details on several virtual devices
  84297. SeeAlso: AX=1605h,AX=1607h/BX=000Ch,AX=1607h/BX=0014h,AX=1607h/BX=0015h
  84298. SeeAlso: AX=1607h/BX=0018h,AX=1684h"DEVICE API",AX=C020h
  84299. --------W-2F1607BX0006-----------------------
  84300. INT 2F - MS Windows - "V86MMGR" VIRTUAL DEVICE API
  84301. AX = 1607h
  84302. BX = 0006h (VxD identifier of "V86MMGR")
  84303. CX = 0000h
  84304. Return: AX = status
  84305. 0000h if local A20 state changed
  84306. 1607h if A20 unchanged
  84307. other if global A20 state changed
  84308. SeeAlso: AX=1607h"CALL OUT API"
  84309. --------W-2F1607BX000C-----------------------
  84310. INT 2F - MS Windows - "VMD" VIRTUAL MOUSE DEVICE API
  84311. AX = 1607h
  84312. BX = 000Ch (VxD identifier of "VMD")
  84313. Return: CX = nonzero if mouse driver already virtualized
  84314. Note: VMD (Virtual Mouse Driver) calls this and then checks whether CX is
  84315. nonzero; if yes, it will not automatically virtualize the mouse
  84316. driver. This would be used if MOUSE.COM already virtualizes
  84317. itself using the Windows API.
  84318. SeeAlso: AX=1607h/BX=0014h,AX=1607h/BX=0015h
  84319. --------W-2F1607BX000D-----------------------
  84320. INT 2F C - MS Windows95 - "VKD" VIRTUAL DEVICE - ??? CALLOUT
  84321. AX = 1607h
  84322. BX = 000Dh (VxD ID for VKD)
  84323. ???
  84324. Return: ???
  84325. SeeAlso: AX=1607h"CALL OUT API",#02642
  84326. --------W-2F1607BX0010-----------------------
  84327. INT 2F C - MS Windows 3.1 - "BLOCKDEV" VIRTUAL HARD DISK DEVICE API
  84328. AX = 1607h
  84329. BX = 0010h (VxD identifier of "BLOCKDEV")
  84330. CX = function
  84331. 0001h starting FastDisk compatibility tests
  84332. 0002h ending FastDisk compatibility tests
  84333. 0003h check if FastDisk installation allowed
  84334. Return: CX = 0000h if allowed
  84335. Note: this interface is called by the Windows FastDisk driver (such as
  84336. WDCTRL) when it thinks that the INT 13h handler immediately below
  84337. IO.SYS's INT 13h code is not in ROM; it should be supported by any
  84338. program which hooks itself underneath IO.SYS's INT 13h code with
  84339. INT 2F/AH=13h
  84340. SeeAlso: AX=1607h/BX=0014h,INT 2F/AH=13h
  84341. --------W-2F1607BX0014-----------------------
  84342. INT 2F - MS Windows - "VNETBIOS" VIRTUAL DEVICE API
  84343. AX = 1607h
  84344. BX = 0014h (VxD identifier of "VNETBIOS")
  84345. Return: ES:DI -> 128-byte table specifying VNETBIOS actions for each NetBIOS
  84346. command code (see #02635)
  84347. Note: VNETBIOS (Virtual NetBIOS) calls this function to determine whether
  84348. the NetBIOS has an extensions Windows should know about
  84349. SeeAlso: AX=1607h/BX=000Ch,AX=1607h/BX=0010h,AX=1607h/BX=0015h
  84350. (Table 02635)
  84351. Values for VNETBIOS action code:
  84352. 00h "VN_Unknown" unknown command
  84353. 04h "VN_No_Map" no memory mapping necessary
  84354. 08h "VN_Map_In" input buffer is quickly used, so no global mapping needed
  84355. 0Ch "VN_Map_In" output buffer is quickly used, so no global mapping needed
  84356. 10h "VN_Map_In_Out" buffer is quickly used, so no global mapping needed
  84357. 14h "VN_Chain_Send" the chain-send command
  84358. 18h "VN_Cancel" special case for cancel command
  84359. 1Ch "VN_Buffer_In" buffer is incoming
  84360. 20h "VN_Buffer_Out" buffer is outgoing
  84361. 24h "VN_Buffer_In_Out" buffer used for both incoming and outgoing data
  84362. --------D-2F1607BX0015-----------------------
  84363. INT 2F C - MS Windows - "DOSMGR" VIRTUAL DEVICE API
  84364. AX = 1607h
  84365. BX = 0015h (VxD identifier of "DOSMGR")
  84366. CX = function
  84367. 0000h query instance processing
  84368. DX = 0000h
  84369. Return: CX = state
  84370. 0000h not instanced
  84371. other instanced (DOS 5+ kernel returns 0001h)
  84372. DX = segment of DOS drivers or 0000h for
  84373. default of 0070h
  84374. ES:BX -> patch table (see #02637)
  84375. 0001h set patches in DOS
  84376. DX = bit mask of patch requests (see #02636)
  84377. Return: AX = B97Ch
  84378. BX = bit mask of patches applied (see #02636)
  84379. DX = A2ABh
  84380. 0002h remove patches in DOS (ignored by DOS 5.0 kernel)
  84381. DX = bit mask of patch requests (see #02636)
  84382. Return: CX = 0000h (DOS 5-6)
  84383. Note: return values are ignored by DOSMGR in Windows 3.1
  84384. 0003h get size of DOS data structures
  84385. DX = bit mask of request (only one bit can be set)
  84386. bit 0: Current Directory Structure size
  84387. Return: if supported request:
  84388. AX = B97Ch
  84389. CX = size in bytes of requested structure
  84390. DX = A2ABh
  84391. else:
  84392. CX = 0000h
  84393. all other registers preserved
  84394. 0004h determine instanced data structures
  84395. Return: AX = B97Ch if supported
  84396. DX = A2ABh if supported (DOS 5+ kernel returns 0000h)
  84397. BX = bit mask of instanced items
  84398. bit 0: CDS
  84399. bit 1: SFT
  84400. bit 2: device list
  84401. bit 3: DOS swappable data area
  84402. 0005h get device driver size
  84403. ES = segment of device driver
  84404. Return: DX:AX = 0000h:0000h on error (not dev. driver segment)
  84405. DX:AX = A2ABh:B97Ch if successful
  84406. BX:CX = size of device driver in bytes
  84407. Notes: DOSMGR (DOS Manager) will check whether the OEM DOS/BIOS data has
  84408. been instanced via this API and will not perform its own default
  84409. instancing of the normal DOS/BIOS data if so; if this API is not
  84410. supported, DOSMGR will also try to access instancing data through
  84411. INT 2F/AX=1603h
  84412. these functions are supported by the DOS 5+ kernel; DOSMGR contains
  84413. tables of instancing information for earlier versions of DOS
  84414. see Geoff Chappell's book _DOS_Internals_ for additional discussions of
  84415. DOSMGR's behavior and instancing in general
  84416. SeeAlso: AX=1603h,AX=1605h,AX=1607h/BX=000Ch,AX=1607h/BX=0014h
  84417. SeeAlso: AX=1684h"DEVICE API"
  84418. Bitfields for DOSMGR patch requests:
  84419. Bit(s) Description (Table 02636)
  84420. 0 enable critical sections
  84421. 1 NOP setting/checking user ID
  84422. 2 turn INT 21/AH=3Fh on STDIN into polling loop
  84423. 3 trap stack fault in "SYSINIT" to WIN386
  84424. 4 BIOS patch to trap "Insert disk X:" to WIN386
  84425. Format of DOSMGR patch table:
  84426. Offset Size Description (Table 02637)
  84427. 00h 2 BYTEs DOS version (major, minor)
  84428. 02h WORD offset in DOS data segment of "SAVEDS"
  84429. 04h WORD offset in DOS data segment of "SAVEBX"
  84430. 06h WORD offset in DOS data segment of InDOS flag
  84431. 08h WORD offset in DOS data segment of User ID word
  84432. 0Ah WORD offset in DOS data segment of "CritPatch" table to enable
  84433. critical section calls (see INT 2A/AH=80h)
  84434. 0Ch WORD (DOS 5+ only) offset in DOS data segment of "UMB_HEAD",
  84435. containing segment of last MCB in conventional memory
  84436. --------W-2F1607BX0018-----------------------
  84437. INT 2F C - MS Windows - "VMPoll" VIRTUAL DEVICE - IDLE CALLOUT
  84438. AX = 1607h
  84439. BX = 0018h (VMPoll VxD ID) (see #02642)
  84440. CX = 0000h
  84441. Return: AX = status
  84442. 0000h if timeslice used
  84443. nonzero if timeslice not needed
  84444. Note: when VMPoll makes this callout, all virtual machines are idle, and any
  84445. interested TSR can use the opportunity to perform background
  84446. processing
  84447. SeeAlso: AX=1607h"CALL OUT API",AX=1689h
  84448. --------W-2F1607BX0021--------------------------------------
  84449. INT 2F C - MS Windows - "PageFile" VIRTUAL DEVICE - GET LOCK BYTE
  84450. AX = 1607h
  84451. BX = 0021h (PageFile VxD ID)
  84452. CX = 0000h
  84453. Return: AX = status
  84454. 0000h success
  84455. ES:DI -> cache lock byte in disk cacher
  84456. other no disk cache or unsupported
  84457. Notes: PageFile issues this call on real-mode initialization in order to allow
  84458. disk caches to provide it with a byte which it can use to temporarily
  84459. lock the disk cache; VMPOLL also issues this call, so it is made
  84460. twice each time Windows starts up
  84461. if this call fails, PageFile falls back to other techniques for locking
  84462. the disk cache
  84463. SeeAlso: AX=1607h"CALL OUT API"
  84464. --------W-2F1607BX002D-----------------------
  84465. INT 2F C - MS Windows - "W32S" VIRTUAL DEVICE - ??? CALLOUT
  84466. AX = 1607h
  84467. BX = 002Dh (VxD ID for W32S)
  84468. ???
  84469. Return: ???
  84470. SeeAlso: AX=1607h"CALL OUT API",#02642
  84471. --------W-2F1607BX0040-----------------------
  84472. INT 2F C - MS Windows - "IFSMgr" VIRTUAL DEVICE - ??? CALLOUT
  84473. AX = 1607h
  84474. BX = 0040h (VxD ID for IFSMgr)
  84475. ???
  84476. Return: ???
  84477. SeeAlso: AX=1607h"CALL OUT API",#02642
  84478. --------W-2F1607BX0446-----------------------
  84479. INT 2F C - MS Windows - "VADLIBD" VIRTUAL DEVICE - ??? CALLOUT
  84480. AX = 1607h
  84481. BX = 0446h (VxD ID for VADLIBD)
  84482. ???
  84483. Return: ???
  84484. SeeAlso: AX=1607h"CALL OUT API",#02642
  84485. --------W-2F1607BX0484-----------------------
  84486. INT 2F C - MS Windows - "IFSMgr" VIRTUAL DEVICE - ??? CALLOUT
  84487. AX = 1607h
  84488. BX = 0484h (VxD ID for IFSMgr)
  84489. ???
  84490. Return: ???
  84491. SeeAlso: AX=1607h"CALL OUT API",#02642
  84492. --------W-2F1607BX0487-----------------------
  84493. INT 2F C - MS Windows - "NWSUP" VIRTUAL DEVICE - ??? CALLOUT
  84494. AX = 1607h
  84495. BX = 0487h (VxD ID for NWSUP)
  84496. ???
  84497. Return: ???
  84498. SeeAlso: AX=1607h"CALL OUT API",#02642
  84499. --------E-2F1607BX22C0-----------------------
  84500. INT 2F C - Rational Systems DOS/4GW - ???
  84501. AX = 1607h
  84502. BX = 22C0h
  84503. ???
  84504. Return: ???
  84505. SeeAlso: INT 15/AX=BF02h,INT 15/AX=BF04h,#02642
  84506. --------W-2F1607BX28A1-----------------------
  84507. INT 2F C - MS Windows - "PharLap" VIRTUAL DEVICE - ??? CALLOUT
  84508. AX = 1607h
  84509. BX = 28A1h (VxD ID for PharLap)
  84510. ???
  84511. Return: ???
  84512. SeeAlso: AX=1607h"CALL OUT API",#02642
  84513. --------W-2F1607BX7A5F-----------------------
  84514. INT 2F C - MS Windows - "SIWVID" VIRTUAL DEVICE - ??? CALLOUT
  84515. AX = 1607h
  84516. BX = 7A5Fh (VxD ID for SIWVID)
  84517. ???
  84518. Return: ???
  84519. SeeAlso: AX=1607h"CALL OUT API",#02642
  84520. --------W-2F1608-----------------------------
  84521. INT 2F C - MS Windows - WINDOWS ENHANCED MODE INIT COMPLETE BROADCAST
  84522. AX = 1608h
  84523. Notes: called after all installable devices have been initialized
  84524. real-mode software may be called between the Windows enhanced-mode init
  84525. call (AX=1605h) and this call; the software must detect this
  84526. situation
  84527. SeeAlso: AX=1605h,AX=1609h
  84528. --------W-2F1609-----------------------------
  84529. INT 2F C - MS Windows - WINDOWS ENHANCED MODE BEGIN EXIT BROADCAST
  84530. AX = 1609h
  84531. Note: called at the beginning of a normal exit sequence; not made in the
  84532. event of a fatal system crash
  84533. SeeAlso: AX=1606h,AX=1608h
  84534. --------W-2F160A-----------------------------
  84535. INT 2F - MS Windows 3.1 - IDENTIFY WINDOWS VERSION AND TYPE
  84536. AX = 160Ah
  84537. Return: AX = 0000h if call supported
  84538. BX = version (BH=major, BL=minor)
  84539. CX = mode (0002h = standard, 0003h = enhanced)
  84540. SeeAlso: AX=1600h,AX=4680h
  84541. --------W-2F160B-----------------------------
  84542. INT 2F - MS Windows 3.1 - IDENTIFY TSRs
  84543. AX = 160Bh
  84544. ES:DI = 0000h:0000h
  84545. Return: ES:DI -> TSR information structure (see #02638)
  84546. Desc: this call allows Windows-aware TSRs to make themselves known to
  84547. Windows.
  84548. Note: the TSR should first chain to the previous INT 2F handler, then
  84549. allocate a communication structure, place the returned ES:DI
  84550. pointer in the first field, and return a pointer to the new
  84551. structure
  84552. SeeAlso: AX=1605h,AX=160Ch,AX=4B01h,AX=4B05h
  84553. Format of TSR-to-Windows information structure:
  84554. Offset Size Description (Table 02638)
  84555. 00h DWORD pointer to next structure
  84556. 04h WORD PSP segment
  84557. 06h WORD API version ID (0100h)
  84558. 08h WORD EXEC flags (how to load command specified by "exec_cmd")
  84559. bit 0: "WINEXEC"
  84560. bit 1: "LOADLIBRARY"
  84561. bit 2: "OPENDRIVER"
  84562. 0Ah WORD "exec_cmd_show" (see #02639)
  84563. 0Ch DWORD "exec_cmd" pointer to command line to be executed
  84564. 10h 4 BYTEs reserved (0)
  84565. 14h DWORD pointer to TSR ID block (see #02640)
  84566. 18h DWORD pointer to TSR data block or 0000h:0000h
  84567. (Table 02639)
  84568. Values for TSR information structure "exec_cmd_show":
  84569. 00h HIDE
  84570. 01h SHOWNORMAL
  84571. 02h SHOWMINIMIZED
  84572. 03h SHOWMAXIMIZED
  84573. 04h SHOWNOACTIVE
  84574. 05h SHOW
  84575. 06h MINIMIZE
  84576. 07h SHOWMINNOACTIVE
  84577. 08h SHOWNA
  84578. 09h RESTORE
  84579. Note: this value is passed as the second parameter to the WinExec(),
  84580. LoadLibrary(), or OpenDriver() call used to execute a requested
  84581. command line
  84582. SeeAlso: #02638
  84583. Format of Norton Utilities 6.0 TSR ID block:
  84584. Offset Size Description (Table 02640)
  84585. 00h WORD length of name string
  84586. 02h N BYTEs name of TSR's executable
  84587. SeeAlso: #02638
  84588. --------W-2F160C-----------------------------
  84589. INT 2F - MS Windows 3.1 - DETECT ROMs
  84590. AX = 160Ch
  84591. ???
  84592. Return: ???
  84593. Note: used by ROM Windows; appears to be a NOP under standard Windows95
  84594. SeeAlso: AX=160Bh,INT 21/AH=6Dh"ROM"
  84595. --------D-2F160E-----------------------------
  84596. INT 2F U - MS-DOS 7 kernel - BOOT LOGO SUPPORT???
  84597. AX = 160Eh
  84598. BL = subfunction
  84599. 00h get ???
  84600. AX = state of flag manipulated by subfn 04h and 05h
  84601. 0000h clear
  84602. FFFFh set
  84603. DX = ??? (0000h)
  84604. 01h link in INT 10h??? handlers
  84605. 02h unlink INT 10h??? handlers
  84606. 03h ???
  84607. 04h set ??? flag
  84608. 05h clear ??? flag
  84609. Return: AX = 0000h if supported
  84610. ???
  84611. SeeAlso: AX=160Fh,AX=1611h,AX=1614h
  84612. --------D-2F160F-----------------------------
  84613. INT 2F U - MS-DOS 7 kernel - GET/SET ??? HANDLER
  84614. AX = 160Fh
  84615. BL = subfunction
  84616. 00h get ??? handler
  84617. Return: AX = 0000h if supported
  84618. CX:DX -> handler to which control is passed after
  84619. ??? executes
  84620. 01h set ??? handler
  84621. CX:DX -> new handler for ???
  84622. Return: AX = 0000h if supported
  84623. Notes: this function is not supported if ??? in the IO.SYS drivers portion of
  84624. the kernel is an IRET instruction (as is the case on my system)
  84625. rather than a FAR JMP
  84626. the indicated handler seems to be related to INT 10 processing
  84627. SeeAlso: AX=160Eh,AX=1611h,AX=1614h
  84628. --------m-2F1610-----------------------------
  84629. INT 2F - XMS v1.x only - GET DRIVER ADDRESS
  84630. AX = 1610h
  84631. details unavailable
  84632. Note: this function and AX=1600h were only used in XMS version 1 and are now
  84633. obsolete. Use AX=4300h and AX=4310h instead
  84634. SeeAlso: AX=1600h,AX=4310h
  84635. --------D-2F1611-----------------------------
  84636. INT 2F U - MS-DOS 7 kernel - GET SHELL PARAMETERS
  84637. AX = 1611h
  84638. Return: AX = 0000h if supported
  84639. DS:DX -> primary shell's executable name
  84640. DS:SI -> prinary shell command line (counted string)
  84641. BH = ??? (00h)
  84642. BL = ??? (00h)
  84643. Desc: return the program name and commandline from the CONFIG.SYS SHELL=
  84644. statement
  84645. SeeAlso: AX=160Eh,AX=160Fh,AX=1612h,AX=4A33h
  84646. --------D-2F1612-----------------------------
  84647. INT 2F U - MS-DOS 7 kernel - GET ???
  84648. AX = 1612h
  84649. Return: AX = 0000h if supported
  84650. ES:BX -> ??? data (see #02641)
  84651. Note: called by VTD.VXD
  84652. SeeAlso: AX=160Fh,AX=1611h,AX=1613h
  84653. Format of DOS7 ??? kernel data:
  84654. Offset Size Description (Table 02641)
  84655. 00h WORD ??? (0001h)
  84656. 02h DWORD -> ??? function (call with DS=high word of this field)
  84657. the indicated function vectors through the INT 13 hook at
  84658. 0070h:00B4h and then forces the A20 gate open
  84659. ???
  84660. --------D-2F1613-----------------------------
  84661. INT 2F - MS-DOS 7 kernel - GET SYSTEM.DAT (REGISTRY FILE) PATHNAME
  84662. AX = 1613h
  84663. ES:DI -> buffer for full ASCIZ pathname to Windows95 SYSTEM.DAT
  84664. CX = buffer size in bytes
  84665. Return: AX = 0000h if supported
  84666. ES:DI buffer filled
  84667. CX = number of bytes copied into buffer
  84668. SeeAlso: AX=160Eh,AX=1611h,AX=1612h,AX=1614h,AX=1690h
  84669. --------D-2F1614-----------------------------
  84670. INT 2F U - MS-DOS 7 kernel - SET SYSTEM.DAT (REGISTRY FILE) PATHNAME
  84671. AX = 1614h
  84672. ES:DI -> ASCIZ pathname to Windows95 SYSTEM.DAT
  84673. Return: AX = status
  84674. 0000h if successful
  84675. 1614h not supported
  84676. other: maximum length of pathname (004Eh for v4.00.950)
  84677. SeeAlso: AX=160Eh,AX=1611h,AX=1613h,AX=1690h
  84678. ----------2F1615-----------------------------
  84679. INT 2F - Windows95 - SAVE32.COM - INSTALLATION CHECK
  84680. AX = 1615h
  84681. Return: AX = 0000h if installed
  84682. BX = segment of resident code
  84683. Program: SAVE32.COM is a TSR included in the Windows95 distribution which
  84684. preserves the contents of 32-bit registers across invocations of
  84685. all of the hardware interrupt handlers (which, for some older BIOSes
  84686. and TSRs, do not properly preserve the high words of the 32-bit
  84687. registers)
  84688. --------W-2F1680-----------------------------
  84689. INT 2F - MS Windows, DPMI, various - RELEASE CURRENT VIRTUAL MACHINE TIME-SLICE
  84690. AX = 1680h
  84691. Return: AL = status
  84692. 00h if the call is supported
  84693. 80h (unchanged) if the call is not supported
  84694. Notes: programs can use this function in idle loops to enhance performance
  84695. under multitaskers; this call is supported by MS Windows 3+, DOS 5+,
  84696. DPMI 1.0+, and in OS/2 2.0+ for multitasking DOS applications
  84697. does not block the program; it just gives up the remainder of the time
  84698. slice
  84699. should not be used by Windows-specific programs
  84700. when called very often without intermediate screen output under
  84701. MS Windows 3.x, the VM will go into an idle-state and will not
  84702. receive the next slice before 8 seconds have elapsed. This time can
  84703. be changed in SYSTEM.INI through "IdleVMWakeUpTime=<seconds>".
  84704. Setting it to zero results in a long wait.
  84705. this function has no effect under OS/2 2.10-4.0 if the DOS box has an
  84706. "Idle Sensitivity" setting of 100
  84707. SeeAlso: AX=1689h,INT 15/AX=1000h,INT 15/AX=5305h,INT 21/AH=89h,INT 7A/BX=000Ah
  84708. --------W-2F1681-----------------------------
  84709. INT 2F - MS Windows 3+ - BEGIN CRITICAL SECTION
  84710. AX = 1681h
  84711. Notes: used to prevent a task switch from occurring
  84712. should be followed by an INT 2F/AX=1682h call as soon as possible
  84713. nested calls are allowed, and must be followed by an appropriate number
  84714. of "end critical section" calls
  84715. not supported in Windows/386 2.x. Get INDOS flag with INT 21/AH=34h and
  84716. increment by hand.
  84717. SeeAlso: AX=1682h,INT 15/AX=101Bh,INT 21/AH=34h
  84718. --------W-2F1682-----------------------------
  84719. INT 2F - MS Windows 3+ - END CRITICAL SECTION
  84720. AX = 1682h
  84721. Notes: not supported in Windows/386 2.x. Get InDOS flag with INT 21/AH=34h
  84722. and decrement by hand, taking care not to decrement InDOS flag
  84723. through zero
  84724. SeeAlso: AX=1681h,INT 15/AX=101Ch,INT 21/AH=34h
  84725. --------W-2F1683-----------------------------
  84726. INT 2F - MS Windows 3+ - GET CURRENT VIRTUAL MACHINE ID
  84727. AX = 1683h
  84728. Return: BX = current virtual machine (VM) ID
  84729. Notes: Windows itself currently runs in VM 1, but this can't be relied upon
  84730. VM IDs are reused when VMs are destroyed
  84731. an ID of 0 will never be returned
  84732. SeeAlso: AX=1684h"DEVICE API",AX=1685h,AX=168Bh
  84733. --------W-2F1684-----------------------------
  84734. INT 2F - MS Windows - GET DEVICE API ENTRY POINT
  84735. AX = 1684h
  84736. BX = virtual device (VxD) ID (see #02642)
  84737. ES:DI = 0000h:0000h
  84738. Return: ES:DI -> VxD API entry point, or 0:0 if the VxD does not support an API
  84739. Note: some Windows enhanced-mode virtual devices provide services that
  84740. applications can access. For example, the Virtual Display Device
  84741. (VDD) provides an API used in turn by WINOLDAP.
  84742. SeeAlso: AX=1684h/BX=0001h,AX=1684h/BX=0015h,AX=1683h,AX=4011h,INT 20"Windows"
  84743. (Table 02642)
  84744. Values for MS Windows VxD ID:
  84745. Value Name CallOut V86 PM Description
  84746. 0000h ACT200L IrDA Infrared ActiSys framer VxD
  84747. 0000h ACT220L IrDA Infrared ActiSys 220 framer VxD
  84748. 0000h ADAPTEC IrDA Infrared Adaptec framer VxD
  84749. 0000h AM1500T N N (Win95)
  84750. 0000h ATI N N (Win95) ATI display driver
  84751. 0000h CDFS N N
  84752. 0000h CDTSD N N (Win95) CD-ROM Type-Specific Driver
  84753. 0000h CE2NDIS3 N N (W4Wg)
  84754. 0000h CENDIS N N (W4Wg)
  84755. 0000h CHIPS N N (Win95) Chips&Tech display driver
  84756. 0000h CIRRUS N N (Win95) Cirrus display driver
  84757. 0000h CTNDW N N (W4Wg)
  84758. 0000h CTVSD N N (Win95) CD-ROM Vendor-Specific Driver
  84759. 0000h CM2NDIS3 N N (W4Wg)
  84760. 0000h COMBUFF N N (Win95)
  84761. 0000h COMPAQ N N (Win95) Compaq display driver
  84762. 0000h CPQNDIS3 N N (W4Wg)
  84763. 0000h CRYSTAL IrDA Infrared Crystal framer VxD
  84764. 0000h CWCENUM N N (Win95SR2???)
  84765. 0000h CWCSPUD3 N N (Win95SR2???)
  84766. 0000h DBKVSSD N N (Win95) Databook PCMCIA socket services???
  84767. 0000h DDOM95 N N
  84768. 0000h DECLAN N N (W4Wg)
  84769. 0000h DiskTSD N N (Win95) hard-disk Type-Specific Driver
  84770. 0000h DiskVSD N N (Win95) hard-disk Vendor-Specific Driver
  84771. 0000h DMICTVXD N N
  84772. 0000h DMMDVDX N N Diamond MaximumDVD
  84773. 0000h DRVSPACX N N (Win95)
  84774. 0000h E30N3 N N (W4Wg)
  84775. 0000h E31N3 N N (W4Wg)
  84776. 0000h EE16 N N (W4Wg)
  84777. 0000h EISA N N (Win95)
  84778. 0000h EL59X N N (Win95)
  84779. 0000h ELNK16 N N (W4Wg)
  84780. 0000h ELNK3 N N (Win95)
  84781. 0000h ELNKII N N (W4Wg)
  84782. 0000h ELNKMC N N (W4Wg)
  84783. 0000h ELPC3 N N (W4Wg)
  84784. 0000h ENABLE2 N N (Win95)
  84785. 0000h ENABLE4 N N (Win95)
  84786. 0000h EPRO N N (Win95)
  84787. 0000h ES1488V N N (Win95)
  84788. 0000h ES1688V N N (Win95)
  84789. 0000h ES488V N N (Win95)
  84790. 0000h ES688V N N (Win95)
  84791. 0000h ESI IrDA Infrared ESI framer VxD
  84792. 0000h FILEMON N N DOS386 File Monitor
  84793. 0000h FLS1MTD N N (Win95) flash-memory driver???
  84794. 0000h FLS2MTD N N (Win95) flash-memory driver???
  84795. 0000h HPEISA N N (W4Wg)
  84796. 0000h HPFEND N N (W4Wg)
  84797. 0000h HPISA N N (W4Wg)
  84798. 0000h HPMCA N N (W4Wg)
  84799. 0000h HSFLOP N N
  84800. 0000h IBMTOK N N (W4Wg)
  84801. 0000h IBMTOK4 N N (Win95)
  84802. 0000h IRCOMM IrDA Infrared Virtual COM/LPT driver
  84803. 0000h IRLAMPEX IrDA Infrared Protocol VxD
  84804. 0000h IRLAPFRM IrDA Infrared Virtual COM/LPT frame driver
  84805. 0000h IRMATRAK N N (W4Wg)
  84806. 0000h JAVASUP N N Internet Explorer JAVA support
  84807. 0000h KEYREMAP N N (Windows95 PowerToys) shift-key remapper
  84808. 0000h LPT N N N (Win4Workgroups 3.11) DOS386 LPT Device
  84809. 0000h LPTENUM N N
  84810. 0000h MONVSD
  84811. 0000h MGA N N (Win95) Matrox MGA display driver
  84812. 0000h MSMINI N N (Win95)
  84813. 0000h MSODISUP N N N (Win4Workgroups 3.11) MS ODI Support
  84814. 0000h mvpas N N (Win95) Pro Audio Spectrum driver
  84815. 0000h NECATAPI N N (Win95)
  84816. 0000h NICE N N (Win95)
  84817. 0000h NV3 N N (Win95SR2)
  84818. 0000h NWNBLINK N N N (Win4Workgroups 3.11) Netware NetBIOS
  84819. 0000h OAK N N (Win95) Oak Tech display driver
  84820. 0000h OCTK32 N N (W4Wg)
  84821. 0000h OTCETH N N (W4Wg)
  84822. 0000h PARALINK N N (Win95)
  84823. 0000h PARALLAX IrDA Infrared Parallax framer VxD
  84824. 0000h PCNTN3 N N (W4Wg)
  84825. 0000h PE3NDIS N N (W4Wg)
  84826. 0000h PPM N N (Win95)
  84827. 0000h PROTEON N N (W4Wg)
  84828. 0000h QEMMFix N N
  84829. 0000h QIC117 N N (Win95) QIC-117 floppy-ctrl tape drive
  84830. 0000h QPI N N QEMM Programming Interface (see INT 67/AH=3Fh)
  84831. 0000h RMM N N Real-Mode Mapper for hw with real-mode drivers
  84832. 0000h S3 N N (Win95) S3 display driver
  84833. 0000h S3INFO N N
  84834. 0000h S3MINI N N S3 display driver
  84835. 0000h SAGE N N (Plus!) System Agent
  84836. 0000h scsi1hlp N N (Win95)
  84837. 0000h SERENUM N N
  84838. 0000h SERIAL N N N (Win4Workgroups 3.11) DOS386 Serial Device
  84839. 0000h SERWAVE N N
  84840. 0000h SETP3 N N (Win95) Silicon Ethernet Pocket Adapter
  84841. 0000h SMARTVSD N N (EZ-SMART???)
  84842. 0000h SMC8000W N N (W4Wg)
  84843. 0000h SMC80PC N N (W4Wg)
  84844. 0000h SMC8100W N N (W4Wg)
  84845. 0000h SMC8232W N N (W4Wg)
  84846. 0000h SMC9000 N N (W4Wg)
  84847. 0000h SNIP N N (W4Wg)
  84848. 0000h SOCKET N N (W4Wg)
  84849. 0000h SOCKETSV N N (Win95)
  84850. 0000h SPAP Y Y (Win95)
  84851. 0000h SPENDIS N N (Win95)
  84852. 0000h SRAMMTD N N (Win95) flash-memory driver???
  84853. 0000h STLTH64 N N Diamond Stealth64 driver
  84854. 0000h STLTHMON N N
  84855. 0000h T20N3 N N (W4Wg)
  84856. 0000h T30N3 N N (W4Wg)
  84857. 0000h TCTOK N N (W4Wg)
  84858. 0000h TSENG N N (Win95) Tseng Labs display driver
  84859. 0000h UBNEI N N (W4Wg)
  84860. 0000h UNIMODEM (Win95) Universal Modem Driver
  84861. 0000h VDEF N N (Win95)
  84862. 0000h VGATEWAY N Y (Win95) dialin gateway
  84863. 0000h VIDEO7 N N (Win95) Video7 display driver
  84864. 0000h VRomD N N (Win95)
  84865. 0000h VStDspcD Quarterdeck Stealth D*Space
  84866. 0000h VXDMON
  84867. 0000h WD N N (Win95)
  84868. 0000h WINTOP N N (Windows95 Power Toys)
  84869. 0000h WSHTCP N N
  84870. 0000h XGA N N (Win95) XGA display driver
  84871. 0001h VMM N N Virtual Machine Manager
  84872. 0001h VMM Y Y Windows95 Virtual Machine Manager
  84873. 0002h Debug
  84874. 0003h VPICD Y Y Virtual Prog. Interrupt Controller (PIC) Device
  84875. 0004h VDMAD N N Virtual Direct Memory Access (DMA) Device
  84876. 0005h VTD Y Y Virtual Timer Device
  84877. 0006h V86MMGR Y N N (Windows3.x) Virtual 8086 Mode Device
  84878. 0006h V86MMGR N Y (Win95) Virtual 8068 Mode Device
  84879. 0007h PageSwap N N Paging Device
  84880. 0008h Parity N N Parity-check trapper
  84881. 0009h Reboot N Y Ctrl-Alt-Del handler
  84882. 000Ah VDD N Y Virtual Display Device (GRABBER)
  84883. 000Bh VSD N N Virtual Sound Device
  84884. 000Ch VMD Y Y Y Virtual Mouse Device
  84885. 000Dh VKD N Y Virtual Keyboard Device
  84886. 000Eh VCD N Y Virtual COMM Device
  84887. 000Fh VPD N Y Virtual Printer Device
  84888. 0010h VHD Virtual Hard Disk Device (Windows 3.0)
  84889. 0010h BLOCKDEV Y N N Virtual Hard Disk Device (Windows 3.1)
  84890. 0010h IOS N N N (Win4Workgroups 3.11) DOS386 IOS Device
  84891. 0010h IOS Y Y Windows95 I/O Supervisor
  84892. 0011h VMCPD Y Y (Windows3.x) Virtual Math CoProcessor Device
  84893. 0011h VMCPD N Y (Win95) Virtual Math CoProcessor Device
  84894. 0012h EBIOS N N Reserve EBIOS page (e.g., on PS/2)
  84895. 0013h BIOSXLAT N N Map ROM BIOS API between prot & V86 mode
  84896. 0014h VNETBIOS Y N N Virtual NetBIOS Device
  84897. 0015h DOSMGR Y Y N DOS data instancing (see #02656)
  84898. 0016h WINLOAD
  84899. 0017h SHELL N Y (Windows3)
  84900. 0017h SHELL Y Y (Win95)
  84901. 0018h VMPOLL Y N N
  84902. 0019h VPROD
  84903. 001Ah DOSNET N N assures network integrity across VMs
  84904. 001Ah VNETWARE Y Y Novell NetWare DOSNET replacement
  84905. 001Bh VFD N N Virtual Floppy Device
  84906. 001Ch VDD2 Secondary display adapter
  84907. 001Ch LoadHi N N Netroom LoadHi Device (RMLODHI.VXD)
  84908. 001Ch LoadHi N N 386MAX LoadHi Device (386MAX.VXD)
  84909. 001Ch LoadHi N N Win386 LoadHi Device (EMM386.EXE)
  84910. 001Dh WINDEBUG N Y
  84911. 001Dh TDDebug N Y
  84912. 001Eh TSRLoad TSR instance utility
  84913. 001Fh BiosHook BIOS interrupt hooker VxD
  84914. 0020h Int13 N N N
  84915. 0021h PageFile Y N Y Paging File device
  84916. 0022h SCSI
  84917. 0022h APIX N Y (Win95)
  84918. 0023h MCA_POS Microchannel Programmable Option Select
  84919. 0024h SCSIFD SCSI FastDisk device
  84920. 0025h VPEND Pen device
  84921. 0026h APM Advanced Power Management
  84922. 0026h VPOWERD Y Y (Win95) power management
  84923. 0027h VXDLDR N Y Y (Win4Wg 3.11/Win95) VXD Loader
  84924. 0028h NDIS N Y Y (Win4Wg 3.11) Network Driver Interface Spec
  84925. 0029h ???
  84926. 002Ah VWIN32 N Y (Win95)
  84927. 002Bh VCOMM N Y Y (Win4Workgroups 3.11) DOS386 VCOMM Device
  84928. 002Ch SPOOLER N N Windows95 print spooler
  84929. 002Dh W32S Y N Y WIN32s 32-bit extension to Windows API
  84930. 002Eh ???
  84931. 002Fh ???
  84932. 0030h MACH32 N N Y ATI Mach32 video card
  84933. 0031h NETBEUI N N N (Win4Workgroups 3.11) NETBEUI
  84934. 0032h SERVER N Y Y (Win4Workgroups 3.11) Int21 File Server
  84935. 0032h VSERVER N Y (Win95) Int21 File Server
  84936. 0033h CONFIGMG Y Y (Win95)
  84937. 0033h EDOS N N Windows DOS Box Enhancer by Mom's Software
  84938. 0034h DWCFGMG.SYS Y DOS Plug-and-Play configuration manager
  84939. 0035h SCSIPORT N N (Win95) virtualized access to SCSI adapter
  84940. 0036h VFBACKUP Y Y (Win95)
  84941. 0037h ENABLE Y Y (Win95)
  84942. 0038h VCOND Y Y (Win95)
  84943. 0039h ???
  84944. 003Ah VPMTD N N Y (Win4Workgroups 3.11) IFAX Scheduler Device
  84945. 003Bh DSVXD Y N DoubleSpace VxD from MS-DOS v6.x
  84946. 003Ch ISAPNP N N (Win95)
  84947. 003Dh BIOS Y Y (Win95)
  84948. 003Eh WSOCK Y Y (Win95) WinSock
  84949. 003Fh WSIPX N N (Win95) IPX WinSock
  84950. 0040h IFSMGR N N (Win95)
  84951. 0041h VCDFSD N N (Win95) CD-ROM File System Driver (MSCDEX)
  84952. 0042h MRCI2 N N (Win95) DriveSpace3
  84953. 0043h PCI N N (Win95)
  84954. 0048h PERF N N (Win95)
  84955. 004Ah MTRR N N (Win95SR2) PPro/P-II MTRR enumerator???
  84956. 004Bh NTKERN N Y (Win95SR2)
  84957. 0051h ISAPNP N N (Win95) ISA Plug-and-Play manager
  84958. 008Dh ESDI_506 N N (Win95) MFM/RLL/ESDI disk driver
  84959. 0090h voltrack N N (Win95) Volume Tracker
  84960. 00FDh FAKEIDE N N (Chicago)
  84961. 0102h CV1 N N Microsoft C/C++ 7.00+ CodeView for Windows
  84962. 011Fh VFLATD N Y (Win95)
  84963. 0200h VIPX Y Y NetWare Virtual IPX Driver
  84964. 0200h VTEMPD dummy template driver by Ray Patch
  84965. 0201h VNWLSERV N N NetWare Lite 1.1 Server (SERVER.EXE)
  84966. 0202h WINICE Y Y SoftICE/W
  84967. 0202h SICE Y Y
  84968. 0203h VCLIENT N Y NetWare Lite 1.1+ Client
  84969. 0205h VCAFT N N Novell Virtual CAFT Driver (LANalyzer for Win)
  84970. 0205h BCW Y Y Nu-Mega Bounds Checker for Windows
  84971. 0206h VTXRX N N Novell Virtual TXRX Driver (LANalyzer for Win)
  84972. 0207h DPMS N Y N Novell DOS Protected Mode Services
  84973. 0234h VCOMMUTE Y Y PC Tools Commute
  84974. 0442h VTDAPI N Y MMSys Win386 VTAPI Device
  84975. 0443h ???
  84976. 0444h VADMAD Autoinitialize DMA (Windows 3.0)
  84977. 0445h VSBD Y Y WinResKit: Sound Blaster Device
  84978. 0446h VADLIBD Y Y Y MMSys Win386 AdLib Device (v3.x)
  84979. 0447h ???
  84980. 0448h SETULTRA Gravis UltraSound setup
  84981. 0449h vjoyd N Y (Win95) joystick
  84982. 044Ah mmdevldr Y Y (Win95)
  84983. 044Bh ???
  84984. 044Ch msmpu401 N N (Win95) MPU-401 MIDI driver
  84985. 044Ch cwdmidi Y Y (Crystal???) MIDI driver
  84986. 044Dh msopl N N (Win95) OPL-3 (SoundBlaster FM) driver
  84987. 044Eh mssblst N N (Win95) SoundBlaster MIDI driver
  84988. 045Dh VflatD N Y dva.386, part of WIN32s
  84989. 045Eh ???
  84990. 045Fh mssndsys Microsoft Sound System audio driver
  84991. 045Fh azt16 Y Y Aztech Sound Galaxy 16 audio driver
  84992. 0460h UNIMODEM N Y Universal Modem driver
  84993. 0480h VNetSup N Y Y (Win4Workgrps 3.11) Virtual Network Support
  84994. 0481h VRedir N N N (Win4Workgroups 3.11) Redirector File System
  84995. 0481h VREDIR N N (Win95) Redirector File System driver
  84996. 0482h VBrowse Y Y Win386 Virtual Browser
  84997. 0482h SNAPVXD Y Y (Win95)
  84998. 0483h VSHARE N N (Win4Workgroups) Virtual SHARE
  84999. 0483h VSHARE Y Y (Win95) Virtual SHARE
  85000. 0484h IFSMgr Y N Y (Win4Wg 3.11) Installable File System Manager
  85001. 0485h ??? ???
  85002. 0486h VFAT N Y Y (Win4Workgroups 3.11) Win386 HPFS Driver
  85003. 0487h NWLINK Y Y Win386 Virtual Packet Exchange Protocol
  85004. 0487h NWSUP Y N N NetWare Vnetbios shim
  85005. 0488h VTDI N N (Win95)
  85006. 0489h VIP Y N (Win95)
  85007. 0489h FTCVIP Y Y Frontier Technologies' VIP
  85008. 048Ah VTCP Y
  85009. 048Ah MSTCP Y N (Win95) TCP stack
  85010. 048Ah FTCTDI Y Y Future Technologies' TCP stack
  85011. 048Bh VCache N Y Y (Win4Workgroups 3.11) Virtual File Cache
  85012. 048Bh VCACHE Y Y (Win95) disk cache
  85013. 048Ch ??? ???
  85014. 048Dh RASMAC Y Y enhanced mode Win4Workgroups RASMAC device
  85015. 048Eh NWREDIR Y Y (Win95)
  85016. 048Fh ??? ???
  85017. 0490h ??? ???
  85018. 0491h FILESEC (Win95) File Access Control Manager
  85019. 0492h NWSERVER (Win95)
  85020. 0493h SECPROV (Win95) Security Provider
  85021. 0494h NSCL Y Y (Win95)
  85022. 0495h AFVXD N N (Win95)
  85023. 0496h NDIS2SUP (W4Wg???)
  85024. 0497h MSODISUP N N (W4Wg???)
  85025. 0498h Splitter N N (Win95)
  85026. 0499h PPPMAC Y Y (Win95)
  85027. 049Ah VDHCP Y Y (Win95)
  85028. 049Bh VNBT Y Y (Win95) NetBIOS-over-TCP/IP driver
  85029. 049Ch ???
  85030. 049Dh LOGGER (Win95)
  85031. 04A2h IRLAMP IrDA Infrared Enumerator VxD
  85032. 097Ch PCCARD N Y (Win95) (see INT 20/VxD=097Ch)
  85033. 1020h VCV Microsoft C/C++ 7.00 CodeView
  85034. 1021h VMB Y Y Microsoft C/C++ 7.00 WXSRVR
  85035. 1022h Vpfd Y Y Microsoft C/C++ 7.00
  85036. 1025h MMD Y Y Microsoft C/C++ 8.00, Visual C/C++ 1.00
  85037. 2020h PIPE Y Y by Thomas W. Olson, in Windows/DOS DevJrn 5/92
  85038. 21EAh VADLIBWD N Y Adlib Waveform Driver by John Ridges
  85039. 2200h VFINTD Y Y Norton VFINTD (Norton Desktop)
  85040. 22C0h ??? Y Rational Systems DOS/4GW ???
  85041. 2402h ZMAX N N Qualitas 386MAX v7 DOSMAX handler
  85042. 24A0h VNSS N Y Norton Screen Saver (Norton Desktop)
  85043. 24A1h VNDWD Y Y Norton VNDWD Device (Norton Desktop)
  85044. 24A2h SYMEvent Y Y Norton Utilities v8
  85045. 2540h VILD Y N INTERLNK client from MS-DOS v6.x
  85046. 2640h VASBID N Y WinResKit: Artisoft Sounding Board Device
  85047. 2860h COMMTASK N N Y Windows 386-mode preemptive tasker by James
  85048. A. Kenemuth of Interabang Computing
  85049. 28A0h PHARLAPX Y PharLap inter-VM communications DLL
  85050. 28A1h PharLap Y Y Y PharLap 386|DOS-Extender DOSXNT.386
  85051. 28C0h VXD N Y Y Generic VxD for real and protected mode by
  85052. Andrew Schulman in MSJ February 1993
  85053. 28C1h PUSHKEYS VKD_Force_Keys device
  85054. 28C2h VCR3D Virtual CR3, by A.Schulman in MSJ October 1992
  85055. 2925h EDOS Y Y Enhanced DOS by Firefly Software
  85056. 292Dh VSBPD Y Y Sound Blaster Pro
  85057. 295Ah GRVSULTR Y Y Gravis UltraSound / UltraSound ACE
  85058. 3048h FTCTCPIP N Y Frontier Technologies' TCP/IP stack
  85059. 3049h ??? (called by FNFSC32.VXD, FrontierTech's VNFSD)
  85060. 304Ch DWCFGMG.SYS Y Plug-and-Play configuration access
  85061. 3098h VstlthD N N N for QEMM Stealth ROM mode
  85062. 3099h VVidramD Y N for QEMM VIDRAM support
  85063. 30F6h WSVV N Y (Win95) WinSock for Voice-View Modems???
  85064. 310Eh WPS N Y MS DevNet CD-ROM: Windows Process Status
  85065. 3110h VGSSD Y Y VSGLX16.386 for Aztech Sound Galaxy 16
  85066. 313Bh PMC Power Management Coordinator
  85067. 318Ah LMOUSE Y Y (Win95) Logitech mouse???
  85068. 31CFh STAT.386 Ton Plooy's processor statistics VxD
  85069. 3202h VdspD N N (Win95)
  85070. 3203h vpasd N N (Win95) Pro Audio Spectrum driver
  85071. 32A4h SBAWE Y Y (Win95) SoundBlaster AWE driver
  85072. 32A5h VSB16 N N (Win95) SoundBlaster 16 driver
  85073. 32CBh VFRAD Y Y Dr.Franz - Simultan's diagnotics VFRAD.386
  85074. 32DCh NV3RM N Y (Win95SR2)
  85075. 3354h Discover N Y (Nuts&Bolts) Discover
  85076. 33AAh DECCORE Y Y (Win95) DEC Pathworks core VxD
  85077. 33B4h DECLICL N N (Win95)
  85078. 33F0h VIWD Y Y Gravis UltraSound Plug-n-Play Interwave v1.x
  85079. 33FCh ASPIENUM N N (Win95)
  85080. 34DCh MAGNARAM N Y Quarterdeck MagnaRAM (MAGNA31.VXD/MAGNA95.VXD)
  85081. 357Eh DSOUND Y Y (Win95) DirectSound
  85082. 3584h VSNDSYS Y Y (Win95SR2)
  85083. 35C5h LUGEPS Y Y Lugaru's Epsilon editor
  85084. 36AEh AIB-PC.386 Y Y Sunset Laboratory interface hardware driver
  85085. 377Bh MX1501HAD Cherry keyboard chipcard reader
  85086. 38BEh Vheapx N Y (Nuts&Bolts) Virtual Heap Expander
  85087. 38C0h Bombshel N Y (Nuts&Bolts) Bombshelter
  85088. 38DAh VIWD Y Y UltraSound PnP InterWave driver v2.0beta
  85089. 39E6h A3D N N (Win95SR2)
  85090. 3BFCh CWCSPUD N N (Win95SR2)
  85091. 3BFDh CWCPROXY N N (Win95SR2)
  85092. 3BFEh CWCMMSYS N Y (Win95SR2)
  85093. 3BFFh CWCDSND N N (Win95SR2)
  85094. 3C78h VGARTD N N (Win95SR2)
  85095. 3EE5h WINTEL.VXD "WinTel" Windows remote-control program
  85096. (see also PORT 063Eh)
  85097. 4321h POSTMSG Y Y (see #02712)
  85098. 4321h VPCD N N PCache
  85099. 4321h avvxp500 N N (Win95) VxP500 driver
  85100. 6001h REGVXD Y Y Windows95 Registry Monitor helper
  85101. 7A5Fh SIWVID Y Y Y Soft-ICE for Windows video driver
  85102. 7FE0h VSWITCHD Y N by Jeff Prosise
  85103. 7FE0h VWFD N Y Y reports windowed/fullscreen state; by Neil
  85104. Sandlin of Microsoft, shipped with ANSIPLUS
  85105. 7FE1h VWATCHD N Y Y basic driver w/ no functionality except tracing
  85106. by Keith Jin of Microsoft PSS
  85107. 7FE5h VFINTD N Y Y Virtual Floppy Interrupt trapper by Neil
  85108. Sandlin of Microsoft
  85109. 7FE7h VMPAGES N Y Y demonstration of exporting VxD services, by
  85110. Neil Sandlin of Microsoft
  85111. 7FE8h VPOSTD Y Y PostMessage() demo by Curtis J. Palmer of MS
  85112. 7FE9h VIdleD N N N demonstration of Call_When_Idle function, by
  85113. Bernie McIlroy of Microsoft
  85114. 7FEBh VMIOD N N N Virtual Monitor I/O Traffic Device, by Neil
  85115. Sandlin of Microsoft
  85116. 7FEDh VMIRQD N N N Virtual Monitor IRQ Traffic Device, by Neil
  85117. Sandlin of Microsoft
  85118. 8888h VbillD Bill Potvin II's for reversing Compaq LTE video
  85119. EEEEh VEPSD N N Virtual Extended Paging Services for
  85120. Borland C++ v4.0
  85121. Notes: The high bit of the VxD ID is reserved for future use. Originally,
  85122. the next 10 bits were the OEM number which was assigned by Microsoft,
  85123. and the low 5 bits were the device number. Currently, Microsoft
  85124. assigns VxD IDs individually for each driver; send blank email to
  85125. vxdid@microsoft.com for more information.
  85126. "CallOut"=Y indicates that the VxD uses the INT 2F/AX=1607h/BX=VxDID
  85127. device callout interface; "PM" and "V86" indicate whether the VxD
  85128. provides an API entry point in protected mode and Virtual-86 mode
  85129. (e.g. DOS boxes)
  85130. --------W-2F1684BX0001-----------------------
  85131. INT 2F - MS Windows95 - VMM - GET API ENTRY POINT
  85132. AX = 1684h
  85133. BX = 0001h (virtual device ID for VMM) (see #02642)
  85134. ES:DI = 0000h:0000h
  85135. Return: ES:DI -> VxD API entry point (see #02643)
  85136. 0000h:0000h if the VxD does not support an API
  85137. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  85138. (Table 02643)
  85139. Call Windows VMM 16-bit entry point with:
  85140. AX = function number
  85141. ---registry functions---
  85142. 0100h "RegOpenKey"
  85143. STACK: DWORD -> DWORD for returned key handle
  85144. DWORD -> ASCIZ registry key name
  85145. DWORD HKEY (see #02644)
  85146. 0101h "RegCreateKey"
  85147. STACK: DWORD -> DWORD for returned key handle
  85148. DWORD -> ASCIZ registry key name
  85149. DWORD HKEY (see #02644)
  85150. 0102h "RegCloseKey"
  85151. STACK: DWORD key handle from RegOpenKey or RegCreateKey
  85152. 0103h "RegDeleteKey"
  85153. STACK: DWORD -> ASCIZ registry key name
  85154. DWORD HKEY (see #02644)
  85155. 0104h "RegSetValue"
  85156. STACK: DWORD ???
  85157. DWORD -> ???
  85158. DWORD ???
  85159. DWORD -> ???
  85160. DWORD HKEY (see #02644)
  85161. 0105h "RegQueryValue"
  85162. STACK: DWORD -> DWORD for ???
  85163. DWORD -> ASCIZ ???
  85164. DWORD -> ASCIZ ???
  85165. DWORD HKEY (see #02644)
  85166. 0106h "RegEnumKey"
  85167. STACK: DWORD ???
  85168. DWORD -> ASCIZ ???
  85169. DWORD ???
  85170. DWORD HKEY (see #02644)
  85171. 0107h "RegDeleteValue"
  85172. 0108h "RegEnumValue"
  85173. STACK: DWORD -> DWORD for ???
  85174. DWORD -> BYTE ???
  85175. DWORD -> DWORD for ???
  85176. DWORD -> DWORD for ???
  85177. DWORD -> DWORD for ???
  85178. DWORD -> ASCIZ ???
  85179. DWORD ???
  85180. DWORD HKEY (see #02644)
  85181. 0109h "RegQueryValueEx"
  85182. 010Ah "RegSetValueEx"
  85183. 010Bh "RegFlushKey"
  85184. 010Ch "RegLoadKey"
  85185. 010Dh "RegUnLoadKey"
  85186. 010Eh "RegSaveKey"
  85187. 010Fh "RegRestore"
  85188. 0110h "RegRemapPreDefKey"
  85189. Return: parameters popped from stack
  85190. DX:AX = return value
  85191. (Table 02644)
  85192. Values for Windows95 VMM predefined HKEY values:
  85193. 80000000h HKEY_CLASSES_ROOT
  85194. 80000001h HKEY_CURRENT_USER
  85195. 80000002h HKEY_LOCAL_MACHINE
  85196. 80000003h HKEY_USERS
  85197. 80000004h HKEY_PERFORMANCE_DATA
  85198. 80000005h HKEY_CURRENT_CONFIG
  85199. 80000006h HKEY_DYN_DATA
  85200. SeeAlso: #02643
  85201. --------W-2F1684BX0003-----------------------
  85202. INT 2F - MS Windows - VPICD - GET API ENTRY POINT
  85203. AX = 1684h
  85204. BX = 0003h (virtual device ID for VPICD device) (see #02642)
  85205. ES:DI = 0000h:0000h
  85206. Return: ES:DI -> VxD API entry point (see #02645)
  85207. 0000h:0000h if the VxD does not support an API
  85208. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  85209. (Table 02645)
  85210. Call VPICD API entry point with:
  85211. EAX = function number
  85212. 0000h get version
  85213. Return: AX = binary version (AH=major, AL=minor)
  85214. 0001h virtualize timer???
  85215. 0002h unvirtualize timer???
  85216. --------W-2F1684BX0005-----------------------
  85217. INT 2F - MS Windows - VTD - GET API ENTRY POINT
  85218. AX = 1684h
  85219. BX = 0005h (virtual device ID for VTD device) (see #02642)
  85220. ES:DI = 0000h:0000h
  85221. Return: ES:DI -> VxD API entry point (see #02646)
  85222. 0000h:0000h if the VxD does not support an API
  85223. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  85224. (Table 02646)
  85225. Call VTD.386/VTD.VXD entry point with:
  85226. AX = function number
  85227. 0000h get VTD version number
  85228. Return: CF clear
  85229. AH = major version
  85230. AL = minor version
  85231. 0100h get current clock tick time
  85232. Return: EDX:EAX = clock tick time in 840ns units since Windows
  85233. was started
  85234. 0101h get current system time in milliseconds
  85235. Return: EAX = time in milliseconds that Windows has been
  85236. running
  85237. 0102h get current virtual machine time
  85238. Return: EAX = cumulative amount of time the virtual machine has
  85239. been active, in milliseconds
  85240. Note: this entry point should only be called directly when TOOLHELP.DLL
  85241. TimerCount() cannot be called
  85242. SeeAlso: #01268,#01270,#01269 at INT 20"Windows"
  85243. --------W-2F1684BX0006-----------------------
  85244. INT 2F P - MS Windows95 - V86MMGR - GET API ENTRY POINT
  85245. AX = 1684h
  85246. BX = 0006h (virtual device ID for V86MMGR device) (see #02642)
  85247. ES:DI = 0000h:0000h
  85248. Return: ES:DI -> VxD API entry point (see #02647)
  85249. 0000h:0000h if the VxD does not support API in current mode
  85250. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  85251. (Table 02647)
  85252. Call V86MMGR entry point with:
  85253. EAX = function number
  85254. 0000h get V86MMGR version
  85255. Return: CF clear
  85256. AH = major version
  85257. AL = minor version
  85258. 0001h get ???
  85259. Return: CF clear
  85260. EAX = status bits
  85261. bit 0: ???
  85262. bit 1: ???
  85263. bit 2: ???
  85264. bit 3: ???
  85265. bit 4: ???
  85266. else
  85267. Return: CF set
  85268. --------W-2F1684BX0009-----------------------
  85269. INT 2F P - MS Windows - REBOOT - GET API ENTRY POINT
  85270. AX = 1684h
  85271. BX = 0009h (virtual device ID for REBOOT device) (see #02642)
  85272. ES:DI = 0000h:0000h
  85273. Return: ES:DI -> VxD API entry point (see #02648)
  85274. 0000h:0000h if the VxD does not support an API
  85275. SeeAlso: INT 14/AH=17h"FOSSIL",INT 16/AX=E0FFh
  85276. (Table 02648)
  85277. Call REBOOT protected-mode entry point with:
  85278. AX = function
  85279. 0100h warm boot
  85280. Return: never
  85281. Note: broadcasts "Reboot_Processor" message, which is caught
  85282. by the VKD device
  85283. 0201h set KERNEL Ctrl-Alt-Del handler
  85284. ES:DI -> new Ctrl-Alt-Del handler
  85285. DS:SI -> KERNEL reboot sanity check byte
  85286. Return: CF clear
  85287. Notes: if an application installs its own handler and then
  85288. chains to Windows' handler, Windows will no longer
  85289. be able to detect hung applications, and will always
  85290. produce an "Application not responding" dialog
  85291. DS must contain a writable, fixed selector because
  85292. the provided address is converted to a linear address
  85293. before being stored
  85294. when Ctrl-Alt-Del is pressed in the system VM, Reboot
  85295. sets the sanity check byte to zero, schedules a
  85296. 750ms wait, and then tests whether the check byte is
  85297. still zero; if not, it displays a message that there
  85298. is no hung application and then exits
  85299. 0202h get KERNEL Ctrl-Alt-Del handler
  85300. Return: CF clear
  85301. ES:DI -> current Ctrl-Alt-Del handler
  85302. Note: the default handler is located in KERNEL
  85303. 0203h display "Application not responding" dialog box
  85304. ES:DI -> ASCIZ name of hung application
  85305. Return: never if user pressed Ctrl-Alt-Del a second time
  85306. CF clear
  85307. AX = result
  85308. 0000h user pressed Esc
  85309. 0001h user pressed Enter
  85310. Note: this function is used by the default Windows
  85311. Ctrl-Alt-Del handler
  85312. 0204h set/reset protected-mode INT 01 handler
  85313. CX:EDX -> new protected-mode INT 01 handler
  85314. CX = 0000h restore protected-mode INT 01 handler
  85315. Return: CF clear
  85316. Notes: if CX is nonzero, the current handler address is saved
  85317. internally before the new handler is set; this saved
  85318. address is then used when CX is zero on entry
  85319. used by Windows' default Ctrl-Alt-Del handler; actual
  85320. fatal exit to DOS will be done on next INT 01
  85321. Warning: opened files are not closed and remain open as
  85322. orphaned files in DOS
  85323. Note: functions 0201h and 0203h are not useful outside the system VM
  85324. SeeAlso: #01271,#01273
  85325. --------W-2F1684BX000A-----------------------
  85326. INT 2F P - MS Windows - VDD - GET API ENTRY POINT
  85327. AX = 1684h
  85328. BX = 000Ah (virtual device ID for VDD device) (see #02642)
  85329. ES:DI = 0000h:0000h
  85330. Return: ES:DI -> VxD API entry point (see #02649)
  85331. 0000h:0000h if the VxD does not support API in current mode
  85332. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  85333. (Table 02649)
  85334. Call VDD entry point with:
  85335. EAX = function
  85336. 0000h get VDD version
  85337. Return: CF clear
  85338. AH = major version
  85339. AL = minor version
  85340. Note: also performs an internal initialization
  85341. 0001h ???
  85342. Return: ECX = ???
  85343. ???
  85344. 0002h
  85345. 0003h
  85346. 0004h
  85347. 0005h
  85348. 0006h
  85349. 0007h
  85350. 0008h
  85351. 0009h
  85352. 0080h
  85353. 0081h
  85354. 0082h
  85355. 0083h
  85356. 0084h
  85357. 0085h
  85358. 0086h
  85359. 0087h
  85360. 0088h
  85361. 0089h
  85362. else
  85363. Return: nothing
  85364. --------W-2F1684BX000C-----------------------
  85365. INT 2F - MS Windows - VMD - GET API ENTRY POINT
  85366. AX = 1684h
  85367. BX = 000Ch (virtual device ID for VMD device) (see #02642)
  85368. ES:DI = 0000h:0000h
  85369. Return: ES:DI -> VxD API entry point (see #02650)
  85370. 0000h:0000h if the VxD does not support API in current mode
  85371. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  85372. (Table 02650)
  85373. Call VMOUSE entry point with:
  85374. EAX = function number
  85375. 0000h get VMOUSE version
  85376. Return: CF clear
  85377. AH = major version
  85378. AL = minor version
  85379. 0001h
  85380. EBX = ???
  85381. ECX = ???
  85382. Return: CF clear if successful
  85383. CF set on error (e.g. fn 0003h not yet called)
  85384. 0002h ??? (calls "test system VM handle")
  85385. Return: CF clear if successful (in system VM)
  85386. CF set on error
  85387. 0003h ???
  85388. ECX = ???
  85389. DX = ???
  85390. Return: CF clear
  85391. 0004h ???
  85392. Note: invokes Call_Priority_VM_Event
  85393. 0005h get mouse port data
  85394. Return: CF clear
  85395. AL = ??? (04h)
  85396. AH = mouse IRQ interrupt number (IRQ4=0Ch,etc.)
  85397. CX = mouse I/O port address (e.g. 03F8h)
  85398. DX = COM port number??? (0001h for mouse on COM1)
  85399. 0100h NOP???
  85400. Return: CF clear
  85401. 0101h init???
  85402. Return: CF clear
  85403. Note: appears to be the same as fn 0005h, but returns no data
  85404. 0102h unimplemented
  85405. Return: CF set
  85406. 0103h check ???
  85407. Return: AX = status (0000h/0001h)
  85408. Note: checks flag set by fn 0003h
  85409. else
  85410. Return: CF set
  85411. SeeAlso: #02649,#02651
  85412. --------W-2F1684BX000D-----------------------
  85413. INT 2F P - MS Windows - VKD - GET API ENTRY POINT
  85414. AX = 1684h
  85415. BX = 000Dh (virtual device ID for VKD device) (see #02642)
  85416. ES:DI = 0000h:0000h
  85417. Return: ES:DI -> VxD API entry point (see #02651)
  85418. 0000h:0000h if the VxD does not support API in current mode
  85419. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  85420. (Table 02651)
  85421. Call VKD entry point with:
  85422. EAX = function
  85423. 0000h get VKD version
  85424. Return: CF clear
  85425. AH = major version
  85426. AL = minor version
  85427. 0001h ???
  85428. EBX = VM handle or 00000000h to use ??? VM handle
  85429. CH = ???
  85430. CL = ???
  85431. EDX = ??? or FFFFFFFFh
  85432. Return: CF clear if successful
  85433. CF set on error
  85434. else
  85435. Return: CF set
  85436. SeeAlso: #02650,#02652
  85437. --------W-2F1684BX000E-----------------------
  85438. INT 2F P - MS Windows - VCD - GET API ENTRY POINT
  85439. AX = 1684h
  85440. BX = 000Eh (virtual device ID for VCD device) (see #02642)
  85441. ES:DI = 0000h:0000h
  85442. Return: ES:DI -> VxD API entry point (see #02652)
  85443. 0000h:0000h if the VxD does not support API in current mode
  85444. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  85445. (Table 02652)
  85446. Call VCD entry point with:
  85447. EDX = function number
  85448. 0000h get VCD version
  85449. Return: CF clear
  85450. AH = major version
  85451. AL = minor version
  85452. 0001h get ???
  85453. Return: CF clear
  85454. AX = bit mask of ???
  85455. 0002h get ???
  85456. CX = COM port number
  85457. Return: CF clear
  85458. DX:AX -> ???
  85459. 0003h set ???
  85460. CX = COM port number
  85461. DX:AX -> new ???
  85462. Return: CF clear
  85463. 0004h acquire COM port
  85464. AX = ???
  85465. CX = COM port number
  85466. Return: CF clear
  85467. AX = ???
  85468. EBX = ???
  85469. DX = ???
  85470. 0005h release COM port
  85471. CX = COM port number
  85472. Return: CF clear
  85473. 0006h ???
  85474. Return: CF set
  85475. AL = 00h
  85476. else
  85477. Return: CF set
  85478. EAX = FFFFFFFFh
  85479. Note: these functions are apparently only available from the system VM,
  85480. returning CF set and EAX=FFFFFFFFh otherwise
  85481. SeeAlso: #02651,#02653
  85482. --------W-2F1684BX000F-----------------------
  85483. INT 2F P - MS Windows - VPD - GET API ENTRY POINT
  85484. AX = 1684h
  85485. BX = 000Fh (virtual device ID for VPD device) (see #02642)
  85486. ES:DI = 0000h:0000h
  85487. Return: ES:DI -> VxD API entry point (see #02653)
  85488. 0000h:0000h if the VxD does not support API in current mode
  85489. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  85490. (Table 02653)
  85491. Call VPD entry point with:
  85492. EDX = function number
  85493. 0000h get VPD version
  85494. Return: CF clear
  85495. AH = major version
  85496. AL = minor version
  85497. DX = ??? (CB01h)
  85498. 0001h get valid??? printers
  85499. Return: CF clear
  85500. AX = bitmask of ??? printers (bits 0-2)
  85501. 0002h get ??? for printer
  85502. CX = printer port (0-2)
  85503. Return: CF clear if successful
  85504. BX:AX = ???
  85505. CF set on error (invalid port number)
  85506. 0003h set ??? for printer
  85507. CX = printer port (0-2)
  85508. BX:AX = ???
  85509. Return: CF clear if successful
  85510. CF set on error (invalid port number)
  85511. 0004h ???
  85512. CX = printer port (0-2)
  85513. EAX = VM handle
  85514. Return: CF clear if successful
  85515. CF set on error (invalid port number)
  85516. 0005h ???
  85517. CX = printer port (0-2)
  85518. EAX = VM handle
  85519. Return: CF clear if successful
  85520. CF set on error (invalid port number or ???)
  85521. 0006h-000Eh unused
  85522. Return: CF set
  85523. 000Fh ???
  85524. CX = printer port (0-2)
  85525. AX = ???
  85526. Return: CF clear if successful
  85527. CF set on error (e.g. invalid port number)
  85528. 0010h ???
  85529. CX = printer port (0-2)
  85530. Return: CF clear if successful
  85531. CF set on error (e.g. invalid port number)
  85532. 0011h ???
  85533. CX = printer port (0-2)
  85534. Return: CF clear if successful
  85535. CF set on error (e.g. invalid port number)
  85536. 0012h get port status
  85537. CX = printer port (0-2)
  85538. Return: CF clear if successful
  85539. AX = port status (see #P0658 at PORT 03BCh"LPT")
  85540. CF set on error (e.g. invalid port number)
  85541. else
  85542. Return: CF set
  85543. Note: these functions are apparently only available from the system VM,
  85544. returning CF set
  85545. SeeAlso: #02652,#02654
  85546. --------W-2F1684BX0010-----------------------
  85547. INT 2F - MS Windows - IOS - GET API ENTRY POINT
  85548. AX = 1684h
  85549. BX = 0010h (virtual device ID for IOS device) (see #02642)
  85550. ES:DI = 0000h:0000h
  85551. Return: ES:DI -> VxD API entry point (see #02654)
  85552. 0000h:0000h if the VxD does not support API in current mode
  85553. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  85554. (Table 02654)
  85555. Call IOS entry point with:
  85556. EAX = function number
  85557. 0000h ???
  85558. Return: CF clear if successful
  85559. AX = 0000h
  85560. CF set on error
  85561. AX = FFFFh
  85562. 0001h check if ???
  85563. Return: CF clear if successful
  85564. AX = 0000h
  85565. CF set on error
  85566. AX = FFFFh
  85567. 0002h requestor services???
  85568. DL = service number???
  85569. Return: CF clear if successful
  85570. AX = 0000h
  85571. DX = ???
  85572. CF set on error
  85573. AX = FFFFh
  85574. Note: calls "IOS_Requestor_Service" (see INT 20"Windows")
  85575. 0003h ??? (copies five bytes of data internally)
  85576. Return: CF clear if successful
  85577. AX = 0000h
  85578. EDX = ???
  85579. CF set on error
  85580. AX = FFFFh
  85581. else
  85582. Return: CF set
  85583. AX = FFFFh
  85584. SeeAlso: #02653,#02655
  85585. --------W-2F1684BX0011-----------------------
  85586. INT 2F - MS Windows - VMCPD - GET API ENTRY POINT
  85587. AX = 1684h
  85588. BX = 0011h (virtual device ID for VMCPD device) (see #02642)
  85589. ES:DI = 0000h:0000h
  85590. Return: ES:DI -> VxD API entry point (see #02655)
  85591. 0000h:0000h if the VxD does not support API in current mode
  85592. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  85593. (Table 02655)
  85594. Call Windows95 VMCPD protected-mode entry point with:
  85595. EAX = function number
  85596. 0000h get VMCPD version
  85597. Return: CF clear
  85598. AH = major version
  85599. AL = minor version
  85600. 0001h get ??? flags
  85601. Return: CF clear
  85602. AX = ??? flags
  85603. bit 0: ???
  85604. bit 1: ???
  85605. bit 2: ???
  85606. bit 3: ???
  85607. else
  85608. Return: CF set
  85609. SeeAlso: #02654,#02656
  85610. --------W-2F1684BX0015-----------------------
  85611. INT 2F - MS Windows - DOSMGR - GET API ENTRY POINT
  85612. AX = 1684h
  85613. BX = 0015h (virtual device ID for DOSMGR device) (see #02642)
  85614. ES:DI = 0000h:0000h
  85615. Return: ES:DI -> VxD API entry point (see #02656,#01282)
  85616. 0000h:0000h if the VxD does not support an API
  85617. SeeAlso: #01282 at INT 20"Windows"
  85618. (Table 02656)
  85619. Call DOSMGR entry point with:
  85620. AX = 0000h get DOSMGR version
  85621. Return: CF clear
  85622. AX = version (AH = major, AL = minor)
  85623. AX = 0001h set critical focus
  85624. Return: CF clear
  85625. AX = 0002h crash current virtual machine
  85626. Return: never
  85627. Note: displays message box stating that "application has been
  85628. stopped by the DOSMGR device"
  85629. AX = 0003h enter critical section
  85630. Note: this function assumes that the code for INT 2A/AX=8001h
  85631. and INT 2A/AX=8002h have been modified for Windows
  85632. AX = 0004h get VM ID byte
  85633. Return: CF clear if successful
  85634. ES:DI -> VM ID byte
  85635. CF set on error
  85636. Note: this function fails if the INT 2A modifications have not
  85637. yet been applied
  85638. AX = 0005h inform Windows of possible media change
  85639. BL = drive number (00h=A:)
  85640. Return: CF clear if successful
  85641. CF set on error
  85642. SeeAlso: #01282 at INT 20"Windows",#02655,#02657
  85643. --------W-2F1684BX0017-----------------------
  85644. INT 2F U - MS Windows - SHELL - GET API ENTRY POINT
  85645. AX = 1684h
  85646. BX = 0017h (virtual device ID for SHELL device) (see #02642)
  85647. ES:DI = 0000h:0000h
  85648. Return: ES:DI -> VxD API entry point (see #02657)
  85649. 0000h:0000h if the VxD does not support an API
  85650. SeeAlso: AX=1684h/BX=0021h,#01283 at INT 20"Windows"
  85651. (Table 02657)
  85652. Call SHELL entry point with:
  85653. EDX = function number (0000h-0027h,0100h-0108h, mostly unknown)
  85654. 0000h get version number
  85655. Return: AX = version number
  85656. EBX = system VM handle
  85657. 0001h "SHELL_Get_SYSVM_Info" get system VM information
  85658. Return: CF clear
  85659. AX bit 0 set if system VM executing exclusively
  85660. BX = background time slice priority
  85661. CX = foreground time slice priority
  85662. SI = minimum time slice in milliseconds
  85663. 0002h "SHELL_Set_SYSVM_Info" set system VM information
  85664. AX bit 0 set if system VM should execute exclusively (ignored?)
  85665. BX = background time slice priority (1-10000)
  85666. CX = foreground time slice priority (1-10000)
  85667. SI = minimum time slice in milliseconds (1-10000)
  85668. Return: CF clear if successful
  85669. 0003h "SHELL_Crt_VM" create a virtual machine
  85670. ES:EDI -> SEB structure (see #02658)
  85671. Return: CF clear if successful
  85672. EAX = VM handle
  85673. CF set on error
  85674. EDX,EAX = result from GetSetDetailedVMError()
  85675. 0004h "SHELL_Destroy_VM" destroy a virtual machine
  85676. EBX = VM handle (not system VM)
  85677. Return: nothing
  85678. 0005h "SHELL_Set_Focus"
  85679. EBX = VM handle
  85680. ECX = ???
  85681. Return: nothing
  85682. 0006h "SHELL_Get_VM_State"
  85683. EBX = VM handle (not system VM)
  85684. ES:EDI -> ??? structure
  85685. Return: CF clear if successful
  85686. 0007h "SHELL_Set_VM_State"
  85687. EBX = VM handle (not system VM)
  85688. ES:EDI -> ??? structure
  85689. 0008h "SHELL_Debug_Out"
  85690. ???
  85691. Return: ???
  85692. Note: dummy function in retail version of MS Windows
  85693. 0009h "SHELL_VMDA_Init"
  85694. ???
  85695. Return: ???
  85696. 000Ah "SHELL_VMDA_Exit"
  85697. ???
  85698. Return: ???
  85699. 000Bh "SHELL_Get_Message_Txt"
  85700. ???
  85701. Return: ???
  85702. 000Ch "SHELL_Event_Complete"
  85703. ???
  85704. Return: ???
  85705. 000Dh "SHELL_Get_Contention_Info"
  85706. ???
  85707. Return: ???
  85708. 000Eh "SHELL_Get_Clip_Info"
  85709. ???
  85710. Return: ???
  85711. 000Fh "SHELL_Set_Paste"
  85712. ???
  85713. Return: ???
  85714. 0010h "SHELL_Switcher_Assist"
  85715. ???
  85716. Return: ???
  85717. 0011h "SHELL_Get_FileSysChng"
  85718. ???
  85719. Return: ???
  85720. 0012h "SHELL_Query_Destroy"
  85721. ???
  85722. Return: ???
  85723. 0013h "SHELL_SetFocus_Cur_VM" set input focus to current VM
  85724. ???
  85725. Return: ???
  85726. 0014h "SHELL_User_Busy_API"
  85727. ???
  85728. Return: ???
  85729. 0015h "SHELL_Chng_Hot_Key"
  85730. ???
  85731. Return: ???
  85732. 0016h "SHELL_Get_TermInfo"
  85733. ???
  85734. Return: ???
  85735. ---Windows95---
  85736. 0017h ???
  85737. 0018h ???
  85738. 0019h ???
  85739. 001Ah ???
  85740. 001Bh ???
  85741. 001Ch ???
  85742. 001Dh ???
  85743. 001Eh ???
  85744. 001Fh ???
  85745. 0020h ???
  85746. 0021h ???
  85747. 0022h ???
  85748. 0023h ???
  85749. 0024h ???
  85750. 0025h ???
  85751. 0026h ???
  85752. Note: makes VxDCALL 00178002h (see INT 20"Windows")
  85753. 0027h ???
  85754. 0100h get ??? version
  85755. Return: AX = version??? (0400h for Windows95)
  85756. 0101h not implemented
  85757. Return: CF set
  85758. EAX = FFFFFFFFh
  85759. 0102h not implemented
  85760. Return: CF set
  85761. EAX = FFFFFFFFh
  85762. 0103h not implemented
  85763. Return: CF set
  85764. EAX = FFFFFFFFh
  85765. 0104h ???
  85766. 0105h ???
  85767. 0106h ???
  85768. ???
  85769. Return: CF clear if successful
  85770. CF set on error
  85771. 0107h get SDK version for VxD
  85772. AX = VxD identifier
  85773. Return: EAX = VxD ID (high word) and SDK version (low)
  85774. 00000000h if no such VxD loaded
  85775. Note: makes a VMMCALL 0001013Fh (see INT 20"Windows")
  85776. followed by ???
  85777. 0108h ???
  85778. Return: CF set if called from VM other than system VM
  85779. EAX = FFFFFFFFh
  85780. Note: except for functions 0013h,0026h,and 010xh, this API may only be
  85781. called from the system VM
  85782. SeeAlso: #01283 at INT 20"Windows"
  85783. Format of Shell Execution Block (SEB):
  85784. Offset Size Description (Table 02658)
  85785. 00h DWORD PIF flags (see #02659)
  85786. 04h DWORD display flags (see #02660)
  85787. 08h PWORD -> pathname of .EXE to run
  85788. 0Eh PWORD -> argument list
  85789. 14h PWORD -> working drive/directory
  85790. 1Ah WORD desired number of V86 pages for virtual machine
  85791. 1Ch WORD minimum number of V86 pages for VM
  85792. 1Eh WORD foreground priority
  85793. 20h WORD background priority
  85794. 22h WORD maximum KB of EMS
  85795. 24h WORD minimum KB of EMS
  85796. 26h WORD maximum KB of XMS
  85797. 28h WORD minimum KB of XMS
  85798. 2Ah WORD maximum KB of DPMI???
  85799. 2Ch WORD minimum KB of DPMI???
  85800. 2Eh 128 BYTEs title
  85801. Note: the PWORDs at offsets 08h,0Eh, and 14h consist of a DWORD offset
  85802. followed by a WORD selector
  85803. Bitfields for 386 Enhanced Mode PIF flags:
  85804. Bit(s) Description (Table 02659)
  85805. 0 exclusive use of processor when VM is fullscreen
  85806. 1 VM runs in background
  85807. 2 VM runs in window
  85808. 3-4 ???
  85809. 5 Alt-Tab reserved
  85810. 6 Alt-Esc reserved
  85811. 7 Alt-Space reserved
  85812. 8 Alt-Enter reserved
  85813. 9 Alt-PrtSc reserved
  85814. 10 PrtSc reserved
  85815. 11 Ctrl-Esc reserved
  85816. 12 VM will release idle time slice
  85817. 13 VM not allowed to use high memory
  85818. 14 ???
  85819. 15 VM expanded memory not pageable
  85820. 16 VM extended memory not pageable
  85821. 17 Fast paste from clipboard enabled
  85822. 18 VM application memory not pageable
  85823. 30 Close VM when application exits
  85824. SeeAlso: #02658,#02660
  85825. Bitfields for SHELL display options:
  85826. Bit(s) Description (Table 02660)
  85827. 0 emulate text mode
  85828. 1 monitor text port
  85829. 2 monitor low graphics port
  85830. 3 monitor high graphics port
  85831. 7 Retain video memory
  85832. SeeAlso: #02658,#02659
  85833. --------W-2F1684BX001A-----------------------
  85834. INT 2F - MS Windows - VNETWARE - GET API ENTRY POINT
  85835. AX = 1684h
  85836. BX = 001Ah (virtual device ID for VNETWARE device) (see #02642)
  85837. ES:DI = 0000h:0000h
  85838. Return: ES:DI -> VxD API entry point
  85839. 0000h:0000h if the VxD does not support API in current mode
  85840. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  85841. --------W-2F1684BX001D-----------------------
  85842. INT 2F P - MS Windows - WINDEBUG - GET API ENTRY POINT
  85843. AX = 1684h
  85844. BX = 001Dh (virtual device ID for WINDEBUG device) (see #02642)
  85845. ES:DI = 0000h:0000h
  85846. Return: ES:DI -> VxD API entry point
  85847. 0000h:0000h if the VxD does not support API in current mode
  85848. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  85849. --------W-2F1684BX0021-----------------------
  85850. INT 2F PU - MS Windows - PAGEFILE - GET API ENTRY POINT
  85851. AX = 1684h
  85852. BX = 0021h (virtual device ID for PAGEFILE device) (see #02642)
  85853. ES:DI = 0000h:0000h
  85854. Return: ES:DI -> VxD API entry point (see #02661)
  85855. 0000h:0000h if the VxD does not support an API
  85856. SeeAlso: AX=1684h/BX=0017h,#01289 at INT 20"Windows"
  85857. (Table 02661)
  85858. Call PAGEFILE entry point with:
  85859. AX = function
  85860. 0000h get version
  85861. Return: CF clear
  85862. AX = version (AH = major, AL = minor)
  85863. 0001h get swap file info
  85864. DS:SI -> 128-byte buffer for swap file full pathname
  85865. DS:DI -> 128-byte buffer for SPART.PAR full pathname
  85866. Return: CF clear
  85867. AL = pager type (see #02662)
  85868. AH = flags
  85869. bit 7: swap file corrupted
  85870. ECX = maximum size of swap file
  85871. DS:SI buffer filled if paging enabled
  85872. DS:DI buffer filled if permanent swap file
  85873. 0002h delete permanent swap file on exit
  85874. Return: CF clear
  85875. 0003h get current temporary swap file size
  85876. Return: CF clear
  85877. DX:AX = current swap file size in bytes
  85878. 0000h:0000h if permanent swap file
  85879. Note: this API is only available in protected mode, and may only be called
  85880. from the system VM
  85881. SeeAlso: #01289 at INT 20"Windows",#02663
  85882. (Table 02662)
  85883. Values for MS Windows PAGEFILE pager type:
  85884. 00h paging disabled
  85885. 01h MSDOS
  85886. 02h BIOS
  85887. 03h 32-bit disk access
  85888. SeeAlso: #02661
  85889. --------W-2F1684BX0022-----------------------
  85890. INT 2F P - MS Windows - APIX - GET API ENTRY POINT
  85891. AX = 1684h
  85892. BX = 0022h (virtual device ID for APIX device) (see #02642)
  85893. ES:DI = 0000h:0000h
  85894. Return: ES:DI -> VxD API entry point (see #02663)
  85895. 0000h:0000h if the VxD does not support API in current mode
  85896. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  85897. (Table 02663)
  85898. Call APIX protected-mode entry point with:
  85899. AH = function number
  85900. 00h get APIX version
  85901. Return: CF clear
  85902. AH = major version
  85903. AL = minor version
  85904. 01h ???
  85905. Return: CF clear
  85906. AX = number of ???
  85907. 02h NOP
  85908. Return: CF clear
  85909. 03h ???
  85910. Return: CF clear
  85911. AX = 0000h/FFFFh
  85912. else
  85913. Return: CF clear (bug?)
  85914. SeeAlso: #02661,#02666
  85915. --------W-2F1684BX0026-----------------------
  85916. INT 2F P - MS Windows - VPOWERD - GET API ENTRY POINT
  85917. AX = 1684h
  85918. BX = 0026h (virtual device ID for VPOWERD device) (see #02642)
  85919. ES:DI = 0000h:0000h
  85920. Return: ES:DI -> VxD API entry point (see #02664)
  85921. 0000h:0000h if the VxD does not support API in current mode
  85922. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  85923. (Table 02664)
  85924. Call VPOWERD.VXD entry point with:
  85925. AX = function number
  85926. 0000h get VPOWERD version
  85927. Return: DX = 0000h
  85928. AX = version (AH = major, AL = minor)
  85929. 0001h get APM BIOS version
  85930. Return: DX:AX = APM BIOS version
  85931. 0002h get current power management level
  85932. Return: DX:AX = power management level
  85933. 0003h enable/disable power management (see INT 15/AX=5308h)
  85934. ??? = new state of power management
  85935. Return: DX:AX = 0000h:0000h if successful
  85936. else error code (see #02665)
  85937. 0004h set power state (see INT 15/AX=5307h)
  85938. Return: DX:AX = 0000h:0000h if successful
  85939. else error code (see #02665)
  85940. 0005h set system power status
  85941. Return: DX:AX = 0000h:0000h if successful
  85942. else error code (see #02665)
  85943. 0006h restore APM power-on defaults (see INT 15/AX=5309h)
  85944. Return: DX:AX = 0000h:0000h if successful
  85945. else error code (see #02665)
  85946. 0007h get power status (see INT 15/AX=530Ah)
  85947. Return: ???
  85948. 0008h get APM 1.1 power state (see INT 15/AX=530Ch)
  85949. Return: ???
  85950. 0009h invoke OEM APM function
  85951. ??? -> buffer containing parameters for INT 15/AX=5380h
  85952. Return: DX:AX = 0000h:0000h or error code (see #02665)
  85953. buffer updated if successful
  85954. 000Ah register power handler
  85955. ???
  85956. Return: DX:AX = 0000h:0000h or error code
  85957. 000Bh deregister power handler
  85958. ???
  85959. Return: DX:AX = 0000h:0000h or error code (see #02665)
  85960. 000Ch Win32 get system power status
  85961. 000Dh Win32 set system power status
  85962. else
  85963. Return: DX = 0000h
  85964. AX = 00FFh
  85965. SeeAlso: #02663,#02666
  85966. (Table 02665)
  85967. Values for VPOWERD.VXD error code:
  85968. 000000xxh APM error code
  85969. 000000FFh function number out of range
  85970. 80000001h ??? (service 05h)
  85971. 80000002h ??? (service 0Dh)
  85972. 80000003h specified NULL buffer pointer (service 07h,08h,09h)
  85973. 80000005h ??? (service 03h)
  85974. 80000006h ??? (service 04h)
  85975. 80000007h ??? (service 05h)
  85976. 80000008h ??? (service 05h)
  85977. 80000009h out of memory (service 0Ah)
  85978. 8000000Ah ??? (service 0Ah)
  85979. 8000000Bh invalid power handler (service 0Bh)
  85980. 8000000Ch unsupported/disabled??? function
  85981. SeeAlso: #02664,#01290
  85982. --------W-2F1684BX0027-----------------------
  85983. INT 2F - MS Windows95 - VXDLDR - GET API ENTRY POINT
  85984. AX = 1684h
  85985. BX = 0027h (virtual device ID for VXDLDR device) (see #02642)
  85986. ES:DI = 0000h:0000h
  85987. Return: ES:DI -> VxD API entry point (see #02666)
  85988. 0000h:0000h if the VxD does not support API in current mode
  85989. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  85990. (Table 02666)
  85991. Call VXDLDR entry point with:
  85992. EAX = function number
  85993. 0000h get VXDLDR version
  85994. Return: CF clear
  85995. AX = 0000h (successful)
  85996. DH = major version
  85997. DL = minor version
  85998. 0001h load device
  85999. BX = ASCIZ 8.3 filename of dynamically-loadable VxD (must
  86000. reside in Windows system directory)
  86001. Return: CF clear if successful
  86002. AX = 0000h
  86003. ES:DI -> VxD API entry point
  86004. CF set on error
  86005. AX = error code (see #02667)
  86006. 0002h unload device
  86007. BX = ASCIZ 8.3 filename of dynamically-loadable VxD (must
  86008. reside in Windows system directory)
  86009. Return: CF clear if successful
  86010. AX = 0000h
  86011. CF set on error
  86012. AX = error code (see #02667)
  86013. else
  86014. Return: CF set
  86015. AX = 000Bh
  86016. SeeAlso: #02664,#02668
  86017. (Table 02667)
  86018. Values for VXDLDR error code:
  86019. 0000h successful
  86020. 000Bh invalid function number
  86021. SeeAlso: #02666
  86022. --------W-2F1684BX0028-----------------------
  86023. INT 2F - MS Windows - NDIS - GET API ENTRY POINT
  86024. AX = 1684h
  86025. BX = 0028h (virtual device ID for NDIS device) (see #02642)
  86026. ES:DI = 0000h:0000h
  86027. Return: ES:DI -> VxD API entry point (see #02668)
  86028. 0000h:0000h if the VxD does not support API in current mode
  86029. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86030. (Table 02668)
  86031. Call NDIS.VXD entry point with:
  86032. ??? = function number
  86033. 0000h set ??? to ???
  86034. ??? = new ???
  86035. Return: DX:AX = 0000h:0001h
  86036. 0002h ???
  86037. ???
  86038. Return: DX:AX -> ???
  86039. 0003h reset ??? to default
  86040. Return: DX:AX = 0000h:0001h
  86041. else
  86042. Return: DX:AX = 0000h:0000h
  86043. SeeAlso: #02666,#02669
  86044. --------W-2F1684BX002A-----------------------
  86045. INT 2F P - MS Windows - VWIN32 - GET API ENTRY POINT
  86046. AX = 1684h
  86047. BX = 002Ah (virtual device ID for VWIN32 device) (see #02642)
  86048. ES:DI = 0000h:0000h
  86049. Return: ES:DI -> VxD API entry point (see #02669)
  86050. 0000h:0000h if the VxD does not support API in current mode
  86051. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86052. (Table 02669)
  86053. Call VWIN32.VXD entry point with:
  86054. AH = function number
  86055. 00h get VWIN32 version and ???
  86056. Return: CF clear
  86057. AH = major version
  86058. AL = minor version
  86059. EDX = ???
  86060. 01h ???
  86061. EBX = ???
  86062. ECX = ???
  86063. Return: CF clear
  86064. EAX = ???
  86065. 02h ???
  86066. Return: CF clear
  86067. AX = ??? or 0000h
  86068. 03h address allocation
  86069. DS:??? -> buffer containing/for page data
  86070. ECX = length of buffer
  86071. AL = subfunction
  86072. 00h reserve page(s)
  86073. 01h commit page(s)
  86074. 02h decommit page(s)
  86075. 03h free page(s)
  86076. Return: CF clear if successful
  86077. CF set on error
  86078. Note: this function uses ECX bytes of stack
  86079. 04h get ???
  86080. Return: CF clear
  86081. EAX = ???
  86082. 05h ???
  86083. EBX = ???
  86084. Return: CF clear
  86085. EAX = ???
  86086. 06h ???
  86087. EBX = ???
  86088. Return: CF clear
  86089. EAX = ???
  86090. 07h ???
  86091. EBX = ???
  86092. Return: CF clear
  86093. EAX = ???
  86094. 08h get ???
  86095. Return: CF clear
  86096. AX = ???
  86097. 09h ???
  86098. EBX = ???
  86099. ECX = ???
  86100. Return: CF clear
  86101. 0Ah ???
  86102. EBX = ???
  86103. Return: CF clear
  86104. 0Bh ???
  86105. EBX = ???
  86106. Return: CF clear
  86107. 0Ch ???
  86108. EBX = ???
  86109. ECX = ???
  86110. EDX = ???
  86111. ???
  86112. Return: CF clear if successful
  86113. EAX = ???
  86114. CF set on error
  86115. 0Dh clear ???
  86116. Return: CF clear
  86117. 0Eh ???
  86118. EBX = ???
  86119. ECX = ???
  86120. Return: CF clear
  86121. 0Fh ???
  86122. EBX = ???
  86123. ECX = ???
  86124. Return: CF clear
  86125. 10h ???
  86126. Return: CF clear
  86127. Note: invokes VMMcall 00010184h
  86128. 11h ???
  86129. Return: CF clear
  86130. Note: invokes VMMcall 00010160h
  86131. 12h ???
  86132. ???
  86133. 13h pop up system error dialogue
  86134. Return: CF clear
  86135. AX = ??? or 0000h
  86136. 14h "IFSMgr_GetConversionTablePtrs"
  86137. Return: CF clear
  86138. DX:AX -> ???
  86139. Note: invokes VxDcall 00400051h
  86140. 15h "Boost_With_Decay"
  86141. EBX = ???
  86142. ECX = ???
  86143. EDX = ???
  86144. Return: CF clear
  86145. else
  86146. Return: CF set
  86147. SeeAlso: #02668,#02670
  86148. --------W-2F1684BX002B-----------------------
  86149. INT 2F - MS Windows - VCOMM - GET API ENTRY POINT
  86150. AX = 1684h
  86151. BX = 002Bh (virtual device ID for VCOMM device) (see #02642)
  86152. ES:DI = 0000h:0000h
  86153. Return: ES:DI -> VxD API entry point (see #02670)
  86154. 0000h:0000h if the VxD does not support API in current mode
  86155. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86156. (Table 02670)
  86157. Call VCOMM.VXD entry point with:
  86158. AX = function number
  86159. 0000h open COM/LPT port
  86160. BX = port number (00h-7Fh = COMx, 80h-FFh = LPTx)
  86161. Return: DX:AX = handle???
  86162. 0001h set comm state
  86163. ???
  86164. Return: AX = ???
  86165. 0002h setup comm port
  86166. ???
  86167. Return: AX = status (0000h failed, FFFFh success)
  86168. 0003h transmit character
  86169. EBX = handle???
  86170. CL = character to transmit
  86171. Return: AX = status???
  86172. 0004h close comm port
  86173. EBX = handle???
  86174. Return: ???
  86175. 0005h clear comm error
  86176. EBX = handle???
  86177. EAX = ???
  86178. Return: AX = status???
  86179. 0006h "EscapeCommFunction"
  86180. EBX = handle???
  86181. CX = ???
  86182. EAX = ???
  86183. Return: DX:AX = ???
  86184. 0007h purge buffers
  86185. EBX = handle???
  86186. CX = ???
  86187. Return: AX = status???
  86188. 0008h set comm event mask
  86189. EBX = handle???
  86190. CX = new event mask
  86191. Return: AX = status???
  86192. 0009h get comm event mask
  86193. EBX = handle???
  86194. Return: AX = current event mask
  86195. 000Ah ???
  86196. EBX = handle???
  86197. Return: ???
  86198. 000Bh "WriteComm"
  86199. EBX = handle???
  86200. CX = number of characters to write
  86201. ES???:BX -> buffer (if CX > 1)
  86202. SI??? low byte contains character if CX=1
  86203. Return: AX = status
  86204. EAX high word may be destroyed
  86205. 000Ch "ReadComm"
  86206. EBX = handle???
  86207. CX = number of bytes to read
  86208. ES???:DI -> buffer
  86209. Return: AX = status ???
  86210. ZF = ???
  86211. 000Dh set ??? callback
  86212. EBX = handle???
  86213. CX = ???
  86214. DX = ???
  86215. Return: AX = status???
  86216. else
  86217. Return: AX = 0000h
  86218. SeeAlso: #02669,#02671
  86219. --------W-2F1684BX002D-----------------------
  86220. INT 2F P - MS Windows - W32S - GET API ENTRY POINT
  86221. AX = 1684h
  86222. BX = 002Dh (virtual device ID for W32S device) (see #02642)
  86223. ES:DI = 0000h:0000h
  86224. Return: ES:DI -> VxD API entry point
  86225. 0000h:0000h if the VxD does not support API in current mode
  86226. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86227. --------W-2F1684BX0030-----------------------
  86228. INT 2F P - MS Windows - MACH32 - GET API ENTRY POINT
  86229. AX = 1684h
  86230. BX = 0030h (virtual device ID for MACH32 device) (see #02642)
  86231. ES:DI = 0000h:0000h
  86232. Return: ES:DI -> VxD API entry point
  86233. 0000h:0000h if the VxD does not support API in current mode
  86234. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86235. --------W-2F1684BX0032-----------------------
  86236. INT 2F - MS Windows - SERVER / VSERVER - GET API ENTRY POINT
  86237. AX = 1684h
  86238. BX = 0032h (virtual device ID for SERVER device) (see #02642)
  86239. ES:DI = 0000h:0000h
  86240. Return: ES:DI -> VxD API entry point (see #02671)
  86241. 0000h:0000h if the VxD does not support API in current mode
  86242. SeeAlso: AX=1684h"DEVICE API",#01296 at INT 20"Windows"
  86243. (Table 02671)
  86244. Call Windows95 VSERVER.VXD protected-mode entry point with:
  86245. AX = function number
  86246. 0003h NOP
  86247. Return: AX = 0000h
  86248. 0004h NOP
  86249. Return: AX = 0000h
  86250. 0007h NOP
  86251. Return: AX = 0000h
  86252. 0008h NOP
  86253. Return: nothing
  86254. 000Fh ???
  86255. Return: AX = status
  86256. 0000h successful
  86257. 0842h on error
  86258. 0010h ???
  86259. Return: AX = status
  86260. 0000h successful
  86261. 0842h on error
  86262. else
  86263. Return: AX = 0032h
  86264. SeeAlso: #02670,#02672
  86265. --------W-2F1684BX0033-----------------------
  86266. INT 2F - MS Windows - CONFIGMG - GET API ENTRY POINT
  86267. AX = 1684h
  86268. BX = 0033h (virtual device ID for CONFIGMG device) (see #02642)
  86269. ES:DI = 0000h:0000h
  86270. Return: ES:DI -> VxD API entry point (see #02672)
  86271. 0000h:0000h if the VxD does not support API in current mode
  86272. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86273. (Table 02672)
  86274. Call CONFIGMG.VXD entry point with:
  86275. AX = function number
  86276. 0000h get CONFIGMG version
  86277. Return: CF clear
  86278. AH = major version
  86279. AL = minor version
  86280. ...
  86281. 005Ah
  86282. else
  86283. Return: CF set
  86284. AX = 0020h
  86285. SeeAlso: #01297 at INT 20"Windows",#02671,#02673
  86286. --------x-2F1684BX0034-----------------------
  86287. INT 2F - Intel Plug-and-Play - CONFIGURATION MANAGER - GET ENTRY POINT
  86288. AX = 1684h
  86289. BX = 0034h (ID for Configuration Manager) (see #02642)
  86290. ES:DI = 0000h:0000h
  86291. Return: ES:DI -> API entry point (see #02673)
  86292. 0000h:0000h if Configuration Manager not loaded
  86293. Note: this API is often provided by a DOS device driver, in which case it
  86294. is available whether or not MSWindows is running
  86295. Index: installation check;Plug-and-Play Configuration Manager
  86296. SeeAlso: AX=1684h/BX=304Ch
  86297. (Table 02673)
  86298. Call Configuration Manager entry point with:
  86299. AX = function
  86300. 0000h "CM_GetVersion" get supported DDI version
  86301. Return: AH = BCD major version
  86302. AL = BCD minor version
  86303. BX = number of devices identified by configuration
  86304. Note: returns AX = 0000h if no config manager installed
  86305. 0001h "CM_GetConfig" get device configuration
  86306. BX = device index
  86307. ES:DI -> buffer for configuration information (see #02675)
  86308. Return: AX = status
  86309. 0000h successful
  86310. ES:DI buffer filled
  86311. other error code (0001h = index out of range)
  86312. 0002h "CM_LockConfig" lock device configuration
  86313. ES:DI -> configuration information (see #02675)
  86314. Return: AX = status
  86315. 0000h successful
  86316. ES:DI buffer filled with assigned config
  86317. 0001h resources conflict
  86318. 0002h invalid request or configuration info
  86319. 0003h "CM_UnlockConfig" unlock device configuration
  86320. ES:DI -> configuration information (see #02675)
  86321. Return: AX = status
  86322. 0000h successful
  86323. ES:DI buffer filled with assigned config
  86324. 0001h invalid request or configuration info
  86325. 0004h "CME_QueryResources" get hot-swappable resources
  86326. ES:DI -> configuration information (see #02675)
  86327. Return: AX = status (see #02674)
  86328. 0005h "CME_AllocResources" remove resources from available pool
  86329. ES:DI -> configuration information (see #02675)
  86330. Return: AX = status (see #02674)
  86331. 0006h "CME_DeallocResources" return resources to available pool
  86332. ES:DI -> configuration information (see #02675)
  86333. Return: AX = status (see #02674)
  86334. SeeAlso: #01298 at INT 20"Windows",#02672,#02676
  86335. (Table 02674)
  86336. Values for Configuration Manager status:
  86337. 00h successful
  86338. 01h device not found, configuration error
  86339. 02h I/O port unavailable
  86340. 04h IRQ unavailable
  86341. 08h DMA channel unavailable
  86342. 10h memory range unavailable
  86343. SeeAlso: #02673
  86344. Format of Configuration Information Structure:
  86345. Offset Size Description (Table 02675)
  86346. 00h DWORD bus ID
  86347. 04h DWORD device ID
  86348. 08h DWORD serial number
  86349. 0Ch DWORD logical ID
  86350. 10h DWORD flags
  86351. ---ISA bus---
  86352. 14h BYTE Card Select Number
  86353. 15h BYTE logical device number
  86354. 16h WORD Read Data port
  86355. ------
  86356. 18h WORD number of memory windows
  86357. 1Ah 9 DWORDs physical base addresses of memory windows
  86358. 3Eh 9 DWORDs length of memory windows
  86359. 62h 9 WORDs memory window attributes
  86360. 74h WORD number of I/O ports
  86361. 76h 20 WORDs I/O port base addresses
  86362. B6h 20 WORDs lengths of I/O port ranges
  86363. F6h WORD number of IRQs
  86364. F8h 7 BYTEs IRQ registers
  86365. FFh 7 BYTEs IRQ attributes
  86366. 106h WORD number of DMA channels
  86367. 108h 7 BYTEs DMA channels used
  86368. 10Fh 7 WORDs DMA channel attributes
  86369. 11Dh 3 BYTEs reserved
  86370. SeeAlso: #02673
  86371. --------W-2F1684BX0036-----------------------
  86372. INT 2F - MS Windows - VFBACKUP - GET API ENTRY POINT
  86373. AX = 1684h
  86374. BX = 0036h (virtual device ID for VFBACKUP device) (see #02642)
  86375. ES:DI = 0000h:0000h
  86376. Return: ES:DI -> VxD API entry point (see #02676)
  86377. 0000h:0000h if the VxD does not support API in current mode
  86378. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86379. (Table 02676)
  86380. Call VFBACKUP.VXD entry point with:
  86381. nothing -- this API is a NOP for the default Windows95 VFBACKUP
  86382. SeeAlso: #02673,#01126
  86383. --------W-2F1684BX0037-----------------------
  86384. INT 2F - MS Windows - ENABLE.VXD - GET API ENTRY POINT
  86385. AX = 1684h
  86386. BX = 0037h (virtual device ID for ENABLE device) (see #02677)
  86387. ES:DI = 0000h:0000h
  86388. Return: ES:DI -> VxD API entry point (see #02676)
  86389. 0000h:0000h if the VxD does not support API in current mode
  86390. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86391. (Table 02677)
  86392. Call Windows95 ENABLE.VXD entry point with:
  86393. AX = function number
  86394. 0000h get ENABLE version
  86395. Return: CF clear
  86396. AX = version (AH = major, AL = minor)
  86397. 0001h
  86398. EBX = ???
  86399. Return: ???
  86400. 0002h get ???
  86401. Return: CF clear
  86402. DX:AX = ???
  86403. 0003h get ???
  86404. Return: CF clear
  86405. DX:AX = ???
  86406. 0004h ???
  86407. EBX = ???
  86408. ECX = ???
  86409. EDX = ???
  86410. Return: CF clear if successful
  86411. CF set on error
  86412. else
  86413. Return: CF set
  86414. SeeAlso: #02676,#02678
  86415. --------W-2F1684BX0038-----------------------
  86416. INT 2F - MS Windows - VCOND - GET API ENTRY POINT
  86417. AX = 1684h
  86418. BX = 0038h (virtual device ID for VCOND device) (see #02642)
  86419. ES:DI = 0000h:0000h
  86420. Return: ES:DI -> VxD API entry point (see #02678)
  86421. 0000h:0000h if the VxD does not support API in current mode
  86422. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86423. (Table 02678)
  86424. Call VCOND.VXD virtual-86 entry point with:
  86425. AX = function number
  86426. 0202h
  86427. 0203h
  86428. 0204h
  86429. 0205h
  86430. 0206h
  86431. 0207h
  86432. 0208h
  86433. 0209h
  86434. 020Ah
  86435. 020Bh
  86436. 020Dh
  86437. 020Eh
  86438. 020Fh
  86439. 0210h
  86440. 0401h
  86441. 0402h
  86442. 0403h
  86443. 0404h
  86444. 0405h
  86445. else
  86446. NOP
  86447. SeeAlso: #02679,#02677
  86448. (Table 02679)
  86449. Call VCOND.VXD protected-mode entry point with:
  86450. AX = function number
  86451. 0301h
  86452. 0302h
  86453. 0303h
  86454. 0304h
  86455. 0305h
  86456. 0306h
  86457. 0307h
  86458. 0308h
  86459. else
  86460. NOP
  86461. SeeAlso: #02678,#02676
  86462. --------W-2F1684BX003B-----------------------
  86463. INT 2F - MS Windows - DSVXD - GET API ENTRY POINT
  86464. AX = 1684h
  86465. BX = 003Bh (virtual device ID for DSVXD device) (see #02642)
  86466. ES:DI = 0000h:0000h
  86467. Return: ES:DI -> VxD API entry point
  86468. 0000h:0000h if the VxD does not support API in current mode
  86469. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86470. --------W-2F1684BX003D-----------------------
  86471. INT 2F - MS Windows - BIOS VxD - GET API ENTRY POINT
  86472. AX = 1684h
  86473. BX = 003Dh (virtual device ID for BIOS device) (see #02642)
  86474. ES:DI = 0000h:0000h
  86475. Return: ES:DI -> VxD API entry point (see #02680)
  86476. 0000h:0000h if the VxD does not support API in current mode
  86477. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86478. (Table 02680)
  86479. Call BIOS.VXD entry point with:
  86480. AX = function number
  86481. 0000h get BIOS.VXD version
  86482. Return: CF clear
  86483. AH = major version
  86484. AL = minor version
  86485. 0100h ???
  86486. Return: AX = 0000h
  86487. Note: calls CONFIGMG services 804Eh/804Fh
  86488. 0200h ???
  86489. Return: CF clear if successful
  86490. AX = ???
  86491. CF set on error
  86492. AX = error code???
  86493. Note: invokes VxDcall 00290002h
  86494. 0300h ???
  86495. Return: CF clear if successful
  86496. AX = ???
  86497. CF set on error
  86498. AX = error code???
  86499. else
  86500. Return: CF set
  86501. SeeAlso: #02679,#02681
  86502. --------W-2F1684BX003E-----------------------
  86503. INT 2F - MS Windows - WSOCK - GET API ENTRY POINT
  86504. AX = 1684h
  86505. BX = 003Eh (virtual device ID for WSOCK device) (see #02642)
  86506. ES:DI = 0000h:0000h
  86507. Return: ES:DI -> VxD API entry point
  86508. 0000h:0000h if the VxD does not support API in current mode
  86509. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86510. --------W-2F1684BX011F-----------------------
  86511. INT 2F P - MS Windows - VFLATD - GET API ENTRY POINT
  86512. AX = 1684h
  86513. BX = 011Fh (virtual device ID for VFLATD device) (see #02642)
  86514. ES:DI = 0000h:0000h
  86515. Return: ES:DI -> VxD API entry point (see #02681)
  86516. 0000h:0000h if the VxD does not support API in current mode
  86517. SeeAlso: AX=1684h"DEVICE API",AX=1684/BX=045Dh,INT 20"Windows"
  86518. (Table 02681)
  86519. Call VFLATD.VXD entry point with:
  86520. DL = function number
  86521. 00h get VFLATD version and ???
  86522. Return: CF clear
  86523. EAX = version (AH = major, AL = minor)
  86524. EBX = ???
  86525. ECX = ???
  86526. EDX = ??? or 00000000h
  86527. 01h ???
  86528. AX = ???
  86529. CX = ???
  86530. Return: EAX = ???
  86531. EDX = ???
  86532. 02h ???
  86533. ???
  86534. 03h ???
  86535. EAX = ???
  86536. EBX = ???
  86537. ESI = ???
  86538. CX = ???
  86539. DH = ???
  86540. Return: EAX = ???
  86541. EDX = ???
  86542. CF clear
  86543. 04h ???
  86544. DH = ???
  86545. EAX = ???
  86546. ECX = ???
  86547. Return: CF clear
  86548. EAX = ???
  86549. EDX = ???
  86550. 05h ???
  86551. ???
  86552. Note: locks some linear memory and calls fn 02h
  86553. 06h ???
  86554. ???
  86555. Return: CF clear if successful
  86556. CF set on error
  86557. Note: calls fn 02h and unlocks some linear memory
  86558. else
  86559. Return: CF set
  86560. SeeAlso: #02680
  86561. --------W-2F1684BX0200-----------------------
  86562. INT 2F - MS Windows - VIPX - GET API ENTRY POINT
  86563. AX = 1684h
  86564. BX = 0200h (virtual device ID for VIPX device) (see #02642)
  86565. ES:DI = 0000h:0000h
  86566. Return: ES:DI -> VxD API entry point
  86567. 0000h:0000h if the VxD does not support API in current mode
  86568. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86569. --------W-2F1684BX0202-----------------------
  86570. INT 2F - MS Windows - WINICE - GET API ENTRY POINT
  86571. AX = 1684h
  86572. BX = 0202h (virtual device ID for WINICE device) (see #02642)
  86573. ES:DI = 0000h:0000h
  86574. Return: ES:DI -> VxD API entry point
  86575. 0000h:0000h if the VxD does not support API in current mode
  86576. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86577. --------W-2F1684BX0203-----------------------
  86578. INT 2F P - MS Windows - VCLIENT - GET API ENTRY POINT
  86579. AX = 1684h
  86580. BX = 0203h (virtual device ID for VCLIENT device) (see #02642)
  86581. ES:DI = 0000h:0000h
  86582. Return: ES:DI -> VxD API entry point
  86583. 0000h:0000h if the VxD does not support API in current mode
  86584. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86585. --------W-2F1684BX0205-----------------------
  86586. INT 2F - MS Windows - BCW - GET API ENTRY POINT
  86587. AX = 1684h
  86588. BX = 0205h (virtual device ID for BCW device) (see #02642)
  86589. ES:DI = 0000h:0000h
  86590. Return: ES:DI -> VxD API entry point
  86591. 0000h:0000h if the VxD does not support API in current mode
  86592. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86593. --------W-2F1684BX0207-----------------------
  86594. INT 2F R - MS Windows - DPMS VxD - GET API ENTRY POINT
  86595. AX = 1684h
  86596. BX = 0207h (virtual device ID for DPMS device) (see #02642)
  86597. ES:DI = 0000h:0000h
  86598. Return: ES:DI -> VxD API entry point
  86599. 0000h:0000h if the VxD does not support API in current mode
  86600. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86601. --------W-2F1684BX0234-----------------------
  86602. INT 2F - MS Windows - VCOMMUTE - GET API ENTRY POINT
  86603. AX = 1684h
  86604. BX = 0234h (virtual device ID for VCOMMUTE device) (see #02642)
  86605. ES:DI = 0000h:0000h
  86606. Return: ES:DI -> VxD API entry point
  86607. 0000h:0000h if the VxD does not support API in current mode
  86608. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86609. --------W-2F1684BX0442-----------------------
  86610. INT 2F P - MS Windows - VTDAPI - GET API ENTRY POINT
  86611. AX = 1684h
  86612. BX = 0442h (virtual device ID for VTDAPI device) (see #02642)
  86613. ES:DI = 0000h:0000h
  86614. Return: ES:DI -> VxD API entry point (see #02682)
  86615. 0000h:0000h if the VxD does not support API in current mode
  86616. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86617. (Table 02682)
  86618. Call VTDAPI.VXD entry point with:
  86619. EAX = function number
  86620. 0000h
  86621. 0001h
  86622. 0002h
  86623. 0003h
  86624. 0004h
  86625. 0005h
  86626. 0006h
  86627. 0007h
  86628. 0008h
  86629. 0009h
  86630. 000Ah
  86631. 000Bh
  86632. else
  86633. Return: nothing???
  86634. SeeAlso: #02682
  86635. --------W-2F1684BX0444-----------------------
  86636. INT 2F - MS Windows - VADMAD - GET API ENTRY POINT
  86637. AX = 1684h
  86638. BX = 0444h (virtual device ID for VADMAD device) (see #02642)
  86639. ES:DI = 0000h:0000h
  86640. Return: ES:DI -> VxD API entry point (see #02683)
  86641. 0000h:0000h if the VxD does not support an API
  86642. (Table 02683)
  86643. Call VADMAD entry point with:
  86644. DX = operation
  86645. 0000h set VADMAD mode
  86646. AX = desired mode
  86647. 0001h set VADMAD channel
  86648. AX = desired channel
  86649. Note: after setting mode/channel, start the DMA operation with an OUT to
  86650. I/O port 0Bh (channels 0-3) or D6h (channels 4-7)
  86651. SeeAlso: #01268 at INT 20"Windows"
  86652. --------W-2F1684BX0445-----------------------
  86653. INT 2F - MS Windows - VSBD - GET API ENTRY POINT
  86654. AX = 1684h
  86655. BX = 0445h (virtual device ID for VSBD device) (see #02642)
  86656. ES:DI = 0000h:0000h
  86657. Return: ES:DI -> VxD API entry point
  86658. 0000h:0000h if the VxD does not support API in current mode
  86659. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86660. --------W-2F1684BX0446-----------------------
  86661. INT 2F - MS Windows - VADLIBD - GET API ENTRY POINT
  86662. AX = 1684h
  86663. BX = 0446h (virtual device ID for VADLIBD device) (see #02642)
  86664. ES:DI = 0000h:0000h
  86665. Return: ES:DI -> VxD API entry point
  86666. 0000h:0000h if the VxD does not support API in current mode
  86667. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86668. --------W-2F1684BX0449-----------------------
  86669. INT 2F P - MS Windows - vjoyd - GET API ENTRY POINT
  86670. AX = 1684h
  86671. BX = 0449h (virtual device ID for "vjoyd" device) (see #02642)
  86672. ES:DI = 0000h:0000h
  86673. Return: ES:DI -> VxD API entry point (see #02684)
  86674. 0000h:0000h if the VxD does not support API in current mode
  86675. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86676. (Table 02684)
  86677. Call VJOYD.VXD entry point with:
  86678. AX = function number
  86679. 0000h get VJOYD version
  86680. Return: AH = major version
  86681. AL = minor version
  86682. 0001h ???
  86683. DX = ???
  86684. Return: DX:AX = ???
  86685. 0002h ???
  86686. DX = ???
  86687. Return: DX:AX = ???
  86688. 0003h ???
  86689. Retrun: AX = 0001h
  86690. 0004h ???
  86691. DX = ???
  86692. Return: DX:AX = ???
  86693. 0005h ???
  86694. Return: ???
  86695. else
  86696. Return: EAX = 00000000h
  86697. SeeAlso: #02682,#02685
  86698. --------W-2F1684BX044A-----------------------
  86699. INT 2F - MS Windows - mmdevldr - GET API ENTRY POINT
  86700. AX = 1684h
  86701. BX = 044Ah (virtual device ID for "mmdevldr" device) (see #02642)
  86702. ES:DI = 0000h:0000h
  86703. Return: ES:DI -> VxD API entry point (see #02685)
  86704. 0000h:0000h if the VxD does not support API in current mode
  86705. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86706. (Table 02685)
  86707. Call MMDEVLDR.VXD entry point with:
  86708. DX = function number
  86709. 0000h ???
  86710. Return: CF clear if successful
  86711. AX = 0000h
  86712. CF set on error
  86713. AX = error code (000Bh)
  86714. Note: invokes VxDCall 17000Eh ("CallAtAppyTime")
  86715. 0001h ???
  86716. Return: CF clear if successful
  86717. AX = 0000h
  86718. CF set on error
  86719. AX = error code (000Bh)
  86720. Note: invokes VxDCall 17000Eh ("CallAtAppyTime")
  86721. 0002h ???
  86722. EDX = ???
  86723. Return: CF clear if successful
  86724. AX = 0000h
  86725. EDX = ???
  86726. CF set on error
  86727. AX = error code
  86728. 0003h ???
  86729. Return: CF clear if successful
  86730. AX = 0000h
  86731. CF set on error
  86732. AX = error code
  86733. Note: invokes VxDcall 2A0002h ("VWIN32_QueueUserApc")
  86734. 0004h set Win32 event
  86735. Return: CF clear if successful
  86736. AX = 0000h
  86737. CF set on error
  86738. AX = error code
  86739. Note: invokes VxDcall 2A000Eh ("VWIN32_SetWin32Event")
  86740. 0005h ??? (allocates some memory)
  86741. Return: CF clear
  86742. AX = 0000h
  86743. 0006h ??? (frees memory)
  86744. Return: CF clear if successful
  86745. AX = 0000h
  86746. CF set on error
  86747. AX = error code
  86748. else
  86749. Return: CF set
  86750. AX = 000Bh (invalid function)
  86751. SeeAlso: #02684,#02686
  86752. --------W-2F1684BX045D-----------------------
  86753. INT 2F P - MS Windows - VflatD - GET API ENTRY POINT
  86754. AX = 1684h
  86755. BX = 045Dh (virtual device ID for VflatD device) (see #02642)
  86756. ES:DI = 0000h:0000h
  86757. Return: ES:DI -> VxD API entry point
  86758. 0000h:0000h if the VxD does not support API in current mode
  86759. SeeAlso: AX=1684h"DEVICE API",AX=1684h/BX=011Fh,INT 20"Windows"
  86760. --------W-2F1684BX045F-----------------------
  86761. INT 2F - MS Windows - azt16 - GET API ENTRY POINT
  86762. AX = 1684h
  86763. BX = 045Fh (virtual device ID for "azt16" device) (see #02642)
  86764. ES:DI = 0000h:0000h
  86765. Return: ES:DI -> VxD API entry point (see #02686)
  86766. 0000h:0000h if the VxD does not support API in current mode
  86767. SeeAlso: AX=1684h/BX=3110h,AX=1684h"DEVICE API",INT 20"Windows"
  86768. (Table 02686)
  86769. Call azt16.VXD entry point with:
  86770. DX = function number
  86771. 0000h get azt16 version
  86772. Return: CF clear
  86773. AX = version (AH=major, AL=minor)
  86774. 0001h ???
  86775. AX = subfunction
  86776. 0000h ???
  86777. Return:
  86778. 0001h ???
  86779. ECX = ???
  86780. else error
  86781. Return: CF clear if successful
  86782. ???
  86783. CF set on error
  86784. AX = error code
  86785. 0002h ???
  86786. AX = ???
  86787. BX = ???
  86788. Return: ???
  86789. 0003h ???
  86790. AX = ???
  86791. BX = ???
  86792. Return: ???
  86793. 0004h ???
  86794. BX = ???
  86795. CX = ???
  86796. Return: CF clear if successful
  86797. AX = 0001h
  86798. CF set on error
  86799. AX = 0000h
  86800. 0005h ???
  86801. BX = ???
  86802. CX = ???
  86803. Return: CF clear if successful
  86804. AX = 0001h
  86805. CF set on error
  86806. AX = 0000h
  86807. 0006h ???
  86808. BX = ???
  86809. ECX = ???
  86810. Return: CF clear if succesful
  86811. AX = ???
  86812. CF set on error
  86813. AX = FFFFh
  86814. 0100h get azt16 version
  86815. Return: CF clear
  86816. AX = version (AH=major, AL=minor)
  86817. 0101h
  86818. AX = ???
  86819. ECX = ???
  86820. Return: CF clear if successful
  86821. AX = 0001h
  86822. CF set on error
  86823. AX = 0000h
  86824. 0102h ???
  86825. AX = ???
  86826. Return: CF clear if successful
  86827. CF set on error
  86828. AX = reason??? (0/1/2)
  86829. 0103h ???
  86830. AX = ???
  86831. Return: CF clear if successful
  86832. AX = 0000h
  86833. CF set on error
  86834. AX = reason??? (1/3)
  86835. 0200h ???
  86836. EDX = ???
  86837. ???
  86838. Return: CF clear if successful
  86839. DX:AX = ???
  86840. CF set on error
  86841. DX:AX = 0000h:0000h
  86842. 0201h ???
  86843. ???
  86844. Return: CF clear
  86845. AX= 0000h
  86846. else
  86847. Return: CF set
  86848. SeeAlso: #02685,#02705
  86849. --------W-2F1684BX0460-----------------------
  86850. INT 2F P - MS Windows - UNIMODEM - GET API ENTRY POINT
  86851. AX = 1684h
  86852. BX = 0460h (virtual device ID for UNIMODEM device) (see #02642)
  86853. ES:DI = 0000h:0000h
  86854. Return: ES:DI -> VxD API entry point (see #02687)
  86855. 0000h:0000h if the VxD does not support API in current mode
  86856. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86857. (Table 02687)
  86858. Call UNIMODEM.VXD protected-mode entry point with:
  86859. AX = function number
  86860. 0000h
  86861. Return: AX = ???
  86862. 0001h
  86863. Return: AX = ???
  86864. 0002h
  86865. Return: AX = ???
  86866. 0003h
  86867. Return: AX = ???
  86868. 0004h
  86869. Return: AX = ???
  86870. 0005h
  86871. Return: AX = ???
  86872. 0006h
  86873. Return: AX = ???
  86874. 0007h
  86875. Return: AX = ???
  86876. else
  86877. Return: AX = 0002h
  86878. SeeAlso: #02686,#02688
  86879. --------W-2F1684BX0480-----------------------
  86880. INT 2F - MS Windows - VNetSup - GET API ENTRY POINT
  86881. AX = 1684h
  86882. BX = 0480h (virtual device ID for VNetSup device) (see #02642)
  86883. ES:DI = 0000h:0000h
  86884. Return: ES:DI -> VxD API entry point (see #02688)
  86885. 0000h:0000h if the VxD does not support API in current mode
  86886. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86887. (Table 02688)
  86888. Call VNetSup.VXD entry point with:
  86889. AX = function number
  86890. 0000h
  86891. Return: AX = ???
  86892. 0001h
  86893. Return: AX = ???
  86894. 0002h
  86895. Return: AX = ???
  86896. else
  86897. Return: CF set
  86898. AX = 0001h
  86899. SeeAlso: #02687,#02689
  86900. --------W-2F1684BX0482-----------------------
  86901. INT 2F - MS Windows - VBrowse - GET API ENTRY POINT
  86902. AX = 1684h
  86903. BX = 0482h (virtual device ID for VBrowse device) (see #02642)
  86904. ES:DI = 0000h:0000h
  86905. Return: ES:DI -> VxD API entry point
  86906. 0000h:0000h if the VxD does not support API in current mode
  86907. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86908. --------W-2F1684BX0483-----------------------
  86909. INT 2F - MS Windows - VSHARE - GET API ENTRY POINT
  86910. AX = 1684h
  86911. BX = 0483h (virtual device ID for VSHARE device) (see #02642)
  86912. ES:DI = 0000h:0000h
  86913. Return: ES:DI -> VxD API entry point (see #02689)
  86914. 0000h:0000h if the VxD does not support API in current mode
  86915. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86916. (Table 02689)
  86917. Call Windows95 VSHARE.VXD entry point with:
  86918. AX = function number
  86919. 0000h get VSHARE version
  86920. Return: AH = major version
  86921. AL = (BCD?) minor version
  86922. else
  86923. NOP
  86924. SeeAlso: #02688
  86925. --------W-2F1684BX0484-----------------------
  86926. INT 2F P - MS Windows - IFSMgr - GET API ENTRY POINT
  86927. AX = 1684h
  86928. BX = 0484h (virtual device ID for IFSMgr device) (see #02642)
  86929. ES:DI = 0000h:0000h
  86930. Return: ES:DI -> VxD API entry point
  86931. 0000h:0000h if the VxD does not support API in current mode
  86932. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86933. --------W-2F1684BX0486-----------------------
  86934. INT 2F - MS Windows - VFAT - GET API ENTRY POINT
  86935. AX = 1684h
  86936. BX = 0486h (virtual device ID for VFAT device) (see #02642)
  86937. ES:DI = 0000h:0000h
  86938. Return: ES:DI -> VxD API entry point
  86939. 0000h:0000h if the VxD does not support API in current mode
  86940. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86941. --------W-2F1684BX0487-----------------------
  86942. INT 2F - MS Windows - NWLINK - GET API ENTRY POINT
  86943. AX = 1684h
  86944. BX = 0487h (virtual device ID for NWLINK device) (see #02642)
  86945. ES:DI = 0000h:0000h
  86946. Return: ES:DI -> VxD API entry point
  86947. 0000h:0000h if the VxD does not support API in current mode
  86948. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86949. --------W-2F1684BX0489-----------------------
  86950. INT 2F R - MS Windows - VIP - GET API ENTRY POINT
  86951. AX = 1684h
  86952. BX = 0489h (virtual device ID for VIP device) (see #02642)
  86953. ES:DI = 0000h:0000h
  86954. Return: ES:DI -> VxD API entry point
  86955. 0000h:0000h if the VxD does not support API in current mode
  86956. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86957. --------W-2F1684BX048A-----------------------
  86958. INT 2F - MS Windows 3.11 - VXDLDR - GET API ENTRY POINT
  86959. AX = 1684h
  86960. BX = 048Ah (virtual device ID for VTCP device) (see #02642)
  86961. ES:DI = 0000h:0000h
  86962. Return: ES:DI -> VxD API entry point
  86963. 0000h:0000h if the VxD does not support API in current mode
  86964. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86965. --------W-2F1684BX048A-----------------------
  86966. INT 2F - MS Windows - VCACHE - GET API ENTRY POINT
  86967. AX = 1684h
  86968. BX = 048Ah (virtual device ID for VCACHE device) (see #02642)
  86969. ES:DI = 0000h:0000h
  86970. Return: ES:DI -> VxD API entry point (see #02691)
  86971. 0000h:0000h if the VxD does not support API in current mode
  86972. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86973. (Table 02690)
  86974. Call Windows95 VCACHE.VXD entry point with:
  86975. Return: CF set
  86976. SeeAlso: #02689,#02691
  86977. --------W-2F1684BX048D-----------------------
  86978. INT 2F - MS Windows - RASMAC - GET API ENTRY POINT
  86979. AX = 1684h
  86980. BX = 048Dh (virtual device ID for RASMAC device) (see #02642)
  86981. ES:DI = 0000h:0000h
  86982. Return: ES:DI -> VxD API entry point
  86983. 0000h:0000h if the VxD does not support API in current mode
  86984. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86985. --------W-2F1684BX048E-----------------------
  86986. INT 2F - MS Windows - NWREDIR - GET API ENTRY POINT
  86987. AX = 1684h
  86988. BX = 048Eh (virtual device ID for NWREDIR device) (see #02642)
  86989. ES:DI = 0000h:0000h
  86990. Return: ES:DI -> VxD API entry point (see #02691)
  86991. 0000h:0000h if the VxD does not support API in current mode
  86992. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  86993. (Table 02691)
  86994. Call Windows95 NWREDIR.VXD entry point with:
  86995. Return: CF set
  86996. EAX = FFFFFFFFh
  86997. SeeAlso: #02690
  86998. --------W-2F1684BX0494-----------------------
  86999. INT 2F - MS Windows - NSCL - GET API ENTRY POINT
  87000. AX = 1684h
  87001. BX = 0494h (virtual device ID for NSCL device) (see #02642)
  87002. ES:DI = 0000h:0000h
  87003. Return: ES:DI -> VxD API entry point (see #02692,#02693)
  87004. 0000h:0000h if the VxD does not support API in current mode
  87005. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  87006. (Table 02692)
  87007. Call Windows95 NSCL.VXD virtual-86 entry point with:
  87008. AL = function number
  87009. 00h
  87010. 01h
  87011. 02h
  87012. 03h
  87013. 04h
  87014. 05h
  87015. 06h
  87016. 07h
  87017. 08h
  87018. 09h
  87019. 0Ah
  87020. else
  87021. Return: AX = FFFFh
  87022. SeeAlso: #02691,#02692
  87023. (Table 02693)
  87024. Call Windows95 NSCL.VXD protected-mode entry point with:
  87025. AL = function number
  87026. 00h
  87027. 01h
  87028. 02h
  87029. 03h
  87030. else
  87031. Return: AX = FFFFh
  87032. SeeAlso: #02692
  87033. --------W-2F1684BX0499-----------------------
  87034. INT 2F - MS Windows - PPPMAC - GET API ENTRY POINT
  87035. AX = 1684h
  87036. BX = 0499h (virtual device ID for PPPMAC device) (see #02642)
  87037. ES:DI = 0000h:0000h
  87038. Return: ES:DI -> VxD API entry point
  87039. 0000h:0000h if the VxD does not support API in current mode
  87040. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  87041. --------W-2F1684BX049A-----------------------
  87042. INT 2F - MS Windows - VDHCP - GET API ENTRY POINT
  87043. AX = 1684h
  87044. BX = 049Ah (virtual device ID for VDHCP device) (see #02642)
  87045. ES:DI = 0000h:0000h
  87046. Return: ES:DI -> VxD API entry point
  87047. 0000h:0000h if the VxD does not support API in current mode
  87048. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  87049. --------W-2F1684BX049B-----------------------
  87050. INT 2F - MS Windows - VNBT - GET API ENTRY POINT
  87051. AX = 1684h
  87052. BX = 049Bh (virtual device ID for VNBT device) (see #02642)
  87053. ES:DI = 0000h:0000h
  87054. Return: ES:DI -> VxD API entry point
  87055. 0000h:0000h if the VxD does not support API in current mode
  87056. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  87057. --------W-2F1684BX1021-----------------------
  87058. INT 2F - MS Windows - VMB - GET API ENTRY POINT
  87059. AX = 1684h
  87060. BX = 1021h (virtual device ID for VMB device) (see #02642)
  87061. ES:DI = 0000h:0000h
  87062. Return: ES:DI -> VxD API entry point
  87063. 0000h:0000h if the VxD does not support API in current mode
  87064. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  87065. --------W-2F1684BX28A0-----------------------
  87066. INT 2F - MS Windows - PHARLAPX - GET API ENTRY POINT
  87067. AX = 1684h
  87068. BX = 28A0h (virtual device ID for PHARLAPX device) (see #02642)
  87069. ES:DI = 0000h:0000h
  87070. Return: ES:DI -> VxD API entry point (see #02694)
  87071. 0000h:0000h if the VxD does not support an API
  87072. (Table 02694)
  87073. Call PHARLAPX VxD entry point with:
  87074. AX = function
  87075. 0001h get PHARLAP.386 version
  87076. Return: AX = version number (AH = major, AL = minor)
  87077. ---queue functions---
  87078. 0101h allocate a new message queue
  87079. CX = size of queue data buffer in bytes
  87080. Return: DX:AX = handle for new queue, or 0000h:0000h on error
  87081. 0102h allocate a new key queue
  87082. CX = size of queue data buffer in bytes
  87083. EDX = VM handle into which keys will be pasted
  87084. Return: DX:AX = handle for new queue, or 0000h:0000h on error
  87085. 0103h free message queue
  87086. EDX = queue handle
  87087. Return: AX = status (0000h,0003h,0007h) (see #02695)
  87088. 0104h free key queue
  87089. EDX = queue handle
  87090. Return: AX = status (0000h,0003h,0005h) (see #02695)
  87091. 0105h add message to communications queue
  87092. EDX = queue handle
  87093. BX = length of message data in bytes
  87094. CX = length of message header in bytes
  87095. ES:(E)SI -> message header
  87096. GS:(E)DI -> message data
  87097. Return: AX = status (0000h-0003h,0007h) (see #02695)
  87098. 0106h remove message from queue
  87099. EDX = queue handle
  87100. CX = length of buffer in bytes
  87101. ES:(E)SI -> buffer for message
  87102. Return: AX = status (0000h,0003h,0006h,0007h,0008h) (see #02695)
  87103. CX = length of returned message (if AX=0000h or 0008h)
  87104. 0107h flush queue (remove all data)
  87105. EDX = queue handle
  87106. Return: AX = status (0000h,0003h) (see #02695)
  87107. 0108h add PasteKey structure(s) to key queue
  87108. EDX = queue handle
  87109. CX = number of PasteKey structures in buffer
  87110. ES:(E)SI -> PasteKey array (see #02696)
  87111. Return: AX = status (0000h-0003h) (see #02695)
  87112. 0109h register enqueueing callback function
  87113. EDX = queue handle
  87114. ECX = function argument
  87115. ES:(E)SI -> callback function
  87116. Return: AX = status (0000h,0003h,0009h) (see #02695)
  87117. 010Ah register dequeueing callback function
  87118. EDX = queue handle
  87119. ECX = function argument
  87120. ES:(E)SI -> callback function
  87121. Return: AX = status (0000h,0003h,0009h) (see #02695)
  87122. 010Bh unregister enqueueing callback function
  87123. EDX = queue handle
  87124. Return: AX = status (0000h,0003h,0009h) (see #02695)
  87125. 010Ch unregister dequeueing callback function
  87126. EDX = queue handle
  87127. Return: AX = status (0000h,0003h,0009h) (see #02695)
  87128. 010Dh get message queue status
  87129. EDX = queue handle
  87130. Return: AX = status (0000h,0003h) (see #02695)
  87131. CX = number of pending messages
  87132. 010Eh peek at message in queue
  87133. EDX = queue handle
  87134. BX = number of message in queue (0000h = first)
  87135. CX = size of buffer in bytes
  87136. ES:(E)SI -> buffer for message
  87137. Return: AX = status (0000h,0003h,0006h,0008h) (see #02695)
  87138. CX = length of returned message (if AX=0000h or 0008h)
  87139. 010Fh peek at last message in queue
  87140. EDX = queue handle
  87141. CX = size of buffer in bytes
  87142. ES:(E)SI -> buffer for message
  87143. Return: AX = status (0000h,0003h,0006h,0008h) (see #02695)
  87144. CX = length of returned message (if AX=0000h or 0008h)
  87145. 0110h replace last message in queue
  87146. EDX = queue handle
  87147. CX = length of message header in bytes
  87148. BX = length of message data in bytes
  87149. ES:(E)SI -> message header
  87150. GS:(E)DI -> message data
  87151. Return: AX = status (0000h,0002h,0003h) (see #02695)
  87152. 0111h set permitted message count for queue
  87153. EDX = queue handle
  87154. CX = maximum number of messages to enqueue (FFFFh = unlimited)
  87155. Return: AX = status (0000h,0003h) (see #02695)
  87156. ---generalized VxD services---
  87157. 0202h call VxD function
  87158. ES:(E)BX -> in/out register-set buffer
  87159. Return: buffer updated
  87160. 0203h map flat
  87161. ???
  87162. --system register functions---
  87163. 0301h read system registers into buffer
  87164. ES:(E)SI -> 512-byte buffer
  87165. Return: AX = 0000h
  87166. buffer filled (mostly zeros)
  87167. 0302h copy linear memory into buffer
  87168. EDX = linear address
  87169. CX = number of bytes to copy
  87170. ES:(E)SI -> buffer
  87171. Return: AX = 0000h
  87172. 0303h copy data into linear memory
  87173. EDX = linear address
  87174. CX = number of bytes to copy
  87175. ES:(E)SI -> buffer
  87176. Return: AX = 0000h
  87177. 0304h freeze VM
  87178. ???
  87179. 0305h unfreeze VM
  87180. ???
  87181. ---name registration functions---
  87182. 0401h register name
  87183. EDX = magic number to associate with name
  87184. ES:(E)SI -> name to register
  87185. Return: AX = status (0000h,0009h) (see #02695)
  87186. 0402h unregister name
  87187. ES:(E)SI -> name to be unregistered
  87188. Return: AX = status (0000h,0009h) (see #02695)
  87189. 0403h look up name
  87190. ES:(E)SI -> name to look up
  87191. Return: DX:AX = magic number or 0000h:0000h if not registered
  87192. 0404h get name list handle
  87193. Return: DX:AX = name list handle
  87194. 0000h:0000h if not initialized
  87195. ---special DOS server routines (undocumented)---
  87196. 0501h register
  87197. 0502h unregister
  87198. 0503h validate VM
  87199. 0504h get INT9 count
  87200. 0505h get screen line
  87201. 0506h get shift status
  87202. 0507h get server PB pointer
  87203. 0508h initialize DOS shell
  87204. 0509h get last VM handle
  87205. (Table 02695)
  87206. Values for PHARLAPX function status:
  87207. 00h successful
  87208. 01h data is too large to fit in queue
  87209. 02h queue is full
  87210. 03h invalid queue handle
  87211. 04h invalid VM handle for queue
  87212. 05h error starting a paste operation
  87213. 06h queue is empty
  87214. 07h a VM is blocked waiting on the queue
  87215. 08h message was too long (truncated)
  87216. 09h unable to register or unregister specified callback
  87217. SeeAlso: #02694
  87218. Format of PHARLAPX PasteKey structure:
  87219. Offset Size Description (Table 02696)
  87220. 00h BYTE ASCII code
  87221. 01h BYTE scan code (see #00006)
  87222. 02h WORD shift states
  87223. SeeAlso: #02694
  87224. Format of PHARLAPX VxD-call register structure:
  87225. Offset Size Description (Table 02697)
  87226. 00h DWORD call number
  87227. 04h WORD input register map (see #02698)
  87228. 06h WORD output register map (see #02698)
  87229. 08h 7 DWORDs values for EAX, EBX, ECX, EDX, EBP, ESI, EDI on call
  87230. 24h 4 WORDs values for DS, ES, FG, GS on call
  87231. 2Ch DWORD EFLAGS on call
  87232. 30h 7 DWORDs returned values of EAX, EBX, ECX, EDX, EBP, ESI, EDI
  87233. 4Ch 4 WORDs returned values of DS, ES, FS, GS
  87234. 54h DWORD returned EFLAGS
  87235. SeeAlso: #02694
  87236. Bitfields for PHARLAPX VxD-call register map:
  87237. Bit(s) Description (Table 02698)
  87238. 0 value in EAX field is valid
  87239. 1 value in EBX field is valid
  87240. 2 value in ECX field is valid
  87241. 3 value in EDX field is valid
  87242. 4 value in EBP field is valid
  87243. 5 value in ESI field is valid
  87244. 6 value in EDI field is valid
  87245. 7 value in DS field is valid
  87246. 8 value in ES field is valid
  87247. 9 value in FS field is valid
  87248. 10 value in GS field is valid
  87249. 11 value in EFLAGS field is valid
  87250. SeeAlso: #02697
  87251. --------W-2F1684BX28A1-----------------------
  87252. INT 2F - MS Windows - PharLap VxD - GET API ENTRY POINT
  87253. AX = 1684h
  87254. BX = 28A1h (virtual device ID for PharLap device) (see #02642)
  87255. ES:DI = 0000h:0000h
  87256. Return: ES:DI -> VxD API entry point
  87257. 0000h:0000h if the VxD does not support API in current mode
  87258. SeeAlso: AX=1684h"DEVICE API",AX=1684h/BX=28A0h,INT 20"Windows"
  87259. --------W-2F1684BX2925-----------------------
  87260. INT 2F - MS Windows - EDOS - GET API ENTRY POINT
  87261. AX = 1684h
  87262. BX = 2925h (virtual device ID for EDOS device) (see #02642)
  87263. ES:DI = 0000h:0000h
  87264. Return: ES:DI -> VxD API entry point (see #02699)
  87265. 0000h:0000h if the VxD does not support an API
  87266. (Table 02699)
  87267. Call EDOS entry point with:
  87268. AX = 0000h get EDOS version number
  87269. Return: AH = major version
  87270. AL = minor version
  87271. AX = 0001h display message
  87272. CX = 0
  87273. DX:BX -> ASCIZ Message
  87274. AX = 0002h get EDOS error coded
  87275. Return: EAX = time in milliseconds that Windows has been running
  87276. AX = 0003h execute windows program
  87277. Return: EAX = cumulative amount of time the virtual machine has
  87278. been active, in milliseconds
  87279. AX = 0008h get/set priority
  87280. BX = 0000h??? foreground
  87281. 0001h background
  87282. DI = 0000h get
  87283. 0001h set
  87284. DX = priority setting
  87285. Return: CX = foreground priority
  87286. DX = background priority
  87287. BX:AX = flags
  87288. 00000001h exclusive ON
  87289. 00000010h background ON
  87290. SI = CPU percentage
  87291. --------W-2F1684BX292D-----------------------
  87292. INT 2F - MS Windows - VSBPD - GET API ENTRY POINT
  87293. AX = 1684h
  87294. BX = 292Dh (virtual device ID for VSBPD device) (see #02642)
  87295. ES:DI = 0000h:0000h
  87296. Return: ES:DI -> VxD API entry point
  87297. 0000h:0000h if the VxD does not support API in current mode
  87298. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  87299. --------W-2F1684BX295A-----------------------
  87300. INT 2F - MS Windows - GRVSULTR - GET API ENTRY POINT
  87301. AX = 1684h
  87302. BX = 295Ah (virtual device ID for GRVSULTR device) (see #02642)
  87303. ES:DI = 0000h:0000h
  87304. Return: ES:DI -> VxD API entry point
  87305. 0000h:0000h if the VxD does not support API in current mode
  87306. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  87307. --------x-2F1684BX304C-----------------------
  87308. INT 2F - Intel Plug-and-Play - CONFIGURATION ACCESS - GET ENTRY POINT
  87309. AX = 1684h
  87310. BX = 304Ch (ID for Configuration Access) (see #02642)
  87311. ES:DI = 0000h:0000h
  87312. Return: ES:DI -> API entry point (see #02700)
  87313. 0000h:0000h if Configuration Access not loaded
  87314. Note: this API is often provided by a DOS device driver, in which case it
  87315. is available whether or not MSWindows is running
  87316. Index: installation check;Plug-and-Play Configuration Access
  87317. SeeAlso: AX=1684h/BX=0034h
  87318. (Table 02700)
  87319. Call Plug-and-Play Configuration Access entry point with:
  87320. AX = function
  87321. 0000h "CA_GetVersion"
  87322. Return: AX = BCD version (AH = major, AL = minor)
  87323. 0001h "CA_PCI_Read_Config_Byte" (see also INT 1A/AX=B108h)
  87324. !!!
  87325. 0002h "CA_PCI_Read_Config_Word" (see also INT 1A/AX=B109h)
  87326. 0003h "CA_PCI_Read_Config_DWord" (see also INT 1A/AX=B10Ah)
  87327. 0004h "CA_PCI_Write_Config_Byte" (see also INT 1A/AX=B10Bh)
  87328. 0005h "CA_PCI_Write_Config_Word" (see also INT 1A/AX=B10Ch)
  87329. 0006h "CA_PCI_Write_Config_DWord" (see also INT 1A/AX=B10Dh)
  87330. 0007h "CA_PCI_Generate_Special_Cycle" (see also INT 1A/AX=B106h)
  87331. 0008h "CA_PCI_Get_Routing_Options" (see also INT 1A/AX=B10Eh)
  87332. 0009h invalid function
  87333. 000Ah invalid function
  87334. 000Bh "CA_PnPISA_Get_Info"
  87335. 000Ch "CA_PnPISA_Read_Config_Byte"
  87336. 000Dh "CA_PnPISA_Write_Config_Byte"
  87337. 000Eh "CA_PnPISA_Get_Resource_Data"
  87338. 000Fh invalid function
  87339. 0010h "CA_EISA_Get_Board_ID"
  87340. 0011h "CA_EISA_Get_Slot_Config"
  87341. 0012h "CA_EISA_Get_SlotFunc_Config"
  87342. 0013h "CA_EISA_Clear_NVRAM_Config"
  87343. 0014h "CA_EISA_Write_Config"
  87344. 0015h invalid function
  87345. 0016h "CA_ESCD_Get_Info"
  87346. 0017h "CA_ESCD_Read_Config"
  87347. 0018h "CA_ESCD_Write_Config"
  87348. 0019h invalid function
  87349. 001Ah "CA_Acfg_PCI_Manage_IRQs"
  87350. DL = IRQ???
  87351. ES:DI -> ???
  87352. Return: AX = status
  87353. 001Bh "CA_Acfg_PCI_Get_Routing_Options"
  87354. ES:DI -> IRQ routing table header
  87355. (see #01259 at INT 1A/AX=B406h)
  87356. Return: AX = status
  87357. 001Ch-001Fh invalid functions
  87358. 0020h "CA_PnPB_Get_Num_Sys_Dev_Nodes"
  87359. 0021h "CA_PnPB_Get_Sys_Dev_Node"
  87360. 0022h "CA_PnPB_Set_Sys_Dev_Node"
  87361. 0023h "CA_PnPB_Get_Stat_Res_Info"
  87362. 0024h "CA_PnPB_Set_Stat_Res_Info"
  87363. Return: AX = FFFFh if unsupported function
  87364. SeeAlso: #02701
  87365. --------W-2F1684BX3099-----------------------
  87366. INT 2F - MS Windows - VVidramD - GET API ENTRY POINT
  87367. AX = 1684h
  87368. BX = 3099h (virtual device ID for VVidramD device) (see #02642)
  87369. ES:DI = 0000h:0000h
  87370. Return: ES:DI -> VxD API entry point (see #02701)
  87371. 0000h:0000h if the VxD does not support API in current mode
  87372. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  87373. (Table 02701)
  87374. Call VVidramD (VIDRAM.VXD) virtual-86 entry point with:
  87375. AX = function number
  87376. 0000h map page???
  87377. BX = page number???
  87378. Return: CF clear if successful
  87379. CF set on error
  87380. 0001h ???
  87381. Return: CF clear if successful
  87382. CF set on error
  87383. else
  87384. Return: CF set
  87385. SeeAlso: #02700,#02702
  87386. --------W-2F1684BX30F6-----------------------
  87387. INT 2F P - MS Windows - WSVV - GET API ENTRY POINT
  87388. AX = 1684h
  87389. BX = 30F6h (virtual device ID for WSVV device) (see #02642)
  87390. ES:DI = 0000h:0000h
  87391. Return: ES:DI -> VxD API entry point
  87392. 0000h:0000h if the VxD does not support API in current mode
  87393. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  87394. (Table 02702)
  87395. Call WSVV.VXD protected-mode entry point with:
  87396. AX = function number
  87397. ????
  87398. Return: ???
  87399. SeeAlso: #02701,#02703
  87400. --------W-2F1684BX310E-----------------------
  87401. INT 2F - MS Windows - WPS - GET API ENTRY POINT
  87402. AX = 1684h
  87403. BX = 310Eh (virtual device ID for WPS device) (see #02642)
  87404. ES:DI = 0000h:0000h
  87405. Return: ES:DI -> VxD API entry point (see #02703)
  87406. 0000h:0000h if the VxD does not support an API
  87407. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  87408. (Table 02703)
  87409. Call WPS protected-mode entry point with:
  87410. DX = function
  87411. 0000h get WPS.386 version
  87412. Return: CF clear
  87413. AX = version (AH = major, AL = minor)
  87414. 0001h get number of installed VxDs
  87415. Return: CF clear
  87416. AX = number of installed VxDs
  87417. 0002h get VxD characteristics
  87418. AX = number of VxD
  87419. ES:BX -> buffer for VxD characteristics structure (see #02704)
  87420. Return: CF clear
  87421. ES:BX buffer filled
  87422. SeeAlso: #02702,#02706
  87423. Format of WPS.386 VxD characteristics structure:
  87424. Offset Size Description (Table 02704)
  87425. 00h WORD VxD ID number
  87426. 02h BYTE VxD minor version
  87427. 03h BYTE VxD major version
  87428. 04h BYTE DDK minor version
  87429. 05h BYTE DDK major version
  87430. 06h WORD flags
  87431. bit 0: V86 API supported
  87432. bit 1: PM API supported
  87433. bit 2: services supported
  87434. 08h DWORD start order
  87435. 0Ch 9 BYTEs ASCIZ VxD name
  87436. SeeAlso: #02703
  87437. --------W-2F1684BX3110-----------------------
  87438. INT 2F - MS Windows - VSGLX16.386 - GET API ENTRY POINT
  87439. AX = 1684h
  87440. BX = 3110h (virtual device ID for VSGLX16.386) (see #02642)
  87441. ES:DI = 0000h:0000h
  87442. Return: ES:DI -> VxD API entry point (see #02705)
  87443. 0000h:0000h if the VxD does not support an API
  87444. SeeAlso: AX=1684h/BX=045Fh,AX=1684h"DEVICE API",INT 20"Windows"
  87445. (Table 02705)
  87446. Call VSGLX16.386 entry point with:
  87447. DX = function number
  87448. 0000h get azt16 version
  87449. Return: CF clear
  87450. AX = version returned by "azt16" device
  87451. 0001h get ???
  87452. AX = ??? (always fails if nonzero)
  87453. ES:BX -> buffer for ???
  87454. first DWORD of buffer must be set to length of buffer
  87455. (in bytes, 1 <= size <= 92) before calling
  87456. Return: CF clear if successful
  87457. AX = 0001h
  87458. CF set on error (invalid pointer, bad buffer size)
  87459. AX = 0000h
  87460. 0002h
  87461. AX = ???
  87462. BX = ???
  87463. Return: CF clear if successful
  87464. AX = ???
  87465. CF set on error
  87466. AX = error code
  87467. 0003h
  87468. AX = ???
  87469. BX = ???
  87470. Return: CF clear if successful
  87471. CF set on error
  87472. 0004h set ???
  87473. ES:DI -> buffer containing ???
  87474. BX = ???
  87475. CX = number of bytes to copy
  87476. Return: CF clear if successful
  87477. AX = 0001h
  87478. CF set on error
  87479. AX = 0000h
  87480. 0005h get ???
  87481. ES:DI -> buffer for ???
  87482. BX = ???
  87483. CX = number of bytes to copy
  87484. Return: CF clear if successful
  87485. AX = 0001h
  87486. CF set on error
  87487. AX = 0000h
  87488. else
  87489. Return: CF set
  87490. SeeAlso: #02686
  87491. --------W-2F1684BX31CF-----------------------
  87492. INT 2F - MS Windows - STAT.386 - GET API ENTRY POINT
  87493. AX = 1684h
  87494. BX = 31CFh (virtual device ID for STAT.386) (see #02642)
  87495. ES:DI = 0000h:0000h
  87496. Return: ES:DI -> VxD API entry point (see #02706)
  87497. 0000h:0000h if the VxD does not support an API
  87498. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  87499. (Table 02706)
  87500. Call STAT.386 entry point with:
  87501. AX = function
  87502. 0000h get version
  87503. Return: AX = STAT.386 version (AH = major, AL = minor)
  87504. 0001h execute RDMSR/WRMSR/RDTSC
  87505. BH = 00h
  87506. BL = second opcode byte (30h=WRMSR,31h=RDTSC,32h=RDMSR)
  87507. EDX:EDI = value to be written (for BL=30h)
  87508. ECX = MSR number for RDMSR/WRMSR
  87509. Return: EDX:EAX = value read (RDTSR/RDMSR only)
  87510. SeeAlso: #02703,#02707
  87511. --------W-2F1684BX34DC-----------------------
  87512. INT 2F - QEMM v8.01 - MAGNARAM VxD - GET API ENTRY POINT
  87513. AX = 1684h
  87514. BX = 34DCh (virtual device ID for MAGNARAM) (see #02642)
  87515. ES:DI = 0000h:0000h
  87516. Return: ES:DI -> VxD API entry point (see #02707)
  87517. 0000h:0000h if the VxD does not support an API
  87518. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  87519. (Table 02707)
  87520. Call MAGNARAM MAGNA95.VXD protected-mode entry point with:
  87521. AX = function number
  87522. 0000h get version and ???
  87523. Return: AX = version (AH = major, AL = minor)
  87524. CX = ???
  87525. bit 0: ???
  87526. bit 1: ???
  87527. 0001h get ???
  87528. Return: CF clear
  87529. DX:AX = ??? SHL 2
  87530. 0002h
  87531. Return: CF clear if successful
  87532. AX = ???
  87533. DX = ???
  87534. CF set on error
  87535. 0003h get ???
  87536. Return: CF clear
  87537. DX:AX = ??? SHL 2
  87538. 0004h ???
  87539. Return: CF clear
  87540. DX:AX = ???
  87541. 0005h ???
  87542. Return: CF clear
  87543. DX:AX = ???
  87544. 0006h ???
  87545. Return: CF clear
  87546. DX:AX = ???
  87547. 0007h ???
  87548. Return: CF clear
  87549. DX:AX = ???
  87550. 0008h ???
  87551. Return: CF clear
  87552. DX:AX = ???
  87553. 0009h ???
  87554. Return: CF clear
  87555. DX:AX = ???
  87556. 000Ah ???
  87557. Return: CF clear
  87558. DX:AX = ???
  87559. 000Bh get ???
  87560. Return: CF clear
  87561. DX:AX = ??? SHL 2
  87562. 000Ch get ???
  87563. Return: CF clear
  87564. DX:AX = ??? SHL 2
  87565. 000Dh get ???
  87566. Return: CF clear
  87567. DX:AX = ??? SHL 2
  87568. 000Eh get ???
  87569. Return: CF clear
  87570. AX = ???
  87571. DX = ???
  87572. 000Fh get ???
  87573. Return: CF clear
  87574. DX:AX = ???
  87575. 0010h get ???
  87576. Return: CF clear
  87577. DX:AX = ???
  87578. 0011h get ???
  87579. Return: CF clear
  87580. DX:AX = ???
  87581. 0012h get ???
  87582. Return: CF clear
  87583. DX:AX = ???
  87584. 0013h get ???
  87585. Return: CF clear
  87586. DX:AX = ???
  87587. 0014h get ???
  87588. Return: CF clear
  87589. DX:AX = ???
  87590. 0015h get ???
  87591. Return: CF clear
  87592. DX:AX = ???
  87593. else
  87594. Return: CF set
  87595. SeeAlso: #02706,#02708
  87596. --------W-2F1684BX357E-----------------------
  87597. INT 2F - MS Windows - DSOUND - GET API ENTRY POINT
  87598. AX = 1684h
  87599. BX = 357Eh (virtual device ID for DSOUND device) (see #02642)
  87600. ES:DI = 0000h:0000h
  87601. Return: ES:DI -> VxD API entry point
  87602. 0000h:0000h if the VxD does not support API in current mode
  87603. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  87604. ----------2F1684BX377B-----------------------
  87605. INT 2F - MS Windows - MX1501HAD - GET API ENTRY POINT
  87606. AX = 1684h
  87607. BX = 377Bh (virtual device ID for MX1501HAD device)
  87608. ES:DI = 0000h:0000h
  87609. Return: ES:DI -> VxD API entry point (see #02708)
  87610. 0000h:0000h if the VxD does not support an API
  87611. Note: The drivers VCMD95C.VXD and VCMD.386 are part of the driver disks
  87612. provided with the chip-card-reader/keyboard combination MX 1501 HAD,
  87613. produced by Cherry
  87614. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  87615. (Table 02708)
  87616. Call CHERRY VCMD95C.VXD entry point with:
  87617. AX = function
  87618. 0001h get version
  87619. Return: AX = version number (0100h) (AH = major, AL = minor)
  87620. 0002h hook INT 09 (and 8???)
  87621. 0003h unhook INT 09 (and 8???)
  87622. 0004h get number of bytes in FIFO
  87623. Return: AX = bytes in FIFO
  87624. 0005h get next FIFO-data
  87625. Return: AX = data
  87626. BL = port number
  87627. BH = direction (1=in, 0=out)
  87628. DX:CX = timestamp
  87629. 0006h clear FIFO
  87630. 0007h output byte
  87631. DX = port number
  87632. BL = keyboard command
  87633. Return: data in FIFO (see #02710)
  87634. (value, port, in/out, timestamp)
  87635. 0008h input byte
  87636. DX = port number
  87637. Return: data in FIFO (see #02710)
  87638. (value, port, in/out, timestamp)
  87639. 0009h input byte immediately
  87640. DX = port number
  87641. Return: AX = data
  87642. 000Ah read next FIFO data (nondestructive)
  87643. Return: AX = data
  87644. BL = port number
  87645. BH = direction (1=in, 0=out)
  87646. DX:CX = timestamp
  87647. 000Bh get timestamp
  87648. Return: DX:CX = timestamp (in ms)
  87649. 000Ch enable IRQ 1
  87650. 000Dh disable IRQ 1
  87651. 000Eh enable data retrieval
  87652. Note: Sets a flag in the internal mode-byte which
  87653. tells the driver to recognize the data
  87654. 000Fh disable data retrieval
  87655. Note: resets a flag in the internal mode-byte
  87656. 0010h get retrieval mode
  87657. Return: AX = current retrieval mode
  87658. 0011h set retrieval mode
  87659. BX = new retrieval mode (see #02709)
  87660. Return: AX = old retrieval mode
  87661. 0012h get command value
  87662. Return: AX = command value
  87663. 0013h set command value
  87664. BX = command value
  87665. SeeAlso: #02706,#02711
  87666. Bitfields for retrieval mode:
  87667. Bit(s) Description (Table 02709)
  87668. 0 enable data retrieval
  87669. 1 0 = interrupt-driven
  87670. 1 = polling mode
  87671. 2 0 = read port 60h everytime
  87672. 1 = read port 60h only when OBF of port 64h is set
  87673. 3 0 = don't call old INT 9
  87674. 1 = call INT 9 before our INT-handler
  87675. 4-7 reserved
  87676. SeeAlso: #02708,#02710
  87677. Format of FIFO entry (1024 entries in FIFO):
  87678. Offset Size Description (Table 02710)
  87679. 00h BYTE data byte
  87680. 01h BYTE I/O port
  87681. 02h BYTE direction (1=in, 0=out)
  87682. 03h BYTE reserved
  87683. 04h DWORD timestamp
  87684. SeeAlso: #02708,#02709
  87685. --------W-2F1684BX38DA-----------------------
  87686. INT 2F - MS Windows - VIWD - GET API ENTRY POINT
  87687. AX = 1684h
  87688. BX = 38DAh (virtual device ID for VIWD device) (see #02642)
  87689. ES:DI = 0000h:0000h
  87690. Return: ES:DI -> VxD API entry point (see #02711)
  87691. 0000h:0000h if the VxD does not support API in current mode
  87692. SeeAlso: AX=1684h"DEVICE API",INT 20"Windows"
  87693. (Table 02711)
  87694. Call VIWD.VXD entry point with:
  87695. DX = function number
  87696. 0000h ???
  87697. Return: CF clear
  87698. AX = ???
  87699. 0004h ???
  87700. Return: CF clear
  87701. DX = 0000h
  87702. 0006h
  87703. Return: CF clear
  87704. 000Ah
  87705. AX = ???
  87706. Return: CF clear if successful
  87707. CF set on error
  87708. 000Ch
  87709. 000Dh
  87710. 000Eh
  87711. Return: CF clear
  87712. 000Fh
  87713. Return: CF clear
  87714. 0010h
  87715. 0011h
  87716. 0015h
  87717. Return: CF clear if successful
  87718. AX = ???
  87719. CF set on error
  87720. AX = ???
  87721. DX = 0000h
  87722. 0016h
  87723. 0017h
  87724. Return: CF clear if successful
  87725. AX = ???
  87726. CF set on error
  87727. AX = ???
  87728. DX = 0000h
  87729. 0018h ???
  87730. CX = ???
  87731. Return: CF clear if successful
  87732. AX = 0000h
  87733. CF set on error
  87734. else
  87735. Return: CF set
  87736. SeeAlso: #02708,#02712
  87737. --------W-2F1684BX4321-----------------------
  87738. INT 2F - MS Windows - POSTMSG - GET API ENTRY POINT
  87739. AX = 1684h
  87740. BX = 4321h (virtual device ID for POSTMSG device) (see #02642)
  87741. ES:DI = 0000h:0000h
  87742. Return: ES:DI -> VxD API entry point (see #02712,#02714)
  87743. 0000h:0000h if the VxD does not support an API
  87744. (Table 02712)
  87745. Call POSTMSG protected-mode entry point with:
  87746. AX = window handle
  87747. CX:BX -> callback procedure (see #02713)
  87748. Return: nothing
  87749. Note: this call registers a WinApp with the VxD; the callback must be in a
  87750. fixed, non-discardable code segment
  87751. SeeAlso: #02714,#02715
  87752. (Table 02713)
  87753. Values POSTMSG callback routine is called with:
  87754. STACK: DWORD "lParam" parameter from DOSApp
  87755. WORD "wParam" parameter from DOSApp
  87756. WORD Windows message number (WM_USER + 100h)
  87757. WORD registered HWND
  87758. (Table 02714)
  87759. Call POSTMSG V86-mode entry point with:
  87760. BX = wParam value to pass to protected-mode callback
  87761. DX:AX = lParam value to pass to protected-mode callback
  87762. Return: CF clear if successful
  87763. CF set on error (no WinApp registered)
  87764. SeeAlso: #02712
  87765. --------W-2F1684BX7FE0-----------------------
  87766. INT 2F - MS Windows - VSWITCHD - GET API ENTRY POINT
  87767. AX = 1684h
  87768. BX = 7FE0h (virtual device ID for VSWITCHD device) (see #02642)
  87769. ES:DI = 0000h:0000h
  87770. Return: ES:DI -> VxD API entry point (see #02715)
  87771. 0000h:0000h if the VxD does not support an API
  87772. (Table 02715)
  87773. Call VSWITCHD entry point with:
  87774. AX = function
  87775. 0000h toggle windowed mode (simulate Alt-Enter keypress)
  87776. Return: nothing
  87777. 0001h get windowed mode
  87778. Return: CF clear if VM is windowed
  87779. CF set if VM is full-screen
  87780. SeeAlso: #02712,#02716
  87781. --------W-2F1684BX8888-----------------------
  87782. INT 2F - MS Windows - VbillD - GET API ENTRY POINT
  87783. AX = 1684h
  87784. BX = 8888h (virtual device ID for VbillD device) (see #02642)
  87785. ES:DI = 0000h:0000h
  87786. Return: ES:DI -> VxD API entry point (see #02716)
  87787. 0000h:0000h if the VxD does not support an API
  87788. (Table 02716)
  87789. Call VbillD entry point with:
  87790. AX = function
  87791. 0001h set reverse video
  87792. 0002h set normal video
  87793. Return: ???
  87794. SeeAlso: #02715
  87795. --------W-2F1685-----------------------------
  87796. INT 2F - MS Windows - SWITCH VMs AND CALLBACK
  87797. AX = 1685h
  87798. BX = VM ID of virtual machine to switch to
  87799. CX = flags (see #02717)
  87800. DX:SI = priority boost (refer to VMM.INC)
  87801. ES:DI -> FAR procedure to callback
  87802. Return: CF set on error
  87803. AX = error code
  87804. 01h invalid VM ID
  87805. 02h invalid priority boost
  87806. 03h invalid flags
  87807. CF clear if successful
  87808. event will be or has been called
  87809. Notes: some DOS devices, such as networks, need to call functions in a
  87810. specific VM. This call forces the appropriate VM to be installed.
  87811. the callback procedure must preserve all registers and return with IRET
  87812. SeeAlso: AX=1683h,INT 15/AX=1117h,AX=DB06h"WINGO"
  87813. Bitfields for VM switching flags:
  87814. Bit(s) Description (Table 02717)
  87815. 0 wait until interrupts enabled
  87816. 1 wait until critical section unowned
  87817. 2-15 reserved (zero)
  87818. --------E-2F1686-----------------------------
  87819. INT 2F - DOS Protected-Mode Interface - DETECT MODE
  87820. AX = 1686h
  87821. Return: AX = 0000h if operating in protected mode under DPMI (INT 31 available)
  87822. AX nonzero if in real/V86 mode or no DPMI (INT 31 not available)
  87823. SeeAlso: AX=1687h
  87824. --------E-2F1687-----------------------------
  87825. INT 2F - DOS Protected-Mode Interface - INSTALLATION CHECK
  87826. AX = 1687h
  87827. Return: AX = 0000h if installed
  87828. BX = flags
  87829. bit 0: 32-bit programs supported
  87830. CL = processor type (02h=80286, 03h=80386, 04h=80486)
  87831. DH = DPMI major version
  87832. DL = two-digit DPMI minor version (binary)
  87833. SI = number of paragraphs of DOS extender private data
  87834. ES:DI -> DPMI mode-switch entry point (see #02718)
  87835. AX nonzero if not installed
  87836. SeeAlso: AX=1686h,AX=43E0h,AX=DE01h/BX=4450h,AX=FB42h/BX=0001h
  87837. SeeAlso: INT 31/AX=0400h,INT 31/AX=5702h,INT D4/AH=10h
  87838. (Table 02718)
  87839. Call DPMI mode switch entry point with:
  87840. AX = flags
  87841. bit 0: set if 32-bit program
  87842. ES = real mode segment of buffer for DPMI private data (ignored if
  87843. SI was zero)
  87844. Return: CF set on error
  87845. program still in real mode
  87846. AX = error code (DPMI 1.0+)
  87847. 8011h unable to allocate all necessary descriptors
  87848. 8021h 32-bit program specified, but 16-bit DPMI host
  87849. CF clear if successful
  87850. CS = 16-bit selector corresponding to real-mode CS
  87851. SS = selector corresponding to real-mode SS (64K limit)
  87852. DS = selector corresponding to real-mode DS (64K limit)
  87853. ES = selector to program's PSP (100h byte limit)
  87854. FS = GS = 0
  87855. high word of ESP = 0 if 32-bit program
  87856. program now in protected mode
  87857. Note: this entry point is only called for the initial switch to protected
  87858. mode
  87859. --------W-2F1688BX0BAD-----------------------
  87860. INT 2F U - MS Windows 3.0, 386MAX v6.01 - GET ALIAS SELECTOR TO LDT
  87861. AX = 1688h
  87862. BX = 0BADh
  87863. Return: AX = 0000h if supported
  87864. BX = alias selector for LDT
  87865. Note: use the LSL instruction or GetSelectorLimit() to find LDT size
  87866. this call should be considered obsolete for Windows 3.1+, as the
  87867. alias selector can be retrieved via the API entry point for
  87868. "MS-DOS" retrieved from INT 2F/AX=168Ah (see #02720)
  87869. SeeAlso: AX=1687h,#02720
  87870. --------W-2F1689-----------------------------
  87871. INT 2F U - MS Windows 3.0+ - KERNEL IDLE CALL
  87872. AX = 1689h
  87873. ???
  87874. Return: ???
  87875. Desc: the Windows KERNEL idle loop calls this function, which VMM uses as an
  87876. indication that the system is idle, which in turn generates INT 28
  87877. and INT 2F/AX=1607h/BX=0018h callouts
  87878. SeeAlso: AX=1680h,AX=1607h/BX=0018h,INT 15/AX=1000h,INT 28
  87879. --------E-2F168A-----------------------------
  87880. INT 2F - DPMI 0.9+ - GET VENDOR-SPECIFIC API ENTRY POINT
  87881. AX = 168Ah
  87882. DS:(E)SI = selector:offset of ASCIZ vendor name (see #02719)
  87883. Return: AL = status
  87884. 00h successful
  87885. ES:(E)DI -> extended API entry point
  87886. 8Ah unsuccessful
  87887. Notes: the vendor name is used to determine which entry point to return; it is
  87888. case-sensitive
  87889. available in protected mode only
  87890. 32-bit applications use ESI and EDI, 16-bit applications use SI and DI
  87891. this call is present but not documented for DPMI 0.9
  87892. the Borland C++ 3.1 DPMILOAD does not handle requests for entry points
  87893. other than the MS-DOS one gracefully, producing an unhandled
  87894. exception report; this has been fixed in the Borland Pascal 7 version
  87895. SeeAlso: AX=1687h,INT 31/AX=0A00h,INT 31/AH=57h
  87896. (Table 02719)
  87897. Values for DPMI vendor-specific API names:
  87898. "MS-DOS" MS Windows and 386MAX v6.00+ (see #02720)
  87899. "386MAX" 386MAX v6.00+
  87900. "HELIX_DPMI" Helix Netroom's DPMI server
  87901. "Phar Lap" Phar Lap 286|DOS-Extender RUN286 (see #02721)
  87902. "RATIONAL DOS/4G" DOS/4G, DOS/4GW
  87903. "VIRTUAL SUPPORT" Borland 32RTM
  87904. (Table 02720)
  87905. Call Windows-support ("MS-DOS") entry point with:
  87906. AX = 0100h get LDT alias selector
  87907. Return: CF clear if successful
  87908. AX = alias selector
  87909. CF set on error
  87910. SeeAlso: #02719,AX=1688h/BX=0BADh
  87911. (Table 02721)
  87912. Call Phar Lap RUN286 entry point with:
  87913. AX = 0000h (function "load MSW")
  87914. BX = new value for MSW register (low word of CR0)
  87915. Return: ???
  87916. SeeAlso: #02719
  87917. --------W-2F168B-----------------------------
  87918. INT 2F - MS Windows 3.1 - SET FOCUS TO SPECIFIED VIRTUAL MACHINE
  87919. AX = 168Bh
  87920. BX = virtual machine ID (see AX=1683h), 0000h for current DOS box
  87921. Return: AL = 00h if focus set to specified VM
  87922. Notes: documented on the Microsoft Developer's Network CD-ROM
  87923. if the VM is a windowed DOS box, it will be set to full screen
  87924. SeeAlso: AX=1683h
  87925. --------W-2F168C-----------------------------
  87926. INT 2F - MS Windows 3.1 - RESTART COMMAND
  87927. AX = 168Ch
  87928. ???
  87929. Return: ???
  87930. Note: WIN.COM executes specified application
  87931. --------W-2F168EDX0000-----------------------
  87932. INT 2F - Windows95 - TITLE - SET APPLICATION TITLE
  87933. AX = 168Eh
  87934. DX = 0000h
  87935. ES:DI -> ASCIZ application title (max 79 chars+NUL)
  87936. Return: AX = status
  87937. 0000h failed
  87938. 0001h successful
  87939. Note: if ES:DI is 0000h:0000h or points at an empty string, the current
  87940. title is removed
  87941. BUG: this function can return a successful status even though the title was
  87942. not changed; reportedly, waiting for two clock ticks after program
  87943. startup solves this problem
  87944. SeeAlso: AX=168Eh/DX=0001h,AX=168Eh/DX=0002h
  87945. --------W-2F168EDX0001-----------------------
  87946. INT 2F - Windows95 - TITLE - SET VIRTUAL MACHINE TITLE
  87947. AX = 168Eh
  87948. DX = 0001h
  87949. ES:DI -> ASCIZ virtual machine title (max 29 chars+NUL)
  87950. Return: AX = status
  87951. 0000h failed
  87952. 0001h successful
  87953. Notes: if ES:DI is 0000h:0000h or points at an empty string, the current
  87954. title is removed
  87955. the VM title should only be changed on explicit instruction from the
  87956. user
  87957. BUG: this function can return a successful status even though the title was
  87958. not changed; reportedly, waiting for two clock ticks after program
  87959. startup solves this problem
  87960. SeeAlso: AX=168Eh/DX=0000h,AX=168Eh/DX=0003h
  87961. --------W-2F168EDX0002-----------------------
  87962. INT 2F - Windows95 - TITLE - GET APPLICATION TITLE
  87963. AX = 168Eh
  87964. DX = 0002h
  87965. ES:DI -> buffer for ASCIZ application title
  87966. CX = size of buffer in bytes
  87967. Return: AX = status
  87968. 0000h failed
  87969. 0001h successful
  87970. Desc: copy as much of the application's window title as possible to the given
  87971. buffer, appending a terminating NUL to the buffer
  87972. SeeAlso: AX=168Eh/DX=0000h,AX=168Eh/DX=0003h
  87973. --------W-2F168EDX0003-----------------------
  87974. INT 2F - Windows95 - TITLE - GET VIRTUAL MACHINE TITLE
  87975. AX = 168Eh
  87976. DX = 0003h
  87977. ES:DI -> buffer for ASCIZ virtual-machine title
  87978. CX = size of buffer in bytes
  87979. Return: AX = status
  87980. 0000h failed
  87981. 0001h successful
  87982. Desc: copy as much of the virtual machine's title as possible to the given
  87983. buffer, appending a terminating NUL to the buffer
  87984. SeeAlso: AX=168Eh/DX=0001h,AX=168Eh/DX=0002h
  87985. --------W-2F168FDH00-------------------------
  87986. INT 2F - Windows95 - CLOSE-AWARENESS - ENABLE/DISABLE CLOSE COMMAND
  87987. AX = 168Fh
  87988. DH = 00h
  87989. DL = new state
  87990. 00h disabled
  87991. 01h enabled
  87992. Return: AX = status
  87993. 0000h successful
  87994. else failed
  87995. Desc: enable or disable the system menu Close command for an application
  87996. SeeAlso: AX=168Fh/DH=01h,AX=168Fh/DH=02h
  87997. --------W-2F168FDH01-------------------------
  87998. INT 2F - Windows95 - CLOSE-AWARENESS - QUERY CLOSE
  87999. AX = 168Fh
  88000. DH = 01h
  88001. DL = 00h (reserved)
  88002. Return: AX = status
  88003. 0000h Close command selected but not yet acknowledged
  88004. 0001h Close command issued and acknowledged
  88005. 168Fh Close command not selected -- application should continue
  88006. Desc: determine whether the user has requested that the application be closed
  88007. by selecting the system menu's Close option
  88008. SeeAlso: AX=168Fh/DH=00h,AX=168Fh/DH=02h
  88009. --------W-2F168FDH02-------------------------
  88010. INT 2F - Windows95 - CLOSE-AWARENESS - ACKNOWLEDGE CLOSE
  88011. AX = 168Fh
  88012. DH = 02h
  88013. DL = 00h (reserved)
  88014. Return: AX = status
  88015. 0000h successful
  88016. else failed
  88017. Note: once a Close command has been issued, no further keyboard input is
  88018. available to the application until it calls this function to
  88019. acknowledge the Close request
  88020. SeeAlso: AX=168Fh/DH=00h,AX=168Fh/DH=03h
  88021. --------W-2F168FDH03-------------------------
  88022. INT 2F - Windows95 - CLOSE-AWARENESS - CANCEL CLOSE
  88023. AX = 168Fh
  88024. DH = 03h
  88025. DL = 00h (reserved)
  88026. Return: AX = status
  88027. 0000h successful
  88028. else failed
  88029. Desc: cancels a close request which has already been acknowledged if the
  88030. application determines that it will not exit at this time
  88031. SeeAlso: AX=168Fh/DH=00h,AX=168Fh/DH=03h
  88032. --------D-2F1690-----------------------------
  88033. INT 2F U - MS-DOS 7 kernel - GET/SET ???
  88034. AX = 1690h
  88035. ES:BX -> ???
  88036. Return: ES:BX -> ??? data (see #02722)
  88037. SeeAlso: AX=1611h,AX=1614h
  88038. Format of MS-DOS 7 kernel ??? data:
  88039. Offset Size Description (Table 02722)
  88040. 00h DWORD -> ??? data (appears to list the installed drivers)
  88041. 04h DWORD -> ??? (value passed in via ES:BX is stored here)
  88042. --------!---Section--------------------------
  88043. Interrupt List, part 12 of 18
  88044. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  88045. --------W-2F1700-----------------------------
  88046. INT 2F - MS Windows "WINOLDAP" - IDENTIFY WinOldAp VERSION
  88047. AX = 1700h
  88048. Return: AX = 1700h if this version of WINOLDAP doesn't support clipboard
  88049. AX <> 1700h
  88050. AL = WINOLDAP major version
  88051. AH = WINOLDAP minor version
  88052. Program: WinOldAp (WINOLDAP.MOD) is a Microsoft Windows extension supporting
  88053. "old" (character-mode) application access to Dynamic Data Exchange,
  88054. menus, and the Windows clipboard.
  88055. Note: this installation check DOES NOT follow the format used by other
  88056. software of returning AL=FFh
  88057. SeeAlso: AX=1701h,AX=4601h
  88058. Index: installation check;WINOLDAP
  88059. --------W-2F1701-----------------------------
  88060. INT 2F - MS Windows "WINOLDAP" - OPEN CLIPBOARD
  88061. AX = 1701h
  88062. Return: AX = status
  88063. nonzero success
  88064. 0000h clipboard is already open
  88065. SeeAlso: AX=1700h,AX=1702h,AX=1703h,AX=1704h,INT 16/AX=CB00h
  88066. --------W-2F1702-----------------------------
  88067. INT 2F - MS Windows "WINOLDAP" - EMPTY CLIPBOARD
  88068. AX = 1702h
  88069. Return: AX = status
  88070. nonzero clipboard has been emptied
  88071. 0000h failure
  88072. SeeAlso: AX=1700h,AX=1701h,AX=1703h,AX=1704h,INT 16/AX=CB05h
  88073. --------W-2F1703-----------------------------
  88074. INT 2F - MS Windows "WINOLDAP" - SET CLIPBOARD DATA
  88075. AX = 1703h
  88076. DX = clipboard format supported by WinOldAp (see #02723)
  88077. ES:BX -> data (see #02724,#02725)
  88078. SI:CX = size of data
  88079. Return: AX = status
  88080. nonzero data copied into the Clipboard
  88081. 0000h failure
  88082. SeeAlso: AX=1701h,AX=1705h,INT 16/AX=CB04h
  88083. (Table 02723)
  88084. Values for WinOldAp clipboard format:
  88085. 01h text
  88086. 02h bitmap
  88087. 03h metafile picture
  88088. 04h SYLK
  88089. 05h DIF
  88090. 06h TIFF
  88091. 07h OEM text
  88092. 08h DIB bitmap
  88093. 80h special format (used by Windows WRITE, maybe other Windows applets???)
  88094. 81h DSP text
  88095. 82h DSP bitmap
  88096. Format of Windows Clipboard bitmap:
  88097. Offset Size Description (Table 02724)
  88098. 00h WORD type (0000h)
  88099. 02h WORD width of bitmap in pixels
  88100. 04h WORD height of bitmap in pixels
  88101. 06h WORD bytes per line
  88102. 08h BYTE number of color planes
  88103. 09h BYTE number of adjacent color bits in pixel
  88104. 0Ah DWORD pointer to start of data
  88105. 0Eh WORD width in 0.1mm units
  88106. 10h WORD height in 0.1mm units
  88107. 12h N BYTEs bitmap data
  88108. Format of Windows metafile picture:
  88109. Offset Size Description (Table 02725)
  88110. 00h WORD mapping mode
  88111. 02h WORD X extent
  88112. 04h WORD Y extent
  88113. 06h WORD picture data
  88114. --------W-2F1704-----------------------------
  88115. INT 2F - MS Windows "WINOLDAP" - GET CLIPBOARD DATA SIZE
  88116. AX = 1704h
  88117. DX = clipboard format supported by WinOldAp (see #02723)
  88118. Return: DX:AX = size of data in bytes, including any headers
  88119. 0000h:0000h if no data in this format in the Clipboard
  88120. Note: Windows reportedly rounds up the size of the data to a multiple of 32
  88121. bytes
  88122. SeeAlso: AX=1700h,AX=1703h,AX=1705h
  88123. --------W-2F1705-----------------------------
  88124. INT 2F - MS Windows "WINOLDAP" - GET CLIPBOARD DATA
  88125. AX = 1705h
  88126. DX = clipboard format supported by WinOldAp (see #02723)
  88127. ES:BX -> buffer
  88128. Return: AX = status
  88129. nonzero success
  88130. 0000h error, or no data in this format in Clipboard
  88131. SeeAlso: AX=1700h,AX=1704h,INT 16/AX=CB03h
  88132. --------W-2F1708-----------------------------
  88133. INT 2F - MS Windows "WINOLDAP" - CloseClipboard
  88134. AX = 1708h
  88135. Return: AX = status
  88136. 0000h failure
  88137. nonzero success
  88138. --------W-2F1709-----------------------------
  88139. INT 2F - MS Windows "WINOLDAP" - COMPACT CLIPBOARD
  88140. AX = 1709h
  88141. SI:CX = desired size in bytes
  88142. Return: DX:AX = number of bytes in largest block of free memory
  88143. Note: WinOldAp is responsible for including the size of any headers
  88144. --------W-2F170A-----------------------------
  88145. INT 2F - MS Windows "WINOLDAP" - GET DEVICE CAPABILITIES
  88146. AX = 170Ah
  88147. DX = GDI information index (see #02726)
  88148. Return: AX = integer value of the desired item
  88149. (see #02727,#02728,#02729,#02730,#02731,#02732,#02733)
  88150. Note: This function returns the device-capability bits for the given display
  88151. (Table 02726)
  88152. Values for GDI information index:
  88153. 00h device driver version
  88154. 02h device classification
  88155. 04h width in mm
  88156. 06h height in mm
  88157. 08h width in pixels
  88158. 0Ah height in pixels
  88159. 0Ch bits per pixel
  88160. 0Eh number of bit planes
  88161. 10h number of brushes supported by device
  88162. 12h number of pens supported by device
  88163. 14h number of markers supported by device
  88164. 16h number of fonts supported by device
  88165. 18h number of colors
  88166. 1Ah size required for device descriptor
  88167. 1Ch curve capabilities
  88168. 1Eh line capabilities
  88169. 20h polygon capabilities
  88170. 22h text capabilities
  88171. 24h clipping capabilities
  88172. 26h bitblt capabilities
  88173. 28h X aspect
  88174. 2Ah Y aspect
  88175. 2Ch length of hypotenuse of aspect
  88176. 58h logical pixels per inch of width
  88177. 5Ah logical pixels per inch of height
  88178. SeeAlso: #02727,#02728,#02729,#02730,#02731,#02732,#02733
  88179. (Table 02727)
  88180. Values for device classification:
  88181. 00h vector plotter
  88182. 01h raster display
  88183. 02h raster printer
  88184. 03h raster camera
  88185. 04h character-stream, PLP
  88186. 05h Metafile, VDM
  88187. 06h display-file
  88188. SeeAlso: #02726,#02728,#02729,#02730,#02731,#02732,#02733
  88189. Bitfields for curve capabilities:
  88190. Bit(s) Description (Table 02728)
  88191. 0 circles
  88192. 1 pie wedges
  88193. 2 chord arcs
  88194. 3 ellipses
  88195. 4 wide lines
  88196. 5 styled lines
  88197. 6 wide styled lines
  88198. 7 interiors
  88199. SeeAlso: #02726,#02727,#02729,#02730,#02731,#02732,#02733
  88200. Bitfields for line capabilities:
  88201. Bit(s) Description (Table 02729)
  88202. 1 polylines
  88203. 2 markers
  88204. 3 polymarkers
  88205. 4 wide lines
  88206. 5 styled lines
  88207. 6 wide styled lines
  88208. 7 interiors
  88209. SeeAlso: #02726,#02727,#02728,#02730,#02731,#02732,#02733
  88210. Bitfields for polygon capabilities:
  88211. Bit(s) Description (Table 02730)
  88212. 0 polygons
  88213. 1 rectangles
  88214. 2 trapezoids
  88215. 3 scanlines
  88216. 4 wide borders
  88217. 5 styled borders
  88218. 6 wide styled borders
  88219. 7 interiors
  88220. SeeAlso: #02726,#02727,#02728,#02729,#02731,#02732,#02733
  88221. Bitfields for text capabilities:
  88222. Bit(s) Description (Table 02731)
  88223. 0 output precision character
  88224. 1 output precision stroke
  88225. 2 clippping precision stroke
  88226. 3 90-degree character rotation
  88227. 4 arbitrary character rotation
  88228. 5 independent X and Y scaling
  88229. 6 double-size
  88230. 7 integer scaling
  88231. 8 continuous scaling
  88232. 9 bold
  88233. 10 italic
  88234. 11 underline
  88235. 12 strikeout
  88236. 13 raster fonts
  88237. 14 vector fonts
  88238. 15 reserved
  88239. SeeAlso: #02726,#02727,#02728,#02729,#02730,#02732,#02733
  88240. (Table 02732)
  88241. Values for clipping capabilities:
  88242. 00h none
  88243. 01h clipping to rectangles
  88244. SeeAlso: #02726,#02727,#02728,#02729,#02730,#02731,#02733
  88245. Bitfields for raster capabilities:
  88246. Bit(s) Description (Table 02733)
  88247. 0 simple bitBLT
  88248. 1 device requires banding support
  88249. 2 device requires scaling support
  88250. 3 supports >64K bitmap
  88251. SeeAlso: #02726,#02727,#02728,#02729,#02730,#02731,#02732
  88252. ----------2F18-------------------------------
  88253. INT 2F U - MS-Manager
  88254. AH = 18h
  88255. ???
  88256. Return: ???
  88257. --------l-2F1900-----------------------------
  88258. INT 2F U - DOS 4.x only SHELLB.COM - INSTALLATION CHECK
  88259. AX = 1900h
  88260. Return: AL = status
  88261. 00h not installed
  88262. FFh installed
  88263. --------l-2F1901-----------------------------
  88264. INT 2F U - DOS 4.x only SHELLB.COM - SHELLC.EXE INTERFACE
  88265. AX = 1901h
  88266. BL = SHELLC type
  88267. 00h transient
  88268. 01h resident
  88269. DS:DX -> far call entry point for resident SHELLC.EXE
  88270. Return: ES:DI -> SHELLC.EXE workspace within SHELLB.COM
  88271. Note: SHELLB.COM and SHELLC.EXE are parts of the DOS 4.x shell
  88272. --------l-2F1902-----------------------------
  88273. INT 2F U - DOS 4.x only SHELLB.COM - COMMAND.COM INTERFACE
  88274. AX = 1902h
  88275. ES:DI -> ASCIZ full filename of current batch file, with at least the
  88276. final filename element uppercased
  88277. DS:DX -> buffer for results
  88278. Return: AL = 00h failed, either
  88279. (a) final filename element quoted at ES:DI does not match
  88280. identity of shell batch file quoted as parameter of most
  88281. recent call of SHELLB command, or
  88282. (b) no more Program Start Commands available.
  88283. AL= FFh success, then:
  88284. memory at DS:[DX+1] onwards filled as:
  88285. DX+1: BYTE count of bytes of PSC
  88286. DX+2: N BYTEs Program Start Command text
  88287. BYTE 0Dh terminator
  88288. Desc: COMMAND.COM executes the result of this call in preference to
  88289. reading a command from a batch file. Thus the batch file does not
  88290. advance in execution for so long as SHELLB provides PSCs from its
  88291. workspace.
  88292. Note: The PSCs are planted in SHELLB workspace by SHELLC, the user
  88293. menu interface. The final PSC of a sequence is finished with a
  88294. GOTO COMMON, which causes a loop back in the batch file which called
  88295. SHELLC so as to execute SHELLC again. The check on batch file name
  88296. permits PSCs to CALL nested batch files while PSCs are still stacked
  88297. up for subsequent execution.
  88298. --------l-2F1903-----------------------------
  88299. INT 2F U - DOS 4.x only SHELLB.COM - COMMAND.COM interface
  88300. AX = 1903h
  88301. ES:DI -> ASCIZ batch file name as for AX=1902h
  88302. Return: AL = status
  88303. FFh quoted batch file name matches last SHELLB parameter
  88304. 00h it does not
  88305. --------l-2F1904-----------------------------
  88306. INT 2F U - DOS 4.x only SHELLB.COM - SHELLB transient to TSR intrface
  88307. AX = 1904h
  88308. Return: ES:DI -> name of current shell batch file:
  88309. WORD number of bytes of name following
  88310. BYTEs (8 max) uppercase name of shell batch file
  88311. ----------2F1980-----------------------------
  88312. INT 2F U - IBM ROM-DOS v4.0 - INSTALLATION CHECK
  88313. AX = 1980h
  88314. Return: AL = FFh if ??? installed/supported
  88315. Note: called at the very beginning of SHELLSTB.COM, which exits if AL is not
  88316. FFh on return
  88317. SeeAlso: AX=1981h,AX=1982h
  88318. ----------2F1981-----------------------------
  88319. INT 2F U - IBM ROM-DOS v4.0 - GET ??? STRING
  88320. AX = 1981h
  88321. DS:DX -> buffer for ???
  88322. Return: AL = status
  88323. FFh if successful
  88324. DS:DX buffer filled (refer to note below)
  88325. 81h on error
  88326. Note: the first byte of the buffer is unchanged; depending on a byte in
  88327. IBMBIO.COM, the remainder of the buffer is filled with either
  88328. "C:\ROMSHELL.COM",0Dh or xxh,xxh,0Fh,"C:\ROMSHELL.COM",0Dh
  88329. SeeAlso: AX=1980h,AX=1982h
  88330. ----------2F1982-----------------------------
  88331. INT 2F U - IBM ROM-DOS v4.0 - GET ??? TABLE
  88332. AX = 1982h
  88333. Return: AL = FFh if supported
  88334. ES:DI -> ??? table (see #02734)
  88335. Note: called by ROMSHELL.COM
  88336. SeeAlso: AX=1980h,AX=1981h
  88337. Format of ROM-DOS v4.0 ??? table:
  88338. Offset Size Description (Table 02734)
  88339. 00h BYTE ??? (00h)
  88340. 01h BYTE ??? (41h) (ROMSHELL.COM checks if =00h)
  88341. 02h BYTE ??? (00h) (ROMSHELL.COM checks if =01h)
  88342. 03h WORD ??? (0001h) (ROMSHELL.COM checks if =0001h)
  88343. 05h BYTE ??? (00h)
  88344. 06h WORD ??? (04D5h)
  88345. --------V-2F1A00-----------------------------
  88346. INT 2F - DOS 4.0+ ANSI.SYS - INSTALLATION CHECK
  88347. AX = 1A00h
  88348. Return: AL = FFh if installed
  88349. Notes: AVATAR.SYS also responds to this call
  88350. documented for DOS 5+, but undocumented for DOS 4.x
  88351. --------V-2F1A00BX414E-----------------------
  88352. INT 2F - ANSIPLUS.SYS v2.00+ - INSTALLATION CHECK
  88353. AX = 1A00h
  88354. BX = 414Eh ('AN')
  88355. CX = 5349h ('SI')
  88356. DX = 2B2Bh ('++')
  88357. Return: AL = FFh if installed
  88358. CF clear
  88359. ES:BX -> INT 29 entry point
  88360. CX = ANSIPLUS BCD version number (v3.10+, CH=major, CL=minor)
  88361. DL = capabilities (v4.00+)
  88362. 00h full capability driver
  88363. 01h reduced capability driver
  88364. 2Bh full capability driver (before v4.00)
  88365. Program: ANSIPLUS.SYS is a CON device driver by Kristofer Sweger which
  88366. replaces the normal ANSI.SYS with a more powerful version having
  88367. many additional features
  88368. Notes: ANSIPLUS also identifies itself as ANSI.SYS if BX,CX, or DX differ
  88369. from the magic values above
  88370. an additional installation check is to test for the signature
  88371. "ANSIPLUS" 12 bytes before the INT 29 entry point; the version
  88372. number is also available as a four-character ASCII string (e.g.
  88373. "4.00") four bytes before the entry point
  88374. SeeAlso: AX=1AA5h,AX=1AA6h,AX=1AA7h,AX=1AA8h,AX=1AA9h,AX=1AAAh,AX=D44Fh
  88375. --------V-2F1A00BX4156-----------------------
  88376. INT 2F - AVATAR.SYS - INSTALLATION CHECK
  88377. AX = 1A00h
  88378. BX = 4156h ('AV')
  88379. CX = 4154h ('AT')
  88380. DX = 4152h ('AR')
  88381. Return: AL = FFh if installed
  88382. CF clear
  88383. BX = AVATAR protocol level supported
  88384. CX = driver type
  88385. 0000h AVATAR.SYS
  88386. 4456h DVAVATAR.COM inside DESQview window
  88387. DX = 0016h
  88388. Program: AVATAR.SYS is a CON replacement by George Adam Stanislav which
  88389. interprets AVATAR command codes in the same way that ANSI interprets
  88390. ANSI command codes
  88391. Notes: AVATAR also identifies itself as ANSI.SYS if BX, CX, or DX differ from
  88392. the magic values
  88393. SeeAlso: AX=1A21h,AX=1A3Ch,AX=1A3Fh,AX=1A52h,AX=1A72h,AX=1A7Dh,AX=1AADh"AVATAR"
  88394. --------V-2F1A01-----------------------------
  88395. INT 2F U - DOS 4.0+ ANSI.SYS internal - GET/SET DISPLAY INFORMATION
  88396. AX = 1A01h
  88397. CL = function
  88398. 7Fh for GET
  88399. 5Fh for SET
  88400. DS:DX -> parm block as for INT 21,AX=440Ch,CX=037Fh/035Fh respectively
  88401. Return: CF clear if successful
  88402. AX destroyed
  88403. CF set on error
  88404. AX = error code (many non-standard)
  88405. Note: presumably this is the DOS IOCTL interface to ANSI.SYS
  88406. SeeAlso: AX=1A02h,INT 21/AX=440Ch
  88407. --------V-2F1A02-----------------------------
  88408. INT 2F U - DOS 4.0+ ANSI.SYS internal - MISCELLANEOUS REQUESTS
  88409. AX = 1A02h
  88410. DS:DX -> parameter block (see #02735)
  88411. Return: CF clear if successful
  88412. CF set on error
  88413. AX = error code
  88414. Note: DOS 5+ chains to previous handler if AL > 02h on call
  88415. SeeAlso: AX=1A01h
  88416. Format of ANSI.SYS parameter block:
  88417. Offset Size Description (Table 02735)
  88418. 00h BYTE subfunction
  88419. 00h set/reset interlock
  88420. 01h get /L flag
  88421. 01h BYTE interlock state
  88422. 00h=reset, 01h=set
  88423. This interlock prevents some of the ANSI.SYS post-processing
  88424. in its hook onto INT 10, AH=00h mode set
  88425. 02h BYTE (returned)
  88426. 00h if /L not in effect
  88427. 01h if /L in effect
  88428. --------V-2F1A21-----------------------------
  88429. INT 2F - AVATAR.SYS - SET DRIVER STATE
  88430. AX = 1A21h (AL='!')
  88431. DS:SI -> command string with one or more state characters (see #02736)
  88432. CX = length of command string
  88433. Return: CF set on error (invalid subfunction)
  88434. CF clear if successful
  88435. Note: the characters in the state string are interpreted left to right, and
  88436. need not be in any particular order
  88437. SeeAlso: AX=1A00h/BX=4156h,AX=1A3Fh
  88438. (Table 02736)
  88439. Values for AVATAR.SYS state characters:
  88440. 'a' activate driver
  88441. 'd' disable driver
  88442. 'f' use fast screen output
  88443. 'g' always convert gray keys (+ and -) to function keys
  88444. 'G' never convert gray keys
  88445. 'l' convert gray keys only when ScrollLock active
  88446. 's' use slow screen output
  88447. 't' Tandy 1000 keyboard (not yet implemented)
  88448. --------V-2F1A3C-----------------------------
  88449. INT 2F U - AVATAR.SYS v0.11 - ???
  88450. AX = 1A3Ch
  88451. ???
  88452. Return: CX = 0000h
  88453. SeeAlso: AX=1A00h/BX=4156h,AX=1A21h,AX=1A3Eh
  88454. --------V-2F1A3E-----------------------------
  88455. INT 2F U - AVATAR.SYS v0.11 - ???
  88456. AX = 1A3Eh
  88457. CL = ???
  88458. CH = ???
  88459. DL = ???
  88460. DH = ???
  88461. Return: CL = ???
  88462. CH = ???
  88463. DL = ???
  88464. DH = ???
  88465. SeeAlso: AX=1A3Ch,AX=1A3Fh
  88466. --------V-2F1A3F-----------------------------
  88467. INT 2F - AVATAR.SYS - QUERY DRIVER STATE
  88468. AX = 1A3Fh (AL='?')
  88469. ES:DI -> buffer
  88470. CX = length of buffer in bytes
  88471. Return: CF clear
  88472. CX = actual size of returned info
  88473. Note: the returned information consists of multiple letters whose meanings
  88474. are described under AX=1A21h
  88475. SeeAlso: AX=1A00h/BX=4156h,AX=1A21h,AX=1A44h
  88476. --------S-2F1A42BX4156-----------------------
  88477. INT 2F - AVATAR Serial Dispatcher - INSTALL IRQ3 HANDLER
  88478. AX = 1A42h
  88479. BX = 4156h ('AV')
  88480. ES:DI -> FAR handler for serial port using IRQ3
  88481. DS = data segment needed by handler
  88482. Return: AX = status/return value
  88483. 0000h if no more room
  88484. 1A42h if ASD not installed
  88485. else handle to use when uninstalling
  88486. Notes: the handler need not save/restore registers or signal EOI to the
  88487. interrupt controller
  88488. the handler should return AX=0000h if the interrupt was meant for it,
  88489. and either leave AX unchanged or return a non-zero value otherwise
  88490. the most recently installed handler will be called first, continuing
  88491. to earlier handlers until one returns AX=0000h
  88492. SeeAlso: AX=1A43h,AX=1A62h
  88493. --------S-2F1A43BX4156-----------------------
  88494. INT 2F - AVATAR Serial Dispatcher - INSTALL IRQ4 HANDLER
  88495. AX = 1A43h
  88496. BX = 4156h ('AV')
  88497. ES:DI -> FAR handler for serial port using IRQ4
  88498. DS = data segment needed by handler
  88499. Return: AX = status/return value
  88500. 0000h if no more room
  88501. 1A43h if ASD not installed
  88502. else handle to use when uninstalling
  88503. Notes: (see AX=1A42h)
  88504. SeeAlso: AX=1A42h,AX=1A63h
  88505. --------V-2F1A44BX4156-----------------------
  88506. INT 2F - AVATAR.SYS v0.11+ - GET DATA SEGMENT
  88507. AX = 1A44h
  88508. BX = 4156h ('AV')
  88509. Return: AX = 0000h
  88510. DS = data segment
  88511. CX = size of data segment
  88512. Note: AVATAR.SYS calls this function whenever it is invoked. If each
  88513. process under a multitasker hooks this function and provides a
  88514. separate data segment, AVATAR.SYS becomes fully reentrant.
  88515. SeeAlso: AX=1A21h,AX=1A3Fh,AX=1A52h
  88516. --------V-2F1A52-----------------------------
  88517. INT 2F U - AVATAR.SYS v0.11 - GET ???
  88518. AX = 1A52h
  88519. CX = size of buffer
  88520. ES:DI -> buffer
  88521. Return: ??? copied into user buffer
  88522. Note: the maximum size of the data which may be copied is returned by
  88523. AX=1A72h
  88524. SeeAlso: AX=1A53h,AX=1A72h
  88525. --------V-2F1A53-----------------------------
  88526. INT 2F U - AVATAR.SYS v0.11 - ???
  88527. AX = 1A53h
  88528. CL = ??? (00h-05h)
  88529. ???
  88530. Return: ???
  88531. SeeAlso: AX=1A00h/BX=4156h,AX=1A52h,AX=1A72h
  88532. --------S-2F1A62BX4156-----------------------
  88533. INT 2F - AVATAR Serial Dispatcher - UNINSTALL IRQ3 HANDLER
  88534. AX = 1A62h
  88535. BX = 4156h ('AV')
  88536. CX = handle for IRQ routine returned by AX=1A42h
  88537. SeeAlso: AX=1A42h,AX=1A63h
  88538. --------S-2F1A63BX4156-----------------------
  88539. INT 2F - AVATAR Serial Dispatcher - UNINSTALL IRQ4 HANDLER
  88540. AX = 1A63h
  88541. BX = 4156h ('AV')
  88542. CX = handle for IRQ routine returned by AX=1A43h
  88543. SeeAlso: AX=1A43h,AX=1A62h
  88544. --------V-2F1A72-----------------------------
  88545. INT 2F U - AVATAR.SYS v0.11 - GET ??? SIZE
  88546. AX = 1A72h
  88547. Return: CX = maximum size of ???
  88548. SeeAlso: AX=1A00h/BX=4156h,AX=1A52h,AX=1A7Bh,AX=1AADh"AVATAR"
  88549. --------V-2F1A7B-----------------------------
  88550. INT 2F U - AVATAR.SYS v0.11 - ???
  88551. AX = 1A7Bh
  88552. Return: AX = 0000h
  88553. CX = 0000h
  88554. SeeAlso: AX=1A00h/BX=4156h,AX=1A72h,AX=1A7Dh
  88555. --------V-2F1A7D-----------------------------
  88556. INT 2F U - AVATAR.SYS v0.11 - ???
  88557. AX = 1A7Dh
  88558. Return: AX = ???
  88559. SeeAlso: AX=1A00h/BX=4156h,AX=1A7Bh
  88560. --------V-2F1AA3-----------------------------
  88561. INT 2F - ANSIPLUS v4.03+ - GET/SET ANSIPLUS INTERNAL VARIABLES
  88562. AX = 1AA3h
  88563. BH = function
  88564. 00h get current/default colors
  88565. Return: CH = default colors
  88566. CL = current colors
  88567. 01h set current/default colors
  88568. CH = default colors (00h = leave unchanged)
  88569. CL = current colors
  88570. 02h get current subscreen region
  88571. Return: BH,BL = true screen rows,columns
  88572. CH,CL = top left row,column of region
  88573. DH,DL = bottom right row,column of region
  88574. 03h set subscreen region
  88575. CH,CL = top left row,column of region
  88576. DH,DL = bottom right row,column of region
  88577. 04h get driver features (bits 0-31)
  88578. Return: DX:CX = current feature bits
  88579. 05h set driver features (bits 0-31)
  88580. DX:CX = feature bits
  88581. 06h get driver features (bits 32-63)
  88582. Return: DX:CX = current feature bits
  88583. 07h set driver features (bits 32-63)
  88584. DX:CX = feature bits
  88585. other: reserved for future use
  88586. SeeAlso: AX=1AA4h,AX=1AA5h
  88587. --------V-2F1AA4-----------------------------
  88588. INT 2F - ANSIPLUS v4.02+ - GET/SET ANSIPLUS SMOOTH SCROLLING RATE
  88589. AX = 1AA4h
  88590. BL = function
  88591. 00h get scrolling rate
  88592. 01h set scrolling rate
  88593. BH = new minimum scrolling rate in scan lines per retrace
  88594. Return: BH = smooth scrolling rate
  88595. SeeAlso: AX=1AA3h,AX=1AA5h
  88596. --------V-2F1AA5-----------------------------
  88597. INT 2F - ANSIPLUS v4.00+ - GET/SET ANSIPLUS CLIPBOARD
  88598. AX = 1AA5h
  88599. DH = subfunction
  88600. 00h get clipboard information
  88601. 01h get clipboard text
  88602. 02h set clipboard text
  88603. 03h append text to clipboard
  88604. 04h clear clipboard
  88605. 05h paste clipboard to keyboard
  88606. ES:BX -> data area for subfunctions 01h, 02h, and 03h
  88607. CX = size of data area (maximum size for subfunction 01h, actual size
  88608. to add to clipboard for subfunctions 02h and 03h)
  88609. Return: AL = status
  88610. 00h successful
  88611. 01h unsupported subfunction (reduced capability driver)
  88612. 02h insufficient space
  88613. A5h unsupported function (ANSIPLUS before v4.00)
  88614. ES:BX -> ANSIPLUS local clipboard data
  88615. CX = number of bytes currently in local clipboard
  88616. DX = maximum size of local clipboard
  88617. SeeAlso: AX=1A00h/BX=414Eh,AX=1AA4h,AX=1AA6h
  88618. --------V-2F1AA6-----------------------------
  88619. INT 2F - ANSIPLUS v4.00+ - ENABLE/DISABLE ANSIPLUS DRIVER
  88620. AX = 1AA6h
  88621. BH = function
  88622. 00h get hooked interrupts
  88623. 01h set hooked interrupts mask
  88624. BL = new interrupts mask (see #02737)
  88625. Return: BL = previous interrupts mask (see #02737)
  88626. SeeAlso: AX=1A00h/BX=414Eh,AX=1AA7h
  88627. Desc: used to temporarily disable any prior copies of ANSIPLUS when a new
  88628. copy is installed, such as in a multitasking system like DESQview
  88629. Note: only the most-recently loaded copy of ANSIPLUS on the current INT 2F
  88630. chain responds to this call
  88631. Bitfields for ANSIPLUS hooked interrupts mask:
  88632. Bit(s) Description (Table 02737)
  88633. 0 INT 09 hook disabled
  88634. 1 INT 10 hook disabled
  88635. 2 INT 15 hook disabled
  88636. 3 INT 16 hook disabled
  88637. 4 INT 1C hook disabled
  88638. 5 reset all bits when INT 29 called
  88639. 6 INT 29 hook disabled
  88640. 7 INT 33, INT 74, or other mouse event hook disabled
  88641. --------V-2F1AA7-----------------------------
  88642. INT 2F - ANSIPLUS v4.00+ - ENABLE/DISABLE ANSIPLUS FEATURES
  88643. AX = 1AA7h
  88644. BL = function
  88645. 00h prevent scroll-back saves
  88646. 01h enable scroll-back saves
  88647. 02h disable key reprogramming and lock changes by escape sequences
  88648. 03h enable key reprogramming by escape sequences
  88649. 04h disable and lock key stacking changes by escape sequences
  88650. 05h allow key stacking by escape sequences
  88651. Return: nothing
  88652. SeeAlso: AX=1AA6h
  88653. --------V-2F1AA8-----------------------------
  88654. INT 2F - ANSIPLUS v3.10+ - GET NEXT ANSIPLUS SCROLLBACK LINE
  88655. AX = 1AA8h
  88656. Return: AL = status
  88657. 00h successful
  88658. ES:BX -> screen line (character and attribute pairs)
  88659. CX = length of line in bytes, 0000h if no more lines or
  88660. unsupported video mode
  88661. 01h unsupported video mode active
  88662. 02h screen currently scrolled back
  88663. 03h reduced capability driver
  88664. A8h unsupported function (driver before v3.10)
  88665. SeeAlso: AX=1A00h/BX=414Eh,AX=1AA9h
  88666. --------V-2F1AA9-----------------------------
  88667. INT 2F - ANSIPLUS v3.10+ - GET ANSIPLUS SCROLLBACK INFORMATION
  88668. AX = 1AA9h
  88669. Return: AL = status
  88670. 00h successful
  88671. BX = current number of lines in scrollback buffer
  88672. CX = number of bytes in one line
  88673. 01h unsupported video mode active
  88674. 02h screen currently scrolled back
  88675. 03h reduced capability driver
  88676. A9h unsupported function (driver before v3.10)
  88677. Desc: determine how much data is in the scrollback buffer and initialize
  88678. scrollback retrieval to return the first line on the next call to
  88679. AX=1AA8h
  88680. SeeAlso: AX=1A00h/BX=414Eh,AX=1AA8h
  88681. --------V-2F1AAA-----------------------------
  88682. INT 2F - ANSIPLUS v3.01+ - GET/SET ANSIPLUS SCREEN SAVER BLANKING TIME
  88683. AX = 1AAAh
  88684. BX = function
  88685. FFFFh to get current blanking time
  88686. other to set time
  88687. CX = blanking time in clock ticks (0000h-7FFFh)
  88688. Return: BX = current blanking time
  88689. CX = blanking time when last set
  88690. SeeAlso: AX=1A00h/BX=414Eh,AX=1AABh
  88691. --------V-2F1AAB-----------------------------
  88692. INT 2F - ANSIPLUS v3.01+ - SET ANSIPLUS KEY REPEAT RATE
  88693. AX = 1AABh
  88694. BX = repeat rate in characters per second
  88695. 0000h use BIOS repeat rate
  88696. Return: nothing
  88697. SeeAlso: AX=1A00h/BX=414Eh,AX=1AAAh,AX=1AACh
  88698. --------V-2F1AAC-----------------------------
  88699. INT 2F - ANSIPLUS v3.00+ - LOAD CHARACTER GENERATOR
  88700. AX = 1AACh
  88701. BH = number of bytes per character pattern
  88702. BL = VGA/EGA character table to be loaded
  88703. CX = number of characters to load
  88704. DX = starting character code (offset into Map2 block)
  88705. ES:BP -> user character table to be loaded
  88706. Return: AX = 1100h
  88707. Desc: load the EGA/VGA character generator without the BIOS function's
  88708. side effects of resetting the video mode and color palette
  88709. SeeAlso: AX=1A00h/BX=414Eh,AX=1AABh,AX=1AADh"ANSIPLUS",INT 10/AX=1100h
  88710. --------V-2F1AAD-----------------------------
  88711. INT 2F - ANSIPLUS v2.00+ - ANSIPLUS DEVICE STATUS REPORT
  88712. AX = 1AADh
  88713. BL = report request code (81h-96h for v4.00)
  88714. CX = color selector or key code, if required by request
  88715. Return: AX = first reported result
  88716. BX = second result
  88717. CX = third result, if applicable (unchanged otherwise)
  88718. DX = fourth result, if applicable (unchanged otherwise)
  88719. Desc: get device status reports equivalent to those for Esc [#n sequences
  88720. while bypassing any device redirection and avoiding the need to
  88721. parse the returned result
  88722. Note: the report request code in BL is identical to the number in the
  88723. corresponding Esc [#n sequence
  88724. SeeAlso: AX=1A00h/BX=414Eh,AX=1AACh
  88725. --------V-2F1AADDX0000-----------------------
  88726. INT 2F U - AVATAR.SYS v0.11 - ???
  88727. AX = 1AADh
  88728. DX = 0000h
  88729. CX = subfunction (00h-0Ch)
  88730. ???
  88731. Return: AX = 0000h if DX was nonzero
  88732. ???
  88733. SeeAlso: AX=1A00h/BX=4156h,AX=1A72h
  88734. --------m-2F1B00-----------------------------
  88735. INT 2F U - DOS 4+ XMA2EMS.SYS extension internal - INSTALLATION CHECK
  88736. AX = 1B00h
  88737. Return: AL = FFh if installed
  88738. Note: XMA2EMS.SYS extension is only installed if DOS has page frames to hide.
  88739. This extension hooks onto INT 67/AH=58h and returns from that call data
  88740. which excludes the physical pages being used by DOS.
  88741. SeeAlso: AH=1Bh"FRAME INFO"
  88742. --------m-2F1B-------------------------------
  88743. INT 2F U - DOS 4+ XMA2EMS.SYS extension internal - GET HIDDEN FRAME INFORMATION
  88744. AH = 1Bh
  88745. AL <> 00h
  88746. DI = hidden physical page number
  88747. Return: AX = FFFFh if failed (no such hidden page)
  88748. AX = 0000h if OK, then
  88749. ES = segment of page frame
  88750. DI = physical page number
  88751. Notes: this corresponds to the data edited out of the INT 67/AH=58h call
  88752. FASTOPEN makes this call with AL = FFh
  88753. SeeAlso: AX=1B00h
  88754. --------V-2F2300-----------------------------
  88755. INT 2F - DR DOS 5.0 GRAFTABL - INSTALLATION CHECK
  88756. AX = 2300h
  88757. Return: AH = FFh
  88758. Note: this installation check does not follow the usual format
  88759. SeeAlso: AH=23h,AX=2E00h
  88760. --------V-2F23-------------------------------
  88761. INT 2F - DR DOS 5.0 GRAFTABL - GET GRAPHICS DATA
  88762. AH = 23h
  88763. AL nonzero
  88764. Return: AH = FFh
  88765. ES:BX -> graphics data (8 bytes for each character from 80h to FFh)
  88766. SeeAlso: AX=2300h,AX=2E00h
  88767. --------T-2F2700-----------------------------
  88768. INT 2F - DR DOS 6.0 TaskMAX - INSTALLATION CHECK
  88769. AX = 2700h
  88770. Return: AL = status
  88771. 00h not installed
  88772. FFh installed
  88773. Note: the TaskMAX API is also supported by Novell DOS 7 TASKMGR in both
  88774. taskswitching and multitasking modes
  88775. --------T-2F2701-----------------------------
  88776. INT 2F - DR DOS 6.0 TaskMAX - GET STATUS
  88777. AX = 2701h
  88778. Return: AX = maximum simultaneous tasks
  88779. BX = index into TASK_IDS of current foreground task
  88780. CX = currently-active tasks
  88781. DX = version number (DL = major, DH = minor)
  88782. (DR DOS 6.0 = 0001h, Novell DOS 7 = 0002h)
  88783. ES:SI -> TASK_IDS
  88784. ES:DI -> name table (array of 8-byte names, NUL-terminated if <8 chars)
  88785. Notes: do not attempt to create a new task if CX == AX
  88786. the task's index is its position on the task menu, while its ID is the
  88787. position within the internal task name table
  88788. SeeAlso: AX=2714h,AX=2716h
  88789. --------T-2F2702-----------------------------
  88790. INT 2F - DR DOS 6.0 TaskMAX - GET PER-TASK EMS LIMIT
  88791. AX = 2702h
  88792. Return: DX = maximum pages INT 67/AH=42h will report available
  88793. Note: TaskMAX does not limit EMS allocations other than by limiting the
  88794. amount which is reported as being available at a given time
  88795. SeeAlso: AX=2703h,INT 67/AH=42h
  88796. --------T-2F2703-----------------------------
  88797. INT 2F - DR DOS 6.0 TaskMAX - SET PER-TASK EMS LIMIT
  88798. AX = 2703h
  88799. DX = maximum pages INT 67/AH=42h should report available
  88800. Return: DX = new maximum for reporting
  88801. Note: the TaskMAX API is also supported by Novell DOS 7 TASKMGR in
  88802. both taskswitching and multitasking modes
  88803. SeeAlso: AX=2702h,INT 67/AH=42h
  88804. --------T-2F2704-----------------------------
  88805. INT 2F - DR DOS 6.0 TaskMAX - REGISTER/UNREGISTER TASK MANAGER
  88806. AX = 2704h
  88807. DL = subfunction
  88808. 00h unregister task manager
  88809. 01h register task manager
  88810. Return: DL = status
  88811. 00h registered
  88812. 01h unregistered
  88813. Notes: a task manager replaces TaskMAX's menu system with its own user
  88814. interface; while one is registered, the TaskMAX hotkeys and
  88815. Ctrl-Alt-Del invoke the manager rather than the built-in menu system
  88816. unregister the task manager before terminating it
  88817. SeeAlso: AX=2705h
  88818. Index: hotkeys;TaskMAX
  88819. --------T-2F2705-----------------------------
  88820. INT 2F - DR DOS 6.0 TaskMAX - ENABLE/DISABLE DIRECT SWITCHING
  88821. AX = 2705h
  88822. DL = subfunction
  88823. 00h disable keystrokes for switching to next/prev/specified task
  88824. 01h enable
  88825. Return: nothing
  88826. Note: should only be called by a registered task manager (see AX=2704h)
  88827. SeeAlso: AX=2704h,AX=2706h
  88828. --------T-2F2706-----------------------------
  88829. INT 2F - DR DOS 6.0 TaskMAX - SWITCH TO SPECIFIED TASK
  88830. AX = 2706h
  88831. DX = task index (see AX=2701h) of task to be activated
  88832. Return: DX = task index of previously-active task
  88833. Note: the TaskMAX API is also supported by Novell DOS 7 TASKMGR in
  88834. both taskswitching and multitasking modes
  88835. SeeAlso: AX=2705h,AX=2707h,AX=2715h
  88836. --------T-2F2707-----------------------------
  88837. INT 2F - DR DOS 6.0 TaskMAX - CREATE NEW TASK
  88838. AX = 2707h
  88839. DS:DX -> ASCIZ pathname of executable
  88840. ES:BX -> parameter block (see #02738)
  88841. CX = number of ticks before automatic return to task manager
  88842. (0000h = run until termination or explicitly switched)
  88843. Return: DX = new task's task index (FFFFh if task terminated)
  88844. SeeAlso: AX=2706h,AX=2708h
  88845. Format of TaskMAX parameter block:
  88846. Offset Size Description (Table 02738)
  88847. 00h WORD reserved, should be 0000h
  88848. 02h DWORD pointer to command tail to be copied into child's PSP
  88849. 06h DWORD pointer to first FCB to be copied into child's PSP
  88850. 0Ah DWORD pointer to second FCB to be copied into child's PSP
  88851. --------T-2F2708-----------------------------
  88852. INT 2F - DR DOS 6.0 TaskMAX - DELETE TASK
  88853. AX = 2708h
  88854. DX = task index
  88855. Return: DX = FFFFh (task deleted)
  88856. Notes: this call should only be used for abnormal task termination, after
  88857. first checking for open files with AX=270Ch; should not be used
  88858. with programs that allocate EMS or XMS memory
  88859. switches to specified task first
  88860. SeeAlso: AX=2707h
  88861. --------T-2F2709-----------------------------
  88862. INT 2F - DR DOS 6.0 TaskMAX - NAME TASK
  88863. AX = 2709h
  88864. DX = task index
  88865. DS:SI -> 8-byte name (8 NULs = remove name)
  88866. Return: AL = task flags
  88867. 00h ID unused or task terminated
  88868. 01h ID in use, task name table entry valid
  88869. 81h ID in use, task name fixed
  88870. BX = task ID
  88871. ES:DI -> name in task name table (see AX=2701h)
  88872. Note: the task retains the given name until it terminates or the name is
  88873. removed by specifying a name of 8 NULs.
  88874. SeeAlso: AX=2701h,AX=2707h
  88875. --------T-2F270A-----------------------------
  88876. INT 2F - DR DOS 6.0 TaskMAX - CONVERT TASK INDEX TO TASK ID
  88877. AX = 270Ah
  88878. DX = task index
  88879. Return: DX = task ID (FFFFh if index invalid)
  88880. Note: task IDs stay constant, while indexes can change when other tasks are
  88881. deleted
  88882. SeeAlso: AX=2701h,AX=270Bh
  88883. --------T-2F270B-----------------------------
  88884. INT 2F - DR DOS 6.0 TaskMAX - CONVERT TASK ID TO TASK INDEX
  88885. AX = 270Bh
  88886. DX = task ID
  88887. Return: DX = task index (FFFFh if task not active)
  88888. Note: the TaskMAX API is also supported by Novell DOS 7 TASKMGR in both
  88889. taskswitching and multitasking modes
  88890. SeeAlso: AX=270Ah
  88891. --------T-2F270C-----------------------------
  88892. INT 2F - DR DOS 6.0 TaskMAX - CHECK OPEN FILES
  88893. AX = 270Ch
  88894. DX = task index
  88895. Return: AX = number of files currently open for specified task
  88896. SeeAlso: AX=2708h
  88897. --------T-2F270D-----------------------------
  88898. INT 2F - DR DOS 6.0 TaskMAX - CHECK IF TASK RUNNING PRIMARY COMMAND INTERPRETER
  88899. AX = 270Dh
  88900. DX = task index
  88901. Return: DX = status
  88902. 0000h if primary command interpreter (COMMAND.COM, etc.) running
  88903. 0001h if not in root shell for task
  88904. Note: TaskMAX will return 0001h if the specified task has spawned another
  88905. command interpreter with AX=2707h
  88906. SeeAlso: AX=2707h,AX=270Ch
  88907. --------T-2F270E-----------------------------
  88908. INT 2F - DR DOS 6.0 TaskMAX - GET/SET TEXT PASTE LEAD-IN
  88909. AX = 270Eh
  88910. CX = length of string (max 15 keystrokes, 0000h to get current string)
  88911. DS:SI -> pasting lead-in string (character/scan-code pairs)
  88912. Return: ES:DI -> current lead-in string
  88913. Note: the specified sequence of keystrokes is sent to the application before
  88914. every line of a text-mode spreadsheet paste
  88915. SeeAlso: AX=270Fh,AX=2710h,AX=2713h
  88916. --------T-2F270F-----------------------------
  88917. INT 2F - DR DOS 6.0 TaskMAX - GET/SET NUMERIC PASTE LEAD-IN
  88918. AX = 270Fh
  88919. CX = length of string (max 15 keystrokes, 0000h to get current string)
  88920. DS:SI -> pasting lead-in string (character/scan-code pairs)
  88921. Return: ES:DI -> current lead-in string
  88922. Note: the specified sequence of keystrokes is sent to the application before
  88923. every number in a numeric-mode spreadsheet paste
  88924. SeeAlso: AX=270Eh,AX=2710h,AX=2711h,AX=2713h
  88925. --------T-2F2710-----------------------------
  88926. INT 2F - DR DOS 6.0 TaskMAX - GET/SET PASTE LINE TERMINATOR STRING
  88927. AX = 2710h
  88928. CX = length of string (max 15 keystrokes, 0000h to get current string)
  88929. DS:SI -> pasting terminator string (character/scan-code pairs)
  88930. Return: ES:DI -> current terminator string
  88931. Note: the specified sequence of keystrokes is sent to the application after
  88932. every line of a spreadsheet paste operation
  88933. SeeAlso: AX=270Eh,AX=270Fh,AX=2713h
  88934. --------T-2F2711-----------------------------
  88935. INT 2F - DR DOS 6.0 TaskMAX - GET/SET NUMERIC PASTE DECIMAL POINT
  88936. AX = 2711h
  88937. DX = ASCII code for separator (FFFFh to get current)
  88938. Return: DL = current separator character
  88939. SeeAlso: AX=270Fh
  88940. --------T-2F2712-----------------------------
  88941. INT 2F - DR DOS 6.0 TaskMAX - INITIATE EXPORTING TASK DATA
  88942. AX = 2712h
  88943. DX = task index
  88944. --------T-2F2713-----------------------------
  88945. INT 2F - DR DOS 6.0 TaskMAX - INITIATE PASTE OPERATION
  88946. AX = 2713h
  88947. DX = task index
  88948. CX = paste mode
  88949. 0000h alphanumeric
  88950. 0001h numeric
  88951. 0002h text
  88952. SeeAlso: AX=270Eh,AX=270Fh,AX=2710h,AX=2711h
  88953. --------T-2F2714-----------------------------
  88954. INT 2F - DR DOS 6.0 TaskMAX - GET SWAP SPACE INFO
  88955. AX = 2714h
  88956. Return: CX = total KB of swap space
  88957. DX = available KB of swap space
  88958. Note: the TaskMAX API is also supported by Novell DOS 7 TASKMGR in both
  88959. taskswitching and multitasking modes
  88960. SeeAlso: AX=2701h
  88961. --------T-2F2715-----------------------------
  88962. INT 2F - DR DOS 6.0 TaskMAX - SWITCH TO TASK MANAGER
  88963. AX = 2715h
  88964. Return: only after calling task is again selected
  88965. SeeAlso: AX=2706h
  88966. --------T-2F2716-----------------------------
  88967. INT 2F - DR DOS 6.0 TaskMAX - GET PASTE BUFFER STATUS
  88968. AX = 2716h
  88969. Return: AX = 0000h if AX=2716h,AX=2717h,AX=2718h supported
  88970. CX = bytes in paste buffer
  88971. DX = current generation number (updated after every copy operation)
  88972. BUG: Novell DOS 7 TASKMGR returns AX=0000h even though it does not support
  88973. this call (it does support the remainder of the TaskMAX API)
  88974. SeeAlso: AX=2701h,AX=2713h,AX=2714h,AX=2717h,AX=2718h
  88975. --------T-2F2717-----------------------------
  88976. INT 2F - DR DOS 6.0 TaskMAX - PASTE DATA DIRECTLY TO APPLICATION BUFFER
  88977. AX = 2717h
  88978. CX = bytes in destination buffer
  88979. ES:DI -> destination buffer
  88980. Return: AX = 0000h if function supported
  88981. CX = bytes actually copied (FFFFh if buffer too small)
  88982. DX = current generation number for paste buffer
  88983. BUG: Novell DOS 7 TASKMGR returns AX=0000h even though it does not support
  88984. this call (it does support the remainder of the TaskMAX API)
  88985. Note: the destination buffer may be too small if another task adds more data
  88986. to the paste buffer after the AX=2716h call but before this call
  88987. SeeAlso: AX=2713h,AX=2716h,AX=2718h
  88988. --------T-2F2718-----------------------------
  88989. INT 2F - DR DOS 6.0 TaskMAX - COPY DATA DIRECTLY INTO PASTE BUFFER
  88990. AX = 2718h
  88991. CX = bytes in source buffer
  88992. DS:SI -> source buffer (plain ASCII, lines terminated with CR LF)
  88993. Return: AX = 0000h if function supported
  88994. CX = bytes actually copied
  88995. DX = current generation number for paste buffer
  88996. BUG: Novell DOS 7 TASKMGR returns AX=0000h even though it does not support
  88997. this call (it does support the remainder of the TaskMAX API)
  88998. SeeAlso: AX=2712h,AX=2716h,AX=2717h
  88999. --------T-2F2719-----------------------------
  89000. INT 2F - Novell DOS 7 TaskMGR - NOP
  89001. AX = 2719h to 271Bh
  89002. --------T-2F271C-----------------------------
  89003. INT 2F U - Novell DOS 7 TaskMGR - ???
  89004. AX = 271Ch
  89005. DX = ???
  89006. bit 0: ???
  89007. Return: ???
  89008. ---if DX bit 0 set---
  89009. AX = 0031h
  89010. CX = 0000h
  89011. BUG: if the task switcher is running, and DX bit 0 is set on call, this
  89012. function will crash because its exit code attempts to pop several
  89013. registers which are not pushed when DX bit 0 is set
  89014. --------m-2F2780CL01-------------------------
  89015. INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - SUPERVISOR MODULE
  89016. AX = 2780h
  89017. CL = 01h (module: Supervisor)
  89018. CH = subfunction
  89019. 00h unused
  89020. Return: CX = status (0002h) (see #02739)
  89021. 01h unused
  89022. Return: CX = status (0002h) (see #02739)
  89023. 02h "Z_ModuleReg" register an OS module
  89024. EBX = module number (0005h-000Fh)
  89025. DS:EDX -> module descriptor (see #02741)
  89026. Return: CX = status (0000h,0030h) (see #02739)
  89027. 03h allocate SYSDAT memory
  89028. DX = number of ??? to allocate
  89029. Return: CX = status (0000h,0003h) (see #02739)
  89030. 04h get selector to SYSDAT
  89031. Return: CX = 0000h (successful)
  89032. BX = selector for EMM386 data segment
  89033. EBX high word cleared
  89034. 05h "Z_MoveReal" relocate segment into extended memory
  89035. DS:EDX -> descriptor parameter block
  89036. Return: ECX = status (00h,03h,31h,32h) (see #02739)
  89037. ---if successful---
  89038. parameter block filled
  89039. 06h "Z_Reboot" return to real mode via triple fault
  89040. 07h debugger break
  89041. Note: calls INT 03, then INT 21/AH=02h to output a question
  89042. mark
  89043. 08h "X_ForeCheck" check if domain is in foreground
  89044. Return: CX = 0000h (successful)
  89045. EBX = ??? (0 or 2)
  89046. 09h register VxD with system
  89047. 0Ah unload VxD hook
  89048. 0Bh indicate end of initialization phase
  89049. Return: CX = status (0002h) (see #02739)
  89050. 0Ch "F_AllocWindow" allocate 4K mapping window
  89051. 0Dh "F_RegisterBoot" register reboot addresses
  89052. EBX = ???
  89053. EDX = ???
  89054. Return: ???
  89055. 0Eh "F_EnquireBoot" check if reboot active
  89056. Return: CX = 0000h (successful)
  89057. BL = ??? \ or BX = 0000h
  89058. BH = ??? /
  89059. 0Fh get debugging level
  89060. Return: CX = 0000h (successful)
  89061. EBX = new value for debugging level
  89062. 10h set debugging level
  89063. EDX = ???
  89064. Return: CX = 0000h (successful)
  89065. EBX = old value of debugging level
  89066. 11h installation check (documented)
  89067. Return: CX = status
  89068. 0000h if multitasker is installed
  89069. EBX = version (0100h for v1.00)
  89070. 1101h if multitasker is not present
  89071. 12h "F_V86BPInstall" install V86 breakpoint
  89072. DX = ???
  89073. Return: CX = 0000h (successful)
  89074. AX = old value of ???
  89075. 13h "F_V86BPRemove" remove V86 breakpoint
  89076. Return: CX = status (0000h,003Fh) (see #02739)
  89077. AX = ???
  89078. 14h "F_V86BPOffer" indicate INT 03 to be used as V86 breakpoint
  89079. EDX = linear address ??? of INT 03 instruction for breakpoint
  89080. Return: CX = status (0000h,003Fh) (see #02739)
  89081. 15h "F_LoaderCleanup" offer opportunity to clean up
  89082. BX = segment of ???
  89083. Return: CX = 0000h (successful)
  89084. BX = segment of ???
  89085. 16h "F_RegisterVxDWindow" register VxD mapping window
  89086. 17h "F_RegisterPNW" register Personal NetWare information
  89087. EBX = subfunction (0-2)
  89088. Return: CX = status (0002h if EBX>2) (see #02739)
  89089. ???
  89090. 18h unused
  89091. Return: CX = status (0002h) (see #02739)
  89092. Return: CX = status (most subfunctions)
  89093. (E)AX and/or (E)BX contain return values, depending on function
  89094. Notes: called by DPMS.EXE and EMM386.EXE
  89095. this API is only available if AX=12FFh/BX=0EDCh returns successfully;
  89096. because the request is handled on the initial trap to the memory
  89097. manager caused by INT instructions, this API must be invoked with
  89098. an actual INT 2F instruction instead of some simulation such as a
  89099. far call to the address in the interrupt vector table
  89100. SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=02h,AX=2780h/CL=03h,AX=2780h/CL=04h
  89101. (Table 02739)
  89102. Values for Novell DOS 7 EMM386 function status:
  89103. 0000h successful
  89104. 0001h not implemented
  89105. 0002h invalid subfunction
  89106. 0003h unable to find memory
  89107. 0004h invalid flag (semaphore) number
  89108. 0005h flag (semaphore) overrun
  89109. 0006h flag (semaphore) underrun
  89110. 0007h no queue handles available
  89111. 0009h no queue buffers available
  89112. 000Ah queue is in use
  89113. 000Bh invalid process handle
  89114. 000Ch no process handles available
  89115. 000Dh queue access not permitted
  89116. 000Eh queue is empty
  89117. 000Fh queue is full
  89118. 0012h no memory handles available
  89119. 0014h can't find process in process list
  89120. 001Bh invalid memory handle
  89121. 0023h unable to terminate process
  89122. 002Ah flag set ignored
  89123. 002Dh no more system flags
  89124. 002Eh flag (semaphore) not in idle state
  89125. 002Fh flag (semaphore) wait timed out
  89126. 0030h bad module number in CL
  89127. 0031h bad descriptor
  89128. invalid value for DESC_PB_SINFO in a descriptor parameter block
  89129. 0032h no free descriptors
  89130. 0033h error while locking/unlocking a page
  89131. 0034h error getting or setting a page
  89132. 0035h no pages available
  89133. 0036h invalid domain
  89134. 0037h process already frozen
  89135. 0038h process not frozen
  89136. 0039h fork failure (no registered swaplist)
  89137. 003Ah page already free
  89138. 003Bh page already allocated
  89139. 003Ch unable to switch tasks
  89140. 003Dh attempted to free critical section which is not active
  89141. 003Eh too many active critical sections
  89142. 003Fh ???
  89143. 41FFh current domain is invalid, or no domain in context
  89144. 42FFh domain ID is not a valid descriptor
  89145. 43FFh domain creation still in progress
  89146. 44FFh domain currently being deleted
  89147. 45FFh task manager is busy, cannot unload it
  89148. 46FFh task manager already loaded
  89149. 47FFh task manager not yet loaded
  89150. 48FFh cannot save/restore because prior switch not complete
  89151. 49FFh console already has owner
  89152. 4BFFh unsupported opcode
  89153. 4CFFh 32-bit address prefix not supported
  89154. 4FFFh timeout, but not on timer queue
  89155. 50FFh unable to lock timer queue
  89156. 53FFh unable to switch while in Global Message Mode
  89157. 54FFh error while setting Global Message Mode
  89158. 55FFh not in Global Message Mode
  89159. 56FFh system already in Domain Message Mode
  89160. 57FFh not in Domain Message Mode
  89161. 58FFh unable to allocate timeout structure
  89162. 59FFh unsupported video type
  89163. 5AFFh function not handled by any VM
  89164. 5BFFh error in Serial..Set call
  89165. 5CFFh error in Parallel..Set call
  89166. 5DFFh domain list overflowed
  89167. 5FFFh unable to free domain while in nobuffers mode
  89168. Format of Novell DOS/OpenDOS EMM386 descriptor parameter block:
  89169. Offset Size Description (Table 02740)
  89170. 00h DWORD "DESC_PB_BASE"
  89171. 04h DWORD "DESC_PB_LIMIT"
  89172. 08h WORD "DESC_PB_SEL"
  89173. 0Ah BYTE "DESC_PB_MINFO"
  89174. 0Bh BYTE "DESC_PB_SINFO"
  89175. SeeAlso: #02741
  89176. Format of Novell DOS/OpenDOS EMM386 module descriptor:
  89177. Offset Size Description (Table 02741)
  89178. 00h 12 BYTEs descriptor parameter block (see #02740)
  89179. 0Ch DWORD -> module entry point
  89180. Note: for function "Z_ModuleReg", only DESC_PB_SEL and the module entry point
  89181. need to be initialized before calling EMM386
  89182. SeeAlso: #02740
  89183. --------m-2F2780CL02-------------------------
  89184. INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - REAL-TIME MONITOR
  89185. AX = 2780h
  89186. CL = 02h (module: Real-Time Monitor)
  89187. CH = subfunction
  89188. 00h ???
  89189. ???
  89190. Return: CX = status (0000h,0023h, others???) (see #02739)
  89191. BX = ??? (0000h if CX=0000h, FFFFh if CX=0023h)
  89192. Note: calls func 04h/sf 03h, func 04h/sf 1Eh,func 02h/sf 43h,
  89193. func 02h/sf 0Bh, and func 04h/sf 01h
  89194. 01h "Z_PCountGet" get and clear count of dispatches
  89195. DX = ??? handle or 0000h for default
  89196. Return: CX = status (0000h,000Bh) (see #02739)
  89197. EBX = old value of ??? if successful
  89198. EDX destroyed
  89199. 02h "Z_FlagWait" wait on semaphore
  89200. DX = index of semaphore???
  89201. Return: CX = status (0000h,0004h,0005h) (see #02739)
  89202. EBX = 0000FFFFh on error, 00000000h if successful
  89203. 03h "Z_FlagSet" set a semaphore flag
  89204. DX = index of semaphore???
  89205. Return: CX = status (0000h,0004h,0006h) (see #02739)
  89206. BX = FFFFh on error, 0000h if successful
  89207. 04h "X_QCreate" create a new queue
  89208. Return: CX = status (0000h,0007h,000Ah) (see #02739)
  89209. 05h "X_QOpen" open queue for reading/writing
  89210. EDX -> ??? data (first 8 bytes seem to be name)
  89211. Return: CX = status (0000h,0009h,000Dh) (see #02739)
  89212. 06h "X_QDelete" delete a queue
  89213. Note: calls fn 02h/subfn 05h, then fn 02h/subfn 40h
  89214. 07h "X_QRead" read message from queue
  89215. EDX = ???
  89216. Return: CX = status (0000h,0009h,000Eh) (see #02739)
  89217. 08h "X_QReadC" read message from queue, if any
  89218. EDX = ???
  89219. Return: CX = status (0000h,0009h,000Eh) (see #02739)
  89220. 09h "X_QWrite" write message to queue
  89221. EDX = ???
  89222. Return: CX = status (0000h,0009h,000Fh) (see #02739)
  89223. 0Ah "X_QWriteC" write message to queue, if space available
  89224. EDX = ???
  89225. Return: CX = status (0000h,0009h,000Fh) (see #02739)
  89226. 0Bh "X_PDelay" put process to sleep for specified period
  89227. DX = number of clock ticks to sleep???
  89228. Return: CX = 0000h (successful)
  89229. 0Ch "X_PDispatch" force a dispatch (run scheduler)
  89230. Return: CX = 0000h (successful)
  89231. 0Dh "F_PTerm" terminate process???
  89232. Return: CX = status (0000h,0023h) (see #02739)
  89233. BX = FFFFh on error, 0000h if successful
  89234. Note: calls fn 04h/subfn 03h, fn 04h/subfn 1Eh,
  89235. fn 02h/subfn 43h, fn 02h/subfn 0Bh, fn 04h/sub 01h
  89236. 0Eh "X_PCreate" create new process
  89237. ???
  89238. Return: CX = status (0000h,000Ch) (see #02739)
  89239. EBX = ??? if successful
  89240. 0Fh "Z_PPriorSet" set process priority
  89241. BX = ???
  89242. DX = ??? handle or 0000h for default
  89243. Return: CX = status (0000h,000Bh) (see #02739)
  89244. 10h "X_PHandleGet" get current process handle
  89245. Return: CX = 0000h (successful)
  89246. BX = handle of default ???
  89247. EBX high word cleared
  89248. 11h "X_PTerm" terminate process
  89249. DX = process handle or 0000h for current
  89250. BX = ??? (handle???)
  89251. Return: CX = status (0000h,000Bh,0014h) (see #02739)
  89252. 12h "F_Sleep" ???
  89253. BX = ???
  89254. DX = ???
  89255. Return: CX = 0000h (successful)
  89256. 13h "F_Wakeup" ???
  89257. DX = ???
  89258. Return: CX = status (see #02739)
  89259. 14h "F_FindPDName" find process by name???
  89260. BX = ???
  89261. DX = ???
  89262. Return: CX = status (0000h,0014h) (see #02739)
  89263. BX = FFFFh on error, ??? if successful
  89264. 15h "F_SetFlags" set ??? flags
  89265. BX = ??? (low two bits only)
  89266. DX = ??? handle or 0000h for default
  89267. Return: CX = status (0000h,000Bh) (see #02739)
  89268. BX = new value of ??? flags (entire word)
  89269. EBX high register cleared
  89270. 16h "F_EndOfInterrupt" issue EOI to PIC
  89271. Return: CX = 0000h (successful)
  89272. 17h "X_PTermOff" disable process termination
  89273. 18h "X_PTermOK" enable process termination
  89274. 19h "Z_FlagStatusGet" get semahprore's status
  89275. 1Ah "F_QRdMX" ???
  89276. 1Bh "F_QWrMX" ???
  89277. 1Ch "Z_FlagAlloc" allocate a new semaphore
  89278. 1Dh "Z_FlagFree" free semaphore
  89279. 1Eh "X_FlagsMaxGet" get number of semaphores supported
  89280. 1Fh "X_QReadNDC" non-destructive read from queue (peek)
  89281. 20h "Z_FlagWWTO" wait on semaphore, with timeout
  89282. 21h "F_UdaAlloc" ???
  89283. 22h "F_UdaFree" ???
  89284. 23h "X_PSuspend" suspend process
  89285. 24h "X_PUnsuspend" restart process after suspension
  89286. 25h "X_CritEnter" enter critical region
  89287. 26h "X_CritExit" leave critical region
  89288. 27h "F_PCreate" ???
  89289. 28h "Z_PHandleListGet" get list of process handles
  89290. 29h "Z_PNameGet" get process name
  89291. 2Ah "Z_PStatusGet" get process status
  89292. 2Bh "F_PDToDomain" get process' domain???
  89293. 2Ch "Z_PPriorGet" get process priority
  89294. 2Dh "F_QDList" get list of queues???
  89295. 2Eh "Z_QNameGet" get queue's name
  89296. 2Fh "X_QMsgLenGet" get message length of queue
  89297. 30h "X_QMsgMaxGet" get message capacity of queue
  89298. 31h "Z_QWriterGet" get handle of process waiting to write queue
  89299. 32h "Z_QReaderGet" get handle of process waiting to read queue
  89300. 33h "X_QMsgNumGet" get number of messages in queue
  89301. 34h "Z_QFlagsGet" get queue's flags
  89302. 35h "F_NameToQD" get queue by name???
  89303. 36h "F_NameToPD" get process by name???
  89304. 37h "X_MXCreate" create a mutex
  89305. 38h "X_MXDelete" delete a mutex
  89306. 39h "X_MXEnter" enter mutual-exclusion zone
  89307. 3Ah "X_MXEnterC" enter mutual-exclusion zone if it is free
  89308. 3Bh "X_MXExit" leave mutual-exclusion zone
  89309. 3Ch "Z_TicksSet" set length of foreground time slices
  89310. 3Dh "X_TickGet" get clock tick period
  89311. 3Eh "F_ProcessID" ???
  89312. 3Fh "X_QClose" close a queue
  89313. 40h "F_QDispose" delete queue???
  89314. 41h "F_PDToFlags" get process flags???
  89315. 42h "F_PDToDParam" ???
  89316. 43h "F_ReleaseMX" release mutex???
  89317. 44h "F_SimulateInt" ???
  89318. 45h "Z_QFlagsSet" set queue's flags
  89319. 46h "F_TickRate" ???
  89320. 47h ???
  89321. Return: CX = status (most subfunctions)
  89322. (E)AX and/or (E)BX contain return values, depending on function
  89323. Notes: called by DPMS.EXE and EMM386.EXE
  89324. this API is only available if AX=12FFh/BX=0EDCh returns successfully;
  89325. because the request is handled on the initial trap to the memory
  89326. manager caused by INT instructions, this API must be invoked with
  89327. an actual INT 2F instruction instead of some simulation such as a
  89328. far call to the address in the interrupt vector table
  89329. SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=01h,AX=2780h/CL=03h,AX=2780h/CL=04h
  89330. --------m-2F2780CL03-------------------------
  89331. INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - MEMORY
  89332. AX = 2780h
  89333. CL = 03h (module: Memory)
  89334. CH = subfunction
  89335. 00h ???
  89336. 01h "F_PdirGet" ???
  89337. 02h "F_PdirSet" ???
  89338. 03h "Z_PageAlloc" allocate a given page of memory
  89339. 04h "F_PageAllocG" allocate global page???
  89340. 05h "F_PageAllocI" allocate instance page???
  89341. 06h "F_PtblRead" get page table???
  89342. 07h "F_PtrlWrite" select page table???
  89343. 08h "Z_PtblGet" read page table
  89344. 09h "Z_PtblSet" change page table
  89345. 0Ah "Z_PagesAlloc" allocate pages of memory
  89346. 0Bh "Z_PageFree" free a given page of memory
  89347. 0Ch "Z_MemAlloc" allocate a memory block
  89348. 0Dh "Z_MemFree" release memory block
  89349. 0Eh "Z_MemSizeGet" get size of memory block
  89350. 0Fh "Z_MemResize" resize a memory block
  89351. 10h "Z_DescAlloc" allocate a memory descriptor
  89352. 11h "Z_DescFree" release a memory descriptor
  89353. 12h "Z_DescGet" get details on memory descriptor
  89354. 13h "Z_DescSet" set a memory descriptor
  89355. 14h "Z_MemDescAlloc" allocate a memory block and its descriptor
  89356. 15h "Z_MemDescFree" release a memory block and its descriptor
  89357. 16h "Z_MemDescSizeGet" get size of memory block
  89358. 17h "Z_MemDescResize" resize a memory block
  89359. 18h "Z_PageLock" lock a page, with existing contents
  89360. 19h "Z_PageUnlock" unlock a page
  89361. 1Ah "Z_PageLockAny" lock a page, contents undefined
  89362. 1Bh "Z_PageUnlockReuse" unlock page, reuse phsyical memory
  89363. 1Ch "Z_PageLockNone" lock a page, no physical memory assigned
  89364. 1Dh "Z_PageUnlockNone" unlock a page, don't reuse physical memory
  89365. 1Eh "F_CallRealRaw" call real mode (SS:ESP supplied)
  89366. 1Fh "F_IntRealRaw" perform real-mode interrupt (SS:ESP supplied)
  89367. 20h "F_CallReal" call real mode with RETF frame
  89368. 21h "F_IntReal" perform real-mode interrupt
  89369. 22h "F_PagedCallReal" paged real-mode call
  89370. 23h "F_PagedIntReal" paged real-mode interrupt
  89371. 24h "F_CallIretReal" call real mode with IRET frame
  89372. 25h "F_CallIretRealRaw" call real mode with IRET (SS:ESP supplied)
  89373. 26h "F_CallProt16" call 16-bit protected-mode code
  89374. 27h "F_CallProt32" call 32-bit protected-mode code
  89375. 28h "F_IAddPage" add kernel instance data
  89376. 29h "Z_PageDomLock" lock page in specific domain, preserve contents
  89377. 2Ah "Z_PatgeDomUnlock" unlock page in specific domain
  89378. 2Bh "Z_PageDomLockAny" lock page in specific domain, undef contents
  89379. 2Ch "Z_PageDomUnlockReuse" unlock page in spec. domain,reuse ph.mem
  89380. 2Dh "Z_PageDomLockNone" lock page in spec. domain, no phys memory
  89381. 2Eh "Z_PageDomUnlockNone" unlock page in spec. domain, no phys. mem
  89382. 2Fh "Z_GateAlloc" allocate a gate
  89383. 30h "Z_GateFree" release a gate
  89384. 31h "X_MemFreeGet" get total free memory
  89385. 32h "X_MemTopGet" get highest memory address
  89386. 33h "X_MemTotalGet" get total memory size
  89387. 34h "F_DescRead" ???
  89388. 35h "F_DescWrite" ???
  89389. 36h "F_GetStack" ???
  89390. 37h "F_SetStack" ???
  89391. Return: CX = status (most subfunctions)
  89392. (E)AX and/or (E)BX contain return values, depending on function
  89393. Notes: called by DPMS.EXE and EMM386.EXE
  89394. this API is only available if AX=12FFh/BX=0EDCh returns successfully;
  89395. because the request is handled on the initial trap to the memory
  89396. manager caused by INT instructions, this API must be invoked with
  89397. an actual INT 2F instruction instead of some simulation such as a
  89398. far call to the address in the interrupt vector table
  89399. SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=01h,AX=2780h/CL=02h,AX=2780h/CL=04h
  89400. --------m-2F2780CL04-------------------------
  89401. INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - DOMAINS
  89402. AX = 2780h
  89403. CL = 04h (module: Domains)
  89404. CH = subfunction
  89405. 00h "F_DAlloc" create new domain
  89406. 01h "F_DFree" delete a domain
  89407. 02h "X_DomHandleGetMy" get current domain handle
  89408. 03h "F_DSet" switch to another domain
  89409. 04h "Z_HandlerSWInt" install software-interrupt handler
  89410. 05h "Z_HandlerPageFault" install page-fault handler
  89411. 06h "Z_HandlerIOEx" install I/O exception handler
  89412. 07h "Z_HandlerGenEx" install general exception handler
  89413. 08h "Z_HandlerHWInt" install hardware interrupt handler
  89414. 09h "Z_IOBitmapGet" get current domain's I/O bitmap entry
  89415. 0Ah "Z_IOBitmapSet" set current domain's I/O bitmap entry
  89416. 0Bh "Z_IOBitmapDomGet" get domain's I/O bitmap entry
  89417. 0Ch "Z_IOBitmapDomSet" set domain's I/O bitmap entry
  89418. 0Dh "Z_DomMemRead" read memory in another domain
  89419. 0Eh "Z_DomMemWrite" write memory in another domain
  89420. 0Fh "Z_PtblDomGet" read domain's page table
  89421. 10h "Z_PtblDomSet" write domain's page table
  89422. 11h "Z_InstanceSet" register instanced memory
  89423. 12h "X_DomNProcessesGet" get number of processes in domain
  89424. 13h "X_DomSuspend" suspend a domain
  89425. 14h "Z_DomUnsuspend" resume execution of a domain
  89426. 15h "Z_DomFork" make a copy of the current domain
  89427. 16h "Z_DomTerm" terminate domain and all processes in it
  89428. 17h "Z_HandlerUnlink" remove a handler
  89429. 18h "Z_HandlerHWIntDflt" install default hardware interrupt handler
  89430. 19h "Z_HandlerVHWInt" install virtual hardware interrupt handler
  89431. 1Ah "Z_HandlerVHWIntDflt" install default virtual hware int handler
  89432. 1Bh "Z_HandlerSwapIn" install swap-in handler
  89433. 1Ch "Z_HandlerSwapOut" install swap-out handler
  89434. 1Dh "Z_EndOfInterrupt" signal EOI
  89435. 1Eh ???
  89436. 1Fh "Z_HandlerPCreate" install process-creation handler
  89437. 20h "Z_HandlerPTerm" install process-termination handler
  89438. 21h "Z_DomRootProcessGet" get domain's root process' handle
  89439. 22h "F_DForeground" domain has just switched to foreground
  89440. 23h "F_DBackground" domain has just switched to background
  89441. 24h "F_MapHMA" map domain's HMA
  89442. 25h "F_AddInstData" add DOS instance data
  89443. 26h "X_DomMemFreeGet" get free memory in a domain
  89444. 27h "X_DomMemUsedGet" get memory used by current domain
  89445. 28h "Z_DomMemMaxGet" get per-domain memory limit
  89446. 29h "Z_DomMemMaxSet" set per-domain memory limit
  89447. 2Ah "F_ReflectInt21" protected-mode INT 21 support
  89448. 2Bh "Z_DomHandleGet" get domain for a process
  89449. 2Ch ???
  89450. 2Dh ???
  89451. 2Eh ???
  89452. 2Fh ???
  89453. 30h ???
  89454. 31h ???
  89455. 32h ???
  89456. Return: CX = status (most subfunctions)
  89457. (E)AX and/or (E)BX contain return values, depending on function
  89458. Notes: called by DPMS.EXE and EMM386.EXE
  89459. this API is only available if AX=12FFh/BX=0EDCh returns successfully;
  89460. because the request is handled on the initial trap to the memory
  89461. manager caused by INT instructions, this API must be invoked with
  89462. an actual INT 2F instruction instead of some simulation such as a
  89463. far call to the address in the interrupt vector table
  89464. SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=01h,AX=2780h/CL=02h,AX=2780h/CL=03h
  89465. --------m-2F2780CL05-------------------------
  89466. INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - VIRTUAL MACHINES
  89467. AX = 2780h
  89468. CL = 05h (module: VM)
  89469. CH = function
  89470. 00h "F_VMProtInit" internal protected-mode initialization
  89471. 01h "Z_TMLoad" load task manager
  89472. 02h "Z_TMUnload" unload task manager
  89473. 03h "Z_VMBackSet" send virtual machine to background
  89474. 04h "Z_VMForeSet" send virtual machine to foreground
  89475. 05h "Z_VMSaveEnable" enable saving virtual machine
  89476. 06h "Z-VMSaveDisable" disable saving virtual machine
  89477. 07h "Z_TMInit" intialize task manager
  89478. 08h "Z_TMHotKeyGet" get task manager hotkey
  89479. 09h "Z_TMHitKeyEnable" restart scanning for task manager key
  89480. 0Ah "Z_TMHotKeyDisable" stop scanning for task manager key
  89481. 0Bh "X_ForeGet" get current foreground domain
  89482. 0Ch "F_DMAHandlerEnable" (re)enable DMA address translation
  89483. 0Dh "F_DMAHandlerDisable" disable DMA address translation
  89484. 0Eh "Z_SerialTimeoutGet" set serial port timeout
  89485. 0Fh "Z_ParallelTimeoutSet" set parallel port timeout
  89486. 10h "F_VCPIEntry" domain is entering VCPI mode
  89487. 11h "F_VCPIExit" domain is leaving VCPI mode
  89488. 12h "X_MsgGlobalEnter" enter Global Message Mode
  89489. 13h "X_MsgGlobalDisplay" display global message
  89490. 14h "X_MsgGlobalExit" leave Global Message Mode
  89491. 15h "X_MsgDomEnter" enter Domain Message Mode
  89492. 16h "X_MsgDomDisplay" display domain-specific message
  89493. 17h "X_MsgDomExit" leave Domain Message Mode
  89494. 18h "X_MsgFatalDisplay" display fatal error message
  89495. 19h "Z_SerialBaseSet" set serial port address
  89496. 1Ah "Z_ParallelBaseSet" set parallel port address
  89497. 1Bh "Z_SerialIRQSet" set serial port IRQ
  89498. 1Ch "Z_ParallelIRQSet" set parallel port IRQ
  89499. 1Dh "F_ResetVideo" emergency video system reset
  89500. 1Eh "F_SetMouseIRQ" set which IRQ is used by mouse
  89501. 1Fh "F_CheckNotIdle" check whether system is idle
  89502. 20h "F_GetMouseInfo"
  89503. 21h "Z_SerialOwnerGet" get serial port owner
  89504. 22h "Z_SerialTimeoutGet" get serial port timeout
  89505. 23h "Z_ParallelOwnerGet" get parallel port owner
  89506. 24h "Z_ParallelTimeoutGet" get parallel port timeout
  89507. ???
  89508. Return: ???
  89509. Notes: called by DPMS.EXE and EMM386.EXE
  89510. the handler for this function may be set by one of the subfunctions
  89511. of AX=2780h/CL=01h; the default handler returns AX=BX=FFFFh and
  89512. CX=0001h (see #02739)
  89513. this API is only available if AX=12FFh/BX=0EDCh returns successfully;
  89514. because the request is handled on the initial trap to the memory
  89515. manager caused by INT instructions, this API must be invoked with
  89516. an actual INT 2F instruction instead of some simulation such as a
  89517. far call to the address in the interrupt vector table
  89518. SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=01h,AX=2780h/CL=02h,AX=2780h/CL=03h
  89519. --------m-2F2780CL06-------------------------
  89520. INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - DPMI SERVICES
  89521. AX = 2780h
  89522. CL = 06h
  89523. CH = function
  89524. 00h "F_InitDPMI" used for internal initialization
  89525. 01h "F_DescAllocLDT" allocate LDT descriptor
  89526. 02h "F_DescFreeLDT" free LDT descriptor
  89527. 03h "F_DescGetLDT" get details on LDT descriptor
  89528. 04h "F_DescSetLDT" set up LDT descriptor
  89529. 05h "F_DescAllocInt21" allocate descriptor for PM INT 21
  89530. 06h "F_WhereIsDPMI" get address of DPMI global data
  89531. Return: ???
  89532. Notes: called by DPMS.EXE and EMM386.EXE
  89533. the handler for this function may be set by one of the subfunctions
  89534. of AX=2780h/CL=01h; the default handler returns AX=BX=FFFFh and
  89535. CX=0001h (see #02739)
  89536. this API is only available if AX=12FFh/BX=0EDCh returns successfully;
  89537. because the request is handled on the initial trap to the memory
  89538. manager caused by INT instructions, this API must be invoked with
  89539. an actual INT 2F instruction instead of some simulation such as a
  89540. far call to the address in the interrupt vector table
  89541. SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=01h,AX=2780h/CL=02h,AX=2780h/CL=03h
  89542. --------m-2F2780-----------------------------
  89543. INT 2F U - Novell DOS 7 - EMM386.EXE - MULTITASKING API - AVAILABLE FOR APPS
  89544. AX = 2780h
  89545. CL = function (07h-0Fh)
  89546. ???
  89547. Return: ???
  89548. Notes: called by DPMS.EXE and EMM386.EXE
  89549. the handlers for each of these functions may be set individually by
  89550. one of the subfunctions of AX=2780h/CL=01h; the default handlers
  89551. return with all registers unchanged
  89552. this API is only available if AX=12FFh/BX=0EDCh returns successfully;
  89553. because the request is handled on the initial trap to the memory
  89554. manager caused by INT instructions, this API must be invoked with
  89555. an actual INT 2F instruction instead of some simulation such as a
  89556. far call to the address in the interrupt vector table
  89557. SeeAlso: AX=12FFh/BX=0EDCh,AX=2780h/CL=01h,AX=2780h/CL=02h,AX=2780h/CL=03h
  89558. --------T-2F2781-----------------------------
  89559. INT 2F U - Novell DOS 7 TaskMGR - BEGIN CRITICAL SECTION???
  89560. AX = 2781h
  89561. Return: ???
  89562. SeeAlso: AX=2782h
  89563. --------T-2F2782-----------------------------
  89564. INT 2F U - Novell DOS 7 TaskMGR - END CRITICAL SECTION???
  89565. AX = 2782h
  89566. Return: ???
  89567. SeeAlso: AX=2781h
  89568. --------m-2F2783-----------------------------
  89569. INT 2F U - Novell DOS 7 - EMM386.EXE - GET ???
  89570. AX = 2783h
  89571. Return: AX = ???
  89572. BX = ???
  89573. --------T-2F278F-----------------------------
  89574. INT 2F U - Novell DOS 7 TaskMGR - ??? API
  89575. AX = 278Fh
  89576. as for INT 2F/AX=2780h
  89577. Return: as for INT 2F/AX=2780h
  89578. Note: Novell DOS 7 TaskMGR passes this call through to INT 2F/AX=2780h
  89579. without changing any other registers
  89580. SeeAlso: AX=2780h/CL=01h,AX=2782h
  89581. --------F-2F2A-------------------------------
  89582. INT 2F - Gammafax DOS Dispatcher INTERFACE
  89583. AH = 2Ah
  89584. Note: details not available at this time
  89585. SeeAlso: AX=8000h"FaxBIOS",AX=C000h/BX=444Bh,AX=CB00h,AX=CBDDh,INT 66"BitFax"
  89586. --------V-2F2E00-----------------------------
  89587. INT 2F U - Novell DOS 7 - GRAFTABL - INSTALLATION CHECK
  89588. AX = 2E00h
  89589. Return: AH = FFh if installed
  89590. Note: this installation check does not follow the usual format of setting
  89591. AL to FFh
  89592. SeeAlso: AX=2300h,AH=2Eh"GRAFTABL"
  89593. --------V-2F2E-------------------------------
  89594. INT 2F U - Novell DOS 7 - GRAFTABL - GET FONT TABLE
  89595. AH = 2Eh
  89596. AL nonzero
  89597. Return: AH = FFh if installed
  89598. ES:BX -> graphics data (8 bytes per character from 80h to FFh)
  89599. SeeAlso: AX=2E00h,AH=23h"GRAFTABL"
  89600. --------t-2F3900-----------------------------
  89601. INT 2F - Kingswood TSR INTERFACE - COMPATIBILITY MODE
  89602. AX = 3900h
  89603. Return: AL = status
  89604. 00h not installed
  89605. FFh one or more TSRs using this interface is installed
  89606. DX may be destroyed
  89607. Note: this function is provided to that the multiplex number will appear used
  89608. to other programs
  89609. SeeAlso: AH=39h/BL=00h
  89610. --------t-2F39--BL00-------------------------
  89611. INT 2F - Kingswood TSR INTERFACE - INSTALLATION CHECK
  89612. AH = 39h
  89613. BL = 00h
  89614. AL = TSR ID number (01h-FFh, currently only 01h-1Bh used) (see #02742)
  89615. Return: AL = status
  89616. 00h not installed
  89617. FFh installed
  89618. DX = segment address of resident module
  89619. Note: All of Kingswood Software's TSRs use this interface. Usually the
  89620. resident module is installed by allocating a block of upper memory,
  89621. setting its owner ID to 000Ah (used by DOS), and filling the MCB name
  89622. field with the TSR's name.
  89623. SeeAlso: #02743,AX=3900h,AH=39h/BL=01h
  89624. (Table 02742)
  89625. Values for Kingswood TSR ID number:
  89626. 01h TSR Windows
  89627. 02h NOBUSY
  89628. 03h CD STACK
  89629. 04h DISK WATCH
  89630. 05h PUSHBP
  89631. 06h ALIAS
  89632. 07h KEYMACRO
  89633. 08h SLOWDOWN
  89634. 09h ANSIGRAB
  89635. 0Ah TEE
  89636. 0Bh FASTMOUS
  89637. 0Ch EXTWILD
  89638. 0Dh BREAKOUT
  89639. 0Eh STOPDISK
  89640. 0Fh MEMINIT
  89641. 10h JANUSEXT
  89642. 11h CAPS
  89643. 12h ANSI
  89644. 13h TRAPPER
  89645. 14h EATMEM
  89646. 15h WPJOKE
  89647. 16h SHOWDOS
  89648. 17h LOGINTS
  89649. 18h BLANKVGA
  89650. 19h SWAPEXEC
  89651. 1Ah SHELL
  89652. 1Bh TSRGAMES
  89653. Format of Kingswood TSR modules:
  89654. Offset Size Description (Table 02743)
  89655. 00h 4 BYTEs signature "FTSR"
  89656. 04h WORD segment address of this module (used to check validity)
  89657. 06h WORD number of words to skip (usually 0000h if no PSP present)
  89658. 08h N WORDs module-defined data that must be at a fixed segment offset
  89659. (usually only a PSP if file access is required)
  89660. 5N BYTEs interrupt list (see #02744)
  89661. BYTE FFh terminator
  89662. Format of Kingswood TSR interrupt list entry:
  89663. Offset Size Description (Table 02744)
  89664. 00h BYTE interrupt number (00h-FEh)
  89665. 01h WORD offset within segment of DWORD pointer to previous interrupt
  89666. 03h WORD offset within segment of begin of interrupt handler code
  89667. --------t-2F39--BL01-------------------------
  89668. INT 2F - Kingswood TSR INTERFACE - REMOVAL CHECK
  89669. AH = 39h
  89670. BL = 01h
  89671. AL = TSR ID number (01h-FFh) (see #02742)
  89672. Return: AL = status
  89673. 00h not ready to be removed
  89674. FFh resident module may be removed by deassigning the interrupts
  89675. hooked by the TSR and deallocating the TSR's memory block
  89676. AH,BX,CX,DX,ES may be destroyed
  89677. SeeAlso: AX=3900h,AH=39h/BL=00h
  89678. --------t-2F39-------------------------------
  89679. INT 2F - Kingswood TSR INTERFACE - APPLICATION-SPECIFIC FUNCTION CALLS
  89680. AH = 39h
  89681. BL = function number (02h-FFh)
  89682. AL = TSR ID number (01h-FFh) (see #02742)
  89683. CX,DX,SI,DI,DS,ES may contain parameters
  89684. BH reserved for use by the function dispatcher
  89685. Return: as appropriate for the called function
  89686. SeeAlso: AX=3900h,AH=39h/BL=00h,AX=3901h/BL=02h
  89687. --------r-2F3901BL02-------------------------
  89688. INT 2F - Kingswood TSR Windows - OPEN WINDOW
  89689. AX = 3901h
  89690. BL = 02h
  89691. Return: AX = error code (0000h if successful)
  89692. SI,DI,DS,ES preserved
  89693. Notes: opens the next TSR window on top of any others. Only three
  89694. TSR windows can be opened at any one time. The three windows
  89695. are all 40x11 characters, partly overlapping.
  89696. SeeAlso: AH=39h/BL=00h,AX=3901h/BL=03h,AX=3901h/BL=05h,AX=3901h/BL=06h
  89697. --------r-2F3901BL03-------------------------
  89698. INT 2F - Kingswood TSR Windows - HIDE WINDOWS
  89699. AX = 3901h
  89700. BL = 03h
  89701. Return: AX = error code (0000h if successful)
  89702. SI,DI,DS,ES preserved
  89703. Notes: Hide any visible TSR windows from view.
  89704. SeeAlso: AH=39h/BL=00h,AX=3901h/BL=02h,AX=3901h/BL=05h
  89705. --------r-2F3901BL04-------------------------
  89706. INT 2F - Kingswood TSR Windows - SHOW WINDOWS
  89707. AX = 3901h
  89708. BL = 04h
  89709. Return: AX = error code (0000h if successful)
  89710. SI,DI,DS,ES preserved
  89711. Notes: Re-display all TSR windows after a HIDE WINDOWS call.
  89712. SeeAlso: AH=39h/BL=00h,AX=3901h/BL=02h,AX=3901h/BL=03h
  89713. --------r-2F3901BL05-------------------------
  89714. INT 2F - Kingswood TSR Windows - CLOSE WINDOW
  89715. AX = 3901h
  89716. BL = 05h
  89717. Return: AX = error code (0000h if successful)
  89718. SI,DI,DS,ES preserved
  89719. Notes: Close the last opened TSR window.
  89720. SeeAlso: AH=39h/BL=00h,AX=3901h/BL=02h
  89721. --------r-2F3901BL06-------------------------
  89722. INT 2F - Kingswood TSR Windows - SET WINDOW TITLE
  89723. AX = 3901h
  89724. BL = 06h
  89725. DS:SI -> title string
  89726. Return: AX = error code (0000h if successful)
  89727. SI,DI,DS,ES preserved
  89728. SeeAlso: AH=39h/BL=00h,AX=3901h/BL=02h
  89729. --------r-2F3901BL07-------------------------
  89730. INT 2F - Kingswood TSR Windows - POSITION CURSOR
  89731. AX = 3901h
  89732. BL = 07h
  89733. CH = Y coordinate (0-10)
  89734. CL = X coordinate (0-39)
  89735. Return: AX = error code (0000h if successful)
  89736. SI,DI,DS,ES preserved
  89737. Note: the hardware cursor is always disabled when a TSR window is opened;
  89738. this call only sets a text position
  89739. SeeAlso: AH=39h/BL=00h,AX=3901h/BL=08h,AX=3901h/BL=09h
  89740. --------r-2F3901BL08-------------------------
  89741. INT 2F - Kingswood TSR Windows - DISPLAY STRING
  89742. AX = 3901h
  89743. BL = 08h
  89744. DS:SI -> string
  89745. Return: AX = error code (0000h if successful)
  89746. SI,DI,DS,ES preserved
  89747. Notes: The text is not clipped.
  89748. This routine understands Tab, NewLine and Carriage Return
  89749. SeeAlso: AH=39h/BL=00h,AX=3901h/BL=07h
  89750. --------r-2F3901BL09-------------------------
  89751. INT 2F - Kingswood TSR Windows - SCROLL WINDOW
  89752. AX = 3901h
  89753. BL = 09h
  89754. CL = scroll direction: 01h up, FFh down, 00h clear window
  89755. Return: AX = error code (0000h if successful)
  89756. SI,DI,DS,ES preserved
  89757. SeeAlso: AH=39h/BL=00h,AX=3901h/BL=07h
  89758. --------r-2F3901BL0A-------------------------
  89759. INT 2F - Kingswood TSR Windows - SOUND BEEPER
  89760. AX = 3901h
  89761. BL = 0Ah
  89762. DX = sound divisor, or 0 for silence.
  89763. (divide 1843200 by required frequency to get value for DX)
  89764. CL = sound length in 18.2 Hz clock ticks
  89765. Return: AX = error code (0000h if successful)
  89766. SI,DI,DS,ES preserved
  89767. SeeAlso: AH=39h/BL=00h
  89768. --------r-2F3901BL0B-------------------------
  89769. INT 2F - Kingswood TSR Windows - ADD OR REMOVE USER
  89770. AX = 3901h
  89771. BL = 0Bh
  89772. CL = number of users increment: +1 if adding a new user
  89773. -1 if removing a user
  89774. Return: AX = error code (0000h if successful)
  89775. SI,DI,DS,ES preserved
  89776. Note: the TSR windows resident module may only be removed when the internal
  89777. user count is zero
  89778. SeeAlso: AH=39h/BL=00h,AX=3901h/BL=02h
  89779. --------V-2F3912BL03-------------------------
  89780. INT 2F - Kingswood ANSI display driver - SET COMPATIBILITY MODE
  89781. AX = 3912h
  89782. BL = 03h
  89783. CL = new mode (00h fast, FFh BIOS)
  89784. Return: AL = old compatibility mode
  89785. SI,DI,DS,ES preserved
  89786. SeeAlso: AX=3900h,AX=3912h/BL=04h
  89787. --------V-2F3912BL04-------------------------
  89788. INT 2F - Kingswood ANSI display driver - SET FLAGS
  89789. AX = 3912h
  89790. BL = 04h
  89791. CL = new flags (see #02745)
  89792. Return: AL = old flags
  89793. SI,DI,DS,ES preserved
  89794. SeeAlso: AX=3900h,AX=3912h/BL=03h
  89795. Bitfields for Kingswood ANSI flags:
  89796. Bit(s) Description (Table 02745)
  89797. 0 do not wrap at end of line
  89798. 1 wait for beeps to end before displaying next character
  89799. 2 do not use graphics cursor
  89800. --------W-2F4000-----------------------------
  89801. INT 2F - Windows 3+ (OS/2 2.x???) - GET VIRTUAL DEVICE DRIVER (VDD) CAPABILTIES
  89802. AX = 4000h
  89803. Return: AL = video virtualization (see #02746)
  89804. Note: this function is used by display drivers to find out what capabilities
  89805. exist for the VDD driver and also trigger the VDD driver to call
  89806. functions 4005h and 4006h. This function also gives the Video Driver
  89807. hardware access to the video registers.
  89808. (Table 02746)
  89809. Values for Windows video virtualization:
  89810. 01h does not virtualize video access
  89811. 02h virtualizes the video when in text mode
  89812. 03h virtualizes the video when in text mode or single plane graphics modes
  89813. 04h virtualizes the video when in text mode, single plane graphics modes,
  89814. and VGA multiplane modes
  89815. FFh virtualizes the video fully
  89816. --------O-2F4001-----------------------------
  89817. INT 2F C - OS/2 compatibility box - SWITCHING DOS TO BACKGROUND
  89818. AX = 4001h
  89819. Note: called by OS/2 when the DOS box is about to be placed in the background
  89820. and the video driver should save any necessary state
  89821. SeeAlso: AX=4002h,AX=4005h
  89822. --------O-2F4002-----------------------------
  89823. INT 2F C - OS/2 compatibility box - SWITCHING DOS TO FOREGROUND
  89824. AX = 4002h
  89825. Note: called by OS/2 when the DOS box is about to be placed in the foreground
  89826. and the video driver should restore the previously-saved state
  89827. SeeAlso: AX=4001h,AX=4006h
  89828. --------W-2F4003-----------------------------
  89829. INT 2F - Windows 3.x - ENTERING VIDEO DRIVER CRITICAL SECTION
  89830. AX = 4003h
  89831. Note: This critical section must be exited within 1 second.
  89832. SeeAlso: AX=4004h
  89833. --------W-2F4004-----------------------------
  89834. INT 2F - Windows 3.x - EXITING VIDEO DRIVER CRITICAL SECTION
  89835. AX = 4004h
  89836. SeeAlso: AX=4003h
  89837. --------W-2F4005-----------------------------
  89838. INT 2F C - Windows 3.x - SWITCHING DOS TO BACKGROUND
  89839. AX = 4005h
  89840. Note: called by Windows when the DOS box is about to be placed in the
  89841. background and the video driver should save any necessary state
  89842. information (this may be called only in Standard mode)
  89843. SeeAlso: AX=4001h,AX=4006h
  89844. --------W-2F4006-----------------------------
  89845. INT 2F C - Windows 3.x - SWITCHING DOS TO FOREGROUND
  89846. AX = 4006h
  89847. Note: called by Windows when the DOS box is about to be placed in the
  89848. foreground and the video driver should restore any necessary state
  89849. information (this may be called only in Standard mode)
  89850. SeeAlso: AX=4002h,AX=4005h
  89851. --------W-2F4007-----------------------------
  89852. INT 2F - Windows 3.x - ENABLE VDD TRAPPING OF VIDEO REGISTERS
  89853. AX = 4007h
  89854. Note: used by Windows Standard mode
  89855. --------O-2F4010-----------------------------
  89856. INT 2F - OS/2 v2.0+ - INSTALLATION CHECK / GET VERSION
  89857. AX = 4010h
  89858. Return: AX = 4010h if OS/2 not installed
  89859. AX = 0000h for OS/2 Warp 3.0
  89860. BX = OS/2 version if installed
  89861. Note: OS/2 Warp 3.0
  89862. SeeAlso: INT 21/AH=30h,INT 21/AX=3306h
  89863. --------O-2F4011-----------------------------
  89864. INT 2F - OS/2 - GET VDD API ENTRY POINT
  89865. AX = 4011h
  89866. DS:(E)SI -> ASCIZ name of VDD registered with VDHRegisterAPI
  89867. Return: ES:DI -> breakpoint address to call for VDD API, or 0000h:0000h
  89868. Note: this function may be invoked from either V86 or protected mode, and
  89869. will return the appropriate address to call for invoking the VDD
  89870. in that mode
  89871. SeeAlso: AX=1684h"DEVICE API"
  89872. --------V-2F4021-----------------------------
  89873. INT 2F UC - Diamond Stealth64 Video - STLTH64.VXD - ???
  89874. AX = 4021h
  89875. ???
  89876. Return: ???
  89877. SeeAlso: AX=4022h,AX=4023h
  89878. --------V-2F4022-----------------------------
  89879. INT 2F UC - Diamond Stealth64 Video - STLTH64.VXD - ???
  89880. AX = 4022h
  89881. ???
  89882. Return: ???
  89883. SeeAlso: AX=4021h,AX=4023h
  89884. --------V-2F4023-----------------------------
  89885. INT 2F UC - Diamond Stealth64 Video - STLTH64.VXD - ???
  89886. AX = 4023h
  89887. ???
  89888. Return: ???
  89889. SeeAlso: AX=4021h,AX=4022h
  89890. --------V-2F4027-----------------------------
  89891. INT 2F UC - Diamond Stealth64 Video - DMSSTL.DRV - ???
  89892. AX = 4027h
  89893. ???
  89894. Return: ???
  89895. Notes: called when ???
  89896. a protected-mode handler for this function may be installed with the
  89897. function RFV_HOOKINT2FHANDLER
  89898. SeeAlso: AX=4021h,AX=4022h
  89899. --------E-2F4040-----------------------------
  89900. INT 2F - PharLap 286|DOS-Extender Lite v2.5 - ???
  89901. AX = 4040h
  89902. Return: BX:CX -> ???
  89903. --------N-2F4100-----------------------------
  89904. INT 2F - DOS Enhanced LAN Manager 2.0+ MINIPOP/NETPOPUP - INSTALLATION CHECK
  89905. AX = 4100h
  89906. Return: CF clear if successful
  89907. AL = FFh
  89908. CF set on error
  89909. AX = ???
  89910. Notes: MINIPOP and NETPOPUP provide a network message popup service
  89911. LAN Manager enhanced mode adds features beyond the standard redirector
  89912. file/printer services
  89913. SeeAlso: AX=118Ah,AX=4103h,AX=4104h,AH=42h,AH=4Bh
  89914. --------N-2F4103-----------------------------
  89915. INT 2F - DOS Enhanced LAN Manager 2.0+ MINIPOP/NETPOPUP - ???
  89916. AX = 4103h
  89917. Return: ???
  89918. SeeAlso: AX=4100h,AX=4104h
  89919. --------N-2F4104-----------------------------
  89920. INT 2F - DOS Enhanced LAN Manager 2.0+ MINIPOP/NETPOPUP - ???
  89921. AX = 4104h
  89922. Return: ???
  89923. SeeAlso: AX=4100h,AX=4103h
  89924. --------N-2F42-------------------------------
  89925. INT 2F - LAN Manager 2.0 DOS Enhanced MSRV.EXE - MESSENGER SERVICE
  89926. AH = 42h
  89927. ???
  89928. Return: ???
  89929. Note: LAN Manager enhanced mode adds features beyond the standard redirector
  89930. file/printer services
  89931. SeeAlso: AX=118Ah,AX=4100h,AH=4Bh
  89932. --------m-2F4300-----------------------------
  89933. INT 2F - EXTENDED MEMORY SPECIFICATION (XMS) v2+ - INSTALLATION CHECK
  89934. AX = 4300h
  89935. Return: AL = 80h XMS driver installed
  89936. AL <> 80h no driver
  89937. Notes: XMS gives access to extended memory and noncontiguous/nonEMS memory
  89938. above 640K
  89939. this installation check DOES NOT follow the format used by other
  89940. software
  89941. SeeAlso: AX=4310h,AX=1687h,INT 67/AH=40h,@xxxxh:xxxxh"PMM"
  89942. Index: installation check;XMS version 2+
  89943. --------m-2F4308-----------------------------
  89944. INT 2F U - HIMEM.SYS v2.77+ - GET A20 HANDLER NUMBER
  89945. AX = 4308h
  89946. Return: AL = 43h if supported
  89947. BL = A20 handler number (value of /MACHINE:nn switch)
  89948. BH = AT A20 switch time (00h medium, 01h fast, 02h slow)
  89949. Note: if the A20 handler number returned in BL is 00h, an external handler
  89950. is being used (see AX=4330h)
  89951. SeeAlso: AX=4309h,AX=4330h
  89952. --------m-2F4309-----------------------------
  89953. INT 2F U - HIMEM.SYS v3.09+ - GET XMS HANDLE TABLE
  89954. AX = 4309h
  89955. Return: AL = 43h if function supported
  89956. ES:BX -> XMS handle table (see #02747)
  89957. Note: HIMEM.SYS v3.09 is part of MS-DOS 6.0.
  89958. SeeAlso: AX=4308h
  89959. Format of XMS handle table:
  89960. Offset Size Description (Table 02747)
  89961. 00h BYTE ??? (01h in HIMEM.SYS v3.09)
  89962. 01h BYTE size of one handle descriptor
  89963. 02h WORD number of handles (default = 20h)
  89964. 04h DWORD pointer to XMS handle array (see #02748)
  89965. SeeAlso: #02777
  89966. Format of XMS handle descriptor [array]:
  89967. Offset Size Description (Table 02748)
  89968. 00h BYTE flag
  89969. 01h=free, 02h=used, 04h=in pool but not associated with any EMB
  89970. 01h BYTE lock count (00h=unlocked)
  89971. 02h DWORD address of XMS block in KB (shift left by 10 for abs. address)
  89972. 06h DWORD size of XMS block in KB
  89973. --------m-2F4310-----------------------------
  89974. INT 2F - EXTENDED MEMORY SPECIFICATION (XMS) v2+ - GET DRIVER ADDRESS
  89975. AX = 4310h
  89976. Return: ES:BX -> driver entry point (see #02749,#02750,#02753,#02760,#02769,#02774)
  89977. Notes: HIMEM.SYS v2.77 chains to previous handler if AH is not 00h or 10h
  89978. HIMEM.SYS requires at least 256 bytes free stack space when calling
  89979. the driver entry point
  89980. SeeAlso: AX=4300h,AX=4310h"Cloaking",AX=4310h"Netroom",AX=4310h"XMZ"
  89981. Format of XMS driver entry point:
  89982. Offset Size Description (Table 02749)
  89983. 00h 5 BYTEs jump to actual handler
  89984. either short jump (EBh XXh) followed by three NOPs or
  89985. far jump (EAh XXXX:XXXX) to a program which has hooked itself
  89986. into the XMS driver chain
  89987. Note: to hook into the XMS driver chain, a program should follow the chain of
  89988. far jumps until it reaches the short jump of the driver at the end
  89989. of the chain; this short jump is to be replaced with a far jump to
  89990. the new handler's entry point, which should contain a short jump
  89991. followed by three NOPs. The new handler must return to the address
  89992. pointed at by the short jump which was overwritten. Using this
  89993. method, the new handler becomes the first to see every XMS request.
  89994. (Table 02750)
  89995. Call the XMS driver "Get XMS version number" function with:
  89996. AH = 00h
  89997. Return: AX = XMS version (in BCD, AH=major, AL=minor)
  89998. BX = internal revision number (in BCD for HIMEM.SYS)
  89999. DX = High Memory Area (HMA) state
  90000. 0001h HMA (1M to 1M + 64K) exists
  90001. 0000h HMA does not exist
  90002. SeeAlso: #02751,#02752,#02757,#02758,#02764
  90003. (Table 02751)
  90004. Call the XMS driver "Request High Memory Area" function with:
  90005. AH = 01h
  90006. DX = memory in bytes (for TSR or device drivers)
  90007. FFFFh if application program
  90008. Return: AX = status
  90009. 0001h success
  90010. 0000h failure
  90011. BL = error code (80h,81h,90h,91h,92h) (see #02775)
  90012. Note: HIMEM.SYS will fail function 01h with error code 91h if AL=40h and
  90013. DX=KB free extended memory returned by last call of function 08h
  90014. SeeAlso: #02752,#02784
  90015. (Table 02752)
  90016. Call the XMS driver "Release High Memory Area" function with:
  90017. AH = 02h
  90018. Return: AX = status
  90019. 0001h success
  90020. 0000h failure
  90021. BL = error code (80h,81h,90h,93h) (see #02775)
  90022. SeeAlso: #02751
  90023. (Table 02753)
  90024. Call the XMS driver "Global enable A20, for using the HMA" function with:
  90025. AH = 03h
  90026. Return: AX = status
  90027. 0001h success
  90028. 0000h failure
  90029. BL = error code (80h,81h,82h) (see #02775)
  90030. SeeAlso: #02754,#02755,MSR 00001000h
  90031. (Table 02754)
  90032. Call the XMS driver "Global disable A20" function with:
  90033. AH = 04h
  90034. Return: AX = status
  90035. 0001h success
  90036. 0000h failure
  90037. BL = error code (80h,81h,82h,94h) (see #02775)
  90038. SeeAlso: #02753,#02756,MSR 00001000h
  90039. (Table 02755)
  90040. Call the XMS driver "Local enable A20" function with:
  90041. AH = 05h
  90042. Return: AX = status
  90043. 0001h success
  90044. 0000h failure
  90045. BL = error code (80h,81h,82h) (see #02775)
  90046. Note: this function is used for direct access to extended memory
  90047. SeeAlso: #02753,#02756
  90048. (Table 02756)
  90049. Call the XMS driver "Local disable A20" function with:
  90050. AH = 06h
  90051. Return: AX = status
  90052. 0001h success
  90053. 0000h failure
  90054. BL = error code (80h,81h,82h,94h) (see #02775)
  90055. SeeAlso: #02754,#02755
  90056. (Table 02757)
  90057. Call the XMS driver "Query A20 state" function with:
  90058. AH = 07h
  90059. Return: AX = status
  90060. 0001h enabled
  90061. 0000h disabled
  90062. BL = error code (00h,80h,81h) (see #02775)
  90063. SeeAlso: #02750,#02758
  90064. (Table 02758)
  90065. Call the XMS driver "Query free extended memory" function with:
  90066. AH = 08h
  90067. BL = 00h (some implementations leave BL unchanged on success)
  90068. Return: AX = size of largest extended memory block in KB
  90069. DX = total extended memory in KB
  90070. BL = error code (00h,80h,81h,A0h) (see #02775)
  90071. Note: this function does not include the HMA in the returned memory sizes
  90072. SeeAlso: #02750,#02757,#02759,#02771
  90073. (Table 02759)
  90074. Call the XMS driver "Allocate extended memory block" function with:
  90075. AH = 09h
  90076. DX = Kbytes needed
  90077. Return: AX = status
  90078. 0001h success
  90079. DX = handle for memory block
  90080. 0000h failure
  90081. BL = error code (80h,81h,A0h) (see #02775)
  90082. SeeAlso: #02758,#02761,#02764,#02765,#02766,#02772
  90083. (Table 02760)
  90084. Call the XMS driver "Free extended memory block" function with:
  90085. AH = 0Ah
  90086. DX = handle of block to free
  90087. Return: AX = status
  90088. 0001h success
  90089. 0000h failure
  90090. BL = error code (80h,81h,A2h,ABh) (see #02775)
  90091. SeeAlso: #02759,#02772
  90092. (Table 02761)
  90093. Call the XMS driver "Move extended memory block" function with:
  90094. AH = 0Bh
  90095. DS:SI -> EMM structure (see #02776)
  90096. Return: AX = status
  90097. 0001h success
  90098. 0000h failure
  90099. BL = error code (80h-82h,A3h-A9h) (see #02775)
  90100. Note: if either handle in the EMM structure is 0000h, the corresponding
  90101. offset is considered to be an absolute segment:offset address in
  90102. directly addressable memory
  90103. SeeAlso: #02759,#02762
  90104. (Table 02762)
  90105. Call the XMS driver "Lock extended memory block" function with:
  90106. AH = 0Ch
  90107. DX = handle of block to lock
  90108. Return: AX = status
  90109. 0001h success
  90110. DX:BX = 32-bit physical address of locked block
  90111. 0000h failure
  90112. BL = error code (80h,81h,A2h,ACh,ADh) (see #02775)
  90113. Note: MS Windows 3.x rejects this function for handles allocated after
  90114. Windows started
  90115. SeeAlso: #02759,#02761,#02763,#02777
  90116. (Table 02763)
  90117. Call the XMS driver "Unlock extended memory block" function with:
  90118. AH = 0Dh
  90119. DX = handle of block to unlock
  90120. Return: AX = status
  90121. 0001h success
  90122. 0000h failure
  90123. BL = error code (80h,81h,A2h,AAh) (see #02775)
  90124. SeeAlso: #02762
  90125. (Table 02764)
  90126. Call the XMS driver "Get handle information" function with:
  90127. AH = 0Eh
  90128. DX = handle for which to get info
  90129. Return: AX = status
  90130. 0001h success
  90131. BH = block's lock count
  90132. BL = number of free handles left
  90133. DX = block size in KB
  90134. 0000h failure
  90135. BL = error code (80h,81h,A2h) (see #02775)
  90136. BUG: MS Windows 3.10 acts as though unallocated handles are in use
  90137. Note: MS Windows 3.00 has problems with this call
  90138. SeeAlso: #02750,#02759,#02773
  90139. (Table 02765)
  90140. Call the XMS driver "Reallocate extended memory block" function with:
  90141. AH = 0Fh
  90142. DX = handle of block
  90143. BX = new size of block in KB
  90144. Return: AX = status
  90145. 0001h success
  90146. 0000h failure
  90147. BL = error code (80h,81h,A0h-A2h,ABh) (see #02775)
  90148. SeeAlso: #02759,#02768
  90149. (Table 02766)
  90150. Call the XMS driver "Request upper memory block" function with:
  90151. AH = 10h
  90152. DX = size of block in paragraphs
  90153. Return: AX = status
  90154. 0001h success
  90155. BX = segment address of UMB
  90156. DX = actual size of block
  90157. 0000h failure
  90158. BL = error code (80h,B0h,B1h) (see #02775)
  90159. DX = largest available block
  90160. Notes: Upper Memory consists of non-EMS memory between 640K and 1024K
  90161. the XMS driver need not implement functions 10h through 12h to be
  90162. considered compliant with the standard
  90163. under DOS 5+, if CONFIG.SYS contains the line DOS=UMB, then no upper
  90164. memory blocks will be available for allocation because all blocks
  90165. have been grabbed by MS-DOS while booting
  90166. SeeAlso: #02759,#02767,#02785,INT 21/AH=58h"UMB"
  90167. (Table 02767)
  90168. Call the XMS driver "Release upper memory block" function with:
  90169. AH = 11h
  90170. DX = segment address of UMB to release
  90171. Return: AX = status
  90172. 0001h success
  90173. 0000h failure
  90174. BL = error code (80h,B2h) (see #02775)
  90175. Note: the XMS driver need not implement functions 10h through 12h to be
  90176. considered compliant with the standard
  90177. SeeAlso: #02760,#02766,#02768
  90178. (Table 02768)
  90179. Call the XMS v3.0+ driver "Reallocate upper memory block" function with:
  90180. AH = 12h
  90181. DX = segment address of UMB to resize
  90182. BX = new size of block in paragraphs
  90183. Return: AX = status
  90184. 0001h success
  90185. 0000h failure
  90186. BL = error code (80h,B0h,B2h) (see #02775)
  90187. DX = maximum available size (RM386)
  90188. Note: the XMS driver need not implement functions 10h through 12h to be
  90189. considered compliant with the standard
  90190. SeeAlso: #02765,#02766,#02767,#02783
  90191. (Table 02769)
  90192. Call the QEMM v5.11 "???" function with:
  90193. AH = 34h (QEMM 5.11 only, undocumented)
  90194. ???
  90195. Return: ???
  90196. SeeAlso: #02770
  90197. (Table 02770)
  90198. Call the QEMM v5.11 "???" function with:
  90199. AH = 44h (QEMM 5.11 only, undocumented)
  90200. ???
  90201. Return: ???
  90202. SeeAlso: #02769,#02783
  90203. (Table 02771)
  90204. Call the XMS v3.0 driver "Query free extended memory" function with:
  90205. AH = 88h
  90206. Return: EAX = largest block of extended memory, in KB
  90207. BL = status (00h,80h,81h,A0h) (see #02775)
  90208. ECX = physical address of highest byte of memory
  90209. (valid even on error codes 81h and A0h)
  90210. EDX = total Kbytes of extended memory (0 if status A0h)
  90211. BUG: HIMEM v3.03-3.07 crash on an 80286 machine if any of the 8Xh functions
  90212. are called
  90213. SeeAlso: #02758,#02772
  90214. (Table 02772)
  90215. Call the XMS v3.0 driver "Allocate any extended memory" function with:
  90216. AH = 89h
  90217. EDX = Kbytes needed
  90218. Return: AX = status
  90219. 0001h success
  90220. DX = handle for allocated block (free with AH=0Ah) (see #02760)
  90221. 0000h failure
  90222. BL = status (80h,81h,A0h,A1h,A2h) (see #02775)
  90223. SeeAlso: #02759,#02771
  90224. (Table 02773)
  90225. Call the XMS v3.0 driver "Get extended EMB handle information" function with:
  90226. AH = 8Eh
  90227. DX = handle
  90228. Return: AX = status
  90229. 0001h success
  90230. BH = block's lock count
  90231. CX = number of free handles left
  90232. EDX = block size in KB
  90233. 0000h failure
  90234. BL = status (80h,81h,A2h) (see #02775)
  90235. BUG: MS-DOS 6.0 HIMEM.SYS leaves CX unchanged
  90236. SeeAlso: #02764,#02772,#02774
  90237. (Table 02774)
  90238. Call the XMS v3.0 driver "Reallocate any extended memory block" function with:
  90239. AH = 8Fh
  90240. DX = unlocked memory block handle
  90241. EBX = new size in KB
  90242. Return: AX = status
  90243. 0001h success
  90244. 0000h failure
  90245. BL = status (80h,81h,A0h-A2h,ABh) (see #02775)
  90246. BUG: HIMEM v3.03-3.07 crash on an 80286 machine if any of the 8Xh functions
  90247. are called
  90248. SeeAlso: #02765,#02773
  90249. (Table 02775)
  90250. Values for XMS error code returned in BL:
  90251. 00h successful
  90252. 80h function not implemented
  90253. 81h Vdisk was detected
  90254. 82h an A20 error occurred
  90255. 8Eh a general driver error
  90256. 8Fh unrecoverable driver error
  90257. 90h HMA does not exist or is not managed by XMS provider
  90258. 91h HMA is already in use
  90259. 92h DX is less than the /HMAMIN= parameter
  90260. 93h HMA is not allocated
  90261. 94h A20 line still enabled
  90262. A0h all extended memory is allocated
  90263. A1h all available extended memory handles are allocated
  90264. A2h invalid handle
  90265. A3h source handle is invalid
  90266. A4h source offset is invalid
  90267. A5h destination handle is invalid
  90268. A6h destination offset is invalid
  90269. A7h length is invalid
  90270. A8h move has an invalid overlap
  90271. A9h parity error occurred
  90272. AAh block is not locked
  90273. ABh block is locked
  90274. ACh block lock count overflowed
  90275. ADh lock failed
  90276. B0h only a smaller UMB is available
  90277. B1h no UMB's are available
  90278. B2h UMB segment number is invalid
  90279. Format of EMM structure:
  90280. Offset Size Description (Table 02776)
  90281. 00h DWORD number of bytes to move (must be even)
  90282. 04h WORD source handle
  90283. 06h DWORD offset into source block
  90284. 0Ah WORD destination handle
  90285. 0Ch DWORD offset into destination block
  90286. Notes: if source and destination overlap, only forward moves (source base
  90287. less than destination base) are guaranteed to work properly
  90288. if either handle is zero, the corresponding offset is interpreted
  90289. as a real-mode address referring to memory directly addressable
  90290. by the processor
  90291. Format of XMS handle info [array]:
  90292. Offset Size Description (Table 02777)
  90293. 00h BYTE handle
  90294. 01h BYTE lock count
  90295. 02h DWORD handle size
  90296. 06h DWORD handle physical address (only valid if lock count nonzero)
  90297. SeeAlso: #02747,#02762
  90298. --------m-2F4310-----------------------------
  90299. INT 2F - Cloaking - REAL-MODE API
  90300. AX = 4310h
  90301. Return: ES:BX -> driver entry point (see #02749,#02778,#02779,#02780,#02781)
  90302. SeeAlso: AX=4310h"XMS"
  90303. (Table 02778)
  90304. Call the Cloaking v1.01 "Client Registration" function with:
  90305. AH = 7Eh
  90306. BX = subfunction
  90307. 0000h get client registration count
  90308. 0001h get client registration structures
  90309. ES:DI -> buffer for registration structures
  90310. Return: AX = status
  90311. 0000h failed
  90312. 0001h successful
  90313. ---subfunction 00h---
  90314. BX = size of client structure in bytes
  90315. CX = number of clients installed
  90316. ---subfunction 01h---
  90317. ES:DI buffer filled
  90318. SeeAlso: #02779,#02781,INT 2C/AX=0033h
  90319. (Table 02779)
  90320. Call the Cloaking v1.01 "Verify Cloaking Host" function with:
  90321. AH = 7Fh
  90322. Return: AX = status
  90323. 0000h failed
  90324. 0001h (successful) if installed
  90325. BX = version (0101h for v1.01)
  90326. CX = flags
  90327. bit 0: host is VCPI-based
  90328. DS:DX -> ASCIZ Cloaking host signature
  90329. "CLOAKING.EXE"0, followed by a far-call entry point to
  90330. uninstall host (see #02780) in Helix's CLOAKING.EXE
  90331. SeeAlso: #02778,#02781
  90332. Index: installation check;Cloaking host|installation check;CLOAKING.EXE
  90333. (Table 02780)
  90334. Call the CLOAKING.EXE "Uninstall Host" function with:
  90335. Return: AX = 4F4Bh ('OK') if successfully uninstalled protected-mode code
  90336. (Table 02781)
  90337. Call the Cloaking "Start Protected-Mode Client" function with:
  90338. AH = 82h
  90339. DX = XMS handle of locked block containing protected-mode code
  90340. CL = code size (00h 16-bit, else 32-bit)
  90341. ESI, EDI = parameters to pass to protected-mode code
  90342. Return: AX = status
  90343. nonzero success
  90344. 0000h failed
  90345. BL = error code (A2h,B0h) (see #02775)
  90346. Notes: this function calls a user initialization function at offset 0 in
  90347. the XMS memory block (see #02782)
  90348. supported by Helix's RM386 v6.00 and Helix's CLOAKING.EXE
  90349. SeeAlso: #02778,#02779
  90350. (Table 02782)
  90351. Values user initialization function is called with:
  90352. EBX = physical address of block's start
  90353. ESI = user data from function 82h call
  90354. EDI = user data from function 82h call
  90355. CS = code selector for XMS block at EBX (16-bit or 32-bit)
  90356. DS = data selector for XMS block, starting at EBX
  90357. ES = selector for V86 memory access to full real-mode 1088K
  90358. GS = selector for full 4G flat address space
  90359. SS:ESP -> stack provided by host
  90360. Return: via 32-bit FAR return
  90361. Note: the initialization function may call any protected-mode Cloaking
  90362. service; it should store the values of DS, ES, and GS for future
  90363. reference
  90364. --------m-2F4310-----------------------------
  90365. INT 2F - Helix Netroom RM386 v6.00 - XMS EXTENSIONS
  90366. AX = 4310h
  90367. Return: ES:BX -> driver entry point (see #02783,#02784,#02785,#02786)
  90368. Notes: HIMEM.SYS v2.77 chains to previous handler if AH is not 00h or 10h
  90369. HIMEM.SYS requires at least 256 bytes free stack space when calling
  90370. the driver entry point
  90371. SeeAlso: AX=4300h,AX=4310h"XMS",AX=4310h"Cloaking"
  90372. (Table 02783)
  90373. Call the Netroom RM386 v6.00 "Reallocate upper memory block" function with:
  90374. AH = 80h
  90375. DX = segment address of UMB to resize
  90376. BX = new size of block in paragraphs
  90377. Return: AX = status
  90378. 0001h success
  90379. 0000h failure
  90380. BL = error code (80h,B0h,B2h) (see #02775)
  90381. DX = maximum available size
  90382. Note: this function is identical to function 12h
  90383. SeeAlso: #02768,#02784
  90384. (Table 02784)
  90385. Call the Netroom RM386 v6.00 "re-enable HMA allocation" function with:
  90386. AH = 81h
  90387. Return: AX = 0001h (success)
  90388. SeeAlso: #02751,#02783,#02785
  90389. (Table 02785)
  90390. Call the Netroom RM386 v6.00 "Create new UMB entry" function with:
  90391. AH = 83h
  90392. BX = segment of high-memory block
  90393. DX = first page of start of block
  90394. CX = number of consecutive pages in block
  90395. DI = start of UMB in block
  90396. Return: AX = 0001h (success)
  90397. DI = segment of first high-DOS block
  90398. Note: the new UMB is not linked into the high-memory chain
  90399. SeeAlso: #02766,#02784,#02786
  90400. (Table 02786)
  90401. Call the Netroom RM386 v6.00 "Get all XMS handles info" function with:
  90402. AH = 84h
  90403. CX = size of buffer for handle info
  90404. ES:DI -> buffer for handle info (see #02777)
  90405. Return: AX = 0001h (success)
  90406. DX = current number of allocated XMS handles
  90407. SeeAlso: #02785,#02771
  90408. --------m-2F4310-----------------------------
  90409. INT 2F - NEC PC-9800 - XMZ - PRIVATE API
  90410. AX = 4310h
  90411. Return: ES:BX -> driver entry point (see #02787,#02788)
  90412. Program: XMZ is an XMS 2.x-compatible driver for the NEC PC-98 series written
  90413. by ZOBplus Hayami and available at
  90414. ftp:/ftp.tohoku.ac.jp/pub/msdos/Memory/xmz/
  90415. SeeAlso: AX=4300h,AX=4310h"XMS"
  90416. (Table 02787)
  90417. Call XMZ v1.02 "Get HMA Information" function with:
  90418. AH = FFh (XMZ only)
  90419. AL = 01h
  90420. Return: AX = 1 on success
  90421. DX = minimum HMA allocation size (/HMAMIN=)
  90422. BX = actual size of HMA allocation, if in use (i.e. the value in DX
  90423. when XMS function 1 was called)
  90424. SeeAlso: #02788
  90425. (Table 02788)
  90426. Call XMZ v1.02 "Get EMB Handle Information" function with:
  90427. AH = FFh (XMZ only)
  90428. AL = 02h
  90429. Return: AX = 1 on success
  90430. DX = number of EMB handles configured (/NUMHANDLES=)
  90431. BX = offset in XMZ's segment of the handle table (use segment of
  90432. entry point) (see #02789)
  90433. SeeAlso: #02787
  90434. Format of XMZ v1.02 EMB Handle structure:
  90435. Offset Size Description (Table 02789)
  90436. 00h BYTE flag byte
  90437. 04h unused handle slot
  90438. 02h in-use handle slot
  90439. 01h handle slot that represents a free block
  90440. 01h BYTE lock count
  90441. 02h WORD block start address (1K increments)
  90442. 04h WORD block length (1K increments)
  90443. SeeAlso: #02788
  90444. --------m-2F4320-----------------------------
  90445. INT 2F U - HIMEM.SYS - Mach 20 SUPPORT
  90446. AX = 4320h
  90447. ???
  90448. Return: ???
  90449. --------m-2F4330-----------------------------
  90450. INT 2F CU - HIMEM.SYS v2.77+ - GET EXTERNAL A20 HANDLER ADDRESS
  90451. AX = 4330h
  90452. Return: AL = 80h if external A20 handler provided
  90453. ES:BX -> external A20 handler (see #02790)
  90454. CL = A20 detection support
  90455. 00h handler is unable to report A20 state
  90456. 01h handler supports function 0002h to report A20 state
  90457. Note: HIMEM.SYS calls this function to allow an external program to provide
  90458. an A20 handler (i.e. to support a machine not supported by HIMEM
  90459. itself)
  90460. SeeAlso: AX=4308h,AX=4310h
  90461. (Table 02790)
  90462. Call parameters for external A20 handler are:
  90463. AX = function
  90464. 0000h disable A20
  90465. 0001h enable A20
  90466. 0002h get A20 state
  90467. Return: AX = status (functions 0000h and 0001h)
  90468. 0000h failure
  90469. 0001h successful
  90470. AX = A20 state (function 0002h)
  90471. 0000h disabled
  90472. 0001h enabled
  90473. Note: HIMEM.SYS only calls function 0002h if the returned CL indicated that
  90474. the handler supports the call
  90475. ----------2F43D6-----------------------------
  90476. INT 2F - Multiplex - ???
  90477. AX = 43D6h
  90478. Note: Central Point's CPBACKUP v9 calls this function with CX=07FFh and
  90479. DX=80D3h at startup
  90480. --------E-2F43E0BX0000-----------------------
  90481. INT 2F - DOS Protected Mode Services (DPMS) v1.0 - INSTALLATION CHECK
  90482. AX = 43E0h
  90483. BX = 0000h
  90484. CX = 4450h ('DP')
  90485. DX = 4D53h ('MS')
  90486. Return: AX = 0000h if installed
  90487. CF clear
  90488. ES:DI -> server structure (see #02791)
  90489. ES:BX -> registration structure (pre-NWDOS 7 beta spec) (see #02793)
  90490. Note: the DPMS 1.0 server included with the original release of Novell DOS
  90491. 7.0 supports both the beta and 1.0 specification, setting ES:BX even
  90492. if CX and DX are not as specified on entry (since the beta
  90493. specification did not use those registers). However, the DPMS 1.1
  90494. server included with the March 1994 update does not support the beta
  90495. specification
  90496. SeeAlso: AX=43E1h,AX=43E2h,AX=43E3h,INT 2F/AX=1687h
  90497. Index: signature strings;DPMS
  90498. Format of DPMS 1.0 server structure:
  90499. Offset Size Description (Table 02791)
  90500. 00h 4 BYTEs signature string "DPMS"
  90501. 04h 2 BYTEs DPMS version (major,minor)
  90502. 06h 8 BYTEs blank-padded server OEM name
  90503. 0Eh 2 BYTEs OEM server version (major,minor)
  90504. 10h WORD DPMS flags (see #02792)
  90505. 12h BYTE CPU type
  90506. (02h = 286, 03h = 386 or higher, higher values allowed)
  90507. Bitfields for DPMS flags:
  90508. Bit(s) Description (Table 02792)
  90509. 0 fast processor reset available (286 only)
  90510. 1 DPMS server is enabled
  90511. 2 memory is remapped
  90512. 3-15 reserved (undefined)
  90513. Format of beta DPMS registration structure:
  90514. Offset Size Description (Table 02793)
  90515. 00h DWORD real-mode API entry point (see #02795)
  90516. 04h DWORD 16-bit protected-mode API entry point (see #02795)
  90517. 08h 8 BYTEs reserved (0)
  90518. 10h 8 BYTEs blank-padded server OEM name
  90519. 18h WORD flags
  90520. bit 0: fast processor reset available (286 only)
  90521. bits 1-15 reserved (undefined)
  90522. 1Ah 2 BYTEs DPMS version (major,minor)
  90523. 1Ch BYTE CPU type (02h = 286, 03h = 386 or higher)
  90524. --------m-2F43E1-----------------------------
  90525. INT 2F - DOS Protected Mode Services (DPMS) v1.0 - REGISTER CLIENT
  90526. AX = 43E1h
  90527. CX = required protected-mode stack size in bytes
  90528. ES:DI -> DPMS client interface structure (see #02794)
  90529. Return: AX = 0000h if supported
  90530. CF clear
  90531. ES:DI buffer filled with API entry point code from offset 0Ah
  90532. Note: the client is allowed to copy the returned API code to any location in
  90533. memory, and need not keep the three code fields together
  90534. SeeAlso: AX=43E0h,AX=43E2h,AX=43E3h
  90535. Format of DPMS client interface structure:
  90536. Offset Size Description (Table 02794)
  90537. 00h WORD 0000h (structure version / flags)
  90538. 02h 8 BYTEs blank-padded client name
  90539. 0Ah 7 BYTEs real/virtual-86 mode API code (see #02795)
  90540. 11h BYTE space for return instruction
  90541. set to C3h for near return, CBh for far return
  90542. 12h 7 BYTEs 16-bit protected-mode API code (see #02795)
  90543. 19h BYTE space for return instruction
  90544. set to C3h for near return, CBh for far return
  90545. 1Ah 9 BYTEs 32-bit protected-mode API code (see #02795)
  90546. 23h BYTE space for return instruction
  90547. set to C3h for near return, CBh for far return
  90548. Note: the DPMS server fills the return opcode bytes with zeros and DPMS
  90549. requests will thus crash the system unless the application
  90550. explicitly sets them (some early versions set them to C3h by
  90551. default, but one should not rely on that)
  90552. (Table 02795)
  90553. Call DPMS entry point with:
  90554. AX = 0000h unregister client from server
  90555. ---control transfer functions---
  90556. AX = 0100h call protected-mode procedure
  90557. CX = number of words of stack to copy
  90558. ES:(E)DI -> callup/down register structure (see #02797)
  90559. Return: CF clear if successful
  90560. CF set on error
  90561. AX = error code (see #02796)
  90562. AX = 0101h call real-mode procedure (RETF return)
  90563. CX = number of words of stack to copy
  90564. ES:(E)DI -> callup/down register structure (see #02797)
  90565. Return: CF clear if successful
  90566. CF set on error
  90567. AX = error code (see #02796)
  90568. AX = 0102h call real-mode procedure (IRET return)
  90569. CX = number of words of stack to copy
  90570. ES:(E)DI -> callup/down register structure (see #02797)
  90571. Return: CF clear if successful
  90572. CF set on error
  90573. AX = error code (see #02796)
  90574. AX = 0103h call real-mode interrupt handler
  90575. BL = interrupt number
  90576. CX = number of words of stack to copy
  90577. ES:(E)DI -> callup/down register structure (see #02797)
  90578. Return: CF clear if successful
  90579. CF set on error
  90580. AX = error code (see #02796)
  90581. AX = 0104h register default protected mode procedure
  90582. ES:(E)DI -> default register structure (see #02798)
  90583. Return: CF clear if successful
  90584. CF set on error
  90585. AX = error code (see #02796)
  90586. AX = 0105h register default real-mode procedure (RETF return)
  90587. ES:(E)DI -> default register structure (see #02798)
  90588. Return: CF clear if successful
  90589. CF set on error
  90590. AX = error code (see #02796)
  90591. Note: the procedure will be called from 16-bit prot. mode
  90592. AX = 0106h register default real-mode procedure (IRET return)
  90593. ES:(E)DI -> default register structure (see #02798)
  90594. Return: CF clear if successful
  90595. CF set on error
  90596. AX = error code (see #02796)
  90597. Note: the procedure will be called from 16-bit prot. mode
  90598. AX = 0107h register default real-mode interrupt handler
  90599. BL = interrupt number
  90600. ES:(E)DI -> default register structure (see #02798)
  90601. Return: CF clear if successful
  90602. CF set on error
  90603. AX = error code (see #02796)
  90604. Note: the handler will be called from 16-bit protected mode
  90605. AX = 0108h register default real-mode procedure (RETF return)
  90606. ES:(E)DI -> default register structure (see #02798)
  90607. Return: CF clear if successful
  90608. CF set on error
  90609. AX = error code (see #02796)
  90610. Note: the procedure will be called from 32-bit prot. mode
  90611. AX = 0109h register default real-mode procedure (IRET return)
  90612. ES:(E)DI -> default register structure (see #02798)
  90613. Return: CF clear if successful
  90614. CF set on error
  90615. AX = error code (see #02796)
  90616. Note: the procedure will be called from 32-bit prot. mode
  90617. AX = 010Ah register default real-mode interrupt handler
  90618. BL = interrupt number
  90619. ES:(E)DI -> default register structure (see #02798)
  90620. Return: CF clear if successful
  90621. CF set on error
  90622. AX = error code (see #02796)
  90623. Note: the handler will be called from 32-bit protected mode
  90624. ---descriptor management---
  90625. AX = 0200h allocate descriptors
  90626. CX = number of descriptors to allocate
  90627. Return: CF clear if successful
  90628. AX = selector for first descriptor allocated
  90629. CF set on error
  90630. AX = error code (see #02796)
  90631. AX = 0201h free a descriptor
  90632. BX = selector for descriptor
  90633. Return: CF clear if successful
  90634. CF set on error
  90635. AX = error code (see #02796)
  90636. AX = 0202h create alias descriptor
  90637. BX = selector for descriptor to be aliased
  90638. Return: CF clear if successful
  90639. AX = alias descriptor
  90640. CF set on error
  90641. AX = error code (see #02796)
  90642. AX = 0203h build alias to real-mode segment
  90643. BX = descriptor
  90644. CX = real-mode segment
  90645. Return: CF clear if successful
  90646. CF set on error
  90647. AX = error code (see #02796)
  90648. AX = 0204h set descriptor base
  90649. BX = descriptor
  90650. CX:DX = base address
  90651. Return: CF clear if successful
  90652. CF set on error
  90653. AX = error code (see #02796)
  90654. AX = 0205h set descriptor limit
  90655. BX = descriptor
  90656. CX = limit
  90657. Return: CF clear if successful
  90658. CF set on error
  90659. AX = error code (see #02796)
  90660. AX = 0206h set descriptor type/attribute
  90661. BX = descriptor
  90662. CL = type
  90663. CH = attribute
  90664. Return: CF clear if successful
  90665. CF set on error
  90666. AX = error code (see #02796)
  90667. AX = 0207h get descriptor base
  90668. BX = descriptor
  90669. Return: CF clear if successful
  90670. CX:DX = base address
  90671. CF set on error
  90672. AX = error code (see #02796)
  90673. ---linear memory functions---
  90674. AX = 0300h get size of largest free block of memory
  90675. Return: CF clear if successful
  90676. BX:CX = size
  90677. CF set on error
  90678. AX = error code (see #02796)
  90679. AX = 0301h allocate block of extended memory
  90680. BX:CX = required size
  90681. Return: CF clear if successful
  90682. BX:CX = base address
  90683. SI:DI = handle
  90684. CF set on error
  90685. AX = error code (see #02796)
  90686. AX = 0302h free block of extended memory
  90687. SI:DI = handle
  90688. Return: CF clear if successful
  90689. CF set on error
  90690. AX = error code (see #02796)
  90691. AX = 0303h map linear memory
  90692. ES:(E)DI -> DDS (see #02799)
  90693. Return: CF clear if successful
  90694. BX:CX = base address
  90695. SI:DI = handle
  90696. CF set on error
  90697. AX = error code (see #02796)
  90698. AX = 0304h unmap linear memory
  90699. SI:DI = handle
  90700. Return: CF clear if successful
  90701. CF set on error
  90702. AX = error code (see #02796)
  90703. AX = 0305h get page table entries
  90704. ESI = linear address
  90705. (E)CX = count
  90706. ES:(E)DI -> buffer for page table entries
  90707. Return: CF clear if successful
  90708. ES:(E)DI buffer filled
  90709. CF set on error
  90710. AX = error code (see #02796)
  90711. AX = 0306h set page table entries
  90712. EBX = linear memory handle
  90713. ESI = linear address
  90714. (E)CX = count
  90715. ES:(E)DI -> buffer containing page table entries
  90716. Return: CF clear if successful
  90717. CF set on error
  90718. AX = error code (see #02796)
  90719. AX = 0307h get largest mappable block size
  90720. Return: CF clear if successful
  90721. BX:CX = size
  90722. CF set on error
  90723. AX = error code (see #02796)
  90724. ---miscellaneous---
  90725. AX = 0400h relocate segment to extended memory
  90726. ES:SI = base address
  90727. CX = limit
  90728. BL = type
  90729. BH = attribute
  90730. DX = selector or 0000h
  90731. Return: CF clear if successful
  90732. AX = selector
  90733. BX:CX = new base address
  90734. SI:DI = handle
  90735. CF set on error
  90736. AX = error code (see #02796)
  90737. Note: the beta DPMS specification, which is still supported by the Novell
  90738. DOS 7.0 DPMS host, only supported functions 0100h-0103h, 0200h-0207h,
  90739. 0300h-0304h, and 0400h
  90740. (Table 02796)
  90741. Values for DPMS error code:
  90742. 8000h general error
  90743. 8001h unsupported function
  90744. 8002h unable to switch to protected mode
  90745. 8004h no default stack defined
  90746. 8005h unknown client
  90747. 8010h resource unavailable
  90748. 8011h descriptor unavailable
  90749. 8012h linear memory unavailable
  90750. 8013h physical memory unavailable
  90751. 8021h invalid value
  90752. 8022h invalid selector
  90753. 8023h invalid handle
  90754. 8025h invalid linear address
  90755. Format of DPMS callup/down register structure:
  90756. Offset Size Description (Table 02797)
  90757. 00h DWORD EDI
  90758. 04h DWORD ESI
  90759. 08h DWORD EBP
  90760. 0Ch 4 BYTEs reserved (0) (ESP, may be used by DPMS server)
  90761. 10h DWORD EBX
  90762. 14h DWORD EDX
  90763. 18h DWORD ECX
  90764. 20h DWORD EAX
  90765. 24h DWORD EIP
  90766. 28h WORD CS
  90767. 2Ah 2 BYTEs reserved (0)
  90768. 2Ch DWORD EFLAGS
  90769. 30h DWORD ESP
  90770. 34h WORD SS
  90771. 36h 2 BYTEs reserved (0)
  90772. 38h WORD ES
  90773. 3Ah 2 BYTEs reserved (0)
  90774. 3Ch WORD DS
  90775. 3Eh 2 BYTEs reserved (0)
  90776. 40h WORD FS
  90777. 42h 2 BYTEs reserved (0)
  90778. 44h WORD GS
  90779. 46h 2 BYTEs reserved (0)
  90780. Format of DPMS default register structure:
  90781. Offset Size Description (Table 02798)
  90782. 00h DWORD EIP
  90783. 04h WORD CS
  90784. 06h 2 BYTEs reserved (0)
  90785. 08h WORD number of words to copy from stack to stack
  90786. 0Ah BYTE (call) 00h
  90787. (ret) nonzero if call could not be made
  90788. 0Bh BYTE reserved (may be used by some servers)
  90789. 0Ch DWORD ESP
  90790. 10h WORD SS
  90791. 12h 2 BYTEs reserved (0)
  90792. 14h WORD ES
  90793. 16h 2 BYTEs reserved (0)
  90794. 18h WORD DS
  90795. 1Ah 2 BYTEs reserved (0)
  90796. 1Ch WORD FS
  90797. 1Eh 2 BYTEs reserved (0)
  90798. 20h WORD GS
  90799. 22h 2 BYTEs reserved (0)
  90800. 24h 9 BYTEs API entry code (filled in by server)
  90801. Format of DPMS lock DDS:
  90802. Offset Size Description (Table 02799)
  90803. 00h DWORD total size in bytes
  90804. 04h DWORD offset
  90805. 08h WORD segment or selector
  90806. 0Ah WORD reserved
  90807. 0Ch WORD maximum number of physical blocks structure has space for
  90808. 0Eh WORD number of physical blocks listed
  90809. 10h DWORD physical address of first block
  90810. 14h DWORD size in bytes of first block
  90811. ...
  90812. --------m-2F43E2-----------------------------
  90813. INT 2F - DOS Protected Mode Services (DPMS) v1.0 - ENABLE/DISABLE DPMS
  90814. AX = 43E2h
  90815. BX = new state (0000h disable, 0001h enable)
  90816. Return: AX = 0000h if supported
  90817. Note: this function should normally be called only by system software
  90818. SeeAlso: AX=43E0h,AX=43E1h,AX=43E3h
  90819. --------m-2F43E3BX0000-----------------------
  90820. INT 2F C - DOS Protected Mode Services (DPMS) v1.0 - DPMS STARTUP BROADCAST
  90821. AX = 43E3h
  90822. BX = 0000h
  90823. CX = 4450h ('DP')
  90824. DX = 4D53h ('MS')
  90825. ES:DI -> DPMS server structure (see #02791)
  90826. Return: BX = status
  90827. bit 0 set if server is not allowed to load (e.g. some resident
  90828. program is incompatible)
  90829. Note: this callout is made while the potential server is running as a normal
  90830. real-mode DOS program, so there are no BIOS/DOS re-entrancy issues
  90831. SeeAlso: AX=43E0h,AX=43E4h
  90832. --------m-2F43E4BX0000-----------------------
  90833. INT 2F C - DOS Protected Mode Services (DPMS) v1.0 - DPMS EXIT BROADCAST
  90834. AX = 43E4h
  90835. BX = 0000h
  90836. CX = 4450h ('DP')
  90837. DX = 4D53h ('MS')
  90838. Return: BX = status
  90839. bit 0 set if server is not allowed to unload
  90840. Note: servers never unload until all clients unregister
  90841. SeeAlso: AX=43E0h,AX=43E3h
  90842. --------E-2F44-------------------------------
  90843. INT 2F U - DOS Extender support???
  90844. AH = 44h
  90845. AL = function (at least 0Bh, 15h, 17h)
  90846. ???
  90847. Return: ???
  90848. Note: called by Codeview for Windows
  90849. SeeAlso: AH=86h
  90850. --------G-2F4500-----------------------------
  90851. INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - INSTALLATION CHECK
  90852. AX = 4500h
  90853. Return: AL = installation status
  90854. 01h if PROF.COM installed
  90855. 02h if VPROD.386 installed
  90856. SeeAlso: AX=4501h,AX=4502h
  90857. --------G-2F4501-----------------------------
  90858. INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - SETUP PROFILER
  90859. AX = 4501h
  90860. BX = CSIPS buffer size in KB (first parameter for ProfSetup)
  90861. CX = output limit in KB (second parameter for ProfSetup)
  90862. Note: this call is not supported by PROF.COM
  90863. SeeAlso: AX=4502h,AX=4503h
  90864. --------G-2F4502-----------------------------
  90865. INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - SET SAMPLING RATE
  90866. AX = 4502h
  90867. BL = sampling rate for PROF.COM (0 < BL <= 13)
  90868. (01h = 8192/s, 04h = 1024/s, 08h = 32/s, 0Dh = 1/s)
  90869. CX = sampling rate for VPROD.386
  90870. Note: for PROF.COM, this programs the CMOS clock by setting BL+2 as the
  90871. low four bits of CMOS register 0Ah. The interruption rate is
  90872. 1 SHL (15 - BL) per second.
  90873. SeeAlso: AX=4501h,AX=4503h
  90874. --------G-2F4503-----------------------------
  90875. INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - START PROFILING
  90876. AX = 4503h
  90877. Notes: Profiling is also turned on by the key combinations
  90878. LeftShift + RightShift + Alt and LeftShift + RightShift + Ctrl
  90879. for PROF.COM, this call programs the CMOS clock by reading register
  90880. 0Ch, and setting bit 6 of register 0Bh. It then makes sure that IRQ8
  90881. is unmasked
  90882. SeeAlso: AX=4504h
  90883. --------G-2F4504-----------------------------
  90884. INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - STOP PROFILING
  90885. AX = 4504h
  90886. Notes: profiling is also turned off by the key combination
  90887. LeftShift + RightShift
  90888. for PROF.COM, this programs the CMOS clock by reading register 0Ch
  90889. and clearing bit 6 of register 0Bh. It then masks IRQ8.
  90890. SeeAlso: AX=4503h,AX=4505h,AX=4506h,AX=4507h
  90891. --------G-2F4505-----------------------------
  90892. INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - CLEAR PROFILING DATA
  90893. AX = 4505h
  90894. SeeAlso: AX=4503h,AX=4504h,AX=4506h
  90895. --------G-2F4506-----------------------------
  90896. INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - "ProfFlush"
  90897. AX = 4506h
  90898. SeeAlso: AX=4505h,AX=4507h
  90899. --------G-2F4507-----------------------------
  90900. INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - "ProfFinish"
  90901. AX = 4507h
  90902. Note: this call is essentially a "ProfStop" (AX=4504h) followed by
  90903. "ProfFlush" (AX=4506h)
  90904. SeeAlso: AX=4504h,AX=4505h,AX=4506h
  90905. --------G-2F4508-----------------------------
  90906. INT 2F U - Microsoft Profiler (PROF.COM/VPROD.386) - ALTERNATE SEGDEBUG IFACE
  90907. AX = 4508h
  90908. BX = ordinal (or 0000h)
  90909. CX = segment
  90910. DX = instance (or 0000h)
  90911. SI = type (or 0000h)
  90912. ES:DI -> ASCIZ module name
  90913. Notes: this call is an alternate entry to the profiler's SEGDEBUG
  90914. interface, but only to function 0, for notifying the profiler of
  90915. each new segment loaded. The SHOWHITS utility then examines the
  90916. profiler's output files (CSIPS.DAT and SEGENTRY.DAT) in conjunction
  90917. with symbol files to provide information in a useful form.
  90918. this call does not have a corresponding Windows function
  90919. SeeAlso: AX=4500h
  90920. --------D-2F4601-----------------------------
  90921. INT 2F CU - MS Windows WINOLDAP - SWITCHING ???
  90922. AX = 4601h
  90923. Return: ???
  90924. Note: the DOS 5+ kernel intercepts this function and copies the MCB
  90925. following the caller's PSP memory block into the DOS data segment;
  90926. in conjunction with AX=4602h, this intercept is used by DOS to
  90927. avoid corruption of the Windows real-mode heap's end sentinel
  90928. SeeAlso: AX=1700h,AX=4602h
  90929. --------D-2F4602-----------------------------
  90930. INT 2F CU - MS Windows WINOLDAP - SWITCHING ???
  90931. AX = 4602h
  90932. Return: ???
  90933. Note: the DOS 5+ kernel intercepts this function and copies the
  90934. previously-saved MCB from the DOS data segment into the MCB following
  90935. the caller's PSP memory block; in conjunction with AX=4601h, this
  90936. intercept is used by DOS to avoid corruption of the Windows real-mode
  90937. heap's end sentinel
  90938. SeeAlso: AX=1700h,AX=4601h
  90939. --------E-2F46-------------------------------
  90940. INT 2F U - Windows/286 DOS Extender
  90941. AH = 46h
  90942. AL = subfunction (03h,04h)
  90943. Return: ???
  90944. Note: these two subfunctions are called by MS Windows 3.0
  90945. --------v-2F4653CX0002-----------------------
  90946. INT 2F - F-PROT v1.x only - F-LOCK.EXE - API
  90947. AX = 4653h ('FS')
  90948. CX = 0002h
  90949. BX = subfunction
  90950. 0000h installation check
  90951. Return: AX = FFFFh
  90952. 0001h uninstall
  90953. Return: AX,BX,ES destroyed
  90954. 0002h disable (v1.08 and below only)
  90955. 0003h enable (v1.08 and below only)
  90956. Program: F-LOCK is part of the shareware F-PROT virus/trojan protection
  90957. package by Fridrik Skulason
  90958. SeeAlso: AX=4653h/CX=0003h,AX=CA00h,INT 21/AX=4BEEh
  90959. Index: installation check;F-LOCK|uninstall;F-LOCK
  90960. --------v-2F4653CX0003-----------------------
  90961. INT 2F - F-PROT v1.x only - F-XCHK.EXE - API
  90962. AX = 4653h ('FS')
  90963. CX = 0003h
  90964. BX = subfunction
  90965. 0000h installation check
  90966. Return: AX = FFFFh
  90967. 0001h uninstall
  90968. Return: AX,BX,ES destroyed
  90969. Program: F-XCHK is part of the shareware F-PROT virus/trojan protection
  90970. package by Fridrik Skulason
  90971. SeeAlso: AX=4653h/CX=0002h,AX=4653h/CX=0004h,AX=CA00h
  90972. Index: installation check;F-XCHK|uninstall;F-XCHK
  90973. --------v-2F4653CX0004-----------------------
  90974. INT 2F - F-PROT v1.x only - F-POPUP.EXE - API
  90975. AX = 4653h ('FS')
  90976. CX = 0004h
  90977. BX = subfunction
  90978. 0000h installation check
  90979. Return: AX = FFFFh
  90980. 0001h uninstall
  90981. Return: AX,BX,ES destroyed
  90982. 0002h disable (v1.08 and below only)
  90983. display message (v1.14+)
  90984. other registers: ???
  90985. 0003h enable (v1.08 and below only)
  90986. display message (v1.14+)
  90987. other registers: ???
  90988. Return: AX = key pressed by user
  90989. Program: F-POPUP is part of the shareware F-PROT virus/trojan protection
  90990. package by Fridrik Skulason
  90991. SeeAlso: AX=4653h/CX=0003h,AX=4653h/CX=0005h,AX=CA00h
  90992. Index: installation check;F-POPUP|uninstall;F-POPUP
  90993. --------v-2F4653CX0005-----------------------
  90994. INT 2F - F-PROT v1.x only - F-DLOCK.EXE - API
  90995. AX = 4653h ('FS')
  90996. CX = 0005h
  90997. BX = subfunction
  90998. 0000h installation check
  90999. Return: AX = FFFFh
  91000. 0001h uninstall
  91001. Return: AX,BX,ES destroyed
  91002. Program: F-DLOCK is part of the shareware F-PROT virus/trojan protection
  91003. package by Fridrik Skulason
  91004. SeeAlso: AX=4653h/CX=0004h,AX=CA00h
  91005. Index: installation check;F-DLOCK|uninstall;F-DLOCK
  91006. ----------2F4653CX0007-----------------------
  91007. INT 2F - F-PROT v2.x - VIRSTOP - ENABLE/DISABLE BOOTSECTOR READ CHECKING
  91008. AX = 4653h ('FS')
  91009. CX = 0007h
  91010. BL = new state of bootsector checking (01h = disabled)
  91011. Program: VIRSTOP is the resident virus-checker from Fridrik Skulason's F-PROT
  91012. virus/trojan protection package
  91013. ----------2F4653CX0008-----------------------
  91014. INT 2F - F-PROT v2.x - ???
  91015. AX = 4653h ('FS')
  91016. CX = 0008h
  91017. ???
  91018. Return: ???
  91019. Note: called by F-PROT v2.x VIRSTOP
  91020. ----------2F4653CX0008-----------------------
  91021. INT 2F - F-PROT v2.x - VIRSTOP - INSTALLATION CHECK
  91022. AX = 4653h ('FS')
  91023. CX = 0008h
  91024. Return: AX = 5346h if installed
  91025. BX = version???
  91026. DS:SI -> ASCIZ name of file containing virus signatures
  91027. DS:DI -> 80-byte buffer for ???
  91028. --------W-2F4680-----------------------------
  91029. INT 2F U - MS Windows v3.0 - INSTALLATION CHECK
  91030. AX = 4680h
  91031. Return: AX = result
  91032. 0000h MS Windows 3.0 running in real (/R) or standard (/S) mode,
  91033. or DOS 5 DOSSHELL active
  91034. nonzero no Windows, Windows prior to 3.0, or Windows3 in enhanced
  91035. mode
  91036. Note: Windows 3.1 finally provides an installation check which works in all
  91037. modes (see AX=160Ah)
  91038. SeeAlso: AX=1600h,AX=160Ah
  91039. ----------2F47-------------------------------
  91040. INT 2F U - ???
  91041. AH = 47h
  91042. ???
  91043. Return: ???
  91044. Note: reportedly called by Microsoft BASIC Compiler v7.0
  91045. --------K-2F4800-----------------------------
  91046. INT 2F - DOS 5+ DOSKEY - INSTALLATION CHECK
  91047. AX = 4800h
  91048. Return: AL = nonzero if installed
  91049. (DOS 5.0 and 6.0 return AX=AA02h, Novell DOS 7 returns AX=EDFFh)
  91050. ES = segment of DOSKEY resident portion
  91051. DX = ??? (Novell DOS only; 02E6h for shipped v0.01)
  91052. Notes: DOSKEY chains if AL is not 00h or 10h on entry
  91053. this function is supported by Novell DOS 7 DOSKEY
  91054. SeeAlso: AX=4800h"PCED",AX=4810h
  91055. --------K-2F4800-----------------------------
  91056. INT 2F - PCED v2.1 - INSTALLATION CHECK
  91057. AX = 4800h
  91058. Return: AX = AACDh if installed
  91059. ES = segment of PCED kernel (PCED has multiple code segments)
  91060. Program: PCED v2.1 is a command line editor/history/macro facility by
  91061. Cove Software. It is the commercial version of the freeware CED.
  91062. Notes: DOSKEY also responds to this call if installed, returning AX=AA02h.
  91063. unlike DOSKEY, PCED does *not* chain if AL contains an
  91064. unsupported function code. It IRETs with all registers intact.
  91065. --------K-2F4810-----------------------------
  91066. INT 2F - DOS 5+ DOSKEY, PCED v2.1 - READ INPUT LINE FROM CONSOLE
  91067. AX = 4810h
  91068. DS:DX -> line buffer (see #01344 at INT 21/AH=0Ah)
  91069. Return: AX = 0000h if successful
  91070. Notes: the first byte (length) of the buffer MUST be 80h, or MS-DOS's DOSKEY
  91071. chains to the previous handler; PCED and Novell DOS allow sizes
  91072. other than 80h
  91073. if the user's input is a macro name, no text is placed in the buffer
  91074. even though AX=0000h on return; the program must immediately issue
  91075. this call again to retrieve the expansion of the macro. Similarly,
  91076. if the user enters a special parameter such as $*, this call must
  91077. be repeated to retrieve the expansion; on the second call, DOSKEY
  91078. overwrites the macro name on the screen with its expansion.
  91079. unlike DOSKEY, PCED expands all macros on the first call, so it is
  91080. not necessary to make two calls; since the buffer is not empty on
  91081. return, DOSKEY-aware programs will not make the second call
  91082. DOSKEY chains if AL is not 00h or 10h on entry
  91083. this function is supported by Novell DOS 7 DOSKEY
  91084. SeeAlso: AX=4800h,INT 21/AH=0Ah
  91085. --------K-2F48C0-----------------------------
  91086. INT 2F - PCED v2.1 - PCED API
  91087. AX = 48C0h
  91088. DX = API function code
  91089. other registers as required by the specified function
  91090. Return: CF clear if successful
  91091. CF set on error
  91092. AX = PCED error code
  91093. other registers as appropriate for API function
  91094. Program: PCED v2.1 is a command line editor/history/macro facility by
  91095. Cove Software. It is the commercial version of the freeware CED.
  91096. Note: the full API information is available from Cove Software
  91097. SeeAlso: AX=4800h"PCED",AX=48C1h,AX=48C2h,AX=48C3h
  91098. --------U-2F48C1BL00-------------------------
  91099. INT 2F - PCED/VSTACK - INSTALLATION CHECK
  91100. AX = 48C1h
  91101. BL = 00h
  91102. Return: AX = 0000h if installed
  91103. BX = VSTACK resident segment
  91104. Program: VSTACK is a resident backscroll utility included as part of the PCED
  91105. package by Cove Software
  91106. Note: chains if BL <> 00h on entry
  91107. SeeAlso: AX=48C0h,AX=48C2h
  91108. --------U-2F48C2BL00-------------------------
  91109. INT 2F - PCED/ATTRIB - INSTALLATION CHECK
  91110. AX = 48C2h
  91111. BL = 00h
  91112. Return: AX = 0000h if installed
  91113. BX = ATTRIB resident segment
  91114. Program: ATTRIB is a resident file attribute changer included as part of the
  91115. PCED package by Cove Software
  91116. Note: chains if BL <> 00h on entry
  91117. SeeAlso: AX=48C0h,AX=48C1h,AX=48C3h
  91118. --------K-2F48C3BL00-------------------------
  91119. INT 2F - PCED/KEYDEF - INSTALLATION CHECK
  91120. AX = 48C3h
  91121. BL = 00h
  91122. Return: AX = 0000h if installed
  91123. BX = KEYDEF resident segment
  91124. Program: KEYDEF is a resident keyboard redefinition utility included as part
  91125. of the PCED package by Cove Software
  91126. Note: chains if BL <> 00h on entry
  91127. SeeAlso: AX=48C0h,AX=48C2h,AX=48C4h
  91128. --------U-2F48C4BL00-------------------------
  91129. INT 2F - PCED/FLIST - INSTALLATION CHECK
  91130. AX = 48C4h
  91131. BL = 00h
  91132. Return: AX = 0000h if installed
  91133. BX = FLIST resident segment
  91134. Program: FLIST is a resident filelist processor included as part of the PCED
  91135. package by Cove Software
  91136. Note: chains if BL <> 00h on entry
  91137. SeeAlso: AX=48C0h,AX=48C3h,AX=48C5h
  91138. --------U-2F48C5BL00-------------------------
  91139. INT 2F - PCED/ASSOC - INSTALLATION CHECK
  91140. AX = 48C5h
  91141. BL = 00h
  91142. Return: AX = 0000h if installed
  91143. BX = ASSOC resident segment
  91144. Program: ASSOC is a resident utility included as part of the PCED package which
  91145. associates files with executable programs based on their extensions
  91146. Note: chains if BL > 02h on entry
  91147. SeeAlso: AX=48C0h,AX=48C4h,AX=48C5h/BL=01h,AX=48C5h/BL=02h
  91148. --------U-2F48C5BL01-------------------------
  91149. INT 2F - PCED/ASSOC - GET VERSION
  91150. AX = 48C5h
  91151. BL = 01h
  91152. Return: AX = 0000h if installed
  91153. BX = binary ASSOC version (BL = major, BH = minor)
  91154. Note: chains if BL > 02h on entry
  91155. SeeAlso: AX=48C0h,AX=48C5h/BL=00h,AX=48C5h/BL=02h
  91156. --------U-2F48C5BL02-------------------------
  91157. INT 2F - PCED/ASSOC - ASSOCIATION TEST
  91158. AX = 48C5h
  91159. BL = 02h
  91160. DS:SI -> ASCIZ filename
  91161. Return: AX = status
  91162. 0000h if filename is unknown
  91163. 0001h if there is an association defined for the file
  91164. BX destroyed
  91165. Program: ASSOC is a resident utility included as part of the PCED package which
  91166. associates files with executable programs based on their extensions
  91167. Note: chains if BL > 02h on entry
  91168. SeeAlso: AX=48C0h,AX=48C5h/BL=00h,AX=48C5h/BL=01h
  91169. ----------2F49-------------------------------
  91170. INT 2F U - ???
  91171. AH = 49h
  91172. ???
  91173. Return: ???
  91174. Note: reportedly called by DOS 5.0 installation
  91175. --------D-2F4A00CX0000-----------------------
  91176. INT 2F CU - DOS 5+ - FLOPPY-DISK LOGICAL DRIVE CHANGE NOTIFICATION
  91177. AX = 4A00h
  91178. CX = 0000h
  91179. DH = new drive number
  91180. DL = current drive number
  91181. Return: CX = FFFFh to skip "Insert diskette for drive X:" message
  91182. Note: called by MS-DOS 5.0+ IO.SYS just before displaying the message
  91183. "Insert diskette for drive X:" on single-floppy systems
  91184. --------D-2F4A01-----------------------------
  91185. INT 2F - DOS 5+ - QUERY FREE HMA SPACE
  91186. AX = 4A01h
  91187. Return: BX = number of bytes available in HMA (0000h if DOS not using HMA)
  91188. ES:DI -> start of available HMA area (FFFFh:FFFFh if not using HMA)
  91189. Notes: called by Windows 3.1 DOSX.EXE
  91190. supported by Novell DOS 7
  91191. SeeAlso: AX=4310h,AX=4A02h
  91192. --------D-2F4A02-----------------------------
  91193. INT 2F - DOS 5+ - ALLOCATE HMA SPACE
  91194. AX = 4A02h
  91195. BX = number of bytes
  91196. Return: ES:DI -> start of allocated HMA block or FFFFh:FFFFh
  91197. BX = number of bytes actually allocated (rounded up to next paragraph
  91198. for DOS 5.0 and 6.0)
  91199. Notes: this call is not valid unless DOS is loaded in the HMA (DOS=HIGH)
  91200. called by Windows 3.1 DOSX.EXE
  91201. supported by Novell DOS 7
  91202. SeeAlso: AX=4A01h,AX=4A03h
  91203. --------D-2F4A03-----------------------------
  91204. INT 2F U - Windows95 - DOS KERNEL - (DE)ALLOCATE HMA MEMORY BLOCK
  91205. AX = 4A03h
  91206. CX = segment of block's owner???
  91207. DL = subfunction
  91208. 00h allocate block
  91209. BX = number of bytes
  91210. Return: DI=FFFFh if unable to allocate
  91211. ES:DI -> allocated block
  91212. 01h resize block
  91213. ES:DI -> previously-allocated block
  91214. BX = new size in bytes (must be less than original size???)
  91215. Return: DI=FFFFh if unable to allocate
  91216. ES:DI -> reallocated block
  91217. Note: the contents of the original block are NOT copied
  91218. 02h free block???
  91219. ES:DI -> block to be freed
  91220. Note: in MS-DOS 7.x, function 4A02h is implemented by calling this function
  91221. with DL=00h
  91222. SeeAlso: AX=4A02h
  91223. --------D-2F4A04-----------------------------
  91224. INT 2F U - Windows95 - DOS KERNEL - GET START OF HMA MEMORY CHAIN
  91225. AX = 4A04h
  91226. Return: AX = 0000h if function supported
  91227. ES:DI -> first HMA memory control block (see #02800)
  91228. Format of Windows95 HMA memory control block:
  91229. Offset Size Description (Table 02800)
  91230. 00h 2 BYTEs signature "MS" (4Dh 53h)
  91231. 02h WORD segment of owner (or segment at which to address block???)
  91232. 0000h = free
  91233. 0001h = DOS???
  91234. FF33h = IO.SYS
  91235. FFFFh = MSDOS.SYS
  91236. 04h WORD size of memory block (not including this header)
  91237. 06h WORD offset of next memory block in segment FFFFh, or 0000h if last
  91238. 08h 8 BYTEs unused (explicitly set to 0 for MS-DOS 7.10)
  91239. --------T-2F4A05-----------------------------
  91240. INT 2F U - DOS 5+ DOSSHELL - TASK SWITCHING API???
  91241. AX = 4A05h
  91242. SI = function
  91243. 0000h reset???
  91244. 0001h ???
  91245. ES:BP -> 80-byte buffer containing ???
  91246. 0002h ???
  91247. 0003h ???
  91248. 0004h ???
  91249. BL = ???
  91250. 0005h ???
  91251. 0006h get ???
  91252. Return: ES:SI -> ???
  91253. 0007h get ???
  91254. Return: AX = ???
  91255. 0008h get ???
  91256. Return: DX:AX -> ??? (internal control data of some kind)
  91257. 0009h get ???
  91258. Return: ES:SI -> ??? (apparently identical to function 0006h)
  91259. 000Ah ???
  91260. BL = length of buffer
  91261. ES:BP -> buffer containing ???
  91262. 000Bh get ???
  91263. Return: AX = ???
  91264. 000Ch ???
  91265. BL = ???
  91266. Return: if BL nonzero on entry
  91267. DX:AX -> ???
  91268. if BL = 00h on entry
  91269. ES:SI -> ???
  91270. Notes: DOSSHELL chains to the previous handler if SI is not one of the values
  91271. listed above
  91272. the DOSSWAP.EXE module calls functions 03h,04h,05h,07h,08h,09h,0Ch
  91273. the Windows 3.1 DSWAP.EXE and WSWAP.EXE task switchers use these calls
  91274. SeeAlso: AX=4B01h
  91275. --------D-2F4A06-----------------------------
  91276. INT 2F CU - DOS 5+ - DOS SUPERVISOR "REBOOT PANEL" - ADJUST MEMORY SIZE
  91277. AX = 4A06h
  91278. DX = segment following last byte of conventional memory
  91279. Return: DX = segment following last byte of memory available for use by DOS
  91280. Desc: used to override the default memory size when booting diskless
  91281. workstations
  91282. Notes: called by MS-DOS 5+ IO.SYS startup code if the signature "RPL" is
  91283. present three bytes beyond the INT 2F handler; this call overrides
  91284. the value returned by INT 12
  91285. hooked by RPL code at the top of memory to protect itself from being
  91286. overwritten; DOS builds a memory block with owner = 0008h and name
  91287. "RPL" which must be freed by the RPL code when it is done
  91288. SeeAlso: INT 12"BIOS",INT 18"BOOT HOOK"
  91289. --------N-2F4A07-----------------------------
  91290. INT 2F U - RESERVED FOR PROTMAN SUPPORT
  91291. AX = 4A07h
  91292. ???
  91293. Return: ???
  91294. --------c-2F4A10BX0000-----------------------
  91295. INT 2F - SMARTDRV v4.00+ - INSTALLATION CHECK AND HIT RATIOS
  91296. AX = 4A10h
  91297. BX = 0000h
  91298. CX = EBABh (v4.1+; see Note)
  91299. Return: AX = BABEh if installed
  91300. DX:BX = cache hits
  91301. DI:SI = cache misses
  91302. CX = number of dirty cache elements
  91303. BP = version in BCD (4.10 = 0410h)
  91304. Notes: most of the SMARTDRV API, including this call, is supported by
  91305. PC-Cache v8.0 and recent versions of the Norton Caches
  91306. if DBLSPACE.BIN is installed but SMARTDRV has not yet been installed,
  91307. then calls of this function with CX<>EBABh on entry cause
  91308. DBLSPACE.BIN to display the error message
  91309. "Cannot run SMARTDrive 4.0 with DoubleSpace" and abort the caller
  91310. with INT 21/AX=4C00h
  91311. SMARTDRV v3.x had a completely different API using IOCTL calls, which
  91312. was also supported by the Norton Caches
  91313. SeeAlso: AX=4A10h/BX=0001h,AX=4A10h/BX=0004h,AX=4A10h/BX=0005h
  91314. SeeAlso: AX=4A10h/BX=0007h,AX=4A10h/BX=1234h,AX=4A11h/BX=0000h
  91315. SeeAlso: INT 21/AX=4402h"SMARTDRV",INT 21/AX=4403h"SMARTDRV"
  91316. --------c-2F4A10BX0000-----------------------
  91317. INT 2F U - Novell NWCACHE - ???
  91318. AX = 4A10h
  91319. BX = 0000h
  91320. CX = 0EDCh ('EDC' = Novell European Development Center)
  91321. Return: ???
  91322. SeeAlso: AX=4A10h/BX=0001h"NWCACHE"
  91323. --------c-2F4A10BX0001-----------------------
  91324. INT 2F - SMARTDRV v4.00+ - FLUSH BUFFERS (COMMIT CACHE)
  91325. AX = 4A10h
  91326. BX = 0001h
  91327. Note: this function is also supported by PC-Cache v8.0.
  91328. SeeAlso: AX=4A10h/BX=0000h,AX=4A10h/BX=0002h,INT 21/AH=0Dh
  91329. --------c-2F4A10BX0001-----------------------
  91330. INT 2F U - Novell NWCACHE - ???
  91331. AX = 4A10h
  91332. BX = 0001h
  91333. CX = 0EDCh ('EDC' = Novell European Development Center)
  91334. Return: ???
  91335. SeeAlso: AX=4A10h/BX=0000h"NWCACHE"
  91336. --------c-2F4A10BX0002-----------------------
  91337. INT 2F - SMARTDRV v4.00+ - RESET CACHE
  91338. AX = 4A10h
  91339. BX = 0002h
  91340. Note: this function is also supported by PC-Cache v8.0.
  91341. SeeAlso: AX=4A10h/BX=0000h,AX=4A10h/BX=0001h
  91342. --------c-2F4A10BX0003-----------------------
  91343. INT 2F - SMARTDRV v4.00+ - STATUS
  91344. AX = 4A10h
  91345. BX = 0003h
  91346. BP = drive number (0=A, 1=B, etc.)
  91347. DL = subfunction
  91348. 00h only get information
  91349. 01h turn on read cache
  91350. 02h turn off read cache
  91351. 03h turn on write cache
  91352. 04h turn off write cache
  91353. ---NWCACHE---
  91354. 05h ???
  91355. 06h ???
  91356. Return: AX = BABEh if OK
  91357. DL = status (see #02801)
  91358. DL = FFh if drive does not exist
  91359. Notes: If the read cache is off, reads will not be cached, but writes will
  91360. continue to be cached if the write-cache is enabled.
  91361. this function is also supported by PC-Cache v8.0.
  91362. SeeAlso: AX=4A10h/BX=0000h
  91363. Bitfields for SMARTDRV status:
  91364. Bit(s) Description (Table 02801)
  91365. 7 not cached
  91366. 6 write-through (not write-cached)
  91367. 0-5 real drive number (0=A, 1=B...)
  91368. Note: the "real" drive number is always set to 00h for RAM disks and to 3Fh
  91369. for CD-ROMs; unfortunately, the latter means that an uncached CD-ROM
  91370. has status FFh, just as a nonexistent drive does
  91371. --------c-2F4A10BX0004-----------------------
  91372. INT 2F - SMARTDRV v4.00+ - GET CACHE SIZE
  91373. AX = 4A10h
  91374. BX = 0004h
  91375. Return: AX = size in elements of full-sized cache
  91376. BX = current size in elements
  91377. CX = size of one element in bytes
  91378. DX = number of elements under Windows
  91379. Note: this function is also supported by PC-Cache v8.0.
  91380. SeeAlso: AX=4A10h/BX=0000h,AX=4A10h/BX=0003h,AX=4A10h/BX=0005h
  91381. --------c-2F4A10BX0005-----------------------
  91382. INT 2F - SMARTDRV v4.00+ - GET DOUBLE-BUFFER STATUS
  91383. AX = 4A10h
  91384. BX = 0005h
  91385. BP = drive number (0=A, 1=B...)
  91386. Return: AX = BABEh if double-buffered
  91387. ES:DI -> 16-byte array of status bytes for fixed disks (see #02802)
  91388. SeeAlso: AX=4A10h/BX=0000h,AX=4A10h/BX=0003h,AX=4A10h/BX=0006h
  91389. (Table 02802)
  91390. Values for SMARTDRV status byte:
  91391. 00h state unknown
  91392. FFh drive double-buffered
  91393. else not double-buffered
  91394. --------c-2F4A10BX0006-----------------------
  91395. INT 2F CU - SMARTDRV v4.00+ - CHECK IF DRIVE CACHEABLE
  91396. AX = 4A10h
  91397. BX = 0006h
  91398. CL = drive number (01h = A:)
  91399. Return: AX = 0006h if drive should not be cached by SMARTDRV
  91400. Note: called by SMARTDRV at startup to determine whether it should cache
  91401. a particular drive
  91402. SeeAlso: AX=4A10h/BX=0000h
  91403. --------c-2F4A10BX0007-----------------------
  91404. INT 2F - SMARTDRV v4.00+ - GET DEVICE DRIVER FOR DRIVE
  91405. AX = 4A10h
  91406. BX = 0007h
  91407. BP = drive number (00h=A:)
  91408. Return: DL = unit number within device driver
  91409. ES:DI -> device driver header for drive (see #01646)
  91410. Note: this function is also supported by PC-Cache v8.0.
  91411. this call is reported to always return the driver header of the
  91412. standard block driver (A:-C:+) for SmartDrive v5.00 from MS-DOS 6.2
  91413. SeeAlso: AX=4A10h/BX=0000h,AX=4A11h/BX=0003h,AX=4A11h/BX=0004h
  91414. --------c-2F4A10BX0008-----------------------
  91415. INT 2F - SMARTDRV v4.20+ - GET/SET FLUSH BEFORE PROMPT, CD-ROM SUPPORT
  91416. AX = 4A10h
  91417. BX = 0008h
  91418. DL = subfunction
  91419. 00h set
  91420. DH = new states
  91421. bit 0: flush before prompt
  91422. bits 1-7 reserved (0)
  91423. 01h get
  91424. Return: DH = status flags
  91425. bit 0: (v4.2+) flush before prompt
  91426. bit 1: (v5.0+) CD-ROM caching support installed
  91427. Note: v4.2 was an interim release to fix problems in the SMARTDRV included
  91428. with MS-DOS 6.00; v5.00 is included with MS-DOS 6.2
  91429. --------c-2F4A10BX000A-----------------------
  91430. INT 2F - SMARTDRV v4.00+ - GET ELEMENT STATUS TABLE
  91431. AX = 4A10h
  91432. BX = 000Ah
  91433. Return: ES:BX -> information pointer table (see #02803)
  91434. Note: this function is also supported by PC-Cache v8.0.
  91435. SeeAlso: AX=4A10h/BX=0000h
  91436. Format of SMARTDRV information pointer table:
  91437. Offset Size Description (Table 02803)
  91438. 00h WORD offset of ??? byte/word array (byte if elements < 2000h bytes)
  91439. 02h WORD offset of dirty flag byte/word array (byte if elts < 2000h)
  91440. each byte/word is a bit string of the dirty sectors in element
  91441. 04h WORD offset of word array containing low halves of unique
  91442. identifiers for the corresponding element's contents
  91443. 06h WORD offset of word array containing high halves of unique
  91444. identifiers for the corresponding element's contents
  91445. 08h WORD offset of WORD containing current number of elements in cache
  91446. --------c-2F4A10BX1234-----------------------
  91447. INT 2F - SMARTDRV v4.00+ - SIGNAL SERIOUS ERROR
  91448. AX = 4A10h
  91449. BX = 1234h
  91450. Desc: this function pops up a message box saying that a serious error
  91451. occurred and to hit R to retry, then waits for the keypress
  91452. Note: this function is also supported by PC-Cache v8.0.
  91453. SeeAlso: AX=4A10h/BX=0000h
  91454. --------k-2F4A11BX0000-----------------------
  91455. INT 2F - DBLSPACE.BIN - "GetVersion" - INSTALLATION CHECK
  91456. AX = 4A11h
  91457. BX = 0000h
  91458. Return: AX = 0000h (successful)
  91459. BX = 444Dh ("DM")
  91460. CL = first drive letter used by DBLSPACE (41h ['A'] = A:)
  91461. CH = number of drive letters used by DBLSPACE
  91462. DX = internal DBLSPACE.BIN version number (bits 14-0)
  91463. bit 15 set if DBLSPACE.BIN has not yet been relocated to final
  91464. position in memory (i.e. DBLSPACE.SYS /MOVE)
  91465. Program: DBLSPACE.BIN is the resident driver for DoubleSpace, the
  91466. disk-compression software bundled with MS-DOS 6.0 and 6.20
  91467. Notes: this function is also supported by the version of SuperStor bundled
  91468. with IBM DOS 6.x and "preloading" versions of Stacker
  91469. the complete DBLSPACE.BIN API is still supported by MS-DOS 6.22's
  91470. DRVSPACE.BIN
  91471. SeeAlso: AX=4A11h/BX=0001h,AX=4A11h/BX=0002h,AX=4A11h/BX=0003h
  91472. SeeAlso: AX=4A11h/BX=0005h,AX=4A11h/BX=0007h,AX=4A11h/BX=FFFFh
  91473. SeeAlso: INT 21/AX=4404h"DBLSPACE"
  91474. --------k-2F4A11BX0001-----------------------
  91475. INT 2F - DBLSPACE.BIN - "GetDriveMapping" - GET DRIVE MAPPING
  91476. AX = 4A11h
  91477. BX = 0001h
  91478. DL = drive number (0=A:)
  91479. Return: AX = status (see also #02804)
  91480. 0000h successful
  91481. if DL was compressed drive,
  91482. BL = host drive (bit 7 set if drive is compressed)
  91483. else if DL was host drive,
  91484. BL = compressed drive
  91485. else
  91486. BL = specified drive (if available for DoubleSpace)
  91487. BH = DoubleSpace sequence number
  91488. other error code (0101h) (see #02804)
  91489. apparently never returned for the MS-DOS 6.2 DoubleSpace
  91490. Note: the compressed volume file for the specified compressed drive is
  91491. host:\DBLSPACE.sequence
  91492. SeeAlso: AX=4A11h/BX=0000h
  91493. (Table 02804)
  91494. Values for DBLSPACE function status:
  91495. 0000h successful
  91496. 0100h bad function
  91497. 0101h invalid drive
  91498. 0102h not a compressed drive
  91499. 0103h drive already swapped
  91500. 0104h drive not swapped
  91501. SeeAlso: #02806
  91502. --------k-2F4A11BX0002-----------------------
  91503. INT 2F - DBLSPACE.BIN - "Swap Drive" - SWAP DRIVE LETTERS OF CVF AND HOST DRIVE
  91504. AX = 4A11h
  91505. BX = 0002h
  91506. DL = drive number (0=A:) of compressed drive to swap with its host
  91507. Return: AX = status (0000h,0101h,0102h,0103h) (see #02804)
  91508. Note: this function is intended for use by DBLSPACE.EXE only
  91509. SeeAlso: AX=4A11h/BX=0000h
  91510. --------k-2F4A11BX0003-----------------------
  91511. INT 2F - DBLSPACE.BIN - "DSGetEntryPoints" - GET DEVICE DRIVER ENTRY POINTS
  91512. AX = 4A11h
  91513. BX = 0003h
  91514. CL = drive number (0=A:) of compressed drive
  91515. Return: CL = FFh on error (not compressed drive)
  91516. CL <> FFh driver unit number of host drive
  91517. ES:SI -> device driver's strategy routine
  91518. ES:DI -> device driver's interrupt routine
  91519. BX destroyed
  91520. Note: in conjunction with subfunction 0004h, this call allows disk caches
  91521. like SMARTDRV to apply a device driver wrapper to DoubleSpaced
  91522. drives just like SMARTDRV applies to regular block devices
  91523. SeeAlso: AX=4A10h/BX=0007h,AX=4A11h/BX=0000h,AX=4A11h/BX=0004h
  91524. --------k-2F4A11BX0004-----------------------
  91525. INT 2F - DBLSPACE.BIN - "DSSetEntryPoints" - SET DEVICE DRIVER ENTRY POINTS
  91526. AX = 4A11h
  91527. BX = 0004h
  91528. CL = drive number (0=A:) of compressed drive
  91529. DL = unit number for new driver entry points
  91530. DH = 00h
  91531. ES:SI -> device driver strategy routine to call for drive
  91532. ES:DI -> device driver interrupt routine to call for drive
  91533. Return: CL = FFh on error (not a compressed drive)
  91534. BX destroyed
  91535. Program: DBLSPACE.BIN is the resident driver for DoubleSpace, the
  91536. disk-compression software bundled with MS-DOS 6.0
  91537. Note: in conjunction with subfunction 0003h, this call allows disk caches
  91538. like SMARTDRV to apply a device driver wrapper to DoubleSpaced
  91539. drives just like SMARTDRV applies to regular block devices
  91540. SeeAlso: AX=4A10h/BX=0007h,AX=4A11h/BX=0000h,AX=4A11h/BX=0003h
  91541. --------k-2F4A11BX0005-----------------------
  91542. INT 2F - DBLSPACE.BIN - "ActivateDrive" - MOUNT COMPRESSED DRIVE
  91543. AX = 4A11h
  91544. BX = 0005h
  91545. DL = drive number (0=A:) to assign to new drive
  91546. ES:SI -> activation record (see #02805)
  91547. Return: status returned in activation record (see #02806)
  91548. SeeAlso: AX=4A11h/BX=0000h,AX=4A11h/BX=0006h
  91549. Format of DBLSPACE activation record:
  91550. Offset Size Description (Table 02805)
  91551. 00h 2 BYTEs signature "MD" (4Dh 44h)
  91552. 02h BYTE 4Dh ('M') mount command
  91553. 03h BYTE error code (set to FFh before calling) (see #02806)
  91554. 04h BYTE host drive number (0=A:)
  91555. 05h ??? DISK_UNIT structure (not documented)
  91556. (Table 02806)
  91557. Values for DBLSPACE Mount error code:
  91558. 00h successful
  91559. 01h drive letter not available for DoubleSpace
  91560. 02h drive letter already in use
  91561. 03h no more disk units (increase MaxRemovableDrives in .INI)
  91562. 09h CVF too fragmented
  91563. SeeAlso: #02805,#02804
  91564. --------k-2F4A11BX0006-----------------------
  91565. INT 2F - DBLSPACE.BIN - "DeactivateDrive" - UNMOUNT COMPRESSED DRIVE
  91566. AX = 4A11h
  91567. BX = 0006h
  91568. DL = drive number (0=A:) to unmount
  91569. Return: AX = status (0000h,0102h) (see #02804)
  91570. SeeAlso: AX=4A11h/BX=0000h,AX=4A11h/BX=0005h
  91571. --------k-2F4A11BX0007-----------------------
  91572. INT 2F - DBLSPACE.BIN - "GetDriveSpace" - GET SPACE AVAIL ON COMPRESSED DRIVE
  91573. AX = 4A11h
  91574. BX = 0007h
  91575. DL = compressed drive number (0=A:)
  91576. Return: AX = status (0000h,0102h) (see also #02804)
  91577. 0000h successful
  91578. DS:SI -> free space record (see #02807)
  91579. Program: DBLSPACE.BIN is the resident driver for DoubleSpace, the
  91580. disk-compression software bundled with MS-DOS 6.0
  91581. SeeAlso: AX=4A11h/BX=0000h,AX=4A11h/BX=0008h
  91582. Format of DBLSPACE free space record:
  91583. Offset Size Description (Table 02807)
  91584. 00h DWORD total number of sectors in drive's sector heap
  91585. 04h DWORD number of free sectors in drive's sector heap
  91586. --------k-2F4A11BX0008-----------------------
  91587. INT 2F - DBLSPACE.BIN - "GetFileFragmentSpace" - GET SIZE OF FRAGMENT HEAP
  91588. AX = 4A11h
  91589. BX = 0008h
  91590. DL = compressed drive number (0=A:)
  91591. Return: AX = status (0000h,0102h) (see also #02804)
  91592. 0000h successful
  91593. BX = maximum entries in File Fragment heap
  91594. CX = available entries in File Fragment heap
  91595. SeeAlso: AX=4A11h/BX=0000h,AX=4A11h/BX=0007h,AX=4A11h/BX=0009h
  91596. --------k-2F4A11BX0009-----------------------
  91597. INT 2F - DBLSPACE.BIN - "GetExtraInfo" - DETERMINE NUMBER OF DISK_UNIT STRUCTS
  91598. AX = 4A11h
  91599. BX = 0009h
  91600. DL = compressed drive number (0=A:)
  91601. Return: AX = status (see also #02804)
  91602. 0000h successful
  91603. CL = number of DISK_UNIT structures allocated
  91604. (see AX=4A11h/BX=0005h)
  91605. CH = DoubleGuard enabled-checks bitflags in bits 6-0 (DOS 6.2)
  91606. Note: the DoubleGuard checks are enabled or disabled as a block by the
  91607. DoubleGuard= line in DBLSPACE.INI; they may be individually set with
  91608. the CheckSum= line.
  91609. SeeAlso: AX=4A11h/BX=0000h,AX=4A11h/BX=0008h
  91610. --------k-2F4A11BX000A-----------------------
  91611. INT 2F - DBLSPACE.BIN v6.2 - SET AUTOMOUNT DRIVES
  91612. AX = 4A11h
  91613. BX = 000Ah
  91614. CX:DX = bitmask of drives on which to enable AutoMount
  91615. (DX bit 0 = A:, CX bit 0 = P:, etc.)
  91616. Return: AX = 0000h if supported
  91617. CX:DX = old mask or 0000h:0000h on error
  91618. BX destroyed
  91619. SeeAlso: AX=4A11h/BX=000Bh
  91620. --------k-2F4A11BX000B-----------------------
  91621. INT 2F - DBLSPACE.BIN v6.2 - GET AUTOMOUNT DRIVES
  91622. AX = 4A11h
  91623. BX = 000Bh
  91624. Return: AX = 0000h if supported
  91625. CX:DX = mask of drives with AutoMount enabled
  91626. 0000h:0000h on error
  91627. BX destroyed
  91628. SeeAlso: AX=4A11h/BX=000Ah
  91629. --------k-2F4A11BXFFFE-----------------------
  91630. INT 2F U - DBLSPACE.BIN - RELOCATE
  91631. AX = 4A11h
  91632. BX = FFFEh
  91633. ES = segment to which to relocate DBLSPACE.BIN
  91634. Return: ???
  91635. Notes: called by DBLSPACE.SYS to relocate DBLSPACE.BIN to its final position
  91636. in memory
  91637. this function also unhooks and discards the code providing this
  91638. function and AX=4A11h/BX=FFFFh
  91639. this function is also supported by the version of SuperStor bundled
  91640. with IBM DOS 6.x and "preloading" versions of Stacker
  91641. SeeAlso: AX=4A11h/BX=FFFFh
  91642. --------k-2F4A11BXFFFF-----------------------
  91643. INT 2F U - DBLSPACE.BIN - GET RELOCATION SIZE
  91644. AX = 4A11h
  91645. BX = FFFFh
  91646. Return: AX = number of paragraphs needed by DBLSPACE.BIN
  91647. Note: used by DBLSPACE.SYS to relocate the DBLSPACE driver to its final
  91648. position in memory
  91649. this function is also supported by the version of SuperStor bundled
  91650. with IBM DOS 6.x and "preloading" versions of Stacker
  91651. SeeAlso: AX=4A11h/BX=0000h,AX=4A11h/BX=FFFEh
  91652. --------k-2F4A12CX4D52-----------------------
  91653. INT 2F - Microsoft Realtime Compression Interface (MRCI) - RAM-BASED SERVER
  91654. AX = 4A12h
  91655. CX = 4D52h ("MR")
  91656. DX = 4349h ("CI")
  91657. Return: CX = 4943h ("IC") if installed
  91658. DX = 524Dh ("RM") if installed
  91659. ES:DI -> MRCINFO structure (see #00725 at INT 1A/AX=B001h)
  91660. Note: this call is functionally identical to INT 1A/AX=B001h, but should be
  91661. called first, as the latter call is used for the first, ROM-based
  91662. MRCI server, while this call is used for RAM-based servers which
  91663. may be partially or entirely replacing a prior server
  91664. SeeAlso: AX=4A12h/CX=5354h,INT 1A/AX=B001h
  91665. --------k-2F4A12CX5354-----------------------
  91666. INT 2F - Stacker 4 LZS Compression Interface (LZSAPI)
  91667. AX = 4A12h
  91668. CX = 5354h ("ST")
  91669. DX = 4143h ("AC")
  91670. Return: AX = 4F4Bh ("OK") if installed
  91671. CX = 7374h ("st") if installed
  91672. DX = 6163h ("ac") if installed
  91673. ES:DI -> entry point in LZSAPI server (usually, driver
  91674. STACKER.COM) containing far address of an actual
  91675. LZSINFO structure (see #02808)
  91676. SeeAlso: AX=4A12h/CX=4D52h,INT 25/AX=CDCDh
  91677. Format of LZSINFO structure:
  91678. Offset Size Description (Table 02808)
  91679. 00h 6 BYTEs signature "LZSAPI"
  91680. 06h WORD server version (200 (0C8h) for Stacker 4 and Stacker Anywhere)
  91681. 08h 4 BYTEs vendor signature
  91682. "STAC" = Stac Electronics, Inc.
  91683. 0Ch 6 BYTEs ???
  91684. 12h WORD bit flags: server status/capabilities (see #02809)
  91685. 14h DWORD -> Stacker 3.X-compatible compression procedure
  91686. 18h DWORD -> Stacker 3.X-compatible decompression procedure
  91687. 1Ch 4 BYTEs reserved (always set to 0)
  91688. 20h DWORD -> incremental Stacker 3.x-compatible compression procedure
  91689. (see #02810)
  91690. 24h 4 BYTEs ???
  91691. 28h DWORD -> incremental Stacker 3.x-compatible decompression procedure
  91692. (see #02811)
  91693. 2Ch 4 BYTES ???
  91694. 30h DWORD -> new (Stacker 4) compression procedure
  91695. 34h 4 BYTEs ???
  91696. 38h DWORD -> new (Stacker 4) decompression procedure
  91697. Notes: Stacker 4 usally keeps two different data-compression algorithms in
  91698. memory (preferably in XMA):
  91699. 1) new (Stacker 4) data compression algorithm (4K LZ77 with hashing
  91700. and static Huffman encoding), and
  91701. 2) old (Stacker 3.x-compatible) one (2K LZ77 with hashing), which
  91702. is used to work with STACVOL files created under older
  91703. versions of Stacker.
  91704. Bitfields for LZSAPI capabilities:
  91705. Bit(s) Description (Table 02809)
  91706. 0 ???
  91707. 1 busy/error flag
  91708. 2-10 ???
  91709. 11 maximum compressor/decompressor presented
  91710. (Table 02810)
  91711. Call Stacker 3.x-style non-incremental functions with:
  91712. STACK: DWORD return address for compress/decompress procedure
  91713. WORD compression algorithm parameters (see #02812)
  91714. WORD size of destination buffer (in bytes)
  91715. DWORD address of destination buffer
  91716. WORD size of source buffer (in bytes)
  91717. DWORD address of source buffer
  91718. Return: (compression/decompression procedure)
  91719. AX = size of resulting data in destination buffer
  91720. 0000h if error (either destination buffer too small or error in
  91721. compressed data)
  91722. (Table 02811)
  91723. Call Stacker 4-style incremental procedures with:
  91724. STACK: DWORD return address for compr./decompr. procedure
  91725. DWORD address of LZSSWAP structure (see #02813)
  91726. if 0000:0000, procedure uses non-incremental technique
  91727. WORD compression algorithm parameters (see #02812)
  91728. WORD size of destination buffer (in bytes)
  91729. DWORD address of destination buffer
  91730. WORD size of source buffer (in bytes)
  91731. DWORD address of source buffer
  91732. (Table 02812)
  91733. Values for Compression algorithm parameters:
  91734. Value Compression level (/P=xx parameter)
  91735. 07F9h 1
  91736. 0621h 2
  91737. 0625h 3
  91738. 0665h 4
  91739. 0669h 5
  91740. 06E9h 6
  91741. 06EDh 7
  91742. 07D1h 8
  91743. 07D9h 9
  91744. Format of LZSSWAP structure:
  91745. Offset Size Description (Table 02813)
  91746. 00h 2 BYTEs signature "CS"
  91747. 02h 6 BYTEs reserved
  91748. 08h DWORD address of destination buffer swapping procedure
  91749. 0Ch DWORD address of stack swapping procedure
  91750. --------k-2F4A13-----------------------------
  91751. INT 2F U - DBLSPACE.BIN - GET ??? ENTRY POINTS
  91752. AX = 4A13h
  91753. Return: AX = 134Ah if supported
  91754. ES:BX -> entry point record (see #02814)
  91755. SeeAlso: AX=4A11h/BX=0000h
  91756. Format of DBLSPACE entry point record:
  91757. Offset Size Description (Table 02814)
  91758. 00h DWORD pointer to FAR function for ???
  91759. 04h 5 BYTEs FAR JUMP instruction to ???
  91760. ----------2F4A15BX0000-----------------------
  91761. INT 2F - MS EMM386.EXE v4.46+ - INSTALL I/O VIRTUALIZATION HANDLER
  91762. AX = 4A15h
  91763. BX = 0000h (function number)
  91764. DX = starting I/O address
  91765. EDX high word = ending I/O address
  91766. CX = number of ports to trap
  91767. DS:SI -> I/O dispatch table (see #02815)
  91768. DI = size of client's code and data (size of DS segment which must be
  91769. made available to I/O dispatch function in protected mode)
  91770. Return: CF clear if successful
  91771. CF set on error
  91772. Notes: this interface is only available in virtual-86 mode; the I/O handlers
  91773. will be called in protected mode
  91774. only ports 0100h-FFFFh may be trapped; EMM386 reserved ports 0000h-
  91775. 00FFh
  91776. Format of EMM386 I/O dispatch table [array]:
  91777. Offset Size Description (Table 02815)
  91778. 00h WORD I/O port number
  91779. 02h WORD offset of I/O handler for port (see #02816)
  91780. (Table 02816)
  91781. Values EMM386 I/O dispatch function is called with:
  91782. CX = Ring0 code selector for I/O handler's segment
  91783. DS = Ring0 data selector for I/O handler's segment (alias of CS)
  91784. EDX = faulting I/O address
  91785. ECX = direction (00000008h for byte output, 00000000h for byte input)
  91786. (reportedly 00h for byte/word input, 04h for byte/word output
  91787. under DOS 6.22 EMM386)
  91788. EAX = data in/out
  91789. Return: (via FAR RET)
  91790. CF clear if I/O access successfully virtualized
  91791. CF set if access not virtualized (default handler will be called to
  91792. perform the I/O)
  91793. BUG: 32-bit I/O on trapped ports hangs the DOS 6.22 EMM386
  91794. SeeAlso: #02815
  91795. --------D-2F4A16-----------------------------
  91796. INT 2F U - Windows95 - OPEN BOOT LOG
  91797. AX = 4A16h
  91798. Return: AX = status
  91799. 0000h successful
  91800. FFFFh boot log file already open
  91801. else DOS error code
  91802. BX destroyed
  91803. SeeAlso: AX=4A17h,AX=4A18h
  91804. --------D-2F4A17-----------------------------
  91805. INT 2F U - Windows95 - WRITE TO BOOT LOG
  91806. AX = 4A17h
  91807. CX = number of bytes to write
  91808. DS:DX -> message to write (must include CR-LF if it is desired)
  91809. Return: AX = status
  91810. 0000h successful
  91811. FFFFh boot log file not open
  91812. else DOS error code
  91813. Note: calls the code for INT 2F/AX=4A21h after writing to the file
  91814. SeeAlso: AX=4A17h,AX=4A18h,AX=4A21h
  91815. --------D-2F4A18-----------------------------
  91816. INT 2F U - Windows95 - CLOSE BOOT LOG
  91817. AX = 4A18h
  91818. Return: AX = status
  91819. 0000h successful
  91820. FFFFh boot log file not open
  91821. else DOS error code from closing file
  91822. BX destroyed
  91823. SeeAlso: AX=4A16h,AX=4A17h
  91824. --------D-2F4A21-----------------------------
  91825. INT 2F U - Windows95 - ???
  91826. AX = 4A21h
  91827. Return: AX destroyed
  91828. Note: calls INT 21/AX=4404h"IOCTL" with a five-byte buffer containing "MDF??"
  91829. SeeAlso: AX=4A17h
  91830. --------D-2F4A31-----------------------------
  91831. INT 2F U - Windows95 - ???
  91832. AX = 4A31h
  91833. CL = new value for ???
  91834. DS:SI -> BYTE to be set to CL
  91835. Return: nothing
  91836. --------D-2F4A32-----------------------------
  91837. INT 2F U - Windows95 - PATCH ???
  91838. AX = 4A32h
  91839. BL = subfunction
  91840. 00h get ???
  91841. Return: AX = flag: subfunction 04h has been used (0000h/FFFFh)
  91842. DX = ??? (0000h/?)
  91843. 01h patch ??? in IO.SYS (segment 0070h)
  91844. 02h unpatch ??? in IO.SYS
  91845. 03h ???
  91846. 04h set ???, then do subfunction 01h
  91847. 05h unset ???, then do subfunction 02h
  91848. else
  91849. Return: nothing
  91850. --------D-2F4A33-----------------------------
  91851. INT 2F - Windows95 - CHECK MS-DOS VERSION 7
  91852. AX = 4A33h
  91853. Return: AX = 0000h for MS-DOS 7.00+
  91854. (officially) BX,DX,SI,DS may be destroyed
  91855. (undoc) DS:DX -> ASCIZ primary shell executable name
  91856. (undoc) DS:SI -> CONFIG.SYS SHELL= command line (counted string)
  91857. (undoc) BH = ??? (0000h)
  91858. (undoc) BL = ??? (0000h)
  91859. AX nonzero (usually 4A33h) if MS-DOS 6- or other DOS
  91860. SeeAlso: AX=1611h,INT 21/AH=30h
  91861. --------N-2F4B-------------------------------
  91862. INT 2F - LAN Manager 2.0 DOS Enh NETWKSTA.EXE - NETWORK WORKSTATION REDIRECTOR
  91863. AH = 4Bh
  91864. ???
  91865. Return: ???
  91866. Note: LAN Manager enhanced mode adds features beyond the standard redirector
  91867. file/printer services
  91868. SeeAlso: AX=118Ah,AX=4100h,AH=42h
  91869. --------T-2F4B01-----------------------------
  91870. INT 2F C - DOS 5+ TASK SWITCHER - BUILD CALLOUT CHAIN
  91871. AX = 4B01h
  91872. CX:DX -> task switcher entry point (see #02819)
  91873. ES:BX = 0000h:0000h
  91874. Return: ES:BX -> callback info structure (see #02817) or 0000h:0000h
  91875. Notes: called by the task switcher
  91876. this function is hooked by clients which require notification of task
  91877. switcher activities; the call must first be passed on to the prior
  91878. handler with registers unchanged using a simulated interrupt. On
  91879. return, the client must build a callback info structure and store
  91880. the returned ES:BX in the "next" field, then return the address of
  91881. its own callback info structure.
  91882. a client program must add itself to the notification chain if it
  91883. provides services to other programs; before terminating, it must
  91884. remove itself from the chain by calling the task switcher's entry
  91885. point with AX=0005h (see #02819)
  91886. the task switcher entry point should not be saved, as it is subject to
  91887. change and will be provided on any notification call
  91888. the Windows 3.1 Standard Mode supports this API
  91889. SeeAlso: AX=160Bh,AX=4B02h
  91890. Format of task switcher callback info structure:
  91891. Offset Size Description (Table 02817)
  91892. 00h DWORD pointer to next callback info structure
  91893. 04h DWORD pointer to notification function (see #02818)
  91894. 08h DWORD reserved
  91895. 0Ch DWORD address of zero-terminated list of API info structures
  91896. (see #02821)
  91897. (Table 02818)
  91898. Values task switcher notification function is called with:
  91899. AX = function
  91900. 0000h switcher initialization
  91901. Return: AX = status
  91902. 0000h if OK to load
  91903. nonzero to abort task switcher
  91904. 0001h query suspend
  91905. BX = session ID
  91906. Return: AX = status
  91907. 0000h if OK to switch session
  91908. 0001h if not
  91909. 0002h suspend session
  91910. BX = session ID
  91911. interrupts disabled
  91912. Return: AX = 0000h if OK to switch session
  91913. = 0001h if not
  91914. 0003h activate session
  91915. BX = session ID
  91916. CX = session status flags
  91917. bit 0: set if first activation of session
  91918. bits 1-15: reserved (0)
  91919. interrupts disabled
  91920. Return: AX = 0000h
  91921. 0004h session active
  91922. BX = session ID
  91923. CX = session status flags
  91924. bit 0: set if first activation of session
  91925. bits 1-15: reserved (0)
  91926. Return: AX = 0000h
  91927. 0005h create session
  91928. BX = session ID
  91929. Return: AX = 0000h if OK to create session
  91930. = 0001h if not
  91931. 0006h destroy session
  91932. BX = session ID
  91933. Return: AX = 0000h
  91934. 0007h switcher termination
  91935. BX = flags
  91936. bit 0: set if calling switcher is only switcher loaded
  91937. bits 1-15: reserved (0)
  91938. Return: AX = 0000h
  91939. ES:DI -> task switcher entry point (see #02819)
  91940. Notes: function 0000h is generally called by the program which controls or
  91941. invokes the task switcher, rather than by the task switcher itself;
  91942. the entry point supplied to this function is not necessarily the
  91943. entry point to the task switcher itself, and may be 0000h:0000h. If
  91944. any client indicates that loading is not possible, all clients will
  91945. be called with function 0007h; thus it is possible for a client to
  91946. receive a termination notice without a corresponding initialization
  91947. notice.
  91948. except for functions 0002h and 0003h, the notification handler is
  91949. called with interrupts enabled and may make any INT 21h function
  91950. call; interrupts must not be enabled in functions 0002h and 0003h
  91951. function 0007h may be called with ES:DI = 0000h:0000h if the entry
  91952. point is no longer valid
  91953. --------T-2F4B02BX0000-----------------------
  91954. INT 2F - DOS 5+ TASK SWITCHER - INSTALLATION CHECK
  91955. AX = 4B02h
  91956. BX = 0000h
  91957. ES:DI = 0000h:0000h
  91958. Return: ES:DI = 0000h:0000h if task switcher not loaded
  91959. ES:DI -> task switcher entry point (see #02819) if loaded
  91960. AX = 0000h
  91961. Notes: the returned entry point is that for the most-recently loaded task
  91962. switcher; the entry points for prior task switchers may be determined
  91963. with the "get version" call (see #02819)
  91964. this function is supported by PC Tools v8+ CPTASK
  91965. SeeAlso: AX=4A05h,AX=4B03h
  91966. (Table 02819)
  91967. Call task switcher entry point with:
  91968. AX = 0000h get version
  91969. Return: CF clear if successful
  91970. AX = 0000h
  91971. ES:BX -> task switcher version struct (see #02820)
  91972. CF set if unsupported function
  91973. AX = 0001h test memory region
  91974. ES:DI -> first byte to be tested
  91975. CX = size of region to test
  91976. Return: CF clear if successful
  91977. AX = memory type of tested region
  91978. 0000h global
  91979. 0001h global and local
  91980. 0002h local (replaced on session switch)
  91981. CF set if unsupported function
  91982. AX = 0002h suspend switcher
  91983. ES:DI -> new task switcher's entry point
  91984. Return: CF clear if successful
  91985. AX = state
  91986. 0000h switcher has been suspended
  91987. 0001h switcher not suspended, new switcher must
  91988. abort
  91989. 0002h switcher not suspended, but new switcher
  91990. may run anyway
  91991. CF set if unsupported function
  91992. AX = 0003h resume switcher
  91993. ES:DI -> new task switcher's entry point
  91994. Return: CF clear if successful
  91995. AX = 0000h
  91996. CF set if unsupported function
  91997. AX = 0004h hook notification chain
  91998. ES:DI -> callback info structure to be added to chain
  91999. (see #02817)
  92000. Return: CF clear if successful
  92001. AX = 0000h
  92002. CF set if unsupported function
  92003. AX = 0005h unhook notification chain
  92004. ES:DI -> callback info structure to be removed from chain
  92005. (see #02817)
  92006. Return: CF clear if successful
  92007. AX = 0000h
  92008. CF set if unsupported function
  92009. AX = 0006h query API support
  92010. BX = asynchronous API identifier
  92011. Return: CF clear if successful
  92012. AX = 0000h
  92013. ES:BX -> API info structure (see #02821) for the
  92014. client which provides the highest
  92015. level of API support
  92016. CF set if unsupported function
  92017. Format of task switcher version structure:
  92018. Offset Size Description (Table 02820)
  92019. 00h WORD major version of supported protocol (current protocol is 1.0)
  92020. 02h WORD minor version of supported protocol
  92021. 04h WORD major version of task switcher
  92022. 06h WORD minor version of task switcher
  92023. 08h WORD task switcher ID (see AX=4B03h)
  92024. 0Ah WORD operation flags
  92025. bit 0: set if task switcher disabled
  92026. bits 1-15: reserved (0)
  92027. 0Ch DWORD pointer to ASCIZ task switcher name
  92028. ("MS-DOS Shell Task Switcher" for DOSSHELL task switcher)
  92029. 10h DWORD pointer to previous task switcher's entry point or 0000h:0000h
  92030. Format of API info structure:
  92031. Offset Size Description (Table 02821)
  92032. 00h WORD size of structure in bytes (000Ah)
  92033. 02h WORD API identifier
  92034. 0001h NetBIOS
  92035. 0002h 802.2
  92036. 0003h TCP/IP
  92037. 0004h LAN Manager named pipes
  92038. 0005h Novell NetWare IPX
  92039. 04h WORD major version \ of highest version of API for which the support
  92040. 06h WORD minor version / level specified in the next field is provided
  92041. 08h WORD support level
  92042. 0001h minimal support
  92043. 0002h API-level support
  92044. 0003h switcher compatibility
  92045. 0004h seamless compatibility
  92046. --------T-2F4B03-----------------------------
  92047. INT 2F - DOS 5+ TASK SWITCHER - ALLOCATE SWITCHER ID
  92048. AX = 4B03h
  92049. ES:DI -> task switcher entry point (see #02819)
  92050. Return: AX = 0000h
  92051. BX = switcher ID (0001h-000Fh), or 0000h if no more available
  92052. Notes: if a task switcher has determined that it is the first to be loaded, it
  92053. must allocate an identifier for itself and provide this function to
  92054. all subsequent task switchers; if it is not the first to be loaded,
  92055. it must call this function to allocate an ID. The switcher ID is
  92056. used as the high four bits of all session identifiers to ensure
  92057. unique session IDs.
  92058. if no more switcher IDs are available, the new task switcher making the
  92059. call must terminate or disable itself
  92060. the task switcher providing the identifiers may call the new task
  92061. switcher's entry point as needed
  92062. this call is available from within DOSSHELL even if the task switcher
  92063. is not installed
  92064. this function is supported by PC Tools v8+ CPTASK, but appears to
  92065. always return an ID of 0000h
  92066. SeeAlso: AX=4B02h,AX=4B04h
  92067. --------T-2F4B04-----------------------------
  92068. INT 2F - DOS 5+ TASK SWITCHER - FREE SWITCHER ID
  92069. AX = 4B04h
  92070. BX = switcher ID
  92071. ES:DI -> task switcher entry point (see #02819)
  92072. Return: AX = 0000h
  92073. BX = status
  92074. 0000h successful
  92075. other error (invalid ID or ID not allocated)
  92076. Notes: called by a task switcher when it exits, unless it was the first loaded
  92077. and is providing the support for AX=4B03h and AX=4B04h
  92078. the task switcher providing the identifiers may call the terminating
  92079. task switcher's entry point as needed
  92080. this call is available from within DOSSHELL even if the task switcher
  92081. is not installed
  92082. this call is supported by PC Tools v8+ CPTASK, but appears to return
  92083. sucessfully no matter which ID is given
  92084. SeeAlso: AX=4B02h,AX=4B03h
  92085. --------T-2F4B05-----------------------------
  92086. INT 2F C - DOS 5+ TASK SWITCHER - IDENTIFY INSTANCE DATA
  92087. AX = 4B05h
  92088. ES:BX = 0000h:0000h
  92089. CX:DX -> task switcher entry point (see #02819)
  92090. Return: ES:BX -> startup info structure (see #02822) or 0000h:0000h
  92091. Notes: called by task switcher
  92092. clients with instance data should hook this call, pass it through to
  92093. the previous handler with unchanged registers using a simulated
  92094. interrupt. On return, the client should create a startup info
  92095. structure (see #02822), store the returned ES:BX in the "next"
  92096. field, and return the address of the created structure in ES:BX
  92097. all MS-DOS function calls are available from within this call
  92098. this function is supported by Novell DOS 7 DOSKEY, with structure v3.00
  92099. SeeAlso: AX=1605h,AX=160Bh,AX=4B02h
  92100. Format of task switcher startup info structure:
  92101. Offset Size Description (Table 02822)
  92102. 00h 2 BYTEs major, minor version of info structure (03h,00h)
  92103. 02h DWORD pointer to next startup info structure or 0000h:0000h
  92104. 06h DWORD 0000h:0000h (ignored)
  92105. 0Ah DWORD ignored
  92106. 0Eh DWORD pointer to instance data records (see #02823)
  92107. Format of one instance data record in array:
  92108. Offset Size Description (Table 02823)
  92109. 00h DWORD address of instance data (end of array if 0000h:0000h)
  92110. 04h WORD size of instance data
  92111. --------W-2F4B06-----------------------------
  92112. INT 2F - MS Windows - WIN.COM - GET ??? POINTER TO WIN.COM
  92113. AX = 4B06h
  92114. Return: AX = 0000h
  92115. ES:BX -> ??? function in WIN.COM
  92116. Note: the entry point is called with
  92117. AX = 0001h or 0003h
  92118. BX = ???
  92119. SeeAlso: AX=4B80h
  92120. --------W-2F4B20-----------------------------
  92121. INT 2F - MS Windows 3+ - WIN.COM - SET PROGRAM TO EXECUTE ON EXIT
  92122. AX = 4B20h
  92123. Return: AX = 0000h if successful
  92124. DX:CX -> 256-byte buffer for pathname and commandline (see #02824)
  92125. Notes: when the Windows function ExitWindows is called with an exit code of
  92126. 44h, WIN.COM executes the program specified in the returned buffer
  92127. and then restarts Windows
  92128. the returned address is a real-mode segment:offset value
  92129. SeeAlso: AX=4B21h
  92130. Format of WIN.COM buffer:
  92131. Offset Size Description (Table 02824)
  92132. 00h 128 BYTEs commandline for program (count byte, command tail, 0Dh)
  92133. 80h 128 BYTEs ASCIZ pathname of program to execute
  92134. Note: the order above is for a Windows95 DOS box; it may be reversed under
  92135. Windows 3.x
  92136. --------W-2F4B21-----------------------------
  92137. INT 2F - Windows95 - WIN.COM - GET NESTING LEVEL
  92138. AX = 4B21h
  92139. Return: AH = 00h if WIN.COM already active
  92140. AL = number of instances of WIN.COM in memory
  92141. SeeAlso: AX=4B20h
  92142. --------K-2F4B52-----------------------------
  92143. INT 2F - KeyRus v7.3 - API
  92144. AX = 4B52h ('KR')
  92145. BL = function number
  92146. 00h installation check
  92147. Return: AL = 82h if installed
  92148. BH = major version number
  92149. BL = minor version number
  92150. ES destroyed
  92151. 01h get driver status
  92152. Return: AL??? = current status (see #02825)
  92153. 02h set driver state
  92154. AL = new driver state (see #02825)
  92155. 03h blank screen (if blanking enabled when TSR was loaded)
  92156. 04h unblank screen
  92157. 4Ch switch to English keyboard mode
  92158. 90h switch to Russian keyboard mode
  92159. Return:
  92160. Bitfields for KeyRus driver status:
  92161. Bit(s) Description (Table 02825)
  92162. 1-0 language mode
  92163. 00 Latin
  92164. 01 Russian
  92165. 10 Alternative
  92166. 11 unused
  92167. 2 allow character loading (if disabled, use ROM fonts)
  92168. 3 English keyboard support
  92169. 7-4 used internally (read-only)
  92170. --------W-2F4B80-----------------------------
  92171. INT 2F - MS Windows - WSWAP.EXE - RESET INTERNAL VARIABLES
  92172. AX = 4B80h
  92173. Return: nothing
  92174. Note: called by WINOLDAP.MOD
  92175. SeeAlso: AX=4B06h
  92176. --------p-2F4C-------------------------------
  92177. INT 2F U - Advanced Power Management
  92178. AH = 4Ch
  92179. AL = function
  92180. 00h version check
  92181. 01h suspend system requested
  92182. FFh suspend/resume battery notification
  92183. ???
  92184. Return: ???
  92185. ----------2F4D-------------------------------
  92186. INT 2F U - ???
  92187. AH = 4Dh
  92188. ???
  92189. Return: ???
  92190. Note: reportedly called by Kana Kanji Converter and MSKK
  92191. --------N-2F4E53BL00-------------------------
  92192. INT 2F - SilverNET v2+ - INSTALLATION CHECK
  92193. AX = 4E53h ("NS")
  92194. BL = 00h (function "installation check")
  92195. BH = module ID (see #02826)
  92196. Return: AX = 0000h if specified module installed
  92197. BX = 4E53h if installed
  92198. Program: SilverNET is an SMB-compatible peer-to-peer NOS for DOS or
  92199. Windows systems, by Net-Source, Inc. of Santa Clara, CA.
  92200. SeeAlso: AX=4E53h/BL=01h,AX=4E53h/BL=02h,AX=B800h,AX=B809h
  92201. (Table 02826)
  92202. Values for SilverNET module ID:
  92203. 01h SilverCACHE
  92204. 02h Workstation
  92205. 03h NetBIOS
  92206. 04h Peer
  92207. 20h NS Share
  92208. 80h NetWare help TSR
  92209. --------N-2F4E53BL01-------------------------
  92210. INT 2F - SilverNET - GET RUNTIME PARAMETER
  92211. AX = 4E53h ("NS")
  92212. BL = 01h (function "get runtime parameter")
  92213. BH = module ID (see #02826)
  92214. CX = parameter index (see #02827,#02829,#02830)
  92215. Return: AX = WORD value at specified index (see #02828)
  92216. Desc: retrieve a word of data from the specified SilverNET module
  92217. (Table 02827)
  92218. Values for SilverNET Peer parameter index (* = read-only):
  92219. 00h * maximum outstanding SMB buffers
  92220. 02h * maximum logged-in nodes
  92221. 04h * number of shareable resources
  92222. 06h * number of characters to print per time slice
  92223. 08h * number of printers that can be shared
  92224. 0Ah * number of nodes logged in
  92225. 0Ch * number of files to allow opened
  92226. 0Eh how fast to despool (/PSLICE)
  92227. 10h audit flag
  92228. 24h * far pointer to resource table (each resource is 96 bytes in length)
  92229. 32h * far pointer to SFT (internal if SilverNET files > CONFIG.SYS files,
  92230. else DOS SFT)
  92231. 36h spool flags (see #02828)
  92232. SeeAlso: #02829
  92233. Bitfields for spool flags:
  92234. Bit(s) Description (Table 02828)
  92235. 0 LPT1 needs despooling
  92236. 1 LPT2 needs despooling
  92237. 2 LPT2 needs despooling
  92238. 4 COM1 needs despooling
  92239. 5 COM2 needs despooling
  92240. 6 COM3 needs despooling
  92241. SeeAlso: #02827
  92242. (Table 02829)
  92243. Values for NS Share parameter index (* = read-only):
  92244. 00h version number (high byte = minor, low byte = major)
  92245. 10h * segment of first lock record (other records in consecutive paragraphs)
  92246. (if PSP field = 0000h, lock record is free)
  92247. 12h * maximum possible number of lock records
  92248. 14h * starting segment of sharing buffer
  92249. (NS Share's sharing records are identical to DOS SHARE except that
  92250. fields which are normally offsets into SHARE are segment numbers)
  92251. 18h * size of sharing buffer in paragraphs
  92252. 1Ah * total free paragraphs in sharing buffer
  92253. 1Ch * current number of shared files
  92254. 1Eh * current number of locked records
  92255. SeeAlso: #02827,#02830
  92256. (Table 02830)
  92257. Values for Workstation parameter index (* = read-only):
  92258. 00h version number (high byte = minor, low byte = major)
  92259. 02h * size of each network buffer for file operations
  92260. 04h * number of redirector file buffers
  92261. 06h * size of each print cache buffer
  92262. 08h * number of network LPT printers
  92263. 0Ch flush time in ticks (idle time on network printer before flushing)
  92264. 0Eh (16 WORDs) last active time for each printer
  92265. 2Eh * stub segment if program split into two parts
  92266. 60h receive name number for datagram listens
  92267. 62h * 18-byte machine name
  92268. 74h * LASTDRIVE (01h = A:, etc.)
  92269. 7Ch row number of message box on screen
  92270. 7Eh message time in clock ticks
  92271. 82h * number of network adapters in use
  92272. 84h station ID broadcast flag (never set on redirectors)
  92273. 96h * NetBIOS names left
  92274. 98h * NCBs left
  92275. 9Ah * sessions left
  92276. A2h * total number of network printers (LPT+COM)
  92277. A4h * number of serial network printers
  92278. A8h * segment containing file cache buffers
  92279. AAh * segment containing print cache buffers
  92280. ACh * bytes remaining free in HMA before program loaded
  92281. AEh * start of free memory in HMA
  92282. B2h * flag: using HMA
  92283. SeeAlso: #02829
  92284. --------N-2F4E53BL02-------------------------
  92285. INT 2F - SilverNET - SET RUNTIME PARAMETERS
  92286. AX = 4E53h ("NS")
  92287. BL = 02h (function "set runtime parameters")
  92288. BH = module ID (see #02826)
  92289. CX = parameter index (see #02829,#02830)
  92290. DX = new value for specified parameter
  92291. Desc: set a WORD value in the specified SilverNET module
  92292. Note: not all indexed parameters are writable; modifying a read-only
  92293. parameter can result in system crashes
  92294. SeeAlso: AX=4E53h/BL=00h,AX=4E53h/BL=01h
  92295. --------N-2F5100-----------------------------
  92296. INT 2F U - ODIHLP.EXE - INSTALLATION CHECK
  92297. AX = 5100h
  92298. Return: AL = FFh if installed
  92299. BX = 0000h
  92300. DX:SI -> signature string "ODI$HLP$"
  92301. Program: ODIHLP is a real-mode helper allowing the Windows for Workgroups 3.11
  92302. protected-mode NDIS3 protocol to work with real-mode ODI drivers
  92303. and LSL.COM
  92304. Note: the returned signature string might be the first field of a structure
  92305. SeeAlso: AX=C000h"LSL.COM"
  92306. --------k-2F5200-----------------------------
  92307. INT 2F - JAM.SYS v1.10+ - "GetVersion" - INSTALLATION CHECK
  92308. AX = 5200h
  92309. Return: AH = 80h (successful) if installed
  92310. BX = internal JAM.SYS version number
  92311. CX = size of JAMINFO structure (see #02831,#02832)
  92312. DX = JAM.SYS segment address
  92313. Program: JAM.SYS is a main component of the JAM Real-Time Data Compression
  92314. Utilities by George A. Reznik and friends (JAM Software).
  92315. SeeAlso: AX=5201h
  92316. Format of JAMINFO v1.10 structure:
  92317. Offset Size Description (Table 02831)
  92318. 00h 25 BYTEs extended BIOS parameter block (BPB)
  92319. 19h 11 BYTEs ???
  92320. 25h DWORD total number of sectors in JAM archive file
  92321. (size of compressed data area)
  92322. 29h BYTE flags (see #02833)
  92323. 2Ah 127 BYTEs full JAM archive file name
  92324. A9h WORD the number of fragments in archive file
  92325. ABh 96 BYTEs archive file fragmentation list -
  92326. array of 16 FRAGMENT structures (see #02834)
  92327. 10Bh DWORD address of the host-drive DPB (Drive Parameter Block)
  92328. 10Fh DWORD number of free sectors in JAM archive file
  92329. 113h WORD device status word (see #02835)
  92330. SeeAlso: #02832
  92331. Format of JAMINFO v1.20 structure:
  92332. Offset Size Description (Table 02832)
  92333. 00h 25 BYTEs extended BIOS parameter block (BPB)
  92334. 19h BYTE physical driver number
  92335. 1Ah BYTE reserved
  92336. 1Bh BYTE extended boot record signature
  92337. 1Ch DWORD volume serial number
  92338. 20h 11 BYTEs volume label
  92339. 2Bh 8 BYTEs file system ID
  92340. 33h DWORD total number of sectors in JAM archive file
  92341. (size of compressed data area)
  92342. 37h BYTE flags (see #02833)
  92343. 38h 128 BYTEs full JAM archive file name
  92344. B8h WORD the number of fragments in archive file
  92345. BAh 96 BYTEs archive file fragmentation list -
  92346. array of 16 FRAGMENT structures (see #02834)
  92347. 11Ah DWORD address of the host-drive DPB (Drive Parameter Block)
  92348. 11Eh DWORD number of free sectors in JAM archive file
  92349. 122h WORD device status word (see #02835)
  92350. Note: the first 33h bytes are copied from the archive file's boot sector
  92351. SeeAlso: #02831
  92352. Bitfields for JAMINFO flags:
  92353. Bit(s) Description (Table 02833)
  92354. 2-0 reserved
  92355. 3 (v1.20+)
  92356. 4 enable direct write requests (Int 26h, non-DOS requests, etc.)
  92357. 5 read-only mode
  92358. 6 no write-behind caching
  92359. 7 full undelete-compatible allocation strategy
  92360. SeeAlso: #02831,#02832
  92361. Format of JAM FRAGMENT structure:
  92362. Offset Size Description (Table 02834)
  92363. 00h WORD starting sector (low word)
  92364. 02h BYTE starting sector (high byte)
  92365. 03h WORD size of fragment (low word)
  92366. 05h BYTE size of fragment (high byte)
  92367. SeeAlso: #02831,#02832
  92368. (Table 02835)
  92369. Values for JAM.SYS status (high byte):
  92370. 00h successful
  92371. 01h drive is not a JAM drive
  92372. 02h drive is already attached
  92373. 03h archive file cluster size value is larger than driver's one
  92374. 04h drive is not attached
  92375. 05h drive is locked
  92376. 06h drive is not locked
  92377. 07h bad physical-level request
  92378. 08h host drive reading/writing error
  92379. 09h bad entries in JAM descriptor table
  92380. 0Ah compressed data integrity error
  92381. 0Bh archive file overflow
  92382. 0Ch bad DOS request
  92383. 0Dh incorrect parameters in JAMINFO structure
  92384. Note: the low byte of the status is the DOS error code for the Host drive
  92385. SeeAlso: #02598 at INT 2F/AX=0802h
  92386. --------k-2F5201-----------------------------
  92387. INT 2F - JAM.SYS v1.10+ - "GetInfo" - GET COMPRESSED DRIVE INFORMATION
  92388. AX = 5201h
  92389. DL = compressed drive number (0-default, 1-A:, etc.)
  92390. DS:BX -> buffer for JAMINFO structure (see #02831,#02832)
  92391. Return: AH = status (00h,01h) (see #02835)
  92392. SeeAlso: AX=5200h
  92393. --------k-2F5202-----------------------------
  92394. INT 2F - JAM.SYS v1.10+ - "Attach" - MOUNT COMPRESSED DRIVE
  92395. AX = 5202h
  92396. DL = drive number (0-default, 1-A:, etc.) to attach to the JAM
  92397. archive file
  92398. DS:BX -> pointer to JAMINFO structure (see #02831,#02832), which
  92399. contains parameters of the JAM file to mount, and pointer
  92400. to the host drive DPB (i.e. DPB of the drive on which the
  92401. JAM file is located)
  92402. Return: AH = status (00h,02h,03h,08h,09h,0Dh) (see also #02835)
  92403. 03h archive file cluster size value is larger than driver's - not
  92404. mounted
  92405. 09h bad entries in JAM descriptor table - file mounted read-only
  92406. AL = host drive error code (see #02598 at INT 2F/AX=0802h)
  92407. SeeAlso: AX=5203h
  92408. --------k-2F5203-----------------------------
  92409. INT 2F - JAM.SYS v1.10+ - "Detach" - UNMOUNT COMPRESSED DRIVE
  92410. AX = 5203h
  92411. DL = drive number (0-default, 1-A:, etc.) to detach
  92412. Return: AH = status (00h,01h,04h,05h,08h,09h,0Bh,0Dh) (see #02835)
  92413. AL = host drive error code (see #02598 at INT 2F/AX=0802h)
  92414. SeeAlso: AX=5202h
  92415. --------k-2F5204-----------------------------
  92416. INT 2F - JAM.SYS v1.10+ - "Lock" - LOCK COMPRESSED DRIVE
  92417. AX = 5204h
  92418. DL = drive number (0-default, 1-A:, etc.) to lock
  92419. Return: AH = status (00h,01h,04h,05h,08h,09h,0Bh,0Dh) (see #02835)
  92420. AL = host drive error code (see #02598 at INT 2F/AX=0802h)
  92421. SeeAlso: AX=5205h, AX=5206h, AX=5207h
  92422. --------k-2F5205-----------------------------
  92423. INT 2F - JAM.SYS v1.10+ - "UnLock" - UNLOCK COMPRESSED DRIVE
  92424. AX = 5205h
  92425. DL = drive number (0-default, 1-A:, etc.) to unlock
  92426. Return: AH = status (00h,01h,04h,06h,08h,09h,0Dh) (see #02835)
  92427. AL = host drive error code (see #02598 at INT 2F/AX=0802h)
  92428. SeeAlso: AX=5204h, AX=5206h, AX=5207h
  92429. Note: Lock and UnLock functions were added to the JAM API to prevent
  92430. asynchronous physical-level access (see AX=5206h,AX=5207h) to
  92431. compressed data on JAM drives. In other words, two or more programs
  92432. which use JAM API (say, JMAX optimizer and JCHKDSK - disk checker)
  92433. cannot be run on the same JAM drive simultaneously.
  92434. --------k-2F5206-----------------------------
  92435. INT 2F - JAM.SYS v1.10+ - "Read" - PHYSICAL READ DATA FROM JAM ARCHIVE
  92436. AX = 5206h
  92437. DL = drive number (0-default, 1-A:, etc.)
  92438. DS:BX -> disk transfer packet (see #02836)
  92439. Return: AH = status (00h,01h,04h,06h,07h,08h,0Dh) (see #02835)
  92440. AL = host drive error code (see #02598 at INT 2F/AX=0802h)
  92441. Program: JAM.SYS is a main component of the JAM Real-Time Data Compression
  92442. Utilities by George A. Reznik and friends (JAM Software).
  92443. SeeAlso: AX=5207h
  92444. Format of disk transfer packet:
  92445. Offset Size Description (Table 02836)
  92446. 00h DWORD sector number
  92447. 04h WORD number of sectors to read(write)
  92448. 06h DWORD transfer address
  92449. --------k-2F5207-----------------------------
  92450. INT 2F - JAM.SYS v1.10+ - "Write" - PHYSICAL WRITE DATA TO JAM ARCHIVE
  92451. AX = 5207h
  92452. DL = drive number (0-default, 1-A:, etc.)
  92453. DS:BX -> disk transfer packet (see #02836)
  92454. Return: AH = status (00h,01h,04h,06h,07h,08h,0Dh) (see #02835)
  92455. AL = host drive error code (see #02598 at INT 2F/AX=0802h)
  92456. SeeAlso: AX=5206h
  92457. --------p-2F53-------------------------------
  92458. INT 2F U - POWER.EXE - APM event broadcasting???
  92459. AH = 53h
  92460. AL = event???
  92461. 05h CPU idle
  92462. 0Bh PM event broadcast API
  92463. Return: ???
  92464. Note: called by MS Windows 3.1 POWER.DRV; hooked by MS Mouse driver v8.20+
  92465. and PC-Cache v8.0
  92466. SeeAlso: AX=530Bh,AX=5400h,INT 33/AX=002Fh
  92467. --------p-2F530B-----------------------------
  92468. INT 2F U - ??? (MOUSEPWR.COM, others) - ???
  92469. AX = 530Bh
  92470. BX = subfunction
  92471. 0003h ???
  92472. 0004h ???
  92473. ???
  92474. Return: ???
  92475. Note: it appears that subfunction 0003h reads or restores the current mouse
  92476. settings (the MS Mouse driver hooks AX=530Bh), and 0004h might be
  92477. the converse
  92478. --------p-2F5400-----------------------------
  92479. INT 2F U - POWER.EXE - INSTALLATION CHECK
  92480. AX = 5400h
  92481. Return: AX = POWER.EXE version (AH = major, AL = minor) if installed
  92482. BX = 504Dh ("PM")
  92483. CF clear
  92484. Note: called by MS Windows 3.1 POWER.DRV
  92485. SeeAlso: AH=53h,AX=5401h,AX=5402h,AX=5481h,AX=5482h
  92486. --------p-2F5401-----------------------------
  92487. INT 2F U - POWER.EXE - GET/SET POWER STATUS
  92488. AX = 5401h
  92489. BH = function
  92490. 00h get status
  92491. Return: BL = current power management status (see #02837)
  92492. 01h set status
  92493. BL = new power managment status (see #02837)
  92494. Return: AX = function status (see #02838)
  92495. Note: called by MS Windows 3.1 POWER.DRV
  92496. SeeAlso: AH=53h,AX=5400h,AX=5402h,AX=5403h
  92497. Bitfields for power management status:
  92498. Bit(s) Description (Table 02837)
  92499. 0 POWER.EXE power management enabled
  92500. 1 APM firmware power management enabled
  92501. 2-7 reserved (0)
  92502. Notes: bit 1 is ignored if there is no APM firmware
  92503. bits 1-0: 00 = POWER OFF, 10 = POWER STD, 11 = POWER ADV
  92504. (Table 02838)
  92505. Values for POWER.EXE function status:
  92506. 0000h successful
  92507. 0002h "ERROR_PM_ALREADY_CONNECTED"
  92508. 0003h "ERROR_PM_NOT_CONNECTED"
  92509. 0087h "ERROR_PM_INVALID_PARAMETER"
  92510. --------p-2F5402-----------------------------
  92511. INT 2F U - POWER.EXE - GET/SET IDLE DETECTION STRATEGY
  92512. AX = 5402h
  92513. BH = subfunction
  92514. 00h get
  92515. other set
  92516. BL = detection strategy (00h-0Fh or FFh)
  92517. Return: BX = current/new detection strategy
  92518. SeeAlso: AH=53h,AX=5400h,AX=5401h,AX=5481h,AX=5482h
  92519. --------p-2F5403-----------------------------
  92520. INT 2F U - POWER.EXE - GET/SET ADVANCED POWER MANAGEMENT SETTING
  92521. AX = 5403h
  92522. BX = new power management setting or 0000h to get current setting
  92523. Return: AX = status
  92524. 0000h successful
  92525. BX = power management setting (see #02839)
  92526. other error code
  92527. SeeAlso: AX=5401h,AX=5480h
  92528. (Table 02839)
  92529. Values for power management setting:
  92530. 0001h-0005h "min"
  92531. 0006h "reg"
  92532. 0007h-0008h "max"
  92533. --------t-2F5453-----------------------------
  92534. INT 2F - TesSeRact RAM-RESIDENT PROGRAM INTERFACE
  92535. AX = 5453h
  92536. BX = subfunction
  92537. 00h installation check
  92538. CX = 0000h
  92539. DS:SI -> 8-char blank-padded name (see #02840)
  92540. Return: AX = FFFFh installed
  92541. CX = ID number of already-installed copy
  92542. AX = anything else, not installed
  92543. CX = ID number for TSR when installed
  92544. 01h get user parameters
  92545. CX = TSR ID number
  92546. Return: AX = status
  92547. 0000h successful
  92548. ES:BX -> user parameter block (see #02841)
  92549. nonzero failed
  92550. 02h check if hotkey in use
  92551. CL = scan code of hot key (see #00006)
  92552. Return: AX = FFFFh hot key conflicts with another TSR
  92553. otherwise safe to use the hotkey
  92554. 03h replace default critical error handler
  92555. CX = TSR ID number
  92556. DS:SI -> new routine for INT 24h
  92557. Return: AX = nonzero, unable to install new handler
  92558. 04h get internal data area
  92559. CX = TSR ID number
  92560. Return: AX = status
  92561. 0000h successful
  92562. ES:BX -> TSR's internal data area (see #02842)
  92563. nonzero, TSR not found
  92564. 05h set multiple hot keys
  92565. CX = TSR ID number
  92566. DL = number of additional hot keys to allocate
  92567. DS:SI -> table of hot keys
  92568. BYTE hotkey scan code (see #00006)
  92569. BYTE hotkey shift state
  92570. BYTE flag value to pass to TSR (nonzero)
  92571. Return: AX = nonzero, unable to install hot keys
  92572. 06h - 0Fh reserved
  92573. 10h enable TSR
  92574. CX = TSR ID number
  92575. Return: AX = nonzero, unable to enable
  92576. 11h disable TSR
  92577. CX = TSR ID number
  92578. Return: AX = nonzero, unable to disable
  92579. 12h unload TSR
  92580. CX = TSR ID number
  92581. Return: AX = nonzero, invalid TSR number
  92582. Note: if any interrupts used by TSR have been grabbed by
  92583. another TSR, the TesSeRact routines will wait until
  92584. it is safe to remove the indicated TSR from memory
  92585. 13h restart TSR
  92586. CX = TSR ID number of TSR which was unloaded but is still in
  92587. memory
  92588. Return: AX = nonzero, unable to restart TSR
  92589. 14h get status word
  92590. CX = TSR ID number
  92591. Return: AX = FFFFh invalid ID number
  92592. = other, successful
  92593. BX = bit flags
  92594. 15h set status word
  92595. CX = TSR ID number
  92596. DX = new bit flags
  92597. Return: AX = nonzero, unable to set status word
  92598. 16h get INDOS state at popup
  92599. CX = TSR ID number
  92600. Return: AX = 0000h successful
  92601. BX = value of INDOS flag
  92602. 17h - 1Fh reserved
  92603. 20h call user procedure
  92604. CX = TSR ID number
  92605. ES:DI -> user-defined data
  92606. Return: AX = 0000h successful
  92607. 21h stuff keystrokes into keyboard buffer
  92608. CX = TSR ID number
  92609. DL = speed
  92610. 00h stuff keystrokes only when buffer is empty
  92611. 01h stuff up to four keystrokes per clock tick
  92612. 02h stuff up to 15 keystrokes per clock tick
  92613. DH = scan code flag
  92614. if zero, buffer contains alternating ASCII and scan codes
  92615. if nonzero, buffer contains only ASCII codes
  92616. SI = number of keystrokes
  92617. ES:DI -> buffer to stuff
  92618. Return: AX = 0000h success
  92619. F0F0h user aborted with ^C or ^Break
  92620. other unable to stuff keystrokes
  92621. 22h (v1.10) trigger popup
  92622. CX = TSR ID number
  92623. Return: AX = 0000h success, TSR will either pop up or beep to
  92624. indicate that it is unable to pop up
  92625. nonzero invalid ID number
  92626. 23h (v1.10) invoke TSR's background function
  92627. CX = TSR ID number
  92628. Return: AX = 0000h success
  92629. FFFFh not safe to call background function
  92630. nonzero invalid ID number
  92631. 24h - 2Fh reserved
  92632. Notes: Borland's THELP.COM popup help system for Turbo Pascal and Turbo C
  92633. (versions 1.x and 2.x only) fully supports the TesSeRact API, as
  92634. do the SWAP?? programs by Innovative Data Concepts.
  92635. AVATAR.SYS supports functions 00h and 01h (only the first three fields
  92636. of the user parameter block) using the name "AVATAR "
  92637. SeeAlso: AX=CAFEh,INT 16/AX=55FFh,INT 2D"AMIS"
  92638. Index: installation check;TesSeRact TSR interface|uninstall;TesSeRact
  92639. (Table 02840)
  92640. Values for TesSeRact names:
  92641. "AVATAR " AVATAR.SYS
  92642. "QeditTSR" TSR version of SemWare's Qedit editor
  92643. "SCRNBLNK" Trusted Access screen blanker
  92644. Format of TesSeRact User Parameter Block:
  92645. Offset Size Description (Table 02841)
  92646. 00h 8 BYTEs blank-padded TSR name
  92647. 08h WORD TSR ID number
  92648. 0Ah DWORD bitmap of supported functions
  92649. 0Eh BYTE scan code of primary hotkey (see #00006)
  92650. 00h = pop up when shift states match
  92651. FFh = no popup (if shift state also FFh)
  92652. 0Fh BYTE shift state of primary hotkey
  92653. FFh = no popup (if scan code also FFh)
  92654. 10h BYTE number of secondary hotkeys
  92655. 11h DWORD pointer to extra hotkeys set by func 05h
  92656. 15h WORD current TSR status flags
  92657. 17h WORD PSP segment of TSR
  92658. 19h DWORD DTA for TSR
  92659. 1Dh WORD default DS for TSR
  92660. 1Fh DWORD stack at popup
  92661. 23h DWORD stack at background invocation
  92662. Index: hotkeys;TesSeRact TSR interface
  92663. Format of TSR internal data area:
  92664. Offset Size Description (Table 02842)
  92665. 00h BYTE revision level of TesSeRact library
  92666. 01h BYTE type of popup in effect
  92667. 02h BYTE INT 08 occurred since last invocation
  92668. 03h BYTE INT 13 occurred since last invocation
  92669. 04h BYTE active interrupts
  92670. 05h BYTE active soft interrupts
  92671. 06h BYTE DOS major version
  92672. 07h BYTE how long to wait before popping up
  92673. 08h DWORD pointer to INDOS flag
  92674. 0CH DWORD pointer to DOS critical error flag
  92675. 10h WORD PSP segment of interrupted program
  92676. 12h WORD PSP segment of prog interrupted by INT 28
  92677. 14h DWORD DTA of interrupted program
  92678. 18h DWORD DTA of program interrupted by INT 28
  92679. 1Ch WORD SS of interrupted program
  92680. 1Eh WORD SP of interrupted program
  92681. 20h WORD SS of program interrupted by INT 28
  92682. 22h WORD SP of program interrupted by INT 28
  92683. 24h DWORD INT 24 of interrupted program
  92684. 28h 3 WORDs DOS 3.0+ extended error info
  92685. 2Eh BYTE old BREAK setting
  92686. 2Fh BYTE old VERIFY setting
  92687. 30h BYTE were running MS WORD 4.0 before popup
  92688. 31h BYTE MS WORD 4.0 special popup flag
  92689. 32h BYTE enhanced keyboard call in use
  92690. 33h BYTE delay for MS WORD 4.0
  92691. 11 times (for INTs 08h,09h,13h,16h,1Ch,21h,28h,2Fh,1Bh,23h, and 24h):
  92692. DWORD old interrupt vector
  92693. BYTE interrupt number
  92694. WORD offset in TesSeRact code segment of new interrupt handler
  92695. --------p-2F5480-----------------------------
  92696. INT 2F U - POWER.EXE - GET/SET ???
  92697. AX = 5480h
  92698. BX = direction
  92699. 0000h get
  92700. other set
  92701. CX = size of buffer (at least 0010h)
  92702. DS:SI -> buffer
  92703. Return: AX = status
  92704. 0000h successful
  92705. other error code
  92706. SeeAlso: AX=5400h,AX=5481h,AX=548Fh
  92707. --------p-2F5481-----------------------------
  92708. INT 2F U - POWER.EXE - GET STATISTICS
  92709. AX = 5481h
  92710. BX = which statistics
  92711. 0000h idle detection
  92712. 0001h APM statistics
  92713. CX = length of buffer in bytes
  92714. DS:SI -> buffer for statistics (see #02843,#02844)
  92715. Return: AX = status
  92716. 0000h successful
  92717. 0071h "ERROR_PM_BUFFER_TOO_SMALL"
  92718. 0087h "ERROR_PM_INVALID_PARAMETER"
  92719. SeeAlso: AH=53h,AX=5400h,AX=5480h,AX=5402h,AX=5482h
  92720. Format of POWER.EXE idle detection statistics:
  92721. Offset Size Description (Table 02843)
  92722. 00h DWORD "CPU_ON_TIME" total time CPU is active with POWER.EXE idle
  92723. detection enabled, in timer ticks
  92724. 04h DWORD "CPU_IDLE_TIME" timer ticks during which CPU was idle
  92725. (divide by previous to get idle rate)
  92726. 08h DWORD total idle calls
  92727. 0Ch DWORD "TOTAL_APP_IDLE" total INT 2Fh idle calls
  92728. 10h DWORD "TOTAL_DOS_YIELD" total INT 28h idle calls
  92729. 14h DWORD "TOTAL_KEY_IDLE" total INT 16h idle calls
  92730. 18h DWORD "TOTAL_DOS_IDLE" total INT 2Ah idle calls
  92731. Format of APM statistics:
  92732. Offset Size Description (Table 02844)
  92733. 00h DWORD "RESUME_COUNT" total number of resumes since last APM_ENABLE
  92734. --------p-2F5482-----------------------------
  92735. INT 2F U - POWER.EXE - GET/SET APM POLLING FREQUENCY
  92736. AX = 5482h
  92737. BX = new polling frequency or 0000h to get current frequency
  92738. Return: AX = 0000h (successful)
  92739. BX = current frequency if BX=0000h on entry
  92740. SeeAlso: AH=53h,AX=5400h,AX=5401h,AX=5480h,AX=5481h,AX=548Fh
  92741. --------p-2F548F-----------------------------
  92742. INT 2F U - POWER.EXE - GET/SET ???
  92743. AX = 548Fh
  92744. BX = ??? or 0000h to get current ???
  92745. Return: AX = 0000h (successful)
  92746. BX = current ???
  92747. CX = ???
  92748. SeeAlso: AX=5400h,AX=5480h,AX=5482h
  92749. --------l-2F5500-----------------------------
  92750. INT 2F U - DOS 5+ - COMMAND.COM INTERFACE
  92751. AX = 5500h
  92752. Return: AX = 0000h if an instance of COMMAND.COM is already running
  92753. DS:SI -> entry point table
  92754. Notes: used to access the shareable portion of COMMAND.COM, which may have
  92755. been moved into the HMA; only the primary COMMAND.COM retains this
  92756. portion
  92757. procedures called from a dispatcher in COMMAND's resident portion;
  92758. most assume that the segment address of the resident portion is on
  92759. the stack and are thus not of general use
  92760. SeeAlso: AX=5501h
  92761. --------l-2F5501-----------------------------
  92762. INT 2F U - DOS 5+ - ROM COMMAND.COM INTERFACE
  92763. AX = 5501h
  92764. Return: ???
  92765. Note: used to determine whether the caller is the first instance of ROM
  92766. COMMAND.COM
  92767. SeeAlso: AX=5500h
  92768. --------R-2F5600-----------------------------
  92769. INT 2F - INTERLNK - INSTALLATION CHECK
  92770. AX = 5600h
  92771. DX = magic value FFFFh
  92772. BL = instance number (00h = any, 01h = first loaded, etc.)
  92773. Return: AL = FFh if installed
  92774. BL = instance number
  92775. CX = version number (CL = major, CH = minor)
  92776. DX = resident CS of driver, DX:0000h -> header (see #02845)
  92777. SeeAlso: AX=5601h,AX=5602h,INT 60/AX=0000h
  92778. Format of Interlnk device driver header:
  92779. Offset Size Description (Table 02845)
  92780. 00h DWORD pointer to next driver, offset=FFFFh if last driver
  92781. 04h WORD device attributes (see #01647,#01648)
  92782. 06h WORD device strategy entry point
  92783. 08h WORD device interrupt entry point
  92784. 0Ah 8 BYTEs character device name "NUL2 "
  92785. 12h 165 BYTEs ???
  92786. B7h 67 BYTEs fully qualified Interlnk filename
  92787. FAh 6 BYTEs ???
  92788. 100h DWORD pointer back to Interlnk filename at offset B7h
  92789. 104h 8 BYTEs ???
  92790. 10Ch BYTE total number of redirected drives
  92791. 10Dh BYTE first local drive number (0=A:)
  92792. 10Eh BYTE printer redirection (0=no, 1=yes)
  92793. 10Fh BYTE ???
  92794. 110h 3 BYTEs LPT1...3 status (0FFh=invalid)
  92795. 113h 26 BYTEs remote drive number (0=A:, 0FEh=unused) (refer to note below)
  92796. 12Dh 26 BYTEs always 0FEh ???
  92797. 147h 26 BYTEs always 0FFh ???
  92798. Note: to obtain the remote drive number, subtract the value at offset 10Ch
  92799. from the local drive number before indexing into the table at 113h
  92800. (example: if local drives F, G, H are remote drives C, F, E then
  92801. the first three bytes at offset 113h are 02h, 05h, 04h)
  92802. for each instance of Interlnk, an extra device driver is loaded, but
  92803. all have the same device name NUL2
  92804. SeeAlso: #01646 at INT 21/AH=52h
  92805. --------R-2F5601-----------------------------
  92806. INT 2F - INTERLNK - CHECK IF REDIRECTED DRIVE
  92807. AX = 5601h
  92808. DX = magic value FFFFh
  92809. BH = drive number (0=A:)
  92810. BL = instance number (00h=any, 01h=first loaded, etc.)
  92811. Return: (as for AL=00h if redirected drive)
  92812. SeeAlso: AX=5600h,AX=5601h
  92813. --------R-2F5602-----------------------------
  92814. INT 2F - INTERLNK - CHECK IF PORT IN USE
  92815. AX = 5602h
  92816. DX = magic value FFFFh
  92817. BL = instance number (00h=any, 01h=first loaded, etc.)
  92818. CX = base port address of COM / LPT port to check
  92819. Return: (as for AL=00h if port in use for a redirected drive)
  92820. SeeAlso: AX=5600h
  92821. --------d-2F5700-----------------------------
  92822. INT 2F U - IOMEGA DRIVERS - INSTALLATION CHECK
  92823. AX = 5700h
  92824. BX = program ID??? (0201h used by GUEST.EXE)
  92825. DX = 496Fh ('Io')
  92826. Return: AL = status
  92827. 00h not installed
  92828. FFh installed
  92829. SeeAlso: AX=5701h,AX=5710h,AX=5711h,AX=5712h
  92830. --------d-2F5701-----------------------------
  92831. INT 2F U - IOMEGA DRIVERS - ???
  92832. AX = 5701h
  92833. BX = program ID??? (0201h used by GUEST.EXE)
  92834. DX = 496Fh ('Io')
  92835. Return: AX = 0001h
  92836. SeeAlso: AX=5700h,AX=5710h,AX=5711h,AX=5712h
  92837. --------d-2F5710-----------------------------
  92838. INT 2F U - IOMEGA DRIVERS - GET DRIVER INFORMATION???
  92839. AX = 5710h
  92840. BX = program ID??? (0201h used by GUEST.EXE)
  92841. DX = 496Fh ('Io')
  92842. Return: AX = ??? (BX ORed with ???)
  92843. BX = ??? (internal variable)
  92844. CX = ??? (internal variable)
  92845. DX = ??? (CX ORed with ???)
  92846. SeeAlso: AX=5700h,AX=5701h,AX=5711h,AX=5712h
  92847. --------d-2F5711-----------------------------
  92848. INT 2F U - IOMEGA DRIVERS - LOCK MEDIA IN DRIVE
  92849. AX = 5711h
  92850. BX = program ID??? (0201h used by GUEST.EXE)
  92851. DX = 496Fh ('Io')
  92852. Return: CF clear if successful (storage medium in drive)
  92853. AX = new lock count
  92854. CF set on error (drive empty)
  92855. SeeAlso: AX=5700h,AX=5701h,AX=5710h,AX=5712h
  92856. --------d-2F5712-----------------------------
  92857. INT 2F U - IOMEGA DRIVERS - UNLOCK MEDIA IN DRIVE / EJECT
  92858. AX = 5712h
  92859. BX = program ID??? (0201h used by GUEST.EXE)
  92860. DX = 496Fh ('Io')
  92861. Return: AX = new lock count (00h = unlocked)
  92862. Note: if the lock count was already zero, the storage medium is ejected
  92863. from the drive
  92864. SeeAlso: AX=5700h,AX=5701h,AX=5710h,AX=5711h
  92865. --------c-2F5758BX4858-----------------------
  92866. INT 2F U - Helix Multimedia Cloaking - CACHECLK - INSTALLATION CHECK
  92867. AX = 5758h
  92868. BX = 4858h ('HX')
  92869. DX = 4443h ('DC')
  92870. CX <> 5758h
  92871. Return: BX = 6878h if installed
  92872. DX = 6463h if installed
  92873. CX = version (CH=major,CL=minor)
  92874. Program: CACHECLK is a 'Cloaked' disk cache by Helix Software
  92875. Note: returns with registers unchanged if CX=5758h on entry
  92876. SeeAlso: INT 16/AX=5758h/BX=4858h,INT 2F/AX=4310h"Cloaking"
  92877. --------X-2F5D00-----------------------------
  92878. INT 2F U - PCMCIA - AWARD PCDISK - GET INFO FROM DRIVER ???
  92879. AX = 5D00h
  92880. Return: ES:BX -> ???
  92881. Note: supported by Ventura Micro / Award PCDISK.EXE v1.02c PCMCIA/ATA driver
  92882. SeeAlso: AX=5D01h,INT 21/AX=440Dh"DOS 3.2+"
  92883. --------X-2F5D01-----------------------------
  92884. INT 2F U - PCMCIA - AWARD PCDISK - PUT INFO INTO DRIVER ???
  92885. AX = 5D01h
  92886. ES:BX -> ???
  92887. Return: nothing
  92888. Note: supported by Ventura Micro / Award PCDISK.EXE v1.02c PCMCIA/ATA driver
  92889. SeeAlso: AX=5D00h,INT 21/AX=440Dh"DOS 3.2+"
  92890. --------s-2F60FFDL00-------------------------
  92891. INT 2F U - IPLAY v1.00b - INSTALLATION CHECK
  92892. AX = 60FFh
  92893. DL = 00h (function number)
  92894. BX = 5344h ('SD')
  92895. CX = 4D50h ('MP')
  92896. Return: AX = 4F4Bh ('OK') if installed
  92897. Program: IPLAY is the Inertia Player by Prime and Excalibur for .MODules
  92898. (digitized music files)
  92899. Note: in version 1.00b, any value for DL except 01h invokes this function
  92900. SeeAlso: AX=60FFh/DL=01h
  92901. --------s-2F60FFDL01-------------------------
  92902. INT 2F U - IPLAY v1.00b - GET DATA SEGMENT
  92903. AX = 60FFh
  92904. DL = 01h (function number)
  92905. BX = 5344h ('SD')
  92906. CX = 4D50h ('MP')
  92907. Return: AX = data segment
  92908. Program: IPLAY is the Inertia Player by Prime and Excalibur for .MODules
  92909. (digitized music files)
  92910. SeeAlso: AX=60FFh/DL=00h
  92911. --------v-2F6282-----------------------------
  92912. INT 2F U - PC Tools v7.0+ VDEFEND, VSAFE, VWATCH, DATAMON - SET ??? ADDRESS
  92913. AX = 6282h
  92914. CX:DX -> ??? or 0000h:0000h
  92915. DI = segment of ??? record (see #02846) or 0000h/FFFFh to ignore
  92916. Return: BX = 0062h
  92917. Note: if CX:DX = 0000h:0000h on entry, the ??? address is not changed
  92918. (DATAMON only)
  92919. SeeAlso: INT 13/AH=FAh"VSAFE",INT 21/AH=FAh"VDEFEND"
  92920. Format of VSAFE/VWATCH record:
  92921. Offset Size Description (Table 02846)
  92922. 00h DWORD ???
  92923. 04h WORD offset of ??? in record's segment
  92924. VSAFE 2.0 sets byte at +01h to 56h or 58h
  92925. VWATCH 2.1 sets byte at +02h to 56h or 58h
  92926. 06h 2 BYTEs ???
  92927. 08h BYTE ??? (01h/other)
  92928. --------v-2F6284BX0000-----------------------
  92929. INT 2F U - PC Tools v7-8 DATAMON, v9+ DPROTECT - INSTALLATION CHECK
  92930. AX = 6284h
  92931. BX = 0000h
  92932. CX = 0000h
  92933. Return: AX = segment of resident code
  92934. BX = 5555h
  92935. CX = 5555h
  92936. Note: also supported by DOS 6 UNDELETE which is licensed from PC Tools
  92937. SeeAlso: AX=6284h/BX=0001h,INT 16/AX=FFA3h/BX=0000h
  92938. --------v-2F6284BX0001-----------------------
  92939. INT 2F U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
  92940. AX = 6284h
  92941. BX = 0001h
  92942. CX = 0001h
  92943. Return: AX:BX -> ??? data (see #02847)
  92944. CX = BX
  92945. SeeAlso: AX=6284h/BX=0000h
  92946. Format of DPROTECT data for v9.0:
  92947. Offset Size Description (Table 02847)
  92948. 00h 5 BYTEs ???
  92949. 05h WORD resident code segment (may be segment of DWORD at +03h)
  92950. 07h DWORD -> FAR function to sound alert tone
  92951. ???
  92952. --------v-2F6284BX0002-----------------------
  92953. INT 2F U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET OPTIONS
  92954. AX = 6284h
  92955. BX = 0002h
  92956. CX = 0002h
  92957. Return: AX = options (see #02848)
  92958. BX = ??? (0000h for v9)
  92959. CX = AX
  92960. DX = BX
  92961. Note: also supported by DOS 6 UNDELETE which is licensed from PC Tools
  92962. SeeAlso: AX=6284h/BX=0000h,AX=6284h/BX=0003h
  92963. Bitfields for DATAMON/DPROTECT options:
  92964. Bit(s) Description (Table 02848)
  92965. 1 ???
  92966. 12 disabled
  92967. 13 using Delete Sentry
  92968. 14 using Delete Tracker
  92969. --------v-2F6284BX0003-----------------------
  92970. INT 2F U - PC Tools v7-8 DATAMON, v9+ DPROTECT - SET OPTION??? FLAGS
  92971. AX = 6284h
  92972. BX = 0003h
  92973. CX = flags (see #02849)
  92974. DX = flags
  92975. bit 15: ???
  92976. Note: v9 DPROTECT only checks bit 12 of CX, and ignores DX entirely
  92977. SeeAlso: AX=6284h/BX=0002h
  92978. Bitfields for DATAMON/DPROTECT CX flags:
  92979. Bit(s) Description (Table 02849)
  92980. 3 ???
  92981. 5 ???
  92982. 10 ???
  92983. 12 disable DATAMON/DPROTECT
  92984. --------v-2F6284BX0004-----------------------
  92985. INT 2F U - PC Tools v8 DATAMON, v9+ DPROTECT - ???
  92986. AX = 6284h
  92987. BX = 0004h
  92988. CX = 0004h
  92989. Return: AX = 5555h
  92990. BX = ??? (0800h)
  92991. CX = ??? (FCCCh for v8, FCCBh for v9)
  92992. --------V-2F6400-----------------------------
  92993. INT 2F - SCRNSAV2.COM - INSTALLATION CHECK
  92994. AX = 6400h
  92995. Return: AL = installation state
  92996. 00h not installed
  92997. FFh installed
  92998. Program: SCRNSAV2.COM is a screen saver for PS/2s with VGA by Alan Ballard
  92999. SeeAlso: INT 10/AX=5555h,INT 14/AX=AA01h
  93000. Index: screen saver;SCRNSAV2
  93001. --------N-2F7000-----------------------------
  93002. INT 2F - License Service API - INSTALLATION CHECK
  93003. AX = 7000h
  93004. CX = license server index (0000h to 001Fh)
  93005. Return: AL = status
  93006. 00h not installed
  93007. FFh installed
  93008. Notes: The License Service API is being maintained by Microsoft but is being
  93009. supported by a large number of companies including Apple, Banyan,
  93010. DEC, HP, Lotus, Microsoft, Novell, Software Publishers Association,
  93011. and Wordperfect (not a complete list!)
  93012. Each license service provider must search for the next free index
  93013. slot to use
  93014. SeeAlso: AX=7001h,AX=7003h,AX=7004h,AX=7005h
  93015. --------N-2F7001-----------------------------
  93016. INT 2F - License Service API - REQUEST LICENSE
  93017. AX = 7001h
  93018. CX = license server index (0000h to 001Fh)
  93019. DS:DX -> SLSREQUEST structure (see #02850)
  93020. Return: AX = status
  93021. 0000h success
  93022. else provider error code
  93023. ES:BX = provider specific handle for the license context
  93024. SeeAlso: AX=7002h,AX=7004h,AX=7005h
  93025. Format of License Service SLSREQUEST structure:
  93026. Offset Size Description (Table 02850)
  93027. 00h DWORD (ret) status code
  93028. 04h DWORD (ret) handle identifying context
  93029. 08h DWORD (call) address of Publisher string
  93030. 0Ch DWORD (call) address of Product string
  93031. 10h DWORD (call) address of Version string
  93032. 14h DWORD units required
  93033. 18h DWORD address of comment string
  93034. 1Ch DWORD address of SLSCHALLENGE structure (see #02851)
  93035. Format of License Service SLSCHALLENGE structure:
  93036. Offset Size Description (Table 02851)
  93037. 00h DWORD algorithm (currently always 1)
  93038. 04h DWORD secret to be challenged (1-255)
  93039. 08h DWORD size of challenge in bytes (1-255)
  93040. 0Ch N BYTEs challenge data
  93041. --------N-2F7002-----------------------------
  93042. INT 2F - License Service API - RELEASE LICENSE
  93043. AX = 7002h
  93044. CX = license server index (0000h to 001Fh)
  93045. DS:DX -> SLSRELEASE structure (see #02852)
  93046. ES:BX = provider specific handle for the license context
  93047. Return: AL = status
  93048. 00h not installed
  93049. FFh installed
  93050. SeeAlso: AX=7001h,AX=7005h
  93051. Format of License Service SLSRELEASE structure:
  93052. Offset Size Description (Table 02852)
  93053. 00h DWORD handle indentifying license context
  93054. 04h DWORD total units consumed
  93055. 08h DWORD address of comment string
  93056. --------N-2F7003-----------------------------
  93057. INT 2F - License Service API - UPDATE
  93058. AX = 7003h
  93059. CX = license server index (0000h to 001Fh)
  93060. DS:DX -> SLSUPDATE structure (see #02853)
  93061. ES:BX = provider specific handle for the license context
  93062. Return: AL = status
  93063. 00h not installed
  93064. FFh installed
  93065. SeeAlso: AX=7004h,AX=7005h
  93066. Format of License Service SLSUPDATE structure:
  93067. Offset Size Description (Table 02853)
  93068. 00h DWORD (ret) status code
  93069. 04h DWORD (call) handle identifying license context
  93070. 08h DWORD (call) total units consumed
  93071. 0Ch DWORD additional units required
  93072. 10h DWORD address of comment string
  93073. 14h DWORD address of SLSCHALLENGE structure (see #02851)
  93074. --------N-2F7004-----------------------------
  93075. INT 2F - License Service API - GET ERROR
  93076. AX = 7004h
  93077. CX = license server index (0000h to 001Fh)
  93078. DS:DX -> SLSGETERROR structure (see #02854)
  93079. ES:BX = provider specific handle for the license context
  93080. Return: AL = status
  93081. 00h not installed
  93082. FFh installed
  93083. SeeAlso: AX=7000h,AX=7001h
  93084. Format of License Service SLSGETERROR structure:
  93085. Offset Size Description (Table 02854)
  93086. 00h DWORD (ret) status code
  93087. 04h DWORD handle identifying license context
  93088. 08h DWORD error code
  93089. 0Ch DWORD buffer size in bytes
  93090. 10h N BYTEs data buffer
  93091. --------N-2F7005-----------------------------
  93092. INT 2F - License Service API - QUERY LICENSE
  93093. AX = 7005h
  93094. CX = license server index (0000h to 001Fh)
  93095. DS:DX -> SLSQUERY structure (see #02855)
  93096. ES:BX = provider specific handle for the license context
  93097. Return: AL = status
  93098. 00h not installed
  93099. FFh installed
  93100. SeeAlso: AX=7001h,AX=7002h
  93101. Format of License Service SLSQUERY structure:
  93102. Offset Size Description (Table 02855)
  93103. 00h DWORD (ret) status code
  93104. 04h DWORD handle identifying license context
  93105. 08h DWORD information index
  93106. 0Ch DWORD buffer size in bytes
  93107. 10h N BYTEs data buffer
  93108. --------K-2F7041BX4B70-----------------------
  93109. INT 2F U - HP 200LX - KEY200 - INSTALLATION CHECK
  93110. AX = 7041h
  93111. BX = 4B70h
  93112. Return: BX = 7965h if keyboard remapper KEY200.COM installed
  93113. --------d-2F7200-----------------------------
  93114. INT 2F - SRDISK v1.30+ - INSTALLATION CHECK
  93115. AX = 7200h
  93116. Return: AL = FFh if installed
  93117. ES = segment of device driver header (see #02856)
  93118. Program: SRDISK is a freeware resizeable RAMdisk by Marko Kohtala
  93119. SeeAlso: AX=7201h
  93120. Format of SRDISK device driver header:
  93121. Offset Size Description (Table 02856)
  93122. 00h 10 BYTEs same as standard device driver header
  93123. (see #01646 at INT 21/AH=52h)
  93124. 0Ah BYTE number of subunits (drives) supported by driver
  93125. 0Bh 3 BYTEs signature "SRD"
  93126. 0Eh 4 BYTEs memory type string ("XMS "/"EMS ")
  93127. 12h 4 BYTEs ASCII driver version string "N.NN"
  93128. 16h BYTE 00h
  93129. 17h BYTE configuration format version (currently 00h or 01h)
  93130. 18h WORD offset of drive configuration data
  93131. SeeAlso: #01646
  93132. --------d-2F7201-----------------------------
  93133. INT 2F - SRDISK v2.02 - GET CODE/DATA SEGMENT
  93134. AX = 7201h
  93135. Return: AL = FFh if installed
  93136. ES = segment of device driver header (see #02856)
  93137. Program: SRDISK is a freeware resizeable RAMdisk by Marko Kohtala
  93138. SeeAlso: AX=7200h
  93139. --------N-2F7A00-----------------------------
  93140. INT 2F - Novell NetWare - LOW-LEVEL API (IPX) INSTALLATION CHECK
  93141. AX = 7A00h
  93142. Return: AL = status
  93143. 00h not installed
  93144. FFh installed
  93145. ES:DI -> FAR entry point for routines accessed exclusively
  93146. through INT 7A in NetWare versions through 2.0a.
  93147. Call with same values as INT 7A
  93148. ES:BX -> two bytes containing IPX major/minor version
  93149. (IPXODI v2.12; BX unchanged by older IPX drivers)
  93150. CX = ES ???
  93151. SeeAlso: AX=7AFFh/BX=0000h,AX=D800h,INT 64"Novell",INT 7A"LOW-LEVEL API"
  93152. --------N-2F7A10-----------------------------
  93153. INT 2F U - Novell NetWare - TBMI v1.1+ - GET TBMI STATUS
  93154. AX = 7A10h
  93155. Return: DH = major TBMI version number
  93156. DL = minor TBMI version number (01h for v1.1)
  93157. CX = segment address of TBMI resident part
  93158. BX = status word of TBMI (see #02857)
  93159. Note: TBMI is the Task-Switched Buffer Manager Interface
  93160. SeeAlso: AX=7A11h,AX=7A12h,AX=7A13h,AX=7A14h
  93161. Bitfields for NetWare TBMI status word:
  93162. Bit(s) Description (Table 02857)
  93163. 0 INT2F intercepted by TBMI
  93164. 1 INT7A intercepted by TBMI
  93165. 2 INT64 intercepted by TBMI
  93166. 3-14 reserved or unused ???
  93167. 15 outstanding task ID was detected
  93168. --------N-2F7A11-----------------------------
  93169. INT 2F U - Novell NetWare - TBMI v1.1+ - GET INT2F HANDLERS
  93170. AX = 7A11h
  93171. Return: ES:BX -> old INT 2F handler
  93172. DS:DX -> TBMI INT 2F handler
  93173. SeeAlso: AX=7A10h,AX=7A12h,AX=7A13h,AX=7A1Ah
  93174. --------N-2F7A12-----------------------------
  93175. INT 2F U - Novell NetWare - TBMI v1.1+ - GET INT64 HANDLERS
  93176. AX = 7A12h
  93177. Return: ES:BX -> old INT 64 handler
  93178. DS:DX -> TBMI INT 64 handler
  93179. SeeAlso: AX=7A10h,AX=7A11h,AX=7A13h
  93180. --------N-2F7A13-----------------------------
  93181. INT 2F U - Novell NetWare - TBMI v1.1+ - GET INT7A HANDLERS
  93182. AX = 7A13h
  93183. Return: ES:BX -> old INT 7A handler
  93184. DS:DX -> TBMI INT 7A handler
  93185. SeeAlso: AX=7A10h,AX=7A11h,AX=7A12h
  93186. --------N-2F7A14-----------------------------
  93187. INT 2F U - Novell NetWare - TBMI v1.1+ - GET STATISTICS
  93188. AX = 7A14h
  93189. CX = statistic to retrieve
  93190. 0000h available diagnostic functions???
  93191. Return: CX = maximum available function??? (000Ch for v2.0)
  93192. 0001h buffers in use
  93193. Return: CX = TBMI buffers currently in use
  93194. 0002h maximum buffers used
  93195. Return: CX = maximum number of buffers ever in use
  93196. 0003h unavailable buffers
  93197. Return: CX = count of unavailable TBMI buffers
  93198. 0004h old interrupt usage
  93199. Return: CX = TBMI accesses to intercepted old vectors INT 2F,
  93200. INT 64, and INT 7A
  93201. 0005h far call usage
  93202. Return: CX = TBMI accesses to IPX/SPX far call handler (not
  93203. including internal accesses)
  93204. 0006h task buffering
  93205. Return: CX = TBMI task buffering status (enabled/disabled or
  93206. disable/enable switch count???)
  93207. 0007h current task ID
  93208. Return: CX = TBMI current task ID number (0000h if ???)
  93209. 0008h outstanding ID count
  93210. Return: CX = number of outstanding TBMI IDs
  93211. 0009h configured ECBs
  93212. Return: CX = number of TBMI Event Control Blocks configured
  93213. 000Ah configured data ECBs
  93214. Return: CX = number of TBMI data ECBs configured
  93215. 000Bh configured sockets
  93216. Return: CX = number of TBMI sockets configured (from NETCFG)
  93217. 000Ch current sockets
  93218. Return: CX = number of TBMI sockets currently in use
  93219. Return: BX = maximum supported subfunction (000Ch)
  93220. SeeAlso: AX=7A10h
  93221. --------N-2F7A15-----------------------------
  93222. INT 2F OU - Novell NetWare - TBMI v1.1 only - RESET ???
  93223. AX = 7A15h
  93224. Return: BX = new value of ???
  93225. Desc: set ??? to its default value
  93226. Note: this call is a NOP under TBMI v2.0 (TBMI2)
  93227. SeeAlso: AX=7A17h
  93228. --------N-2F7A16-----------------------------
  93229. INT 2F OU - Novell NetWare - TBMI v1.1 only - ???
  93230. AX = 7A16h
  93231. CX = ???
  93232. ???
  93233. Return: ???
  93234. Note: this call is a NOP under TBMI v2.0 (TBMI2)
  93235. --------N-2F7A17-----------------------------
  93236. INT 2F OU - Novell NetWare - TBMI v1.1 only - ???
  93237. AX = 7A17h
  93238. ???
  93239. Return: BX = old value of ???
  93240. CX = new value of ???
  93241. Note: this call is a NOP under TBMI v2.0 (TBMI2)
  93242. SeeAlso: AX=7A15h
  93243. --------N-2F7A18-----------------------------
  93244. INT 2F U - Novell NetWare - TASKID v1.0 - INSTALLATION CHECK
  93245. AX = 7A18h
  93246. Return: AL = FFh if installed
  93247. BX = configuration flags (see #02858)
  93248. CX = resident code segment
  93249. SeeAlso: AX=7A10h
  93250. Bitfields for NetWare TASKID configuration flags:
  93251. Bit(s) Description (Table 02858)
  93252. 0 INT 2F hooked
  93253. 3 INT 08 hooked
  93254. other unused
  93255. --------N-2F7A19-----------------------------
  93256. INT 2F U - Novell NetWare - TASKID v1.0 - GET INT 08 HANDLERS
  93257. AX = 7A19h
  93258. Return: AL = FFh
  93259. DS:DX -> TASKID INT 08 handler
  93260. ES:BX -> original INT 08 handler
  93261. --------N-2F7A1A-----------------------------
  93262. INT 2F U - Novell NetWare - TASKID v1.0 - GET INT 2F HANDLERS
  93263. AX = 7A1Ah
  93264. Return: AL = FFh
  93265. DX:DX -> TASKID INT 2F handler
  93266. ES:BX -> original INT 2F handler
  93267. SeeAlso: AX=7A11h,AX=7A19h
  93268. --------N-2F7A1B-----------------------------
  93269. INT 2F U - Novell NetWare - TASKID v1.0 - GET DIAGNOSTICS INFORMATION
  93270. AX = 7A1Bh
  93271. CX = desired information
  93272. 0000h supported functions
  93273. 0001h TASKID ID number
  93274. Return: CX = ID number
  93275. 0002h set-ID count
  93276. Return: CX = ID set count
  93277. Return: AL = FFh
  93278. BX = highest supported subfunction number (0002h)
  93279. SeeAlso: AX=7A14h,AX=7A18h
  93280. --------N-2F7A1C-----------------------------
  93281. INT 2F U - Novell NetWare - TBMI v1.1+ - ???
  93282. AX = 7A1Ch
  93283. BP = ???
  93284. CX:DX = ???
  93285. Return: AX = 70FFh
  93286. --------N-2F7A1D-----------------------------
  93287. INT 2F U - Novell NetWare - TBMI v1.1+ - ???
  93288. AX = 7A1Dh
  93289. ???
  93290. Return: ES = ???
  93291. ???
  93292. SI destroyed
  93293. --------N-2F7A1E-----------------------------
  93294. INT 2F U - Novell NetWare - TBMI v1.1+ - ???
  93295. AX = 7A1Eh
  93296. ES:SI -> ???
  93297. ???
  93298. Return: ???
  93299. --------N-2F7A20BX0000-----------------------
  93300. INT 2F - Novell NetWare - Adv NetWare 4.0 DOS Requester - GET VLM CALL ADDRESS
  93301. AX = 7A20h
  93302. BX = 0000h
  93303. Return: AX = 0000h on success (installed)
  93304. ES:BX -> far call address for DOS Requester (see #02859)
  93305. Notes: the DOS Requester replaces the NetWare Shell (ANETx, NETx) on
  93306. NetWare LAN's as of the release of Advanced NetWare 4.0 (1993). It
  93307. is backward compatible with NetWare 2.1x through 3.11 servers as
  93308. well. Note that there was a NetWare 4.0 in the early 1980's, which
  93309. can cause confusion.
  93310. this call is used as the installation check by VLM.EXE, which is the
  93311. loader for all the modules of the DOS Requester
  93312. .VLMs are standard old .EXE format executables whose normal entry point
  93313. merely terminates to prevent loading from the command line (Novell's
  93314. VLMs all return errorlevel 6). The real entry point is found by
  93315. looking at the VLM header at the beginning of the load image
  93316. (see #02862)
  93317. Index: installation check;NetWare 4.0 DOS Requester
  93318. SeeAlso: AX=7A20h/BX=0001h,AX=7A20h/BX=0002h
  93319. (Table 02859)
  93320. Call DOS Requester entry point with:
  93321. STACK: WORD destination function
  93322. WORD destination VLM ID (see #02861)
  93323. WORD source VLM ID (0000h = application program)
  93324. other registers (except BP) as appropriate for function
  93325. Return: AX = status code (0000h,8811h,8846h,8848h,8853h) (see #02860)
  93326. ZF set if successful, clear on error
  93327. other registers as appropriate for function
  93328. STACK popped
  93329. BP destroyed
  93330. (Table 02860)
  93331. Values for VLM status code:
  93332. 0000h successful
  93333. 88xxh error generated by requester
  93334. 8801h invalid or non-attached connection handle
  93335. 8802h drive in use (OS/2 only)
  93336. 8803h cannot add CDS
  93337. 8804h bad path
  93338. 8805h error sending or receiving NCP packets
  93339. 8806h unknown network error
  93340. 8807h invalid server connection slot
  93341. 8808h no connection slots available
  93342. 880Ah no route to server
  93343. 880Bh "BAD_LOCAL_TARGET" (OS/2 only)
  93344. 880Ch too many request fragments
  93345. 880Dh "CONNECT_LIST_OVERFLOW" (OS/2 only)
  93346. 880Eh buffer overflow on receive
  93347. 880Fh no connection to server
  93348. 8810h no router found (OS/2 only)
  93349. 8811h nonexistent function called
  93350. 8830h internal server request attempted between two separate connections
  93351. 8831h no primary connection set
  93352. 8833h invalid buffer length
  93353. 8834h invalid user name
  93354. 8835h no local print spooler installed
  93355. 8836h attempted function with invalid parameter
  93356. 8837h failed to open configuration file (OS/2 only)
  93357. 8838h no configuration file (OS/2 only)
  93358. 8839h configuration file read failed (OS/2 only)
  93359. 883Ah line too long in configuration file (OS/2 only)
  93360. 883Bh configuration lines ignored (OS/2 only)
  93361. 883Ch foreign resource
  93362. 883Dh daemon already installed (OS/2 only)
  93363. 883Eh print spooler already installed
  93364. 883Fh local connection table already full
  93365. 8840h configuration section not found (OS/2 only)
  93366. 8841h invalid transport type
  93367. 8842h TDS tag in use (OS/2 only)
  93368. 8843h TDS out of memory (OS/2 only)
  93369. 8844h called TDS function with invalid tag
  93370. 8845h TDS write was truncated
  93371. 8846h called partially asynchronous function while it was busy
  93372. 8847h unable to find any responding servers
  93373. 8848h non-loaded or nonexistent VLM called
  93374. 8849h network drive already mapped
  93375. 884Ah attempted map to local drive which was already in use
  93376. 884Bh no more drives available for mapping
  93377. 884Ch device is not redirected
  93378. 884Dh no more SFT entries (too many handles)
  93379. 884Eh unable to unload
  93380. 884Fh connection entry was already in use
  93381. 8850h too many reply fragments
  93382. 8851h name table already full
  93383. 8852h socket not open
  93384. 8853h memory management error
  93385. 8854h SFT III switch occurred in mid-transfer
  93386. 8855h preferred server was not found (alternate returned)
  93387. 8856h device not recognized
  93388. 8857h bad network byte
  93389. 88A0h memory allocation error
  93390. 88A1h connection timeout failure
  93391. 88A2h transport: bad request
  93392. 88A3h specified transport not installed
  93393. 88A4h unable to open connection with specified parameters
  93394. 88A6h unsupported function
  93395. 88A7h no such task
  93396. 88A8h too many tasks
  93397. 88A9h version mismatch
  93398. 88AAh request cancelled
  93399. 88ABh invalid NDS name
  93400. 88ACh unable to perform operation while logged into NDS
  93401. 88ADh requester not available for use
  93402. 88AEh MacIPX not configured properly
  93403. 88AFh no servers found
  93404. 88B0h no volume or session associated with identifier
  93405. 88B1h not a NetWare volume
  93406. 88B2h MacIPX version incompatible with Requester
  93407. 88B4h MacIPX not open
  93408. 88B5h insufficient stack
  93409. 88B6h client API already initialized
  93410. 88B7h checksums required by client are not available
  93411. 88B8h packet signing required by client are not available
  93412. 88B9h server requires checksum
  93413. 88BAh server requires packet signing
  93414. 88BBh already logged in
  93415. 88BCh negotiated checksums but connection timed out
  93416. 89xxh error generated by server
  93417. low byte = return code from server (see also #01927,#01961)
  93418. 8900h server successful
  93419. 8901h out of disk space
  93420. 897Eh NCP boundary check failed
  93421. 897Fh ???
  93422. 8980h lock failed; file in use
  93423. 8981h out of handles
  93424. 8982h no open privileges
  93425. 8983h hard (non-correctable) I/O error
  93426. 8984h no creation privileges
  93427. 8985h no create/delete privileges
  93428. 8986h attempted to create a file which already exists read-only
  93429. 8987h filename error during creation (wildcards in name)
  93430. 8988h invalid file handle
  93431. 8989h no search privileges
  93432. 898Ah no deletion privileges
  93433. 898Bh no rename privileges
  93434. 898Ch no modify privileges
  93435. 898Dh some affected files are in use
  93436. 898Eh all affected files are in use
  93437. 898Fh some affected files are read-only
  93438. 8990h all affected files are read-only; volume read-only
  93439. 8991h some files could not be renamed because target names already exist
  93440. 8992h all affected names exist
  93441. 8993h no read privileges
  93442. 8994h no write privileges
  93443. 8995h file detached
  93444. 8996h server out of memory
  93445. 8997h no disk space for spool file
  93446. 8998h disk map error; volume does not exist
  93447. 8999h directory full
  93448. 899Ah attempt to rename across volumes
  93449. 899Bh bad directory handle
  93450. 899Ch invalid path; no more trustees
  93451. 899Dh no directory handles
  93452. 899Eh bad filename
  93453. 899Fh directory active
  93454. 89A0h directory not empty
  93455. 89A1h directory I/O error
  93456. 89A2h I/O lock error
  93457. 89A3h-89A5h ???
  93458. 89A6h auditing is active
  93459. 89A7h auditing version error
  93460. 89A8h no auditing rights
  93461. 89A3h-89BEh ???
  93462. 89BFh invalid name space
  93463. 89C0h no account privileges
  93464. 89C1h no account balance
  93465. 89C2h credit limit exceeded
  93466. 89C4h account disabled
  93467. 89C5h login lockout (intruder detection activated)
  93468. 89C6h no console rights
  93469. 89C7h-89CFh
  93470. 89D0h queue error
  93471. 89D1h no queue
  93472. 89D2h no queue server
  93473. 89D3h no queue rights
  93474. 89D4h queue full
  93475. 89D5h no queue job
  93476. 89D6h no job rights; unencrypted password
  93477. 89D7h queue servicing error; duplicate password; bad account
  93478. 89D8h queue not active; password too short
  93479. 89D9h station not queue server; maximum logins exceeded
  93480. 89DAh queue halted; bad login time
  93481. 89DBh maximum queue servers; unauthorized login station
  93482. 89DCh account disabled or expired
  93483. 89DEh password expired (all grace logins used up)
  93484. 89DFh password expired but login allowed (grace login)
  93485. 89E0h-89E6h ???
  93486. 89E7h no disk track
  93487. 89E8h property is not an item property; write to group
  93488. 89E9h member exists
  93489. 89EAh no such member
  93490. 89EBh property is not a set property
  93491. 89ECh no such set
  93492. 89EDh property exists
  93493. 89EEh object exists
  93494. 89EFh illegal name
  93495. 89F0h illegal wildcard
  93496. 89F1h invalid bindery security level
  93497. 89F2h not allowed to read object
  93498. 89F3h not allowed to write/rename object
  93499. 89F4h not allowed to delete object
  93500. 89F5h not allowed to create object
  93501. 89F6h not allowed to delete property
  93502. 89F7h not allowed to create property; attempt to use non-local drive
  93503. 89F8h not allowed to write property; already attached to server
  93504. 89F9h not allowed to read property; no free connection slots
  93505. 89FAh temporary remap error; no more server slots
  93506. 89FBh no such property; invalid parameters
  93507. 89FCh no such object; internet packet request canceled; unknown file server
  93508. 89FDh bad station number; lock collision
  93509. 89FEh directory locked; bindery locked; timeout
  93510. 89FFh general error; hard error; lock error
  93511. Note: some server-generated error codes have multiple interpretations; use
  93512. the one appropriate to the failing call
  93513. (Table 02861)
  93514. Values for VLM identifier:
  93515. 0001h VLM.EXE Virtual Loadable Modules manager (see also #02864)
  93516. 0010h CONN.VLM connection table manager (see also #02867)
  93517. 0020h TRAN.VLM transport protocol multiplexor (see also #02871)
  93518. 0021h IPXNCP.VLM transport protocol implementation using IPX (see #02873)
  93519. 0022h TCPNCP.VLM TCP/IP transport
  93520. 0030h NWP.VLM NetWare protocol multiplexor (see also #02875)
  93521. 0031h BIND.VLM bindery
  93522. 0032h NDS.VLM NetWare Directory Services (see also #02877)
  93523. 0033h PNW.VLM Personal NetWare
  93524. 0034h RSA.VLM RSA encryption for directory services re-authentication
  93525. 0040h REDIR.VLM DOS redirector (see also #02879)
  93526. 0041h FIO.VLM file I/O (see also #02882)
  93527. 0042h PRINT.VLM printer redirector (see also #02884)
  93528. 0043h GENERAL.VLM misc functions for NETx and REDIR (see also #02888)
  93529. 0050h NETX.VLM NetWare shell compatibility (see also #02890)
  93530. 0060h AUTO.VLM auto-reconnect/auto-retry
  93531. 0061h SECURITY.VLM enhanced security module (see #02892)
  93532. 0100h NMR.VLM NetWare management responder
  93533. 09F2h DRVPRN.VLM Desktop SNMP Services - Drive/Printer Mappings
  93534. 09F5h SAA.VLM SAA client API for Netware
  93535. 09F6h IPXMIB.VLM SNMP IPX-monitoring Module???
  93536. 09F7h PNWMIB.VLM Personal Netware SNMP Instrumentation Module
  93537. 09F8h PNWTRAP.VLM Personal Netware SNMP Trap Module
  93538. 09F9h MIB2PROT.VLM MIB-II Protocol Groups
  93539. 09FAh MIB2IF.VLM MIB-II Interfaces Group
  93540. 09FBh NVT.VLM ???
  93541. 09FCh WSTRAP.VLM Desktop SNMP Services - Trap Module
  93542. 09FDh WSREG.VLM Desktop SNMP Services - Registration Module
  93543. 09FEh WSASN1.VLM Desktop SNMP Services - ASN.1 Module
  93544. 09FFh WSSNMP.VLM Desktop SNMP Services - Agent Module
  93545. Format of VLM header:
  93546. Offset Size Description (Table 02862)
  93547. 00h DWORD -> initialization entry point
  93548. 04h DWORD -> VLM API entry point
  93549. 08h DWORD -> ??? entry point
  93550. 0Ch DWORD -> ??? entry point
  93551. 10h DWORD -> ??? entry point
  93552. ...
  93553. var DWORD 00000000h (end of entry point list)
  93554. 4 BYTEs signature "NVlm"
  93555. WORD VLM identifier (see #02861)
  93556. ---v1.20+ ---
  93557. 1Eh WORD ???
  93558. 20h WORD Transient Switch Count
  93559. 22h WORD VLM Call Count
  93560. 24h WORD Offset ControlBlocks (See #02863)
  93561. 26h WORD Current VLMID
  93562. 28h BYTE Memory Type
  93563. 00h=Conventional 02h=EMS 04h=XMS
  93564. 29h BYTE Modules Loaded
  93565. 2Ah WORD BlockId
  93566. 2Ch WORD Transient Block
  93567. 2Eh WORD Global Segment
  93568. 30h 3 DWORDs pointers to AsyncQueue head, tail, and s???
  93569. 3Ch 3 DWORDs pointers BusyQueue head, tail, and s???
  93570. 48h WORD ReEntrance Level
  93571. 4Ah WORD Full Map Count
  93572. 4Ch WORD ???
  93573. 4Eh 80 BYTEs ASCIZ configuration file filename
  93574. Note: the number of entry points in the header is reported as "Func" in the
  93575. VLM /D display.
  93576. Format of VLM Control Block for VLM v1.20 [array]:
  93577. Offset Size Description (Table 02863)
  93578. 00h WORD Flag
  93579. 02h WORD VLM Identifier (See #02861)
  93580. 04h WORD Func
  93581. 06h WORD Maps
  93582. 08h WORD number of times called
  93583. 0Ah WORD ???
  93584. 0Ch WORD Transient Segment
  93585. 0Eh WORD Global Segment
  93586. 10h WORD Address Low
  93587. 12h WORD Address High
  93588. 14h WORD TSegSize
  93589. 16h WORD GSegSize
  93590. 18h WORD SSegSize
  93591. 1Ah BYTE VLMName[9] ASCIZ
  93592. Note: this information is shown in VLM /d under the dashed line. There are
  93593. as many 35-byte blocks as modules loaded
  93594. SeeAlso: #02862
  93595. (Table 02864)
  93596. Call VLM Manager (VLM.EXE, ID 0001h) with:
  93597. Func Description/Registers
  93598. 01h VLM Notify
  93599. BX = function
  93600. 0000h get version
  93601. Return: AX = status (see #02860)
  93602. BX = major version of VLM supported (0001h)
  93603. CX = minor version of VLM supported (0000h)
  93604. 03h VLM Statistics
  93605. CX = length of buffer
  93606. ES:DI -> buffer for statistics (see #02865)
  93607. Return: AX = status (0000h if successful)
  93608. buffer filled if successful
  93609. 04h VLM internal use
  93610. BX = function
  93611. 0000h get interrupt vector (calls INT 21/AH=35h)
  93612. 0001h begin critical section (calls INT 2F/AX=1681h)
  93613. 0002h end critical section (calls INT 2F/AX=1682h)
  93614. 0003h ???
  93615. Format of VLM.EXE statistics:
  93616. Offset Size Description (Table 02865)
  93617. 00h WORD size of statistics record in bytes (including this word)
  93618. 02h WORD number of times a VLM has been mapped into memory
  93619. 04h WORD number of times a VLM has been called
  93620. 06h WORD offset of vcbArray buffer
  93621. 08h WORD VLM ID of VLM currently mapped into memory
  93622. 0Ah BYTE memory type: conventional/EMS/XMS
  93623. 0Bh BYTE number of loaded VLMs
  93624. 0Ch WORD EMS/XMS handle or 0000h if conventional memory
  93625. 0Eh WORD start segment for conventional memory swap
  93626. 10h WORD segment for global memory, or 0000h if conventional memory
  93627. 12h 12 BYTEs queue structure for asynchronous calls (see #02866)
  93628. 1Eh 12 BYTEs queue structure for synchronous calls (see #02866)
  93629. 2Ah WORD current re-entrance level
  93630. 2Ch WORD number of times EMS/XMS map-out performed
  93631. 2Eh BYTE stack switch control
  93632. 2Fh BYTE flag: nonzero if switcher loaded
  93633. 30h 80 BYTEs pathname of configuration file
  93634. SeeAlso: #02864
  93635. Format of VLM.EXE queue structure:
  93636. Offset Size Description (Table 02866)
  93637. 00h DWORD queue head (initially 00000000h)
  93638. 04h DWORD queue tail (initialized to be same as head)
  93639. 08h WORD current queue size (number of nodes in queue)
  93640. 0Ah WORD maximum queue size (in nodes)
  93641. SeeAlso: #02865
  93642. (Table 02867)
  93643. Call Connection Manager (CONN.VLM, ID 0010h) with:
  93644. Func Description/Registers
  93645. 01h Conn Get Version
  93646. BX = function
  93647. 0000h get version
  93648. Return: AX = status (see #02860)
  93649. BX = major version of VLM supported (0001h)
  93650. CX = minor version of VLM supported (0000h)
  93651. 03h Conn Statistics
  93652. CX = length of buffer
  93653. ES:DI -> buffer for connection statistics (see #02868)
  93654. Return: AX = status (0000h successful)
  93655. 04h Conn Alloc Handle
  93656. Return: AX = status (0000h successful)
  93657. CX = connection handle
  93658. 05h Conn Validate Handle
  93659. CX = connection handle
  93660. Return: AX = 0000h if valid handle
  93661. 06h Conn Free Handle
  93662. CX = connection handle
  93663. Return: AX = status (0000h successful)
  93664. 07h Conn Get Entry Field
  93665. BH = connection parameter (see #02870)
  93666. CX = connection handle
  93667. DX = value if BH is non-array parameter
  93668. DH = offset in array if BH is array parameter
  93669. DL = number of bytes to copy if BH is array
  93670. ES:DI -> return buffer if BH is array
  93671. Return: AX = 0000h if successful
  93672. DL/DX = value if non-array parameter
  93673. DH = maximum number of bytes in buffer if array parameter
  93674. DL = number of bytes copied if array
  93675. BX destroyed
  93676. 08h Conn Set Entry Field
  93677. BH = connection parameter (see #02870)
  93678. CX = connection handle
  93679. DL/DX = value if BH is non-array parameter
  93680. DH = offset in array if BH is array parameter
  93681. DL = number of bytes to copy if BH is array
  93682. DS:SI -> buffer if BH is array
  93683. Return: AX = 0000h if successful
  93684. DH = maximum number of bytes in buffer
  93685. DL = number of bytes copied
  93686. BX destroyed
  93687. 09h Conn Reset Entry Field
  93688. BH = connection parameter (see #02870)
  93689. CX = connection handle
  93690. Return: AX = 0000h if successful
  93691. BX,DX destroyed
  93692. 0Ah Conn Lookup Handle
  93693. BL = lookup type (00h equal, 40h not equal)
  93694. BH = connection parameter (see #02870)
  93695. CX = connection handle, 0000h if first
  93696. DL/DX = value if BH is non-array parameter
  93697. DH = offset in array if BH is array parameter
  93698. DL = number of bytes to copy if BH is array
  93699. DS:SI (ES:DI???) -> buffer if BH is array
  93700. Return: AX = 0000h if successful
  93701. CX = handle matching given parameters
  93702. 0Dh Conn Name Lookup
  93703. CX = connection handle
  93704. ES:DI -> 49-byte buffer for server name or 0000h:0000h
  93705. Return: AX = 0000h if successful
  93706. BX = length of server name
  93707. ES:DI buffer filled if pointer not 0000h:0000h
  93708. 0Eh Conn Name To Handle
  93709. DS:SI -> uppercased server name
  93710. CX = length of server name, 0000h if ASCIZ name
  93711. Return: AX = error code or 0000h if successful
  93712. CX = connection handle if successful
  93713. 0Fh Conn Get Num Connections
  93714. Return: AX = status (0000h if successful)
  93715. DX = number of connections
  93716. CX = segment of connection table
  93717. first entry in table (See #02869)
  93718. Format of VLM connection statistics:
  93719. Offset Size Description (Table 02868)
  93720. 00h WORD total length of statistics record (including this word)
  93721. 02h WORD number of connection handles allocated
  93722. 04h WORD average name length (configured in NET.CFG)
  93723. 06h WORD maximum number of tasks (configured in NET.CFG)
  93724. 08h WORD number of failed "allocate handle" calls
  93725. 0Ah WORD number of failed "add name" calls
  93726. 0Ch WORD number of failed task calls
  93727. Note: some versions of the NetWare requester reportedly do not implement
  93728. this correctly
  93729. SeeAlso: #02867
  93730. Format of NetWare VLM Connection Table [array]:
  93731. Offset Size Description (Table 02869)
  93732. 00h WORD Protocol VLMid 0032(NDS) 0031(BIND) Func 07 equiv.
  93733. 0033(PNW) 0000(unused) BH=01h
  93734. 02h BYTE (connection status)
  93735. bit 6: connection locked BH=16h
  93736. bit 5: authenticated BH=03h
  93737. bit 4: permanent BH=02h
  93738. bit 2: broadcast msg waiting BH=12h
  93739. 03h BYTE (connection capabilities)
  93740. bit 5: Large Internet Packets none
  93741. bit 3: Packet Burst Reset BH=07h
  93742. bit 2: Max I/O BH=06h
  93743. bit 1: SFT3 change BH=05h
  93744. bit 0: Packet Burst Support BH=04h
  93745. 04h WORD reference count BH=09h
  93746. 06h WORD soft resource count BH=15h
  93747. 08h BYTE NCP Order Number BH=0Eh
  93748. 09h BYTE Server security options BH=14h
  93749. bit 0: CRC enabled
  93750. bit 1: packet signing required
  93751. bit 5: packet signing enabled
  93752. 0Ah BYTE OS Major Version BH=08h
  93753. 0Bh BYTE OS Minor Version BH=08h
  93754. 0Ch WORD Hops to Server BH=0Ah
  93755. 0Eh WORD Maximum Packet Size for this connection BH=0Bh
  93756. 10h WORD LIP Parameters BH=13h
  93757. 12h WORD NCP Request Type BH=10h
  93758. 14h BYTE NCP Sequence BH=0Ch
  93759. 15h WORD Connection Number BH=0Dh
  93760. 17h BYTE ??? none
  93761. 18h WORD Transport VLMid 21(IPXNCP) 22(TCPNCP) BH=0Fh
  93762. 1Ah BYTE Node Address[4] BH=11h
  93763. 1Eh BYTE Network[6] BH=11h
  93764. 24h BYTE Socket[2] BH=11h
  93765. 26h BYTE Local Target[6] BH=11h
  93766. 2Ch WORD Round Trip Time BH=11h
  93767. 2Eh WORD ??? none
  93768. SeeAlso: #02867
  93769. (Table 02870)
  93770. Values for NetWare Connection Manager CEI (Connection Entry Information):
  93771. number flags description
  93772. 00h FR error
  93773. 01h WL VLM id of transport protocol (NDS/BIND/PNW)
  93774. 00h = wildcard
  93775. 02h FR permanent flag (01h if connection is permanent)
  93776. 03h F authenticated flag (01h if connection is authenticated)
  93777. 04h F packet burst supported
  93778. 05h FR SFT3 change status
  93779. 06h FR connection needs maximum I/O transmission
  93780. 07h FR packet burst reset needed
  93781. 08h W server version
  93782. 09h W reference count (tasks using connection, 00h = dynamic)
  93783. 0Ah W distance to server associated with connection
  93784. 0Bh W maximum packet size supported by transport protocol
  93785. 0Ch B NCP sequence number
  93786. 0Dh W connection number
  93787. 0Eh B NCP order number
  93788. 0Fh WL VLM id for transport protocol
  93789. 00h = wildcard, 21h = IPX, 22h = TCP
  93790. 10h W NCP request type
  93791. 11h A transport specific buffer
  93792. 12 byte server address
  93793. 6 byte router address
  93794. 2 byte round trip time
  93795. 12h FR broadcast message waiting
  93796. 13h W large internet packets supported
  93797. 14h B security options
  93798. bit 0: CRC enabled
  93799. bit 1: packet signing enabled
  93800. bit 5: packet signing active
  93801. 15h W soft resource count
  93802. 16h FR connection locked
  93803. Note: flag meanings
  93804. F=flag value
  93805. B=byte value
  93806. W=word value
  93807. A=array
  93808. R=resettable
  93809. L=settable only before authentication
  93810. others=read only
  93811. SeeAlso: #02867
  93812. (Table 02871)
  93813. Call TRAN.VLM (VLM ID 0020h) with:
  93814. Func Description/Registers
  93815. 01h TRAN Get Version
  93816. BX = function
  93817. 0000h get version
  93818. Return: AX = status (see #02860)
  93819. BX = major version of VLM supported (0001h)
  93820. CX = minor version of VLM supported (0000h)
  93821. 03h TRAN Statistics
  93822. 06h TRAN Request Reply (see INT 21/AH=F2h)
  93823. AL = NCP request code (see #02095 at INT 21/AH=F2h)
  93824. BH = error handler flag
  93825. 00h default error handler
  93826. 01h return network errors to caller
  93827. 02h handle network errors in requester
  93828. BL = request list length (max 5 fragments) (see #02872)
  93829. CX = connection handle
  93830. DH = 00h (reserved)
  93831. DL = reply list length (max 5 fragments) (see #02872)
  93832. DS:SI -> address list (each element is DWORD address + WORD length)
  93833. ES:DI -> address list
  93834. Return: AX = error code, 0000h if successful (see #02860)
  93835. BX,DX destroyed
  93836. ES:DI buffer filled with reply packet fragments
  93837. 08h TRAN Schedule/Cancel Event
  93838. BX = subfunction
  93839. 0000h schedule event
  93840. AX = number of timer ticks to delay before calling function
  93841. ES:SI -> event control block (including valid call address)
  93842. 0001h cancel event
  93843. ES:SI -> event control block (including call address)
  93844. Return: AX = status (0000h = successful) (see #02860)
  93845. 09h TRAN Get Max Phys Size
  93846. BX = subfunction
  93847. 00h get maximum node size
  93848. Return: AX = status (0000h = successful) (see #02860)
  93849. BX = maximum supported physical packet size
  93850. DX = size of protocol header
  93851. SI = RequestReply socket number
  93852. 01h get maximum route size to specified server
  93853. CX = connection handle for route to be checked
  93854. Return: AX = status (0000h = successful) (see #02860)
  93855. DX = maximum supported packet size for current route
  93856. 0Ah TRAN Broadcast Mux
  93857. BX = subfunction
  93858. 0001h get stored broadcast (Personal NetWare)
  93859. ES:DI -> 60-byte buffer for counted ASCIZ message string
  93860. Return: AX = status (0000h = successful) (see #02860)
  93861. Format of TRAN.VLM request/reply fragment descriptor (array):
  93862. Offset Size Description (Table 02872)
  93863. 00h DWORD address of buffer
  93864. 04h WORD length of buffer
  93865. (Table 02873)
  93866. Call IPXNCP.VLM (VLM ID 0021h) with:
  93867. Func Description/Registers
  93868. 01h IPX Get Version
  93869. BX = function
  93870. 0000h get version
  93871. Return: AX = status (see #02860)
  93872. BX = major version of VLM supported (0001h)
  93873. CX = minor version of VLM supported (0000h)
  93874. 03h IPX Statistics
  93875. CX = length of buffer
  93876. ES:DI -> buffer for statistics (see #02874)
  93877. Return: AX = status (see #02860)
  93878. 06h IPXNCP Request Reply???
  93879. functionally equivalent to Tran Request Reply???
  93880. Format of NetWare IPX statistics:
  93881. Offset Size Description (Table 02874)
  93882. 00h WORD size of statistics, including this word
  93883. 02h DWORD number of TRAN Request Reply calls made
  93884. 06h WORD number of user aborts
  93885. 08h WORD number of user retries
  93886. 0Ah WORD IPX receive errors
  93887. 0Ch WORD IPX send errors
  93888. 0Eh WORD number of unrecognized responses
  93889. 10h WORD number of bad connection numbers in requests
  93890. 12h WORD number of bad sequence responses
  93891. 14h WORD receive buffer overflows
  93892. 16h WORD number of times route to attached server was lost
  93893. 18h WORD number of times server responded "busy"
  93894. 1Ah WORD number of unknown "NCPRepCompCode" values
  93895. 1Ch WORD number of bad connection numbers in responses
  93896. 1Eh WORD padding for NETX compatibility
  93897. 20h WORD padding for NETX compatibility
  93898. 22h WORD number of attach requests to server without route
  93899. 24h WORD number of times server responded to attach without slot
  93900. 26h WORD number of times a server went down during a request
  93901. 28h DWORD same-server optimizations
  93902. 2Ch WORD local route changes
  93903. 2Eh WORD IPX CRC errors
  93904. 30h WORD number of user fails
  93905. 32h BYTE flag: CRCs enabled
  93906. 33h BYTE flag: LIP enabled
  93907. 34h BYTE flag: configurable NET error handler
  93908. SeeAlso: #02873
  93909. (Table 02875)
  93910. Call NWP.VLM (VLM ID 0030h) with:
  93911. Func Description/Registers
  93912. 01h NWP Get Version
  93913. BX = function
  93914. 0000h get version
  93915. Return: AX = status (see #02860)
  93916. BX = major version of VLM supported (0001h)
  93917. CX = minor version of VLM supported (0000h)
  93918. 03h NWP Statistics
  93919. CX = size of buffer for statistics
  93920. ES:DI -> buffer for statistics (see #02876)
  93921. Return: AX = status (see #02860)
  93922. 04h NWP Connect
  93923. DL = resource count state (NDS connections only)
  93924. CX = proposed connection handle (not yet connected to server)
  93925. DS:SI -> 48-byte server name (NUL-terminated if less than 48 bytes)
  93926. Return: AX = status (0000h = successful) (see #02860)
  93927. CX = actual connection handle to use
  93928. Note: if the returned handle differs from the proposed handle, the
  93929. proposed handle should be freed
  93930. 05h NWP Disconnect
  93931. DL = ???
  93932. 00h global disconnect -- clear all resources associated with conn.
  93933. 01h destroy connection -- send disconnect request to server
  93934. CX = connected connection handle
  93935. Return: AX = status (0000h = successful) (see #02860)
  93936. 06h NWP Attach
  93937. DL = resource count state (NDS connections only)
  93938. CX = connection handle (allocated by not yet attached to server)
  93939. DS:SI -> full network address for desired server
  93940. Return: AX = status (0000h = successful) (see #02860)
  93941. 08h NWP Login
  93942. BX = object type
  93943. CX = connection handle (must be connected) to be authenticated
  93944. DS:SI -> ASCIZ user name (max 48 bytes)
  93945. ES:DI -> ASCIZ user password (max 128 bytes)
  93946. Return: AX = status (0000h = successful) (see #02860)
  93947. 09h NWP Logout
  93948. CX = connection handle
  93949. Return: AX = status (0000h = successful) (see #02860)
  93950. 0Ah NWP Get Bindery Object/Get Message Handler
  93951. BX = subfunction
  93952. 0002h set workstation's broadcast message mode
  93953. DL = message mode
  93954. 00h client hold client message set on, retrieve/display on
  93955. 01h client hold client message set off, retr/display on
  93956. 02h client hold client message set on, retrieve/dislay off
  93957. 03h client hold client message set off, retr/display off
  93958. 04h get current message mode
  93959. 05h set broadcast callback
  93960. CX:SI -> callback handler
  93961. 06h get broadcast timeout
  93962. 07h set broadcast timeout
  93963. CX = timeout in timer ticks (0000h = never)
  93964. CX = connection handle, or 0000h to notify all servers
  93965. 0003h get object ID for object name
  93966. AX = object type (big-endian)
  93967. CX = connection handle
  93968. DX = length of object name
  93969. ES:DI -> uppercased ASCIZ object name
  93970. Return: AX = status (see #02860)
  93971. DX:BX = object ID
  93972. 0004h get object name for object ID
  93973. DX:SI = object ID
  93974. CX = connection handle for server which is to do the lookup
  93975. ES:DI -> 48-byte buffer for object name
  93976. Return: AX = status (see #02860)
  93977. 0005h retrieve broadcast message
  93978. 0Ch NDS Fragment Request (passed to NDS.VLM's function 0Ch) (see #02877)
  93979. AX = verb or request type
  93980. CX = connection handle
  93981. DS:SI -> request structure (DWORD data address followed by WORD size)
  93982. ES:DI -> buffer for reply structure (same format as request)
  93983. Return: AX = status (0000h = successful) (see #02860)
  93984. 0Eh NWP Ordered Send To All
  93985. AL = NCP request code
  93986. AH = inverse request code (FFh if none) to back out from failures
  93987. BX = number of fragments in request list
  93988. DX = number of fragments in reply list buffer
  93989. DS:SI -> request fragment list
  93990. ES:DI -> reply fragment list
  93991. Return: AX = status (see #02860)
  93992. BX, CX, DX destroyed
  93993. Note: the available functions are described under INT 21/AX=F2xxh
  93994. 0Fh NWP Preferred Handler
  93995. BX = subfunction
  93996. 0000h get preferred connection name
  93997. DX = VLM ID (NDS/BIND/PNW)
  93998. ES:DI -> 49-byte buffer for connection name
  93999. Return: ES:DI buffer filled
  94000. 0001h set preferred connection name
  94001. DX = VLM ID (NDS/BIND/PNW)
  94002. CX = length of connection name (may be 0000h, max 48)
  94003. DS:SI -> name of preferred connection
  94004. 0002h get preferred connection ID
  94005. DX = VLM ID (NDS/BIND/PNW)
  94006. Return: AX = status (see #02860)
  94007. CX = connection handle if successful
  94008. 0003h get server address
  94009. CX = connection handle or 0000h
  94010. DS:SI -> ASCIZ name to be resolved
  94011. ES:DI -> 12-byte buffer for server address
  94012. 10h NWP Security???
  94013. BX = subfunction
  94014. 0001h get security flags (see also INT 21/AX=B301h)
  94015. Return: BX:CX indicates signature level
  94016. = 0100h:0000h if signature level=0
  94017. = 0300h:0000h if signature level=1
  94018. = 0302h:0000h if signature level=2
  94019. = 0302h:0202h if signature level=3
  94020. 0002h create session keys (see also INT 21/AX=B302h)
  94021. CX = server connection handle
  94022. DS:SI -> 24-byte input buffer
  94023. 0004h set security flags (see also INT 21/AX=B304h)
  94024. BL:CL = new flags
  94025. 0006h renegotiate security level (see also INT 21/AX=B306h)
  94026. CX = server connection number (01h-08h)
  94027. Format of NWP.VLM statistics:
  94028. Offset Size Description (Table 02876)
  94029. 00h WORD size of statistics record (including this byte)
  94030. 02h BYTE flag: Large Internet Packets enabled
  94031. 03h BYTE bit flags: enabled security features
  94032. 04h BYTE bit flags: preferred security features
  94033. 05h BYTE bit flags: required security features
  94034. 06h BYTE minimum level of required security
  94035. SeeAlso: #02875
  94036. (Table 02877)
  94037. Call NDS.VLM (VLM ID 0032h) with:
  94038. Func Description/Registers
  94039. 01h NDS Get Version
  94040. BX = function
  94041. 0000h get version
  94042. Return: AX = status (see #02860)
  94043. BX = major version of VLM supported (0001h)
  94044. CX = minor version of VLM supported (0000h)
  94045. 03h NDS Statistics
  94046. 06h NDS Attach
  94047. CX = allocated connection handle
  94048. DS:SI -> server address
  94049. 08h NDS Fragment Requst
  94050. Return: AX = 8836h (invalid parameter)
  94051. Note: this function was documented but does not work
  94052. 0Ch NDS context
  94053. BX = subfunction
  94054. 0000h get default name context
  94055. CX = length of buffer for default context
  94056. ES:DI -> buffer to receive name
  94057. Return: ES:DI buffer filled
  94058. 0001h set default context
  94059. CX = length of new default context name
  94060. DS:SI -> context name
  94061. 0002h read from TDS
  94062. CX = reply buffer length
  94063. DX = 0110h ???
  94064. SI = offset in TDS
  94065. ES:DI -> reply buffer
  94066. 0003h write to TDS
  94067. 0005h "NWDSChangeResourceConnection/Lock Connection"
  94068. CX = connection handle
  94069. DL = subfunction (00h-09h)
  94070. 04h = NWDSChangeResourceOnConnection
  94071. 07h = NWDSChangeResourceOnConnection
  94072. 08h = NWDSLockConnection
  94073. 0006h NDS change connection state (internal)
  94074. CX = connection handle
  94075. AL = 00h or 01h
  94076. 0007h "NWDSSetMonitoredConnection"
  94077. AX = subfunction
  94078. 0001h get monitored connection
  94079. Return: CX = connection handle???
  94080. 0002h set monitored connection
  94081. CX = connection handle???
  94082. 0008h send NDS request
  94083. AX = NDS function
  94084. CX = connection handle
  94085. DS:SI -> request buffer descriptor (see #02878)
  94086. ES:DI -> reply buffer descriptor (see #02878)
  94087. 000Ah set NDS CEI Info
  94088. DL = buffer length
  94089. DS:SI -> input buffer
  94090. Format of NetWare NDS request/reply buffer descriptor:
  94091. Offset Size Description (Table 02878)
  94092. 00h DWORD -> buffer
  94093. 04h WORD length of buffer in bytes
  94094. SeeAlso: #02877
  94095. (Table 02879)
  94096. Call REDIR.VLM (VLM ID 0040h) with:
  94097. Func Description/Registers
  94098. 01h Redir Get Version
  94099. BX = function
  94100. 0000h get version
  94101. Return: AX = status (see #02860)
  94102. BX = major version of VLM supported (0001h)
  94103. CX = minor version of VLM supported (0000h)
  94104. 03h Redir Statistics
  94105. CX = length of buffer
  94106. ES:DI -> buffer for statistics (see #02880)
  94107. Return: AX = status (0000h if successful) (see #02860)
  94108. buffer filled if successful
  94109. 04h Redir Build SFT (see INT 21/AH=B4h"NetWare")
  94110. CX = connection handle
  94111. ES:DI -> SFT build request (see #02881)
  94112. Return: AX = 0000h if successful
  94113. BX = DOS file handle
  94114. 05h Redir DOS To NW Handle
  94115. BX = DOS file handle
  94116. ES:DI -> 11-byte buffer for NetWare handle
  94117. 08h Redir Specific
  94118. BX = 0000h get item
  94119. DS:SI -> ASCIZ string "LPTx" (x='1'-'9') or drive spec ("d:")
  94120. ES:DI -> 512-byte reply buffer for
  94121. "\\server\resource",00h,"path",00h
  94122. Return: AX = status (0000h if successful) (see #02860)
  94123. Format of REDIR.VLM statistics:
  94124. Offset Size Description (Table 02880)
  94125. 00h WORD size of statistics record (including this word)
  94126. 02h WORD number of network errors causing a critical error (see INT 24)
  94127. 04h WORD number of drives currently redirected
  94128. SeeAlso: #02879
  94129. Format of NetWare SFT build request:
  94130. Offset Size Description (Table 02881)
  94131. 00h 6 BYTEs NetWare handle
  94132. 06h WORD reserved for internal use
  94133. 08h 14 BYTEs ASCIZ filename
  94134. 16h BYTE DOS file attributes
  94135. bit 7: file is shareable
  94136. 17h BYTE reserved
  94137. 18h LONG file size
  94138. 1Ch WORD creation date
  94139. 1Eh WORD last access date or 0000h
  94140. 20h WORD last update date or 0000h
  94141. 22h WORD last update time or 0000h
  94142. (Table 02882)
  94143. Call File I/O FIO.VLM (VLM ID 0041h) with:
  94144. Func Description/Registers
  94145. 01h FIO Get Version
  94146. BX = function
  94147. 0000h get version
  94148. Return: AX = status (see #02860)
  94149. BX = major version of VLM supported (0001h)
  94150. CX = minor version of VLM supported (0000h)
  94151. 03h FIO Statistics
  94152. CX = length of buffer
  94153. ES:DI -> buffer for statistics (see #02883)
  94154. Return: AX = status (0000h if successful)
  94155. buffer filled if successful
  94156. 04h FIO Remote Copy
  94157. Format of NetWare FIO statistics:
  94158. Offset Size Description (Table 02883)
  94159. 00h WORD length of statistics record (including this word)
  94160. 02h WORD number of read requests
  94161. 04h WORD number of write requests
  94162. 06h WORD number of cache read hits
  94163. 08h WORD number of cache write hits
  94164. 0Ah WORD number of cacheable files with free blocks
  94165. 0Ch WORD number of cacheable files without free blocks
  94166. 0Eh WORD number of standard read requests
  94167. 10h WORD number of standard write requests
  94168. 12h WORD number of burst read requests
  94169. 14h WORD number of burst write requests
  94170. 16h BYTE flag: cache writes enabled
  94171. 17h BYTE flag: true commits enabled
  94172. 18h WORD number of cache blocks
  94173. 1Ah WORD size of a cache buffer
  94174. 1Ch WORD number of ECBs for packet bursts (0000h if bursts disabled)
  94175. SeeAlso: #02882
  94176. (Table 02884)
  94177. Call PRINT.VLM (VLM ID 0042h) with:
  94178. Func Description/Registers
  94179. 01h Print Get Version
  94180. BX = function
  94181. 0000h get version
  94182. Return: AX = status (see #02860)
  94183. BX = major version of VLM supported (0001h)
  94184. CX = minor version of VLM supported (0000h)
  94185. 03h Print Statistics
  94186. CX = length of buffer
  94187. ES:DI -> buffer for statistics (see #02885)
  94188. Return: AX = status (0000h if successful) (see #02860)
  94189. buffer filled if successful
  94190. 04h Print Get/Set Data
  94191. BX = subfunction
  94192. 00h set printer control flags (see #02886)
  94193. 01h get printer control flags
  94194. 02h set extended printer control flags (see #02887)
  94195. 03h get extended printer control flags
  94196. AX = offset within Print structures at which to start read/write
  94197. CX = number of bytes to transfer
  94198. DX = printing device number (00h=LPT1/PRN, 01h=LPT2, etc.)
  94199. DS:SI -> buffer containing values for flags (subfunctions 00h/02h)
  94200. ES:DI -> buffer for flags (subfunctions 01h/03h
  94201. Return: AX = status (see #02860)
  94202. ---if successful---
  94203. CX = number of bytes returned (subfunctions 01h/03h)
  94204. DX = maximum supported size for function/type of data
  94205. 05h Print Open Capture File
  94206. 07h Print Get Num Of Printers
  94207. BX = subfunction
  94208. 0000h get number of physical printers
  94209. nonzero: get configured printer (from NET.CFG)
  94210. Return: AX = status (see #02860)
  94211. ---if successful---
  94212. BX = number of physical/configured printers
  94213. 08h Print Redirection
  94214. BX = subfunction
  94215. 0000h redirect device to queue
  94216. AX = length of queue name, 0000h to use queue ID
  94217. CX = connection handle
  94218. DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.)
  94219. DS:SI -> uppercased ASCIZ queue name
  94220. ES:DI -> DWORD queue ID, 00000000h to use queue name
  94221. 0001h test whether device is redirected
  94222. DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.)
  94223. 0002h cancel redirection
  94224. DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.)
  94225. 0003h redirect device to file
  94226. AX = 0000h or 4E57h ('NW')
  94227. CX = connection handle
  94228. DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.)
  94229. ES:DI -> ASCIZ path of file
  94230. 0004h get extended redirection information (see #02886)
  94231. DX = printer/device number (00h=LPT1/PRN, 01h=LPT2, etc.)
  94232. ES:DI -> buffer for server/queue name
  94233. Return: ES:DI buffer filled
  94234. Return: AX = 0000h if successful
  94235. 09h Print Flush And Close Job
  94236. BX = subfunction
  94237. 0000h unconditional close
  94238. nonzero: conditional close -- close only if concatenate flag is
  94239. clear
  94240. DX = index of printing device (00h=LPT1/PRN, 01h=LPT2, etc.)
  94241. Return: AX = status (see #02860)
  94242. 0Ch Print Get/Set Banner Name
  94243. BL = subfunction
  94244. 00h set banner name
  94245. DS:SI -> ASCIZ banner name (12 bytes, including NUL)
  94246. 01h get banner name
  94247. ES:DI -> 12-byte buffer for banner name
  94248. Return: AX = status (see #02860)
  94249. Format of PRINT.VLM statistics:
  94250. Offset Size Description (Table 02885)
  94251. 00h WOFD size of statistics buffer (including this word)
  94252. 02h DWORD -> old INT 17 handler
  94253. 06h WORD number of physical printers reported by BIOS
  94254. SeeAlso: #02884
  94255. Format of PRINT.VLM standard print control information:
  94256. Offset Size Description (Table 02886)
  94257. 00h BYTE PFStatus (reserved, 00h)
  94258. 01h BYTE print flags (default 80h)
  94259. bit 2: release job for printing if capture interrupted
  94260. bit 3: suppress form feed
  94261. bit 4: notify
  94262. bit 6: text file
  94263. bit 7: print banner
  94264. 02h BYTE tab size (01h-12h, default 08h)
  94265. 03h BYTE number of copies (default 01h)
  94266. 04h BYTE ??? (may be number of copies instead of offset 03h)
  94267. 05h BYTE form type to be mounted in printer (default 00h)
  94268. 06h BYTE reserved (00h)
  94269. 07h 14 BYTEs banner
  94270. 15h BYTE capture printer (LPT) number
  94271. 16h WORD capture timeout in seconds
  94272. 18h BYTE job concatenation flag (00h or 01h, default 00h)
  94273. 19h BYTE maximum lines per page (default 66)
  94274. 1Ah BYTE ??? (may be maximum lines instead of offset 19h)
  94275. 1Bh BYTE maximum characters per line (default 132)
  94276. 1Ch BYTE ??? (may be maximum characters instead of offset 1Ch)
  94277. 1Dh 13 BYTEs name of form to be mounted in printer
  94278. 2Ah BYTE flag: capture active (00h or FFh, default 00h)
  94279. 2Bh BYTE flag: capturing to file (00h or 01h, default 00h)
  94280. 2Ch BYTE flag: timeout field is being decremented (default 00h)
  94281. 2Dh DWORD -> printer setup string
  94282. 31h DWORD -> printer reset string
  94283. 35h BYTE reserved (01h)
  94284. ---remainder is read-only---
  94285. 36h BYTE flag: job has started printing (00h or FFh, default 00h)
  94286. 37h BYTE flag: job placed in queue (00h or FFh, default 00h)
  94287. 38h BYTE flag: PJobValid (00h or FFh, default 00h)
  94288. FFh if associated capture file is open for capturing data
  94289. 39h DWORD print-queue ID
  94290. 3Dh WORD print-job number (default 00h) (1-999)
  94291. 3Fh BYTE number of chars in INT 17h print cache buffer (default 00h)
  94292. 40h BYTE ???
  94293. 41h WORD high word of print-job number (default 00h)
  94294. SeeAlso: #02884,#02887
  94295. Format of PRINT.VLM extended print control information:
  94296. Offset Size Description (Table 02887)
  94297. 00h DWORD NDS printer object ID or directory entry number (when capturing
  94298. to a file)
  94299. 04h BYTE connection handle for server
  94300. 06h 48 BYTEs ASCIZ print queue name on server
  94301. 36h DWORD ID of target server, or FFFFFFFFh if any server may be used
  94302. 3Ah 6 BYTEs target print time, FFFFFFFFFFFFh for immediate printing
  94303. 40h BYTE status flags
  94304. 41h BYTE ???
  94305. 42h 13 BYTEs client's banner name (overrides global banner if set)
  94306. 4Fh 13 BYTEs job description
  94307. 5Ch 4 BYTEs reserved (0)
  94308. SeeAlso: #02884,#02886
  94309. (Table 02888)
  94310. Call GENERAL.VLM (VLM ID 0043h) with:
  94311. Func Description/Registers
  94312. 01h Gen Get Version
  94313. BX = function
  94314. 0000h get version
  94315. Return: AX = status (see #02860)
  94316. BX = major version of VLM supported (0001h)
  94317. CX = minor version of VLM supported (0000h)
  94318. 03h Gen Statistics
  94319. CX = length of statistics buffer
  94320. ES:DI -> buffer for statistics (see #02889)
  94321. Return: AX = status (see #02860)
  94322. 04h Gen Get/Set Primary
  94323. BX = subfunction
  94324. 0001h get primary connection
  94325. CX = primary connection handle to be retrieved
  94326. Return: AX = status (see #02860)
  94327. CX = primary connection handle
  94328. 0002h set primary connection
  94329. CX = primary connection handle to be stored
  94330. Return: AX = status (see #02860)
  94331. 06h Gen Specific
  94332. BX = subfunction
  94333. 0000h get command processor and master environment addresses
  94334. Return: DX = segment of master environment
  94335. ES:DI -> command processor's private COMSPEC= copy
  94336. 0001h get default or primary connection
  94337. Return: AX = status (0000h successful)
  94338. CX = connection handle if successful
  94339. 0002h last queue information
  94340. AL = operation
  94341. 00h zap
  94342. 01h set
  94343. 02h get
  94344. DI:DX = queue file handle
  94345. CX = connection handle
  94346. Return: AX = status (0000h successful)
  94347. DI:DX = queue file handle
  94348. CX = connection handle or 0000h if queue info invalid
  94349. 0003h get/set machine name(s)
  94350. AX = name type
  94351. 00h get short machine name
  94352. 02h get long machine name
  94353. 04h set short machine name
  94354. 06h set long machine name
  94355. 08h get DOS name
  94356. 0Ah set DOS name
  94357. ES:SI -> ASCIZ name if setting
  94358. Return: AX = status (0000h if successful)
  94359. ES:SI -> ASCIZ name if getting
  94360. 0004h set per-task EXEC search mode
  94361. Return: AX = status (0000h if successful)
  94362. 09h Gen Return Drive Info
  94363. BX = subfunction
  94364. 0000h get first available drive
  94365. Return: AX = status (see #02860)
  94366. BX = drive letter of first drive
  94367. 0001h get Lastdrive
  94368. Return: AX = status (see #02860)
  94369. CH = number lastdrive 1=A: - 1Ah=Z:
  94370. Format of NetWare GENERAL.VLM statistics:
  94371. Offset Size Description (Table 02889)
  94372. 00h WORD size of statistics record, including this word
  94373. 02h DWORD previous INT 21 vector
  94374. SeeAlso: #02888
  94375. (Table 02890)
  94376. Call NETX.VLM (VLM ID 0050h) with:
  94377. Func Description/Registers
  94378. 01h NetX Get Version
  94379. BX = function
  94380. 0000h get version
  94381. Return: AX = status (see #02860)
  94382. BX = major version of VLM supported (0001h)
  94383. CX = minor version of VLM supported (0000h)
  94384. 03h NetX Statistics
  94385. CX = length of statistics buffer
  94386. ES:DI -> buffer for statistics (see #02891)
  94387. Return: AX = status (see #02860)
  94388. Format of NETX.VLM statistics:
  94389. Offset Size Description (Table 02891)
  94390. 00h WORD buffer size, including this word
  94391. 02h DWORD previous INT 21 handler
  94392. SeeAlso: #02890
  94393. (Table 02892)
  94394. Call SECURITY.VLM (VLM ID 0061h) with:
  94395. Func Description/Registers
  94396. 01h Security Get Version
  94397. BX = function
  94398. 0000h get version
  94399. Return: AX = status (see #02860)
  94400. BX = major version of VLM supported (0001h)
  94401. CX = minor version of VLM supported (0000h)
  94402. 03h Security Statistics
  94403. 04h ???
  94404. AL = subfunction
  94405. 01h compute session key
  94406. DS:SI -> 24-byte input buffer
  94407. ES:DI -> 8-byte output buffer
  94408. --------N-2F7A20BX0001-----------------------
  94409. INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM CallA ADDRESS
  94410. AX = 7A20h
  94411. BX = 0001h
  94412. Return: AX = 0000h if request was handled
  94413. ES:BX -> CallA entry point (see #02893)
  94414. SeeAlso: AX=7A20h/BX=0000h
  94415. (Table 02893)
  94416. Call VLM CallA entry point with:
  94417. AX = function
  94418. 0000h submit
  94419. 0001h cancel (not implemented)
  94420. ES:DI -> Overlay Asynchronous Control Block structure (see #02894)
  94421. Return: DI, DS, ES preserved; all other registers may be destroyed
  94422. interrupts disabled
  94423. Desc: asychronously call the specified VLM and then return to caller, which
  94424. might be another VLM
  94425. Format of Overlay Asynchronous Control Block (OACB):
  94426. Offset Size Description (Table 02894)
  94427. 00h DWORD link to next OACB, 0000h:0000h if last (filled by VLM.EXE)
  94428. 04h DWORD callback address or 0000h:0000h
  94429. 08h BYTE InUse flag (00h if complete) (set by VLM.EXE)
  94430. 09h BYTE flag, reserved for VLM use
  94431. 0Ah WORD destination VLM
  94432. 0Ch WORD destination function
  94433. 0Eh WORD temporary storage for VLM.EXE
  94434. 10h 6 BYTEs reserved
  94435. 16h 6 DWORDs EAX,EBX,ECX,EDX,ESI,EDI
  94436. 2Eh 4 WORDs DS,ES,FS,GS (FS and GS not used)
  94437. --------N-2F7A20BX0002-----------------------
  94438. INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM MULTIPLEX ADDRESS
  94439. AX = 7A20h
  94440. BX = 0002h
  94441. Return: AX = 0000h
  94442. ES:BX -> VLM multiplex entry point (see #02895)
  94443. Note: for v1.10, this function is only available while VLM.EXE is loading
  94444. the .VLM modules, because ES is destroyed on return
  94445. SeeAlso: AX=7A20h/BX=0000h,AX=7A20h/BX=0001h,AX=7A20h/BX=0003h
  94446. (Table 02895)
  94447. Call DOS Requester entry point with:
  94448. BX = function???
  94449. 0000h
  94450. DX = ???
  94451. DI = ???
  94452. BP = ???
  94453. 0002h
  94454. CX = ???
  94455. 0003h
  94456. DX = ???
  94457. BP = ???
  94458. 0006h
  94459. AH = subfunction???
  94460. AL = ???
  94461. STACK: variable (0, 4, 10, 14 bytes seen)
  94462. --------N-2F7A20BX0003-----------------------
  94463. INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM PARSE API ADDRESS
  94464. AX = 7A20h
  94465. BX = 0003h
  94466. Return: AX = 0000h if request was handled
  94467. ES:BX -> VLM parse API entry point
  94468. --------N-2F7A20BX0004-----------------------
  94469. INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM MULTICAST CALLOUT
  94470. AX = 7A20h
  94471. BX = 0004h
  94472. Return: AX = 0000h if request was handled
  94473. ES:BX -> VLM multicast data (see #02896)
  94474. SeeAlso: AX=7A20h/BX=0000h,AX=7A20h/BX=0002h,AX=7A20h/BX=0005h
  94475. Format of DOS Requester data:
  94476. Offset Size Description (Table 02896)
  94477. 00h DWORD pointer to ??? (code)
  94478. 04h 4 BYTEs ???
  94479. 08h DWORD pointer to ??? (code) (see #02897)
  94480. ???
  94481. (Table 02897)
  94482. Call offset 08h function with:
  94483. AL = function (00h-07h)
  94484. ???
  94485. Return: ???
  94486. --------N-2F7A20BX0005-----------------------
  94487. INT 2F - Novell NetWare - DOS Requester v1.03+ - GET VLM INT 24 ADDRESS
  94488. AX = 7A20h
  94489. BX = 0005h
  94490. Return: AX = 0000h if request was handled
  94491. ES:BX -> VLM INT 24 handler
  94492. SeeAlso: AX=7A20h/BX=0000h,AX=7A20h/BX=0002h,AX=7A20h/BX=0004h
  94493. --------N-2F7A20BX0006-----------------------
  94494. INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT
  94495. AX = 7A20h
  94496. BX = 0006h
  94497. Return: AX = 0000h if request was handled
  94498. ES:BX -> ??? entry point (RETF in v1.03 and v1.10)
  94499. --------N-2F7A20BX0007-----------------------
  94500. INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT
  94501. AX = 7A20h
  94502. BX = 0007h
  94503. Return: AX = 0000h
  94504. ES:BX -> ??? entry point (RETF in v1.03 and v1.10)
  94505. --------N-2F7A20BX0008-----------------------
  94506. INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT
  94507. AX = 7A20h
  94508. BX = 0008h
  94509. Return: AX = 0000h
  94510. ES:BX -> ??? entry point (RETF in v1.03 and v1.10)
  94511. --------N-2F7A20BX0080-----------------------
  94512. INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT
  94513. AX = 7A20h
  94514. BX = 0080h
  94515. Return: AX = 0000h
  94516. ES:BX -> ??? entry point (RETF in v1.03 and v1.10)
  94517. Note: this function is identical to AX=7A20h/BX=0006h in v1.03 and v1.10
  94518. --------N-2F7A20BX0081-----------------------
  94519. INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT
  94520. AX = 7A20h
  94521. BX = 0081h
  94522. Return: AX = 0000h
  94523. ES:BX -> ??? entry point (RETF in v1.03 and v1.10)
  94524. Note: this function is identical to AX=7A20h/BX=0007h in v1.03 and v1.10
  94525. --------N-2F7A20BX0082-----------------------
  94526. INT 2F - Novell NetWare - DOS Requester v1.03+ - GET ??? ENTRY POINT
  94527. AX = 7A20h
  94528. BX = 0082h
  94529. Return: AX = 0000h
  94530. ES:BX -> ??? entry point (RETF in v1.03 and v1.10)
  94531. Note: this function is identical to AX=7A20h/BX=0008h in v1.03 and v1.10
  94532. --------N-2F7A21-----------------------------
  94533. INT 2F C - Novell NetWare - DOS Requester - BROADCAST CALLBACK
  94534. AX = 7A21h
  94535. CX = server connection (FFFFh if message from Personal NetWare user)
  94536. interrupts disabled
  94537. Return: CX = 0000h if broadcast handled
  94538. interrupts disabled
  94539. Note: this function is only linked into INT 2F when INT 21/AH=DEh/DL=05h
  94540. has been issued
  94541. SeeAlso: AX=7A22h,AX=7A85h,INT 21/AH=DEh
  94542. --------N-2F7A22-----------------------------
  94543. INT 2F C - Novell NetWare - DOS Requester - BROADCAST/SFT3 INFORM
  94544. AX = 7A22h
  94545. DL = function
  94546. 21h ('!') broadcast waiting for workstation
  94547. 40h ('@') SFT3 server-change inform
  94548. BX = transport type
  94549. 0021h IPX
  94550. 0022h TCP
  94551. ES:SI -> transport-specific data block
  94552. (ECB for IPX, undefined for TCP)
  94553. interrupts disabled
  94554. Return: AX = 0000h if event handled, unchanged if not
  94555. interrupts disabled
  94556. Note: this callback is made from within a hardware interrupt handler; a
  94557. separate call to AX=7A21h is made once the system is in a safe
  94558. state for receiving the message
  94559. SeeAlso: AX=7A21h
  94560. --------N-2F7A2F-----------------------------
  94561. INT 2F - Novell NetWare - IPXODI v2.12 - GET GNMA SUPPORT
  94562. AX = 7A2Fh
  94563. Return: AX = 0000h if supported and active
  94564. BX = support level (0001h)
  94565. ES:DI -> GNMA entry point (see #02898)
  94566. Program: GNMA is the Generic NetWare Management Agent
  94567. Note: IPXODI v2.12 is distributed as part of the Personal NetWare system
  94568. bundled with Novell DOS 7
  94569. SeeAlso: INT 7A/BX=001Fh
  94570. (Table 02898)
  94571. Call IPXODI GNMA entry point with:
  94572. BX = function
  94573. 0000h Register Responder
  94574. ES:SI -> responder structure (see #02899)
  94575. Return: CF clear if successful
  94576. CF set on error
  94577. AX = status
  94578. FFFFh if specified responder is already registered
  94579. interrupts enabled
  94580. all other registers except DS, CS:IP, SS:SP destroyed
  94581. Note: the responder structure must not be deallocated until
  94582. the responder is deregistered
  94583. 0001h Deregister Responder
  94584. AX = type of responder to deregister
  94585. Return: AX = status
  94586. FFFFh if specified responder not registered
  94587. interrupts enabled
  94588. ES:SI buffer from original registration may now be
  94589. freed
  94590. all other registers except DS, CS:IP, SS:SP destroyed
  94591. 0002h Get Responders
  94592. Return: ES:SI -> head of responder structure list (read-only)
  94593. interrupts enabled
  94594. all other registers except DS, CS:IP, SS:SP destroyed
  94595. Note: the returned list may change as tasks are swapped in
  94596. and out
  94597. 0003h Send Acknowledgement
  94598. AL = completion code
  94599. 00h successful
  94600. 01h-FCh responder-specific
  94601. FDh invalid function
  94602. CX = length of return data (0000h if none)
  94603. DX:SI -> return data
  94604. Return: interrupts enabled
  94605. all other registers except DS, CS:IP, SS:SP destroyed
  94606. Format of NetWare GNMA responder structure:
  94607. Offset Size Description (Table 02899)
  94608. 00h DWORD -> next responder structure (used by GNMA)
  94609. 04h DWORD -> responder's request handler (called by GNMA) (see #02900)
  94610. 08h WORD responder ID
  94611. 0Ah WORD number of functions supported by responder
  94612. 0Ch DWORD reserved for use by GNMA
  94613. SeeAlso: #02898
  94614. (Table 02900)
  94615. Values GNMA responder's request handler is called with:
  94616. AL = function
  94617. 00h responder request
  94618. CX = length of request data (not including header) (see #02901)
  94619. DS:DI -> request data (see #02901)
  94620. DS:BX -> 528-byte reply buffer
  94621. ES:SI -> responder structure (see #02899) from registration
  94622. DF clear
  94623. interrupts disabled
  94624. Return: AH = acknowledement status
  94625. 00h acknowledgment being returned synchronously
  94626. nonzero: acknowledgment will be sent via GNMA
  94627. function 0003h (see #02898)
  94628. CX = length of acknowledement data
  94629. DX:BX -> acknowledgment (may use provided
  94630. buffer or another buffer)
  94631. AL = completion code
  94632. 00h successful
  94633. 01h-FCh responder-specific
  94634. FDh invalid request
  94635. DF clear
  94636. interrupts disabled
  94637. other registers may be destroyed
  94638. 01h responder acknowledgement complete
  94639. ES:SI -> responder structure (see #02899) from registration
  94640. DF clear
  94641. interrupts disabled
  94642. Return: DF clear
  94643. interrupts disabled
  94644. all registers (except SS:SP) may be destroyed
  94645. Note: this function is called if function 00h returned a
  94646. responder-provided data buffer; once this function
  94647. is called, the responder may deallocate the buffer
  94648. 02h responder reset
  94649. ES:SI -> responder structure (see #02899) from registration
  94650. DF clear
  94651. interrupts disabled
  94652. Return: DF clear
  94653. interrupts disabled
  94654. all registers (except SS:SP) may be destroyed
  94655. Note: called whenever a network managment application
  94656. terminates
  94657. Note: the responder handler should switch to a local stack if it enables
  94658. interrupts or uses more than a few words of stack space
  94659. SeeAlso: #02899
  94660. Format of GNMA responder request data:
  94661. Offset Size Description (Table 02901)
  94662. 00h WORD responder's assigned ID
  94663. 02h WORD function number (defined by responder)
  94664. 04h N BYTEs data for request (max 528 bytes; actual amount is determined
  94665. by CX)
  94666. SeeAlso: #02900
  94667. --------N-2F7A2FBX0EDC-----------------------
  94668. INT 2F U - Personal NetWare - HRMIB - UNINSTALL
  94669. AX = 7A2Fh
  94670. BX = 0EDCh ('EDC' = Novell European Development Center)
  94671. Return: ???
  94672. SeeAlso: AX=7AA0h
  94673. --------N-2F7A40-----------------------------
  94674. INT 2F - Novell NetWare - TCP/IP Protocol Stack - INSTALLATION CHECK
  94675. AX = 7A40h
  94676. Return: AX = 7AFFh if installed
  94677. 0000h:BX = address of interrupt vector for MLID ISR
  94678. CX = version (CH=major, CL=minor)
  94679. DX = 0000h
  94680. ES:DI -> entry point for TCP/IP stack (see #02903)
  94681. Notes: Novell's LAN Workplace for DOS TCPIP.EXE also supports this interface
  94682. this function is also supported by the Beame&Whiteside BWLWP40 shim,
  94683. but it only returns AL and ES:DI, and does not support AX=7A41h
  94684. SeeAlso: AX=7A41h,INT 15/AX=DE2Eh,INT 60"Excelan"
  94685. (Table 02902)
  94686. Values for NetWare TCP/IP function code:
  94687. 01h "accept" accept a network connection request
  94688. 02h "bind" associate an address with a socket
  94689. 03h close socket
  94690. Call: socket number field set
  94691. 04h "connect" connect to a remote host
  94692. 05h "getmyipaddr" get IP address
  94693. Call: socket number field in sockaddr set to 0000h
  94694. 06h "getmymacaddr" get hardware address
  94695. 07h "getpeername"
  94696. 08h "getsockname" get socket name
  94697. 09h "getsockopt" get socket options
  94698. 0Ah "getsubnetmask" get subnet mask
  94699. 0Bh "ioctl"
  94700. 0Ch "listen" wait for connection request on socket
  94701. 0Dh "select"
  94702. Return: socket bitmap updated (1=active)
  94703. 0Eh "setmyipaddr" (obsolete) set IP address
  94704. 0Fh "setsockopt" set socket options
  94705. 10h "shutdown"
  94706. 11h "socket" open socket
  94707. Call: socket number field set to 0000h
  94708. Return: socket number set
  94709. 12h "recv" get data from peer
  94710. 13h "recvfrom" get data from specified remote host
  94711. Call: socket number set
  94712. packet length and buffer descriptors set
  94713. Return: packet length and receive buffers updated
  94714. sockaddr field set to source port number + IP address
  94715. 14h "send" write data to socket
  94716. 15h "sendto" write data to specified recipient
  94717. Call: socket number set
  94718. flags at offset 18h = 0000h
  94719. packet length and buffer descriptors set
  94720. ---v4.02+ ---
  94721. 16h get BOOTP data
  94722. Return: BOOTP data stored in parameter block (see #02906)
  94723. 17h "getsnmpinfo"
  94724. 18h "getpathinfo" get/set configuration???
  94725. ---v4.??? ---
  94726. 19h "getifn" get interface number
  94727. 1Ah "setipinfo" set IP information
  94728. 1Bh "getipinfo" get IP information
  94729. 1Ch "setdnsinfo" set DNS information
  94730. 1Dh "getdnsinfo" get DNS information
  94731. 1Eh "setroutes" set/modify route entry(ies)
  94732. 1Fh "getroutes" get route entry(ies)
  94733. 20h "removeroutes" remove route entry(ies)
  94734. 21h "setarpe" set/modify ARP entry(ies)
  94735. 22h "getarpe" get ARP entry(ies)
  94736. 23h "removearpe" remove ARP entry(ies)
  94737. Notes: these functions are based on the Unix socket interface
  94738. OR function number with 80h to call ESR
  94739. SeeAlso: #02904
  94740. (Table 02903)
  94741. Call NetWare TCP/IP entry point with:
  94742. ES:SI -> parameter block (see #02904)
  94743. Return: ES:SI parameter block updated
  94744. DX may be destroyed
  94745. Format of NetWare TCP/IP Request Control Block (RCB):
  94746. Offset Size Description (Table 02904)
  94747. 00h DWORD -> next RCB
  94748. 04h DWORD -> previous RCB
  94749. 08h DWORD -> FAR post routine called if bit 7 of function code set
  94750. 0Ch BYTE flags (internal use)
  94751. bit 0: request in progress
  94752. bit 1: posted
  94753. bit 2: Windows
  94754. bit 3: "PROTBUF"
  94755. bit 4: "ABORTRCB" for Ctrl-Break handling
  94756. bit 5: call INT 21/AX=0B00h while blocking
  94757. 0Dh 7 BYTEs ???
  94758. 14h BYTE (ret) temporary result code
  94759. 15h BYTE (call) function code (bit 7 set if non-blocking) (see #02902)
  94760. 16h BYTE socket number
  94761. 17h BYTE (ret) result or error code (see #02905)
  94762. ---accept/bind/connect/getmyipaddr/getpeername/getsockname commands---
  94763. 18h sockaddr structure (WORD port + DWORD IP address)
  94764. ---close comand---
  94765. no additional fields
  94766. ---getmymacaddr command---
  94767. 18h 6 BYTEs low-level hardware network address
  94768. ---BOOTP command---
  94769. 18h 64 BYTEs BOOTP VSA data (see #02906)
  94770. ---getpathinfo command
  94771. 18h 8 BYTEs key
  94772. "TCP_CFG" used by PING.EXE
  94773. 20h 128 BYTEs path
  94774. A0h WORD length of path in previous field
  94775. ---getsockopt/setsockopt commands---
  94776. 18h WORD option name
  94777. 0004h SO_REUSEADDR
  94778. 0008h SO_KEEPALIVE
  94779. 0080h SO_LINGER
  94780. 1Ah WORD option value
  94781. 1Ch WORD "linger"
  94782. ---getsubnetmask command---
  94783. 18h DWORD sockaddr structure (WORD port + DWORD subnet mask)
  94784. ---ioctl command---
  94785. 18h DWORD argument value
  94786. 1Ch WORD ioctl number
  94787. ---listen command---
  94788. 18h WORD maximum allowable connection backlog
  94789. ---select command---
  94790. 18h WORD number of sockets
  94791. 1Ah fd_set readfds (bitmap of sockets)
  94792. fd_set writefds
  94793. fd_set expectionfds
  94794. DWORD timeout in clock ticks
  94795. ---shutdown command---
  94796. 18h WORD shutdown type
  94797. ---socket command---
  94798. 18h WORD protocol (1 = ICMP, 6 = TCP, 17 = UDP)
  94799. ---I/O commands (recv,recvfrom,send,sendto)---
  94800. 18h WORD flags
  94801. 1Ah 6 BYTEs sockaddr from/to
  94802. WORD port number
  94803. DWORD IP address
  94804. 20h WORD length of packet sent/received
  94805. 22h WORD number of pointer/length pairs following (max 8)
  94806. 24h 6N BYTEs buffer descriptors, each
  94807. Offset Size Description
  94808. 00h DWORD pointer to buffer
  94809. 04h WORD length of buffer
  94810. ---getsnmpinfo command---
  94811. 18h DWORD (ret) -> ??? data in TCPIP code segment
  94812. --getifn command---
  94813. 18h WORD interface number
  94814. 1Ah WORD MLID instance number
  94815. 1Ch 128 BYTEs MLID name
  94816. ---getipinfo/setipinfo commands---
  94817. 18h WORD interface number (00h = default)
  94818. 1Ah DWORD IP address
  94819. 1Eh DWORD IP netmask
  94820. 22h 3 DWORDs router addresses (00000000h = unused entry)
  94821. ---getdnsinfo/setdnsinfo commands---
  94822. 18h WORD interface number (00h = default)
  94823. 1Ah 3 DWORDs name server IP addresses (00000000h = unused entry)
  94824. 26h 128 BYTEs domain name
  94825. ---getroutes/setroutes/removeroutes commands---
  94826. 18h WORD number of route entries to follow (max 5)
  94827. 1Ah 10N BYTEs route entries
  94828. DWORD destination host/net IP address
  94829. DWORD IP address of first router
  94830. WORD route type
  94831. ---getarpe/setarpe/removearpe commands---
  94832. 18h WORD number of ARP entries to follow (max 16)
  94833. 1Ah 10N BYTEs ARP entries
  94834. DWORD destination IP address
  94835. 6 BYTEs destination hardware address
  94836. ---other commands---
  94837. 18h 4 WORDs parameter words 0 to 3 (see #02902 for usage)
  94838. (Table 02905)
  94839. Values for NetWare TCP/IP status:
  94840. 00h successful
  94841. 04h would block
  94842. 09h invalid socket
  94843. 23h would block
  94844. 24h operation in progress
  94845. 25h already in progress
  94846. 26h not a socket
  94847. 27h destination address required
  94848. 28h message too long
  94849. 29h wrong protocol type for socket
  94850. 2Ah protocol not available
  94851. 2Bh protocol not supported
  94852. 2Ch socket type not supported
  94853. 2Dh operation not supported on socket
  94854. 2Eh protocol family not supported
  94855. 2Fh address family not supported by protocol family
  94856. 30h address already in use
  94857. 31h unable to assign requested address
  94858. 32h network is down
  94859. 33h network is unreachable
  94860. 34h network dropped connection
  94861. 35h software caused connection abort
  94862. 36h connection reset by peer
  94863. 37h no buffer space
  94864. 38h socket is already connected
  94865. 39h socket is not connected
  94866. 3Ah socket is in shutdown mode
  94867. 3Bh too many references
  94868. 3Ch connection timed out
  94869. 3Dh connection refused
  94870. 3Eh too many levels of symbolic links
  94871. 3Fh file name too long
  94872. 40h host is down
  94873. 41h host unreachable
  94874. 42h protocol stack not installed
  94875. 43h asynchronous operation not supported
  94876. 44h synchronous operation not supported
  94877. 45h no RCB available
  94878. FFh blocking (call has not yet returned)
  94879. SeeAlso: #02904
  94880. Format of BOOTP data (stored in parameter block):
  94881. Offset Size Description (Table 02906)
  94882. 18h 4 BYTEs ???
  94883. 1Ch BYTE ??? (01h)
  94884. 1Dh BYTE address length (04h)
  94885. 1Eh 4 BYTEs subnet mask
  94886. 22h BYTE ??? (03h)
  94887. 23h BYTE ??? (04h)
  94888. 24h 4 BYTEs IP address of nearest router
  94889. 28h BYTE ??? (06h)
  94890. 29h BYTE length of following data (08h)
  94891. 2Ah 4 BYTEs IP address of nameserver 1
  94892. 2Eh 4 BYTEs IP address of nameserver 2
  94893. 32h BYTE ??? (0Ch)
  94894. 33h BYTE length of local name
  94895. 34h N BYTEs local host name
  94896. BYTE FFh (end marker)
  94897. SeeAlso: #02904,#02902
  94898. --------N-2F7A41-----------------------------
  94899. INT 2F U - Novell NetWare - TCP/IP Protocol Stack - WINDOWS SUPPORT???
  94900. AX = 7A41h
  94901. ES:DI -> FAR entry point for ??? (will be called with BX=1,2,3,4)
  94902. Return: AX = 7AFFh if supported
  94903. 0000h:BX = address of interrupt vector for MLID ISR
  94904. CX = version (CH=major, CL=minor)
  94905. DX = 0000h
  94906. ES:SI -> DWORD containing passed value of ES:DI
  94907. ES:DI -> entry point for TCP/IP stack
  94908. Notes: Novell's LAN Workplace for DOS TCPIP.EXE also supports this interface
  94909. the pointer which is set to ES:DI is cleared to 0000h:0000h when
  94910. a Windows exit broadcast is received
  94911. SeeAlso: AX=7A40h
  94912. --------N-2F7A42-----------------------------
  94913. INT 2F U - Novell NetWare - TCPIP.EXE v4.1 - GET ??? ENTRY POINT
  94914. AX = 7A42h
  94915. Return: AX = 7AFFh if supported
  94916. ES:DI -> ??? entry point (see #02907)
  94917. (Table 02907)
  94918. Call NetWare TCPIP.EXE entry point with:
  94919. DX = ???
  94920. ES:DI -> ??? (see #02908)
  94921. Return: AX = 0000h
  94922. other registers destroyed
  94923. Format of data buffer:
  94924. Offset Size Description (Table 02908)
  94925. 00h WORD offset of WORD ??? or 0000h
  94926. 02h WORD offset of DWORD ??? or 0000h
  94927. 04h WORD offset of DWORD ??? or 0000h
  94928. --------N-2F7A43-----------------------------
  94929. INT 2F U - Novell NetWare - TCPIP.EXE v4.1 - GET ???
  94930. AX = 7A43h
  94931. Return: AX = 7AFFh if supported
  94932. DX = offset of ???
  94933. SeeAlso: AX=7A44h
  94934. --------N-2F7A44-----------------------------
  94935. INT 2F U - Novell NetWare - TCPIP.EXE v4.1 - SET ???
  94936. AX = 7A44h
  94937. DX = offset of ??? (see AX=7A43h)
  94938. Return: AX = 7AFFh if supported
  94939. SeeAlso: AX=7A43h
  94940. --------N-2F7A4C-----------------------------
  94941. INT 2F U - Novell NetWare - TCPIP.EXE v4.1 - GET ???
  94942. AX = 7A4Ch
  94943. Return: AX = 7AFFh if supported
  94944. BX = ??? (0037h)
  94945. CX = ??? (001Ch)
  94946. --------N-2F7A4DBX0001-----------------------
  94947. INT 2F U - Novell NetWare - ???
  94948. AX = 7A4Dh
  94949. BX = 0001h
  94950. ES:DI -> ???
  94951. Return: AL = FFh if ???
  94952. ES:DI -> ???
  94953. Note: called by NETBIOS.EXE v3.01
  94954. --------N-2F7A4E-----------------------------
  94955. INT 2F U - Novell LAN Workplace for DOS - RARPD.EXE - INSTALLATION CHECK
  94956. AX = 7A4Eh
  94957. Return: AX = 7AFFh if installed
  94958. SeeAlso: AX=7A4Fh"RARPD"
  94959. --------N-2F7A4F-----------------------------
  94960. INT 2F U - Novell LAN Workplace for DOS - RARPD.EXE - UNINSTALL
  94961. AX = 7A4Fh
  94962. Return: AX = 7AFFh if installed
  94963. DX,ES destroyed
  94964. Note: this call conflicts with SNMP.EXE (both RARPD and SNMP are supplied
  94965. with LAN Workplace for DOS!), such that running SNMP will uninstall
  94966. RARPD as SNMP checks whether it is already installed!
  94967. SeeAlso: AX=7A4Eh"RARPD",AX=7A4Fh/BX=0001h
  94968. --------N-2F7A4FBX0001-----------------------
  94969. INT 2F U - Novell NetWare - SNMP.EXE - INSTALLATION CHECK
  94970. AX = 7A4Fh
  94971. BX = 0001h
  94972. Return: AX = 7AFFh if installed
  94973. Note: this call conflicts with RARPD.EXE (both SNMP and RARPD are supplied
  94974. with LAN Workplace for DOS!), such that running SNMP will uninstall
  94975. RARPD as SNMP checks whether it is already installed!
  94976. SeeAlso: AX=7A4Fh"RARPD",AX=7A4Fh/BX=0002h
  94977. --------N-2F7A4FBX0002-----------------------
  94978. INT 2F U - Novell NetWare - SNMP.EXE - ???
  94979. AX = 7A4Fh
  94980. BX = 0002h
  94981. Return: AL = status
  94982. 4Fh if failed
  94983. FFh if successful
  94984. SeeAlso: AX=7A4Fh/BX=0001h
  94985. --------N-2F7A80-----------------------------
  94986. INT 2F C - Novell NetWare - SHELL 3.01d BROADCAST - ABNORMAL EXIT
  94987. AX = 7A80h
  94988. Return: nothing
  94989. Notes: called on abnormal exit of the NetWare shell to notify other Novell
  94990. TSRs that it is unsafe to call the shell in the future; also called
  94991. by NETX.VLM when it is unloaded
  94992. must be passed through so that all interested programs see the exit
  94993. on receiving this call, IPXODI clears an internal pointer to a
  94994. default value; Novell's NETBIOS.EXE clears its INT 21h pointer to
  94995. 0000h:0000h and stops calling it
  94996. SeeAlso: AX=7A81h
  94997. --------N-2F7A81-----------------------------
  94998. INT 2F C - Novell NetWare - SHELL 3.01d BROADCAST - SET SHELL INT 21 HANDLER
  94999. AX = 7A81h
  95000. CX:DX -> shell's INT 21h entry point
  95001. Return: nothing
  95002. Notes: the shell calls this function as it loads to allow interested TSRs
  95003. and drivers to make a local copy of the shell's entry point
  95004. must be passed through so that all interested programs see it
  95005. --------N-2F7A85-----------------------------
  95006. INT 2F C - Novell NetWare - shell 3.01 - BROADCAST INFORM
  95007. AX = 7A85h
  95008. CX = broadcast server number
  95009. Return: CX = 0000h if broadcast message handled by another program
  95010. CX unchanged if broadcast not handled
  95011. SeeAlso: AX=7A21h
  95012. --------N-2F7A90-----------------------------
  95013. INT 2F U - Novell NetWare - NETBIOS.EXE 3+ - INSTALLATION CHECK
  95014. AX = 7A90h
  95015. Return: AL = 00h if present
  95016. BX = ???
  95017. CX = PSP segment of NETBIOS resident code
  95018. SeeAlso: AX=7AFEh
  95019. --------N-2F7AA0-----------------------------
  95020. INT 2F U - Personal NetWare - HRMIB - ???
  95021. AX = 7AA0h
  95022. BX = function
  95023. 0000h ???
  95024. 0001h ???
  95025. Return: ???
  95026. SeeAlso: AX=7A2Fh/BX=0EDCh
  95027. --------N-2F7AC1-----------------------------
  95028. INT 2F - LAN HiJack - LHR - DISABLE???
  95029. AX = 7AC1h
  95030. Program: LAN HiJack is a NetWare utility by KDS Software which allows a user
  95031. to take over control of a workstation remotely; LHR is the program
  95032. run on the slave workstation
  95033. SeeAlso: AX=7AC8h,AX=7AC9h,AX=7ACFh
  95034. --------N-2F7AC2-----------------------------
  95035. INT 2F - LAN HiJack - LHR - SYNCHRONIZE SHIFT STATES???
  95036. AX = 7AC2h
  95037. Note: sets BIOS keyboard status byte to an internal variable
  95038. SeeAlso: AX=7AC3h,AX=7ACFh
  95039. --------N-2F7AC3-----------------------------
  95040. INT 2F - LAN HiJack - LHR - CLEAR ??? FLAG
  95041. AX = 7AC3h
  95042. SeeAlso: AX=7AC2h,AX=7ACFh
  95043. --------N-2F7AC8-----------------------------
  95044. INT 2F - LAN HiJack - LHR - ENABLE FUNCTIONS
  95045. AX = 7AC8h
  95046. BL = function(s) to enable (see #02909)
  95047. SeeAlso: AX=7AC1h,AX=7AC9h,AX=7ACFh
  95048. Bitfields for LAN HiJack function(s) to enable/disable:
  95049. Bit(s) Description (Table 02909)
  95050. 0 ???
  95051. 1 remote keyboard enabled
  95052. 2 support remote's mouse
  95053. 3-7 unused
  95054. --------N-2F7AC9-----------------------------
  95055. INT 2F - LAN HiJack - LHR - DISABLE FUNCTIONS
  95056. AX = 7AC9h
  95057. BL = function(s) to disable (see #02909)
  95058. SeeAlso: AX=7AC1h,AX=7AC8h
  95059. --------N-2F7ACA-----------------------------
  95060. INT 2F - LAN HiJack - LHJ - ???
  95061. AX = 7ACAh
  95062. BL = ???
  95063. Return: ???
  95064. Program: LAN HiJack is a NetWare utility by KDS Software which allows a user
  95065. to take over control of a workstation remotely; LHJ is the program
  95066. run on the controlling workstation
  95067. --------N-2F7ACB-----------------------------
  95068. INT 2F - LAN HiJack - LHJ - ???
  95069. AX = 7ACBh
  95070. BX = ???
  95071. Return: ???
  95072. Note: this function appears to be related to the keyboard
  95073. SeeAlso: AX=7ACCh
  95074. --------N-2F7ACC-----------------------------
  95075. INT 2F - LAN HiJack - LHJ - ???
  95076. AX = 7ACCh
  95077. BX = ???
  95078. Return: ???
  95079. Note: this function appears to be related to the mouse
  95080. SeeAlso: AX=7ACBh
  95081. --------N-2F7ACFBX0000-----------------------
  95082. INT 2F - LAN HiJack - LHR - INSTALLATION CHECK
  95083. AX = 7ACFh
  95084. BX = 0000h
  95085. Return: BX = segment of resident code if installed
  95086. Program: LAN HiJack is a NetWare utility by KDS Software which allows a user
  95087. to take over control of a workstation remotely; LHR is the program
  95088. run on the slave workstation
  95089. --------N-2F7AF0-----------------------------
  95090. INT 2F - Novell NetWare - DOSNP.EXE v1.30G - INSTALLATION CHECK
  95091. AX = 7AF0h
  95092. Return: AL = FFh if present
  95093. ES = 7AF0h
  95094. CX = PSP segment of resident code
  95095. --------N-2F7AF1-----------------------------
  95096. INT 2F - Novell NetWare - Access Server Driver - INSTALLATION CHECK
  95097. AX = 7AF1h
  95098. BL = sequence number (01h first driver, 02h second, 00h no driver)
  95099. Return: AX <> 7AF1h if present
  95100. BH = total number of drivers
  95101. ---if BL nonzero on entry---
  95102. AL = number of ports provided by specified driver
  95103. ES:DI -> driver entry point
  95104. (see #02910,#02911,#02912,#02913,#02914,#02915,#02916,#02917)
  95105. ES:DX -> ID string
  95106. SeeAlso: INT 7A/BX=001Ch
  95107. (Table 02910)
  95108. Call Access Server driver "initialize port" function with:
  95109. AH = 01h
  95110. AL = port number (00h-0Fh)
  95111. ES:BX -> configuration parameter block (see #02923)
  95112. interrupts disabled
  95113. Return: CF clear if successful
  95114. CF set on error
  95115. SeeAlso: #02911
  95116. (Table 02911)
  95117. Call Access Server driver "get port status" function with:
  95118. AH = 02h
  95119. AL = port number (00h-0Fh)
  95120. interrupts disabled
  95121. Return: CF clear if successful
  95122. BL = transmitter status (see #02920)
  95123. BH = receiver status (see #02921)
  95124. DL = external status signals (see #02922)
  95125. CF set on error
  95126. interrupts disabled
  95127. SeeAlso: #02910,#02912,#02915
  95128. (Table 02912)
  95129. Call Access Server driver "get input from port" function with:
  95130. AH = 03h
  95131. AL = port number (00h-0Fh)
  95132. CX = size of data buffer
  95133. ES:BX -> buffer for data
  95134. interrupts disabled
  95135. Return: CF clear if successful
  95136. CF set on error
  95137. interrupts disabled
  95138. CX = number of bytes read
  95139. Note: the driver will add a NUL to the buffer when a break signal is detected
  95140. SeeAlso: #02912,#02913
  95141. (Table 02913)
  95142. Call driver "send output data to port" function with:
  95143. AH = 04h
  95144. AL = port number (00h-0Fh)
  95145. CX = number of bytes to send
  95146. ES:BX -> buffer containing data
  95147. interrupts disabled
  95148. Return: CF clear if successful
  95149. CF set on error
  95150. interrupts disabled
  95151. CX = number of bytes actually written
  95152. SeeAlso: #02912,#02914
  95153. (Table 02914)
  95154. Call driver "get I/O character counts" function with:
  95155. AH = 05h
  95156. AL = port number (00h-0Fh)
  95157. interrupts disabled
  95158. Return: CF clear if successful
  95159. BX = number of bytes pending transmission
  95160. CX = number of bytes available for reading
  95161. CF set on error
  95162. interrupts disabled
  95163. SeeAlso: #02912,#02913
  95164. (Table 02915)
  95165. Call driver "control XON/XOFF" function with:
  95166. AH = 06h
  95167. AL = port number (00h-0Fh)
  95168. DL = new state
  95169. (00h software flow control disabled, else enabled)
  95170. interrupts disabled
  95171. Return: CF clear if successful
  95172. CF set on error
  95173. interrupts disabled
  95174. SeeAlso: #02916
  95175. (Table 02916)
  95176. Call driver "get error counts and statistics" function with:
  95177. AH = 07h
  95178. AL = port number (00h-0Fh)
  95179. ES:BX -> buffer for statistics (see #02924)
  95180. interrupts disabled
  95181. Return: CF clear if successful
  95182. ES:BX buffer filled
  95183. CF set on error
  95184. interrupts disabled
  95185. SeeAlso: #02917,#02918,#02919
  95186. (Table 02917)
  95187. Call driver "general request" function with:
  95188. AH = 08h
  95189. AL = port number (00h-0Fh)
  95190. DX = requested operations
  95191. bit 0: flush transmit buffers
  95192. bit 1: flush receive buffers
  95193. bit 4: define XON/XOFF characters
  95194. ES:BX -> XON/XOFF characters (see #02925) if DX bit 4 set
  95195. interrupts disabled
  95196. Return: CF clear if successful
  95197. CF set on error
  95198. interrupts disabled
  95199. (Table 02918)
  95200. Call driver "deadman timer management" function with:
  95201. AH = 09h
  95202. AL = port number (00h-0Fh)
  95203. BX = next time interval in seconds (0000h to disable timer)
  95204. interrupts disabled
  95205. Return: CF clear
  95206. interrupts disabled
  95207. SeeAlso: #02919
  95208. (Table 02919)
  95209. Call driver "get buffer sizes" function with:
  95210. AH = 0Ah
  95211. AL = port number (00h-0Fh)
  95212. interrupts disabled
  95213. Return: CF clear if successful
  95214. BX = size of transmit buffer
  95215. CX = size of receive buffer
  95216. CF set on error
  95217. interrupts disabled
  95218. SeeAlso: #02918
  95219. (Table 02920)
  95220. Values for Access Server transmitter status:
  95221. 00h uninitialized
  95222. 01h ready, not transmitting
  95223. 02h transmitting
  95224. 03h XOFF received
  95225. 04h transmitting, buffer full
  95226. 05h XOFF received and buffer full
  95227. (Table 02921)
  95228. Values for Access Server receiver status:
  95229. 00h uninitialized
  95230. 01h ready
  95231. 02h receive buffer full, data may have been lost
  95232. Bitfields for external status signals:
  95233. Bit(s) Description (Table 02922)
  95234. 7,6 undefined
  95235. 5 CTS active
  95236. 4 DSR active
  95237. 3 DCD active
  95238. 2,1 undefined
  95239. 0 ring indicator
  95240. Format of Access Server configuration parameter block:
  95241. Offset Size Description (Table 02923)
  95242. 00h BYTE receive baud rate index
  95243. 00h 50 bps, 01h 75 bps, 02h 110 bps, 03h 134.5 bps,
  95244. 04h 150 bps, 05h 300 bps, 06h 600 bps, 07h 1200 bps,
  95245. 08h 1800 bps, 09h 2000 bps, 0Ah 2400 bps, 0Bh 3600 bps,
  95246. 0Ch 4800 bps, 0Dh 7200 bps, 0Eh 9600 bps, 0Fh 19200 bps,
  95247. 10h 38400 bps, 11h 57600 bps, 12h 115200 bps
  95248. 01h BYTE receive bits per character (0=5 bits..3=8 bits)
  95249. 02h BYTE receive stop bits
  95250. 03h BYTE receive parity
  95251. 00h none, 01h odd, 02h even, 03h mark, 04h space
  95252. 04h BYTE transmit baud rate index (same as receive baud rate)
  95253. 05h BYTE transmit bits per character (0=5 bits..3=8 bits)
  95254. 06h BYTE transmit stop bits
  95255. 07h BYTE transmit parity (same as receive parity)
  95256. 08h BYTE DTR state (00h off, 01h on)
  95257. 09h BYTE RTS state (00h off, 01h on)
  95258. 0Ah BYTE flow control (00h none, 01h XON/XOFF, 02h RTS/CTS, 03h both)
  95259. 0Bh BYTE break control (00h off, 01h on)
  95260. Format of Access Server statistics:
  95261. Offset Size Description (Table 02924)
  95262. 00h BYTE port number
  95263. 01h BYTE external status signals (see #02922)
  95264. 02h BYTE transmitter status (see #02920)
  95265. 03h BYTE receiver status (see #02921)
  95266. 04h DWORD number of characters received
  95267. 08h DWORD number of characters transmitted
  95268. 0Ch WORD input parity errors
  95269. 0Eh WORD input framing errors
  95270. 10h WORD lost characters due to hardware overrun
  95271. 12h WORD lost characters due to data buffer overrun
  95272. Note: the counts are not allowed to wrap around; once a count reaches FFFFh
  95273. or FFFFFFFFh, it is no longer incremented
  95274. Format of Access Server XON/XOFF characters:
  95275. Offset Size Description (Table 02925)
  95276. 00h BYTE 04h (number of bytes following)
  95277. 01h BYTE transmit XON character
  95278. 02h BYTE transmit XOFF character
  95279. 03h BYTE receive XON character
  95280. 04h BYTE receive XOFF character
  95281. --------N-2F7AFE-----------------------------
  95282. INT 2F U - Novell NetWare - DOSNP.EXE - INSTALLATION CHECK
  95283. AX = 7AFEh
  95284. Return: AL = FFh if present
  95285. ES = (data???) segment of DOSNP
  95286. Program: DOSNP.EXE provides "named pipes" support for DOS workstations running
  95287. NetWare
  95288. Note: the NetWare shell calls this function and refuses to load if DOSNP is
  95289. present
  95290. SeeAlso: AX=7A90h
  95291. --------N-2F7AFFBX0000-----------------------
  95292. INT 2F - Novell NetWare - TBMI v1.1+ - INSTALLATION CHECK / Windows SUPPORT
  95293. AX = 7AFFh
  95294. BX = 0000h
  95295. CX = 4E65h ("Ne")
  95296. DX = 7457h ("tW")
  95297. ES:DI -> Windows support procedure (see #02926)
  95298. Return: AL = FFh if installed
  95299. CX = configured sockets (14h)
  95300. DS:SI -> data table ???
  95301. ES:DI -> IPX far call handler
  95302. Notes: for IPX/SPX this call reportedly returns DS:SI pointing to the table
  95303. of pointers to service events queue head and tail
  95304. this function is also supported by IPXODI; v2.12 does not change DS,
  95305. but does set SI to an internal address
  95306. SeeAlso: AX=7AFFh/BX=0001h
  95307. (Table 02926)
  95308. Values Windows support procedure called with:
  95309. BP = function
  95310. 0001h Get ECB
  95311. BX = socket number
  95312. Return: ES:SI -> ECB or 0000h:0000h if none available
  95313. 0002h Count Listen ECBs
  95314. AX = BX = socket
  95315. Return: CX = number of listen ECBs for socket
  95316. (must be >= 2 for SPX to work)
  95317. 0003h ???
  95318. 0004h Inform task switcher of ECB locations
  95319. Note: registers other than those listed above are equal
  95320. to the values when IPX was called
  95321. Note: the support function will not be called if IPX is called with BX
  95322. bit 15 set
  95323. --------N-2F7AFFBX0001-----------------------
  95324. INT 2F - Novell NetWare - TBMI v1.1+, shell v3.01d - INSTALLATION CHECK???
  95325. AX = 7AFFh
  95326. BX = 0001h
  95327. CX = 4E65h ("Ne")
  95328. DX = 7457h ("tW")
  95329. Return: AL = FFh if installed
  95330. CX = ??? (8000h)
  95331. SI = ??? (or -> ???) (0002h and 0007h seen)
  95332. ES:DI -> IPX far call handler
  95333. ES:DX -> 6-byte data area ???
  95334. Note: this function is also supported by IPXODI, but IPXODI v2.12 does not
  95335. return ES:DX
  95336. SeeAlso: AX=7AFFh/BX=0000h
  95337. --------d-2F7F00-----------------------------
  95338. INT 2F - Jim Harper's CD-ROM redirector SCSI driver - INSTALLATION CHECK
  95339. AX = 7F00h
  95340. Return: AL = FFh if installed
  95341. SeeAlso: AX=7F01h"Harper",AX=7F02h"Harper",AX=7F03h"Harper"
  95342. --------P-2F7F00-----------------------------
  95343. INT 2F - PRINDIR v9.0 - INSTALLATION CHECK
  95344. AX = 7F00h
  95345. Return: AL = FFh if installed
  95346. BX = version (BH = major, BL = minor)
  95347. CX:DX -> ASCIZ signature "PRINDIR"
  95348. Range: AH=7Fh is the default, may be changed at installation time
  95349. Note: prior versions of PRINDIR used INT 7C or INT 7A
  95350. SeeAlso: AX=7F01h"PRINDIR",AX=7F02h"PRINDIR",AX=7F03h"PRINDIR"
  95351. SeeAlso: AX=7F06h"PRINDIR",AX=7F08h,AX=7F0Ah,AX=7F0Ch,AX=7F0Eh,INT 7C"PRINDIR"
  95352. --------d-2F7F01-----------------------------
  95353. INT 2F - Jim Harper's CD-ROM redirector SCSI driver - DO COMMAND
  95354. AX = 7F01h
  95355. DS:DX -> command record (see #02927)
  95356. Return: AL = status
  95357. 00h successful
  95358. else error code
  95359. SeeAlso: AX=7F00h"Harper",AX=7F02h"Harper",INT 11/AH=FFh"SDLP"
  95360. SeeAlso: INT 21/AX=4402h"ASPI",INT 4F/AX=8100h
  95361. Format of CD-ROM redirector command record:
  95362. Offset Size Description (Table 02927)
  95363. 00h BYTE ID
  95364. 01h 10 BYTEs CDB (Command Descriptor Block) for operation (see #03236,#03237)
  95365. 0Bh WORD segment of buffer
  95366. 0Dh WORD offset of buffer
  95367. 0Fh BYTE status
  95368. 10h BYTE sense
  95369. 12h WORD count
  95370. --------P-2F7F01-----------------------------
  95371. INT 2F - PRINDIR v9.0 - SET CAPTURE DEVICE
  95372. AX = 7F01h
  95373. DX = capture device (as used by /GET commandline option)
  95374. Return: AX = status
  95375. 0000h successful
  95376. FFFFh invalid device
  95377. SeeAlso: AX=7F00h"PRINDIR",AX=7F02h"PRINDIR",AX=7F03h"PRINDIR"
  95378. SeeAlso: AX=7F05h"PRINDIR"
  95379. --------d-2F7F02-----------------------------
  95380. INT 2F - Jim Harper's CD-ROM redirector SCSI driver - DO RESET
  95381. AX = 7F02h
  95382. SeeAlso: AX=7F00h,AX=7F01h
  95383. --------P-2F7F02-----------------------------
  95384. INT 2F - PRINDIR v9.0 - SET DESTINATION DEVICE
  95385. AX = 7F02h
  95386. DX = destination device number (as used by /PUT commandline option)
  95387. Return: AX = status
  95388. 0000h successful
  95389. FFFFh invalid device number
  95390. SeeAlso: AX=7F00h"PRINDIR",AX=7F01h"PRINDIR",AX=7F04h"PRINDIR"
  95391. SeeAlso: AX=7F06h"PRINDIR"
  95392. --------d-2F7F03-----------------------------
  95393. INT 2F - Jim Harper's CD-ROM redirector SCSI driver - UNINSTALL
  95394. AX = 7F03h
  95395. Return: AL = status
  95396. 00h successful
  95397. 01h unable to uninstall
  95398. SeeAlso: AX=7F00h
  95399. --------P-2F7F03-----------------------------
  95400. INT 2F - PRINDIR v9.0 - SET CAPTURE FILENAME
  95401. AX = 7F03h
  95402. CX:DX -> ASCIZ name of capture file
  95403. Return: AX = status
  95404. 0000h successful
  95405. FFFFh name too long
  95406. SeeAlso: AX=7F00h"PRINDIR",AX=7F01h"PRINDIR",AX=7F04h"PRINDIR"
  95407. SeeAlso: AX=7F05h"PRINDIR",AX=7F07h"PRINDIR"
  95408. --------P-2F7F04-----------------------------
  95409. INT 2F - PRINDIR v9.0 - SET LOCK FILENAME
  95410. AX = 7F04h
  95411. CX:DX -> ASCIZ name of lock file
  95412. Return: AX = status
  95413. 0000h successful
  95414. FFFFh invalid device number
  95415. SeeAlso: AX=7F00h"PRINDIR",AX=7F01h"PRINDIR",AX=7F03h"PRINDIR"
  95416. SeeAlso: AX=7F05h,AX=7F06h,AX=7F08h,AX=7F0Ah,AX=7F0Bh
  95417. --------P-2F7F05-----------------------------
  95418. INT 2F - PRINDIR v9.0 - DUMP CAPTURE BUFFER
  95419. AX = 7F05h
  95420. Return: AX = status
  95421. 0000h successful
  95422. SeeAlso: AX=7F00h"PRINDIR",AX=7F01h"PRINDIR",AX=7F04h"PRINDIR",AX=7F06h
  95423. --------P-2F7F06-----------------------------
  95424. INT 2F - PRINDIR v9.0 - SET NORMAL TEXT COLOR
  95425. AX = 7F06h
  95426. DH = new attribute for normal text
  95427. Return: AX = status
  95428. 0000h successful
  95429. SeeAlso: AX=7F00h"PRINDIR",AX=7F01h"PRINDIR",AX=7F05h"PRINDIR",AX=7F07h
  95430. --------P-2F7F07-----------------------------
  95431. INT 2F - PRINDIR v9.0 - SET HIGHLIGHT TEXT COLOR
  95432. AX = 7F07h
  95433. DH = new attribute for highlighted text
  95434. Return: AX = status
  95435. 0000h successful
  95436. SeeAlso: AX=7F00h"PRINDIR",AX=7F01h"PRINDIR",AX=7F06h"PRINDIR",AX=7F08h
  95437. --------P-2F7F08-----------------------------
  95438. INT 2F - PRINDIR v9.0 - SET POPUP HOTKEY
  95439. AX = 7F08h
  95440. DH = new scancode for hotkey
  95441. Return: AX = status
  95442. 0000h successful
  95443. SeeAlso: AX=7F00h"PRINDIR",AX=7F05h"PRINDIR",AX=7F09h,AX=7F0Bh,AX=7F0Dh
  95444. --------P-2F7F09-----------------------------
  95445. INT 2F - PRINDIR v9.0 - SET BYTE COUNTER DISPLAY
  95446. AX = 7F09h
  95447. DH = new state (00h off, 01h on)
  95448. Return: AX = status
  95449. 0000h successful
  95450. SeeAlso: AX=7F00h"PRINDIR",AX=7F07h"PRINDIR",AX=7F08h,AX=7F0Ah,AX=7F0Ch
  95451. --------P-2F7F0A-----------------------------
  95452. INT 2F - PRINDIR v9.0 - SET FLUSH DELAY
  95453. AX = 7F0Ah
  95454. DX = number of clock ticks before flushing
  95455. Return: AX = status
  95456. 0000h successful
  95457. SeeAlso: AX=7F00h"PRINDIR",AX=7F07h"PRINDIR",AX=7F09h,AX=7F0Bh,AX=7F0Ch
  95458. --------P-2F7F0B-----------------------------
  95459. INT 2F - PRINDIR v9.0 - SET MINIMUM DUMP SIZE
  95460. AX = 7F0Bh
  95461. DX = number of kilobytes to accumulate before dumping
  95462. Return: AX = status
  95463. 0000h successful
  95464. SeeAlso: AX=7F00h"PRINDIR",AX=7F0Ah,AX=7F0Ch,AX=7F0Dh,AX=7F0Eh
  95465. --------P-2F7F0C-----------------------------
  95466. INT 2F - PRINDIR v9.0 - SET ECHO STATE
  95467. AX = 7F0Ch
  95468. DX = new state (00h echo off, 01h echo on)
  95469. Return: AX = status
  95470. 0000h successful
  95471. SeeAlso: AX=7F00h"PRINDIR",AX=7F0Ah,AX=7F0Bh,AX=7F0Dh,AX=7F0Eh
  95472. --------P-2F7F0D-----------------------------
  95473. INT 2F - PRINDIR v9.0 - SHOW POPUP PARAMETER MENU
  95474. AX = 7F0Dh
  95475. Return: AX = status
  95476. 0000h successful
  95477. else failed
  95478. SeeAlso: AX=7F00h"PRINDIR",AX=7F0Ah,AX=7F0Bh,AX=7F0Ch,AX=7F0Eh
  95479. --------P-2F7F0E-----------------------------
  95480. INT 2F - PRINDIR v9.0 - SUBMIT BYTE TO CURRENT DESTINATION DEVICE
  95481. AX = 7F0Eh
  95482. DL = byte to send to destination device
  95483. Return: AX = status
  95484. 0000h successful
  95485. else failed
  95486. SeeAlso: AX=7F00h"PRINDIR",AX=7F0Ah,AX=7F0Bh,AX=7F0Ch,AX=7F0Dh
  95487. ----------2F7F24-----------------------------
  95488. INT 2F - Multiplex - ???
  95489. AX = 7F24h
  95490. ???
  95491. Return: ???
  95492. Note: called by PC/370, an IBM 370 emulator by Donald S. Higgins
  95493. ----------2F7F26-----------------------------
  95494. INT 2F - Multiplex - ???
  95495. AX = 7F26h
  95496. ???
  95497. Return: ???
  95498. Note: called by PC/370, an IBM 370 emulator by Donald S. Higgins
  95499. --------N-2F8000-----------------------------
  95500. INT 2F - EASY-NET - INSTALLATION CHECK
  95501. AX = 8000h
  95502. Return: AL = 00h not installed
  95503. FFh installed
  95504. Program: EASY-NET is a shareware two-machine serial-port network
  95505. --------N-2F8000-----------------------------
  95506. INT 2F - Nanosoft, Inc. TurboNET server - INSTALLATION CHECK
  95507. AX = 8000h
  95508. Return: AL = FFh if installed
  95509. BX = CS of resident code
  95510. CX = ??? (03FCh)
  95511. Program: TurboNET is a NetBIOS-based file redirector and server; a
  95512. demonstration version may be downloaded from Nanosoft's BBS
  95513. SeeAlso: AX=8100h
  95514. --------t-2F8000-----------------------------
  95515. INT 2F - CS_TSR specification - TSR INSTALLATION CHECK
  95516. AX = 8000h
  95517. DS:SI -> 4-byte CS_TSR signature (11h 43h 53h 10h)
  95518. Return: AL = status
  95519. 00h no CS_TSR-compliant TSRs installed
  95520. 01h installed, but signature did not match
  95521. FFh installed, signature matches
  95522. ES:DI -> resident process block (see #02928) of last installed
  95523. TSR (if DS:SI pointed at signature on entry)
  95524. Program: the CS_TSR specification is a standardized TSR interface by Compact
  95525. Soft group in Kiev, Ukraine
  95526. Desc: determine whether any CS_TSR-compliant TSRs are installed on the
  95527. selected multiplex number
  95528. Range: AH=80h to AH=FFh
  95529. SeeAlso: AX=8001h"CS_TSR",AX=8002h"CS_TSR",AX=8003h"CS_TSR"
  95530. Format of CS_TSR process block:
  95531. Offset Size Description (Table 02928)
  95532. 00h 4 BYTEs CS_TSR signature 11h 43h 53h 10h
  95533. 04h BYTE INT 2F multiplex number
  95534. 05h WORD virtual process handle (unique among loaded TSRs)
  95535. 07h 2 BYTEs version (binary minor version, then major version)
  95536. 09h WORD PSP segment of TSR
  95537. 0Bh DWORD pointer to ASCIZ program name
  95538. 0Fh 3 BYTEs program creation date (day, month, year)
  95539. 12h 3 BYTEs process start time (seconds, minutes, hours)
  95540. 15h 3 BYTEs process start date (day, month, year)
  95541. --------F-2F8000DX0000-----------------------
  95542. INT 2F - FaxBIOS interface - INSTALLATION CHECK
  95543. AX = 8000h
  95544. DX = 0000h
  95545. DI = 0000h
  95546. Return: AL = FFh if installed
  95547. DX:DI -> signature "FaxBiosjpc"
  95548. Range: AH=80h to AH=FFh, selected by scanning multiplex numbers for signature
  95549. SeeAlso: AH=2Ah,AX=80FBh
  95550. --------N-2F8001-----------------------------
  95551. INT 2F - Nanosoft, Inc. TurboNET server - ???
  95552. AX = 8001h
  95553. DS:SI -> 16-byte buffer for ???
  95554. Return: AH = status
  95555. 00h successful
  95556. 01h error (TurboNET busy)
  95557. Note: makes NetBIOS calls
  95558. --------t-2F8001-----------------------------
  95559. INT 2F - CS_TSR specification - GET HANDLE (TSR-SPECIFIC INSTALLATION CHECK)
  95560. AX = 8001h
  95561. DS:SI -> ASCIZ signature string for desired TSR (see #02929)
  95562. Return: BX = process handle or 0000h if specified TSR not installed
  95563. ES:DI -> process block for TSR (see #02928) if BX<>0000h
  95564. Note: A widely-available copy of ASCII billing itself as "ASCII 2.OO by
  95565. Nick Zaikin Jr." is in fact a hacked copy of the Compact Soft
  95566. ASCII v4.23 which is identical except for the changed attribution
  95567. and version (in fact, some instances of "4.23" were missed); the
  95568. hacked copy requires the signature string
  95569. "ASCII 2.OO by Nick Zaikin Jr." instead of the unhacked version's
  95570. simple signature "ASCII"
  95571. SeeAlso: AX=8000h"CS_TSR",AX=8002h"CS_TSR"
  95572. (Table 02929)
  95573. Values for CS_TSR signature strings:
  95574. "ASCII" ASCII, a popup ASCII table with character input
  95575. "Halculator" HALC, a 32-bit RPN WYSIWIH calculator with undo and ptr support
  95576. "AntiTurbo" AT!, an intelligent system slow-down utility
  95577. --------t-2F8002-----------------------------
  95578. INT 2F - CS_TSR specification - GET PROCESS BLOCK BY PROCESS HANDLE
  95579. AX = 8002h
  95580. BX = process handle for TSR (see AX=8001h"CS_TSR")
  95581. Return: ES:DI -> process block for specified TSR (see #02928)
  95582. unchanged if no match for process handle
  95583. Note: This function is used to allocate a process handle when the TSR
  95584. installs itself, by setting ES:DI to point at something other than
  95585. a CS_TSR process block's signature string and iterating through the
  95586. possible process handles (0001h to FFFFh) until ES:DI is returned
  95587. unchanged
  95588. SeeAlso: AX=8000h"CS_TSR",AX=8001h"CS_TSR",AX=8003h"CS_TSR"
  95589. --------t-2F8003-----------------------------
  95590. INT 2F - CS_TSR specification - CUSTOM SUBFUNCTION
  95591. AX = 8003h
  95592. BX = process handle for TSR (see AX=8001h"CS_TSR")
  95593. other registers vary by TSR
  95594. Return: vary by TSR, unchanged if not supported
  95595. Program: the CS_TSR specification is a standardized TSR interface by Compact
  95596. Soft group in Kiev, Ukraine
  95597. SeeAlso: AX=8000h"CS_TSR",AX=8001h"CS_TSR",AX=8002h"CS_TSR"
  95598. --------F-2F80FB-----------------------------
  95599. INT 2F - FaxBIOS interface - COMMAND SUBMISSION
  95600. AX = 80FBh
  95601. BX = function number (see #02930)
  95602. DX:DI -> command buffer
  95603. (see #02932,#02935,#02936,#02937,#02938,#02939,#02944,#02950,#02957)
  95604. Return: AL = FFh if submitted OK
  95605. CX = result code (see #02931)
  95606. Range: AH=80h to AH=FFh, selected by scanning multiplex numbers for signature
  95607. SeeAlso: AX=8000h"FaxBIOS",AX=CBDDh
  95608. (Table 02930)
  95609. Values for FaxBIOS function number:
  95610. 0001h SYS_LOGIN
  95611. 0002h SYS_LOGOUT
  95612. 0003h SYS_GET_FAXAPP_INFO
  95613. 0004h STAT_IO_GET
  95614. 0005h STAT_FAXBIOS_GET
  95615. 0006h PDIR_OPEN
  95616. 0007h PDIR_CLOSE (see #02940)
  95617. 0008h PDIR_READ_PERSON (see #02941)
  95618. 0009h PDIR_PARTIAL_READ
  95619. 000Ah PDIR_READ_GROUP
  95620. 000Bh PDIR_READ_MEMBER_LIST
  95621. 000Ch PDIR_WRITE_PERSON
  95622. 000Dh PDIR_WRITE_GROUP
  95623. 000Eh PDIR_DELETE_PERSON
  95624. 000Fh PDIR_DELETE_GROUP
  95625. 0010h PDIR_READ_GROUP_LIST
  95626. 0011h PDIR_IN_GROUP
  95627. 0012h PDIR_OUT_GROUP
  95628. 0013h SCHED_OPEN (see #02942)
  95629. 0014h SCHED_ADD_DEST (see #02943)
  95630. 0015h SCHED_ADD_FILE (see #02944)
  95631. 0016h SCHED_SET_PARAMS (see #02945)
  95632. 0017h SCHED_CANCEL (see #02942)
  95633. 0018h SCHED_CLOSE (see #02946)
  95634. 0019h SLOG_OPEN (see #02947)
  95635. 001Ah SLOG_CLOSE (see #02947)
  95636. 001Bh SLOG_SHORT_ENV_STAT
  95637. 001Ch SLOG_LONG_ENV_STAT
  95638. 001Dh SLOG_DEST_STAT
  95639. 001Eh SLOG_FILE_STAT
  95640. 001Fh SLOG_CANCEL_ENV
  95641. 0020h RLOG_OPEN (see #02947)
  95642. 0021h RLOG_CLOSE (see #02947)
  95643. 0022h RLOG_READ
  95644. 0023h GRAPH_GET_FILE_TYPE (see #02948)
  95645. 0024h GRAPH_EXPORT_FILE
  95646. 0025h GRAPH_GET_LAYOUT_INFO
  95647. 0026h GRAPH_CREATE_FILE (see #02949)
  95648. 0027h GRAPH_CLOSE_FILE (see #02950)
  95649. 0028h GRAPH_CREATE_PAGE (see #02951)
  95650. 0029h GRAPH_WRITE (see #02952)
  95651. 002Ah GRAPH_END_PAGE
  95652. 002Bh GRAPH_OPEN_FILE (see #02953)
  95653. 002Ch GRAPH_GOTO_PAGE (see #02954)
  95654. 002Dh GRAPH_READ (see #02955)
  95655. 002Eh IOCTL_GET
  95656. 002Fh IOCTL_SET
  95657. 0030h IOCTL_ANSWER_FAX (see #02956)
  95658. 0031h IOCTL_DIAL (see #02957)
  95659. (Table 02931)
  95660. Values for FaxBIOS result code:
  95661. 0000h successful
  95662. 0001h not prepared or servicing another client (busy)
  95663. 0002h call failed due to sharing (LOCKED)
  95664. 0003h logged-in client limit reached (FULL)
  95665. 0004h transport denied (TRANSPORT_DENIED)
  95666. 0005h not implemented (NOT_IMPLEMENTED)
  95667. 0006h aborted while in progress (ABORTED)
  95668. 0007h permissions denied (PERMISSION_DENIED)
  95669. 0008h requested data is no longer valid (NO_LONGER_VALID)
  95670. 0080h unspecified system error occurred
  95671. 0081h an internal file was not found
  95672. 0082h an internal file could not be created
  95673. 0083h an internal file could not be opened
  95674. 0084h an internal file could not be closed
  95675. 0085h error occurred writing to an internal file
  95676. 0086h error occurred reading from an internal file
  95677. 0087h bad or corrupted file encountered
  95678. 0088h an access violation occurred
  95679. 0089h an internal file is empty
  95680. 008Ah insufficient memory to process request
  95681. 008Bh FaxBIOS was unable to issue a handle
  95682. 008Ch an error internal to FaxBIOS occurred
  95683. 008Dh no room on disk
  95684. 0100h unspecified error accessing client file
  95685. 0101h file not found
  95686. 0102h creation fault
  95687. 0103h open fault
  95688. 0104h close fault
  95689. 0105h write fault
  95690. 0106h read fault
  95691. 0107h file corrupted
  95692. 0108h access violation
  95693. 0109h empty file
  95694. 0200h unspecified argument error
  95695. 0201h bad function
  95696. 0202h bad option
  95697. 0203h bad structure size
  95698. 0204h bad buffer size
  95699. 0205h bad client ID
  95700. 0300h unspecified error with token
  95701. 0301h cover sheet token was invalid
  95702. 0302h logo token was invalid
  95703. 0303h signature token was invalid
  95704. 0304h font token was invalid
  95705. 0305h phone directory token was invalid
  95706. 0306h outbound route token was invalid
  95707. 0307h priority token was invalid
  95708. 0308h sort token was invalid
  95709. 0309h billing token was invalid
  95710. 0400h unspecified handle error
  95711. 0401h bad Phone Directory handle
  95712. 0402h bad scheduling handle
  95713. 0403h bad read send log handle
  95714. 0404h bad read receive log handle
  95715. 0405h bad graphics handle
  95716. 0500h data passed in structure was invalid
  95717. 0501h name field given is invalid
  95718. 0502h phone number given is invalid
  95719. 0503h poll code submitted is invalid
  95720. 0504h file type constant was invalid
  95721. 0505h BFT constant not defined or supported
  95722. 0506h resolution not defined or supported
  95723. 0507h page length not defined or supported
  95724. 0508h page width not defined or supported
  95725. 0509h date & time requested are ridiculous
  95726. 050Ah Subject text was not an ASCIZ string
  95727. 050Bh From text was not an ASCIZ string
  95728. 050Ch requested envelope ID was not found
  95729. 050Dh requested envelope ID is not valid
  95730. 050Eh envelope requested was not found
  95731. 050Fh destination index is out of range
  95732. 0510h file index is out of range
  95733. 0511h index into receive log is out of range
  95734. 0512h file name specified was incomplete or invalid
  95735. 0513h page selected was out of range
  95736. 0514h bit width more than byte width
  95737. 0515h mode for open is not defined
  95738. 0516h person index is out of range
  95739. 0517h person ID is out of range
  95740. 0518h group index out of range or invalid
  95741. 0519h group ID out of range or invalid
  95742. 051Ah range of indices to read is invalid
  95743. 051Bh group name given is invalid
  95744. 051Ch field_to_use is badly specified
  95745. 051Dh predicate invalid for field specified
  95746. 0600h unspecified client procedure error
  95747. 0601h device of interest is not present
  95748. 0602h device of interest has been removed
  95749. 0603h device of interest is not responding
  95750. 0604h device of interest is disabled
  95751. 0605h could not dial because device was in use
  95752. 0606h maximum destination limit exceeded
  95753. 0607h maximum file limit exceeded
  95754. 0608h scheduling closed with no destination
  95755. 0609h scheduling closed with no files or poll
  95756. 060Ah scheduling closed with no parameters specified
  95757. 060Bh file type specified does not match file
  95758. 060Ch file type specified is not supported
  95759. 060Dh file submitted is not exportable
  95760. 060Eh file type specified is not imageable
  95761. 060Fh error converting file
  95762. 0610h envelope could not be cancelled
  95763. 0611h Phone Directory is full
  95764. 0612h record is already in the Phone Directory
  95765. 0613h selected group in Phone Directory is full
  95766. 0614h person is already in the group
  95767. 0615h person is not in the group & cannot be removed
  95768. 0616h a graphics file to be created already exists
  95769. 0617h a graphics file to be read is empty
  95770. 0618h GRAPH_CREATE_PAGE called before GRAPH_END_PAGE
  95771. 0619h graph read or write attempted without goto or create
  95772. 061Ah graph page contains no data
  95773. 061Bh Phone Directory is already open for this client
  95774. 061Ch schedule log is already open for this client
  95775. 061Dh receive log is aready open for this client
  95776. 061Eh Phone Directory function requires write mode
  95777. 0800h denied exclusive use of the API
  95778. Format of FaxBIOS SYS_LOGIN command buffer:
  95779. Offset Size Description (Table 02932)
  95780. 00h WORD structure size
  95781. 02h WORD function number
  95782. 04h WORD return code
  95783. 06h WORD client ID
  95784. 08h WORD API Major Version
  95785. 0Ah WORD API Minor Version
  95786. 0Ch DWORD reserved for manufacturer's use
  95787. 10h 22 BYTEs manufacturer's ID
  95788. 26h WORD highest possible device number
  95789. 28h WORD maximum destinations per envelope
  95790. 2Ah WORD maximum files per envelope
  95791. 2Ch WORD FaxBIOS capabilities (see #02933)
  95792. 2Eh DWORD T.30 capabilities (see #02934)
  95793. 32h WORD IPC handle
  95794. 34h DWORD amount of memory needed to load
  95795. 38h WORD scope (00h for public, nonzero for private)
  95796. 3Ah 6 BYTEs future expansion
  95797. 40h WORD structure size
  95798. Bitfields for FaxBIOS capabilities:
  95799. Bit(s) Description (Table 02933)
  95800. 0 transmit supported
  95801. 1 receive supported
  95802. 2 IOCTL supported
  95803. 3 IOCTL_DIAL supported
  95804. 4 IOCTL_ANSWER_FAX supported
  95805. 5 manual transmit supported
  95806. 6 optional phone services supported
  95807. 7 canonical phone objects
  95808. 8 seam with next supported
  95809. Bitfields for T.30 capabilities:
  95810. Bit(s) Description (Table 02934)
  95811. 0 low vertical resolution (minimum)
  95812. 1 high vertical resolution
  95813. 2 page width 107mm (4.21 in)
  95814. 3 page width 151mm (5.91 in)
  95815. 4 page width 215mm (8.46 in) (minimum)
  95816. 5 page width 255mm (10.04 in)
  95817. 6 page width 303mm (11.93 in)
  95818. 7 unused
  95819. 8 page length 297mm (11.69 in) (minimum)
  95820. 9 page length 364mm (14.33 in)
  95821. 10 page length 279mm (11 in)
  95822. 11 page length unlimited
  95823. 12 Group 4 resolution 300x300
  95824. 13 Group 4 resolution 400x400
  95825. 14 able to respond to poll from remote
  95826. 15 able to poll remote
  95827. 16 binary file transfer supported
  95828. Format of FaxBIOS SYS_LOGOUT command buffer:
  95829. Offset Size Description (Table 02935)
  95830. 00h WORD structure size
  95831. 02h WORD function number
  95832. 04h WORD return code
  95833. 06h WORD client ID
  95834. 08h DWORD client tag (for client's internal use)
  95835. 0Ch 6 BYTEs future expansion
  95836. 12h WORD structure size
  95837. Format of FaxBIOS SYS_GET_FAXAPP_INFO command buffer:
  95838. Offset Size Description (Table 02936)
  95839. 00h 12 BYTEs common data (see #02935)
  95840. 0Ch 80 BYTEs FaxBIOS data
  95841. 5Ch 80 BYTEs default cover
  95842. ACh 80 BYTEs default logo
  95843. FCh 80 BYTEs default signature
  95844. 14Ch 80 BYTEs default font 10
  95845. 19Ch 80 BYTEs default font 165
  95846. 1ECh 80 BYTEs default user font
  95847. 23Ch 80 BYTEs default Pdir
  95848. 28Ch 80 BYTEs default sort
  95849. 2DCh 10 BYTEs default bill
  95850. 2E6h 10 BYTEs default route
  95851. 2F0h 40 BYTEs default cover sheet form
  95852. 318h 34 BYTEs valid dial characters
  95853. 33Ah 6 BYTEs local country code
  95854. 340h 6 BYTEs local city or area code
  95855. 346h 6 BYTEs future expansion
  95856. 34Ch WORD structure size
  95857. Format of FaxBIOS STAT_IO_GET command buffer:
  95858. Offset Size Description (Table 02937)
  95859. 00h 12 BYTEs common data (see #02935)
  95860. 0Ch WORD device number
  95861. 0Eh WORD current activity
  95862. 10h WORD number of rings (if ringing)
  95863. 12h WORD number of fascimiles transmitted
  95864. 14h WORD number of fascimiles received
  95865. 16h WORD status of last transmission
  95866. 18h WORD envelope number of last transmission
  95867. 1Ah WORD index of last destination in envelope
  95868. 1Ch WORD status of last reception
  95869. 1Eh WORD current page (if session in progress)
  95870. 20h 80 BYTEs current file
  95871. 70h 104 BYTEs remote number
  95872. D8h 20 BYTEs last name
  95873. ECh 20 BYTEs first name
  95874. 100h 32 BYTEs company name
  95875. 120h 32 BYTEs notes
  95876. 140h WORD current envelope ID (if sending)
  95877. 142h WORD total pages in transmission (if sending)
  95878. 144h 6 BYTEs future expansion
  95879. 14h WORD structure size
  95880. Format of FaxBIOS STAT_FAXBIOS_GET command buffer:
  95881. Offset Size Description (Table 02938)
  95882. 00h 12 BYTEs common data (see #02935)
  95883. 0Ch WORD status ID
  95884. 0Eh WORD currenty FaxBIOS function number
  95885. 10h WORD current Client ID being serviced
  95886. 12h WORD number of things to do
  95887. 14h WORD number of them done
  95888. 16h WORD number of pages to do (if any)
  95889. 18h WORD number of them done
  95890. 1Ah WORD number of files to do
  95891. 1Ch WORD number of them done
  95892. 1Eh 80 BYTEs current File
  95893. 6Eh WORD 0 if all devices are idle
  95894. 70h WORD number of fascimiles transmitted
  95895. 72h WORD number of fascimiles received
  95896. 74h WORD status of last transmission in system
  95897. 76h WORD envelope ID of last transmission
  95898. 78h WORD index of last destination in envelope
  95899. 7Ah WORD status of last reception in system
  95900. 7Ch DWORD time of next transmission
  95901. 80h 6 BYTEs future expansion
  95902. 86h WORD structure size
  95903. Format of FaxBIOS PDIR_OPEN command buffer:
  95904. Offset Size Description (Table 02939)
  95905. 00h 12 BYTEs common data (see #02935)
  95906. 0Ch 80 BYTEs Phone Directory token
  95907. 5Ch 80 BYTEs sort order token
  95908. ACh WORD open Mode (0 = read, 1 = write)
  95909. AEh WORD Phone Directory handle
  95910. B0h WORD number of people
  95911. B2h WORD number of groups
  95912. B4h WORD bitmap of fields supported by partial read
  95913. B6h 6 BYTEs future expansion
  95914. BCh WORD structure size
  95915. Format of FaxBIOS PDIR_CLOSE command buffer:
  95916. Offset Size Description (Table 02940)
  95917. 00h 12 BYTEs common data (see #02935)
  95918. 0Ch WORD Phone Directory handle
  95919. 0Eh 6 BYTEs future expansion
  95920. 14h WORD structure size
  95921. Format of FaxBIOS PDIR_READ_PERSON command buffer:
  95922. Offset Size Description (Table 02941)
  95923. 00h 12 BYTEs common data (see #02935)
  95924. 0Ch WORD Phone Directory handle
  95925. 0Eh WORD retrieve by index
  95926. 10h WORD person ID or index
  95927. 12h WORD how many groups person is in
  95928. 14h WORD person ID
  95929. 16h 20 BYTEs last name
  95930. 2Ah 20 BYTEs first name
  95931. 3Eh 32 BYTEs company
  95932. 5Eh 32 BYTEs notes
  95933. 7Eh 6 BYTEs FAX country code
  95934. 84h 6 BYTEs FAX city/area code
  95935. 8Ah 14 BYTEs FAX local number
  95936. 98h 14 BYTEs FAX extension
  95937. A6h 24 BYTEs reserved
  95938. BEh 6 BYTEs voice country code
  95939. C4h 6 BYTEs voice city/area code
  95940. CAh 14 BYTEs voice local number
  95941. D8h 14 BYTEs voice extension
  95942. E6h 24 BYTEs reserved
  95943. FEh 10 BYTEs outbound routing information
  95944. 108h 10 BYTEs billing information, credit card etc
  95945. 112h DWORD remote FAX capabilities
  95946. 116h 21 BYTEs T.30 poll code of FAX number
  95947. 12Bh 15 BYTEs reserved
  95948. 13Ah 6 BYTEs future expansion
  95949. 140h WORD structure size
  95950. Format of FaxBIOS SCHED_OPEN, SCHED_CANCEL command buffer:
  95951. Offset Size Description (Table 02942)
  95952. 00h 12 BYTEs common data (see #02935)
  95953. 0Ch WORD scheduler handle
  95954. 0Eh 6 BYTEs future expansion
  95955. 14h WORD structure size
  95956. Format of FaxBIOS SCHED_ADD_DEST command buffer:
  95957. Offset Size Description (Table 02943)
  95958. 00h 12 BYTEs common data (see #02935)
  95959. 0Ch WORD schedule handle
  95960. 0Eh WORD device number if manual send wanted
  95961. 10h WORD non-zero if poll desired
  95962. 12h WORD person ID
  95963. 14h 20 BYTEs last name
  95964. 28h 20 BYTEs first name
  95965. 3Ch 32 BYTEs company
  95966. 5Ch 32 BYTEs notes
  95967. 7Ch 6 BYTEs FAX country code
  95968. 82h 6 BYTEs FAX city/area code
  95969. 88h 14 BYTEs FAX local number
  95970. 96h 14 BYTEs FAX extension
  95971. A4h 24 BYTEs reserved
  95972. BCh 6 BYTEs voice country code
  95973. C2h 6 BYTEs voice city/area code
  95974. C8h 14 BYTEs voice local number
  95975. D6h 14 BYTEs voice extension
  95976. E4h 24 BYTEs reserved
  95977. FCh 10 BYTEs outbound routing information
  95978. 106h 10 BYTEs billing information, credit card etc
  95979. 110h DWORD remote FAX capabilities
  95980. 114h 21 BYTEs T.30 poll code of FAX number
  95981. 129h 15 BYTEs reserved
  95982. 138h 6 BYTEs future expansion
  95983. 13Eh WORD structure size
  95984. SeeAlso: #02944
  95985. Format of FaxBIOS SCHED_ADD_FILE command buffer:
  95986. Offset Size Description (Table 02944)
  95987. 00h 12 BYTEs common data (see #02935)
  95988. 0Ch WORD schedule handle
  95989. 0Eh WORD file type
  95990. 0000h unidentified
  95991. 0001h native file format
  95992. 0002h ASCII
  95993. 0003h FaxBIOS Tiff Class F
  95994. 10h 80 BYTEs file name
  95995. 60h 80 BYTEs font token
  95996. B0h WORD conversion options bitmap
  95997. B2h WORD resolution
  95998. 0000h standard 98 lines per inch, 204 dpi
  95999. 0001h fine 196 lines per inch, 204 dpi
  96000. 0002h Group4 300 dpi
  96001. 0003h Group4 400 dpi
  96002. B4h WORD page length
  96003. 0000h 279 mm (11 in)
  96004. 0001h 297 mm (11.69 in)
  96005. 0002h 364 mm (14.33 in)
  96006. 0003h unlimited
  96007. B6h WORD page width
  96008. 0000h 215 mm (8.46 in)
  96009. 0001h 255 mm (10.04 in)
  96010. 0002h 303 mm (11.93 in)
  96011. 0003h 151 mm (5.91 in)
  96012. 0004h 107 mm (4.21 in)
  96013. B8h WORD binary file transfer specification
  96014. 0000h only as FAX
  96015. 0001h only as file (for non-faxable files)
  96016. 0002h as file when possible else FAX
  96017. BAh WORD seam flag (nonzero for seam with next)
  96018. BCh WORD delete flag (nonzero to delete when done)
  96019. BEh 6 BYTEs future expansion
  96020. C4h WORD structure size
  96021. SeeAlso: #02943,#02945
  96022. Format of FaxBIOS SCHED_SET_PARAMS command buffer:
  96023. Offset Size Description (Table 02945)
  96024. 00h 12 BYTEs common data (see #02935)
  96025. 0Ch WORD scheduler handle
  96026. 0Eh DWORD time to send
  96027. 10h 10 BYTEs priority token
  96028. 1Ch 80 BYTEs logo file token
  96029. 6Ch 80 BYTEs signature file token
  96030. BCh 80 BYTEs cover page token
  96031. 10Ch 40 BYTEs Subject text
  96032. 134h 40 BYTEs From text
  96033. 15Ch WORD user ID
  96034. 15Eh 6 BYTEs future expansion
  96035. 164h WORD structure size
  96036. SeeAlso: #02943,#02944,#02946
  96037. Format of FaxBIOS SCHED_CLOSE command buffer:
  96038. Offset Size Description (Table 02946)
  96039. 00h 12 BYTEs common data (see #02935)
  96040. 0Ch WORD scheduler handle
  96041. 0Eh WORD envelope ID generated
  96042. 10h 6 BYTEs future expansion
  96043. 16h WORD structure size
  96044. SeeAlso: #02945
  96045. Format of FaxBIOS SLOG_OPEN, SLOG_CLOSE, RLOG_OPEN, RLOG_CLOSE command buffer:
  96046. Offset Size Description (Table 02947)
  96047. 00h 12 BYTEs common data (see #02935)
  96048. 0Ch WORD log handle
  96049. 0Eh WORD number of entries
  96050. 10h 6 BYTEs future expansion
  96051. 16h WORD structure size
  96052. Format of FaxBIOS GRAPH_GET_FILE_TYPE command buffer:
  96053. Offset Size Description (Table 02948)
  96054. 00h 12 BYTEs common data (see #02935)
  96055. 0Ch 80 BYTEs filename
  96056. 5Ch WORD file type
  96057. 0000h unidentified
  96058. 0001h native file format
  96059. 0002h ASCII
  96060. 0003h FaxBIOS Tiff Class F
  96061. 5Eh WORD bitmap of supported capabilities
  96062. 60h 6 BYTEs future expansion
  96063. 66h WORD structure size
  96064. SeeAlso: #02949,#02950
  96065. Format of FaxBIOS GRAPH_CREATE_FILE command buffer:
  96066. Offset Size Description (Table 02949)
  96067. 00h 12 BYTEs common data (see #02935)
  96068. 0Ch 80 BYTEs filename
  96069. 5Ch WORD graph handle
  96070. 5Eh 6 BYTEs future expansion
  96071. 64h WORD structure size
  96072. SeeAlso: #02948,#02950,#02951
  96073. Format of FaxBIOS GRAPH_CLOSE_FILE, GRAPH_END_PAGE command buffer:
  96074. Offset Size Description (Table 02950)
  96075. 00h 12 BYTEs common data (see #02935)
  96076. 0Ch WORD graph handle
  96077. 0Eh 6 BYTEs future expansion
  96078. 14h WORD structure size
  96079. SeeAlso: #02949,#02951
  96080. Format of FaxBIOS GRAPH_CREATE_PAGE command buffer:
  96081. Offset Size Description (Table 02951)
  96082. 00h 12 BYTEs common data (see #02935)
  96083. 0Ch WORD graph handle
  96084. 0Eh WORD resolution
  96085. 10h WORD page width
  96086. 12h 6 BYTEs future expansion
  96087. 18h WORD structure size
  96088. SeeAlso: #02949,#02950,#02952
  96089. Format of FaxBIOS GRAPH_WRITE_PAGE command buffer:
  96090. Offset Size Description (Table 02952)
  96091. 00h 12 BYTEs common data (see #02935)
  96092. 0Ch WORD graph handle
  96093. 0Eh DWORD pointer to storage for image
  96094. 12h WORD band height in lines
  96095. 14h WORD width of page image in bytes
  96096. 16h WORD facsimile page width constant
  96097. 18h WORD width of page image in bits
  96098. 1Ah WORD number of bytes actually processed
  96099. 1Ch 6 BYTEs future expansion
  96100. 22h WORD structure size
  96101. SeeAlso: #02951,#02953
  96102. Format of FaxBIOS GRAPH_OPEN_FILE command buffer:
  96103. Offset Size Description (Table 02953)
  96104. 00h 12 BYTEs common data (see #02935)
  96105. 0Ch 80 BYTEs filename
  96106. 5Ch WORD file type
  96107. 5Eh WORD graph handle
  96108. 60h WORD number of pages
  96109. 62h 6 BYTEs future expansion
  96110. 68h WORD structure size
  96111. SeeAlso: #02952,#02954
  96112. Format of FaxBIOS GRAPH_GOTO_PAGE command buffer:
  96113. Offset Size Description (Table 02954)
  96114. 00h 12 BYTEs common data (see #02935)
  96115. 0Ch WORD graph handle
  96116. 0Eh WORD page number
  96117. 10h WORD vertical resolution
  96118. 12h WORD page width
  96119. 14h DWORD page length
  96120. 18h 6 BYTEs future expansion
  96121. 1Eh WORD structure size
  96122. SeeAlso: #02952,#02953,#02955
  96123. Format of FaxBIOS GRAPH_READ_PAGE command buffer:
  96124. Offset Size Description (Table 02955)
  96125. 00h 12 BYTEs common data (see #02935)
  96126. 0Ch WORD graph handle
  96127. 0Eh DWORD pointer to storage for image
  96128. 12h WORD band height in lines
  96129. 14h WORD width of page image in bytes
  96130. 16h WORD facsimile page width constant
  96131. 18h WORD width of page image in bits
  96132. 1Ah WORD number of bytes actually processed
  96133. 1Ch 6 BYTEs future expansion
  96134. 22h WORD structure size
  96135. Format of FaxBIOS IOCTL_ANSWER_FAX command buffer:
  96136. Offset Size Description (Table 02956)
  96137. 00h 12 BYTEs common data (see #02935)
  96138. 0Ch WORD device number
  96139. 0Eh 6 BYTEs future expansion
  96140. 14h WORD structure size
  96141. SeeAlso: #02957
  96142. Format of FaxBIOS IOCTL_DIAL command buffer:
  96143. Offset Size Description (Table 02957)
  96144. 00h 12 BYTEs common data (see #02935)
  96145. 0Ch WORD device number
  96146. 0Eh 6 BYTEs country code
  96147. 14h 6 BYTEs city or area code
  96148. 1Ah 14 BYTEs local number
  96149. 28h 14 BYTEs extension
  96150. 36h 14 BYTEs reserved
  96151. 4Eh 6 BYTEs future expansion
  96152. 54h WORD structure size
  96153. SeeAlso: #02956
  96154. --------N-2F8100-----------------------------
  96155. INT 2F U - Nanosoft, Inc. TurboNET redirector - INSTALLATION CHECK
  96156. AX = 8100h
  96157. Return: AL = FFh if installed
  96158. Program: TurboNET is a NetBIOS-based file redirector and server; a
  96159. demonstration version may be downloaded from Nanosoft's BBS
  96160. SeeAlso: AX=8000h"TurboNET"
  96161. --------N-2F8101-----------------------------
  96162. INT 2F U - Nanosoft, Inc. TurboNET redirector - ???
  96163. AX = 8101h
  96164. Return: AL = ???
  96165. DL = ???
  96166. --------N-2F8102-----------------------------
  96167. INT 2F U - Nanosoft, Inc. TurboNET redirector - ???
  96168. AX = 8102h
  96169. Return: AL = ???
  96170. DL = ???
  96171. --------N-2F8103-----------------------------
  96172. INT 2F U - Nanosoft, Inc. TurboNET redirector - GET MACHINE NAME???
  96173. AX = 8103h
  96174. ES:DI -> 17-byte buffer
  96175. Return: buffer filled
  96176. --------N-2F8104-----------------------------
  96177. INT 2F U - Nanosoft, Inc. TurboNET redirector - ???
  96178. AX = 8104h
  96179. BL = ???
  96180. BH = ???
  96181. CX = ???
  96182. DX = ???
  96183. DS:SI -> 16-byte buffer containing ???
  96184. Return: AL = 00h ???
  96185. --------N-2F8105-----------------------------
  96186. INT 2F U - Nanosoft, Inc. TurboNET redirector - ???
  96187. AX = 8105h
  96188. CX = ??? (don't change current value if 0000h)
  96189. DX = ??? (don't change current value if 0000h)
  96190. Return: AL = 00h successful
  96191. --------s-2F8200-----------------------------
  96192. INT 2F - RESPLAY - SAMPLE/PLAYBACK
  96193. AX = 8200h
  96194. DX:DI -> start of sample space
  96195. CX:BX = length in bytes
  96196. Return: AX = status (see #02958)
  96197. Program: RESPLAY is a freeware sound sampling/playback utility by Mark J. Cox
  96198. SeeAlso: AX=8201h"RESPLAY",AX=8210h
  96199. (Table 02958)
  96200. Values for RESPLAY status:
  96201. 1000h successful
  96202. 2000h not initialized (see AX=8210h)
  96203. other RESPLAY not installed
  96204. --------G-2F8200-----------------------------
  96205. INT 2F U - Nanosoft, Inc. CAPDOS - INSTALLATION CHECK
  96206. AX = 8200h
  96207. Return: AL = FFh if installed
  96208. Program: CAPDOS is a TSR by Nanosoft, Inc. which allows INT 21h calls to be
  96209. captured and recorded for later analysis
  96210. SeeAlso: AX=8100h,AX=8201h"CAPDOS",AX=8202h"CAPDOS",AX=8203h"CAPDOS"
  96211. SeeAlso: AX=8204h"CAPDOS"
  96212. --------s-2F8201-----------------------------
  96213. INT 2F - RESPLAY - INSTALLATION CHECK
  96214. AX = 8201h
  96215. Return: AX = 7746h if installed
  96216. SeeAlso: AX=8202h"RESPLAY",AX=8210h
  96217. --------G-2F8201-----------------------------
  96218. INT 2F - Nanosoft, Inc. CAPDOS - CLEAR QUEUE
  96219. AX = 8201h
  96220. Note: resets queue of captured INT 21 calls
  96221. SeeAlso: AX=8200h"CAPDOS"
  96222. --------s-2F8202-----------------------------
  96223. INT 2F - RESPLAY - UNINSTALL
  96224. AX = 8202h
  96225. Return: AX = status
  96226. 1000h successful
  96227. SeeAlso: AX=8201h"RESPLAY",AX=8210h"RESPLAY"
  96228. --------G-2F8202-----------------------------
  96229. INT 2F - Nanosoft, Inc. CAPDOS - START COLLECTION
  96230. AX = 8202h
  96231. SeeAlso: AX=8200h"CAPDOS",AX=8203h"CAPDOS"
  96232. --------G-2F8203-----------------------------
  96233. INT 2F - Nanosoft, Inc. CAPDOS - STOP COLLECTION
  96234. AX = 8203h
  96235. SeeAlso: AX=8200h"CAPDOS",AX=8202h"CAPDOS",AX=8204h"CAPDOS"
  96236. --------G-2F8204-----------------------------
  96237. INT 2F - Nanosoft, Inc. CAPDOS - GET QUEUE PARAMETERS
  96238. AX = 8204h
  96239. Return: AH = flag: queue wrapped if nonzero
  96240. BX = index of current start of queue
  96241. CX = size of queue in entries
  96242. SeeAlso: AX=8200h"CAPDOS",AX=8202h"CAPDOS",AX=8205h"CAPDOS"
  96243. --------G-2F8205-----------------------------
  96244. INT 2F - Nanosoft, Inc. CAPDOS - GET QUEUE ITEM
  96245. AX = 8205h
  96246. BX = queue item number
  96247. Return: AX,BX,CX,DX,SI,DI,DS,ES as on entry to captured DOS call
  96248. SeeAlso: AX=8200h"CAPDOS",AX=8204h"CAPDOS"
  96249. --------s-2F8210-----------------------------
  96250. INT 2F - RESPLAY - INITIALIZE
  96251. AX = 8210h
  96252. BL = sound device number (see #02959)
  96253. BH = sample rate in multiples of 250 Hz (14h to A0h)
  96254. CL = direction
  96255. 00h playback
  96256. 01h sample
  96257. Return: AX = status (see #02958)
  96258. SeeAlso: AX=8200h"RESPLAY",AX=8220h"MODRES"
  96259. (Table 02959)
  96260. Values for RESPLAY sound device:
  96261. 00h printer port LPT1
  96262. 01h printer port LPT2
  96263. 02h prototype board at I/O address 0300h
  96264. 03h printer port (alternative LPT1)
  96265. 04h internal speaker
  96266. --------s-2F8220-----------------------------
  96267. INT 2F - MODRES - PLAY MODULE
  96268. AX = 8220h
  96269. DX:CX -> MODPARM structure (see #02960)
  96270. Return: AX = status
  96271. 5722h succesful
  96272. 2000h parameters out of range
  96273. other MODRES not installed
  96274. SeeAlso: AX=8221h,AX=8223h,AX=8225h,AX=8227h,AX=8200h"RESPLAY"
  96275. Format of MODPARM Structure:
  96276. Offset Size Description (Table 02960)
  96277. 00h WORD signature 504Dh ("MP" = Modparm)
  96278. 02h BYTE output device (see #02962 at INT 2F/AX=8221h)
  96279. 03h WORD segment of start of main module (pattern) data
  96280. 05h 31 WORDs segment of start of sample numbers 1-31
  96281. 43h BYTE pattern at which to start playing (00h to 7Fh)
  96282. 44h BYTE function
  96283. 00h play from pattern [offset 43h] until end of the song
  96284. 01h play indicated pattern [offset 43h] only
  96285. 45h BYTE Machine speed
  96286. 00h 10-12Mhz
  96287. 01h 12-25Mhz (default)
  96288. 02h 25Mhz+
  96289. 03h mix speed 10kHz (fast 8Mhz machines)
  96290. 04h mix speed 12kHz (10Mhz machines)
  96291. 05h mix speed 13kHz
  96292. 06h mix speed 8kHz (test for 8Mhz machines)
  96293. 46h BYTE allow >64k sample playing
  96294. 80h MOD has samples >64k in it
  96295. else all samples in MOD are <64k
  96296. Notes: Main module data and all samples must start on segment boundaries.
  96297. In version 2.00 (ONLY) this function carries on playing (works in
  96298. the background)
  96299. SeeAlso: #02961
  96300. --------s-2F8221-----------------------------
  96301. INT 2F - MODRES - INSTALLATION CHECK
  96302. AX = 8221h
  96303. Return: AX = status
  96304. 5722h successful
  96305. other MODRES not installed
  96306. BX = BCD version number (BH = major, BL = minor)
  96307. DX:CX -> Output Device structure (read-only) (see #02961)
  96308. SeeAlso: AX=8220h,AX=8222h,AX=8225h,AX=8227h
  96309. Format of Output Device structure [array]:
  96310. Offset Size Description (Table 02961)
  96311. 00h 20 BYTEs ASCIZ name of the output device
  96312. (end of list if first char is FFh)
  96313. 14h WORD apparently always FFFFh
  96314. 16h WORD 0000h if output device not available
  96315. else first I/O port for the output device
  96316. 18h WORD second I/O port for the output device (for example
  96317. if it is stereo)
  96318. 000oh if only one port used or device is not available
  96319. 1Ah 7 BYTEs ???
  96320. SeeAlso: #02960,#02962
  96321. (Table 02962)
  96322. Values for MODRES v1.52 output device index:
  96323. 00h PC speaker
  96324. 01h D/A Converter on LPT1
  96325. 02h D/A Converter on LPT2
  96326. 03h D/A Converter on LPT3
  96327. 04h D/A Converter on LPT4
  96328. 05h D/A Converter on LPT1&LPT2 (stereo)
  96329. 06h D/A Converter on LPT1&LPT2 (mono)
  96330. 07h Sound Blaster (port 02x0h)
  96331. 08h User Defined D/A (mono)
  96332. 09h User Defined D/A (stereo)
  96333. 0Ah Stereo-on-1
  96334. 0Bh Disney SS su LPT1
  96335. 0Ch Disney SS su LPT2
  96336. 0Dh Disney SS su LPT3
  96337. 0Eh Disney SS su LPT4
  96338. Note: this list may vary between versions of MODRES
  96339. --------s-2F8222-----------------------------
  96340. INT 2F - MODRES - UNINSTALL
  96341. AX = 8222h
  96342. Return: AX = code segment of the program
  96343. Note: this function does not release the TSRs memory; the caller must do so
  96344. SeeAlso: AX=8220h,AX=8221h,AX=8223h
  96345. --------s-2F8223-----------------------------
  96346. INT 2F - MODRES - PLAY SAMPLE
  96347. AX = 8223h
  96348. DX:CX -> SAMPARM structure (see #02963)
  96349. Return: AX = status
  96350. 5722h succesful
  96351. 2000h parameters out of range
  96352. other MODRES not installed
  96353. SeeAlso: AX=8221h,AX=8224h,AX=8225h,AX=8226h
  96354. Format of SAMPARM Structure:
  96355. Offset Size Description (Table 02963)
  96356. 00h WORD signature 5053h ("SP" = SAMPARM)
  96357. 02h WORD segment of start of sample to play
  96358. 04h WORD length of sample (IN WORD)
  96359. 06h BYTE output device (see #02962 at INT 2F/AX=8221h)
  96360. 07h WORD pitch to play (see #02964)
  96361. 09h BYTE volume (from 00h to 40h)
  96362. 0Ah WORD loop start
  96363. 0Ch WORD loop length
  96364. 0Eh BYTE machine speed (see INT 2F/AX=8220h)
  96365. SeeAlso: #02960
  96366. (Table 02964)
  96367. Values for Pitch to play::
  96368. C 0 is 06B0h
  96369. C#0 is 06B0h / 2^(1/12)
  96370. D 0 is (06B0h / 2^(1/12)) / 2^(1/12)
  96371. ...
  96372. Note: C 1 is 06B0h / 2
  96373. C 2 is 06B0h / 4
  96374. etc.
  96375. SeeAlso: #02963
  96376. --------s-2F8224-----------------------------
  96377. INT 2F - MODRES - ???
  96378. AX = 8224h
  96379. DX:CX -> ???
  96380. Return: ???
  96381. SeeAlso: AX=8221h,AX=8223h,AX=8224h
  96382. --------s-2F8225-----------------------------
  96383. INT 2F - MODRES v2.00+ - GET LOCATION IN MOD
  96384. AX = 8225h
  96385. Return: AL = status
  96386. 00h playing
  96387. 01h reached end or stopped
  96388. AH = speed of MOD
  96389. BX = position within pattern 0000h-0400h
  96390. CL = position within the song (track number)
  96391. SeeAlso: AX=8220h,AX=8221h,AX=8223h,AX=8226h
  96392. --------s-2F8226-----------------------------
  96393. INT 2F - MODRES v2.00+ - STOP PLAYING
  96394. AX = 8226h
  96395. Return: AX = status
  96396. 5722h succesful
  96397. other MODRES not installed
  96398. Desc: stops playing the MOD file before performing critical operations such
  96399. as disk accesses
  96400. SeeAlso: AX=8220h,AX=8221h,AX=8223h,AX=8225h,AX=8227h
  96401. --------s-2F8227-----------------------------
  96402. INT 2F - MODRES - CONFIGURE
  96403. AX = 8227h
  96404. BX = function
  96405. 0001h set default playing speed (06h)
  96406. 0002h select output device
  96407. CL = output device (see #02962 at INT 2F/AX=8221h)
  96408. Return: AX = status
  96409. 5722h succesful
  96410. 2000h parameters out of range
  96411. other MODRES not installed
  96412. Note: function 0001h should be called every time a new module is loaded
  96413. SeeAlso: AX=8220h,AX=8221h,AX=8222h,AX=8223h
  96414. ----------2F86-------------------------------
  96415. INT 2F U - ???
  96416. AH = 86h
  96417. AL = function (at least 06h and 07h)
  96418. ???
  96419. Return: ???
  96420. Note: called by Codeview for Windows
  96421. SeeAlso: AH=44h
  96422. --------U-2F8900-----------------------------
  96423. INT 2F - WHOA!.COM - INSTALLATION CHECK
  96424. AX = 8900h
  96425. Return: AL = state
  96426. 00h not installed
  96427. FFh installed
  96428. Program: WHOA!.COM is a system slow-down utility by Brad D Crandall
  96429. SeeAlso: AX=8901h,AX=8902h
  96430. --------U-2F8901-----------------------------
  96431. INT 2F - WHOA!.COM - UNINSTALL
  96432. AX = 8901h
  96433. Return: AL = status
  96434. FDh successful
  96435. FEh error
  96436. SeeAlso: AX=8900h
  96437. --------U-2F8902-----------------------------
  96438. INT 2F - WHOA!.COM - SET DELAY COUNT
  96439. AX = 8902h
  96440. BX = delay count (larger values slow system down more)
  96441. Return: AL = status
  96442. FDh successful
  96443. FEh error
  96444. Program: WHOA!.COM is a system slow-down utility by Brad D Crandall
  96445. SeeAlso: AX=8900h
  96446. --------U-2F9000-----------------------------
  96447. INT 2F U - RAID - INSTALLATION CHECK
  96448. AX = 9000h
  96449. Return: AL = FFh if installed
  96450. Program: RAID (Resident AID) is a TSR utility program by Ross Neilson
  96451. Wentworth that resides mostly in EMS
  96452. --------U-2F9001-----------------------------
  96453. INT 2F U - RAID - GET ???
  96454. AX = 9001h
  96455. Return: DX:AX -> ???
  96456. SeeAlso: AX=9000h
  96457. --------U-2F9002-----------------------------
  96458. INT 2F U - RAID - GET RESIDENT SEGMENT
  96459. AX = 9002h
  96460. Return: AX = segment of resident (conventional memory) portion
  96461. SeeAlso: AX=9000h
  96462. --------U-2F9003-----------------------------
  96463. INT 2F U - RAID - UNINSTALL
  96464. AX = 9003h
  96465. Return: ???
  96466. SeeAlso: AX=9000h
  96467. --------U-2F9004-----------------------------
  96468. INT 2F U - RAID - GET ???
  96469. AX = 9004h
  96470. Return: AX = first available paragraph past end of resident portion???
  96471. CX destroyed
  96472. SeeAlso: AX=9000h
  96473. --------e-2F92-------------------------------
  96474. INT 2F - Network Courier E-Mail - API
  96475. AH = 92h
  96476. AL = function
  96477. 00h installation check
  96478. 01h uninstall
  96479. 02h pop down MICRO.EXE notification window
  96480. 03h ???
  96481. 04h ???
  96482. 05h ???
  96483. Return: ???
  96484. Program: The Network Courier is an electronic mail package by Consumers
  96485. Software of Vancouver, BC which was bought by Microsoft in 1991 and
  96486. renamed Microsoft Mail v3.0.
  96487. SeeAlso: AX=9400h,AX=9401h,AX=9402h,AH=9Ch
  96488. Index: installation check;Network Courier E-Mail
  96489. Index: uninstall;Network Courier E-Mail
  96490. --------R-2F9200-----------------------------
  96491. INT 2F U - PC Tools v8.0 DRIVEMAP - BUG
  96492. AX = 9200h
  96493. Program: DRIVEMAP is a redirector which allows drives on computers connected
  96494. over the parallel or serial ports to appear as local drives
  96495. BUG: jumps to data because jump table entry is 0000h
  96496. Note: DRIVEMAP returns AX=FFFFh if not a valid function number in AL
  96497. --------R-2F9201-----------------------------
  96498. INT 2F U - PC Tools v8.0 DRIVEMAP - CHECK IF MAPPED DRIVE
  96499. AX = 9201h
  96500. DL = drive number (01h = A:, etc.)
  96501. Return: AL = 92h if mapped drive
  96502. AH may be destroyed (v8.0 DRIVEMAP returns AX=0000h if not mapped)
  96503. SeeAlso: AX=9204h,AX=920Bh
  96504. --------R-2F9202-----------------------------
  96505. INT 2F U - PC Tools v8.0 DRIVEMAP - UNINSTALL
  96506. AX = 9202h
  96507. BX = caller's CS
  96508. Return: AX = status
  96509. 0000h failed
  96510. nonzero successful
  96511. SeeAlso: AX=9204h
  96512. --------R-2F9203-----------------------------
  96513. INT 2F U - PC Tools v8.0 DRIVEMAP - GET VERSION
  96514. AX = 9203h
  96515. Return: AH = major version
  96516. AL = minor version
  96517. CX = segment of resident code
  96518. Note: the DRIVEMAP included with PC Tools v8.0 is version 1.00
  96519. SeeAlso: AX=9204h,INT 16/AX=FF70h
  96520. --------R-2F9204-----------------------------
  96521. INT 2F U - PC Tools v8.0 DRIVEMAP - INSTALLATION CHECK
  96522. AX = 9204h
  96523. Return: AX = 9200h if installed
  96524. BL = ???
  96525. CX = segment of resident code
  96526. Program: DRIVEMAP is a redirector which allows drives on computers connected
  96527. over the parallel or serial ports to appear as local drives
  96528. SeeAlso: AX=9201h,AX=9202h,AX=9203h
  96529. --------R-2F9205-----------------------------
  96530. INT 2F U - PC Tools v8.0 DRIVEMAP - SET ???
  96531. AX = 9205h
  96532. BX = ??? to set
  96533. Return: CX = new value of ???
  96534. --------R-2F9206-----------------------------
  96535. INT 2F U - PC Tools v8.0 DRIVEMAP - ???
  96536. AX = 9206h
  96537. ???
  96538. Return: ???
  96539. --------R-2F9207-----------------------------
  96540. INT 2F U - PC Tools v8.0 DRIVEMAP - GET ???
  96541. AX = 9207h
  96542. ???
  96543. Return: AX = ???
  96544. --------R-2F9208-----------------------------
  96545. INT 2F U - PC Tools v8.0 DRIVEMAP - ???
  96546. AX = 9208h
  96547. ???
  96548. Return: ???
  96549. --------R-2F9209-----------------------------
  96550. INT 2F U - PC Tools v8.0 DRIVEMAP - ???
  96551. AX = 9209h
  96552. ???
  96553. Return: AX = ???
  96554. BX = ???
  96555. CX = ???
  96556. DX = ???
  96557. --------R-2F920A-----------------------------
  96558. INT 2F U - PC Tools v8.0 DRIVEMAP - ???
  96559. AX = 920Ah
  96560. BX = ???
  96561. Return: AX = ??? or FFFBh on error
  96562. --------R-2F920B-----------------------------
  96563. INT 2F U - PC Tools v8.0 DRIVEMAP - SET DRIVE MAPPING
  96564. AX = 920Bh
  96565. BL = drive letter (41h ['A'] = A:, etc)
  96566. CX = ??? (0000h removes mapping)
  96567. Return: AX = ??? or FFF8h on error
  96568. SeeAlso: AX=9201h,AX=920Dh
  96569. --------R-2F920C-----------------------------
  96570. INT 2F U - PC Tools v8.0 DRIVEMAP - ???
  96571. AX = 920Ch
  96572. ???
  96573. Return: AX = ??? (0002h)
  96574. CX = ??? (0000h)
  96575. --------R-2F920D-----------------------------
  96576. INT 2F U - PC Tools v8.0 DRIVEMAP - GET DRIVE TYPE
  96577. AX = 920Dh
  96578. BL = drive letter (41h ['A'] = A:, etc)
  96579. Return: AX = type flags
  96580. bit 0: ???
  96581. bit 1: available
  96582. bit 5: local
  96583. BX = ???
  96584. CX = segment of resident code (apparently an unintended side effect)
  96585. Program: DRIVEMAP is a redirector which allows drives on computers connected
  96586. over the parallel or serial ports to appear as local drives
  96587. SeeAlso: AX=9218h,INT 16/AX=FF70h
  96588. --------R-2F920E-----------------------------
  96589. INT 2F U - PC Tools v8.0 DRIVEMAP - SET LPT MAPPING
  96590. AX = 920Eh
  96591. BX = port number (0-2)
  96592. CX = ??? (0000h to unmap)
  96593. Return: ???
  96594. --------R-2F920F-----------------------------
  96595. INT 2F U - PC Tools v8.0 DRIVEMAP - GET ???
  96596. AX = 920Fh
  96597. ES:DI -> 3-byte buffer for ???
  96598. Return: CX = 0000h
  96599. ES:DI buffer filled
  96600. --------R-2F9210-----------------------------
  96601. INT 2F U - PC Tools v8.0 DRIVEMAP - ???
  96602. AX = 9210h
  96603. ???
  96604. Return: ???
  96605. --------R-2F9211-----------------------------
  96606. INT 2F U - PC Tools v8.0 DRIVEMAP - GET ???
  96607. AX = 9211h
  96608. ES:DI -> 8-word buffer for ???
  96609. Return: CX = 0000h
  96610. ES:DI buffer filled
  96611. --------R-2F9212-----------------------------
  96612. INT 2F U - PC Tools v8.0 DRIVEMAP - CRITICAL SECTION???
  96613. AX = 9212h
  96614. BX = phase
  96615. 0000h leave critical section???
  96616. nonzero enter critical section???
  96617. --------R-2F9213-----------------------------
  96618. INT 2F U - PC Tools v8.0 DRIVEMAP - ???
  96619. AX = 9213h
  96620. BX = function number (0000h-000Bh)
  96621. ???
  96622. Return: ???
  96623. --------R-2F9214-----------------------------
  96624. INT 2F U - PC Tools v8.0 DRIVEMAP - GET ???
  96625. AX = 9214h
  96626. ES:DI -> 6-word buffer for ???
  96627. Return: CX = 0000h
  96628. AX = ???
  96629. ES:DI buffer filled
  96630. --------R-2F9215-----------------------------
  96631. INT 2F U - PC Tools v8.0 DRIVEMAP - GET ???
  96632. AX = 9215h
  96633. ES:DI -> 100-word buffer for ???
  96634. Return: CX = 0000h
  96635. ES:DI buffer filled
  96636. --------R-2F9216-----------------------------
  96637. INT 2F U - PC Tools v8.0 DRIVEMAP - ???
  96638. AX = 9216h
  96639. ES:DI -> ???
  96640. Return: ???
  96641. --------R-2F9217-----------------------------
  96642. INT 2F U - PC Tools v8.0 DRIVEMAP - ???
  96643. AX = 9217h
  96644. DS:SI -> 25-word buffer containing ???
  96645. Return: ???
  96646. --------R-2F9218-----------------------------
  96647. INT 2F U - PC Tools v8.0 DRIVEMAP - GET LPT TYPE???
  96648. AX = 9218h
  96649. BX = port number???
  96650. Return: AX = ???
  96651. BX = ??? (0000h)
  96652. CX = ??? (0000h)
  96653. Program: DRIVEMAP is a redirector which allows drives on computers connected
  96654. over the parallel or serial ports to appear as local drives
  96655. --------R-2F9219-----------------------------
  96656. INT 2F U - PC Tools v8.0 DRIVEMAP - ???
  96657. AX = 9219h
  96658. ???
  96659. Return: ???
  96660. --------R-2F921A-----------------------------
  96661. INT 2F U - PC Tools v8.0 DRIVEMAP - ???
  96662. AX = 921Ah
  96663. ???
  96664. Return: AH = ???
  96665. AL = ???
  96666. BX = ???
  96667. --------R-2F921B-----------------------------
  96668. INT 2F U - PC Tools v8.0 DRIVEMAP - ???
  96669. AX = 921Bh
  96670. ???
  96671. Return: AX = ???
  96672. CX = segment of resident code (apparently an unintended side effect)
  96673. --------R-2F921C-----------------------------
  96674. INT 2F U - PC Tools v8.0 DRIVEMAP - ???
  96675. AX = 921Ch
  96676. ???
  96677. Return: ???
  96678. --------R-2F921D-----------------------------
  96679. INT 2F U - PC Tools v8.0 DRIVEMAP - GET ???
  96680. AX = 921Dh
  96681. Return: AX = ???
  96682. --------R-2F921E-----------------------------
  96683. INT 2F U - PC Tools v8.0 DRIVEMAP - ???
  96684. AX = 921Eh
  96685. ???
  96686. Return: ???
  96687. Program: DRIVEMAP is a redirector which allows drives on computers connected
  96688. over the parallel or serial ports to appear as local drives
  96689. Note: this function sets two variables to 24h each
  96690. SeeAlso: INT 16/AX=FF70h
  96691. --------V-2F93-------------------------------
  96692. INT 2F - InnerMission v1.7+ - INSTALLATION CHECK
  96693. AH = 93h
  96694. BX = CX = AX
  96695. Return: AL = state
  96696. FFh if installed and BX=CX=AX on entry
  96697. BX = segment of resident code
  96698. 01h if installed but BX or CX differ from AX (multiplex number not
  96699. available)
  96700. Program: InnerMission is a shareware graphical screen blanker by Kevin Stokes
  96701. SeeAlso: INT 14/AX=AA01h,INT 2F/AX=6400h
  96702. Index: screen saver;InnerMission
  96703. --------e-2F9400-----------------------------
  96704. INT 2F - MICRO.EXE - INSTALLATION CHECK
  96705. AX = 9400h
  96706. Return: AL = 07h or 08h if installed
  96707. Program: MICRO.EXE is a TSR of the Microsoft Mail part of Workgroup Connection
  96708. SeeAlso: AH=92h"Network Courier",AX=9401h,AX=9402h,AX=9403h,AX=9404h
  96709. SeeAlso: INT 21/AH=3Fh"WORKGRP.SYS"
  96710. --------e-2F9401-----------------------------
  96711. INT 2F - MICRO.EXE - SET ??? FLAG
  96712. AX = 9401h
  96713. SeeAlso: AX=9400h,AX=9403h
  96714. --------e-2F9402-----------------------------
  96715. INT 2F - MICRO.EXE - ???
  96716. AX = 9402h
  96717. ???
  96718. Return: ???
  96719. SeeAlso: AX=9400h
  96720. --------e-2F9403-----------------------------
  96721. INT 2F - MICRO.EXE - SET ??? FLAG
  96722. AX = 9403h
  96723. SeeAlso: AX=9400h,AX=9404h
  96724. --------e-2F9404-----------------------------
  96725. INT 2F - MICRO.EXE - CLEAR ??? FLAG
  96726. AX = 9404h
  96727. ES:DI -> name of executable from which MICRO.EXE was started
  96728. Note: if the specified name is identical to the name of the program file
  96729. from which MICRO was started, the ??? flag is cleared; otherwise,
  96730. it is left unchanged
  96731. SeeAlso: AX=9400h,AX=9403h
  96732. --------V-2F96C7-----------------------------
  96733. INT 2F U - STRETCH - INSTALLATION CHECK
  96734. AX = 96C7h
  96735. Return: AX = AAAAh if installed
  96736. Program: stretch.exe is a TSR for Toshiba Laptops with WD90C24 video chip
  96737. to avoid blank screen areas in VGA text modes by increasing
  96738. inter-line spacing
  96739. ----------2F97-------------------------------
  96740. INT 2F U - Micro Focus COBOL v3.1.31 internal - ???
  96741. AH = 97h
  96742. AL = function
  96743. 00h installation check
  96744. Return: AL = FFh if installed
  96745. 08h get ???
  96746. Return: AL = ???
  96747. BX = ???
  96748. DX = ???
  96749. AH destroyed
  96750. 20h get ???
  96751. Return: AX:BX = far entry point of ???
  96752. CX = segment of ???
  96753. 80h ???
  96754. Return: ???
  96755. Notes: Micro Focus COBOL compiler v3.1.31 and companion programs supply
  96756. these functions for internal use; these programs call the
  96757. installation check at startup (before installing the INT 2F
  96758. handler) and crash the system if a not authorized program answers
  96759. with AL=FFh
  96760. the handler checks AL only if an internal flag is 1, otherwise ???
  96761. SeeAlso: AH=98h"COBOL",AH=99h"COBOL",AH=9Ah"COBOL"
  96762. ----------2F98-------------------------------
  96763. INT 2F U - Micro Focus COBOL v3.1.31 internal - ???
  96764. AH = 98h
  96765. AL = function
  96766. 00h installation check
  96767. Return: AL = FFh if installed
  96768. 10h get ???
  96769. Return: AX = ???
  96770. 18h get segment of ???
  96771. Return: AX = segment of ???
  96772. 19h get pointer to ???
  96773. Return: AX:BX -> ???
  96774. Notes: Micro Focus COBOL compiler v3.1.31 and companion programs supply
  96775. these functions for internal use; these programs call the
  96776. installation check at startup (before installing the INT 2F
  96777. handler) and crash the system if a not authorized program answers
  96778. with AL=FFh
  96779. the handler checks AL only if an internal flag is 0, otherwise ???
  96780. SeeAlso: AH=97h"COBOL",AH=99h"COBOL",AH=9Ah"COBOL"
  96781. --------V-2F9800-----------------------------
  96782. INT 2F U - S3RMDRV.SYS - INSTALLATION CHECK / VERSION CHECK
  96783. AX = 9800h
  96784. BX = function
  96785. 0000h installation check
  96786. Return: AX = 524Dh ('RM') if installed
  96787. 0001h get driver version
  96788. Return: AX = driver version (AH=major, AL=BCD minor)
  96789. Program: S3RMDRV.SYS provides support for the S3 MPEG driver FMPDRV
  96790. SeeAlso: AX=9803h
  96791. --------V-2F9803-----------------------------
  96792. INT 2F U - S3RMDRV.SYS - COPY ??? INTO USER BUFFER
  96793. AX = 9803h
  96794. DX:BX -> 116-byte buffer for ASCIZ ???
  96795. Return: AX = 0000h
  96796. DX:BX buffer filled with string stored in driver from its parameter
  96797. list when it was loaded
  96798. Note: the examined version of the driver returns CF set for any AL other
  96799. than 00h or 03h
  96800. SeeAlso: AX=9800h
  96801. ----------2F99-------------------------------
  96802. INT 2F U - Micro Focus COBOL v3.1.31 internal - ???
  96803. AH = 99h
  96804. ???
  96805. Return: ???
  96806. Note: used internally by Micro Focus COBOL compiler v3.1.31 and companion
  96807. programs
  96808. SeeAlso: AH=97h"COBOL",AH=98h"COBOL",AH=9Ah"COBOL"
  96809. --------l-2F9900-----------------------------
  96810. INT 2F U - DOS Navigator II - INSTALLATION CHECK
  96811. AX = 9900h
  96812. Return: BX = 444Eh ('DN') if installed
  96813. AX = number of DOS Navigator executions
  96814. CL = child process exit code
  96815. DX = version number (see #02965)
  96816. Notes: old versions of DOS Navigator II always returned AH=1, while newer
  96817. ones return AH=0 and store AL in the DN.FLG file
  96818. Program: DOS Navigator is a multi-window shell for MS-DOS by RIT S.R.L.
  96819. DOS Navigator(TM) is a registered trademark of RIT S.R.L.
  96820. SeeAlso: AX=9901h,AX=9902h,AX=9903h,AX=9904h,AX=9905h,AX=9906h
  96821. (Table 02965)
  96822. Values for DOS Navigator II version code:
  96823. 2100h version 1.35
  96824. 2138h version 1.38
  96825. 2141h version 1.41
  96826. 2150h version 1.50
  96827. --------l-2F9901-----------------------------
  96828. INT 2F U - DOS Navigator II - RETURN POINTER TO COMMAND LINE
  96829. AX = 9901h
  96830. Return: ES:BX -> command line (terminated with 0Dh)
  96831. AX = ES
  96832. SeeAlso: AX=9900h,AX=9902h,AX=9903h
  96833. --------l-2F9902-----------------------------
  96834. INT 2F U - DOS Navigator II - SET 'TRUE' EXIT CODE OF DN.PRG
  96835. AX = 9902h
  96836. CL = exit code
  96837. Return: AX destroyed
  96838. SeeAlso: AX=9900h,AX=9901h,AX=9903h
  96839. --------l-2F9903-----------------------------
  96840. INT 2F U - DOS Navigator II - SPECIFY HOW TO EXECUTE COMMANDS
  96841. AX = 9903h
  96842. CL = 1 to use INT 2E
  96843. CL <> 1 to use INT 21/AH=4Bh
  96844. SeeAlso: AX=9900h,AX=9901h,AX=9902h
  96845. --------l-2F9904-----------------------------
  96846. INT 2F U - DOS Navigator II v1.49 - SET ???
  96847. AX = 9904h
  96848. CX:DX = new value for ???
  96849. SeeAlso: AX=9900h,AX=9905h,AX=9906h
  96850. --------l-2F9905-----------------------------
  96851. INT 2F U - DOS Navigator II v1.49 - GET ???
  96852. AX = 9905h
  96853. Return: CX:DX = current value of ??? (set by AX=9904h)
  96854. SeeAlso: AX=9900h,AX=9904h,AX=9906h
  96855. --------l-2F9906-----------------------------
  96856. INT 2F U - DOS Navigator II v1.49 - GET ???
  96857. AX = 9906h
  96858. DX = new value for ??? (bit 15 must be set, otherwise not changed)
  96859. Return: CX = previous value for ???
  96860. SeeAlso: AX=9900h,AX=9904h,AX=9905h
  96861. ----------2F9A-------------------------------
  96862. INT 2F U - Micro Focus COBOL v3.1.31 internal - ???
  96863. AH = 9Ah
  96864. ???
  96865. Return: ???
  96866. Note: used internally by Micro Focus COBOL compiler v3.1.31 and companion
  96867. programs
  96868. SeeAlso: AH=97h"COBOL",AH=98h"COBOL",AH=99h"COBOL"
  96869. --------e-2F9C-------------------------------
  96870. INT 2F - Network Courier E-Mail OPERATOR.EXE - API
  96871. AH = 9Ch
  96872. AL = subfunction
  96873. 01h uninstall
  96874. Return: ???
  96875. Program: The Network Courier is an electronic mail package by Consumers
  96876. Software of Vancouver, BC which was bought by Microsoft in 1991 and
  96877. renamed Microsoft Mail v3.0.
  96878. SeeAlso: AH=92h
  96879. Index: uninstall;Network Courier E-Mail OPERATOR.EXE
  96880. --------G-2F9E00-----------------------------
  96881. INT 2F U - INTMON v2.1 - INSTALLATION CHECK
  96882. AX = 9E00h
  96883. Return: AX = FFFFh if installed
  96884. BX = segment of resident code
  96885. Program: INTMON is a shareware interactive interrupt monitoring TSR for 386
  96886. and higher machines by Celso Minnitti, Jr.
  96887. SeeAlso: AX=9E01h,AX=9E02h,AX=9E03h,AX=9F00h
  96888. --------G-2F9E01-----------------------------
  96889. INT 2F U - INTMON v2.1 - RESET
  96890. AX = 9E01h
  96891. Return: ???
  96892. Desc: this function specifies that INTMON should assume that any interrupts
  96893. on which it is currently awaiting a return have completed (i.e.
  96894. interrupts which never return such as INT 20 and INT 27)
  96895. SeeAlso: AX=9E00h,AX=9E03h
  96896. --------G-2F9E02-----------------------------
  96897. INT 2F U - INTMON v2.1 - DISPLAY CPU REGISTERS???
  96898. AX = 9E02h
  96899. Return: ???
  96900. SeeAlso: AX=9E00h
  96901. --------G-2F9E03-----------------------------
  96902. INT 2F U - INTMON v2.1 - HOOK INTERRUPT???
  96903. AX = 9E03h
  96904. BH = interrupt number???
  96905. Return: ???
  96906. Note: if AL > 03h on entry, INTMON 2.1 returns immediately
  96907. SeeAlso: AX=9E00h,AX=9E01h
  96908. --------G-2F9F00-----------------------------
  96909. INT 2F U - INTCFG v2.1 - INSTALLATION CHECK
  96910. AX = 9F00h
  96911. Return: AX = FFFFh if installed
  96912. Program: INTCFG is an optionally-resident control program for INTMON by Celso
  96913. Minnitti, Jr.
  96914. SeeAlso: AX=9E00h,AX=9F01h,AX=9F30h,AX=9F49h
  96915. --------G-2F9F01-----------------------------
  96916. INT 2F U - INTCFG v2.1 - ???
  96917. AX = 9F01h
  96918. ???
  96919. Return: ???
  96920. SeeAlso: AX=9F00h
  96921. --------G-2F9F30-----------------------------
  96922. INT 2F U - INTCFG v2.1 - GET ???
  96923. AX = 9F30h
  96924. Return: AX = ??? (0002h)
  96925. SeeAlso: AX=9F00h
  96926. --------G-2F9F49-----------------------------
  96927. INT 2F U - INTCFG v2.1 - UNINSTALL
  96928. AX = 9F49h
  96929. Return: AX,DX,DS,ES destroyed
  96930. SeeAlso: AX=9F00h
  96931. --------E-2FA1--BX0081-----------------------
  96932. INT 2F - Ergo DOS extenders - INSTALLATION CHECK
  96933. AH = A1h
  96934. BX = 0081h
  96935. AL = which
  96936. FEh OS/286,OS/386
  96937. FFh HummingBoard DOS extender
  96938. ES:DI -> 16-byte buffer
  96939. Return: if installed, first four bytes of ES:DI buffer are "IABH"
  96940. Note: since TKERNEL is a licensed version, it is likely that subfunctions
  96941. BX=0082h and BX=0084h are present and function identically to the
  96942. AX=FBA1h/BX=008xh calls
  96943. SeeAlso: AX=ED00h,AX=FBA1h/BX=0081h,INT 15/AX=BF02h
  96944. --------m-2FA189-----------------------------
  96945. INT 2F U - Biologic HRAMDEV.SYS - API
  96946. AX = A189h
  96947. BX = subfunction
  96948. 0000h set ???
  96949. 0001h remove ???
  96950. 0002h get status ???
  96951. 0003h enable ???
  96952. 0004h disable ???
  96953. 0005h set ??? flag
  96954. 0006h clear ??? flag
  96955. 0007h set ??? flag
  96956. 0008h clear ??? flag
  96957. 0009h set ???
  96958. ES:DI -> function-specific arguments
  96959. if func 0000h: 20-byte buffer containing ???
  96960. if func 0001h: 20-byte buffer for returned ???
  96961. if func 0002h: 16-byte buffer for returned ???
  96962. if func 0009h: WORD containing ???
  96963. Return: BX = A189h if installed
  96964. AH = status
  96965. 00h successful
  96966. FFh failed or invalid function number
  96967. Program: HRAMDEV.SYS is a part of the shareware package HRAM by Biologic which
  96968. provides improved high memory access under MS-DOS 5.0
  96969. Note: functions 00h and 01h use a stack of four entries; function 01h always
  96970. removes the values stored with the most recent function 00h call
  96971. which has not yet been matched with a function 01h call.
  96972. --------U-2FA4E0-----------------------------
  96973. INT 2F - Futurus Team - INSTALLATION CHECK
  96974. AX = A4E0h
  96975. Return: AL = 52h ("R") if installed
  96976. AH = major version plus 30h ("0")
  96977. ES:BX -> ??? (INT A4 handler???)
  96978. Note: older versions of Right Hand Man (from which Team evolved) store the
  96979. signature "RH" at offset 103h in the INT 2F handler's segment
  96980. SeeAlso: INT A4"Right Hand Man"
  96981. --------U-2FA900-----------------------------
  96982. INT 2F - METZTSR.COM - INSTALLATION CHECK
  96983. AX = A900h
  96984. CF set
  96985. Return: CF clear if resident
  96986. AX = 97FFh
  96987. CF set if not present
  96988. Notes: METZTSR.COM prevents METZ applications (such as the MAGIC screen
  96989. saver) inactivity timeout while running a DOSapp under MS Windows.
  96990. the default multiplex number is A9h, but may be set to any value from
  96991. 80h to FFh with a commandline switch
  96992. SeeAlso: AX=A901h,AX=A902h
  96993. --------U-2FA901-----------------------------
  96994. INT 2F - METZTSR.COM - GET TIME OF LAST KEYBOARD ACTIVITY
  96995. AX = A901h
  96996. CF set
  96997. Return: CF clear if successful
  96998. AX:DX = BIOS time at which INT 09 was last invoked
  96999. CF set if not present
  97000. SeeAlso: INT 09,INT 1A/AH=00h
  97001. --------U-2FA902-----------------------------
  97002. INT 2F - METZTSR.COM - SET METZ Ctrl-Alt-Del FLAG
  97003. AX = A902h
  97004. BL = new value
  97005. 00h Ctrl-Alt-Del not allowed
  97006. else Ctrl-Alt-Del allowed (startup default is 01h)
  97007. CF set
  97008. Return: CF clear if successful
  97009. AX = 97FFh
  97010. CF set if not resident
  97011. SeeAlso: AX=A903h
  97012. --------U-2FA903-----------------------------
  97013. INT 2F - METZTSR.COM - GET METZ Ctrl-Alt-Del FLAG
  97014. AX = A903h
  97015. CF set
  97016. Return: CF clear if successful
  97017. AX = 97FFh if Ctrl-Alt-Del allowed
  97018. AX = 0000h if Ctrl-Alt-Del not allowed
  97019. CF set if not resident
  97020. SeeAlso: AX=A902h
  97021. --------U-2FAA-------------------------------
  97022. INT 2F - Player's Tool 3.996b+ - UNINSTALL
  97023. AH = AAh
  97024. Return: AL = status
  97025. 00h unloaded successfully
  97026. 01h unable to unload: in DOS shell
  97027. Program: Player's Tool is a game cheater by Dima Yakunin & Andy Robinson
  97028. SeeAlso: AH=ABh"Player's Tool",AH=ACh"Player's Tool",INT 10/AH=AAh
  97029. --------U-2FAA00-----------------------------
  97030. INT 2F - VIDCLOCK.COM - INSTALLATION CHECK
  97031. AX = AA00h
  97032. Return: AL = 00h not installed
  97033. FFh installed
  97034. Program: VIDCLOCK.COM is a memory-resident clock by Thomas G. Hanlin III
  97035. --------U-2FAB-------------------------------
  97036. INT 2F - Player's Tool 3.996b+ - INSTALLATION CHECK
  97037. AH = ABh
  97038. Return: BH = FFh if installed
  97039. BL = DOS shell state
  97040. 01h in DOS shell
  97041. 00h not in DOS shell
  97042. SeeAlso: AH=AAh"Player's Tool",AH=ACh"Player's Tool",INT 10/AH=ABh
  97043. --------f-2FAB00-----------------------------
  97044. INT 2F - Btrieve Multi-User - INSTALLATION CHECK
  97045. AX = AB00h
  97046. Return: AL = 4Dh if installed
  97047. SeeAlso: AX=AB01h,AX=AB02h,INT 7B"Btrieve"
  97048. ----------2FAB00-----------------------------
  97049. INT 2F - SRSoft MODAL PC v2+ - INSTALLATION CHECK / GET VERSION
  97050. AX = AB00h
  97051. Return: AX = 5253h ('SR' byte-swapped) if installed
  97052. BX = MODAL PC version (BL = major, BH = minor)
  97053. Program: MODAL PC is an algorithm/real-system simulation package by SR Soft
  97054. using Petri-nets to describe simulated objects
  97055. SeeAlso: AX=AB01h"MODAL",AX=AB02h"MODAL",AX=AB06h"MODAL"
  97056. --------f-2FAB01-----------------------------
  97057. INT 2F - Btrieve Multi-User - EXECUTE Btrieve OPERATION
  97058. AX = AB01h
  97059. BX = process ID
  97060. DS:DX -> 38-byte parameter record (see #03840 at INT 7B"Btrieve")
  97061. Return: AL = status
  97062. 00h OK
  97063. other retry after calling INT 7F/AX=0200h
  97064. SeeAlso: AX=AB00h"Btrieve",AX=AB02h"Btrieve",INT 7B"Btrieve",INT 7F/AX=0200h
  97065. ----------2FAB01-----------------------------
  97066. INT 2F - SRSoft MODAL PC v2+ - GET PROCESS RUN PARAMETER
  97067. AX = AB01h
  97068. Return: AX = 5253h ('SR' byte-swapped) if installed
  97069. BL = run parameter
  97070. 00h normal process
  97071. 01h run with tracing enabled
  97072. 02h run initialization process (first thread of main task)
  97073. SeeAlso: AX=AB00h"MODAL",AX=AB02h"MODAL"
  97074. --------f-2FAB02-----------------------------
  97075. INT 2F - Btrieve Multi-User - GET NEW PROCESS ID
  97076. AX = AB02h
  97077. Return: AL = 00h successful
  97078. BX = process ID
  97079. AL > 00h failed, retry after calling INT 7F/AX=0200h
  97080. SeeAlso: AX=AB00h,AX=AB01h,INT 7B"Btrieve",INT 7F/AX=0200h
  97081. ----------2FAB02-----------------------------
  97082. INT 2F - SRSoft MODAL PC v2+ - SET PROCESS EXIT CODE
  97083. AX = AB02h
  97084. BL = exit code
  97085. Return: AX = 5253h ('SR' byte-swapped) if installed
  97086. SeeAlso: AX=AB00h"MODAL",AX=AB01h"MODAL",AX=AB03h"MODAL"
  97087. ----------2FAB03-----------------------------
  97088. INT 2F - SRSoft MODAL PC v2+ - ALLOCATE COMMON MEMORY
  97089. AX = AB03h
  97090. BX = required size of common memory for variables/semaphores in bytes
  97091. Return: AX = 5253h ('SR' byte-swapped) if installed
  97092. SeeAlso: AX=AB00h"MODAL",AX=AB02h"MODAL",AX=AB04h"MODAL"
  97093. ----------2FAB04-----------------------------
  97094. INT 2F - SRSoft MODAL PC v2+ - GET ALL COMMON VARIABLES AND SEMAPHORES
  97095. AX = AB04h
  97096. DS:DX -> buffer for common data
  97097. Return: AX = 5253h ('SR' byte-swapped) if installed
  97098. CF clear if successful
  97099. CF set on error
  97100. SeeAlso: AX=AB00h"MODAL",AX=AB03h"MODAL",AX=AB05h"MODAL",AX=AB06h,AX=AB07h
  97101. ----------2FAB05-----------------------------
  97102. INT 2F - SRSoft MODAL PC v2+ - SET ALL COMMON VARIABLES AND SEMAPHORES
  97103. AX = AB05h
  97104. DS:DX -> buffer containing common data
  97105. Return: AX = 5253h ('SR' byte-swapped) if installed
  97106. CF clear if successful
  97107. CF set on error
  97108. SeeAlso: AX=AB00h"MODAL",AX=AB03h"MODAL",AX=AB04h"MODAL",AX=AB06h,AX=AB07h
  97109. ----------2FAB06-----------------------------
  97110. INT 2F - SRSoft MODAL PC v2+ - GET A COMMON VARIABLE OR SEMAPHORE
  97111. AX = AB06h
  97112. BX = offset of variable or semaphore in common memory
  97113. CX = variable/semaphore size in bytes
  97114. DS:DX -> buffer for variable or semaphore
  97115. Return: AX = 5253h ('SR' byte-swapped) if installed
  97116. CF clear if successful
  97117. CF set on error
  97118. SeeAlso: AX=AB00h"MODAL",AX=AB04h,AX=AB05h,AX=AB07h
  97119. ----------2FAB07-----------------------------
  97120. INT 2F - SRSoft MODAL PC v2+ - SET A COMMON VARIABLE OR SEMAPHORE
  97121. AX = AB07h
  97122. BX = offset of variable or semaphore in common memory
  97123. CX = variable/semaphore size in bytes
  97124. DS:DX -> buffer containing variable or semaphore
  97125. Return: AX = 5253h ('SR' byte-swapped) if installed
  97126. CF clear if successful
  97127. CF set on error
  97128. SeeAlso: AX=AB00h"MODAL",AX=AB04h,AX=AB05h,AX=AB06h
  97129. --------U-2FAC-------------------------------
  97130. INT 2F u - Player's Tool 3.996b+ - POP UP
  97131. AH = ACh
  97132. Return: AX = 1001h
  97133. SeeAlso: AH=AAh"Player's Tool",AH=ABh"Player's Tool"
  97134. --------V-2FAC00-----------------------------
  97135. INT 2F - DOS 4.01+ GRAPHICS.COM - INSTALLATION CHECK
  97136. AX = AC00h
  97137. Return: AX = FFFFh
  97138. ES:DI -> ??? (graphics data?) (not documented)
  97139. Note: this installation check was moved here to avoid the conflict with the
  97140. CD-ROM extensions that occurred in DOS 4.00
  97141. SeeAlso: AX=1500h"GRAPHICS"
  97142. --------V-2FAC00DI1092-----------------------
  97143. INT 2F - QRIP/TSR - GIVE CPU TO QRIP
  97144. AX = AC00h
  97145. DI = 1092h
  97146. Return: nothing
  97147. Program: QRIP/TSR is a shareware TSR by Shane Hathaway implementing the Remote
  97148. Imaging Protocol (RIP, RIPscrip) used by several BBS systems to
  97149. provide a graphical user interface
  97150. Desc: give QRIP some CPU time to update music and flashing timers
  97151. Notes: if DI <> 1092h on entry, QRIP chains the call
  97152. this function should be called regularly whenever the terminal program
  97153. is otherwise idle; the updates are automatically performed on any
  97154. other QRIP call
  97155. SeeAlso: AX=AC01h,AX=ACF0h
  97156. --------V-2FAC01DI1092-----------------------
  97157. INT 2F - QRIP/TSR - CHANGE INTERNAL FLAGS
  97158. AX = AC01h
  97159. DI = 1092h
  97160. BX = flags to be turned on (see #02966)
  97161. CX = flags to be turned off (see #02966)
  97162. Return: AX = 9142h if installed
  97163. DX = DOS-takeover flag (nonzero if QRIP able to take over DOS)
  97164. ---if DX nonzero---
  97165. BX = QRIP version number in hex (BH = major, BL = minor)
  97166. CX = new flags (see #02966)
  97167. Note: if DI <> 1092h on entry, QRIP chains the call
  97168. SeeAlso: AX=AC00h/DI=1092h,AX=ACF0h
  97169. Bitfields for QRIP internal flags:
  97170. Bit(s) Description (Table 02966)
  97171. 0 ANSI emulation enabled (default on)
  97172. 1 RIP emulation enabled (default on)
  97173. 2 graphical commands allowed (default on)
  97174. 3 TTY text allowed (default on)
  97175. 4 disable @ variables (default off in TSR mode)
  97176. 5 wait for key on RIP "end scene" command (default off)
  97177. 6 anti-stripping (default off in TSR mode)
  97178. 7 sound enabled (default on)
  97179. 8 automatic message filter (default off in TSR mode)
  97180. 9 display-only mode (no user prompts)
  97181. 10 TTY text suppression (default off in TSR mode)
  97182. 11-15 reserved
  97183. --------V-2FAC02DI1092-----------------------
  97184. INT 2F - QRIP/TSR - TURN OFF GRAPHICS SCREEN
  97185. AX = AC02h
  97186. DI = 1092h
  97187. Return: nothing
  97188. Note: if DI <> 1092h on entry, QRIP chains the call
  97189. SeeAlso: AX=AC03h,AX=ACF0h
  97190. --------V-2FAC03DI1092-----------------------
  97191. INT 2F - QRIP/TSR - TURN ON GRAPHICS SCREEN
  97192. AX = AC03h
  97193. DI = 1092h
  97194. Return: nothing
  97195. Notes: if DI <> 1092h on entry, QRIP chains the call
  97196. this function does not restore the contents of the screen (see AX=AC15h)
  97197. SeeAlso: AX=AC02h,AX=AC14h,AX=AC15h
  97198. --------V-2FAC04DI1092-----------------------
  97199. INT 2F - QRIP/TSR - OUTPUT STRING THROUGH QRIP
  97200. AX = AC04h
  97201. DI = 1092h
  97202. DX:BX -> string
  97203. CX = length of string
  97204. Return: nothing
  97205. Note: if DI <> 1092h on entry, QRIP chains the call
  97206. SeeAlso: AX=AC05h,AX=AC09h,AX=AC0Ah,AX=ACF0h
  97207. --------V-2FAC05DI1092-----------------------
  97208. INT 2F - QRIP/TSR - OUTPUT NULL-TERMINATED STRING THROUGH QRIP
  97209. AX = AC05h
  97210. DI = 1092h
  97211. DX:BX -> ASCIZ string
  97212. Return: nothing
  97213. Note: if DI <> 1092h on entry, QRIP chains the call
  97214. SeeAlso: AX=AC04h,AX=AC06h,AX=AC09h,AX=AC0Ah,AX=ACF0h
  97215. --------V-2FAC06DI1092-----------------------
  97216. INT 2F - QRIP/TSR - RECEIVE CHARACTERS FROM QRIP
  97217. AX = AC06h
  97218. DI = 1092h
  97219. Return: AX = character to send to BBS (0001h-00FFh) or special code (see #02967)
  97220. BX = string-waiting flag
  97221. 0001h entire string waiting to be sent to terminal (call AX=AC0Ch)
  97222. CX = DX = AX
  97223. Note: if DI <> 1092h on entry, QRIP chains the call
  97224. SeeAlso: AX=AC04h,AX=AC05h,AX=AC0Ch,AX=AC16h,AX=AC18h,AX=AC1Ah
  97225. (Table 02967)
  97226. Values for QRIP special codes:
  97227. 0000h if none
  97228. 0100h wait for user keypress (must call AX=AC16h/BL=00h or AX=AC18h)
  97229. 0101h both/middle mouse button pressed
  97230. 0102h entering block mode (up/download) (call AX=AC1Ah)
  97231. 0103h right mouse button pressed
  97232. 0104h BBS requested status bar on
  97233. 0105h BBS requested status bar off
  97234. 0106h BBS requested VT-102 terminal emulation
  97235. (keypad keys should send VT-102 escape codes)
  97236. 0107h BBS requested VT-102 mode off
  97237. 0108h BBS requested doorway mode (raw IBM keyboard ASCII/scan code pairs)
  97238. 0109h BBS requested doorway mode off
  97239. 010Ah hotkey mode on
  97240. 010Bh hotkey mode off
  97241. 010Ch BBS requested Tab-key button changing on
  97242. 010Dh BBS requested Tab-key mode off
  97243. 010Eh XOFF (use flow control to stop incoming characters)
  97244. 010Fh XON (use flow control to resume incoming characters)
  97245. 0110h-0119h BBS requested application (0-9) be run
  97246. application 0 should be a standard text editor
  97247. 01FFh send ASCII 00h to BBS
  97248. Note: for special codes 0104h to 010Dh, the terminal program should report
  97249. any mode changes it make in response by calling AX=AC16h
  97250. --------V-2FAC07DI1092-----------------------
  97251. INT 2F - QRIP/TSR - GET FONT DIRECTORY
  97252. AX = AC07h
  97253. DI = 1092h
  97254. Return: DX:BX -> 80-byte internal buffer containing ASCIZ font directory name
  97255. Notes: if DI <> 1092h on entry, QRIP chains the call
  97256. the application may change the font directory by overwriting the
  97257. returned buffer, ensuring that it does not exceed 80 bytes incl. NUL
  97258. if changed, the new path will not become effective until the graphics
  97259. screen is reinitialized
  97260. SeeAlso: AX=AC08h,AX=ACF0h
  97261. --------V-2FAC08DI1092-----------------------
  97262. INT 2F - QRIP/TSR - GET ICON DIRECTORY
  97263. AX = AC08h
  97264. DI = 1092h
  97265. Return: DX:BX -> 80-byte internal buffer containing ASCIZ icon directory name
  97266. Notes: if DI <> 1092h on entry, QRIP chains the call
  97267. the application may change the icon directory by overwriting the
  97268. returned buffer, ensuring that it does not exceed 80 bytes incl. NUL,
  97269. and includes a trailing backslash
  97270. if changed, the new path becomes effective immediately
  97271. SeeAlso: AX=AC07h,AX=ACF0h
  97272. --------V-2FAC09DI1092-----------------------
  97273. INT 2F - QRIP/TSR - OUTPUT STRING THROUGH QRIP
  97274. AX = AC09h
  97275. DI = 1092h
  97276. DX:BX -> string
  97277. CX = length of string
  97278. Return: AX = character to send to BBS (0001h-00FFh) or special code (see #02967)
  97279. BX = string-waiting flag
  97280. 0001h entire string waiting to be sent to terminal (call AX=AC0Ch)
  97281. CX = DX = AX
  97282. Note: if DI <> 1092h on entry, QRIP chains the call
  97283. SeeAlso: AX=AC04h,AX=AC06h,AX=AC0Ah,AX=ACF0h
  97284. --------V-2FAC0ADI1092-----------------------
  97285. INT 2F - QRIP/TSR - OUTPUT NULL-TERMINATED STRING THROUGH QRIP
  97286. AX = AC0Ah
  97287. DI = 1092h
  97288. DX:BX -> ASCIZ string
  97289. Return: AX = character to send to BBS (0001h-00FFh) or special code (see #02967)
  97290. BX = string-waiting flag
  97291. 0001h entire string waiting to be sent to terminal (call AX=AC0Ch)
  97292. CX = DX = AX
  97293. Note: if DI <> 1092h on entry, QRIP chains the call
  97294. SeeAlso: AX=AC05h,AX=AC06h,AX=AC09h,AX=ACF0h
  97295. --------V-2FAC0BDI1092-----------------------
  97296. INT 2F - QRIP/TSR - EXECUTE RIP "END SCENE" COMMAND
  97297. AX = AC0Bh
  97298. DI = 1092h
  97299. Return: nothing
  97300. Notes: if DI <> 1092h on entry, QRIP chains the call
  97301. enables all mouse buttons and cancels the RIP timeout
  97302. SeeAlso: AX=AC01h,AX=AC04h,AX=ACF0h
  97303. --------V-2FAC0CDI1092-----------------------
  97304. INT 2F - QRIP/TSR - GET STRING TO BE SENT TO BBS
  97305. AX = AC0Ch
  97306. DI = 1092h
  97307. Return: AX = status
  97308. 0000h nothing to be sent
  97309. 0001h a string is waiting to be sent
  97310. DX:BX -> string to be sent (may contain NULs)
  97311. CX = length of string
  97312. 0002h special code waiting (call AX=AC06h)
  97313. Note: if DI <> 1092h on entry, QRIP chains the call
  97314. SeeAlso: AX=AC06h,AX=ACF0h
  97315. --------V-2FAC0DDI1092-----------------------
  97316. INT 2F - QRIP/TSR - SET PROTECTED SCREEN AREA
  97317. AX = AC0Dh
  97318. DI = 1092h
  97319. CL = number of text lines at bottom of screen to protect (00h = off)
  97320. BL = attribute with which to fill area (bit 7 = high-int. background)
  97321. Return: nothing
  97322. Note: if DI <> 1092h on entry, QRIP chains the call
  97323. SeeAlso: AX=AC0Eh,AX=AC0Fh,AX=AC10h,AX=ACF0h
  97324. --------V-2FAC0EDI1092-----------------------
  97325. INT 2F - QRIP/TSR - WRITE ASCIZ STRING IN PROTECTED AREA
  97326. AX = AC0Eh
  97327. DI = 1092h
  97328. DX:BX -> ASCIZ string to be written
  97329. CL = column at which to begin writing
  97330. CH = row number within protected area (00h = first line)
  97331. Return: nothing
  97332. Note: if DI <> 1092h on entry, QRIP chains the call
  97333. SeeAlso: AX=AC0Dh,AX=AC0Fh,AX=AC10h,AX=ACF0h
  97334. --------V-2FAC0FDI1092-----------------------
  97335. INT 2F - QRIP/TSR - SCROLL PROTECTED AREA
  97336. AX = AC0Fh
  97337. DI = 1092h
  97338. BH,BL = row,column of upper-left corner in protected area
  97339. DH,DL = row,column of lower-right corner
  97340. CL = number of lines to scroll up
  97341. Return: nothing
  97342. Note: if DI <> 1092h on entry, QRIP chains the call
  97343. SeeAlso: AX=AC0Dh,AX=AC0Eh,AX=AC10h,AX=ACF0h
  97344. --------V-2FAC10DI1092-----------------------
  97345. INT 2F - QRIP/TSR - SET OUTPUT COLOR FOR PROTECTED AREA
  97346. AX = AC10h
  97347. DI = 1092h
  97348. BL = new attribute (bit 7 set for high-intensity background)
  97349. Return: nothing
  97350. Note: if DI <> 1092h on entry, QRIP chains the call
  97351. SeeAlso: AX=AC0Dh,AX=AC0Eh,AX=AC0Fh,AX=AC11h,AX=ACF0h
  97352. --------V-2FAC11DI1092-----------------------
  97353. INT 2F - QRIP/TSR - CONVERT PROTECTED AREA TO ENTIRE SCREEN
  97354. AX = AC11h
  97355. DI = 1092h
  97356. BX = mode (0000h = normal protect, 0001h = allow full-screen access)
  97357. Note: if DI <> 1092h on entry, QRIP chains the call
  97358. SeeAlso: AX=AC0Dh,AX=AC0Eh,AX=AC0Fh,AX=AC10h,AX=AC12h,AX=ACF0h
  97359. --------V-2FAC12DI1092-----------------------
  97360. INT 2F - QRIP/TSR - BEGIN POPUP-WINDOW MODE
  97361. AX = AC12h
  97362. DI = 1092h
  97363. Return: nothing
  97364. Notes: if DI <> 1092h on entry, QRIP chains the call
  97365. while popup-mode is in effect, the terminal program can write to the
  97366. screen (and easily restore it) by outputting a RIP file with AX=AC04h
  97367. or AX=AC05h
  97368. QRIP will automatically drop out of popup-window mode if the terminal
  97369. program invokes RIP pick-lists
  97370. any changes to the protected area will be restored when popup-window
  97371. mode is cancelled
  97372. SeeAlso: AX=AC04h,AX=AC11h,AX=AC13h,AX=ACF0h
  97373. --------V-2FAC13DI1092-----------------------
  97374. INT 2F - QRIP/TSR - END POPUP-WINDOW MODE
  97375. AX = AC13h
  97376. DI = 1092h
  97377. Return: nothing
  97378. Notes: if DI <> 1092h on entry, QRIP chains the call
  97379. restores screen
  97380. SeeAlso: AX=AC12h,AX=ACF0h
  97381. --------V-2FAC14DI1092-----------------------
  97382. INT 2F - QRIP/TSR - SAVE GRAPHICS SCREEN AND SWITCH TO TEXT MODE
  97383. AX = AC14h
  97384. DI = 1092h
  97385. Return: nothing
  97386. Note: if DI <> 1092h on entry, QRIP chains the call
  97387. SeeAlso: AX=AC03h,AX=AC15h
  97388. --------V-2FAC15DI1092-----------------------
  97389. INT 2F - QRIP/TSR - RESTORE GRAPHICS SCREEN
  97390. AX = AC15h
  97391. DI = 1092h
  97392. Return: nothing
  97393. Desc: restores the graphics screen saved by the last call to AX=AC14h
  97394. Note: if DI <> 1092h on entry, QRIP chains the call
  97395. SeeAlso: AX=AC03h,AX=AC14h
  97396. --------V-2FAC16DI1092-----------------------
  97397. INT 2F - QRIP/TSR - REPORT MODE CHANGE TO QRIP
  97398. AX = AC16h
  97399. DI = 1092h
  97400. BL = new mode
  97401. 00h terminate key wait
  97402. 01h status bar on
  97403. 02h status bar off
  97404. 03h VT-102 mode on
  97405. 04h VT-102 mode off
  97406. 05h doorway mode on
  97407. 06h doorway mode off
  97408. 07h hotkeys mode on
  97409. 08h hotkeys mode off
  97410. 09h tabkey mode on
  97411. 0Ah tabkey mode off
  97412. Return: nothing
  97413. Notes: if DI <> 1092h on entry, QRIP chains the call
  97414. all modes default to OFF when QRIP is first installed
  97415. --------V-2FAC17DI1092-----------------------
  97416. INT 2F - QRIP/TSR - CALL (EXECUTE) A RIP FILE
  97417. AX = AC17h
  97418. DI = 1092h
  97419. DX:BX -> ASCIZ filename for RIP file to be executed
  97420. Return: nothing
  97421. Notes: if DI <> 1092h on entry, QRIP chains the call
  97422. the specified file may be in the current icon directory, the QRIP
  97423. startup directory, or the current directory; any pathnames specified
  97424. with the filename are ignored
  97425. --------V-2FAC18DI1092-----------------------
  97426. INT 2F - QRIP/TSR - SEND USER KEY TO QRIP
  97427. AX = AC18h
  97428. DI = 1092h
  97429. BX = key (00xxh is normal ASCII, xx00h is an extended key)
  97430. Return: nothing
  97431. Note: if DI <> 1092h on entry, QRIP chains the call
  97432. SeeAlso: AX=AC06h,AX=ACF0h
  97433. --------V-2FAC19DI1092-----------------------
  97434. INT 2F - QRIP/TSR - HANGUP
  97435. AX = AC19h
  97436. DI = 1092h
  97437. Return: nothing
  97438. Desc: inform QRIP that carrier has been lost
  97439. Note: if DI <> 1092h on entry, QRIP chains the call
  97440. SeeAlso: AX=ACF0h
  97441. --------V-2FAC1ADI1092-----------------------
  97442. INT 2F - QRIP/TSR - GET RIP_ENTER_BLOCK_MODE INFORMATION
  97443. AX = AC1Ah
  97444. DI = 1092h
  97445. Return: AH = requested protocol (see #02968)
  97446. AL = file type (see #02969)
  97447. DX:BX -> ASCIZ filename or 0000h:0000h
  97448. CX = length of filename
  97449. Note: if DI <> 1092h on entry, QRIP chains the call
  97450. SeeAlso: AX=ACF0h
  97451. (Table 02968)
  97452. Values for QRIP protocol identifier:
  97453. 00h Xmodem (checksum)
  97454. 01h Xmodem-CRC
  97455. 02h Xmodem-1K
  97456. 03h Xmodem-1K-G
  97457. 04h Kermit
  97458. 05h Ymodem
  97459. 06h Ymodem-G
  97460. 07h Zmodem with crash recovery
  97461. 08h-0Fh same as 00h-07h, but for uploading instead of downloading
  97462. SeeAlso: #02969
  97463. (Table 02969)
  97464. Values for QRIP file type:
  97465. 00h RIP file sequence to be displayed
  97466. 01h RIP file sequence to be stored in icon directory
  97467. 02h ICN file sequence to be stored in icon directory
  97468. 03h HLP file sequence to be stored, then auto-loaded if needed
  97469. 04h COMPOSITE DYNAMIC file sequence (batch protocols only)
  97470. 05h ACTIVE DYNAMIC file sequence (batch protocols only)
  97471. Note: for file types 04h and 05h, any .RIP or .ICN files are stored in
  97472. the icon directory; in mode 05h, any .RIP files are also played
  97473. back as they are received
  97474. SeeAlso: #02968
  97475. --------V-2FAC1BDI1092-----------------------
  97476. INT 2F - QRIP/TSR - SET SYSTEM FONT SIZE
  97477. AX = AC1Bh
  97478. DI = 1092h
  97479. BX = font size (see #02970)
  97480. Return: nothing
  97481. Note: if DI <> 1092h on entry, QRIP chains the call
  97482. SeeAlso: AX=AC04h,AX=ACF0h
  97483. (Table 02970)
  97484. Values for QRIP font size specifier:
  97485. 00h 8x8 font, 80x43 screen
  97486. 01h 7x8 font, 90x43 screen
  97487. 02h 8x14 font, 80x25 screen
  97488. 03h 7x14 font, 90x25 screen
  97489. 04h 16x14 font, 40x25 screen
  97490. --------V-2FACF0DI1092-----------------------
  97491. INT 2F - QRIP/TSR - INSTALLATION CHECK
  97492. AX = ACF0h
  97493. DI = 1092h
  97494. Return: AX = 9142h if installed
  97495. DX = DOS-takeover flag (nonzero if QRIP able to take over DOS)
  97496. ---if DX nonzero---
  97497. BX = QRIP version number in hex (BH = major, BL = minor)
  97498. CX = current flags (see AX=AC01h)
  97499. Note: if DI <> 1092h on entry, QRIP chains the call
  97500. SeeAlso: AX=AC00h/DI=1092h,AX=AC01h,AX=AC04h,AX=AC06h,AX=AC1Ah,AX=ACFFh
  97501. --------V-2FACFFDI1092-----------------------
  97502. INT 2F - QRIP/TSR - UNINSTALL
  97503. AX = ACFFh
  97504. DI = 1092h
  97505. Return: AX = status
  97506. 0000h unable to remove (interrupt vector hooked by another prog)
  97507. 0001h successful
  97508. 0002h unable to take over DOS at this time (retry uninstall)
  97509. Note: if DI <> 1092h on entry, QRIP chains the call
  97510. SeeAlso: AX=ACF0h
  97511. --------!---Section--------------------------
  97512. Interrupt List, part 13 of 18
  97513. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  97514. --------V-2FAD00-----------------------------
  97515. INT 2F U - DOS 3.3+ DISPLAY.SYS internal - INSTALLATION CHECK
  97516. AX = AD00h
  97517. Return: AL = FFh if installed
  97518. BX = ??? (0100h for MS-DOS 3.3+)
  97519. Note: DOS 5+ DISPLAY.SYS chains to previous handler if AL is not one of the
  97520. subfunctions listed here
  97521. SeeAlso: AX=AD01h"DISPLAY",AX=AD02h"DISPLAY"
  97522. --------O-2FAD00-----------------------------
  97523. INT 2F U - DR DOS 3.41-5.0, Novell DOS 7 KEYB - INSTALLATION CHECK
  97524. AX = AD00h
  97525. Return: AX = FFFFh if installed
  97526. flags destroyed
  97527. Note: the Novell DOS 7 KEYB driver only checks AL to determine whether it
  97528. is already installed
  97529. SeeAlso: AX=AD80h"Novell"
  97530. --------V-2FAD01-----------------------------
  97531. INT 2F U - DOS 3.3+ DISPLAY.SYS internal - SET ACTIVE CODE PAGE
  97532. AX = AD01h
  97533. BX = new code page (see #01757 at INT 21/AX=6602h)
  97534. Return: CF clear if successful
  97535. AX = 0001h
  97536. CF set on error (unsupported code page)
  97537. AX = 0000h
  97538. SeeAlso: AX=AD02h"DISPLAY"
  97539. --------O-2FAD01-----------------------------
  97540. INT 2F U - DR DOS 3.41,5.0 KEYB - GET CONFIGURATION
  97541. AX = AD01h
  97542. Return: BX = current code page (see #01757 at INT 21/AX=6602h)
  97543. CX = current keyboard layout (0100h = US, 0102h = foreign)
  97544. ES = resident code segment
  97545. SeeAlso: AX=AD01h"Novell",AX=AD00h"KEYB",AX=AD02h"KEYB",AX=AD83h"KEYB"
  97546. --------O-2FAD01-----------------------------
  97547. INT 2F U - Novell DOS 7 KEYB - GET/SET??? CONFIGURATION
  97548. AX = AD01h
  97549. CX = ??? (0000h)
  97550. Return: AX = FFFFh if Novell DOS 7 KEYB installed
  97551. BX = current code page (see #01757 at INT 21/AX=6602h)
  97552. CX = current keyboard layout (0100h = US, 0102h = foreign)
  97553. ES = resident code segment
  97554. SeeAlso: AX=AD01h"DR DOS",AX=AD00h"KEYB",AX=AD02h"KEYB",AX=AD83h"KEYB"
  97555. --------V-2FAD02-----------------------------
  97556. INT 2F U - DOS 3.3+ DISPLAY.SYS internal - GET ACTIVE CODE PAGE
  97557. AX = AD02h
  97558. Return: CF set if code page never set
  97559. AX = 0001h
  97560. BX = FFFFh (assume first hardware code page)
  97561. CF clear if successful
  97562. BX = current code page (see #01757 at INT 21/AX=6602h)
  97563. SeeAlso: AX=AD01h"DISPLAY",AX=AD03h
  97564. --------O-2FAD02-----------------------------
  97565. INT 2F U - Novell DOS 7 KEYB - ???
  97566. AX = AD02h
  97567. DX = ??? (0000h)
  97568. Return: AX = FFFFh if installed
  97569. flags destroyed
  97570. SeeAlso: AX=AD01h"KEYB"
  97571. --------V-2FAD03-----------------------------
  97572. INT 2F U - DOS 3.3+ DISPLAY.SYS internal - GET CODE PAGE INFORMATION
  97573. AX = AD03h
  97574. ES:DI -> buffer for code page information (see #02971)
  97575. CX = size of buffer in bytes
  97576. Return: CF set if buffer too small
  97577. CF clear if successful
  97578. ES:DI buffer filled
  97579. SeeAlso: AX=AD01h,AX=AD02h
  97580. Format of DOS 5.0-6.0 DISPLAY.SYS code page information:
  97581. Offset Size Description (Table 02971)
  97582. 00h WORD number of software code pages
  97583. 02h WORD ??? (0003h)
  97584. 04h WORD number of hardware code pages
  97585. 06h N WORDs hardware code page numbers (see #01757 at INT 21/AX=6602h)
  97586. N WORDs software (prepared) code pages (FFFFh if not yet prepared)
  97587. --------V-2FAD04-----------------------------
  97588. INT 2F U - DOS 4.x only DISPLAY.SYS internal - ???
  97589. AX = AD04h
  97590. ???
  97591. Return: ???
  97592. --------V-2FAD10-----------------------------
  97593. INT 2F U - DOS 4.x DISPLAY.SYS internal - INSTALLATION CHECK???
  97594. AX = AD10h
  97595. ???
  97596. Return: AX = FFFFh
  97597. BX = ??? (0100h in PC-DOS 4.01)
  97598. --------V-2FAD10-----------------------------
  97599. INT 2F U - DOS 5+ DISPLAY.SYS internal - ???
  97600. AX = AD10h
  97601. ???
  97602. Return: CF clear if successful
  97603. CF set on error
  97604. Note: this function is a NOP if the active code page has never been set
  97605. (AX=AD02h returns BX=FFFFh); its purpose otherwise is not known
  97606. --------V-2FAD40-----------------------------
  97607. INT 2F - DOS 4.0+ - ???
  97608. AX = AD40h
  97609. DX = ???
  97610. ???
  97611. Return: ???
  97612. Note: called by PC-DOS 4.01 PRINT.COM
  97613. --------K-2FAD80-----------------------------
  97614. INT 2F u - MS-DOS 3.3+ KEYB.COM internal - INSTALLATION CHECK
  97615. AX = AD80h
  97616. Return: AL = FFh if installed
  97617. BX = version number (BH = major, BL = minor)
  97618. ES:DI -> internal data (see #02972)
  97619. AH destroyed (set to FFh by some implementations/versions)
  97620. Notes: MS-DOS 3.30, PC-DOS 4.01, MS-DOS 5.00, and MS-DOS 6.22 all report
  97621. version 1.00.
  97622. this function was undocumented prior to the release of DOS 5.0
  97623. most versions of KEYB completely replace the BIOS INT 09 handler, but
  97624. Novell DOS's KEYB partially uses the BIOS code and thus continues
  97625. to chain to the original INT 09 at times
  97626. some utilities check for AX=FFFFh on return
  97627. SeeAlso: AX=AD80h"Novell",AX=AD81h,AX=AD82h,AX=AD83h
  97628. Format of KEYB internal data:
  97629. Offset Size Description (Table 02972)
  97630. 00h DWORD original INT 09
  97631. 04h DWORD original INT 2F
  97632. 08h DWORD unused (0) original INT 16 in older KEYB versions???
  97633. 0Ch WORD flags A (see #02973)
  97634. 0Eh WORD flags B (see #02974)
  97635. 10h BYTE flags??? (bit1 used)
  97636. 11h BYTE ???
  97637. 12h 4 BYTEs ???
  97638. 16h 2 BYTEs country ID letters, default is "US"
  97639. 18h WORD current code page (see #01757 at INT 21/AX=6602h)
  97640. ---DOS 3.3---
  97641. 1Ah WORD pointer to first item in list of code page tables???
  97642. 1Ch WORD pointer to ??? item in list of code page tables
  97643. 1Eh 2 BYTEs unused???
  97644. 20h WORD pointer to key translation data (see #02976)
  97645. 22h WORD pointer to last item in code page table list (see #02975)
  97646. 24h 9 BYTEs ???
  97647. ---DOS 4.01---
  97648. 1Ah 2 BYTEs ???
  97649. 1Ch WORD pointer to first item in list of code page tables???
  97650. 1Eh WORD pointer to ??? item in list of code page tables
  97651. 20h 2 BYTEs unused???
  97652. 22h WORD pointer to key translation data (see #02976)
  97653. 24h WORD pointer to last item in code page table list (see #02975)
  97654. 26h 9 BYTEs ???
  97655. ---DOS 6.22--- (checked out with 6.22, but might be earlier)
  97656. 1Ah 2 BYTEs ???
  97657. 1Ch WORD pointer to current (first???) item in list of code page tables
  97658. (corresponding to codepage indicated at offset 18h)
  97659. (initial value is FFFFh)
  97660. 1Eh WORD pointer to (entry to) list of code page tables (see #02975)
  97661. If not FFFFh, INT 2F/AX=AD81h scans this list of code page
  97662. tables until the requested code page was found in list or
  97663. end of table was reached (FFFFh). If found, offsets 18h and
  97664. 1Ch will be changed to requested new code page. If not found,
  97665. it returns with AX=0001h 'code page not supported').
  97666. 20h WORD unused??? (initial value: FFFFh)
  97667. 22h WORD pointer to key translation data (see #02455)
  97668. 24h WORD pointer to last item in code page table list (see #02454)
  97669. 26h WORD CAPSLock/ShiftLock management flags??? (0)
  97670. Note: It appears that none of the bits is ever set inside
  97671. KEYBs code!
  97672. The following is guesswork:
  97673. bit15: =1: With country specific keyboard mapping (<Ctrl>+
  97674. <Alt>+<F2>) active, <CapsLock> works as CAPSLock
  97675. instead of ShiftLock??? Pressing a key in first row
  97676. resets CapsLock???
  97677. (Effective only on PC Convertible or with Enhanced
  97678. keyboard).
  97679. bit14-10: unused (0)
  97680. bit 9: =1: With country specific keyboard mapping active:
  97681. some kind of temporary (table) shift???
  97682. bit 8-0: unused (0)
  97683. 28h BYTE unused (0)
  97684. 29h BYTE make code xx for <Ctrl>+<Alt>+<xx> to set keyboard mapping
  97685. to US-layout (default is 3Bh=<F1>???)
  97686. (see INT 2F/AX=AD82h,INT 2F/AX=AD83h)
  97687. 2Ah BYTE make code yy for <Ctrl>+<Alt>+<yy> to set keyboard mapping
  97688. to country specific layout (default is 3Ch=<F2>???),
  97689. (see INT 2F/AX=AD82h,INT 2F/AX=AD83h)
  97690. 2Bh 16 BYTEs unused (0) ???
  97691. Note: at least in MS-DOS v6.22, the signature "SHARED DATA" immediately
  97692. precedes this structure
  97693. Bitfields for MS-DOS v6.22 KEYB flags A:
  97694. Bit(s) Description (Table 02973)
  97695. 15 unused??? (0)
  97696. 14 set on machine with BIOS machine type FBh or FEh/FFh without enh kbd
  97697. 13 not FAh: ???
  97698. 12 set on start of machine detection, cleared on machine types F9h, FBh,
  97699. FEh, FFh
  97700. 11 not FAh: ???
  97701. (on ATs: override bit12 NOT to set NumLock on)
  97702. 10 set on machine type F9h
  97703. 9 unused??? (0)
  97704. 8 unused??? (0)
  97705. 7 used by INT 09, but never set!
  97706. =1: after keyboard self test resulting AAh, INT 09 handler will (re)set
  97707. keyboard code-set 1 and temporarily disable a PS/2 mouseport.
  97708. 6 used by INT09, but never set!
  97709. =1: after keyboard self test resulting AAh, INT 09 handler will (re)set
  97710. keyboard code-set 1 and temporarily disable a PS/2 mouseport.
  97711. 5 set for JP, KO, PR, TA layouts during installation???
  97712. =1: some special codepage (>932???) management???
  97713. 4-0 unused??? (0)
  97714. SeeAlso: #02974,MEM F000h:FFFEh,INT 15/AH=C0h
  97715. Bitfields for MS-DOS v6.22 KEYB flags B:
  97716. Bit(s) Description (Table 02974)
  97717. 15 INT 16/AH=1xh supported (INT 16h/AH=92h call returns AH<=80h)
  97718. if clear, extended keyboard scan codes are immediately discarded
  97719. 14 INT 16/AH=2xh supported (INT 16h/AH=A2h call returns AH<=80h)
  97720. 13 unused (0)
  97721. 12 network installed (INT 2F/AX=B800h)
  97722. 11 original IBM PC (BIOS date 1981)
  97723. 10 PC or PC/XT (BIOS machine type byte of FBh or FEh)
  97724. 9 PC Convertible (BIOS machine type byte of F9h); use INT 15/AX=4104h
  97725. 8 unused (0)
  97726. 7 IBM PS/2 model 30 (BIOS machine type byte of FAh)
  97727. 6 IBM AT (BIOS machine type FCh)
  97728. 5 IBM PS/2 (BIOS machine type F8h)
  97729. 4 PS/2 and unknown only: non-standard 8042 reported by INT 15/AH=C0h
  97730. =1: after keyboard self test resulting AAh, INT 09 handler will (re)set
  97731. keyboard code-set 1 and temporarily disable a PS/2 mouseport.
  97732. 3 temporary flag???
  97733. 2-0 ???
  97734. SeeAlso: #02972,#02973
  97735. Format of code page table list entries:
  97736. Offset Size Description (Table 02975)
  97737. 00h WORD pointer to next item, FFFFh = last
  97738. 02h WORD code page (see #01757 at INT 21/AX=6602h)
  97739. 04h 2 BYTEs ???
  97740. Format of KEYB translation data:
  97741. Offset Size Description (Table 02976)
  97742. 00h WORD size of data in bytes, including this word
  97743. 02h N-2 BYTEs ???
  97744. --------K-2FAD80-----------------------------
  97745. INT 2F u - Novell DOS 7 KEYB.COM - INSTALLATION CHECK
  97746. AX = AD80h
  97747. Return: AX = FFFFh if installed
  97748. CX = Novell DOS KEYB version number (CL = major, CH = minor)
  97749. DX = current keyboard codepage
  97750. ES:DI -> internal data and tables (ES=FFFEh if KEYB in HMA)
  97751. flags destroyed
  97752. Notes: versions: v2.08 (original ship 4/94), v2.09 (Update 10, 11/18/94),
  97753. v2.10 (Update 12, 2/22/95), v2.11 (Update 13, 5/8/95),
  97754. v2.12 (Update 14, 7/31/95)
  97755. although the installation check is via this INT 2F call, Novell DOS 7's
  97756. KEYB has no known INT 2F entry point! Presumably, the handler is
  97757. either coded in the kernel or reached via a FAR JMP from the kernel
  97758. SeeAlso: AX=AD80h"MS-DOS"
  97759. --------K-2FAD81-----------------------------
  97760. INT 2F - DOS 3.3+ KEYB.COM - SET KEYBOARD CODE PAGE
  97761. AX = AD81h
  97762. BX = code page (see #01757 at INT 21/AX=6601h)
  97763. Return: CF set on error
  97764. AX = 0001h (code page not available)
  97765. CF clear if successful
  97766. Notes: called by DISPLAY.SYS
  97767. this function was undocumented prior to the release of DOS 5.0
  97768. SeeAlso: AX=AD80h,AX=AD82h
  97769. --------K-2FAD82-----------------------------
  97770. INT 2F - DOS 3.3+ KEYB.COM - SET KEYBOARD MAPPING
  97771. AX = AD82h
  97772. BL = new state
  97773. 00h US keyboard (Control-Alt-F1)
  97774. FFh foreign keyboard (Control-Alt-F2)
  97775. Return: CF set on error (BL not 00h or FFh)
  97776. CF clear if successful
  97777. Note: this function was undocumented prior to the release of DOS 5.0
  97778. SeeAlso: AX=AD80h,AX=AD81h,AX=AD83h
  97779. --------K-2FAD83-----------------------------
  97780. INT 2F - DOS 5+ KEYB.COM - GET KEYBOARD MAPPING
  97781. AX = AD83h
  97782. Return: BL = current state
  97783. 00h US keyboard
  97784. FFh foreign keyboard
  97785. SeeAlso: AX=AD82h
  97786. --------l-2FAE00-----------------------------
  97787. INT 2F U - DOS 3.3+ internal - INSTALLABLE COMMAND - INSTALLATION CHECK
  97788. AX = AE00h
  97789. DX = magic value FFFFh
  97790. CH = FFh
  97791. CL = length of command line tail (4DOS v4.0)
  97792. DS:BX -> command line buffer (see #02977)
  97793. DS:SI -> command name buffer (see #02978)
  97794. DI = 0000h (4DOS v4.0)
  97795. Return: AL = FFh if this command is a TSR extension to COMMAND.COM
  97796. AL = 00h if the command should be executed as usual
  97797. Notes: This call provides a mechanism for TSRs to install permanent
  97798. extensions to the command repertoire of COMMAND.COM. It appears
  97799. that COMMAND.COM makes this call before executing the current
  97800. command line, and does not execute it itself if the return is FFh.
  97801. APPEND hooks this call, to allow subsequent APPEND commands to
  97802. execute without re-running APPEND
  97803. SeeAlso: AX=AE01h
  97804. Format of COMMAND.COM command line buffer:
  97805. Offset Size Description (Table 02977)
  97806. 00h BYTE max length of command line, as in INT 21/AH=0Ah
  97807. 01h BYTE count of bytes to follow, excluding terminating 0Dh
  97808. N BYTEs command line text, terminated by 0Dh
  97809. Format of command name buffer:
  97810. Offset Size Description (Table 02978)
  97811. 00h BYTE length of command name
  97812. 01h N BYTEs uppercased command name (blank-padded to 11 chars by 4DOS v4)
  97813. --------l-2FAE01-----------------------------
  97814. INT 2F U - DOS 3.3+ internal - INSTALLABLE COMMAND - EXECUTE
  97815. AX = AE01h
  97816. DX = magic value FFFFh
  97817. CH = 00h
  97818. CL = length of command name (4DOS v4.0)
  97819. DS:BX -> command line buffer (see #02977)
  97820. DS:SI -> command name buffer (see #02978)
  97821. Return: DS:SI buffer updated
  97822. if length byte is nonzero, the following bytes contain the uppercase
  97823. internal command to execute and the command line buffer contains the
  97824. command's parameters (the first DS:[SI] bytes are ignored)
  97825. Notes: this call requests execution of the command which a previous call to
  97826. AX=AE00h indicated was resident
  97827. APPEND hooks this call
  97828. BUG: Novell DOS 7.0's COMMAND.COM (prior to Update 12) will attempt to run
  97829. a disk program with the indicated name even if the returned length
  97830. byte is zero, because the register used to flag this case is
  97831. clobbered without first checking it. The workaround is to set the
  97832. command name buffer to "REM" followed by enough blanks to pad out
  97833. the original command's length, which will also work with MS-DOS 6.
  97834. (from padgett@tccslr.dnet.mmc.com)
  97835. SeeAlso: AX=AE00h
  97836. --------O-2FAF00-----------------------------
  97837. INT 2F - WinDOS v2.11 - INSTALLATION CHECK
  97838. AX = AF00h
  97839. Return: AL = FFh if installed
  97840. Program: WinDOS is a DOS clone (claimed to be mostly MS-DOS 5.0 API compatible)
  97841. written by Heiko Goemann
  97842. SeeAlso: AX=AF01h"WinDOS",INT 21/AH=30h
  97843. ----------2FAF00-----------------------------
  97844. INT 2F U - ???
  97845. AX = AF00h
  97846. ???
  97847. Return: AX = 0000h if interface supported
  97848. SeeAlso: AX=AF02h,AX=AF03h,AX=AF04h,AX=AF13h,AX=AF30h
  97849. --------O-2FAF01-----------------------------
  97850. INT 2F - WinDOS v2.11 - TURN ON ONLINE MODE
  97851. AX = AF01h
  97852. Return: nothing
  97853. Desc: indicate that the user will not exchange floppy disks, allowing WinDOS
  97854. to cache disk sectors in memory and avoid writing modified sectors
  97855. back out to the floppy disk
  97856. SeeAlso: AX=AF00h"WinDOS",AX=AF02h"WinDOS"
  97857. --------O-2FAF02-----------------------------
  97858. INT 2F - WinDOS v2.11 - TURN OFF ONLINE MODE
  97859. AX = AF02h
  97860. Return: nothing
  97861. Desc: indicate that the floppy disk may be removed, and that WinDOS should
  97862. write all buffered sectors out to the floppy disk
  97863. SeeAlso: AX=AF00h"WinDOS",AX=AF01h"WinDOS"
  97864. ----------2FAF02-----------------------------
  97865. INT 2F U - ???
  97866. AX = AF02h
  97867. ???
  97868. Return: ES = ???
  97869. SeeAlso: AX=AF00h
  97870. --------O-2FAF03-----------------------------
  97871. INT 2F - WinDOS v2.11 - TURN VIDMEM ON
  97872. AX = AF03h
  97873. Return: AX = status
  97874. 0000h successful
  97875. 0001h CPU not in mode set by DOS386=On
  97876. 0002h video adapter in graphics mode
  97877. 0003h memory chain corrupted
  97878. SeeAlso: AX=AF00h"WinDOS",AX=AF04h"WinDOS",AX=AF05h"WinDOS"
  97879. ----------2FAF03-----------------------------
  97880. INT 2F U - ???
  97881. AX = AF03h
  97882. ???
  97883. Return: DX = ???
  97884. SeeAlso: AX=AF00h
  97885. --------O-2FAF04-----------------------------
  97886. INT 2F - WinDOS v2.11 - TURN VIDMEM OFF
  97887. AX = AF04h
  97888. Return: AX = status
  97889. 0000h successful
  97890. 0001h video memory is in use
  97891. SeeAlso: AX=AF00h"WinDOS",AX=AF03h"WinDOS",AX=AF05h"WinDOS"
  97892. ----------2FAF04-----------------------------
  97893. INT 2F U - ???
  97894. AX = AF04h
  97895. ???
  97896. Return: ???
  97897. SeeAlso: AX=AF00h
  97898. --------O-2FAF05-----------------------------
  97899. INT 2F - WinDOS v2.11 - GET VIDMEM STATE
  97900. AX = AF05h
  97901. Return: AX = status (0000h off, 0001h on)
  97902. SeeAlso: AX=AF00h"WinDOS",AX=AF03h"WinDOS",AX=AF04h"WinDOS"
  97903. ----------2FAF05-----------------------------
  97904. INT 2F U - ???
  97905. AX = AF05h
  97906. ???
  97907. Return: ???
  97908. SeeAlso: AX=AF00h
  97909. --------O-2FAF06-----------------------------
  97910. INT 2F - WinDOS v2.11 - MAKE PROGRAM UNBREAKABLE
  97911. AX = AF06h
  97912. DS:DX -> break handler
  97913. DI:BX = stack to use for break handler
  97914. Return: nothing
  97915. Desc: set a handler which should be invoked when Ctrl-C is pressed instead of
  97916. aborting the program
  97917. SeeAlso: AX=AF00h"WinDOS",AX=AF0Ah"WinDOS",AX=AF0Ch"WinDOS"
  97918. --------O-2FAF07-----------------------------
  97919. INT 2F - WinDOS v2.11 - SIGNAL FATAL OVERLAY FAULT
  97920. AX = AF07h
  97921. Return: never -- system reset
  97922. Desc: pop up a window indicating that the system overlay file can not be
  97923. loaded
  97924. SeeAlso: AX=AF00h"WinDOS",AX=AF08h"WinDOS"
  97925. --------O-2FAF08-----------------------------
  97926. INT 2F - WinDOS v2.11 - SIGNAL RECOVERABLE OVERLAY FAULT
  97927. AX = AF08h
  97928. Return: nothing
  97929. Desc: pop up a window requesting that a disk containing SH.OVL be inserted
  97930. SeeAlso: AX=AF00h"WinDOS",AX=AF07h"WinDOS",AX=AF0Bh
  97931. --------O-2FAF09-----------------------------
  97932. INT 2F - WinDOS v2.11 - GET TERMINATED PSP
  97933. AX = AF09h
  97934. Return: DS = PSP segment of most recently ended TSR
  97935. SeeAlso: AX=AF00h"WinDOS",AX=AF0Ah
  97936. --------O-2FAF0A-----------------------------
  97937. INT 2F - WinDOS v2.11 - GET MAIN SHELL PSP
  97938. AX = AF0Ah
  97939. Return: AX = shell's PSP (same as DS on last call to AX=AF06h)
  97940. Desc: get the PSP address of the last program to call AX=AF06h (normally
  97941. the main command interpreter)
  97942. SeeAlso: AX=AF00h"WinDOS",AX=AF06h"WinDOS",AX=AF09h
  97943. --------O-2FAF0B-----------------------------
  97944. INT 2F - WinDOS v2.11 - SIGNAL FATAL ERROR
  97945. AX = AF0Bh
  97946. Return: never -- system reset
  97947. Desc: pop up a window indicating a terminal system error
  97948. SeeAlso: AX=AF00h"WinDOS",AX=AF07h,AX=AF08h,AX=AF15h"WinDOS"
  97949. --------O-2FAF0C-----------------------------
  97950. INT 2F - WinDOS v2.11 - GET OTHER MAIN SHELL PARAMETERS
  97951. AX = AF0Ch
  97952. Return: DI:AX = stack
  97953. SI = offset of break handler
  97954. Desc: retrieve the parameters last set by AX=AF06h (normally by the main
  97955. command interpreter)
  97956. SeeAlso: AX=AF00h"WinDOS",AX=AF06h"WinDOS"
  97957. --------O-2FAF0D-----------------------------
  97958. INT 2F - WinDOS v2.11 - GET CURRENT PARAMETER
  97959. AX = AF0Dh
  97960. BX = offset of desired parameter in global data area
  97961. Return: AX = current value of parameter (AH undefined if byte value)
  97962. SeeAlso: AX=AF00h"WinDOS",AX=AF0Eh
  97963. --------O-2FAF0E-----------------------------
  97964. INT 2F - WinDOS v2.11 - SET CURRENT PARAMETER BYTE VALUE
  97965. AX = AF0Eh
  97966. BX = offset of desired parameter in global data area
  97967. DL = new value of parameter
  97968. Return: nothing
  97969. SeeAlso: AX=AF00h"WinDOS",AX=AF0Dh
  97970. --------O-2FAF0F-----------------------------
  97971. INT 2F - WinDOS v2.11 - GET HISTORY SEGMENT
  97972. AX = AF0Fh
  97973. Return: AX = segment of buffer for input history, or 0000h if none
  97974. SeeAlso: AX=AF00h"WinDOS",AX=AF10h"WinDOS"
  97975. --------O-2FAF10-----------------------------
  97976. INT 2F - WinDOS v2.11 - SET HISTORY SEGMENT
  97977. AX = AF10h
  97978. BX = segment of new buffer for input history
  97979. Return: nothing
  97980. Note: the buffer must have been allocated with INT 21/AH=48h
  97981. SeeAlso: AX=AF00h"WinDOS",AX=AF0Fh"WinDOS"
  97982. --------O-2FAF11-----------------------------
  97983. INT 2F - WinDOS v2.11 - FREE XMS BLOCKS
  97984. AX = AF11h
  97985. Return: nothing
  97986. Desc: free all XMS blocks whose XMS identification value (see AX=AF12h)
  97987. equals the current PSP
  97988. SeeAlso: AX=AF00h"WinDOS",AX=AF12h"WinDOS",INT 21/AH=50h
  97989. --------O-2FAF12-----------------------------
  97990. INT 2F - WinDOS v2.11 - SET XMS IDENTIFICATION VALUE
  97991. AX = AF12h
  97992. DS = new XMS identification value (normally caller's PSP segment)
  97993. Return: nothing
  97994. SeeAlso: AX=AF00h"WinDOS",AX=AF11h"WinDOS"
  97995. ----------2FAF12-----------------------------
  97996. INT 2F U - ???
  97997. AX = AF12h
  97998. ???
  97999. Return: ES = ???
  98000. SeeAlso: AX=AF00h
  98001. --------O-2FAF13-----------------------------
  98002. INT 2F - WinDOS v2.11 - SET ASSIGN VALUE
  98003. AX = AF13h
  98004. BL = number of drive to remap (00h = A:)
  98005. DL = number of drive to be accessed via drive number BL
  98006. Return: nothing
  98007. Desc: remap a drive letter
  98008. Note: the remapping can be canceled by specifying DL=BL
  98009. SeeAlso: AX=AF00h"WinDOS",AX=AF14h"WinDOS",AX=0601h
  98010. ----------2FAF13-----------------------------
  98011. INT 2F U - ???
  98012. AX = AF13h
  98013. ???
  98014. Return: ???
  98015. SeeAlso: AX=AF00h
  98016. --------O-2FAF14-----------------------------
  98017. INT 2F - WinDOS v2.11 - GET ASSIGN VALUE
  98018. AX = AF14h
  98019. BL = drive number (00h = A:)
  98020. Return: DL = drive number which is actually accessed by drive number BL
  98021. Desc: determine the current mapping for a drive
  98022. SeeAlso: AX=AF00h"WinDOS",AX=AF13h"WinDOS",AX=0601h
  98023. --------O-2FAF15-----------------------------
  98024. INT 2F - WinDOS v2.11 - SIGNAL STACK ERROR
  98025. AX = AF15h
  98026. Return: never -- system reset
  98027. Desc: pop up a window indicating a stack overflow
  98028. SeeAlso: AX=AF00h"WinDOS",AX=AF0Bh"WinDOS"
  98029. --------O-2FAF16-----------------------------
  98030. INT 2F - WinDOS v2.11 - GET SIMPLE TRUENAME
  98031. AX = AF16h
  98032. DS:SI -> path to be canonicalized
  98033. ES:DI -> buffer for canonicalized filename/pathname
  98034. Return: CF clear if successful
  98035. AX = 0000h
  98036. CF set on error
  98037. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  98038. Desc: partially canonicalize a path, omitting SUBST, JOIN, ASSIGN, and
  98039. network redirections
  98040. SeeAlso: AX=AF00h"WinDOS",INT 21/AH=60h
  98041. --------O-2FAF17-----------------------------
  98042. INT 2F - WinDOS v2.11 - QUERY FOR NEW CURRENT DRIVE
  98043. AX = AF17h
  98044. Return: nothing
  98045. Desc: pop up a dialog allowing the user to select a new default drive
  98046. SeeAlso: AX=AF00h"WinDOS"
  98047. --------O-2FAF18-----------------------------
  98048. INT 2F - WinDOS v2.11 - SET CTRL-C/CTRL-BREAK DISABLE FLAG
  98049. AX = AF18h
  98050. DL = new break-checking state (00h enabled, 01h disabled)
  98051. Return: nothing
  98052. SeeAlso: AX=AF00h"WinDOS"
  98053. --------O-2FAF19-----------------------------
  98054. INT 2F - WinDOS v2.11 - SET HEAD SETTLE FLAG
  98055. AX = AF19h
  98056. DL = new state
  98057. 00h diskette head settling time reset to 15ms before each access
  98058. 01h no additional head settling time used between accesses
  98059. Return: nothing
  98060. SeeAlso: AX=AF00h"WinDOS"
  98061. --------O-2FAF1A-----------------------------
  98062. INT 2F - WinDOS v2.11 - SEARCH FOR NON-FRAGMENTED DISK AREA
  98063. AX = AF1Ah
  98064. BL = drive (00h = current, 01h = A:, etc.)
  98065. CX = number of clusters desired
  98066. Return: CF clear if successful
  98067. DI = first free cluster on logical drive
  98068. BP = first cluster of contiguous free area
  98069. AX destroyed
  98070. CF set on error
  98071. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  98072. Desc: attempt to find an area of the disk containing the specified number
  98073. of contiguous unallocated clusters
  98074. SeeAlso: AX=AF00h"WinDOS"
  98075. ----------2FAF30-----------------------------
  98076. INT 2F U - ???
  98077. AX = AF30h
  98078. ???
  98079. Return: ???
  98080. SeeAlso: AX=AF00h
  98081. --------d-2FAFDE-----------------------------
  98082. INT 2F - Disk-Emu - INSTALLATION CHECK / GET VERSION
  98083. AX = AFDEh
  98084. ES:DI -> 14-byte buffer for data (see #02979)
  98085. Return: AX = CFDEh (Carlos Fernandez Disk-Emu) if installed
  98086. BX = version (BH = major, BL = minor)
  98087. Format of Disk-Emu information data:
  98088. Offset Size Description (Table 02979)
  98089. 00h BYTE number of tracks
  98090. 01h BYTE sectors per track
  98091. 02h WORD bytes per sector
  98092. 04h BYTE number of heads
  98093. 05h BYTE flag: 00h inactive, 01h active
  98094. 06h BYTE write protection (00h none, 01h full, 02h pseudo)
  98095. 07h BYTE saved (00h some unsaved data, 01h all data saved)
  98096. 08h BYTE disk in memory (00h no, 01h yes)
  98097. 09h WORD EMS handle
  98098. 0Bh WORD XMS handle
  98099. 0Dh BYTE memory type used for disk (00h XMS, 01h EMS)
  98100. --------V-2FB000-----------------------------
  98101. INT 2F - DOS 3.3+ GRAFTABL.COM - INSTALLATION CHECK
  98102. AX = B000h
  98103. Return: AL = status
  98104. 00h not installed, OK to install
  98105. 01h not installed, not OK to install
  98106. FFh installed
  98107. Notes: called by DISPLAY.SYS
  98108. documented for DOS 5.0, but undocumented in prior versions
  98109. SeeAlso: AX=2300h,AX=2E00h,AX=B001h
  98110. --------V-2FB001-----------------------------
  98111. INT 2F - DOS 3.3+ GRAFTABL.COM - GET GRAPHICS FONT TABLE
  98112. AX = B001h
  98113. DS:BX -> DWORD buffer for address of 8x8 font table
  98114. Return: buffer filled
  98115. AL = FFh
  98116. Note: PC-DOS 3.30/4.01 and MS-DOS 6.0 set the font table offset to 0130h,
  98117. MS-DOS 3.30 sets it to 0030h
  98118. SeeAlso: AH=2Eh"GRAFTABL",AX=B000h
  98119. --------I-2FB400-----------------------------
  98120. INT 2F - IBM PC3270 EMULATION PROG v3 - INSTALLATION CHECK
  98121. AX = B400h
  98122. Return: AL = FFh if installed
  98123. --------I-2FB401-----------------------------
  98124. INT 2F - IBM PC3270 EMULATION PROG v3 - GET HOST BUFFER ADDRESS
  98125. AX = B401h
  98126. Return: ES -> host screen buffer (PC ASCII format)
  98127. ES unchanged if communications not started
  98128. --------I-2FB402-----------------------------
  98129. INT 2F - IBM PC3270 EMULATION PROG v3 - ???
  98130. AX = B402h
  98131. BX = ???
  98132. Return: ???
  98133. --------I-2FB403-----------------------------
  98134. INT 2F - IBM PC3270 EMULATION PROG v3 - ???
  98135. AX = B403h
  98136. ???
  98137. Return: ???
  98138. --------I-2FB404-----------------------------
  98139. INT 2F - IBM PC3270 EMULATION PROG v3 - ???
  98140. AX = B404h
  98141. ???
  98142. Return: ???
  98143. --------I-2FB405-----------------------------
  98144. INT 2F - IBM PC3270 EMULATION PROG v3 - ???
  98145. AX = B405h
  98146. ???
  98147. Return: ???
  98148. --------f-2FB700-----------------------------
  98149. INT 2F - APPEND - INSTALLATION CHECK
  98150. AX = B700h
  98151. Return: AL = status
  98152. 00h not installed
  98153. FFh installed
  98154. Note: MS-DOS 3.30 APPEND refuses to install itself when run inside TopView or
  98155. a TopView-compatible environment
  98156. SeeAlso: AX=B702h
  98157. --------f-2FB701-----------------------------
  98158. INT 2F U - APPEND v3.21 only - GET APPEND PATH
  98159. AX = B701h
  98160. Return: ES:DI -> active APPEND path
  98161. Notes: the only version of APPEND known to support this call is the APPEND
  98162. shipped with Microtek MS-DOS 3.21; MS-DOS 3.30-6.00 APPEND displays
  98163. "Incorrect APPEND Version" and aborts the caller
  98164. use AX=B704h first, and only call this function if that one is not
  98165. supported
  98166. SeeAlso: AX=B700h,AX=B704h
  98167. --------f-2FB702-----------------------------
  98168. INT 2F - APPEND - GET VERSION
  98169. AX = B702h
  98170. Return: AX = FFFFh if not DOS 4.0 APPEND (also if DOS 5.0 APPEND)
  98171. AL = major version number
  98172. AH = minor version number, otherwise
  98173. SeeAlso: AX=B700h,AX=B710h
  98174. --------f-2FB703-----------------------------
  98175. INT 2F U - DOS 3.3, DOS 5.0 APPEND - HOOK INT 21
  98176. AX = B703h
  98177. ES:DI -> INT 21 handler APPEND should chain to
  98178. Return: ES:DI -> APPEND's INT 21 handler
  98179. Note: each invocation of this function toggles a flag which APPEND uses to
  98180. determine whether to chain to the user handler or the original
  98181. INT 21
  98182. SeeAlso: AX=B700h,AX=B706h
  98183. --------f-2FB704-----------------------------
  98184. INT 2F - DOS 3.3+ APPEND - GET APPEND PATH
  98185. AX = B704h
  98186. Return: ES:DI -> active APPEND path (128 bytes max)
  98187. Note: some versions of append do not support this call, and return ES
  98188. unchanged; in this case, you should call AX=B701h to get the APPEND
  98189. path
  98190. SeeAlso: AX=B701h
  98191. --------f-2FB706-----------------------------
  98192. INT 2F - DOS 4.0+ APPEND - GET APPEND FUNCTION STATE
  98193. AX = B706h
  98194. Return: BX = APPEND state (see #02980)
  98195. SeeAlso: AX=B700h,AX=B707h
  98196. Bitfields for APPEND state:
  98197. Bit(s) Description (Table 02980)
  98198. 0 set if APPEND enabled
  98199. 1-11 reserved
  98200. 12 (DOS 5.0) set if APPEND applies directory search even if a drive has
  98201. been specified
  98202. 13 set if /PATH flag active
  98203. 14 set if /E flag active (environment var APPEND exists)
  98204. 15 set if /X flag active
  98205. --------f-2FB707-----------------------------
  98206. INT 2F - DOS 4.0+ APPEND - SET APPEND FUNCTION STATE
  98207. AX = B707h
  98208. BX = APPEND state bits (see #02980)
  98209. SeeAlso: AX=B700h,AX=B706h
  98210. --------f-2FB710-----------------------------
  98211. INT 2F U - DOS 3.3+ APPEND - GET VERSION INFO
  98212. AX = B710h
  98213. Return: AX = current APPEND state (see #02980)
  98214. BX = ??? (0000h in MS-DOS 3.30 and 5.00)
  98215. CX = ??? (0000h in MS-DOS 3.30 and 5.00)
  98216. DL = major version
  98217. DH = minor version
  98218. SeeAlso: AX=B700h,AX=B702h
  98219. --------f-2FB711-----------------------------
  98220. INT 2F - DOS 4.0+ APPEND - SET RETURN FOUND NAME STATE
  98221. AX = B711h
  98222. Note: if the next INT 21h call (and ONLY the next) is function 3Dh, 43h, or
  98223. 6Ch (also 4B03h and 4Eh if /X active), the fully qualified filename
  98224. is written over top of the filename passed to the INT 21h call. The
  98225. application must provide a sufficiently large buffer. This state is
  98226. reset after the next INT 21h call processed by APPEND.
  98227. APPEND uses the byte at offset 3Dh in the PSP
  98228. (see #01378 at INT 21/AH=26h) to store the flag telling it to
  98229. overwrite the filename
  98230. BUG: DOS 4.0 APPEND reportedly overwrites DS:DX instead of DS:SI for
  98231. INT 21/AH=6Ch
  98232. SeeAlso: INT 21/AH=26h,INT 21/AH=4Eh
  98233. --------N-2FB800-----------------------------
  98234. INT 2F - NETWORK - INSTALLATION CHECK
  98235. AX = B800h
  98236. Return: AL = status
  98237. 00h not installed
  98238. nonzero installed
  98239. BX = installed component flags (test in this order!)
  98240. bit 6 server
  98241. bit 2 messenger
  98242. bit 7 receiver
  98243. bit 3 redirector
  98244. bit 1 LANPUP (LANtastic 4.0)
  98245. Notes: this function is supported by PC LAN Program, LAN Manager, LANtastic,
  98246. NetWare Lite, SilverNET, 10NET, etc.
  98247. LANtastic and NetWare Lite use only BL for the return value, preserving
  98248. BH; LAN Manager and DOS LAN Requester return BH=00h. This permits
  98249. differentiation between those two groups by setting BH to a nonzero
  98250. value before the call and checking its value on return.
  98251. SeeAlso: AX=4E53h,AX=B809h
  98252. --------N-2FB800CXF041-----------------------
  98253. INT 2F - 10NET - INSTALLATION CHECK
  98254. AX = B800h
  98255. CX = F041h
  98256. Return: AL = status
  98257. 00h not installed
  98258. nonzero installed
  98259. BX = installed component flags (test in this order!)
  98260. bit 6 server
  98261. bit 2 messenger
  98262. bit 7 receiver
  98263. bit 3 redirector
  98264. bit 1 LANPUP (LANtastic 4.0)
  98265. CX = 10Net data segment
  98266. CX:DX -> 10Net Configuration Table
  98267. (see #01691 at INT 21/AX=5E01h"10NET")
  98268. Note: if CX <> F041h on entry, neither CX nor DX will be changed, and this
  98269. call becomes identical to the standard installation check above
  98270. SeeAlso: AX=B800h"network",INT 21/AX=5E01h"10NET"
  98271. --------N-2FB803-----------------------------
  98272. INT 2F - NETWORK - GET NETWORK EVENT POST HANDLER
  98273. AX = B803h
  98274. Return: ES:BX -> current event post handler (see AX=B804h)
  98275. Note: this function is supported by PC LAN Program, 10NET v5.0,
  98276. NetSoft DOS-NET v1.20+
  98277. SeeAlso: AX=B800h,AX=B804h,AX=B903h
  98278. --------N-2FB804-----------------------------
  98279. INT 2F - NETWORK - SET NETWORK EVENT POST HANDLER
  98280. AX = B804h
  98281. CX = (10NET) 0370h if 10Windows is hooking post handler
  98282. ES:BX -> new event post handler (see #02981)
  98283. Notes: used in conjunction with AX=B803h to hook into the network event post
  98284. routine
  98285. this function is supported by PC LAN Program, 10NET v5.0,
  98286. NetSoft DOS-NET v1.20+
  98287. The specified handler is called on any network event. Two events are
  98288. defined: message received and critical network error.
  98289. SeeAlso: AX=B800h,AX=B803h,AX=B904h
  98290. (Table 02981)
  98291. Values network post routine is called with:
  98292. AX = 0000h single block message
  98293. DS:SI -> ASCIZ originator name
  98294. DS:DI -> ASCIZ destination name
  98295. ES:BX -> text header (see #02982)
  98296. AX = 0001h start multiple message block
  98297. CX = block group ID
  98298. DS:SI -> ASCIZ originator name
  98299. DS:DI -> ASCIZ destination name
  98300. AX = 0002h multiple block text
  98301. CX = block group ID
  98302. ES:BX -> text header (see #02982)
  98303. AX = 0003h end multiple block message
  98304. CX = block group ID
  98305. AX = 0004h message aborted due to error
  98306. CX = block group ID
  98307. AX = 0101h server received badly formatted network request
  98308. Return: AX = FFFFh (PC LAN will process error)
  98309. AX = 0102h unexpected network error
  98310. ES:BX -> NCB (see #03249 at INT 5C"NetBIOS")
  98311. AX = 0103h server received INT 24 error
  98312. other registers as for INT 24, except AH is in BH
  98313. Return: as below, but only 0000h and FFFFh allowed
  98314. Return: AX = response code
  98315. 0000h user post routine processed message
  98316. 0001h PC LAN will process message, but message window not displayed
  98317. FFFFh PC LAN will process message
  98318. Format of text header:
  98319. Offset Size Description (Table 02982)
  98320. 00h WORD length of text (maximum 512 bytes)
  98321. 02h N BYTEs text of message
  98322. Note: all CRLF sequences in message text are replaced by 14h; all other
  98323. values below 20h (space) are reserved
  98324. --------N-2FB807-----------------------------
  98325. INT 2F - NETWORK - GET NetBIOS NAME NUMBER OF MACHINE NAME
  98326. AX = B807h
  98327. Return: CH = NetBIOS name number of the machine name
  98328. SeeAlso: INT 21/AX=5E00h
  98329. --------N-2FB808-----------------------------
  98330. INT 2F U - NETWORK - RELINK KEYBOARD HANDLER
  98331. AX = B808h
  98332. ES:BX -> INT 09 handler network should call after it finishes INT 09
  98333. Notes: this call replaces the address to which the network software chains on
  98334. an INT 09 without preserving the original value. This allows a prior
  98335. handler to unlink, but does not allow a new handler to be added
  98336. such that the network gets the INT 09 first unless the new handler
  98337. completely takes over INT 09 and never chains.
  98338. this function is called by the DOS 3.2 KEYBxx.COM
  98339. SeeAlso: AX=B908h
  98340. --------N-2FB809-----------------------------
  98341. INT 2F - NETWORK - LANtastic, NetWare Lite - GET VERSION
  98342. AX = B809h
  98343. Return: AH = major version
  98344. AL = minor version (decimal)
  98345. Notes: this function is supported in this form by LANtastic, NetWare Lite,
  98346. SilverNET, ...
  98347. NetWare Lite returns its own version number rather than a PC LAN
  98348. compatibility version
  98349. SeeAlso: AX=4E53h,AX=B800h,AX=B809h"PC LAN Program"
  98350. --------N-2FB809-----------------------------
  98351. INT 2F - NETWORK - PC LAN Program, Microsoft Networking - GET VERSION
  98352. AX = B809h
  98353. Return: AH = minor version (decimal)
  98354. AL = major version
  98355. Notes: this function is supported in this form by PC LAN Program, LAN Manager,
  98356. the DOS LAN Requester, 10NET v5.0, and Microsoft Networking under
  98357. WfWg 3.11
  98358. 10NET returns version 1.10 (AX=0A01h) for compatibility
  98359. SeeAlso: AX=4E53h,AX=B800h,AX=B809h"LANtastic"
  98360. --------N-2FB80A-----------------------------
  98361. INT 2F u - PC Network 1.00 - ???
  98362. AX = B80Ah
  98363. ???
  98364. Return: ???
  98365. Program: PC Network is an early networking package which was renamed the
  98366. IBM PC Local Area Network Program (PC LAN Program) as of v1.10
  98367. Note: called by RECEIVER (equivalent to NetWare Lite SERVER)
  98368. --------N-2FB80E-----------------------------
  98369. INT 2F U - DOS LAN Requester - GET XSI2 ADDRESS / DATA
  98370. AX = B80Eh
  98371. Return: DS:DI -> XSI2 TSR's resident data (see #02983)
  98372. Note: this function is used by NET.COM to locate the USERID and DOMAIN of
  98373. the logged-in user (which may differ from the NET START domain
  98374. name from DOSLAN.INI which is returned by AX=B80Fh)
  98375. SeeAlso: AX=B800h,AX=B80Fh
  98376. Format of XSI2 resident data:
  98377. Offset Size Description (Table 02983)
  98378. 00h 254 BYTEs ???
  98379. FEh 10 BYTEs user ID 1
  98380. 108h 10 BYTEs user ID 2
  98381. 112h 10 BYTEs domain name 1
  98382. 11Ch 10 BYTEs domain name 2
  98383. 126h ? BYTEs domain controller
  98384. --------N-2FB80F-----------------------------
  98385. INT 2F - DOS LAN Requester - GET START PARAMETERS
  98386. AX = B80Fh
  98387. CX = size of return data buffer
  98388. ES:DI -> return data buffer (see #02984)
  98389. Return: AX = status
  98390. 00h network started
  98391. nonzero network not started
  98392. CX = number of bytes returned in buffer
  98393. ES:DI buffer filled
  98394. SeeAlso: AX=B809h"PC LAN Program",AX=B80Eh
  98395. Format of DOS LAN Requester return data buffer:
  98396. Offset Size Description (Table 02984)
  98397. 00h BYTE major version
  98398. 01h BYTE minor version
  98399. 02h WORD configuration flags given when network was started (see #02985)
  98400. 04h 15 BYTEs NET START machine name (space padded)
  98401. 13h BYTE 00h
  98402. 14h 9 BYTEs NET START domain name (NULL padded)
  98403. 1Dh BYTE 00h
  98404. 1Eh 32 BYTEs /WRK heuristics string (space padded, not terminated)
  98405. 3Eh WORD /SRV value
  98406. 40h WORD /ASG value
  98407. 42h WORD /NBC value
  98408. 44h WORD /NBS value
  98409. 46h WORD /BBC value
  98410. 48h WORD /BBS value
  98411. 4Ah WORD /PBC value
  98412. 4Ch WORD /PBS value
  98413. 4Eh WORD /PFS value
  98414. 50h WORD /PFT value
  98415. 52h WORD /PWT value
  98416. 54h WORD /KUC value
  98417. 56h WORD /KST value
  98418. 58h WORD /NVS value
  98419. 5Ah WORD /NMS value
  98420. 5Ch WORD /NDB value
  98421. 5Eh WORD /MBI value
  98422. 60h BYTE NetBIOS name number for machine name
  98423. 61h BYTE NetBIOS name number for domain name
  98424. 62h WORD NetBIOS sessions required for configuration
  98425. 64h WORD NetBIOS commands required for configuration
  98426. 66h WORD NetBIOS names required for configuration
  98427. 68h 128 BYTEs NET START path (LANROOT)
  98428. E8h BYTE 00h
  98429. Bitfields for configuration flags:
  98430. Bit(s) Description (Table 02985)
  98431. 0 /NVS nonzero
  98432. 1 /NMS nonzero
  98433. 2 /API
  98434. 3 /HIM
  98435. 4 /LIM
  98436. 5 /ENC
  98437. 6 /POP
  98438. 7 /EMS
  98439. 8 /RPL
  98440. 9-12 reserved
  98441. 13 RDR started
  98442. 14 RCV started
  98443. 15 User is currently logged on
  98444. --------N-2FB900-----------------------------
  98445. INT 2F - PC Network RECEIVER.COM - INSTALLATION CHECK
  98446. AX = B900h
  98447. Return: AL = state
  98448. 00h if not installed
  98449. FFh if installed
  98450. --------N-2FB901-----------------------------
  98451. INT 2F - PC Network RECEIVER.COM - GET RECEIVER.COM INT 2F HANDLER ADDRESS
  98452. AX = B901h
  98453. Return: AL = ???
  98454. ES:BX -> RECEIVER.COM INT 2F handler
  98455. Desc: allows more efficient execution by letting the caller bypass any other
  98456. INT 2F handlers which have been added since RECEIVER.COM was
  98457. installed
  98458. --------N-2FB903-----------------------------
  98459. INT 2F - PC Network RECEIVER.COM - GET RECEIVER.COM POST ADDRESS
  98460. AX = B903h
  98461. Return: ES:BX -> POST handler
  98462. SeeAlso: AX=B803h,AX=B904h
  98463. --------N-2FB904-----------------------------
  98464. INT 2F - PC Network RECEIVER.COM - SET RECEIVER.COM POST ADDRESS
  98465. AX = B904h
  98466. ES:BX -> new POST handler
  98467. SeeAlso: AX=B804h,AX=B903h
  98468. --------N-2FB905-----------------------------
  98469. INT 2F - PC Network RECEIVER.COM - GET FILENAME
  98470. AX = B905h
  98471. DS:BX -> 128-byte buffer for filename 1
  98472. DS:DX -> 128-byte buffer for filename 2
  98473. Return: buffers filled from RECEIVER.COM internal buffers
  98474. Note: use of filenames is unknown, but one appears to be for storing messages
  98475. SeeAlso: AX=B906h
  98476. --------N-2FB906-----------------------------
  98477. INT 2F - PC Network RECEIVER.COM - SET FILENAME
  98478. AX = B906h
  98479. DS:BX -> 128-byte buffer for filename 1
  98480. DS:DX -> 128-byte buffer for filename 2
  98481. Return: RECEIVER.COM internal buffers filled from user buffers
  98482. Note: use of filenames is unknown, but one appears to be for storing messages
  98483. SeeAlso: AX=B905h
  98484. --------N-2FB908-----------------------------
  98485. INT 2F - PC Network RECEIVER.COM - UNLINK KEYBOARD HANDLER
  98486. AX = B908h
  98487. ES:BX -> INT 09 handler RECEIVER should call after it finishes INT 09
  98488. Note: this call replaces the address to which RECEIVER.COM chains on an
  98489. INT 09 without preserving the original value. This allows a prior
  98490. handler to unlink, but does not allow a new handler to be added
  98491. such that RECEIVER gets the INT 09 first.
  98492. SeeAlso: AX=B808h
  98493. --------V-2FBC00-----------------------------
  98494. INT 2F - Windows 3.0, DOS 5+ EGA.SYS - INSTALLATION CHECK
  98495. AX = BC00h
  98496. Return: AL = state
  98497. 00h not installed, OK to install
  98498. 01h not installed, not OK to install
  98499. FFh installed
  98500. BX = 5456h ("TV")
  98501. Range: AH=80h to AH=FFh, selected by commandline switch
  98502. SeeAlso: AX=BC06h"EGA",INT 10/AH=FAh"EGA"
  98503. --------s-2FBC00BX3F3F-----------------------
  98504. INT 2F - MediaVision MVSOUND.SYS - INSTALLATION CHECK
  98505. AX = BC00h
  98506. BX = 3F3Fh ('??')
  98507. CX = 0000h
  98508. DX = 0000h
  98509. Return: if installed, BX XOR CX XOR DX = 4D56h ('MV')
  98510. Program: MVSOUND.SYS is a driver for the MediaVision ProAudio Spectrum family
  98511. of sound boards; its primary programmer was Bryan Crane
  98512. SeeAlso: AX=BC01h"MVSOUND",AX=BC02h,AX=BC03h,AX=BC04h,AX=BC06h"MVSOUND"
  98513. --------s-2FBC01-----------------------------
  98514. INT 2F - MediaVision MVSOUND.SYS - GET VERSION
  98515. AX = BC01h
  98516. BX = magic value 6D20h ('m ')
  98517. CX = magic value 2076h (' v')
  98518. DX = magic value 2020h (' ')
  98519. Return: BX = ASCII major version (leading zeros significant)
  98520. CX = ASCII minor version (leading zeros significant)
  98521. SeeAlso: AX=BC00h/BX=3F3Fh
  98522. --------s-2FBC02-----------------------------
  98523. INT 2F - MediaVision MVSOUND.SYS - GET STATE TABLE POINTER
  98524. AX = BC02h
  98525. Return: AX = 4D56h ('MV')
  98526. BX:DX -> state table
  98527. SeeAlso: AX=BC00h/BX=3F3Fh,AX=BC03h
  98528. --------s-2FBC03-----------------------------
  98529. INT 2F - MediaVision MVSOUND.SYS - GET FUNCTION TABLE POINTER
  98530. AX = BC03h
  98531. Return: AX = 4D56h ('MV')
  98532. BX:DX -> function table
  98533. CX = ??? (000Eh)
  98534. SeeAlso: AX=BC00h/BX=3F3Fh,AX=BC02h
  98535. --------s-2FBC04-----------------------------
  98536. INT 2F - MediaVision MVSOUND.SYS - GET DMA AND IRQ CHANNELS
  98537. AX = BC04h
  98538. Return: AX = 4D56h ('MV')
  98539. BL = DMA channel
  98540. CL = IRQ number
  98541. SeeAlso: AX=BC00h/BX=3F3Fh,AX=BC01h"MVSOUND"
  98542. --------V-2FBC06-----------------------------
  98543. INT 2F U - MS Windows 3.0, DOS 5+ EGA.SYS - GET VERSION INFO
  98544. AX = BC06h
  98545. Return: BX = 5456h ("TV")
  98546. CH = major version
  98547. CL = minor version
  98548. DL = revision
  98549. SeeAlso: AX=BC00h"EGA",INT 10/AH=FAh"EGA"
  98550. --------s-2FBC06-----------------------------
  98551. INT 2F - MediaVision MVSOUND.SYS - GET STATUS STRING
  98552. AX = BC06h
  98553. Return: AX = 4D56h ('MV')
  98554. DX:BX -> status string (first byte 0Ch if no status message to display)
  98555. SeeAlso: AX=BC00h/BX=3F3Fh,AX=BC01h"MVSOUND",AX=BC0Bh"MVSOUND"
  98556. --------s-2FBC0B-----------------------------
  98557. INT 2F - MediaVision MVSOUND.SYS - GET EXECUTABLE PATH
  98558. AX = BC0Bh
  98559. Return: BX:DX -> ASCIZ path for MVPROAS.EXE, 0000h:0000h if not available
  98560. SeeAlso: AX=BC00h/BX=3F3Fh
  98561. --------s-2FBC0E-----------------------------
  98562. INT 2F - MediaVision MVSOUND.SYS - RE-INITIALIZE INT 09 HANDLER
  98563. AX = BC0Eh
  98564. Return: BX = status
  98565. 0000h on failure
  98566. AX = 0000h
  98567. FFFFh if successful
  98568. DX:AX -> prior INT 09 handler
  98569. Desc: re-initialize INT 09 handler to re-enable hotkeys (e.g. after loading
  98570. KEYB)
  98571. --------U-2FBE00-----------------------------
  98572. INT 2F - REDVIEW - INSTALLATION CHECK
  98573. AX = BE00h
  98574. Return: AL = FFh if installed
  98575. Program: REDVIEW is a public-domain TSR by Alexandr Novy and Petr Horak which
  98576. copies data sent to standard output to standard error when the
  98577. former has been redirected to a file, thus allowing the data to
  98578. be seen on the screen at the same time it is captured in a file
  98579. --------N-2FBF00-----------------------------
  98580. INT 2F - PC LAN PROGRAM REDIRIFS.EXE internal - INSTALLATION CHECK
  98581. AX = BF00h
  98582. Return: AL = FFh if installed
  98583. Note: this function is also supported by NetSoft's DOS-NET v1.20+; however,
  98584. none of the remaining BFxxh calls are supported
  98585. SeeAlso: AX=BF01h,AX=BF80h,INT 2A/AX=4147h
  98586. --------N-2FBF01-----------------------------
  98587. INT 2F U - PC LAN PROGRAM REDIRIFS.EXE internal - ???
  98588. AX = BF01h
  98589. ???
  98590. Return: ???
  98591. SeeAlso: AX=BF00h
  98592. --------N-2FBF80-----------------------------
  98593. INT 2F - PC LAN PROG REDIR.SYS internal - SET REDIRIFS ENTRY POINT
  98594. AX = BF80h
  98595. ES:DI -> FAR entry point to IFS handler in REDIRIFS
  98596. Return: AL = FFh if installed
  98597. ES:DI -> internal workspace
  98598. Note: all future IFS calls to REDIR.SYS are passed to the ES:DI entry point
  98599. SeeAlso: AX=BF00h
  98600. --------F-2FC0-------------------------------
  98601. INT 2F - METZ XpressFax Hardware TSR (CLASS2) - API
  98602. AH = C0h
  98603. AL = function code (01h to 15h)
  98604. Return: ???
  98605. SeeAlso: AX=C000h/BX=444Bh,AX=CB00h/BX=4D53h
  98606. --------N-2FC000-----------------------------
  98607. INT 2F - Novell ODI Link Support Layer (LSL.COM) - INSTALLATION CHECK
  98608. AX = C000h
  98609. Return: AL = FFh if installed
  98610. DX:BX -> FAR entry point (see #02986,#02987,#02988)
  98611. ES:SI -> signature string "LINKSUP$"
  98612. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  98613. Note: on return, ES = DX for LSL v1.10 and v2.05; LSL makes use of this in
  98614. its search for a previous installation
  98615. SeeAlso: AX=5100h,AX=C000h"NESL"
  98616. (Table 02986)
  98617. Call LSL function "Request MLID Registration" with:
  98618. BX = 0001h
  98619. ES:SI -> registration??? record (see #02990)
  98620. DS:DI -> buffer for LSL information block (see #02991)
  98621. Return: AX = completion code (0000h,8001h) (see #02989)
  98622. DS:DI buffer filled if successful
  98623. BX,CX corrupted
  98624. Note: see "Novell LAN Driver Developer's Guide, Volume III" for more details
  98625. (Table 02987)
  98626. Call LSL function "get support entry points" with:
  98627. BX = 0002h
  98628. ES:SI -> buffer for entry point record (see #02992)
  98629. Return: ES:SI buffer filled
  98630. (Table 02988)
  98631. Call LSL function "Request MLID API entry point" with:
  98632. BX = 0003h
  98633. Return: ES:SI -> MLID (Multiple Link Interface Driver) API entry point
  98634. (call with BX=function 00h-10h, not range-checked)
  98635. Note: LSL v1.10 and v2.05 execute BX=0003h for BX=0000h and any BX >= 0003h
  98636. (Table 02989)
  98637. Values for LSL completion code:
  98638. 0000h successful
  98639. 8001h out of resources
  98640. 8002h bad parameter
  98641. 8003h no more items
  98642. 8004h item not present
  98643. 8005h failed
  98644. 8006h receive overflow
  98645. 8007h canceled
  98646. 8008h bad command
  98647. 8009h duplicate entry
  98648. 800Ah no such handler
  98649. 800Bh no such driver
  98650. Format of LSL registration record:
  98651. Offset Size Description (Table 02990)
  98652. 00h DWORD -> ??? FAR function (to be called with ES:SI -> ??? and
  98653. returning AX = completion code)
  98654. 04h DWORD -> ???
  98655. 08h DWORD -> ??? data (at least 3Eh bytes)
  98656. Format of LSL information block:
  98657. Offset Size Description (Table 02991)
  98658. 00h DWORD -> ??? entry point (called with BX=function 00h-11h)
  98659. 04h WORD ???
  98660. 06h WORD ???
  98661. Note: due to a fencepost error, LSL v2.05 (distributed with Novell DOS 7)
  98662. will crash if the above entry point is called with BX=0012h
  98663. Format of entry point record:
  98664. Offset Size Description (Table 02992)
  98665. 00h DWORD pointer to protocol support entry point in LSL (see #02993)
  98666. 04h DWORD pointer to general support entry point in LSL (see #02994)
  98667. (Table 02993)
  98668. Call protocol support entry point with:
  98669. BX = function number
  98670. 0000h ???
  98671. 0001h ???
  98672. 0002h ???
  98673. 0003h "ScheduleAESEvent"
  98674. ES:SI -> AES ECB to be scheduled (see #02997)
  98675. Return: ES,SI preserved
  98676. 0004h "CancelAESEvent"
  98677. ES:SI -> ECB to be cancelled (see #02997)
  98678. Return: ES,SI preserved
  98679. 0005h "GetIntervalMarker"
  98680. Return: DX:AX = current interval marker in milliseconds
  98681. all other registers preserved
  98682. 0006h "RegisterStack"
  98683. AX = logical board number
  98684. ES:SI -> bound stack info structure (see #03007)
  98685. Return: BX = assigned Stack ID if AX=0000h
  98686. 0007h "DeRegisterStack"
  98687. AX = protocol stack's assigned Stack ID
  98688. 0008h "RegisterDefaultStack"
  98689. AX = logical board number
  98690. ES:SI -> stack info structure (see #03008)
  98691. 0009h "DeRegisterDefaultStack"
  98692. AX = logical board number
  98693. 000Ah "RegisterPrescanStack"
  98694. AX = logical board number
  98695. ES:SI -> stack info structure (see #03008)
  98696. 000Bh "DeRegisterPrescanStack"
  98697. AX = logical board number
  98698. 000Ch "SendPacket"
  98699. ES:SI -> send ECB
  98700. Return: interrupts disabled
  98701. 000Dh ???
  98702. 000Eh ???
  98703. 000Fh ???
  98704. 0010h "GetStackIDFromName"
  98705. ES:SI -> counted NUL-terminated protocol name (max 15 chars)
  98706. Return: BX = Stack ID if AX=0000h
  98707. 0011h "GetPIDFromStackIDBoard"
  98708. AX = Stack ID for protocol
  98709. CX = logical board number
  98710. ES:SI -> 6-byte buffer for protocol ID
  98711. 0012h "GetMLIDControlEntry"
  98712. AX = logical board number
  98713. Return: ES:SI -> MLID control handler (see #02995) if AX=0000h
  98714. 0013h "GetProtocolControlEntry"
  98715. AX = Stack ID or
  98716. FFFEh Prescan stack
  98717. CX = logical board number
  98718. FFFFh default protocol
  98719. CX = logical board number
  98720. Return: ES:SI -> protocol stack control entry point if AX=0000h
  98721. (see #02996)
  98722. 0014h "GetLSLStatistics"
  98723. Return: AX = 0000h (successful)
  98724. ZF set
  98725. ES:SI -> LSL statistics table (see #02999)
  98726. 0015h "BindStack"
  98727. AX = protocol stack's assigned Stack ID
  98728. CX = logical board number
  98729. 0016h "UnbindStack"
  98730. AX = protocol stack's assigned Stack ID
  98731. CX = logical board number
  98732. 0017h "AddProtocolID"
  98733. AX = frame type ID code
  98734. ES:SI -> 6-byte protocol ID
  98735. CX:DI -> counted NUL-terminated short protocol name (max 15 ch)
  98736. 0018h "RelinquishControl"
  98737. Return: after LSL performs any necessary background processing
  98738. 0019h "GetLSLConfiguration"
  98739. Return: AX = 0000h (successful)
  98740. ZF set
  98741. ES:SI -> LSL configuration table (see #02998)
  98742. 001Ah "GetTickMarker"
  98743. Return: AX = number of 55ms ticks since LSL loaded
  98744. BX destroyed
  98745. Return: AX = completion code (see #02989)
  98746. ZF set if successful
  98747. SS:SP, DS, BP preserved; most other registers may be destroyed
  98748. (Table 02994)
  98749. Call general support entry point with:
  98750. BX = function number
  98751. 0000h "Allocate Memory" (obsolete)
  98752. always returns AX=8008h (BAD_COMMAND)
  98753. 0001h "Free Memory" (obsolete)
  98754. always returns AX=8008h (BAD_COMMAND)
  98755. 0002h "Realloc Memory" (obsolete)
  98756. always returns AX=8008h (BAD_COMMAND)
  98757. 0003h "Memory Statistics" (obsolete)
  98758. always returns AX=8008h (BAD_COMMAND)
  98759. 0004h "Add Memory To Pool" (obsolete)
  98760. always returns AX=8008h (BAD_COMMAND)
  98761. 0005h "AddGeneralService"
  98762. ES:SI -> General Service Control Block (see #03009)
  98763. 0006h "RemoveGeneralService"
  98764. ES:SI -> General Service Control Block (see #03009)
  98765. 0007h "GetNETcfgPath"
  98766. Return: AX = 0000h (successful)
  98767. DS:DX -> ASCIZ pathname for NET.CFG
  98768. 0008h U ??? (in LSL 1.10)
  98769. Return: AX = 0000h
  98770. ES:SI -> ??? (a 22-byte data area)
  98771. 000Ah "GetCriticalSectionStatus"
  98772. Return: BX = total outstanding calls to "StartCriticalSection"
  98773. 000Bh "ServiceEvents"
  98774. interrupts disabled
  98775. Return: interrupts disabled
  98776. 0010h "GetStackECB"
  98777. DS:DI -> Lookahead structure (see #03010)
  98778. interrupts disabled
  98779. Return: ES:SI -> ECB if successful (AX=0000h,ZF set)
  98780. interrupts disabled
  98781. 8000h-FFFFh reserved for user general service providers
  98782. Return: AX = completion code (see #02989)
  98783. ZF set if successful
  98784. SS:SP, DS, BP preserved
  98785. (Table 02995)
  98786. Call MLID control handler with:
  98787. AX = logical board number
  98788. BX = function number
  98789. 0000h "GetMLIDConfiguration"
  98790. Return: ES:SI -> MLID's configuration table if successful
  98791. (see #03002 for format)
  98792. 0001h "GetMLIDStatistics"
  98793. Return: ES:SI -> MLID's statistics table if successful
  98794. (see #03002 for format)
  98795. 0002h "AddMulticastAddress"
  98796. ES:SI -> 6-byte multicast address to add
  98797. 0003h "DeleteMulticastAddress"
  98798. ES:SI -> 6-byte multicast address to delete
  98799. 0005h "MLIDShutdown"
  98800. CX = type
  98801. 0000h permanent (also deregisters from LSL)
  98802. other temporary (shutdown hardware only)
  98803. 0006h "MLIDReset" reinitialize board / restart from temp shutdown
  98804. 0007h "Create Connection" (obsolete?)
  98805. ???
  98806. 0008h "Delete Connection" (obsolete?)
  98807. ???
  98808. 0009h "SetLookAheadSize"
  98809. CX = requested lookahead size (00h-80h)
  98810. 000Ah "PromiscuousChange"
  98811. CX = what to receive promiscuously
  98812. bit 0: MAC frames
  98813. bit 1: non-MAC frames
  98814. 000Bh "RegisterReceiveMonitor"
  98815. CX = subfunction
  98816. 0000h disable receive monitoring
  98817. else enable receive monitoring
  98818. ES:SI -> monitor receive routine
  98819. ES:DI -> monitor transmit routine
  98820. 000Ch "Driver Poll" (obsolete?)
  98821. ???
  98822. Return: AX = completion code (see #02989)
  98823. ZF set if successful
  98824. Note: not all boards/MLIDs support function 0010h; see bit 13 in the MLID
  98825. mode flags field of the MLID's configuration table
  98826. (Table 02996)
  98827. Call protocol stack control entry point with:
  98828. BX = function number
  98829. 0000h "GetProtocolStackConfiguration"
  98830. Return: ES:SI -> protocol stack's configuration table
  98831. (see #03001)
  98832. 0001h "GetProtocolStackStatistics"
  98833. Return: ES:SI -> protocol stack's statistics table (see #03000)
  98834. 0002h "BindToMLID"
  98835. CX = board number to bind to
  98836. ES:SI -> implementation-dependant parameter string
  98837. 0003h "UnBindFromMLID"
  98838. CX = board number from which protocol should unbind
  98839. ES:SI -> optional implementation-dependant parameter string
  98840. 0004h "MLIDDeRegistered"
  98841. CX = board number that has de-registered from LSL
  98842. Return: AX = status
  98843. 0000h successful
  98844. else implementation-dependant error codes
  98845. ZF set if successful
  98846. SS:SP, DS, BP preserved
  98847. Format of AES ECB:
  98848. Offset Size Description (Table 02997)
  98849. 00h DWORD "AESLink" pointer used by LSL for list management
  98850. 04h DWORD number of milliseconds to wait
  98851. 08h DWORD "AESStatus" (is set to 00000000h when AES ESR is invoked)
  98852. 0Ch DWORD -> function to be invoked when time expires
  98853. ES:SI will point to this structure on entry,
  98854. DS, BP, and SS:SP must be preserved.
  98855. SeeAlso: #03011
  98856. Format of LSL Configuration Table:
  98857. Offset Size Description (Table 02998)
  98858. 00h BYTE major version of configuration table
  98859. 01h BYTE minor version of configuration table (decimal, 0-99)
  98860. 02h 8 BYTEs reserved
  98861. 0Ah BYTE LSL major version (decimal)
  98862. 0Bh BYTE LSL minor version (decimal, 0-99)
  98863. ---LSL 1.0x ---
  98864. 0Ch 14 BYTEs reserved
  98865. ---LSL 1.10+ ---
  98866. 0Ch WORD maximum number of boards which LSL can handle
  98867. 0Eh WORD maximum number of protocol IDs which LSL can handle
  98868. 10h 12 BYTEs reserved
  98869. Format of LSL Statistics Table:
  98870. Offset Size Description (Table 02999)
  98871. 00h BYTE major version of statistics table format
  98872. 01h BYTE minor version of statistics table format (decimal, 0-99)
  98873. 02h WORD "GenericCounters" number of counters in static portion of
  98874. table
  98875. 04h DWORD "ValidCountersMask" bit mask indicating which generic
  98876. counters are actually used. Bit 31 = TotalTxPackets, bit 30
  98877. is the next field, etc.
  98878. 08h DWORD "TotalTxPackets" total SendPacket requests made
  98879. 0Ch DWORD reserved
  98880. 10h DWORD reserved
  98881. 14h DWORD "AESEventsCount" number of completed AES events
  98882. 18h DWORD "PostponedEvents" number of events postponed due to critical
  98883. sections inside the MLIDs
  98884. 1Ch DWORD "CancelAESFailures" number of times CancelAESEvent failed
  98885. 20h DWORD reserved
  98886. 24h DWORD reserved
  98887. 28h DWORD "TotalRxPackets" total number of GetStackECB requests
  98888. 2Ch DWORD "UnclaimedPackets" total number of packets not consumed by a
  98889. protocol stack
  98890. 30h WORD "NumberCustom" number of custom variables that follow
  98891. 32h N DWORDs custom counters
  98892. N DWORDs -> CustomCounterStrN (one per custom counter)
  98893. var length-prepended and NULL terminated string for Counter 0
  98894. ...
  98895. var length-prepended and NULL terminated string for Counter N-1
  98896. SeeAlso: #03000,#03006
  98897. Format of Protocol Stack Statistics Table:
  98898. Offset Size Description (Table 03000)
  98899. 00h BYTE statistics table major version
  98900. 01h BYTE statistics table minor version (decimal, 0-99)
  98901. 02h WORD number of generic counters following
  98902. 04h DWORD "ValidCountersMask" (bitmask, bit 31 is TotalTxPackets)
  98903. 08h DWORD TotalTxPackets
  98904. 0Ch DWORD TotalRxPackets
  98905. 10h DWORD IgnoredRxPackets
  98906. 14h WORD number of custom counters
  98907. 16h N DWORDs custom counters
  98908. N DWORDs -> CustomCounterStrN (one per custom counter)
  98909. var length-prepended and NULL terminated string for Counter 0
  98910. ...
  98911. var length-prepended and NULL terminated string for Counter N-1
  98912. SeeAlso: #02999,#03006
  98913. Format of Protocol Stack Configuration Table:
  98914. Offset Size Description (Table 03001)
  98915. 00h BYTE configuration table major version
  98916. 01h BYTE configuration table minor version (decimal, 0-99)
  98917. 02h DWORD -> counted NUL-terminated long descriptive name for protocol
  98918. 06h DWORD -> counted NUL-terminated short name for protocol (15 chars)
  98919. 0Ah BYTE protocol stack major version
  98920. 0Bh BYTE protocol stack minor version (decimal, 0-99)
  98921. 0Ch 16 BYTEs reserved for future use
  98922. Format of MLID Configuration Table:
  98923. Offset Size Description (Table 03002)
  98924. 00h 26 BYTEs signature 'HardwareDriverMLID ' (8 spaces on end)
  98925. 1Ah BYTE configuration table major version
  98926. 1Bh BYTE configuration table minor version (decimal, 0-99)
  98927. 1Ch 6 BYTEs node address
  98928. 22h WORD MLID mode flags (see #03003)
  98929. 24h WORD board number
  98930. 26h WORD board instance (if more than one of same board installed)
  98931. 28h WORD maximum packet size
  98932. 2Ah WORD BestDataSize
  98933. 2Ch WORD WorstDataSize
  98934. 2Eh DWORD -> counted NUL-terminated long name for NIC
  98935. 32h DWORD -> counted NUL-terminated short name for NIC (8 chars max)
  98936. 36h DWORD -> counted NUL-terminated Frame and Media type
  98937. 3Ah WORD reserved (0000h)
  98938. 3Ch WORD frame type ID
  98939. 3Eh WORD TransportTime (milliseconds)
  98940. 40h DWORD -> SourceRouteHandler for TokenRing. (Used by ROUTE.COM)
  98941. 44h WORD lookahead size
  98942. 46h WORD line speed (Mbps if high bit clear, else Kbps)
  98943. 48h WORD QueueDepth
  98944. 4Ah 6 BYTEs reserved (0)
  98945. 50h BYTE driver major version
  98946. 51h BYTE driver minor version (decimal, 0-99)
  98947. 52h WORD bus/multicast flags (see #03004)
  98948. 54h WORD send retries
  98949. 56h DWORD ConfigTableLink
  98950. 5Ah WORD MLID sharing flags (see #03005)
  98951. 5Ch WORD slot number
  98952. 5Eh WORD I/O address 1
  98953. 60h WORD I/O range 1
  98954. 62h WORD I/O address 2
  98955. 64h WORD I/O range 2
  98956. 66h DWORD memory address 1
  98957. 6Ah WORD memory size 1
  98958. 6Ch DWORD memory address 2
  98959. 70h WORD memory size 2
  98960. 72h BYTE interrupt line 1
  98961. 73h BYTE interrupt line 2
  98962. 74h BYTE DMA line 1
  98963. 75h BYTE DMA line 2
  98964. Bitfields for MLID mode flags:
  98965. Bit(s) Description (Table 03003)
  98966. 15 MLID supports Octet Reversal
  98967. 14 node address is non-canonical
  98968. 13 promiscuous mode is supported
  98969. 12-8 reserved
  98970. 7 LDataSize field in LookAhead structure supported
  98971. 6 raw send supported
  98972. 5 MLID needs to be polled by LSL
  98973. 4 reserved (0)
  98974. 3 multicasting is supported
  98975. 2 not currently used by DOS ODI, set to 0.
  98976. 1 network card uses DMA.
  98977. 0 RealDriverBit, always set to 1.
  98978. Bitfields for bus/multicast flags:
  98979. Bit(s) Description (Table 03004)
  98980. 10-9 specialized multicast support
  98981. 00 = Group addressing is default for medium
  98982. 01 = Invalid
  98983. 10 = Filter group address in MLID.
  98984. 11 = Adapter filters group address.
  98985. 2 supports Micro Channel cards
  98986. 1 supports ISA cards
  98987. 0 supports EISA cards
  98988. Bitfields for MLID sharing flags:
  98989. Bit(s) Description (Table 03005)
  98990. 8 NIC can share DMA2
  98991. 7 NIC can share DMA1
  98992. 6 NIC can share IRQ2
  98993. 5 NIC can share IRQ1
  98994. 4 NIC can share Memory2
  98995. 3 NIC can share Memory1
  98996. 2 NIC can share IO2
  98997. 1 NIC can share IO1
  98998. 0 MLID is currently shut down
  98999. Format of MLID Statistics Table:
  99000. Offset Size Description (Table 03006)
  99001. 00h BYTE driver statistics table major version
  99002. 01h BYTE driver statistics table minor version (decimal, 0-99)
  99003. 02h WORD number of generic counters (typically 13)
  99004. 04h DWORD "ValidCountersMask" (bit mask, bit 31 is TotalTxCount)
  99005. 08h DWORD TotalTxCount
  99006. 0Ch DWORD TotalRxCount
  99007. 10h DWORD NoECBAvailableCount
  99008. 14h DWORD TxTooBigCount
  99009. 18h DWORD TxTooSmallCount
  99010. 1Ch DWORD RxOverflowCount
  99011. 20h DWORD RxTooBigCount
  99012. 24h DWORD RxTooSmallCount
  99013. 28h DWORD TxMiscCount
  99014. 2Ch DWORD RxMiscCount
  99015. 30h DWORD TxRetryCount
  99016. 34h DWORD RxChecksumErrorCount
  99017. 38h DWORD RxMismatchCount
  99018. 3Ch WORD number of custom counters
  99019. 3Eh N DWORDs custom counters
  99020. N DWORDs -> CustomCounterStrN (one per custom counter)
  99021. var length-prepended and NULL terminated string for Counter 0
  99022. ...
  99023. var length-prepended and NULL terminated string for Counter N-1
  99024. SeeAlso: #02999,#03000
  99025. Format of bound stack info structure:
  99026. Offset Size Description (Table 03007)
  99027. 00h DWORD -> protocol stack's short name (counted, NUL-terminated)
  99028. 04h DWORD -> receive handler
  99029. 08h DWORD -> control handler
  99030. Format of stack info structure:
  99031. Offset Size Description (Table 03008)
  99032. 00h DWORD -> receive handler
  99033. 04h DWORD -> control handler
  99034. Format of General Service Control Block:
  99035. Offset Size Description (Table 03009)
  99036. 00h DWORD -> next GSCB (maintained internally by LSL)
  99037. 04h DWORD -> entry point for general service handler
  99038. 08h WORD command code for this general service (8000h-FFFFh)
  99039. Note: the control block must not be altered or deallocated until the general
  99040. service is removed
  99041. Format of Lookahead structure:
  99042. Offset Size Description (Table 03010)
  99043. 00h DWORD -> Media header
  99044. 04h DWORD -> lookahead buffer
  99045. 08h WORD length of lookahead buffer
  99046. 0Ah 6 BYTEs protocol ID
  99047. 10h WORD logical board number
  99048. 12h WORD lookahead size
  99049. Format of ODI ECB:
  99050. Offset Size Description (Table 03011)
  99051. 00h DWORD link to next ECB
  99052. 04h DWORD link to previous ECB
  99053. 08h WORD general status
  99054. 0000h received successfully
  99055. 8006h packet overflow
  99056. 8007h reception aborted (data not valid)
  99057. 0Ah DWORD -> event service routine or RETF (never 0000h:0000h)(see #03012)
  99058. 0Eh WORD protocol stack identifier
  99059. 10h 6 BYTEs protocol ID (sending only)
  99060. 16h WORD MLID board number (sending only)
  99061. 18h 6 BYTEs MAC destination address
  99062. 1Eh 4 BYTEs driver workspace
  99063. 22h 8 BYTEs protocol workspace
  99064. 2Ah WORD total length of sent buffer
  99065. 2Ch WORD fragment count
  99066. 2Eh 2 WORDs segment,offset of first fragment buffer
  99067. 32h WORD length of first fragment buffer
  99068. ...
  99069. SeeAlso: #02997
  99070. (Table 03012)
  99071. Values event service routine is called with:
  99072. ES:SI -> associated ODI ECB (see #03011)
  99073. interrupts disabled
  99074. Return: DS,BP,SS,SP preserved
  99075. interrupt disabled
  99076. Notes: the service routine may invoke any IPX/ODI function except CloseSocket
  99077. it is safe to send a packet and wait for completion if enough stack
  99078. space is available
  99079. --------N-2FC000-----------------------------
  99080. INT 2F - Novell NetWare Event Service Layer (NESL) 1.0 - INSTALLATION CHECK
  99081. AX = C000h
  99082. Return: AL = FFh if installed
  99083. DX:BX -> FAR entry point (see #03013,#03014,#03015,#03016,#03017,#03018)
  99084. ES:SI -> signature string "NESL_EVENTS"
  99085. Program: NESL is a generic interface for event handling in ODI drivers and
  99086. other NetWare-oriented modules. Primarily intended to support
  99087. power management and "hot swapping" of PCMCIA cards, but it is not
  99088. limited to this.
  99089. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  99090. SeeAlso: AX=C000h"Link Support Layer",AX=C000h"NETWARN"
  99091. (Table 03013)
  99092. Call NESL function GetNESLConfigPointer with:
  99093. BX = 0000h
  99094. Return: AX = completion code (0000h,8008h) (see #03019)
  99095. ES:SI -> NESL configuration table if successful (see #03020)
  99096. BP,DS,STACK preserved
  99097. Desc: Obtain a pointer to the NESL Configuration Table
  99098. SeeAlso: #03014,#03017
  99099. (Table 03014)
  99100. Call NESL function RegisterEventProducer with:
  99101. BX = 0001h
  99102. ES:SI -> Producer Event Control Block (PECB) (see #03021)
  99103. Return: AX = completion code (0000h, 8005h, 8008h) (see #03019)
  99104. ES:SI -> still points to PECB
  99105. BP,DS,STACK preserved
  99106. Desc: Allows a module to register as a producer of a given event class
  99107. Note: PECB_ClassName and PECB_Flags must be filled in on entry
  99108. SeeAlso: #02870,#03015,#03016,#03017
  99109. (Table 03015)
  99110. Call NESL function DeRegisterEventProducer with:
  99111. BX = 0002h
  99112. ES:SI -> PECB previously passed to RegisterEventProducer (see #03021)
  99113. Return: AX = completion code (0000h, 8002h, 8008h) (see #03019)
  99114. ES:SI -> still points to PECB
  99115. BP,DS,STACK preserved
  99116. Desc: Allows a module to de-register as a producer of a given event class
  99117. SeeAlso: #03014,#03018
  99118. (Table 03016)
  99119. Call NESL function EventNotification with:
  99120. BX = 0003h
  99121. ES:SI -> PECB previously registered (see #03021)
  99122. Return: AX = completion code (0h, 8005h, 8008h) (see #03019)
  99123. ES:SI -> still points to PECB
  99124. BP,DS,STACK preserved
  99125. Desc: Allows a module to signal that an event has just occurred in a given
  99126. event class.
  99127. Notes: Once called, NESL will generate corresponding callouts for this
  99128. event, as described in Table #03023.
  99129. on entry, the PECB_DataPtr must point at an Event Parameter Block (EPB)
  99130. (see #03024) filled in to match the desired event
  99131. SeeAlso: #03014
  99132. (Table 03017)
  99133. Call NESL function RegisterEventConsumer with:
  99134. BX = 0004h
  99135. ES:SI -> Consumer Event Control Block (CECB) (see #03022)
  99136. Return: AX = completion code (0h, 8005h, 8008h) (see #03019)
  99137. ES:SI -> still points to CECB
  99138. BP,DS,STACK preserved
  99139. Desc: Allows a module to register as a consumer of a given event class
  99140. Note: on entry, the CECB_ClassName, CECB_NotifProc and CECB_OSILevel must be
  99141. filled in.
  99142. SeeAlso: #03014,#03018
  99143. (Table 03018)
  99144. Call NESL function DeRegisterEventConsumer with:
  99145. BX = 0005h
  99146. ES:SI -> CECB previously passed to RegisterEventConsumer (see #03022)
  99147. Return: AX = completion code (0h, 8002h, 8008h) (see #03019)
  99148. ES:SI -> still points to CECB
  99149. BP,DS,STACK preserved
  99150. Desc: Allows a module to de-register as a consumer of a given event class
  99151. SeeAlso: #03015,#03017
  99152. (Table 03019)
  99153. Values for NESL Error code:
  99154. 0000h Successful
  99155. 8002h Bad Parameter
  99156. 8005h Fail
  99157. 8008h Bad Command
  99158. Format of NESL Configuration Table:
  99159. Offset Size Description (Table 03020)
  99160. 00h WORD NESL_Cfg_MajVer Major Version of this table (=1)
  99161. 02h WORD NESL_Cfg_MinVer Minor Version of this table (=0)
  99162. 04h DWORD NESL_Cfg_ModLName -> ASCIZ long name of NESL module
  99163. (typically -> "NetWare Event Service Layer for 16-Bit DOS")
  99164. 08h DWORD NESL_Cfg_ModSName -> ASCIZ short name of NESL module
  99165. (typically -> "NESL")
  99166. 0Ch WORD NESL_Cfg_ModMajVer Major Version of NESL itself (=1)
  99167. 0Eh WORD NESL_Cfg_ModMinVer Minor Version of NESL itself (=0)
  99168. Format of NESL Producer Event Control Block (PECB):
  99169. Offset Size Description (Table 03021)
  99170. 00h WORD PECB_MajVer Major Version of this structure (=1)
  99171. 02h WORD PECB_MinVer Minor Version of this structure (=0)
  99172. 04h DWORD PECB_NextProducer -> next PECB. NULL if last.
  99173. 08h DWORD PECB_ClassName -> ASCIZ string identifying event
  99174. class (see #03025)
  99175. 0Ch DWORD PECB_ConsumerList -> list of consumers for this event class
  99176. 10h DWORD PECB_DataPtr -> points to additional data during events
  99177. 14h DWORD PECB_Flags
  99178. Bit 0 =0 consumers should be called "top down" for this
  99179. event class. (OSI level 7 down to OSI level 1)
  99180. =1 consumers should be called "bottom up"
  99181. Bits 1-31 Reserved =0
  99182. 18h 8 BYTEs PECB_Reserved (all zeros)
  99183. Note: Although the event producer provides the memory for the PECB, the
  99184. NESL module controls this memory until the event class is
  99185. de-registered.
  99186. While owned by NESL, this structure should be treated as read-only,
  99187. except for the PECB_DataPtr field.
  99188. Format of NESL Consumer Event Control Block (CECB):
  99189. Offset Size Description (Table 03022)
  99190. 00h WORD CECB_MajVer Major Version of this structure (=1)
  99191. 02h WORD CECB_MinVer Minor Version of this structure (=0)
  99192. 04h DWORD CECB_NextConsumer -> next CECB. NULL if last.
  99193. 08h DWORD CECB_ClassName -> ASCIZ string identifying event
  99194. class (see #03025)
  99195. 0Ch DWORD CECB_NotifProc -> FAR CALL event handler (see #03023)
  99196. 10h WORD CECB_OSILevel
  99197. Bits 4-7 = OSI Layer of this module (1 through 7)
  99198. Bits 0-3 = relative ordering with other modules on same layer
  99199. 13h 14 BYTEs CECB_Reserved (all zeros)
  99200. Note: Although the event consumer provides the memory for the CECB, the
  99201. NESL module controls this memory until the consumer is de-registered.
  99202. While owned by NESL, this structure should be treated as read-only,
  99203. (Table 03023)
  99204. Values NESL Consumer Notification Procedure is called with:
  99205. ES:SI -> Event Parameter Block (EPB) (see #03024)
  99206. Return: AX = completion code (0000h, 8005h) (see #03019)
  99207. ES:SI -> still points to EPB
  99208. Desc: Called by NESL to notify the consumer when an event has occurred in
  99209. an event class for which it has registered.
  99210. SeeAlso: #03022
  99211. Format of NESL Event Parameter Block (EPB):
  99212. Offset Size Description (Table 03024)
  99213. 00h WORD EPB_MajVer Major Version of this structure (=1)
  99214. 02h WORD EPB_MinVer Minor Version of this structure (=0)
  99215. 04h DWORD EPB_ClassName -> ASCIZ string identifying event class
  99216. (see #03025)
  99217. 08h DWORD EPB_EventName -> ASCIZ string identifying event within
  99218. class (see #03026)
  99219. 0Ch DWORD EPB_ModuleName -> ASCIZ string identifying module
  99220. producing event
  99221. 10h DWORD EPB_DataPtr0 -> event-defined data or NULL if not used
  99222. 14h DWORD EPB_DataPtr1 -> event-defined data or NULL if not used
  99223. 18h 8 BYTEs EPB_Reserved (all zeros)
  99224. (Table 03025)
  99225. Values for NESL Event Class Names:
  99226. Event Class Description
  99227. ------------------- -----------------------------------------
  99228. Service Suspend Suspension of a service. Called top-down.
  99229. Service Resume Resumption/availability of a service. Called bottom-up.
  99230. Service/Status Change Change in status or level of service. Called top-down.
  99231. Suspend Request Request to suspend a service. Called bottom-up.
  99232. Note: Contact Novell Labs to register new event classes.
  99233. (Table 03026)
  99234. Values for NESL Event Names:
  99235. Event Name Class Description
  99236. -------------------------- ------------- ---------------------------
  99237. MLID Cable Disconnect Service Suspend Cable disconnected from NIC
  99238. MLID Card Removal Service Suspend PCMCIA card removed
  99239. MLID Hardware Failure Service Suspend Serious hardware
  99240. failure in NIC
  99241. MLID Not In Range Service Suspend Wireless access point
  99242. is out of range
  99243. MLID Shutdown Service Suspend MLID was shut down
  99244. MLID Media Access Denied Service Suspend Access to physical
  99245. medium unsuccessful
  99246. MLID Cable Reconnect Service Resume Cable re-connected to NIC
  99247. MLID Card Insertion Complete Service Resume PCMCIA card inserted
  99248. MLID In Range Service Resume Wireless access point
  99249. in range
  99250. MLID Reset Service Resume MLID was just reset
  99251. MLID Access Point Change Serv/Status Change Station has moved to
  99252. new access point
  99253. MLID Speed Change Serv/Status Change Change in communic. speed
  99254. Note: Contact Novell Labs to register new event names.
  99255. For all predefined events above, EPB_DataPtr0 (see #03024) points
  99256. to the MLID Configuration table (see AX=C000h"ODI") for the
  99257. affected MLID.
  99258. --------N-2FC000-----------------------------
  99259. INT 2F - Novell NetWare Connect NETWARN - INSTALLATION CHECK
  99260. AX = C000h
  99261. Return: AL = FFh if installed
  99262. SI = segment of resident portion
  99263. Program: NETWARN is a utility supplied with NetWare Connect to warn a
  99264. remote dialup user when programs are about to be loaded slowly over
  99265. the modem link.
  99266. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  99267. Note: on return, verify that it is NETWARN responding by examining signature
  99268. at in NETWARN's data table in the resident segment (see #03027)
  99269. SeeAlso: AX=C000h"ODI",AX=C000h"NESL"
  99270. Format of NETWARN Configuration structure:
  99271. Offset Size Description (Table 03027)
  99272. 103h 7 BYTEs signature string "NETWARN"
  99273. 10Ah BYTE major version in ASCII (="1")
  99274. 10Bh BYTE minor version in ASCII (="0")
  99275. 10Ch DWORD minimum size of EXE cared about in bytes (/S=xxxx)
  99276. 110h WORD same value in kilobytes (see #03028 [bit 4])
  99277. 112h BYTE multiplex code (AH value) actually being used
  99278. 113h WORD options (see #03028)
  99279. 115h DWORD INT 21h vector before NETWARN loaded
  99280. 119h DWORD INT 2Fh vector before NETWARN loaded
  99281. 11Dh 16 BYTEs ASCIIZ local name of last device which was checked
  99282. 12Dh 128 BYTEs ASCIIZ remote name of last device which was checked
  99283. Note: the specified offsets are from the start of the resident segment
  99284. Bitfields for NETWARN options:
  99285. Bit(s) Description (Table 03028)
  99286. 0 ??? (=0)
  99287. 1 /U (Unload) selected (never in resident)
  99288. 2 /E (Enabled) Will trap & check EXEC's
  99289. 3 /D (Disabled) No EXEC checking done
  99290. 4 /S (Size) was set (see #03027 [offsets 010Ch and 0110h])
  99291. 5 /P (Path shown)
  99292. 6 /H or /? (Help) (never in resident)
  99293. SeeAlso: #03027
  99294. --------f-2FC000-----------------------------
  99295. INT 2F - FN32 32 character filename utilities - INSTALLATION CHECK
  99296. AX = C000h
  99297. Return: AL = FFh if installed
  99298. ES:DI -> signature string "FN32 32CHAR TSR"
  99299. Program: FN32 is a TSR which supports 32 character filenames under PC/MS-DOS
  99300. Note: the TSR intercepts INT 21 calls and performs filename substitution by
  99301. managing dictionary files in each directory which contains long
  99302. filenames
  99303. --------M-2FC000-----------------------------
  99304. INT 2F - QMR - INSTALLATION CHECK
  99305. AX = C000h
  99306. Return: AL = FFh if installed
  99307. ES:DI -> signature string "QMR1!"
  99308. Program: QMR (Cove Software, Quick Mouse Reset) monitors the mouse
  99309. service interrupt (int 33h) and substitutes a fast software
  99310. reset (mouse fn 21h) for the slow hardware reset (mouse fn 0).
  99311. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  99312. SeeAlso: AX=C001h"QMR",AX=C002h"QMR",AX=C003h"QMR"
  99313. --------V-2FC000-----------------------------
  99314. INT 2F - VGAsave v1.93 - INSTALLATION CHECK
  99315. AX = C000h
  99316. Return: AL = FFh if installed
  99317. BX = segment of resident code
  99318. Program: VGAsave is a freeware VGA-specific, mouse-aware screenblanker by Bill
  99319. Javurek
  99320. Range: AH=C0h to AH=FFh, selected by scanning for a free multiplex number
  99321. Note: the transient portion of VGAsave compares the first 38 bytes of the
  99322. resident code (addressed through BX) against its own copy of the
  99323. resident code to complete the installation check
  99324. SeeAlso: INT 14/AX=AA01h,INT 2F/AH=93h
  99325. Index: screen saver;VGAsave
  99326. --------V-2FC000-----------------------------
  99327. INT 2F - AD-DOS - INSTALLATION CHECK
  99328. AX = C000h
  99329. Return: AL = FFh if installed
  99330. BX = 4144h ('AD')
  99331. CX = 2D44h ('-D')
  99332. DX = 4F53h ('OS')
  99333. Program: AD-DOS is the DOS version of the After Dark screen blanker for
  99334. MS Windows
  99335. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  99336. SeeAlso: AX=C001h"AD-DOS",AX=C003h"AD-DOS",AX=C005h"AD-DOS",AX=C007h"AD-DOS"
  99337. SeeAlso: AX=C009h"AD-DOS",AX=C020h"AD-DOS",INT 14/AX=AA01h
  99338. Index: screen saver;AD-DOS
  99339. --------U-2FC000-----------------------------
  99340. INT 2F U - WANG_ER.COM - INSTALLATION CHECK
  99341. AX = C000h
  99342. Return: AL = FFh if installed
  99343. ES = segment of resident code
  99344. Program: WANG_ER is a TSR from Compaq which permits Compaq systems equipped
  99345. with 3-mode floppy drives to read Wang document diskettes
  99346. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  99347. Note: The installation check is completed by comparing the resident code
  99348. with the copy in the transient program
  99349. --------i-2FC000-----------------------------
  99350. INT 2F O - ASPIHOOK.SYS - INSTALLATION CHECK
  99351. AX = C000h
  99352. Return: AL = FFh if multiplex number in use
  99353. ES:DI -> ASCIZ signature "ASPIHOOK" if ASPIHOOK.SYS installed
  99354. Program: ASPIHOOK is a device driver for monitoring SCSI activity through an
  99355. ASPI host manager; it is part of the Personal Measure system
  99356. activity monitor from Spirit of Performance, Inc.
  99357. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  99358. SeeAlso: AX=C000h"PMEASURE"
  99359. --------i-2FC000-----------------------------
  99360. INT 2F - PMEASURE.EXE - INSTALLATION CHECK
  99361. AX = C000h
  99362. Return: AL = FFh if multiplex number in use
  99363. ES:DI -> ASCIZ signature "PMEASURE.EXE" if PMEASURE.EXE installed
  99364. Program: PMEASURE.EXE is a TSR for monitoring system hardware activity which
  99365. is part of the Personal Measure system activity monitor from Spirit
  99366. of Performance, Inc.
  99367. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  99368. Note: If a Personal Measure Hook Module, such as ASPIHOOK.SYS, is already
  99369. installed, PMEASURE.EXE uses the next highest free multiplex number.
  99370. SeeAlso: AX=C000h"ASPIHOOK",AX=C000h"PERSONAL MEASURE"
  99371. --------i-2FC000-----------------------------
  99372. INT 2F - PERSONAL MEASURE - HOOK MODULE INSTALLATION CHECK
  99373. AX = C000h
  99374. Return: AL = FFh if installed
  99375. ES:DI -> signature string "PMEASUREHOOK"
  99376. AX = C000 if not installed, per mux id conventions
  99377. DH = major release number (binary)
  99378. DL = minor release number (binary)
  99379. Program: The Personal Measure system activity monitor from Spirit of
  99380. Performance, Inc. uses an extensible series of modules to hook
  99381. into various operating system interfaces and monitor system calls.
  99382. Current hook modules are ASPIHOOK.SYS for ASPI device activity
  99383. and CDRHOOK.SYS for non-ASPI CD-ROM activity. All hook modules
  99384. share the same mux id.
  99385. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  99386. SeeAlso: AX=C000h"PMEASURE.EXE",AX=C001h"PERSONAL MEASURE"
  99387. --------c-2FC000-----------------------------
  99388. INT 2F U - PrintCache v3.1 PCACHE.EXE - INSTALLATION CHECK
  99389. AX = C000h
  99390. Return: AL = FFh if installed
  99391. SI = signature value 20D6h
  99392. DI = signature value 8761h
  99393. ES:BX -> configuration table (see #03029)
  99394. CX = ??? (0300h)
  99395. DX = ??? (0020h)
  99396. Program: PCACHE is the resident print spooler portion of PrintCache by
  99397. LaserTools; it may use either memory or disk space to spool output
  99398. Range: AH=C0h to AH=FFh, selected by commandline switch
  99399. SeeAlso: AX=0100h/SI=20D6h,AX=C001h"PCACHE"
  99400. Format of PrintCache configuration table:
  99401. Offset Size Description (Table 03029)
  99402. 00h 26 BYTEs ASCIZ signature string "TORQ Configuration Table: "
  99403. 1Ah 2 BYTEs ???
  99404. 1Ch DWORD -> data table (see #03030)
  99405. 20h 4 BYTEs ASCIZ version string ("3.1" for v3.1)
  99406. 24h 5 BYTEs ???
  99407. 29h 12 BYTEs ASCIZ version date string ("Aug 31 1993" for v3.1)
  99408. 35h WORD buffered port type (01h = LPT, 02h = COM)
  99409. 37h WORD buffered port BIOS port number
  99410. 39h 5 BYTEs ASCIZ buffered port name ("LPTn" or "COMn")
  99411. 3Eh WORD physical port type (01h = LPT, 02h = COM)
  99412. 40h WORD physical port BIOS port number
  99413. 42h 5 BYTEs ASCIZ physical port name ("LPTn" or "COMn")
  99414. 47h BYTE port driver IRQ
  99415. 48h 21 BYTEs ???
  99416. 5Dh WORD buffer size in K
  99417. 5Fh 27 BYTEs ???
  99418. 7Ah BYTE popup hotkey shift states (see #00582 at INT 16/AH=02h)
  99419. 7Bh BYTE popup hotkey scan code (see #00006 at INT 09"IRQ1")
  99420. 7Ch 4 BYTEs ???
  99421. 80h 20 BYTEs ASCIZ printer type name
  99422. ???
  99423. Format of PrintCache data table:
  99424. Offset Size Description (Table 03030)
  99425. 00h 2 BYTEs ???
  99426. 02h DWORD -> ??? entry point
  99427. ???
  99428. --------U-2FC000-----------------------------
  99429. INT 2F - Frank Kintrup TSR Utilities - INSTALLATION CHECK
  99430. AX = C000h
  99431. Return: AL = FFh if installed
  99432. BX = program ID (see #03031)
  99433. CX = 464Bh (signature "FK")
  99434. DX = revision number (DH = major, DL = minor)
  99435. ES = resident segment of TSR
  99436. Range: AH=C0h to AH=FFh, selected by searching for a free multiplex number
  99437. SeeAlso: AX=C001h"Kintrup",AX=C002h"Kintrup"
  99438. (Table 03031)
  99439. Values for Frank Kintrup TSR program ID:
  99440. 4153h "AS" ASCII.COM ASCII table with paste function
  99441. 434Ch "CL" CLOCK.COM clock with date/time display and alarm
  99442. 5043h "PC" PCALC.COM programmer's calculator with paste function
  99443. 5343h "SC" SCRSAVE.COM screen saver with mouse support and hotkey
  99444. 5544h "UD" UNDEL.COM undelete program like SMARTCAN or DPROTECT
  99445. --------K-2FC000-----------------------------
  99446. INT 2F U - HP 100LX/200LX - PUSHKEYS - INSTALLATION CHECK
  99447. AX = C000h
  99448. Return: AL = FFh if possibly installed
  99449. Range: AH=C0h to AH=FFh, selected by scanning for signature with AL=AEh
  99450. SeeAlso: AX=C001h"HP 100LX",AX=C0AEh"HP 100LX",AX=C0AFh"HP 100LX"
  99451. --------V-2FC000-----------------------------
  99452. INT 2F - DIMWIT - INSTALLATION CHECK
  99453. AX = C000h
  99454. Return: AL = FFh if installed
  99455. ES:DI -> signature string "DIMDOS" or "DIMWIN"
  99456. Program: DIMWIT is a freeware Windows-aware screen blanker by Larry Board
  99457. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  99458. SeeAlso: AX=C000h"AD-DOS",AX=C001h"DIMWIT"
  99459. Index: screen saver;DIMWIT
  99460. --------F-2FC000BX444B-----------------------
  99461. INT 2F - METZ XpressFax Hardware TSR (CLASS2) - INSTALLATION CHECK
  99462. AX = C000h
  99463. BX = 444Bh ('DK')
  99464. CX = 4A4Eh ('AN')
  99465. Return: AL = status
  99466. 00h not installed, OK to install
  99467. FFh installed
  99468. BX = 646Bh ('dk')
  99469. CX = 6A6Eh ('an')
  99470. Range: AH=C0h to AH=FFh, selected automatically
  99471. SeeAlso: AH=C0h"METZ"
  99472. --------V-2FC000-----------------------------
  99473. INT 2F U - TSENGP.COM - INSTALLATION CHECK
  99474. AX = C000h
  99475. Return: AL = status
  99476. 00h not installed, OK to install
  99477. FFh installed
  99478. DS = segment of resident code
  99479. Program: TSENGP.COM is a TSR supplied by Compaq to fix an incompatibility
  99480. between some applications and Tseng ET4000-based video adapters
  99481. Range: AH=C0h to AH=FFh, selected automatically
  99482. Note: the installation check is completed by comparing the first eleven
  99483. bytes at DS:005Fh against the TSR's code (80h FCh 06h 74h 0Ah
  99484. 80h FCh 07h 74h 05h EAh)
  99485. --------N-2FC000-----------------------------
  99486. INT 2F U - LapLink RemoteAccess (LLRA) - INSTALLATION CHECK
  99487. AX = C000h
  99488. Return: AL = FFh if one of the components is installed
  99489. CX:BX -> signature within LLRA component:
  99490. "TSI_LapLinkCore" for LLRA1.EXE
  99491. "TSI_Blackbird" for LLRA2.EXE
  99492. "TSI_Redirector" for LLRA3.EXE
  99493. "TSI_Compression" for LLRA4.EXE
  99494. DL = major version number
  99495. DH = minor version number
  99496. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  99497. Note: LapLink components are installed in the order listed above, but not
  99498. necessarily all four; each gets its own multiplex number (default
  99499. C0h-C3h)
  99500. SeeAlso: AX=C002h"LapLink",AX=C205h"LapLink",AX=C2F0h"LapLink"
  99501. SeeAlso: AX=C2F1h"LapLink",AX=C301h"LapLink",AX=C3F0h"LapLink"
  99502. SeeAlso: AX=C3F1h"LapLink"
  99503. --------M-2FC001-----------------------------
  99504. INT 2F - QMR - REQUEST HARDWARE RESET
  99505. AX = C001h
  99506. Return: ES = QMR code segment
  99507. AL destroyed
  99508. Desc: this function is used to force a full mouse reset when QMR is installed
  99509. SeeAlso: AX=C000h"QMR",AX=C002h"QMR"
  99510. --------V-2FC001-----------------------------
  99511. INT 2F - DIMWIT - GET CONFIGURATION DATA
  99512. AX = C001h
  99513. Return: ES:DI -> TSR configuration data (see #03032)
  99514. Program: DIMWIT is a freeware Windows-aware screen blanker by Larry Board
  99515. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  99516. SeeAlso: AX=C000h"DIMWIT",AX=C001h"AD-DOS"
  99517. Index: screen saver;DIMWIT
  99518. Format of DIMWIT TSR configuration data:
  99519. Offset Size Description (Table 03032)
  99520. 00h WORD blanking delay in clock ticks
  99521. 02h BYTE instant-blanking hotkey scan code (see #00006)
  99522. Ctrl and Alt must also be pressed
  99523. --------V-2FC001ES0000-----------------------
  99524. INT 2F - AD-DOS - GET RESIDENT CODE SEGMENT
  99525. AX = C001h
  99526. ES = 0000h
  99527. Return: AL = 00h if successful
  99528. ES = AD-DOS TSR Code Segment
  99529. SeeAlso: AX=C000h"AD-DOS",AX=C001h"DIMWIT"
  99530. Index: screen saver;AD-DOS
  99531. --------c-2FC001-----------------------------
  99532. INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ENTRY POINTS
  99533. AX = C001h
  99534. Return: AL = FFh if installed
  99535. ES:BX -> ???
  99536. ES:DX -> ???
  99537. ES:SI -> ???
  99538. ES:DI -> ??? (equivalent to AX=C002h)
  99539. SeeAlso: AX=C000h"PCACHE",AX=C002h"PCACHE"
  99540. --------U-2FC001-----------------------------
  99541. INT 2F - Frank Kintrup TSR Utilities - CLOCK - DISABLE DISPLAY UPDATE
  99542. AX = C001h
  99543. Range: AH=C0h to AH=FFh, selected by searching for a free multiplex number
  99544. SeeAlso: AX=C000h"Kintrup",AX=C002h"Kintrup"
  99545. --------K-2FC001CX03FB-----------------------
  99546. INT 2F U - HP 100LX/200LX - PUSHKEYS - INTERNAL - UNINSTALL
  99547. AX = C001h
  99548. CX = 03FBh return address to continue uninstall if possible
  99549. Return: program uninstalled
  99550. Range: AH=C0h to AH=FFh, selected by scanning for signature with AL=AEh
  99551. SeeAlso: AX=C000h"HP 100LX",AX=C0AEh"HP 100LX",AX=C0AFh"HP 100LX"
  99552. --------i-2FC001-----------------------------
  99553. INT 2F - PERSONAL MEASURE - PASS PARAMETERS TO HOOK MODULE(S)
  99554. AX = C001h
  99555. DX = segment of PMEASURE.EXE or 0000h
  99556. BX = offset in PMEASURE.EXE or 0000h
  99557. CX = offset in PMEASURE.EXE or 0000h
  99558. Return: None
  99559. Program: PMEASURE.EXE is a TSR for monitoring system hardware activity which
  99560. is part of the Personal Measure system activity monitor from Spirit
  99561. of Performance, Inc. PMEASURE uses this call to inform its hook
  99562. modules whether or not it is running and to pass information about
  99563. shared data and procedures.
  99564. Warning: This information documents a function that is private to Personal
  99565. Measure and is provided as information only. It should NOT be called
  99566. by any software other than Personal Measure.
  99567. SeeAlso: AX=C000h"PERSONAL MEASURE"
  99568. --------V-2FC002-----------------------------
  99569. INT 2F - AD-DOS - CHECK FOR NEW INPUT
  99570. AX = C002h
  99571. Return: AL = 00h if successful
  99572. BX = status
  99573. 0000h no input since last check
  99574. 0001h new input available
  99575. Note: this call also resets the new-input flag
  99576. SeeAlso: AX=C000h"AD-DOS",AX=C004h
  99577. Index: screen saver;AD-DOS
  99578. --------M-2FC002-----------------------------
  99579. INT 2F - QMR - DISABLE QMR
  99580. AX = C002h
  99581. Return: ES = QMR code segment
  99582. AL destroyed
  99583. Desc: this call temporarily disables QMR
  99584. SeeAlso: AX=C000h"QMR",AX=C003h"QMR"
  99585. --------c-2FC002-----------------------------
  99586. INT 2F U - PrintCache v3.1 PCACHE.EXE - GET BUFFER SIZE
  99587. AX = C002h
  99588. Return: AX = ??? in K
  99589. BX = size of print buffer in K
  99590. Program: PCACHE is the resident print spooler portion of PrintCache by
  99591. LaserTools; it may use either memory or disk space to spool output
  99592. SeeAlso: AX=C000h"PCACHE"
  99593. --------U-2FC002-----------------------------
  99594. INT 2F - Frank Kintrup TSR Utilities - CLOCK - ENABLE DISPLAY UPDATE
  99595. AX = C002h
  99596. Range: AH=C0h to AH=FFh, selected by searching for a free multiplex number
  99597. SeeAlso: AX=C000h"Kintrup",AX=C002h"Kintrup"
  99598. --------N-2FC002-----------------------------
  99599. INT 2F U - LapLink RemoteAccess (LLRA) - Core - ???
  99600. AX = C002h
  99601. details not yet available
  99602. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  99603. SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C2F0h"LapLink"
  99604. SeeAlso: AX=C2F1h"LapLink",AX=C301h"LapLink"
  99605. --------V-2FC003-----------------------------
  99606. INT 2F - AD-DOS - SET MINUTES TO WAIT
  99607. AX = C003h
  99608. BX = minutes to wait before blanking screen
  99609. Return: AL = 00h if successful
  99610. Program: AD-DOS is the DOS version of the After Dark screen blanker for
  99611. MS Windows
  99612. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  99613. Note: this call also resets the delay timer
  99614. SeeAlso: AX=C000h"AD-DOS",AX=C004h
  99615. Index: screen saver;AD-DOS
  99616. --------M-2FC003-----------------------------
  99617. INT 2F - QMR - ENABLE QMR
  99618. AX = C003h
  99619. Return: ES = QMR code segment
  99620. AL destroyed
  99621. Desc: this call enables QMR after it has been disabled
  99622. SeeAlso: AX=C000h"QMR",AX=C002h"QMR"
  99623. --------c-2FC003-----------------------------
  99624. INT 2F U - PrintCache v3.1 PCACHE.EXE - SET ??? FLAG
  99625. AX = C003h
  99626. Return: BX destroyed
  99627. SeeAlso: AX=C004h"PCACHE"
  99628. --------V-2FC004-----------------------------
  99629. INT 2F - AD-DOS - GET MINUTES TO WAIT
  99630. AX = C004h
  99631. Return: AL = 00h if successful
  99632. BX = minutes to wait before blanking screen
  99633. SeeAlso: AX=C000h"AD-DOS",AX=C003h"AD-DOS"
  99634. Index: screen saver;AD-DOS
  99635. --------c-2FC004-----------------------------
  99636. INT 2F U - PrintCache v3.1 PCACHE.EXE - CLEAR ??? FLAG
  99637. AX = C004h
  99638. Return: BX destroyed
  99639. SeeAlso: AX=C003h"PCACHE"
  99640. --------V-2FC005-----------------------------
  99641. INT 2F - AD-DOS - SET BLANKER STATUS
  99642. AX = C005h
  99643. BX = new state (0000h inactive, 0001h active) (default 0001h)
  99644. Return: AL = 00h if successful
  99645. SeeAlso: AX=C006h"AD-DOS"
  99646. Index: screen saver;AD-DOS
  99647. --------c-2FC005-----------------------------
  99648. INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
  99649. AX = C005h
  99650. ???
  99651. Return: BX destroyed
  99652. ???
  99653. Program: PCACHE is the resident print spooler portion of PrintCache by
  99654. LaserTools; it may use either memory or disk space to spool output
  99655. Range: AH=C0h to AH=FFh, selected by commandline switch
  99656. SeeAlso: AX=C000h"PCACHE"
  99657. --------V-2FC006-----------------------------
  99658. INT 2F - AD-DOS - GET BLANKER STATUS
  99659. AX = C006h
  99660. Return: AL = 00h if successful
  99661. BX = current state of screen blanker (0000h inactive, 0001h active)
  99662. Program: AD-DOS is the DOS version of the After Dark screen blanker for
  99663. MS Windows
  99664. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  99665. SeeAlso: AX=C000h"AD-DOS",AX=C005h"AD-DOS"
  99666. Index: screen saver;AD-DOS
  99667. --------c-2FC006-----------------------------
  99668. INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
  99669. AX = C006h
  99670. ???
  99671. Return: BX destroyed
  99672. ???
  99673. Note: this function appears to be identical to AX=C007h
  99674. SeeAlso: AX=C000h"PCACHE",AX=C007h"PCACHE"
  99675. --------V-2FC007-----------------------------
  99676. INT 2F - AD-DOS - SET HOT KEY
  99677. AX = C007h
  99678. BX = hot key
  99679. CL = hot key shift status
  99680. Return: AL = 00h if successful
  99681. SeeAlso: AX=C008h"AD-DOS"
  99682. Index: screen saver;AD-DOS
  99683. --------c-2FC007-----------------------------
  99684. INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
  99685. AX = C007h
  99686. ???
  99687. Return: BX destroyed
  99688. ???
  99689. Note: this function appears to be identical to AX=C006h
  99690. SeeAlso: AX=C000h"PCACHE",AX=C006h"PCACHE"
  99691. --------V-2FC008-----------------------------
  99692. INT 2F - AD-DOS - GET CURRENT HOT KEY
  99693. AX = C008h
  99694. Return: AX = status
  99695. 0000h successful
  99696. BX = Hot Key
  99697. CL = Hot Key Shift Status
  99698. 0008h otherwise
  99699. SeeAlso: AX=C000h"AD-DOS",AX=C007h"AD-DOS"
  99700. Index: screen saver;AD-DOS
  99701. --------c-2FC008-----------------------------
  99702. INT 2F U - PrintCache v3.1 PCACHE.EXE - CLEAR ??? FLAG
  99703. AX = C008h
  99704. Return: BX destroyed
  99705. SeeAlso: AX=C000h"PCACHE",AX=C009h"PCACHE"
  99706. --------V-2FC009-----------------------------
  99707. INT 2F - AD-DOS - UNBLANK MONITOR
  99708. AX = C009h
  99709. Return: AL = 00h if successful
  99710. Program: AD-DOS is the DOS version of the After Dark screen blanker for
  99711. MS Windows
  99712. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  99713. Note: this function works by simulating keyboard activity
  99714. Index: screen saver;AD-DOS
  99715. --------c-2FC009-----------------------------
  99716. INT 2F U - PrintCache v3.1 PCACHE.EXE - SET ??? FLAG
  99717. AX = C009h
  99718. Return: BX destroyed
  99719. Program: PCACHE is the resident print spooler portion of PrintCache by
  99720. LaserTools; it may use either memory or disk space to spool output
  99721. Range: AH=C0h to AH=FFh, selected by commandline switch
  99722. SeeAlso: AX=C000h"PCACHE",AX=C008h"PCACHE"
  99723. --------V-2FC00A-----------------------------
  99724. INT 2F - AD-DOS - ???
  99725. AX = C00Ah
  99726. Return: AX = status
  99727. 0000h successful
  99728. BH = ??
  99729. BL = ??
  99730. 000Ah failed
  99731. Index: screen saver;AD-DOS
  99732. --------c-2FC00A-----------------------------
  99733. INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
  99734. AX = C00Ah
  99735. ???
  99736. Return: AH = bit flags
  99737. bit 5: ???
  99738. AL = bit flags
  99739. bit 4: ???
  99740. bit 3: ???
  99741. BX destroyed
  99742. ???
  99743. SeeAlso: AX=C000h"PCACHE"
  99744. --------V-2FC00B-----------------------------
  99745. INT 2F - AD-DOS - ???
  99746. AX = C00Bh
  99747. Return: AX = status
  99748. 0000h successful
  99749. 000Bh failed
  99750. Index: screen saver;AD-DOS
  99751. --------c-2FC00B-----------------------------
  99752. INT 2F U - PrintCache v3.1 PCACHE.EXE - NOP
  99753. AX = C00Bh
  99754. Return: BX destroyed
  99755. SeeAlso: AX=C000h"PCACHE"
  99756. --------V-2FC00C-----------------------------
  99757. INT 2F - AD-DOS - SET ??? INTERNAL FLAG TO 01h
  99758. AX = C00Ch
  99759. Return: AX = status
  99760. 0000h successful
  99761. 000Ch failed
  99762. Program: AD-DOS is the DOS version of the After Dark screen blanker for
  99763. MS Windows
  99764. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  99765. Index: screen saver;AD-DOS
  99766. --------c-2FC00C-----------------------------
  99767. INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ???
  99768. AX = C00Ch
  99769. Return: AX = ??? (0000h)
  99770. BX = ??? (0000h)
  99771. CX = ??? (0100h)
  99772. DL = ???
  99773. DH = ???
  99774. SeeAlso: AX=C000h"PCACHE"
  99775. --------c-2FC00D-----------------------------
  99776. INT 2F U - PrintCache v3.1 PCACHE.EXE - SET ???
  99777. AX = C00Dh
  99778. DL = ???
  99779. Return: BX destroyed
  99780. Program: PCACHE is the resident print spooler portion of PrintCache by
  99781. LaserTools; it may use either memory or disk space to spool output
  99782. Range: AH=C0h to AH=FFh, selected by commandline switch
  99783. SeeAlso: AX=C000h"PCACHE"
  99784. --------V-2FC00E-----------------------------
  99785. INT 2F - AD-DOS - SET PASSWORD STATUS
  99786. AX = C00Eh
  99787. BX = new state (0000h disabled, 0001h enabled)
  99788. Return: ???
  99789. SeeAlso: AX=C000h"AD-DOS",AX=C00Fh"AD-DOS"
  99790. Index: screen saver;AD-DOS
  99791. --------c-2FC00E-----------------------------
  99792. INT 2F U - PrintCache v3.1 PCACHE.EXE - INSTALL ???
  99793. AX = C00Eh
  99794. ES:DX -> ???
  99795. Return: BX destroyed
  99796. Note: ES:DX is stored internally if the variable is currently 0000h:0000h,
  99797. but ignored if already set; a counter is incremented
  99798. SeeAlso: AX=C000h"PCACHE",AX=C00Fh"PCACHE"
  99799. --------V-2FC00F-----------------------------
  99800. INT 2F - AD-DOS - GET PASSWORD STATUS
  99801. AX = C00Fh
  99802. Return: BX = current state (0000h disabled, 0001h enabled)
  99803. SeeAlso: AX=C00Eh"AD-DOS"
  99804. Index: screen saver;AD-DOS
  99805. --------c-2FC00F-----------------------------
  99806. INT 2F U - PrintCache v3.1 PCACHE.EXE - REMOVE ???
  99807. AX = C00Fh
  99808. Return: BX destroyed
  99809. Note: this function decrements the counter used by AX=C00Eh, and clears the
  99810. internal pointer variable to 0000h:0000h when it reaches zero
  99811. SeeAlso: AX=C000h"PCACHE",AX=C00Eh"PCACHE"
  99812. --------c-2FC010-----------------------------
  99813. INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ???
  99814. AX = C010h
  99815. CX = index of ??? table (00h-02h, others treated as 00h)
  99816. SI = offset into data table
  99817. Return: AL = byte at specified offset into table
  99818. BX destroyed
  99819. SeeAlso: AX=C000h"PCACHE"
  99820. --------c-2FC011-----------------------------
  99821. INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ???
  99822. AX = C011h
  99823. Return: AX = ??? (0007h)
  99824. BX = ??? (0001h)
  99825. CH = ???
  99826. CL = ???
  99827. SeeAlso: AX=C000h"PCACHE"
  99828. --------c-2FC012-----------------------------
  99829. INT 2F U - PrintCache v3.1 PCACHE.EXE - GET ???
  99830. AX = C012h
  99831. Return: AX = ???
  99832. BX = ???
  99833. CX = ???
  99834. DX = ???
  99835. SeeAlso: AX=C000h"PCACHE"
  99836. --------c-2FC013-----------------------------
  99837. INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
  99838. AX = C013h
  99839. ???
  99840. Return: BX destroyed
  99841. ???
  99842. Program: PCACHE is the resident print spooler portion of PrintCache by
  99843. LaserTools; it may use either memory or disk space to spool output
  99844. Range: AH=C0h to AH=FFh, selected by commandline switch
  99845. SeeAlso: AX=C000h"PCACHE"
  99846. --------c-2FC014-----------------------------
  99847. INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
  99848. AX = C014h
  99849. ???
  99850. Return: BX destroyed
  99851. ???
  99852. SeeAlso: AX=C000h"PCACHE"
  99853. --------c-2FC015-----------------------------
  99854. INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
  99855. AX = C015h
  99856. ???
  99857. Return: BX destroyed
  99858. ???
  99859. SeeAlso: AX=C000h"PCACHE"
  99860. --------c-2FC016-----------------------------
  99861. INT 2F U - PrintCache v3.1 PCACHE.EXE - INCREMENT ???
  99862. AX = C016h
  99863. Return: BX destroyed
  99864. SeeAlso: AX=C000h"PCACHE",AX=C017h"PCACHE"
  99865. --------c-2FC017-----------------------------
  99866. INT 2F U - PrintCache v3.1 PCACHE.EXE - DECREMENT ???
  99867. AX = C017h
  99868. Return: BX destroyed
  99869. SeeAlso: AX=C000h"PCACHE",AX=C016h"PCACH"
  99870. --------c-2FC018-----------------------------
  99871. INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
  99872. AX = C018h
  99873. ???
  99874. Return: BX destroyed
  99875. ???
  99876. Note: the first instruction of this function is an indirect jump which points
  99877. at a RET by default
  99878. SeeAlso: AX=C000h"PCACHE",AX=C019h"PCACHE"
  99879. --------c-2FC019-----------------------------
  99880. INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
  99881. AX = C019h
  99882. ???
  99883. Return: BX destroyed
  99884. ???
  99885. Note: the first instruction of this function is an indirect jump which points
  99886. at a RET by default
  99887. SeeAlso: AX=C000h"PCACHE",AX=C018h"PCACHE"
  99888. --------c-2FC01A-----------------------------
  99889. INT 2F U - PrintCache v3.1 PCACHE.EXE - CLEAR ??? FLAG
  99890. AX = C01Ah
  99891. Return: BX destroyed
  99892. SeeAlso: AX=C000h"PCACHE",AX=C01Bh"PCACHE"
  99893. --------c-2FC01B-----------------------------
  99894. INT 2F U - PrintCache v3.1 PCACHE.EXE - SET ??? FLAG
  99895. AX = C01Bh
  99896. Return: BX destroyed
  99897. SeeAlso: AX=C000h"PCACHE",AX=C01Ah"PCACHE"
  99898. --------c-2FC01C-----------------------------
  99899. INT 2F U - PrintCache v3.1 PCACHE.EXE - ???
  99900. AX = C01Ch
  99901. ???
  99902. Return: AX = ???
  99903. BX destroyed
  99904. SeeAlso: AX=C000h"PCACHE"
  99905. --------c-2FC01D-----------------------------
  99906. INT 2F U - PrintCache v3.1 PCACHE.EXE - NOP
  99907. AX = C01Dh to C01Fh
  99908. Return: BX destroyed
  99909. Program: PCACHE is the resident print spooler portion of PrintCache by
  99910. LaserTools; it may use either memory or disk space to spool output
  99911. Range: AH=C0h to AH=FFh, selected by commandline switch
  99912. SeeAlso: AX=C000h"PCACHE"
  99913. --------V-2FC020-----------------------------
  99914. INT 2F - AD-DOS - GET AND RESET VxD API STATUS
  99915. AX = C020h
  99916. Return: AL = 00h if successful
  99917. BX = VxD API Status
  99918. 0000h no error
  99919. 0001h error
  99920. 0100h neither Windows 3.X enhanced mode nor Windows/386 2.x
  99921. is running
  99922. 0200h VM API entry point not found (VxD not installed)
  99923. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  99924. Note: this call resets the VxD API Status to zero
  99925. SeeAlso: AX=1602h,AX=1607h"CALL OUT API"
  99926. Index: screen saver;AD-DOS
  99927. --------V-2FC04E-----------------------------
  99928. INT 2F - Explosiv v2.00+ - NON-TSR EXECUTING CHECK
  99929. AX = C04Eh
  99930. Return: AL = 4Fh if Explosiv is running but not memory-resident
  99931. Program: Explosiv is a shareware animated screen blanker for DOS and Windows 3
  99932. by H&G Software (Reidar Gresseth and Chris Hook)
  99933. Range: AH=C0h to AH=C9h, selected by configuration
  99934. SeeAlso: AX=C050h
  99935. Index: screen saver;Explosiv
  99936. --------V-2FC050-----------------------------
  99937. INT 2F - Explosiv v2.00+ - INSTALLATION CHECK
  99938. AX = C050h
  99939. Return: AL = 51h if installed
  99940. ---v3.0+ ---
  99941. BX = interval in clock ticks
  99942. CH = animation display color (00h mono, 01h tinge, 02h color)
  99943. CL = animation delay factor
  99944. DH = animation parameters
  99945. DL = INT 10 checking (00h on, 01h off)
  99946. SI = number of bytes available for animation code
  99947. DI = display type (00h VGA, 01h EGA, 02h CGA, 03h HGC, 04h MDA)
  99948. Program: Explosiv is a shareware animated screen blanker for DOS and Windows 3
  99949. by H&G Software (Reidar Gresseth and Chris Hook)
  99950. Range: AH=C0h to AH=C9h, selected by configuration
  99951. SeeAlso: AH=93h,AX=C000h"AD-DOS",AX=C04Eh,AX=C052h,AX=C054h"v3"
  99952. SeeAlso: INT 14/AX=AA01h
  99953. Index: screen saver;Explosiv
  99954. --------V-2FC052-----------------------------
  99955. INT 2F - Explosiv v2.00+ - UNINSTALL
  99956. AX = C052h
  99957. DX:BX = address to return to on successful uninstall
  99958. Return: at specified address if successful
  99959. AL = 53h on error
  99960. Note: specified return address must have the segment of the caller's PSP
  99961. SeeAlso: AX=C050h
  99962. Index: screen saver;Explosiv
  99963. --------V-2FC054-----------------------------
  99964. INT 2F - Explosiv v2.x - GET ANIMATION DELAY FACTOR
  99965. AX = C054h
  99966. Return: AL = delay factor
  99967. SeeAlso: AX=C057h
  99968. Index: screen saver;Explosiv
  99969. --------V-2FC054-----------------------------
  99970. INT 2F - Explosiv v3.0+ - UPDATE PARAMETERS
  99971. AX = C054h
  99972. BX = new interval in clock ticks
  99973. CH = animation display color (00h mono, 01h tinge, 02h color)
  99974. CL = animation delay factor
  99975. DH = animation parameters
  99976. DL = INT 10 checking (00h on, 01h off)
  99977. SeeAlso: AX=C050h
  99978. Index: screen saver;Explosiv
  99979. --------V-2FC055-----------------------------
  99980. INT 2F - Explosiv v2.x - SET BLANKING INTERVAL
  99981. AX = C055h
  99982. BX = new interval in clock ticks
  99983. Index: screen saver;Explosiv
  99984. --------V-2FC056-----------------------------
  99985. INT 2F - Explosiv v2.x - SET ANIMATION DISPLAY TYPE
  99986. AX = C056h
  99987. BL = animated display type (00h mono, 01h color)
  99988. SeeAlso: AX=C058h"v2.x"
  99989. Index: screen saver;Explosiv
  99990. --------V-2FC056-----------------------------
  99991. INT 2F - Explosiv v3.0+ - ENABLE/DISABLE EXPLOSIV
  99992. AX = C056h
  99993. BX = new state
  99994. 0000h disabled
  99995. 0100h enabled
  99996. 0101h enabled, but never blank
  99997. 0102h enabled, always blank
  99998. --------V-2FC057-----------------------------
  99999. INT 2F - Explosiv v2.x - SET ANIMATION DELAY FACTOR
  100000. AX = C057h
  100001. BL = delay factor
  100002. SeeAlso: AX=C054h"v2.x"
  100003. Index: screen saver;Explosiv
  100004. --------V-2FC058-----------------------------
  100005. INT 2F - Explosiv v2.x - SET ANIMATION PARAMETER
  100006. AX = C058h
  100007. BL = animation parameter
  100008. Note: the animation parameter has different interpretations for each display
  100009. SeeAlso: AX=C056h"v2.x"
  100010. Index: screen saver;Explosiv
  100011. --------V-2FC058-----------------------------
  100012. INT 2F - Explosiv v3.0+ - LOAD NEW ANIMATION DISPLAY CODE
  100013. AX = C058h
  100014. BX = file handle for file containing display code
  100015. CX = number of bytes to load
  100016. DX = offset at which animation code should be loaded
  100017. Return: AL = status (see #03033)
  100018. Note: if AL=00h-03h on return, the file will be closed
  100019. Index: screen saver;Explosiv
  100020. (Table 03033)
  100021. Values for Explosiv function status:
  100022. 00h successful
  100023. 01h code too large to available space
  100024. 02h no data read, load aborted
  100025. 03h incomplete load, default blanking display loaded instead
  100026. 58h unexpected offset in DX
  100027. --------V-2FC059-----------------------------
  100028. INT 2F - Explosiv v2.x - DISABLE EXPLOSIV
  100029. AX = C059h
  100030. Note: clears flag set by AX=C05Ah
  100031. SeeAlso: AX=C05Ah
  100032. Index: screen saver;Explosiv
  100033. --------V-2FC05A-----------------------------
  100034. INT 2F u - Explosiv v2.x - ENABLE EXPLOSIV
  100035. AX = C05Ah
  100036. BL = ???
  100037. Note: sets flag cleared by AX=C059h then stores BL
  100038. SeeAlso: AX=C059h,AX=C05Bh
  100039. Index: screen saver;Explosiv
  100040. --------V-2FC05B-----------------------------
  100041. INT 2F - Explosiv v2.x - CHANGE ANIMATION DISPLAY
  100042. AX = C05Bh
  100043. BL = animation display
  100044. Note: this function fails silently if the requested display is not in memory
  100045. SeeAlso: AX=C05Ah,AX=C05Ch
  100046. Index: screen saver;Explosiv
  100047. --------V-2FC05C-----------------------------
  100048. INT 2F - Explosiv v2.x - SET INT 10 CHECKING
  100049. AX = C05Ch
  100050. BL = new state of INT 10 checking (00h enabled, 01h disabled)
  100051. SeeAlso: AX=C05Bh
  100052. Index: screen saver;Explosiv
  100053. --------v-2FC080-----------------------------
  100054. INT 2F U - AMI IAM.SYS - INSTALL ??? CALLBACK
  100055. AX = C080h
  100056. CX:DX -> ??? callback
  100057. DI = segment of ??? buffer (first WORD copied into IAM.SYS)
  100058. Program: IAM.SYS is the Illegal Activity Monitor portion of American
  100059. Megatrends, Inc.'s PC-Defender anti-virus product
  100060. Note: also sets ??? flag
  100061. SeeAlso: AX=C081h
  100062. Format of IAM.SYS buffer:
  100063. Offset Size Description (Table 03034)
  100064. 00h BYTE ???
  100065. 01h BYTE ???
  100066. 02h N BYTEs ??? (ASCIZ strings)
  100067. --------v-2FC081-----------------------------
  100068. INT 2F U - AMI IAM.SYS - CLEAR ???
  100069. AX = C081h
  100070. Desc: clears the ??? flag that AX=C080h sets
  100071. SeeAlso: AX=C080h
  100072. --------K-2FC0AE-----------------------------
  100073. INT 2F U - HP 100LX/200LX - PUSHKEYS - INSTALLATION CHECK
  100074. AX = C0AEh
  100075. Return: AX = 4453h if installed
  100076. CX = 5259h if installed
  100077. Range: AH=C0h to AH=FFh, selected by scanning for signature
  100078. SeeAlso: AX=C000h"HP 100LX",AX=C001h"HP 100LX",AX=C0AFh"HP 100LX"
  100079. --------K-2FC0AF-----------------------------
  100080. INT 2F U - HP 100LX/200LX - PUSHKEYS - INTERNAL - GET BUFFER ADDRESS
  100081. AX = C0AFh
  100082. Return: ES:DI -> buffer (behind code)
  100083. Range: AH=C0h to AH=FFh, selected by scanning for signature with AL=AEh
  100084. SeeAlso: AX=C000h"HP 100LX",AX=C001h"HP 100LX",AX=C0AEh"HP 100LX"
  100085. --------N-2FC100-----------------------------
  100086. INT 2F U - Personal NetWare - STPIPX v1.00 - INSTALLATION CHECK
  100087. AX = C100h
  100088. Return: AL = FFh if installed
  100089. ES:SI -> signature string "STP-IPX$"
  100090. BX = version??? (0001h for v1.00)
  100091. DI corrupted
  100092. Note: AH=C1h is the default value; STPIPX probably scans a range of
  100093. multiplex numbers to find a free one, as LSL does
  100094. SeeAlso: AX=C000h"LSL",AX=C101h
  100095. --------N-2FC101-----------------------------
  100096. INT 2F U - Personal NetWare - STPIPX v1.00 - UNINSTALL
  100097. AX = C101h
  100098. Return: AL = status???
  100099. BX corrupted
  100100. SeeAlso: AX=C101h
  100101. --------N-2FC205-----------------------------
  100102. INT 2F U - LapLink RemoteAccess (LLRA) - Redirector - ???
  100103. AX = C205h
  100104. details not yet available
  100105. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  100106. SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C2F0h"LapLink"
  100107. SeeAlso: AX=C2F1h"LapLink",AX=C301h"LapLink"
  100108. --------N-2FC2F0-----------------------------
  100109. INT 2F U - LapLink RemoteAccess (LLRA) - Redirector - ???
  100110. AX = C2F0h
  100111. details not yet available
  100112. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  100113. SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C205h"LapLink"
  100114. SeeAlso: AX=C2F1h"LapLink",AX=C301h"LapLink"
  100115. --------N-2FC2F1-----------------------------
  100116. INT 2F U - LapLink RemoteAccess (LLRA) - Redirector - ???
  100117. AX = C2F1h
  100118. details not yet available
  100119. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  100120. SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C205h"LapLink"
  100121. SeeAlso: AX=C2F0h"LapLink",AX=C301h"LapLink"
  100122. --------d-2FC300-----------------------------
  100123. INT 2F - SETWPR.COM - INSTALLATION CHECK
  100124. AX = C300h
  100125. Return: AL = FFh if installed
  100126. Program: SETWPR is a hard-disk write-protection TSR by Jaroslaw Rafa
  100127. SeeAlso: AX=C302h"SETWPR"
  100128. --------k-2FC300DX0000-----------------------
  100129. INT 2F U - SpaceManager - INSTALLATION CHECK
  100130. AX = C300h
  100131. DX = 0000h
  100132. Return: AL = FFh if any SpaceManager programs installed
  100133. BX = 6F73h
  100134. CX = 6F68h
  100135. Program: SpaceManager is an enhancement for MS-DOS DoubleSpace by Vertisoft
  100136. Systems, Inc.
  100137. Range: AH=C3h to AH=FFh, selected by scanning for first free multiplex number
  100138. SeeAlso: AX=C300h/BX=4F53h
  100139. --------k-2FC300BX4F53-----------------------
  100140. INT 2F U - SpaceManager - INSTALLATION VERIFICATION
  100141. AX = C300h
  100142. BX = 4F53h ('OS')
  100143. CX = 4F48h ('OH')
  100144. DX = program identifier (see #03035) or 0666h for any SpaceManager prog
  100145. Return: AL = FFh if BX/CX as specified and specified program installed
  100146. BX = 6F73h ('os')
  100147. CX = 6F68h ('oh')
  100148. Range: AH=C3h to AH=FFh, selected by scanning for first free multiplex number
  100149. Note: this call is chained if BX,CX, or DX are not as specified above
  100150. SeeAlso: AX=C300h/DX=0000h
  100151. (Table 03035)
  100152. Values for SpaceManager program identifier:
  100153. 9000h SMOUNT (SuperMount)
  100154. 9001h SELECTC (SelectCompress)
  100155. 9002h SUPERX (SuperExchange)
  100156. 9003h FORTUNE (FortuneTeller)
  100157. --------k-2FC301-----------------------------
  100158. INT 2F U - SpaceManager - ???
  100159. AX = C301h
  100160. DX = program identifier (9000h,9001h,9003h) (see #03035)
  100161. ???
  100162. Return: ???
  100163. --------N-2FC301-----------------------------
  100164. INT 2F U - LapLink RemoteAccess (LLRA) - Compression - ???
  100165. AX = C301h
  100166. details not yet available
  100167. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  100168. SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C205h"LapLink"
  100169. SeeAlso: AX=C2F0h"LapLink",AX=C3F0h"LapLink",AX=C3F1h"LapLink"
  100170. --------k-2FC302-----------------------------
  100171. INT 2F U - SpaceManager - ENABLE PROGRAM
  100172. AX = C302h
  100173. DX = program identifier (9000h,9001h,9003h) (see #03035)
  100174. Return: AX destroyed
  100175. SeeAlso: AX=C303h,AX=C306h
  100176. --------d-2FC302-----------------------------
  100177. INT 2F - SETWPR.COM - SET WRITE-PROTECTION STATE
  100178. AX = C302h
  100179. BL = new state
  100180. 00h disk may be written
  100181. 01h disk write-protected
  100182. Return: AL = FFh if installed
  100183. Program: SETWPR is a hard-disk write-protection TSR by Jaroslaw Rafa
  100184. SeeAlso: AX=C300h"SETWPR"
  100185. --------k-2FC303-----------------------------
  100186. INT 2F U - SpaceManager - DISABLE PROGRAM
  100187. AX = C303h
  100188. DX = program identifier (9000h,9001h,9003h) (see #03035)
  100189. Return: AX destroyed
  100190. SeeAlso: AX=C302h,AX=C306h
  100191. --------k-2FC304-----------------------------
  100192. INT 2F U - SpaceManager - GET PER-DRIVE ENABLEMENT TABLE
  100193. AX = C304h
  100194. DX = program identifier (9000h,9001h,9003h) (see #03035)
  100195. Return: ES:BX -> 26-byte drive table (00h disabled for drive, 01h enabled)
  100196. AX destroyed
  100197. --------k-2FC305DX9003-----------------------
  100198. INT 2F U - SpaceManager - FORTUNE.EXE - NOP
  100199. AX = C305h
  100200. DX = 9003h
  100201. Return: AX destroyed
  100202. --------k-2FC305-----------------------------
  100203. INT 2F U - SpaceManager - ???
  100204. AX = C305h
  100205. DX = program identifier (9000h,9001h) (see #03035)
  100206. ???
  100207. Return: ???
  100208. --------k-2FC306-----------------------------
  100209. INT 2F U - SpaceManager - CHECK WHETHER PROGRAM ENABLED
  100210. AX = C306h
  100211. DX = program identifier (9000h,9001h,9003h) (see #03035)
  100212. Return: AL = current state (00h disabled, FAh enabled)
  100213. AH destroyed
  100214. SeeAlso: AX=C302h,AX=C303h
  100215. --------k-2FC307DX9001-----------------------
  100216. INT 2F U - SpaceManager - SELECTC - ???
  100217. AX = C307h
  100218. DX = 9001h
  100219. BX = ???
  100220. CX = ???
  100221. ???
  100222. Return: ???
  100223. --------k-2FC308DX9001-----------------------
  100224. INT 2F U - SpaceManager - SELECTC - ???
  100225. AX = C308h
  100226. DX = 9001h
  100227. ???
  100228. Return: ???
  100229. --------N-2FC3F0-----------------------------
  100230. INT 2F U - LapLink RemoteAccess (LLRA) - Compression - ???
  100231. AX = C3F0h
  100232. details not yet available
  100233. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  100234. SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C205h"LapLink"
  100235. SeeAlso: AX=C2F0h"LapLink",AX=C301h"LapLink",AX=C3F1h"LapLink"
  100236. --------N-2FC3F1-----------------------------
  100237. INT 2F U - LapLink RemoteAccess (LLRA) - Compression - ???
  100238. AX = C3F1h
  100239. details not yet available
  100240. Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
  100241. SeeAlso: AX=C000h"LapLink",AX=C002h"LapLink",AX=C205h"LapLink"
  100242. SeeAlso: AX=C2F0h"LapLink",AX=C301h"LapLink",AX=C3F0h"LapLink"
  100243. --------N-2FC500-----------------------------
  100244. INT 2F - PC-DOS Econet v1.05 - INSTALLATION CHECK
  100245. AX = C500h
  100246. Return: AL = status
  100247. 00h not installed, OK to install
  100248. 01h not installed, can't install
  100249. FFh installed
  100250. Note: the interrupt-enable state will be preserved, but interrupts may be
  100251. enabled during processing of this function
  100252. SeeAlso: AX=C501h,AX=C508h
  100253. --------N-2FC501-----------------------------
  100254. INT 2F - PC-DOS Econet v1.05 - RESET BOARD AND DRIVER
  100255. AX = C501h
  100256. Return: AX = return code (see #03037)
  100257. Desc: reset both the network board and the driver software
  100258. Notes: use this function with caution, as it will affect any other resident
  100259. software using the network board
  100260. the interrupt-enable state will be preserved, but interrupts may be
  100261. enabled during processing of this function
  100262. SeeAlso: AX=C500h
  100263. --------N-2FC502-----------------------------
  100264. INT 2F - PC-DOS Econet v1.05 - PERFORM NETWORK OPERATION
  100265. AX = C502h
  100266. DS:DX -> control block (see #03036)
  100267. Return: AX = return code (see #03037) (same as returned in control block)
  100268. Note: the interrupt-enable state will be preserved, but interrupts may be
  100269. enabled during processing of this function
  100270. SeeAlso: AX=C500h
  100271. Format of Econet control block:
  100272. Offset Size Description (Table 03036)
  100273. 00h DWORD -> command block (see #03038)
  100274. 04h WORD length of transmit data block
  100275. 06h DWORD -> transmit data block
  100276. 0Ah WORD length of reply block (set to 0000h prior to call)
  100277. 0Ch DWORD -> reply block
  100278. 10h WORD return code (set to 0000h prior to call) (see #03037)
  100279. 12h DWORD reserved for Econet use
  100280. (Table 03037)
  100281. Values for Econet return code:
  100282. 0000h successful
  100283. 0001h bad command in command block
  100284. 0002h no handles left
  100285. 0003h bad handle
  100286. 0004h bad argument in command
  100287. 0005h buffer too small
  100288. 0006h kill condition failed
  100289. 0007h control block in use
  100290. 007Fh command aborted
  100291. 01xxh retryable board error XXh
  100292. 02xxh fatal board error XXh
  100293. 0300h invalid subfunction number in AL
  100294. 0301h timeout
  100295. 03xxh other driver errors
  100296. SeeAlso: #03036
  100297. Format of Econet command block:
  100298. Offset Size Description (Table 03038)
  100299. 00h BYTE command code (see #03039)
  100300. ---command 00h---
  100301. 01h BYTE direction (00h = read initialization data, 01h = set init data)
  100302. 02h WORD "TxCB" transmit control block size
  100303. 04h WORD "RxCB" receive control block size
  100304. Notes: TxCB and RxCB are always the same size in v1.05,
  100305. permitting any CB to be used for either receive
  100306. or transmit
  100307. this command should not be used by applications to
  100308. set the buffer sizes
  100309. 06h 6 BYTEs padding (0)
  100310. ---command 01h---
  100311. 01h BYTE port number (00h = receive on all ports)
  100312. if the RxCB is opened for RPC, the port number indicates the
  100313. allowable RPC (see #03040)
  100314. 02h WORD station number (FEFFh = broadcast)
  100315. 04h BYTE RPC flags
  100316. bit 7: CB is open for RPCs only
  100317. bit 6: restrict to RPC number given in next field
  100318. 05h WORD RPC number
  100319. 07h BYTE timeout in 1/2-second units (00h = never)
  100320. if a timeout occurs, the RxCB can still receive data, and may
  100321. generate another event after the timeout unless it is
  100322. explicitly killed
  100323. 08h 4 BYTEs padding (0)
  100324. ---command 02h---
  100325. 01h BYTE control byte
  100326. 02h BYTE port number
  100327. 03h WORD station number
  100328. 05h BYTE number of retries
  100329. 06h WORD length of data to be sent (bits 14-0), 0000h allowed
  100330. if bit 15 is set, no data will be transferred, but this field
  100331. will be updated (needed for peeking)
  100332. 08h DWORD -> destination address on remote machine
  100333. ---command 03h---
  100334. 01h BYTE Control Block Handle
  100335. FEh first filled-in RxCB
  100336. FFh first TxCB which has been sent
  100337. 02h 10 BYTEs padding (0)
  100338. ---command 04h---
  100339. 01h BYTE Control Block Handle
  100340. 02h BYTE kill condition
  100341. 00h always
  100342. 01h kill only if bit7 of control byte is clear
  100343. 81h kill only if bit7 of control byte is set
  100344. 03h 9 BYTEs padding (0)
  100345. Notes: control blocks are not freed until explicitly killed
  100346. because all TxCBs for a given destination are stored
  100347. on a separate subchain, it is necessary to kill all
  100348. failed TxCBs to a given destination before any new
  100349. ones are opened to that destination
  100350. ---command 06h---
  100351. 01h BYTE Control Block Handle
  100352. 02h WORD starting byte within CB to read
  100353. 04h WORD number of bytes
  100354. if 0000h or greater than remaining bytes in CB, return all
  100355. bytes from starting byte to end of CB
  100356. 06h 6 BYTEs padding (0)
  100357. ---command 07h---
  100358. 01h BYTE subfunction
  100359. 00h-0Fh get/set M/C type (bit N=1 indicates to set byte N)
  100360. four data bytes
  100361. 10h get station number
  100362. 11h set station number
  100363. 12h get Tx pause in 5ms units (default 20)
  100364. 13h set Tx pause
  100365. 14h get software version numbers
  100366. 16h get event enable mask
  100367. 17h set event enable mask
  100368. 18h get number of non-volatile bytes available
  100369. 80h+2N get non-volatile byte N
  100370. 81h+2N set non-volatile byte N
  100371. 02h var new data
  100372. Note: all command blocks should be padded to twelve bytes with zeros if
  100373. needed
  100374. SeeAlso: #03036
  100375. (Table 03039)
  100376. Values for Econet command code:
  100377. 00h initialize
  100378. 01h open receive
  100379. 02h open transmit
  100380. 03h poll
  100381. 04h kill
  100382. 06h read
  100383. 07h get/set system parameters
  100384. SeeAlso: #03038
  100385. (Table 03040)
  100386. Values for Econet RPC type:
  100387. 00h all
  100388. 81h peek
  100389. 82h poke
  100390. 83h remote JSR
  100391. 84h remote procedure call
  100392. 85h OS procedure
  100393. 86h Halt
  100394. 87h Continue
  100395. SeeAlso: #03038
  100396. Format of Econet Reply Block (command 00h):
  100397. Offset Size Description (Table 03041)
  100398. 00h WORD TxCB size (default is 0500h, the maximum Econet packet length)
  100399. 02h WORD RxCB size
  100400. 04h BYTE number of TxCBs allocated
  100401. 05h BYTE number of RxCBs allocated
  100402. SeeAlso: #03036,#03042,#03044
  100403. Format of Econet Reply Block (commands 01h,02h):
  100404. Offset Size Description (Table 03042)
  100405. 00h BYTE control block handle
  100406. SeeAlso: #03036,#03041,#03045
  100407. Format of Econet Reply Block (command 03h):
  100408. Offset Size Description (Table 03043)
  100409. 00h BYTE CB number (when wildcard specified for poll)
  100410. 01h BYTE control
  100411. (RxCB) 00h until received, then Sent Control byte
  100412. (TxCB) transmit status
  100413. bit 7: transmission pending
  100414. bit 6: transmission failed
  100415. bits 3-0: error number
  100416. 02h BYTE Port number
  100417. 03h WORD station number
  100418. 05h WORD length
  100419. 07h WORD 0000h
  100420. SeeAlso: #03036,#03041,#03044
  100421. Format of Econet Reply Block (command 06h):
  100422. Offset Size Description (Table 03044)
  100423. 00h N BYTEs data read from network
  100424. SeeAlso: #03036,#03043,#03045
  100425. Format of Econet Reply Block (command 07h):
  100426. Offset Size Description (Table 03045)
  100427. 00h N BYTEs returned information
  100428. SeeAlso: #03036,#03044
  100429. --------N-2FC503-----------------------------
  100430. INT 2F - PC-DOS Econet v1.05 - ADD EVENT HANDLER
  100431. AX = C503h
  100432. DS:DX -> event handler (see #03046)
  100433. Return: AX = return code (see #03037)
  100434. Note: the interrupt-enable state will be preserved, but interrupts may be
  100435. enabled during processing of this function
  100436. SeeAlso: AX=C500h,AX=C504h,AX=C505h,AX=C508h
  100437. Format of Econet event handler:
  100438. Offset Size Description (Table 03046)
  100439. 00h DWORD -> next handler's code (at offset 8, filled in by Econet)
  100440. 04h DWORD -> previous event handler (filled in by Econet)
  100441. 08h var entry point (executable code called on event) (see #03047)
  100442. (Table 03047)
  100443. Values Econet event handler is called with:
  100444. AL = event number
  100445. AH = timeout flag (01h if timeout, else 00h)
  100446. Return: all registers preserved
  100447. if event trapped by this handler, issue RETF
  100448. if event not trapped, jump to address stored at offset 0
  100449. SeeAlso: #03046
  100450. --------N-2FC504-----------------------------
  100451. INT 2F - PC-DOS Econet v1.05 - REMOVE EVENT HANDLER
  100452. AX = C504h
  100453. DS:DX -> event handler
  100454. Return: AX = return code (see #03037)
  100455. Note: the interrupt-enable state will be preserved, but interrupts may be
  100456. enabled during processing of this function
  100457. SeeAlso: AX=C500h,AX=C503h,AX=C506h,AX=C508h
  100458. --------N-2FC505-----------------------------
  100459. INT 2F - PC-DOS Econet v1.05 - SET DEFAULT EVENT ACTION
  100460. AX = C505h
  100461. DL = new default action
  100462. 00h disable event handling (ignore incoming events)
  100463. 01h enable (call event handler chain)
  100464. 02h store until enabled or disabled (default)
  100465. Return: AX = return code (see #03037)
  100466. Note: the interrupt-enable state will be preserved, but interrupts may be
  100467. enabled during processing of this function
  100468. SeeAlso: AX=C500h,AX=C503h,AX=C506h,AX=C508h
  100469. --------N-2FC506-----------------------------
  100470. INT 2F - PC-DOS Econet v1.05 - SET INDIVIDUAL EVENT ACTION
  100471. AX = C506h
  100472. DH = event number
  100473. DL = new default action
  100474. 00h disable event handling (ignore incoming events)
  100475. 01h enable (call event handler chain)
  100476. 02h store until enabled or disabled (default)
  100477. Return: AX = return code (see #03037)
  100478. Note: the interrupt-enable state will be preserved, but interrupts may be
  100479. enabled during processing of this function
  100480. SeeAlso: AX=C500h,AX=C504h,AX=C505h,AX=C507h
  100481. --------N-2FC507-----------------------------
  100482. INT 2F - PC-DOS Econet v1.05 - TEST/CLEAR EVENT STATUS
  100483. AX = C507h
  100484. DH = event number (FFh = first event in queue)
  100485. DL = disposition (00h test only, 01h test and clear)
  100486. Return: AX = return code (see #03037)
  100487. DH = event number if one is pending, 00h if none
  100488. Note: the interrupt-enable state will be preserved, but interrupts may be
  100489. enabled during processing of this function
  100490. SeeAlso: AX=C500h,AX=C503h,AX=C506h,AX=C508h
  100491. --------N-2FC508-----------------------------
  100492. INT 2F - PC-DOS Econet v1.05 - ENABLE/DISABLE EVENT SCHEDULER
  100493. AX = C508h
  100494. DL = new state of scheduler (01h enabled, 02h disabled)
  100495. Return: AX = return code (see #03037)
  100496. DL = previous state
  100497. Notes: the interrupt-enable state will be preserved, but interrupts may be
  100498. enabled during processing of this function
  100499. while the scheduler is disabled, all events are queued until the
  100500. scheduler is re-enabled
  100501. SeeAlso: AX=C500h,AX=C503h,AX=C504h,AX=C506h,AX=C507h
  100502. --------d-2FC64CBX5553-----------------------
  100503. INT 2F U - Smart Prompt - INSTALLATION CHECK
  100504. AX = C64Ch
  100505. BX = 5553h
  100506. Return: AX = 4CC6h if installed
  100507. BX = 5355h if installed
  100508. Program: Smart Prompt (SMARTPMT) is a freeware TSR by Steve Gibson which
  100509. forces an immediate flush of SmartDrive's (and compatible caches')
  100510. buffers on returning to the DOS prompt
  100511. --------V-2FC700CX434C-----------------------
  100512. INT 2F u - COLAP - INSTALLATION CHECK
  100513. AX = C700h
  100514. CX = 434Ch "CL"
  100515. Return: AL = FFh if installed
  100516. Program: colap.com is a freeware TSR by Eric Meyer which controls contrast
  100517. and brightness of color laptops by changing the VGA palette colors;
  100518. for Toshiba laptops there are more hotkeys for shutting off display
  100519. and harddisk.
  100520. --------v-2FC900BP0000-----------------------
  100521. INT 2F U - ThunderByte??? - INSTALLATION CHECK
  100522. AX = C900h
  100523. BP = 0000h
  100524. Return: AL = FFh if installed
  100525. BP >= 0014h
  100526. Note: called by TBSCANX
  100527. SeeAlso: AX=C987h,AX=CA00h
  100528. --------v-2FC987-----------------------------
  100529. INT 2F U - ThunderByte??? - DISINFECT FILE???
  100530. AX = C987h
  100531. BX:DX -> filename
  100532. BX:CX -> virus name
  100533. Return: AX = status
  100534. 0000h successful???
  100535. Note: called by TBSCANX
  100536. SeeAlso: AX=CA00h
  100537. --------v-2FC9FD-----------------------------
  100538. INT 2F - ThunderByte TBLOG - WRITE STRING TO LOG
  100539. AX = C9FDh
  100540. DS:SI -> ASCIZ string (max 110 chars)
  100541. Return: AH = 00h
  100542. AL = last character in string
  100543. CX = number of unused characters in string
  100544. SI,DI destroyed
  100545. Notes: The string can also be terminated with a '%'-character.
  100546. This function is never called within ThunderBYTE Anti-Virus.
  100547. SeeAlso: AX=C900h
  100548. --------r-2FC9FF-----------------------------
  100549. INT 2F C - StackMan - INSTALLATION BROADCAST
  100550. AX = C9FFh
  100551. BL = BCD version number
  100552. CX = number of stacks
  100553. DX = stack size in bytes
  100554. Program: StackMan is a freeware stack manager by Franz Veldman of ESaSS B.V.
  100555. which functions as a replacement for the DOS STACK= command as well
  100556. as permitting multiple TSRs to share a pool of stack space
  100557. InstallCheck: test for the string "STACKXXX" at offset 0Ah from the INT B4
  100558. handler
  100559. Note: called by StackMan when it goes resident to inform interested TSRs that
  100560. its API is available
  100561. SeeAlso: INT B4"StackMan",INT B5"StackMan"
  100562. Index: installation check;STACKMAN|broadcasts;STACKMAN installation
  100563. --------F-2FCA-------------------------------
  100564. INT 2F - FAXPLUS - FAX TSR
  100565. AH = CAh
  100566. ???
  100567. Return: ???
  100568. Program: FAXTSR is a resident FAX send/receive module for FAXPLUS by Frans
  100569. Veldman
  100570. SeeAlso: AH=2Ah"Gammafax"
  100571. --------v-2FCA00BX5442-----------------------
  100572. INT 2F - TBSCANX - INSTALLATION CHECK
  100573. AX = CA00h
  100574. BX = 5442h ('TB')
  100575. Return: AL = state
  100576. 00h not installed
  100577. FFh installed
  100578. BX = 7462h ('tb') if BX was 5442h on entry
  100579. Program: TBSCANX is a resident virus scanning module by Frans Veldman.
  100580. Notes: programs may perform virus checks on themselves, other program files,
  100581. or their data files by invoking the TBSCANX API.
  100582. current versions of TBScanX don't actually check the value of BX
  100583. SeeAlso: AX=4653h/CX=0002h,AX=4653h/CX=0007h,AX=C900h
  100584. --------v-2FCA01-----------------------------
  100585. INT 2F - TBSCANX - GET STATUS
  100586. AX = CA01h
  100587. Return: AH = BCD version number (v2.2+)
  100588. CAh for versions before 2.2
  100589. AL = state (00h = disabled, 01h = enabled)
  100590. CX = number of signatures which will be searched
  100591. ---v2.0---
  100592. BX = EMS handle, 0000h if not using EMS
  100593. ---v2.3+---
  100594. BX = segment of swap area, 0000h if not swapped
  100595. DX = EMS or XMS handle (XMS handle if BX=0000h), FFFFh if not using EMS
  100596. SeeAlso: AX=CA02h
  100597. --------v-2FCA02-----------------------------
  100598. INT 2F - TBSCANX - SET STATE
  100599. AX = CA02h
  100600. BL = new state (00h = disabled, 01h = enabled)
  100601. SeeAlso: AX=CA01h
  100602. --------v-2FCA03-----------------------------
  100603. INT 2F - TBSCANX - SCAN BUFFER
  100604. AX = CA03h
  100605. CX = size of buffer
  100606. DS:DX -> buffer containing data to scan
  100607. Return: CF clear if no virus signatures found
  100608. BX,ES destroyed
  100609. CF set if signature found
  100610. ES:BX -> ASCIZ virus name (v2.3+)
  100611. DS:DX -> ASCIZ virus name (v2.0)
  100612. AX,CX,DX destroyed (v2.3+)
  100613. all other registers except CS:IP and SS:SP destroyed (v2.0)
  100614. SeeAlso: AX=CA04h
  100615. --------v-2FCA04-----------------------------
  100616. INT 2F - TBSCANX - SCAN FILE
  100617. AX = CA04h
  100618. DS:DX -> filename
  100619. Return: CF clear if no virus signatures found
  100620. BX,SI,DI,ES destroyed
  100621. CF set if signature found
  100622. ES:BX -> ASCIZ virus name
  100623. AX,CX,DX destroyed
  100624. Note: this function requires at least 4K free memory
  100625. SeeAlso: AX=CA03h
  100626. --------U-2FCAFEBX0000-----------------------
  100627. INT 2F U - THELP v3.0 - INSTALLATION CHECK
  100628. AX = CAFEh
  100629. BX = 0000h
  100630. Return: BX = segment of resident code if installed
  100631. 0000h if not installed
  100632. SeeAlso: AX=5453h,INT 2D"AMIS"
  100633. --------F-2FCB00-----------------------------
  100634. INT 2F - Communicating Applications Specification - INSTALLATION CHECK
  100635. AX = CB00h
  100636. Return: AL = status
  100637. 00h not installed, OK to install
  100638. 01h not installed, not OK to install
  100639. FFh installed
  100640. Note: AH = CBh is the default identifier, but may be reconfigured
  100641. SeeAlso: AH=2Ah,AX=8000h"FaxBIOS",AX=CB0Eh,AX=CBDCh
  100642. --------F-2FCB00BX4D53-----------------------
  100643. INT 2F - METZ XpressFax CASMGR - INSTALLATION CHECK
  100644. AX = CB00h
  100645. BX = 4D53h ('MS')
  100646. CX = 4949h ('II')
  100647. Return: AL = status
  100648. 00h not installed, OK to install
  100649. 01h not installed, not OK to install
  100650. FFh installed
  100651. BX = 6D73h ('ms')
  100652. CX = 6969h ('ii')
  100653. Note: this function is equivalent to the standard CASMGR installation check,
  100654. but uses the additional magic values to identify which CAS is
  100655. installed
  100656. SeeAlso: AH=2Ah,AX=8000h"FaxBIOS",AX=C000h/BX=444Bh,AX=CB0Eh,AX=CB16h
  100657. --------F-2FCB01-----------------------------
  100658. INT 2F - Communicating Applications Specification - SUBMIT A TASK
  100659. AX = CB01h
  100660. DS:DX -> ASCIZ name of task control file
  100661. Return: AX >= 0: event handle
  100662. AX < 0: two's complement of error code (see #03048)
  100663. Note: files needed for an event must be kept until task is complete or error
  100664. SeeAlso: AX=CB0Bh,AX=CB15h
  100665. (Table 03048)
  100666. Values for CAS error code:
  100667. (AH = class, AL = subcode, value passed back is 2's complement)
  100668. Class 00h --- FAX warnings
  100669. Subcode 00h no error
  100670. 02h bad scanline count
  100671. 03h page sent with errors, could not retransmit
  100672. 04h received data lost
  100673. 05h invalid or missing logo file
  100674. 06h filename does not match nonstandard format (NSF) header
  100675. 07h file size does not match NSF header
  100676. Class 01h --- DOS warnings (data was sent)
  100677. Subcode 01h invalid function
  100678. 05h access denied
  100679. 06h invalid handle
  100680. others see #01680 at INT 21/AH=59h/BX=0000h
  100681. Class 02h --- fatal errors (data not sent)
  100682. Subcode 00h multiplex handler failed
  100683. 01h unknown command
  100684. 02h bad event handle
  100685. 03h FIND NEXT attempted before FIND FIRST
  100686. 04h no more events
  100687. 07h invalid queue type
  100688. 08h bad control file
  100689. 09h communication board busy
  100690. 0Ah invalid command parameter
  100691. 0Bh can't uninstall resident code
  100692. 0Ch file exists
  100693. 80h unknown task type
  100694. 81h bad phone number
  100695. 82h bad .PCX file header
  100696. 83h unexpected EOF
  100697. 84h unexpected disconnect
  100698. 85h too many dialing retries
  100699. 86h no file specified for send
  100700. 87h communication board timeout
  100701. 88h received too many pages (>1023) of data
  100702. 89h manual connect initiated too long ago
  100703. 8Ah hardware command set error
  100704. 8Bh bad NonStandard Format (NSF) header file
  100705. Class 03h --- fatal DOS errors
  100706. Subcode 02h file not found
  100707. 03h path not found
  100708. others see #01680 at INT 21/AH=59h/BX=0000h
  100709. Class 04h --- FAX errors
  100710. Subcode 01h remote unit not Group 3 compatible
  100711. 02h remote unit did not send capabilities
  100712. 03h other FAX machine incompatible
  100713. 04h other FAX incapable of file transfers
  100714. 05h exceeded retrain or FAX resend limit
  100715. 06h line noise or failure to agree on bit rate
  100716. 07h remote disconnected after receiving data
  100717. 08h no response from remote after sending data
  100718. 09h remote's capabilities incompatible
  100719. 0Ah no dial tone (v1.2+)
  100720. 0Bh invalid response from remote unit after sending data
  100721. 0Dh phone line dead or remote unit disconnected
  100722. 0Eh timeout while waiting for secondary dial tone (v1.2+)
  100723. 11h invalid command from remote after receiving data
  100724. 15h tried to receive from incompatible hardware
  100725. 5Ch received data overflowed input buffer
  100726. 5Dh remote unexpectedly stopped sending data
  100727. 5Eh other FAX machine jammed (no data sent)
  100728. 5Fh remote took too long to send fax scan line
  100729. 63h can't get through to remote unit
  100730. 64h user canceled event
  100731. Class 05h --- application-specific (v1.2+)
  100732. ---Intel FAXPOP.EXE
  100733. Subcode 00h tried to send while in graphics mode
  100734. 01h insufficient disk space
  100735. 02h internal buffer overflow
  100736. Class 06h --- CAS implementation-specific (v1.2+)
  100737. --------F-2FCB02-----------------------------
  100738. INT 2F - Communicating Applications Specification - ABORT CURRENT EVENT
  100739. AX = CB02h
  100740. Return: AX >= 0: event handle of aborted event
  100741. AX < 0: error code (see #03048)
  100742. Note: termination could take up to 30 seconds
  100743. SeeAlso: AX=CB08h,AX=CB10h
  100744. --------F-2FCB05-----------------------------
  100745. INT 2F - Communicating Applications Specification - FIND FIRST QUEUE ENTRY
  100746. AX = CB05h
  100747. CX = status of events to find
  100748. 0000h successful completion
  100749. 0001h waiting to be processed
  100750. 0002h number has been dialed
  100751. 0003h connection established, sending
  100752. 0004h connection established, receiving
  100753. 0005h event aborted
  100754. FFFFh find any event, regardless of status
  100755. other negative values, match error code
  100756. DH = direction
  100757. 00h chronological order, earliest to latest
  100758. 01h reverse chronological order, latest to earliest
  100759. DL = queue to search
  100760. 00h task queue
  100761. 01h receive queue
  100762. 02h log queue
  100763. Return: AX = 0000h successful
  100764. BX = event handle for found event
  100765. AX < 0 error code (see #03048)
  100766. SeeAlso: AX=CB06h,AX=CB07h
  100767. --------F-2FCB06-----------------------------
  100768. INT 2F - Communicating Applications Specification - FIND NEXT QUEUE ENTRY
  100769. AX = CB06h
  100770. DL = queue to search
  100771. 00h task queue
  100772. 01h receive queue
  100773. 02h log queue
  100774. Return: AX = 0000h successful
  100775. BX = event handle for found event
  100776. AX < 0 error code (see #03048)
  100777. Note: direction of search is same as preceding FIND FIRST call
  100778. SeeAlso: AX=CB05h
  100779. --------F-2FCB07-----------------------------
  100780. INT 2F - Communicating Applications Specification - OPEN FILE
  100781. AX = CB07h
  100782. BX = event handle from find (AL=05h,06h) or submit task (AL=01h)
  100783. CX = receive file number (ignored for task queue and log queue)
  100784. 0000h open receive control file
  100785. N open Nth received data file
  100786. DL = queue
  100787. 00h task queue
  100788. 01h receive queue control file or received file, as given by CX
  100789. 02h log queue
  100790. 03h group file in task queue (v1.2+)
  100791. 04h group file in log queue (v1.2+)
  100792. Return: AX = 0000h successful
  100793. BX = DOS file handle for requested file
  100794. AX < 0 error code (see #03048)
  100795. Note: the returned file handle has been opened in read-only mode and should
  100796. be closed with INT 21/AH=3Eh after use
  100797. SeeAlso: AX=CB01h,AX=CB05h,AX=CB14h
  100798. --------F-2FCB08-----------------------------
  100799. INT 2F - Communicating Applications Specification - DELETE FILE
  100800. AX = CB08h
  100801. BX = event handle
  100802. CX = receive file number
  100803. 0000h delete ALL received files and receive control file
  100804. N delete Nth received file
  100805. DL = queue
  100806. 00h delete control file in task queue and corresponding group file
  100807. if it exists
  100808. 01h delete file in receive queue, as given by CX
  100809. 02h delete control file in log queue (individual deletions not
  100810. recommended, to maintain integrity of log) and corresponding
  100811. group file if it exists
  100812. Return: AX = 0000h successful
  100813. AX < 0 error code (see #03048)
  100814. SeeAlso: AX=CB02h,AX=CB09h
  100815. --------F-2FCB09-----------------------------
  100816. INT 2F - Communicating Applications Specification - DELETE ALL FILES IN Q
  100817. AX = CB09h
  100818. DL = queue
  100819. 00h delete all control files in task queue, including all group
  100820. files
  100821. 01h delete all files in receive queue
  100822. 02h delete all control files in log queue, including all group
  100823. files
  100824. Return: AX = 0000h successful
  100825. AX < 0 error code (see #03048)
  100826. SeeAlso: AX=CB08h
  100827. --------F-2FCB0A-----------------------------
  100828. INT 2F - Communicating Applications Specification - GET EVENT DATE
  100829. AX = CB0Ah
  100830. BX = event handle
  100831. DL = queue
  100832. 00h task queue
  100833. 01h receive queue
  100834. 02h log queue
  100835. Return: AX = 0000h successful
  100836. CX = year
  100837. DH = month
  100838. DL = day
  100839. AX < 0 error code (see #03048)
  100840. SeeAlso: AX=CB0Bh,AX=CB0Ch
  100841. --------F-2FCB0B-----------------------------
  100842. INT 2F - Communicating Applications Specification - SET TASK DATE
  100843. AX = CB0Bh
  100844. BX = event handle (task event only)
  100845. CX = year
  100846. DH = month
  100847. DL = day
  100848. Return: AX = 0000h successful
  100849. AX < 0 error code (see #03048)
  100850. Note: setting a task's date and time to before the current date and time
  100851. causes it to execute immediately
  100852. SeeAlso: AX=CB01h,AX=CB0Ah,AX=CB0Dh
  100853. --------F-2FCB0C-----------------------------
  100854. INT 2F - Communicating Applications Specification - GET EVENT TIME
  100855. AX = CB0Ch
  100856. BX = event handle
  100857. DL = queue
  100858. 00h task queue
  100859. 01h receive queue
  100860. 02h log queue
  100861. Return: AX = 0000h successful
  100862. CH = hour
  100863. CL = minute
  100864. DH = second
  100865. DL = 00h
  100866. AX < 0 error code (see #03048)
  100867. SeeAlso: AX=CB0Ah,AX=CB0Dh
  100868. --------F-2FCB0D-----------------------------
  100869. INT 2F - Communicating Applications Specification - SET TASK TIME
  100870. AX = CB0Dh
  100871. BX = event handle (task events only)
  100872. CH = hour
  100873. CL = minute
  100874. DH = second
  100875. DL unused
  100876. Return: AX = 0000h successful
  100877. AX < 0 error code (see #03048)
  100878. Note: setting a task's date and time to before the current date and time
  100879. causes it to execute immediately
  100880. SeeAlso: AX=CB0Bh,AX=CB0Ch,AX=CB10h
  100881. --------F-2FCB0E-----------------------------
  100882. INT 2F - Communicating Applications Specification - GET EXTERNAL DATA BLOCK
  100883. AX = CB0Eh
  100884. DS:DX -> 256-byte buffer for external data block (see #03049)
  100885. Return: AX = 0000h successful
  100886. DS:DX buffer filled
  100887. AX < 0 error code (see #03048)
  100888. Format of CAS external data block:
  100889. Offset Size Description (Table 03049)
  100890. 00h BYTE CAS major version
  100891. 01h BYTE CAS minor version
  100892. 02h 68 BYTEs ASCIZ path to directory containing CAS software, ends in slash
  100893. 46h 13 BYTEs ASCIZ name of current phonebook (in CAS directory)
  100894. 53h 13 BYTEs ASCIZ name of current logo file (in CAS directory)
  100895. 60h 32 BYTEs ASCIZ default sender name
  100896. 80h 21 BYTEs ASCIZ CCITT identification of fax device
  100897. 95h 107 BYTEs reserved
  100898. --------F-2FCB0F-----------------------------
  100899. INT 2F - Communicating Applications Specification - GET/SET AUTORECEIVE
  100900. AX = CB0Fh
  100901. DL = subfunction
  100902. 00h get current autoreceive state
  100903. 01h set autoreceive state
  100904. DH = number of rings before answer, 00h = never
  100905. Return: AX = 0000h autoreceive disabled
  100906. AX = N number of rings before answer
  100907. AX < 0 error code (see #03048)
  100908. --------F-2FCB10-----------------------------
  100909. INT 2F - Communicating Applications Specification - GET CURRENT EVENT STATUS
  100910. AX = CB10h
  100911. DS:DX -> 512-byte buffer for status area (see #03051)
  100912. Return: AX = 0000h successful
  100913. BX = event handle of current event or negative error code if
  100914. no current event
  100915. buffer filled
  100916. AX < 0 error code (see #03048)
  100917. SeeAlso: AX=CB02h,AX=CB0Dh
  100918. (Table 03050)
  100919. Values for CAS event type:
  100920. 00h send
  100921. 01h receive
  100922. 02h polled send
  100923. 03h polled receive
  100924. 04h to 7Fh reserved
  100925. FFh serious hardware error
  100926. Format of CAS status area:
  100927. Offset Size Description (Table 03051)
  100928. 00h BYTE event type (see #03050)
  100929. 01h BYTE transfer type
  100930. 00h 200x200 dpi, FAX mode
  100931. 01h 100x200 dpi, FAX mode
  100932. 02h file transfer mode
  100933. 03h to 7Fh reserved
  100934. 02h WORD event status (see #03052)
  100935. 04h WORD event time (packed DOS time format, see INT 21/AX=5700h)
  100936. 06h WORD event date (packed DOS date format, see INT 21/AX=5700h)
  100937. 08h WORD number of files to transfer, max 7FFFh
  100938. 0Ah WORD offset of file transfer record
  100939. 0Ch 47 BYTEs ASCIZ phone number to call
  100940. 3Bh 64 BYTEs ASCIZ application-specific tag string
  100941. 7Bh BYTE reserved (00h)
  100942. 7Ch BYTE connect time, seconds
  100943. 7Dh BYTE connect time, minutes
  100944. 7Eh BYTE connect time, hours
  100945. 7Fh DWORD total number of pages in all files
  100946. 83h DWORD pages already transmitted
  100947. 87h WORD number of files already transmitted
  100948. 89h BYTE cover page flag
  100949. 00h don't transmit cover page
  100950. 01h transmit cover page
  100951. 02h to 7Fh reserved
  100952. 8Ah WORD total number of transmission errors
  100953. 8Ch 78 BYTEs reserved (zeros)
  100954. DAh 21 BYTEs ASCIZ remote FAX's CCITT identification
  100955. EFH 32 BYTEs ASCIZ destination name
  100956. 10Fh 32 BYTEs ASCIZ sender name
  100957. 12Fh 80 BYTEs filename of PCX logo file (max 1780x800 pixels)
  100958. 17Fh 128 BYTEs file transfer record for current event (see #03053)
  100959. (Table 03052)
  100960. Values for CAS event status:
  100961. 0000h completed successfully
  100962. 0001h waiting
  100963. 0002h number dialed
  100964. 0003h connected, sending
  100965. 0004h connected, receiving
  100966. 0005h aborted
  100967. 0006h to 007Fh reserved
  100968. 0080h to 7FFFh application-specific events
  100969. 8000h to FFFFh error codes
  100970. Format of CAS file transfer record:
  100971. Offset Size Description (Table 03053)
  100972. 00h BYTE file type (ignored unless FAX)
  100973. 00h ASCII
  100974. 01h PCX
  100975. 02h DCX
  100976. 03h to 7Fh reserved
  100977. 01h BYTE text size for ASCII FAX file
  100978. 00h = 80 columns by 66 lines (11 inches)
  100979. 01h = 132 columns by 88 lines (11 inches)
  100980. 02h to 7Fh reserved
  100981. 02h BYTE status of file
  100982. 00h untouched
  100983. 01h opened
  100984. 02h moved
  100985. 03h deleted
  100986. 04h not yet received
  100987. 05h to 7Fh reserved
  100988. 03h DWORD bytes already transmitted
  100989. 07h DWORD file size in bytes
  100990. 0Bh WORD pages alread transmitted
  100991. 0Dh WORD number of pages in file
  100992. 0Fh 80 BYTEs ASCIZ filename
  100993. 5Fh BYTE 1/8 inch page length
  100994. if page length below set to 01h through 7Fh, this value
  100995. specifies additional 1/8 inch increments to page length
  100996. 60h BYTE page length
  100997. 00h = 11 inches
  100998. 01h to 7Fh = page length is this number of inches plus value of
  100999. 1/8 inch field above
  101000. 80h to FEh reserved
  101001. FFh = ASCII pages ending with formfeed
  101002. 61h 31 BYTEs reserved (zeros)
  101003. --------F-2FCB11-----------------------------
  101004. INT 2F - Communicating Applications Specification - GET QUEUE STATUS
  101005. AX = CB11h
  101006. DL = queue to get status of
  101007. 00h task queue
  101008. 01h receive queue
  101009. 02h log queue
  101010. 03h send events (v1.2+)
  101011. 04h receive events (v1.2+)
  101012. Return: AX >= 0 total number of changes made to queue, modulo 32768
  101013. BX = number of control files currently in queue
  101014. CX = number of received files (zero for task and log queues)
  101015. AX < 0 error code (see #03048)
  101016. SeeAlso: AX=CB12h
  101017. --------F-2FCB11DL03-------------------------
  101018. INT 2F - Communicating Applications Spec v1.2+ - GET NUMBER OF SEND EVENTS
  101019. AX = CB11h
  101020. DL = 03h
  101021. Return: AX = number of successful sends since resident manager started
  101022. BX = number of unsuccessful sends, including warnings
  101023. SeeAlso: AX=CB11h/DL=04h
  101024. --------F-2FCB11DL04-------------------------
  101025. INT 2F - Communicating Applications Spec v1.2+ - GET NUMBER OF RECEIVE EVENTS
  101026. AX = CB11h
  101027. DL = 04h
  101028. Return: AX = number of received file events since resident manager started
  101029. BX = number of received FAX events
  101030. SeeAlso: AX=CB11h/DL=03h
  101031. --------F-2FCB12-----------------------------
  101032. INT 2F - Communicating Applications Specification - GET HARDWARE STATUS
  101033. AX = CB12h
  101034. DS:DX -> 128-byte status buffer (see #03054,#03056)
  101035. Return: AX = 0000h successful
  101036. DS:DX buffer filled with hardware-dependent status information
  101037. < 0 error code (see #03048)
  101038. SeeAlso: AX=CB10h,AX=CB11h
  101039. Format of status buffer for Intel Connection CoProcessor:
  101040. Offset Size Description (Table 03054)
  101041. 00h BYTE Connection CoProcessor connection status flags (see #03057)
  101042. 01h BYTE number of kilobytes of free buffer space
  101043. 02h BYTE page buffer status
  101044. bit 7: Connection CoProcessor has documents to send
  101045. bits 6-0: number of pages in buffer
  101046. 03h BYTE number of retries left for dialing number
  101047. 04h BYTE page number to retransmit
  101048. 05h BYTE communications status (see #03058)
  101049. 06h BYTE baud rate (see #03055)
  101050. 07h 3 BYTEs reserved
  101051. 0Ah BYTE Connection CoProcessor hardware status (see #03059)
  101052. 0Bh BYTE Connection CoProcessor switch states (see #03060)
  101053. 0Ch BYTE communications flags (see #03061)
  101054. 0Dh BYTE reserved
  101055. 0Eh WORD error count (only valid while busy, reset when idle)
  101056. 10h DWORD size of nonstandard format (NSF) file in bytes
  101057. 14h BYTE 'A' if Connection CoProcessor board present
  101058. 15h 9 BYTEs reserved
  101059. 1Eh 21 BYTEs ASCIZ CCITT identification
  101060. 33h 77 BYTEs reserved
  101061. Note: the Intel Connection CoProcessor and SatisFAXtion may be distinguished
  101062. by examining the byte at offset 14h
  101063. Bitfields for Connection CoProcessor baud rate:
  101064. Bit(s) Description (Table 03055)
  101065. 7 reserved
  101066. 6-4 baud rate
  101067. 000 = 300 baud (V.21 SDLC or HDLC mode)
  101068. 100 = 2400 baud (V.27 ter)
  101069. 101 = 4800 baud (V.27 ter)
  101070. 110 = 7200 baud (V.29)
  101071. 111 = 9600 baud (V.29)
  101072. 3-0 reserved, should be 0110
  101073. Format of status buffer for Intel SatisFAXtion board:
  101074. Offset Size Description (Table 03056)
  101075. 00h BYTE SatisFAXtion connection status flags (see #03062)
  101076. 01h BYTE SatisFAXtion board state (see #03063)
  101077. 02h BYTE number of KB free in buffer
  101078. 03h BYTE number of pages or files in buffer
  101079. 04h BYTE number of redials remaining on current number
  101080. 05h BYTE FAX page number to retransmit
  101081. 06h BYTE current page/file in block transfer
  101082. 07h BYTE number of rings received (only if auto-answer enabled)
  101083. 08h WORD error count
  101084. 0Ah DWORD length of file being transferred
  101085. 0Eh 6 BYTEs reserved
  101086. 14h BYTE 'B' if SatisFAXtion board present
  101087. 15h 13 BYTEs ASCIZ transfer agent name
  101088. 22h 5 BYTEs ASCIZ transfer agent version number
  101089. 27h 13 BYTEs ASCIZ resident loader name
  101090. 34h 5 BYTEs ASCIZ resident loader version number
  101091. 39h 21 BYTEs ASCIZ remote CSID
  101092. 4Eh 13 BYTEs ASCIZ resident manager name
  101093. 5Bh 5 BYTEs ASCIZ resident manager version number
  101094. 60h 32 BYTEs reserved
  101095. Note: the Intel Connection CoProcessor and SatisFAXtion may be distinguished
  101096. by examining the byte at offset 14h
  101097. Bitfields for Connection CoProcessor connection status flags:
  101098. Bit(s) Description (Table 03057)
  101099. 7 hardware busy sending or receiving
  101100. 6 last page of data
  101101. 5 no data on current page
  101102. 4 retransmit request for current page being transmitted
  101103. 3 NSF (nonstandard file) mode active
  101104. 2-0 reserved
  101105. Bitfields for communications status:
  101106. Bit(s) Description (Table 03058)
  101107. 7 originating call
  101108. 6 FAX message to be sent
  101109. 5 on line
  101110. 4 ring detected and receive enabled
  101111. 3 buffer dumped on receive
  101112. 2-0 hardware sequence state
  101113. 000 idle
  101114. 001 dial
  101115. 010 answer
  101116. 011 transmit
  101117. 100 receive
  101118. 101 pre-message
  101119. 110 post-message
  101120. 111 disconnect
  101121. Bitfields for Connection CoProcessor hardware status:
  101122. Bit(s) Description (Table 03059)
  101123. 7 modem option installed
  101124. 6 Connection CoProcessor has control of DAA (not latched)
  101125. 5 on line (not latched)
  101126. 4 ring detected (not latched)
  101127. 3 data in command buffer (not latched)
  101128. 2 set if using DMA channel 1, clear if using DMA channel 3
  101129. 1 line length compensation 1 set (not latched)
  101130. 0 line length compensation 0 set (not latched)
  101131. Bitfields for Connection CoProcessor switch states:
  101132. Bit(s) Description (Table 03060)
  101133. 7 reserved
  101134. 6 unused
  101135. 5 spare switch open
  101136. 4 FAX ADR1 switch open
  101137. 3 FAX ADR0 switch open
  101138. 2 alternate interrupt switch open
  101139. 1 COM SEL 1 switch open
  101140. 0 COM SEL 0 switch open
  101141. Note: valid combinations of 0-2 are
  101142. 000 COM2 IRQ3 IObase 2F8h
  101143. 001 COM1 IRQ4 IObase 3F8h
  101144. 010 COM4 IRQ3 IObase 2E8h
  101145. 011 COM3 IRQ4 IObase 3E8h
  101146. 110 COM4 IRQ2 IObase 2E8h
  101147. 111 COM3 IRQ5 IObase 3E8h
  101148. Bitfields for communications flags:
  101149. Bit(s) Description (Table 03061)
  101150. 7 reserved
  101151. 6 auxiliary relay forced ON
  101152. 5 modem select relay forced ON
  101153. 4 offhook relay forced ON
  101154. 3 9600 bps enabled
  101155. 2 7200 bps enabled
  101156. 1 4800 bps enabled
  101157. 0 2400 bps enabled
  101158. Bitfields for SatisFAXtion connection status flags:
  101159. Bit(s) Description (Table 03062)
  101160. 7 busy in T.30 CCITT fax protocol
  101161. 6 data on current page/file (only used for block xfers)
  101162. 5 retransmission of last page requested
  101163. 4 in file transfer mode
  101164. 3 data in buffer
  101165. 2 data buffer dumped on receive
  101166. 1 200x100 dpi resolution instead of 200x200 dpi
  101167. 0 data modem in use, FAX image modem not available
  101168. Bitfields for SatisFAXtion board state:
  101169. Bit(s) Description (Table 03063)
  101170. 7 reserved
  101171. 6 handset jack active, data and FAX modems not available
  101172. 5-3 current rate
  101173. 000 300 bps (V.21 HDLC)
  101174. 100 2400 bps (V.27 ter)
  101175. 101 4800 bps (V.27 ter)
  101176. 110 7200 bps (V.29)
  101177. 111 9600 bps (V.29)
  101178. 2-0 T.30 CCITT protocol state
  101179. 000 idle
  101180. 001 dialing
  101181. 010 answering
  101182. 011 transmitting
  101183. 100 receiving
  101184. 101 pre-message
  101185. 110 post-message
  101186. 111 disconnect
  101187. --------F-2FCB13DL00-------------------------
  101188. INT 2F - Communicating Applications Specification - GET DIAGNOSTICS RESULTS
  101189. AX = CB13h
  101190. DL = 00h
  101191. Return: AX = 0040h in progress
  101192. >= 0 passed
  101193. < 0 hardware-dependent failure code (see #03064,#03065)
  101194. SeeAlso: AX=CB13h/DL=01h
  101195. Bitfields for Intel Connection CoProcessor failure codes:
  101196. Bit(s) Description (Table 03064)
  101197. 3 9600 bps FAX modem module failed
  101198. 2 SDLC chip failed
  101199. 1 RAM failed
  101200. 0 ROM checksum failed
  101201. Bitfields for Intel SatisFAXtion failure codes:
  101202. Bit(s) Description (Table 03065)
  101203. 1 2400 bps data modem failed
  101204. 0 9600 bps FAX modem failed
  101205. --------F-2FCB13DL01-------------------------
  101206. INT 2F - Communicating Applications Specification - START DIAGNOSTICS
  101207. AX = CB13h
  101208. DL = 01h
  101209. Return: AX = 0000h successfully started
  101210. AX < 0 error code (see #03048)
  101211. SeeAlso: AX=CB13h/DL=00h
  101212. --------F-2FCB14-----------------------------
  101213. INT 2F - Communicating Applications Specification - MOVE RECEIVED FILE
  101214. AX = CB14h
  101215. BX = event handle
  101216. CX = receive file number
  101217. 0001h first received file
  101218. N Nth received file
  101219. DS:DX -> ASCIZ string specifying new name for file (must not exist)
  101220. Return: AX = 0000h successful
  101221. AX < 0 error code (see #03048)
  101222. --------F-2FCB15-----------------------------
  101223. INT 2F - Communicating Applications Specification - SUBMIT FILE TO SEND
  101224. AX = CB15h
  101225. DS:DX -> variable-length data area (see #03066)
  101226. Return: AX >= 0 event handle
  101227. AX < 0 error code (see #03048)
  101228. SeeAlso: AX=CB01h
  101229. Format of CAS file submission data area:
  101230. Offset Size Description (Table 03066)
  101231. 00h BYTE transfer type
  101232. 00h = 200x200 dpi, fax mode
  101233. 01h = 100x200 dpi, fax mode
  101234. 02h = file transfer mode
  101235. 03h to 7Fh reserved
  101236. 01h BYTE text size
  101237. 00h = 80 columns
  101238. 01h = 132 columns
  101239. 02h to 7Fh reserved
  101240. 02h WORD time to send (DOS packed time, see #01665 at INT 21/AX=5700h)
  101241. 04h WORD date to send (DOS packed date, see #01666 at INT 21/AX=5700h)
  101242. 06h 32 BYTEs ASCIZ destination name
  101243. 26h 80 BYTEs ASCIZ name of file to send
  101244. 76h 47 BYTEs ASCIZ phone number to dial
  101245. A5h 64 BYTEs ASCIZ application-specific tag string
  101246. E5h BYTE reserved (00h)
  101247. E6h BYTE cover page
  101248. 00h don't send cover page
  101249. 01h send cover page
  101250. 02h to 7Fh reserved
  101251. E7h 23 BYTEs reserved (zeros)
  101252. FEh variable ASCIZ string containing text of cover page (if cover page flag
  101253. set to 01h)
  101254. --------F-2FCB16BX1234-----------------------
  101255. INT 2F - Communicating Applications Spec v1.2+ - UNLOAD RESIDENT MANAGER
  101256. AX = CB16h
  101257. BX = 1234h
  101258. CX = 5678h
  101259. DX = 9ABCh
  101260. Return: AX = 0000h successful
  101261. AX < 0 error code
  101262. Note: the METZ XpressFax CASMGR ignores the values in BX,CX, and DX
  101263. SeeAlso: AX=C000h/BX=444Bh,AX=CB00h
  101264. Index: uninstall;CAS Manager
  101265. --------F-2FCB17-----------------------------
  101266. INT 2F - Communicating Applications Spec v1.2+ - SET COVER PAGE STATUS
  101267. AX = CB17h
  101268. BX = event handle
  101269. CL = cover page status
  101270. 00h not read
  101271. 01h read by user
  101272. Return: AX = 0000h successful
  101273. AX < 0 error code
  101274. --------F-2FCB80-----------------------------
  101275. INT 2F - Intel SatisFAXtion CASMGR - ???
  101276. AX = CB80h
  101277. ???
  101278. Return: ???
  101279. --------F-2FCB81-----------------------------
  101280. INT 2F - Intel SatisFAXtion CASMGR - ???
  101281. AX = CB81h
  101282. ???
  101283. Return: ???
  101284. --------F-2FCB82-----------------------------
  101285. INT 2F - Intel SatisFAXtion CASMGR - ???
  101286. AX = CB82h
  101287. ???
  101288. Return: ???
  101289. --------F-2FCBDCBL56-------------------------
  101290. INT 2F - Comwave Microfax Specification - GET STATUS ARRAY
  101291. AX = CBDCh
  101292. BL = 56h
  101293. BH = line number (starts with 1)
  101294. CX:DX -> 32-byte status buffer or 80 character string
  101295. Return: AX = number of cards installed, or FFFFh on error
  101296. Program: Comwave manufacturers the Microfax line of fax cards which are a
  101297. high-performance multi-card FAX solution for OEMs.
  101298. Note: defaults to AH=CBh but can be changed
  101299. SeeAlso: AX=CBDDh,AX=DA00h
  101300. --------F-2FCBDDBL56-------------------------
  101301. INT 2F - Comwave Microfax Specification - COMMAND SUBMISSION
  101302. AX = CBDDh
  101303. BL = 56h
  101304. BH = ?
  101305. CX:DX -> command to execute
  101306. Return: AX = status
  101307. 0000h success
  101308. FFFFh on error
  101309. SeeAlso: AH=2Ah,AX=CBDCh,AX=80FBh
  101310. --------c-2FCC--SI5453-----------------------
  101311. INT 2F U - PC-Kwik Programs - API
  101312. AH = CCh
  101313. SI = 5453h or 7473h
  101314. AL = function number (at least 00h,01h,04h,05h,07h,80h)
  101315. DL = program identifier (see #03067)
  101316. Return: SI = 7473h
  101317. other registers vary by function
  101318. Note: Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  101319. thus supports this call
  101320. SeeAlso: INT 21/AH=2Bh/CX=4358h
  101321. (Table 03067)
  101322. Values for PC-Kwik program identifier:
  101323. 00h all installed PowerPak programs
  101324. 01h SUPERPCK/SUPER/QCACHE v4.00+ (disk cache)
  101325. 02h PCKSPL (print spooler)
  101326. 04h PCKSCRN (screen accelerator)
  101327. 05h PCKKEY (keyboard enhancer)
  101328. 06h PCKRAMD (RAM disk)
  101329. 08h PCKWIK.SYS
  101330. 10h PCKCDROM (CD-ROM support for SUPERPCK)
  101331. --------N-2FCC00-----------------------------
  101332. INT 2F - Tsoft NFSDRVR - INSTALLATION CHECK
  101333. AX = CC00h
  101334. Return: AX = 7777h
  101335. BX = ???
  101336. CX = ???
  101337. DX = ???
  101338. ES = data segment of resident portion
  101339. SeeAlso: AX=CC01h,AX=CC06h
  101340. --------N-2FCC01-----------------------------
  101341. INT 2F - Tsoft NFSDRVR - ???
  101342. AX = CC01h
  101343. ???
  101344. Return: ???
  101345. SeeAlso: AX=CC00h
  101346. --------N-2FCC02-----------------------------
  101347. INT 2F - Tsoft NFSDRVR - ???
  101348. AX = CC02h
  101349. ???
  101350. Return: ???
  101351. SeeAlso: AX=CC00h
  101352. --------N-2FCC03-----------------------------
  101353. INT 2F - Tsoft NFSDRVR - ???
  101354. AX = CC03h
  101355. ???
  101356. Return: ???
  101357. SeeAlso: AX=CC00h
  101358. --------N-2FCC04-----------------------------
  101359. INT 2F - Tsoft NFSDRVR - ???
  101360. AX = CC04h
  101361. ???
  101362. Return: ???
  101363. SeeAlso: AX=CC00h
  101364. --------N-2FCC05-----------------------------
  101365. INT 2F - Tsoft NFSDRVR - ???
  101366. AX = CC05h
  101367. ???
  101368. Return: ???
  101369. SeeAlso: AX=CC00h
  101370. --------N-2FCC06-----------------------------
  101371. INT 2F - Tsoft NFSDRVR - ???
  101372. AX = CC06h
  101373. ???
  101374. Return: ???
  101375. SeeAlso: AX=CC00h
  101376. --------P-2FCD00-----------------------------
  101377. INT 2F - Intel Image Processing Interface - INSTALLATION CHECK
  101378. AX = CD00h
  101379. Return: AL = state
  101380. 00h not installed, OK to install
  101381. 01h not installed, not OK to install
  101382. FFh installed
  101383. SeeAlso: AX=CD02h"Image"
  101384. --------P-2FCD00-----------------------------
  101385. INT 2F - LaserPort Interface - INSTALLATION CHECK
  101386. AX = CD00h
  101387. Return: AL = status
  101388. FFh installed
  101389. SeeAlso: AX=CD0Fh"LaserPort"
  101390. --------U-2FCD00-----------------------------
  101391. INT 2F - SWELL.EXE - INSTALLATION CHECK
  101392. AX = CD00h
  101393. Return: AX = 00FFh installed
  101394. BH = major version
  101395. BL = minor version
  101396. Program: SWELL.EXE is a TSR which swaps programs to disk when they EXEC a
  101397. child process with INT 21/AH=4Bh
  101398. --------s-2FCD00BX464F-----------------------
  101399. INT 2F - Forte/Gravis ULTRAMID - INSTALLATION CHECK
  101400. AX = CD00h
  101401. BX = 464Fh ('FO')
  101402. CX = 5254h ('RT')
  101403. DX = 4520h ('E ')
  101404. Return: AL = FFh if installed
  101405. BX = 4155h ('AU')
  101406. CX = 4449h ('DI')
  101407. DX = 4F20h ('O ')
  101408. ES:SI -> program ID string
  101409. Program: ULTRAMID is a MIDI driver for the Gravis UltraSound which allows use
  101410. of AIL drivers with other software
  101411. Range: AH=CDh-ECh, selected by scanning for an available multiplex number
  101412. SeeAlso: INT 21/AX=FD12h,AX=CD00h/DX=4957h
  101413. --------s-2FCD00DX4957-----------------------
  101414. INT 2F R - InterWave Game API - INSTALLATION CHECK
  101415. AX = CD00h
  101416. DX = 4957h ('IW')
  101417. SI = 5645h ('VE')
  101418. Return: AL = FFh if installed
  101419. DX = 4554h ('ET')
  101420. SI = 454Bh ('EK')
  101421. Range: AH=CDh-ECh, selected by scanning for an available multiplex number
  101422. SeeAlso: AX=CD00h/BX=464Fh,AX=CD01h"InterWave",AX=CD21h"InterWave"
  101423. SeeAlso: AX=CD80h"InterWave"
  101424. --------P-2FCD01-----------------------------
  101425. INT 2F - Intel Image Processing Interface - SET DEVICE NAME
  101426. AX = CD01h
  101427. CX:BX -> ASCIZ character device name ("LPTn", "COMn", "PRN")
  101428. Return: AL = status
  101429. 00h successful
  101430. CX:BX -> internal character device name
  101431. 80h error
  101432. --------U-2FCD01-----------------------------
  101433. INT 2F - SWELL.EXE - SUSPEND ONCE
  101434. AX = CD01h
  101435. Return: AX = 0000h
  101436. SeeAlso: AX=CD02h"SWELL"
  101437. --------s-2FCD01BX0000-----------------------
  101438. INT 2F R - InterWave Game API - GET NUMBER OF INTERWAVE PROGRAMS / PROGRAM ID
  101439. AX = CD01h
  101440. BX = 0000h
  101441. Return: BX = number of programs currently installed on the Game API
  101442. Desc: get the number of programs supporting the InterWave Game API which are
  101443. currently installed in memory, which also forms the next program ID
  101444. number if the caller wishes to go resident on the API
  101445. Range: AH=CDh-ECh, selected by scanning for an available multiplex number
  101446. Notes: the first program to install on the IW Game API must use ID 00h
  101447. the AMD-recommended implementation is for the handler to increment
  101448. BX and chain to the previous handler (if any), but this will fail
  101449. if TSRs are unloaded out-of-order
  101450. SeeAlso: AX=CD00h"InterWave",AX=CD02h"InterWave",AX=CD03h"InterWave"
  101451. SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"
  101452. --------P-2FCD02-----------------------------
  101453. INT 2F - Intel Image Processing Interface - GET VERSION NUMBER
  101454. AX = CD02h
  101455. Return: AL = status
  101456. 00h/01h successful
  101457. BH = major version number (BCD)
  101458. BL = minor version number (BCD)
  101459. 80h error
  101460. Note: if return AL = 01h, the IPI supports network redirection
  101461. SeeAlso: AX=CD00h"Image"
  101462. --------U-2FCD02-----------------------------
  101463. INT 2F - SWELL.EXE - SUSPEND
  101464. AX = CD02h
  101465. Return: AX = 0000h
  101466. SeeAlso: AX=CD03h"SWELL"
  101467. --------s-2FCD02-----------------------------
  101468. INT 2F R - InterWave Game API - GET PROGRAM STATUS AND INFORMATION
  101469. AX = CD02h
  101470. BX = program identifier
  101471. Return: CX = program status
  101472. bit 0: using synthesizer
  101473. bit 1: using Codec
  101474. bit 2: supports at least one Game Device (see AX=CD21h,AX=CD22h)
  101475. BX = supported API version (BCD, BH=major, BL=minor) if CX bit 2 set
  101476. ES:DI -> ASCIZ identification string
  101477. Range: AH=CDh-ECh, selected by scanning for an available multiplex number
  101478. Note: ordinarily, an application will loop through all valid program
  101479. identifiers (as returned by AX=CD01h); if any of the installed
  101480. programs conflicts with the use the caller wishes to make of the
  101481. InterWave chip, it should be disabled with AX=CD03h first
  101482. SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD03h"InterWave"
  101483. SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"
  101484. --------P-2FCD03-----------------------------
  101485. INT 2F - Intel Image Processing Interface - SELECT SCAN LINE
  101486. AX = CD03h
  101487. BX = scan line
  101488. CX = requested density in dots per inch (300, 600, or 1200)
  101489. Return: AL = status (see also AX=CD04h"Image")
  101490. 00h successful
  101491. CX = density at which scan line was mapped
  101492. ES:DI -> start of scan line
  101493. 80h unsuccessful
  101494. 81h scan line out of range
  101495. 82h unsupported scan line density
  101496. 83h out of memory
  101497. SeeAlso: AX=CD04h"Image"
  101498. --------U-2FCD03-----------------------------
  101499. INT 2F - SWELL.EXE - ACTIVATE
  101500. AX = CD03h
  101501. Return: AX = 0000h
  101502. SeeAlso: AX=CD02h"SWELL"
  101503. --------s-2FCD03-----------------------------
  101504. INT 2F R - InterWave Game API - SUSPEND PROGRAM
  101505. AX = CD03h
  101506. BX = installed program identifier
  101507. CX = InterWave section to be released
  101508. 0000h all
  101509. 0001h synthesizer
  101510. 0002h Codec
  101511. Return: AL = status
  101512. 00h successful
  101513. BX = base port
  101514. CL = IRQ
  101515. CH = DMA channel (Codec only)
  101516. else failed
  101517. SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave"
  101518. SeeAlso: AX=CD04h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"
  101519. --------P-2FCD04-----------------------------
  101520. INT 2F - Intel Image Processing Interface - MOVE BITMAP TO SCANLINE
  101521. AX = CD04h
  101522. CX:BX -> structure (see #03069)
  101523. Return: AL = status (see #03068)
  101524. SeeAlso: AX=CD03h"Image"
  101525. (Table 03068)
  101526. Values for IPI function status:
  101527. 00h successful
  101528. 80h unsuccessful
  101529. 81h scan line out of range
  101530. 82h unsupported scan line density
  101531. 83h out of memory
  101532. 84h unrecognized source
  101533. 85h initialization error
  101534. Format of structure:
  101535. Offset Size Description (Table 03069)
  101536. 00h WORD image source (0 = conventional memory, 1 = expanded memory)
  101537. 02h DWORD pointer to image data
  101538. 06h WORD scan line on which to place
  101539. 08h WORD bit offset from start of scan line at which to place
  101540. 0Ah WORD density of bitmap data (300, 600, or 1200 dpi)
  101541. 0Ch WORD width in bits of data
  101542. 0Eh WORD source logical page number
  101543. 10h WORD source handle (only if source in expanded memory)
  101544. 12h WORD source offset (only if source in expanded memory)
  101545. --------U-2FCD04-----------------------------
  101546. INT 2F - SWELL.EXE - TURN OFF VERBOSE MODE
  101547. AX = CD04h
  101548. Return: AX = 0000h
  101549. SeeAlso: AX=CD05h"SWELL"
  101550. --------s-2FCD04-----------------------------
  101551. INT 2F R - InterWave Game API - WAKE PROGRAM
  101552. AX = CD04h
  101553. BX = installed program identifier
  101554. Return: AL = status
  101555. 00h successful
  101556. else failed
  101557. Note: this function should only be called after the program has been
  101558. suspended with AX=CD03h
  101559. SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD03h"InterWave"
  101560. SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"
  101561. SeeAlso: INT 7E/AL=84h"IWSBSDRV"
  101562. --------P-2FCD05-----------------------------
  101563. INT 2F - Intel Image Processing Interface - PRINT PAGE
  101564. AX = CD05h
  101565. Return: AL = status (00h,80h) (see #03068)
  101566. Note: page image is retained, so multiple calls will print multiple copies of
  101567. the page
  101568. SeeAlso: AX=CD06h"Image"
  101569. --------U-2FCD05-----------------------------
  101570. INT 2F - SWELL.EXE - TURN ON VERBOSE MODE
  101571. AX = CD05h
  101572. Return: AX = 0000h
  101573. SeeAlso: AX=CD04h"SWELL"
  101574. --------s-2FCD05-----------------------------
  101575. INT 2F R - InterWave Game API - UNINSTALL RESIDENT DEVICE DRIVER
  101576. AX = CD05h
  101577. BX = installed program identifier
  101578. Return: AL = status
  101579. 00h successful
  101580. else failed
  101581. SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave"
  101582. SeeAlso: AX=CD03h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"
  101583. --------P-2FCD06-----------------------------
  101584. INT 2F - Intel Image Processing Interface - CLEAR PAGE
  101585. AX = CD06h
  101586. Return: AL = status (00h,80h) (see #03068)
  101587. Note: palette is reset to default
  101588. SeeAlso: AX=CD09h"Image"
  101589. --------U-2FCD06-----------------------------
  101590. INT 2F - SWELL.EXE - UNINSTALL
  101591. AX = CD06h
  101592. Return: AX = status
  101593. 0000h uninstalled
  101594. 8002h programs still swapped, not uninstalled
  101595. --------P-2FCD07-----------------------------
  101596. INT 2F - Intel Image Processing Interface - reserved
  101597. AX = CD07h
  101598. SeeAlso: AX=CD00h"Image"
  101599. --------U-2FCD07-----------------------------
  101600. INT 2F - SWELL.EXE - GET INFO
  101601. AX = CD07h
  101602. ES:BX -> 32-byte buffer for info (see #03070)
  101603. Return: AX = status
  101604. 0000h successful
  101605. ES:BX buffer filled
  101606. 8001h buffer wrong size
  101607. Format of SWELL.EXE info buffer:
  101608. Offset Size Description (Table 03070)
  101609. 00h WORD 20h (total size of buffer)
  101610. 02h BYTE suspend-once mode active if nonzero
  101611. 03h BYTE 00h active, 01h suspended
  101612. 04h BYTE 00h quiet, 01h verbose
  101613. 05h BYTE "Borland support" (allowing INT 21/AX=4B01h) on if nonzero
  101614. 06h 26 BYTEs unused???
  101615. --------P-2FCD08-----------------------------
  101616. INT 2F - Intel Image Processing Interface - SCREEN IMAGE
  101617. AX = CD08h
  101618. CX:BX -> structure (see #03071)
  101619. Return: AL = status (00h,80h-85h) (see #03068)
  101620. SeeAlso: AX=CD05h"Image",AX=CD09h"Image"
  101621. Format of IPI screen image structure:
  101622. Offset Size Description (Table 03071)
  101623. 00h WORD image source (0 = conventional memory, 1 = expanded memory)
  101624. 02h DWORD pointer to image data
  101625. 06h WORD horizontal position on paper of left edge (in 1200 dpi units)
  101626. 08h WORD vertical position on paper of top edge (in 1200 dpi units)
  101627. 0Ah WORD left cropping (currently must be zero)
  101628. 0Ch WORD top cropping (currently must be zero)
  101629. 0Eh WORD width (currently must be 8000h)
  101630. 10h WORD height (currently must be 8000h)
  101631. 12h WORD horizontal size of image in 1200 dpi units
  101632. 14h WORD vertical size of image in 1200 dpi units
  101633. 16h WORD aspect ratio (currently reserved)
  101634. 18h WORD initialization flag (if 01h, initialization is performed)
  101635. 1Ah WORD pixels per line of source data
  101636. 1Ch WORD number of scan lines in source data
  101637. 1Eh WORD number of scan lines in packet
  101638. 20h WORD bits per pixel (1,2,4,6, or 8)
  101639. 22h WORD pixels per byte (1,2,4, or 8)
  101640. 24h WORD compression type (currently only 00h [uncompressed] supported)
  101641. 26h WORD source page number (if in expanded memory)
  101642. 28h WORD source handle (if in expanded memory)
  101643. 2Ah WORD source offset (if in expanded memory)
  101644. --------U-2FCD08-----------------------------
  101645. INT 2F - SWELL.EXE - UNUSED
  101646. AX = CD08h
  101647. Return: AX = FFFFh (error)
  101648. --------P-2FCD09-----------------------------
  101649. INT 2F - Intel Image Processing Interface - LOAD SCREEN
  101650. AX = CD09h
  101651. CX:BX -> structure (see #03072)
  101652. Return: AL = status (00h,80h) (see #03068)
  101653. SeeAlso: AX=CD06h"Image Processing",AX=CD0Ah"Image Processing"
  101654. Format of IPI load screen structure:
  101655. Offset Size Description (Table 03072)
  101656. 00h BYTE style
  101657. 44h ('D') diamond style
  101658. 4Ch ('L') line style
  101659. 01h BYTE reserved (00h)
  101660. 02h WORD frequency in lines per inch [sic]
  101661. currently, coerced to nearest of 50, 60, 68, 70, 75, 85, or 100
  101662. 04h WORD screen angle in degrees (-360 to 360)
  101663. currently coerced to nearest of -45, 0, 45, or 90
  101664. --------U-2FCD09-----------------------------
  101665. INT 2F - SWELL.EXE - TURN OFF "BORLAND SUPPORT"
  101666. AX = CD09h
  101667. Return: AX = 0000h
  101668. SeeAlso: AX=CD0Ah"SWELL"
  101669. --------P-2FCD0A-----------------------------
  101670. INT 2F - Intel Image Processing Interface - LOAD PALETTE
  101671. AX = CD0Ah
  101672. CX:BX -> palette structure (see #03073)
  101673. Return: AL = status (00h,80h) (see #03068)
  101674. SeeAlso: AX=CD09h"Image Processing"
  101675. Format of IPI palette structure:
  101676. Offset Size Description (Table 03073)
  101677. 00h BYTE bits per pixel for which palette is to be used (1,2,4,6, or 8)
  101678. 01h 2**N palette translation values, one per possible pixel value
  101679. --------U-2FCD0A-----------------------------
  101680. INT 2F - SWELL.EXE - TURN ON "BORLAND SUPPORT"
  101681. AX = CD0Ah
  101682. Return: AX = 0000h
  101683. SeeAlso: AX=CD09h"SWELL"
  101684. --------P-2FCD0F-----------------------------
  101685. INT 2F - LaserPort Interface - EXECUTE FUNCTION
  101686. AX = CD0Fh
  101687. BL = function
  101688. 01h enable
  101689. 02h disable
  101690. 03h ???
  101691. Return: AL = status
  101692. 00h success
  101693. SeeAlso: AX=CD00h"LaserPort"
  101694. --------s-2FCD21-----------------------------
  101695. INT 2F R - InterWave Game API - OPEN GAME DEVICE
  101696. AX = CD21h
  101697. BX = installed program identifier
  101698. ES:DI -> ASCIZ device name
  101699. "MIDISIMPLE"
  101700. "MIDICOMPLEX"
  101701. "DIRECTCODEC"
  101702. Return: AL = status
  101703. 00h successful
  101704. DX = device handle
  101705. ---MIDISIMPLE and MIDICOMPLEX---
  101706. BX = real-mode interrupt number (see #03074,#03075)
  101707. ---DIRECTCODEC---
  101708. BX = base port
  101709. CL = IRQ
  101710. CH = DMA channel (04h = no DMA)
  101711. SI = size of FIFO in bytes (0000h = use DMA)
  101712. nonzero failed (not supported or already in use)
  101713. AH may be destroyed
  101714. Range: AH=CDh-ECh, selected by scanning for an available multiplex number
  101715. SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave"
  101716. SeeAlso: AX=CD05h"InterWave",AX=CD22h"InterWave",AX=CD80h"InterWave"
  101717. (Table 03074)
  101718. Call MIDISIMPLE with:
  101719. EAX = function number
  101720. 0001h MIDI byte out
  101721. BL = MIDI byte to send
  101722. 0002h MIDI string out
  101723. ECX = length of MIDI string in bytes
  101724. ES:EDI -> MIDI string to send (should not include timing info)
  101725. DX = device handle
  101726. INT xxh (as returned by AX=CD21h)
  101727. Return: EAX = status
  101728. 00000000h if successful
  101729. FFFFFFFFh on error (bad handle)
  101730. SeeAlso: #03075,INT 7E/AX=0001h"IWSBSDRV",INT 7E/AX=0002h"IWSBSDRV"
  101731. (Table 03075)
  101732. Call MIDICOMPLEX with:
  101733. EAX = function number
  101734. ??? (specification is still in development)
  101735. DX = device handle
  101736. INT xxh (as returned by AX=CD21h)
  101737. Return: EAX = status
  101738. 00000000h if successful
  101739. FFFFFFFFh on error (bad handle)
  101740. SeeAlso: #03074
  101741. --------s-2FCD22-----------------------------
  101742. INT 2F R - InterWave Game API - CLOSE GAME DEVICE
  101743. AX = CD22h
  101744. BX = installed program identifier
  101745. DX = device handle (from AX=CD21h)
  101746. Return: AL = status
  101747. 00h successful
  101748. FFh inavlid handle or device is not open
  101749. Range: AH=CDh-ECh, selected by scanning for an available multiplex number
  101750. SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave"
  101751. SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD80h"InterWave"
  101752. --------s-2FCD80-----------------------------
  101753. INT 2F RC - InterWave Game API - MIXER SETTINGS CHANGED BROADCAST
  101754. AX = CD80h
  101755. Return: nothing
  101756. Desc: called by an application controlling the InterWave chip's mixer
  101757. whenever the mixer's settings are changed
  101758. Range: AH=CDh-ECh, selected by scanning for an available multiplex number
  101759. Note: when an application intercepts this function call, it must read the
  101760. new mixer settings from the InterWave chip
  101761. SeeAlso: AX=CD00h"InterWave",AX=CD01h"InterWave",AX=CD02h"InterWave"
  101762. SeeAlso: AX=CD05h"InterWave",AX=CD21h"InterWave",AX=CD22h"InterWave"
  101763. --------K-2FCF00-----------------------------
  101764. INT 2F - TEMPLEXX 1.0 - INSTALLATION CHECK
  101765. AX = CF00h
  101766. Return: AL = FFh if installed
  101767. Program: TEMPLEXX is a popup keyboard template by Henson Scientific, Inc.
  101768. Note: values in AL other than 00h cause an immediate return without modifying
  101769. any registers
  101770. --------G-2FD000-----------------------------
  101771. INT 2F C - MDEBUG display driver - GET DRIVER STATUS
  101772. AX = D000h
  101773. Return: CF set on error
  101774. all other registers must be unchanged)
  101775. CF clear if successful
  101776. AL = FFh
  101777. AH = driver semaphor
  101778. 00h driver is not active
  101779. 01h driver is active
  101780. BX = CS of the driver
  101781. CX = driver version (CH = major, CL = minor, must be >= 013Ch)
  101782. DL = buffer semaphor
  101783. 00h driver is not pending
  101784. 01h driver is pending between functions 02h and 03h
  101785. DH = show semaphor
  101786. 00h driver is not pending
  101787. 01h driver is pending between functions 04h and 05h
  101788. Program: MDEBUG is a shareware memory-resident debugging tool by Bernd
  101789. Schemmer, including a memory monitor, an interpreter and a
  101790. disassembler
  101791. Range: AH=C0h to AH=FFh, selected by switch or programmatically
  101792. Notes: MDEBUG can use any two consecutive multiplex numbers between C0h and
  101793. FFh; the default is D0h for the display driver and D1h for the
  101794. command driver (call INT 60/AH=00h"MDEBUG" for the actual multiplex
  101795. numbers used)
  101796. this function MUST be reentrant, as MDEBUG calls it after every popup
  101797. before any other actions. The handler should not change any
  101798. registers if the display is in an unsupported mode or in a mode
  101799. MDEBUG supports itself, e.g. a normal text mode with at least 80x25
  101800. characters (i.e. 80x43 or 132x44 (v1.60+)). In this case MDEBUG will
  101801. not call any of the other functions for this popup session.
  101802. MDEBUG will not call the other functions if the returned version is
  101803. less than the actual version of MDEBUG.
  101804. if the driver is reentrant, DL and DH should be 00h
  101805. SeeAlso: AX=D001h,AX=D002h,AX=D003h,AX=D004h,AX=D005h
  101806. --------M-2FD000-----------------------------
  101807. INT 2F - ZWmous - INSTALLATION CHECK
  101808. AX = D000h
  101809. Return: AX = 5A57h ("ZW") if installed
  101810. BX = segment of resident code
  101811. Program: ZWmous is a shareware TSR by Zen Wu which permits the use of a mouse
  101812. with many non-mouse applications by entering the letter under the
  101813. mouse cursor on button presses
  101814. SeeAlso: INT 33/AX=0003h
  101815. --------N-2FD000-----------------------------
  101816. INT 2F - Lotus CD/Networker - INSTALLATION CHECK
  101817. AX = D000h
  101818. Return: AL = FFh if CD/Networker TSR is loaded
  101819. BX = 4D44h ("MD") signature
  101820. CX = Windows mode word (from INT 2F/AX=1600h) at time of TSR load
  101821. DX = bitmap identifying all loaded CD/Networker TSRs.
  101822. Notes: INT 2F/AH=D0h is used by CD/Networker to communicate between a
  101823. resident redirector TSR and a transient program that controls the
  101824. TSR's CD-ROM drive emulation (volume attachments, caching, etc).
  101825. At present there is only one CD/Networker TSR; the bitmap always = 4.
  101826. SeeAlso: AX=D002h"Lotus",INT 2F/AX=1500h"CD-ROM"
  101827. --------G-2FD001-----------------------------
  101828. INT 2F C - MDEBUG display driver - INITIALIZE DRIVER
  101829. AX = D001h
  101830. Return: CF set on error
  101831. AL = driver semaphor
  101832. AH = buffer semaphor
  101833. Range: AH=C0h to AH=FFh, selected by switch or programmatically
  101834. Notes: MDEBUG calls this function after every successful call of the function
  101835. 00h. The function should reset all internal data and the status of
  101836. the driver. If this function returns an error, MDEBUG will not call
  101837. the other functions in this popup session.
  101838. MDEBUG can use any two consecutive multiplex numbers between C0h and
  101839. FFh; the default is D0h for the display driver and D1h for the
  101840. command driver
  101841. SeeAlso: AX=D000h
  101842. --------G-2FD002-----------------------------
  101843. INT 2F C - MDEBUG display driver - SAVE GRAPHIC DATA
  101844. AX = D002h
  101845. Return: CF set on error
  101846. CF clear if successful
  101847. display memory saved and display switched to one of the text modes
  101848. 02h, 03h or 07h.
  101849. Note: MDEBUG calls this function only once every popup session before
  101850. displaying its windows.
  101851. SeeAlso: AX=D000h,AX=D003h
  101852. --------N-2FD002BX4D44-----------------------
  101853. INT 2F - Multiplex - Lotus CD/Networker GET DATA AREA
  101854. AX = D002h
  101855. BX = 4D44h
  101856. DX = bitmap identifying one loaded CD/Networker TSR
  101857. Return: ES:DI -> data area owned by TSR
  101858. Note: the format of the data area changes with each minor revision, so it
  101859. cannot be counted on
  101860. SeeAlso: AX=D000h"Lotus"
  101861. --------G-2FD003-----------------------------
  101862. INT 2F C - MDEBUG display driver - RESTORE GRAPHIC DATA
  101863. AX = D003h
  101864. Return: CF set on error
  101865. CF clear if successful
  101866. display restored to the mode it was in before calling AX=D002h and
  101867. the display memory is restored
  101868. Note: MDEBUG calls this function only once every popup session just before
  101869. it exits to normal DOS.
  101870. SeeAlso: AX=D000h,AX=D002h
  101871. --------G-2FD004-----------------------------
  101872. INT 2F - MDEBUG display driver - SHOW SAVED DATA
  101873. AX = D004h
  101874. Return: CF set on error
  101875. CF clear if successful
  101876. display switched to mode it was in before calling AX=D002h and the
  101877. display memory is restored
  101878. Note: This function needn't save the display memory before changing it.
  101879. SeeAlso: AX=D000h,AX=D005h
  101880. --------G-2FD005-----------------------------
  101881. INT 2F - MDEBUG display driver - SWITCH BACK TO TEXT SCREEN
  101882. AX = D005h
  101883. Return: CF set on error
  101884. CF clear if successful
  101885. display restored to mode it was in before calling AX=D004h
  101886. Note: This function needn't save or change the display memory
  101887. SeeAlso: AX=D000h,AX=D004h
  101888. --------G-2FD0-------------------------------
  101889. INT 2F - MDEBUG display driver - RESERVED FUNCTION NUMBERS
  101890. AH = D0h
  101891. AL = 06h-7Fh
  101892. Note: these functions are reserved for future use
  101893. --------G-2FD0-------------------------------
  101894. INT 2F - MDEBUG display driver - USER DEFINED FUNCTION NUMBERS
  101895. AH = D0h
  101896. AL = 80h-FFh
  101897. Note: these functions numbers are reserved for user defined features (e.g.
  101898. communication between the transient und resident parts of the driver)
  101899. --------G-2FD100-----------------------------
  101900. INT 2F C - MDEBUG command driver - GET STATUS
  101901. AX = D100h
  101902. BX = version of MDEBUG (BH = major, BL = minor)
  101903. CX = command driver counter
  101904. ---v1.60+---
  101905. DS:SI -> MDEBUG identification table (see #03076)
  101906. ES = segment of display memory used by MDEBUG
  101907. DI = size of video mode used by MDEBUG
  101908. (high byte = lines, low byte = columns)
  101909. Return: DL = FFh
  101910. BX = version number of the driver if it is less than the version in BX,
  101911. else unchanged
  101912. CX incremented
  101913. Program: MDEBUG is a shareware memory-resident debugging tool by Bernd
  101914. Schemmer, including a memory monitor, an interpreter, and a
  101915. disassembler
  101916. Range: AH=C0h to AH=FFh, selected by switch or programmatically
  101917. Notes: called by MDEBUG at start of popup session; if the version number
  101918. returned in BX is less than 1.52 (1.60 for MDEBUG v1.70), MDEBUG will
  101919. not call any of the other functions during this popup session
  101920. MDEBUG can use any two consecutive multiplex numbers between C0h and
  101921. FFh; the default is D0h for the display driver and D1h for the
  101922. command driver (call INT 60/AH=00h"MDEBUG" for the multiplex numbers
  101923. actually used)
  101924. this function must end with a far call to the old INT 2F handler after
  101925. changing the registers
  101926. this function MUST be reentrant
  101927. command drivers must also declare the following data at the given
  101928. offsets in the code segment
  101929. 100h 3 BYTEs JMP-command in .COM-files
  101930. 103h BYTE NOP-command (90h)
  101931. 104h 26 BYTEs signature "Kommandotreiber f�r MDEBUG"
  101932. 11Eh 12 BYTEs name of driver, e.g. "MDHISDRV.COM"
  101933. each driver must have a unique name
  101934. MDEBUG will pass every key and command to the command driver(s) before
  101935. checking for a valid internal command
  101936. SeeAlso: AX=D000h,AX=D101h
  101937. Format of MDEBUG identification table:
  101938. Offset Size Description (Table 03076)
  101939. -2 WORD entry offset
  101940. 00h WORD CS of MDEBUG
  101941. 02h DWORD old INT 08h vector
  101942. 06h DWORD old INT 09h vector
  101943. 0Ah DWORD address INT 16h routine used by MDEBUG
  101944. 0Eh BYTE length of version string
  101945. 0Fh N BYTEs version string
  101946. --------G-2FD101-----------------------------
  101947. INT 2F - MDEBUG command driver - INITIALIZE DRIVER
  101948. AX = D101h
  101949. CX = command driver counter
  101950. Return: DL = status
  101951. FFh if successful
  101952. CX incremented
  101953. else error: all registers unchanged
  101954. Note: this function must end with a far call to the old INT 2F handler after
  101955. changing the registers
  101956. this function must be reentrant
  101957. --------G-2FD102-----------------------------
  101958. INT 2F - MDEBUG command driver - EXECUTE INTERPRETER COMMAND
  101959. AX = D102h
  101960. BL = first character of the interpreter command
  101961. BH = last character of the interpreter command (or blank)
  101962. DS:SI -> parameter for the interpreter command as ASCIZ string
  101963. DS:DI -> MDEBUG data structure (see #03078)
  101964. Return: AL = FFh
  101965. CF set on error
  101966. AH = error number (see #03077)
  101967. DS:SI -> ASCIZ error message (max 30 characters) if AH=0Ch
  101968. CF clear if successful
  101969. AH = return code
  101970. 00h continue processing the command line
  101971. 01h leave MDEBUG popup session
  101972. 02h leave MDEBUG popup session and automatically popup again
  101973. if the InDOS flag is zero
  101974. 03h not used (same as 00h)
  101975. 04h not used (same as 00h)
  101976. 05h put new command line into the input buffer,
  101977. DS:SI -> new command line (ASCIZ string, max 66 chars)
  101978. 06h process new command line
  101979. DS:SI -> new command line (ASCIZ string, max 66 chars)
  101980. else unknown status, but continue processing commmand line
  101981. Note: this function must end with a far call to the old INT 2F handler (with
  101982. registers unchanged) if the driver does not support the interpreter
  101983. command in BX. Otherwise, the driver must not chain to the old
  101984. INT 2F.
  101985. (Table 03077)
  101986. Values for MDEBUG error number:
  101987. 01h syntax error
  101988. 02h first shell of the command.com is activ
  101989. 03h Esc pressed
  101990. 04h break pressed
  101991. 05h DOS is busy
  101992. 06h command ended
  101993. 07h division by zero
  101994. 08h invalid display driver
  101995. 09h invalid command driver
  101996. 0Ah error 8 and 9
  101997. 0Bh unknown error
  101998. 0Ch new error
  101999. else unknown error
  102000. Format of MDEBUG data structure:
  102001. Offset Size Description (Table 03078)
  102002. 00h WORD register SE
  102003. 02h WORD register OF
  102004. 04h WORD register FS
  102005. 06h WORD register FO
  102006. 08h WORD register AX
  102007. 0Ah WORD register BX
  102008. 0Ch WORD register CX
  102009. 0Eh WORD register DX
  102010. 10h WORD register SI
  102011. 12h WORD register DI
  102012. 14h WORD register DS
  102013. 16h WORD register ES
  102014. 18h WORD register BP
  102015. 1Ah WORD register SS
  102016. 1Ch WORD register SP
  102017. 1Eh WORD register FL (flags)
  102018. 20h WORD register R0
  102019. 22h WORD register R1
  102020. 24h WORD register R2
  102021. 26h WORD register R3
  102022. 28h WORD register R4
  102023. 2Ah WORD register R5
  102024. 2Ch WORD register R6
  102025. 2Eh WORD register R7
  102026. 30h WORD register R8
  102027. 32h WORD register CS, return-address
  102028. 34h WORD register IP, return-address
  102029. 36h DWORD saved pointer to data for key <F6> (v1.60)
  102030. saved monitor address (v1.70)
  102031. 3Ah 12 WORDs saved register values on last popup entry (for <F8> key)
  102032. (original register values at popup entry of MDEBUG)
  102033. AX, BX, CX, DX, SI, DI, DS, ES, BP, SS, SP, flags
  102034. 52h 12 WORDs saved register values on last popup exit (for <SHIFT-F8> key)
  102035. AX, BX, CX, DX, SI, DI, DS, ES, BP, SS, SP, flags
  102036. 6Ah DWORD address of the DOS-invars-table
  102037. 6Eh DWORD address of the InDOS flag
  102038. 72h WORD offset of the register which is used for the segment of the
  102039. first monitor window
  102040. 74h WORD offset of the register which is used for the offset of the
  102041. first monitor window
  102042. 76h WORD name of the register which is used for the segment of the
  102043. first monitor segment
  102044. 78h WORD name of the register which is used for the offset of the first
  102045. monitor window
  102046. 7Ah WORD pseudo register 1
  102047. 7Ch WORD pseudo register 2
  102048. --------G-2FD103-----------------------------
  102049. INT 2F - MDEBUG command driver - EXECUTE KEY IN THE MONITOR
  102050. AX = D103h
  102051. BX = key code (like result of an interrupt 16h call)
  102052. CX = cursor position
  102053. 0000h in the ASCII column of the monitor
  102054. 0001h in one of the hex fields of the monitor
  102055. DS:SI -> MDEBUG data structure (see #03078)
  102056. ES:DI -> actual byte in the monitor
  102057. Return: AL = FFh
  102058. AH = return code
  102059. 00h key processed, read next key
  102060. 01h leave MDEBUG popup session
  102061. 02h leave MDEBUG popup session and automatically popup again if DOS
  102062. is not busy
  102063. 03h signal an error (beep)
  102064. 04h driver has redefined the key, proceed with the new key
  102065. BX = new key code
  102066. MDEBUG will not pass the new key to the command driver(s)
  102067. else treat like code 00h
  102068. Note: this function must end with a far call to the old INT 2F handler (with
  102069. registers unchanged) if the driver does not support the key in BX.
  102070. Otherwise, the driver must not chain to the old INT 2F.
  102071. SeeAlso: AX=D104h
  102072. --------G-2FD104-----------------------------
  102073. INT 2F - MDEBUG command driver - EXECUTE KEY IN THE INTERPRETER
  102074. AX = D104h
  102075. DS:SI -> MDEBUG data structure (see #03078)
  102076. Return: AL = FFh
  102077. AH = return code
  102078. 00h key processed, read next key
  102079. 01h leave MDEBUG popup session
  102080. 02h leave MDEBUG popup session and automactically popup again if
  102081. DOS is not busy
  102082. 03h signal an error (beep)
  102083. 04h driver has redefined the key, proceed with the new key
  102084. BX = new key code
  102085. MDEBUG won't pass the new key to the command driver(s)
  102086. 05h put new command line into the input buffer
  102087. DS:SI -> new command line (ASCIZ string, max 66 chars)
  102088. 06h process new command line
  102089. DS:SI -> new command line (ASCIZ string, max 66 chars)
  102090. else treat like code 00h
  102091. Note: this function must end with a far call to the old INT 2F handler if the
  102092. driver does not support the key in BX. Otherwise, the driver must
  102093. not chain to the old INT 2F.
  102094. SeeAlso: AX=D103h
  102095. --------G-2FD1-------------------------------
  102096. INT 2F - MDEBUG command driver - RESERVED FUNCTIONS
  102097. AH = D1h
  102098. AL = 05h-0Ah
  102099. Note: these functions are reserved for future use
  102100. --------G-2FD110-----------------------------
  102101. INT 2F - MDEBUG command driver - GET ADDRESS OF THE OLD INT 2F
  102102. AX = D110h
  102103. Return: DL = FFh
  102104. ES:BX -> next program in the chain for INT 2F
  102105. CX = code segment of this driver
  102106. DI = offset of driver identification table (see #03079) (v1.60+)
  102107. Notes: only called by the transient part of the driver
  102108. must be reentrant and the driver must not chain this function to the
  102109. old INT 2F
  102110. Format of the MDEBUG driver identification table:
  102111. Offset Size Description (Table 03079)
  102112. 00h 26 BYTEs signature "Kommandotreiber f�r MDEBUG"
  102113. ^- Note: ASCII 129,German U-umlaut
  102114. 27h 12 BYTEs name of driver, e.g. "MDHISDRV.COM"
  102115. each driver must have a unique name
  102116. --------G-2FD111-----------------------------
  102117. INT 2F - MDEBUG command driver - START DRIVER
  102118. AX = D111h
  102119. Return: DL = FFh
  102120. Notes: only called by the transient part of the driver to inform the resident
  102121. part that it is installed
  102122. the function must be reentrant and the driver mustn't chain this
  102123. function to the old INT 2F
  102124. SeeAlso: AX=D101h,AX=D112h
  102125. --------G-2FD112-----------------------------
  102126. INT 2F - MDEBUG command driver - END DRIVER
  102127. AX = D112h
  102128. Return: DL = FFh
  102129. Notes: only called by the transient part of the driver to inform the resident
  102130. part that it will be released after this function
  102131. the function must be reentrant and the driver mustn't chain this
  102132. function to the old INT 2F
  102133. SeeAlso: AX=D101h,AX=D111h
  102134. --------G-2FD1-------------------------------
  102135. INT 2F - MDEBUG command driver - RESERVED FUNCTIONS
  102136. AH = D1h
  102137. AL = 13h-7Fh
  102138. Note: these functions are reserved for future use
  102139. --------G-2FD1-------------------------------
  102140. INT 2F - MDEBUG command driver - USER DEFINED FUNCTIONS
  102141. AH = D1h
  102142. AL = 80h-FFh
  102143. Note: these functions are reserved for user defined features (e.g.
  102144. communication between the transient und resident parts of the driver)
  102145. --------U-2FD200-----------------------------
  102146. INT 2F - PCL-838.EXE - INSTALLATION CHECK
  102147. AX = D200h
  102148. Return: AL = FFh if installed??? (documented as AX = return value)
  102149. Program: PCL-838 is a resident utility for controlling a stepmotor adapter
  102150. board by Advantec
  102151. SeeAlso: AX=D201h"PCL-838",AX=D202h"PCL-838"
  102152. --------Q-2FD200BX5144-----------------------
  102153. INT 2F - Quarterdeck RPCI - INSTALLATION CHECK
  102154. AX = D200h
  102155. BX = 5144h ("QD")
  102156. CX = 4D45h ("ME")
  102157. DX = 4D30h ("M0")
  102158. Return: AL = FFh installed
  102159. if BX,CX,DX registers were as specified on entry:
  102160. BX = 4D45h ("ME")
  102161. CX = 4D44h ("MD")
  102162. DX = 5652h ("VR")
  102163. Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
  102164. Notes: the Quarterdeck RPCI (Resident Program Communication Interface) is
  102165. supported by QEMM v5.0+, QRAM, MANIFEST, VIDRAM, etc.
  102166. for AL <> 0, if the BX/CX/DX values don't match the identifier of a
  102167. Quarterdeck product, it just chains to the previous INT 2F handler
  102168. SeeAlso: AX=D201h/BX=4849h,AX=D201h/BX=4D41h,AX=D201h/BX=4D45h
  102169. SeeAlso: AX=D201h/BX=5145h,AX=D201h/BX=5649h
  102170. --------U-2FD201-----------------------------
  102171. INT 2F - PCL-838.EXE - UNINSTALL
  102172. AX = D201h
  102173. Return: AX = return value
  102174. SeeAlso: AX=D200h"PCL-838",AX=D202h"PCL-838"
  102175. --------m-2FD201BX4849-----------------------
  102176. INT 2F - Quarterdeck RPCI - GET QD HIMEM PRESENCE
  102177. AX = D201h
  102178. BX = 4849h ("HI")
  102179. CX = 4D45h ("ME")
  102180. DX = 4D51h ("MQ")
  102181. Return: BX = 4F4Bh ("OK")
  102182. ES:DI -> HIMEM entry point
  102183. Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
  102184. SeeAlso: AX=D200h,AX=D201h/BX=5145h
  102185. --------m-2FD201BX4849-----------------------
  102186. INT 2F - Quarterdeck RPCI - QEMM/QRAM v5.0+ - GET HIRAM MEMORY CHAIN
  102187. AX = D201h
  102188. BX = 4849h ("HI")
  102189. CX = 5241h ("RA")
  102190. DX = 4D30h ("M0")
  102191. Return: BX = 4F4Bh ("OK")
  102192. CX = segment of start of HIRAM chain
  102193. DX = reserved block owner (QEMM/QRAM code segment)
  102194. Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
  102195. Note: the HIRAM memory chain has the same format as the regular DOS 4.0
  102196. memory chain (see #01628 at INT 21/AH=52h), except that XMS Upper
  102197. Memory Blocks have the block header program name field set to
  102198. "UMB"; blocks whose "owner" field is set to the reserved segment
  102199. returned in DX are locked-out regions such as video memory and ROMs.
  102200. SeeAlso: AX=12FFh/BX=0006h,AX=D200h
  102201. --------G-2FD201BX4D41-----------------------
  102202. INT 2F U - Quarterdeck RPCI - MANIFEST v1.0+ - INSTALLATION CHECK
  102203. AX = D201h
  102204. BX = 4D41h ("MA")
  102205. CX = 4E49h ("NI")
  102206. DX = 4645h ("FE")
  102207. Return: BX = 5354h ("ST") if installed
  102208. Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
  102209. SeeAlso: AX=D200h
  102210. --------E-2FD201BX4D45-----------------------
  102211. INT 2F U - Quarterdeck RPCI - DVDOS4GX.DVR - ???
  102212. AX = D201h
  102213. BX = 4D45h ("ME")
  102214. CX = 5155h ("QU")
  102215. DX = 5044h ("PD")
  102216. Return: AL = FFh
  102217. BX = 4F4Bh ("OK")
  102218. Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
  102219. Note: this function is called by QEMM 6.03
  102220. performs a variety of actions before setting return registers
  102221. SeeAlso: AX=D200h
  102222. --------m-2FD201BX5145-----------------------
  102223. INT 2F - Quarterdeck RPCI - QEMM v5.0+ - INSTALLATION CHECK
  102224. AX = D201h
  102225. BX = 5145h ("QE")
  102226. CX = 4D4Dh ("MM")
  102227. DX = 3432h ("42")
  102228. Return: BX = 4F4Bh ("OK")
  102229. ES:DI -> QEMM API entry point (see INT 67/AH=3Fh)
  102230. Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
  102231. Note: this call is not available under QEMM v6.00 unless Windows3 support
  102232. has been disabled with the NW3 switch to QEMM386.SYS
  102233. SeeAlso: AX=D200h,AX=D201h/BX=4849h,INT 67/AH=3Fh
  102234. --------V-2FD201BX5649-----------------------
  102235. INT 2F u - Quarterdeck RPCI - VIDRAM v5.0+ - INSTALLATION CHECK
  102236. AX = D201h
  102237. BX = 5649h ("VI")
  102238. CX = 4452h ("DR")
  102239. DX = 414Dh ("AM")
  102240. Return: BX = 4F4Bh ("OK")
  102241. ES:DI -> VIDRAM entry point (see #03080)
  102242. Range: AH=C0h to AH=FFh, selected by scanning AH=D2h-FFh, then AH=C0h-D1h
  102243. SeeAlso: AX=D200h
  102244. (Table 03080)
  102245. Call VIDRAM entry point with:
  102246. AH = 00h get status
  102247. Return: AL = VIDRAM state (see #03081)
  102248. BL = extra RAM status (see #03082)
  102249. BH = feature flags (see #03083)
  102250. CL = current monitor (01h = mono, 80h = color)
  102251. SI = current top of memory (paragraph)
  102252. DI = segment of start of HiRAM chain
  102253. AH = 01h setup
  102254. AL = VIDRAM state (see #03081)
  102255. BL = extra RAM status (see #03082)
  102256. BH = feature flags (see #03083)
  102257. CL = monitor (01h = monochrome, 80h = color)
  102258. SI = new top of memory (paragraph)
  102259. DI = segment of start of HiRAM chain
  102260. AH = 02h get end address of VIDRAM code
  102261. Return: ES:DI -> VIDRAM partial map context (see #03084,#03085)
  102262. Return: CF set on error
  102263. CF clear if successful
  102264. (Table 03081)
  102265. Values for VIDRAM state:
  102266. 00h off
  102267. 01h no EGA graphics
  102268. 02h no graphics at all
  102269. (Table 03082)
  102270. Values for VIDRAM extra RAM status:
  102271. 00h VIDRAM does not use extra RAM
  102272. 01h VIDRAM uses EMS as extra RAM
  102273. 02h VIDRAM uses EGA as extra RAM
  102274. Bitfields for VIDRAM feature flags:
  102275. Bit(s) Description (Table 03083)
  102276. 0 override enabled
  102277. 1 mapped memory detected in A000h-B000h range
  102278. 2 top of memory not at 640K
  102279. 3 MDA detected
  102280. 4 high RAM exists in video area
  102281. 5 mapped memory detected in video area
  102282. 6-7 reserved???
  102283. Format of VIDRAM partial map context (EMS 3.2):
  102284. Offset Size Description (Table 03084)
  102285. 00h BYTE EMS version ID (32h)
  102286. 01h WORD EMM handle for this entry
  102287. 03h BYTE number of frames
  102288. 04h BYTE first page frame
  102289. 05h WORD offset from ES to previously saved map
  102290. Format of VIDRAM partial map context (EMS 4.0):
  102291. Offset Size Description (Table 03085)
  102292. 00h BYTE EMS version ID (40h)
  102293. 01h WORD mappable segment count
  102294. 03h N WORD mappable segments
  102295. WORD offset to previously saved map???
  102296. --------U-2FD202-----------------------------
  102297. INT 2F - PCL-838.EXE - EXECUTE PCL838 COMMANDS
  102298. AX = D202h
  102299. CX:BX -> parameter table
  102300. Return: AX = return value
  102301. SeeAlso: AX=D200h"PCL-838",AX=D201h"PCL-838"
  102302. --------R-2FD300BX4562-----------------------
  102303. INT 2F U - TeleReplica - INSTALLATION CHECK
  102304. AX = D300h
  102305. BX = 4562h
  102306. CX = 2745h
  102307. DX = serial port I/O base address??? (03F8h for v3.9)
  102308. Return: SI = segment of resident code
  102309. AX = 251Dh
  102310. BX = DF21h
  102311. CX = F321h
  102312. DX = ???
  102313. --------R-2FD3CB-----------------------------
  102314. INT 2F U - LapLink Quick Connect v6 - API
  102315. AX = D3CBh
  102316. CX = function
  102317. 0002h get ???
  102318. Return: BX:AX -> ???
  102319. CL = ???
  102320. CH = ???
  102321. DX = ???
  102322. DI = COM1 I/O port???
  102323. SI = COM2 I/O port???
  102324. 0003h initialization???
  102325. 0004h ???
  102326. 0005h initialization???
  102327. 0006h reset/clear ???
  102328. Return: AX = 0000h
  102329. ES:DI -> next byte after ??? cleared by this call
  102330. 0007h initialization???
  102331. 0008h uninstall
  102332. Return: BX = status
  102333. 0000h successful
  102334. FFFFh incomplete, stub remains in memory
  102335. Return: CX = 534Bh (except function 0002h)
  102336. Index: uninstall;LapLink Quick Connect
  102337. --------K-2FD3D3BH00-------------------------
  102338. INT 2F - KDRIVE v2.x - INSTALLATION CHECK
  102339. AX = D3D3h
  102340. BH = 00h
  102341. Return: BX = 3D3Dh if installed
  102342. CF clear if installed
  102343. AX = driver ID??? (returns 0087h for KDRIVE.EXE and 0880h for
  102344. KDRIVOS2.EXE in one examined version)
  102345. Program: KDRIVE is a shareware extended German keyboard driver by Martin
  102346. Austermeier, originally based on K3 by Martin Gerdes as published
  102347. in c't magazine 7/1988
  102348. --------l-2FD44D-----------------------------
  102349. INT 2F - 4DOS.COM v2.1+ - API
  102350. AX = D44Dh
  102351. BH = function
  102352. 00h installation check
  102353. Return: AX = 44DDh
  102354. BL = major version number
  102355. BH = minor version number
  102356. CX = PSP segment address for current invocation
  102357. DL = 4DOS shell number (0 for the first (root) shell,
  102358. updated each time a new copy is loaded)
  102359. 01h (internal, v2.1-3.03) terminate current copy of 4DOS
  102360. Return: nothing
  102361. (internal, v4.0+) ???
  102362. Return: AX = 44DDh
  102363. ES:BX -> data area (see #03086)
  102364. 02h ???
  102365. DX = ???
  102366. Note: v5.52 signals "unrecoverable error" and then terminates
  102367. with INT 21/AH=4Ch or enters a deliberate infinite
  102368. loop if ???
  102369. ---v2.1-3.03 only---
  102370. 03h EXEC program
  102371. CX:DX -> EXEC record (see #03087)
  102372. FEh deallocate shell number (passed through to root shell)
  102373. ???
  102374. FFh allocate shell number (passed through to root shell)
  102375. ---v5.52---
  102376. 03h get ???
  102377. BL = ??? (00h/01h)
  102378. Return: DX = current value of ???
  102379. 04h set ???
  102380. BL = ??? (00h/01h)
  102381. DX = new value for ???
  102382. Note: a bug in v3.00 will crash the system if unrecognized value in BH
  102383. SeeAlso: AX=D44Eh,AX=D44Fh/BX=0000h,AX=E44Dh,INT 21/AX=4403h"DOS"
  102384. SeeAlso: INT 14/AX=7000h
  102385. Index: installation check;4DOS|installation check;NDOS
  102386. Format of 4DOS v4.0 data area:
  102387. Offset Size Description (Table 03086)
  102388. 00h 2 BYTEs ???
  102389. 06h WORD XMS handle for swapping
  102390. ???
  102391. SeeAlso: #03087
  102392. Format of 4DOS EXEC v2.1-v3.03 record:
  102393. Offset Size Description (Table 03087)
  102394. 00h WORD offset of ASCIZ program name in same segment as EXEC record
  102395. 02h WORD offset of DOS commandline in same segment as EXEC record
  102396. 04h WORD segment of environment for child process (see INT 21/AH=26h)
  102397. SeeAlso: #03086
  102398. --------l-2FD44E-----------------------------
  102399. INT 2F C - 4DOS v3.0+ - AWAITING USER INPUT
  102400. AX = D44Eh
  102401. ---4DOS v3.01+---
  102402. BX = condition
  102403. 0000h 4DOS is ready to display prompt
  102404. 0001h 4DOS has displayed the prompt, about to accept user input
  102405. Return: the handler must preserve SI, DI, BP, SP, DS, ES, and SS
  102406. Note: v3.00 only makes the call corresponding to BX=0001h, does not set BX
  102407. SeeAlso: AX=D44Dh
  102408. --------K-2FD44FBX0000-----------------------
  102409. INT 2F - 4DOS v4.0+ - KSTACK.COM - INSTALLATION CHECK
  102410. AX = D44Fh
  102411. BX = 0000h
  102412. Return: AX = 44DDh if installed
  102413. Note: this function is also supported by ANSIPLUS v3.01+ and K3PLUS v6.20+,
  102414. which emulate the 4DOS and NDOS keystack
  102415. SeeAlso: AX=D44Dh,AX=D44Fh/BX=0001h,AX=E44Fh/BX=0000h
  102416. --------K-2FD44FBX0001-----------------------
  102417. INT 2F - 4DOS v4.0+ - KSTACK.COM - PLACE KEYSTROKES INTO KEYSTACK
  102418. AX = D44Fh
  102419. BX = 0001h
  102420. CX = number of keystrokes (01h-FFh)
  102421. DS:DX -> keystroke list (one word per keystroke)
  102422. Return: AX = status
  102423. 0000h successful
  102424. nonzero failed
  102425. BX,CX,DX destroyed
  102426. Notes: the keystrokes are the exact values to return from subsequent calls to
  102427. INT 16 with AH=00h,01h,10h, or 11h, with the following exceptions:
  102428. 0000h causes subfunctions 01h and 11h to indicate an empty
  102429. keyboard buffer
  102430. FFFFh is followed by a word indicating the number of clock
  102431. ticks to delay before the next faked keystroke
  102432. v4.00 KSTACK overwrites any unread keystrokes from the previous
  102433. invocation, and does not range-check CX; it will overwrite memory
  102434. following the resident portion if CX is greater than 100h.
  102435. this function is also supported by ANSIPLUS v3.01+ and K3PLUS v6.20+,
  102436. which emulate the 4DOS and NDOS keystack
  102437. SeeAlso: AX=D44Dh,AX=D44Fh/BX=0000h,INT 16/AH=00h,INT 21/AX=4403h"DOS"
  102438. --------G-2FD600-----------------------------
  102439. INT 2F - HEART.COM - INSTALLATION CHECK
  102440. AX = D600h
  102441. Return: AX = 0303h (two hearts) if installed
  102442. ES:DI -> buffer (see #03088)
  102443. Program: HEART.COM is a CPU lock-up/critical indicator utility by Mitch Davis.
  102444. Notes: Once the host program has identified the address of the data area, it
  102445. can change this to indicate safe/critical, alternate colours, etc.
  102446. The entries for the color table are in char/attrib form. Every two
  102447. entries form a pair which is alternated between 68 times a minute.
  102448. The first half of the table is for color videos, the second mono.
  102449. Within each half, the first half is for the safe chars, and the
  102450. second for the critical chars.
  102451. Format of HEART.COM buffer:
  102452. Offset Size Description (Table 03088)
  102453. 00h 8 WORDs table of colors/attributes (refer to notes above)
  102454. 10h BYTE flags
  102455. bit 0: program is in critical section, so flash double
  102456. exclamation mark
  102457. bit 1: program is in safe code, so flash the heart character
  102458. 11h WORD position of heartbeat on screen, normally 009Eh (last column
  102459. of second line)
  102460. --------T-2FD600-----------------------------
  102461. INT 2F U - VEDIT VSWAP - INSTALLATION CHECK
  102462. AX = D600h
  102463. Return: AL = D6h if installed
  102464. Program: VSWAP is the resident portion of VEDIT's "swapper" capability; VEDIT
  102465. is a programmer's text editor by Greenview Data.
  102466. SeeAlso: AX=D601h,AX=D602h
  102467. --------T-2FD601-----------------------------
  102468. INT 2F U - VEDIT VSWAP - ???
  102469. AX = D601h
  102470. BL = subfunction number???
  102471. Return: BL = return code ???
  102472. ES = resident portion's data??? segment
  102473. DX = resident portion's code segment
  102474. SeeAlso: AX=D600h"VSWAP"
  102475. --------T-2FD602-----------------------------
  102476. INT 2F U - VEDIT VSWAP - EXEC PROGRAM WITH SWAP
  102477. AX = D602h
  102478. other registers set as for INT 21/AX=4B00h
  102479. Return: CF set on error
  102480. AL = error code
  102481. 82h = failure due to ???
  102482. CF clear on success
  102483. SeeAlso: AX=D600h"VSWAP",INT 21/AH=4Bh"EXEC"
  102484. --------N-2FD701BX0000-----------------------
  102485. INT 2F - Banyan VINES v4+ - GET BANV INTERRUPT NUMBER
  102486. AX = D701h
  102487. BX = 0000h
  102488. Return: AX = 0000h if installed
  102489. BX = interrupt number (60h to 66h)
  102490. nonzero not present
  102491. Note: if AX is nonzero, VINES 3.x or earlier may be installed, thus it is
  102492. necessary to examine the four bytes preceding the handlers for
  102493. INT 60 through INT 66 for the string "BANV"
  102494. SeeAlso: AX=D702h,AX=D703h,AX=D704h
  102495. --------N-2FD702-----------------------------
  102496. INT 2F U - Banyan VINES v4+ - PCPRINT interface
  102497. AX = D702h
  102498. BX = function
  102499. ???
  102500. Return: ???
  102501. SeeAlso: AX=D701h,AX=D703h,INT 61/AX=0005h"Banyan"
  102502. --------N-2FD703-----------------------------
  102503. INT 2F U - Banyan VINES v4+ - MAIL interface
  102504. AX = D703h
  102505. BX = function
  102506. ???
  102507. Return: ???
  102508. SeeAlso: AX=D702h,AX=D704h
  102509. --------N-2FD704-----------------------------
  102510. INT 2F U - Banyan VINES v4+ - Streettalk Directory Assistance interface
  102511. AX = D704h
  102512. BX = function
  102513. ???
  102514. Return: ???
  102515. SeeAlso: AX=D703h,INT 61/AX=0007h/BX=0002h"Banyan",INT 61/AX=0007h/BX=0008h
  102516. --------N-2FD800-----------------------------
  102517. INT 2F U - Novell NetWare Lite - CLIENT.EXE - INSTALLATION CHECK
  102518. AX = D800h
  102519. Return: AL = FFh if installed
  102520. DX = version number (0100h for v1.0, 0101h for v1.1)
  102521. BX = data segment of resident copy
  102522. ES:DI -> private API entry point (see #03089)
  102523. SI = segment of resident code
  102524. SeeAlso: AX=7A00h,AX=D880h
  102525. (Table 03089)
  102526. Call CLIENT API entry point with:
  102527. BX = function
  102528. 0000h get ???
  102529. Return: DX = CLIENT version??? (0101h for v1.1)
  102530. ES:BX -> ??? data
  102531. 0001h ???
  102532. 0002h ???
  102533. 0003h ???
  102534. 0004h ???
  102535. 0005h ???
  102536. DL = ???
  102537. ???
  102538. Return: ???
  102539. 0006h get module name???
  102540. ES:DI -> 16-byte buffer
  102541. Return: CX = ???
  102542. ES:DI filled with "NWLITE_CLIENT" 00h 00h 00h
  102543. 0007h ???
  102544. DX:CX = ???
  102545. ???
  102546. Return: ???
  102547. 0008h ???
  102548. 0009h ???
  102549. DL = ???
  102550. ES:DI -> 16-byte buffer for ???
  102551. Return: CF clear if successful
  102552. AX = 0000h
  102553. CX = 0000h
  102554. SI,DI destroyed
  102555. CF set on error
  102556. AX = error code 4903h
  102557. 000Ah ???
  102558. AH = subfunction
  102559. 00h get ???
  102560. 01h clear/set ??? flag
  102561. AL = new state (00h cleared, 01h set)
  102562. 02h set ???
  102563. DX = new value of ???
  102564. Return: DX = old value of ???
  102565. 000Bh ???
  102566. AX = ???
  102567. ???
  102568. Return: ???
  102569. 000Ch ???
  102570. AX = ???
  102571. ???
  102572. Return: ???
  102573. 000Dh ???
  102574. AX = ???
  102575. ???
  102576. Return: ???
  102577. 000Eh get original INT 17
  102578. Return: CF clear
  102579. ES:BX -> original INT 17
  102580. 000Fh ???
  102581. 0010h ???
  102582. AX = ???
  102583. ???
  102584. Return: ???
  102585. 0011h get ???
  102586. Return: CF clear
  102587. DL = ???
  102588. 0012h get ???
  102589. AL = index of ???
  102590. ES:DI -> 10-byte buffer for ???
  102591. Return: CF clear if successful
  102592. ES:DI buffer filled
  102593. AX,CX destroyed
  102594. CF set on error
  102595. AX = error code (4907h if AL out of range)
  102596. 0013h get ???
  102597. Return: CF clear
  102598. DH = ???
  102599. DL = ???
  102600. 0014h ???
  102601. DL = ???
  102602. ???
  102603. Return: CF clear if successful
  102604. ???
  102605. CF set on error
  102606. AX = error code 8056h
  102607. 0015h ???
  102608. DX = ???
  102609. Return: ES:DI -> ???
  102610. other
  102611. Return: CF set
  102612. AX = 0001h (invalid function)
  102613. --------N-2FD856-----------------------------
  102614. INT 2F U - Novell NetWare Lite v1.1 - SERVER - GET ???
  102615. AX = D856h
  102616. Return: AX = 0001h if supported???
  102617. BX = ??? (0004h for v1.1)
  102618. CX = ??? (0F20h for v1.1)
  102619. DS = segment of resident code
  102620. ES = data segment of resident copy
  102621. Note: this function is also supported by Personal NetWare SERVER, bundled
  102622. with Novell DOS 7
  102623. --------N-2FD880-----------------------------
  102624. INT 2F U - Novell NetWare Lite v1.0+ - SERVER - INSTALLATION CHECK
  102625. AX = D880h
  102626. Return: AL = FFh if installed
  102627. DX = version number (binary, DH = major, DL = minor)
  102628. BX = data segment of resident copy
  102629. CL = current state (00h SERVER is disabled, 01h SERVER is active)
  102630. ES:DI -> private API entry point (see #03090)
  102631. SI = ??? (offset of configuration info?)
  102632. AH may be destroyed
  102633. Note: this function is also supported by Personal NetWare SERVER, but DI is
  102634. not set; instead, ES:SI points at the API entry point
  102635. SeeAlso: AX=7A00h,AX=D800h,INT 2A/AX=D852h
  102636. (Table 03090)
  102637. Call SERVER API entry point with:
  102638. BX = function
  102639. 0000h ???
  102640. ???
  102641. Return: ???
  102642. Note: closes open files by calling INT 21/AH=3Eh
  102643. 0001h get connection information
  102644. DX = connection number (0001h-max connections)
  102645. ES:DI -> 28-byte buffer for connection information
  102646. Return: CF clear if successful
  102647. ES:DI buffer filled
  102648. CF set on error
  102649. AX = FFFFh
  102650. ---Personal NetWare only---
  102651. 0002h ???
  102652. 0003h ???
  102653. 0004h ???
  102654. 0005h ???
  102655. 0006h ???
  102656. 0007h ???
  102657. other
  102658. Return: CF set
  102659. AX = 0001h (invalid function)
  102660. --------d-2FD8C0-----------------------------
  102661. INT 2F U - Novell NLCACHE,NWCACHE - INSTALLATION CHECK
  102662. AX = D8C0h
  102663. Return: AL = FFh if installed
  102664. CL = cache variant (01h NLCACHEC, 02h NLCACHEX, 03h NLCACHEM)
  102665. DH = major version??? (01h for v1.1)
  102666. DL = minor version??? (01h for v1.1)
  102667. ES:DI -> private API entry point (see #03091)
  102668. Program: NLCACHE is a disk cache included with NetWare Lite
  102669. SeeAlso: AX=D800h,AX=D880h
  102670. (Table 03091)
  102671. Call NLCACHE/NWCACHE API entry point with:
  102672. BX = function
  102673. 0000h ???
  102674. ???
  102675. Return: CF clear if successful
  102676. AX = 0000h
  102677. ???
  102678. CF set on error
  102679. AX = error code
  102680. 0001h (NWCACHE only) ???
  102681. ES:DI -> buffer for ???
  102682. Return: ???
  102683. other
  102684. Return: CF set
  102685. AX = 0001h (invalid function)
  102686. --------F-2FDA00-----------------------------
  102687. INT 2F - ZyXEL ZFAX v1.x - INSTALLATION CHECK
  102688. AX = DA00h
  102689. Return: AH = enabled state (00h = enabled, 01h = disabled)
  102690. AL = 5Ah installed
  102691. Program: ZFAX is the bundled FAX software which comes with the ZyXEL model
  102692. fax modems.
  102693. Note: This function, and the other DAxxh functions, may apply only to version
  102694. 1 of the software; see AX=DB00h for the version 2 installation check
  102695. SeeAlso: AX=CBDCh,AX=DA01h,AX=DA02h,AX=DA03h,AX=DB00h
  102696. --------F-2FDA01-----------------------------
  102697. INT 2F - ZyXEL ZFAX v1.x - UNINSTALL
  102698. AX = DA01h
  102699. Return: AL = 00h Success
  102700. 01h Failure
  102701. SeeAlso: AX=DA00h,AX=DB01h
  102702. --------F-2FDA02-----------------------------
  102703. INT 2F - ZyXEL ZFAX v.1x - DISABLE
  102704. AX = DA02h
  102705. Return: AL = 00h
  102706. SeeAlso: AX=DA03h,AX=DB02h
  102707. --------F-2FDA03-----------------------------
  102708. INT 2F - ZyXEL ZFAX v1.x - ENABLE
  102709. AX = DA03h
  102710. Return: AL = 00h
  102711. SeeAlso: AX=DA02h,AX=DB03h
  102712. --------G-2FDA55-----------------------------
  102713. INT 2F U - TRAP.COM - INSTALLATION CHECK
  102714. AX = DA55h
  102715. DL = interrupt number
  102716. DH = ???
  102717. Return: if installed
  102718. AH = interrupt number
  102719. AL = ???
  102720. ES:BX -> ???
  102721. Program: TRAP is an interrupt call tracer by Patrick Phillipot/Udo Chrosziel
  102722. Note: a separate copy of TRAP is loaded for each interrupt to be traced; thus
  102723. the interrupt number is part of the installation check
  102724. --------N-2FDAB2-----------------------------
  102725. INT 2F U - Beame&Whiteside BWSNMP - INSTALLATION CHECK
  102726. AX = DAB2h
  102727. Return: AX = 00FFh if installed
  102728. BX:CX -> MIB table
  102729. Program: BWSNMP is part of the BW-NFS package
  102730. SeeAlso: INT 62/AH=00h"ETHDEV"
  102731. --------F-2FDB00-----------------------------
  102732. INT 2F - ZyXEL ZFAX v2+ - INSTALLATION CHECK
  102733. AX = DB00h
  102734. Return: AL = 5Bh if installed (v2.x)
  102735. ES:BX -> configuration table???
  102736. AX = 00DBh if installed (v3)
  102737. ES:BX -> ZFAX configuration table (see #03092)
  102738. Program: ZFAX is the bundled FAX software which comes with the ZyXEL model
  102739. Fax modems.
  102740. SeeAlso: AX=CBDCh,AX=DA00h,AX=DB01h,AX=DB02h,AX=DB03h
  102741. Format of ZFAX Configuration Table:
  102742. Offset Size Description (Table 03092)
  102743. 00h WORD table version number (0300h for v3.0-v4.01)
  102744. 02h BYTE reserved
  102745. 03h 70 BYTEs ZFAX working path
  102746. 49h 128 BYTEs path to external editor
  102747. C9h 128 BYTEs path to external terminal emulator
  102748. 149h 128 BYTEs path to Ring Shell
  102749. 1C9h 128 BYTEs path to DOS Shell
  102750. 249h 128 BYTEs path to Data Shell
  102751. 2C9h 70 BYTEs path to Chinese font
  102752. 30Fh BYTE printer type (see #03093)
  102753. 310h BYTE printer port (00h = LPT1, etc.)
  102754. 311h BYTE type of graphics adapter
  102755. (00h auto-detect, 01h VGA, 02h EGA, 03h CGA, 04h Hercules)
  102756. 312h BYTE display type
  102757. (00h auto-detect, 01h LCD, 02h color, 03h mono)
  102758. 313h BYTE scan code for ZFAX hotkey (see #00006)
  102759. 314h BYTE shift mask for ZFAX hotkey
  102760. 315h BYTE tone/pulse dialing (00h tone, 01h pulse)
  102761. 316h BYTE Caller ID (00h disabled, 01h enabled)
  102762. 317h BYTE Distinctive Ring (00h disabled, 01h enabled)
  102763. 318h BYTE normal ring answer type (see #03094)
  102764. 319h BYTE Ring 1 answer type (see #03094)
  102765. 31Ah BYTE Ring 2 answer type (see #03094)
  102766. 31Bh BYTE Ring 3 answer type (see #03094)
  102767. 31Ch BYTE COM port for modem
  102768. 31Dh BYTE speaker volume (00h-07h)
  102769. 31Eh BYTE modem dial timer, seconds
  102770. 31Fh WORD user-defined COM port I/O address
  102771. 321h BYTE user-defined COM port IRQ number
  102772. 322h 81 BYTEs dial prefix string
  102773. 373h 79 BYTEs dial postfix string
  102774. 3C2h BYTE ring count until automatic answer
  102775. 3C3h BYTE retry count on busy signal
  102776. 3C4h BYTE redial delay in seconds
  102777. 3C5h WORD system password
  102778. 3C7h BYTE reserved
  102779. 3C8h BYTE voice file compression format
  102780. 00h CELP at 9600bps
  102781. 01h two-bit ADPCM at 19200bps
  102782. 02h three-bit ADPCM at 28800bps
  102783. 3C9h BYTE voice system: DTMF 0 action (see #03095)
  102784. 3CAh BYTE voice system: DTMF 1 action
  102785. 3CBh BYTE voice system: DTMF 2 action
  102786. 3CCh BYTE voice system: DTMF 3 action
  102787. 3CDh BYTE voice system: DTMF 4 action
  102788. 3CEh BYTE voice system: DTMF 5 action
  102789. 3CFh BYTE voice system: DTMF 6 action
  102790. 3D0h BYTE voice system: DTMF 7 action
  102791. 3D1h BYTE voice system: DTMF 8 action
  102792. 3D2h BYTE voice system: DTMF 9 action (see #03095)
  102793. 3D3h WORD reserved
  102794. 3D5h 25 BYTEs local FAX ID to display on page header
  102795. 3EEh 20 BYTEs local FAX ID sent to remote FAX
  102796. 402h BYTE FAX page size
  102797. 00h A4 (210x297mm)
  102798. 01h B4 (250x353mm)
  102799. 02h A3 (297x420mm)
  102800. 403h BYTE FAX resolution
  102801. 00h normal (3.85 pixels/mm)
  102802. 01h high (7.7 pixels/mm)
  102803. 404h BYTE FAX coding scheme
  102804. 00h 1-D, modified Huffman coding
  102805. 01h 2-D, modified READ coding
  102806. 405h BYTE left margin for text in millimeters
  102807. 406h BYTE vertical insertion for text in mm (0-20)
  102808. 407h BYTE horizontal insertion in mm (0-20)
  102809. 408h BYTE maximum text lines per page
  102810. 409h BYTE text type (00h ASCII, 01h WordStar-formatted)
  102811. 40Ah BYTE PCX image resize (00h disabled, 01h enabled)
  102812. 40Bh BYTE AutoPrint (00h disabled, 01h enabled)
  102813. 40Ch BYTE cover page (00h disabled, 01h enabled)
  102814. 40Dh 81 BYTEs cover page logo filename
  102815. 45Eh 65 BYTEs cover page sender name
  102816. 49Fh BYTE print capture (00h disabled, 01h enabled)
  102817. 4A0h BYTE send immediately (00h disabled, 01h enabled)
  102818. 4A1h BYTE print capture printer port
  102819. 4A2h BYTE print capture timer in seconds
  102820. 4A3h BYTE scan code for print capture hotkey (see #00006)
  102821. 4A4h BYTE shift mask for print capture hotkey
  102822. 4A5h BYTE DataShell type
  102823. 00h internal Zmodem, 01h Data Shell, 02h disable
  102824. 4A6h BYTE video I/O type
  102825. 00h auto-detect, 01h use BIOS, 02h direct writes
  102826. 4A7h BYTE call transfer digits (0-9)
  102827. 4A8h WORD voice recorder maximum time in seconds (0-999)
  102828. (Table 03093)
  102829. Values for ZFAX printer type:
  102830. 00h EPSON FX (9 pins)
  102831. 01h EPSON LQ (24 pins)
  102832. 02h HP Laser Jet II, letter size
  102833. 03h HP Laser Jet II, legal size
  102834. 04h HP Laser Jet II, A4 size
  102835. 05h HP Laser Jet III, letter size
  102836. 06h HP Laser Jet III, legal size
  102837. 07h HP Laser Jet III, A4 size
  102838. SeeAlso: #03092
  102839. (Table 03094)
  102840. Values for Ring Answer Type:
  102841. 00h voice system
  102842. 01h FAX only
  102843. 02h Data Shell
  102844. 03h Ring Shell
  102845. 04h DOS Shell
  102846. 05h ignore
  102847. SeeAlso: #03092
  102848. (Table 03095)
  102849. Values for DTMF action:
  102850. 00h none
  102851. 01h page operator
  102852. 02h FaxBack
  102853. 03h announcement
  102854. 04h call transfer
  102855. 05h receive FAX
  102856. 06h receive data
  102857. 07h voice mailbox
  102858. 08h DOS Shell Out
  102859. 09h Data Shell Out
  102860. SeeAlso: #03092
  102861. --------U-2FDB00-----------------------------
  102862. INT 2F U - WINGO.COM - INSTALLATION CHECK
  102863. AX = DB00h
  102864. Return: AX = FFFFh if installed
  102865. CX = 5749h ('WI') if installed
  102866. DX = 4E47h ('NG') if installed
  102867. ES = segment of resident code
  102868. Program: WINGO.COM is TSR for starting Windows programs from DOS
  102869. prompt (together with companion Windows program
  102870. WINSTART.EXE) written by Douglas Boling, contributing editor of
  102871. PC Magazine
  102872. Range: AH=DBh to AH=FFh, selected by scanning for a free multiplex number
  102873. SeeAlso: AX=DB01h"WINGO",AX=DB02h"WINGO",AX=DB03h"WINGO",AX=DB04h"WINGO"
  102874. SeeAlso: AX=DB05h"WINGO",AX=DB06h"WINGO"
  102875. --------F-2FDB01-----------------------------
  102876. INT 2F - ZyXEL ZFAX v2+ - UNINSTALL
  102877. AX = DB01h
  102878. Return: AX = status
  102879. 0000h successful
  102880. 0001h ZFAX is busy
  102881. 0002h another program resident above ZFAX
  102882. Note: this function unhooks the vectors taken by the ZFAX TSR if they have
  102883. not been hooked by other TSRs and releases the TSR's memory
  102884. ZFAX v2.x crashes the contributor's machine when this function is
  102885. called
  102886. SeeAlso: AX=DA01h,AX=DB00h"ZFAX",AX=DB02h"ZFAX"
  102887. --------U-2FDB01-----------------------------
  102888. INT 2F U - WINGO.COM - SET CALLBACK FUNCTION POINTER
  102889. AX = DB01h
  102890. CX:DX -> new callback function
  102891. Return: AX = 0000h
  102892. CX:DX -> end of resident code (stack ???)
  102893. Desc: the callback function is used for WINGO <-> WINSTART communication
  102894. SeeAlso: AX=DB00h"WINGO",AX=DB02h"WINGO",AX=DB03h"WINGO",AX=DB04h"WINGO"
  102895. SeeAlso: AX=DB05h"WINGO",AX=DB06h"WINGO"
  102896. --------F-2FDB02-----------------------------
  102897. INT 2F - ZyXEL ZFAX v2.x - DISABLE
  102898. AX = DB02h
  102899. Return: AL = 00h
  102900. SeeAlso: AX=DA02h,AX=DB00h"ZFAX",AX=DB01h"ZFAX",AX=DB03h"ZFAX"
  102901. --------U-2FDB02-----------------------------
  102902. INT 2F U - WINGO.COM - RESET CALLBACK FUNCTION POINTER
  102903. AX = DB02h
  102904. Return: AX = 0000h
  102905. Desc: the callback function is used for WINGO <-> WINSTART communication
  102906. SeeAlso: AX=DB00h"WINGO",AX=DB01h"WINGO",AX=DB03h"WINGO",AX=DB04h"WINGO"
  102907. SeeAlso: AX=DB05h"WINGO",AX=DB06h"WINGO"
  102908. --------F-2FDB03-----------------------------
  102909. INT 2F - ZyXEL ZFAX v2.x - ENABLE
  102910. AX = DB03h
  102911. Return: AL = 00h
  102912. SeeAlso: AX=DA03h,AX=DB00h"ZFAX",AX=DB02h"ZFAX"
  102913. --------U-2FDB03-----------------------------
  102914. INT 2F U - WINGO.COM - SET ??? FLAG
  102915. AX = DB03h
  102916. Return: AX = 0000h
  102917. SeeAlso: AX=DB00h"WINGO",AX=DB04h"WINGO",AX=DB05h"WINGO",AX=DB06h"WINGO"
  102918. --------U-2FDB04-----------------------------
  102919. INT 2F U - WINGO.COM - RESET ??? FLAG
  102920. AX = DB04h
  102921. Return: AX = 0000h
  102922. SeeAlso: AX=DB00h"WINGO",AX=DB03h"WINGO",AX=DB05h"WINGO",AX=DB06h"WINGO"
  102923. --------U-2FDB05-----------------------------
  102924. INT 2F U - WINGO.COM - GET ??? FLAG
  102925. AX = DB05h
  102926. Return: AX = 0000h
  102927. DX = unknown flag - 0 or 1
  102928. Program: WINGO.COM is TSR for starting Windows programs from DOS
  102929. prompt (together with companion Windows program
  102930. WINSTART.EXE) written by Douglas Boling, contributing editor of
  102931. PC Magazine
  102932. SeeAlso: AX=DB00h"WINGO",AX=DB03h"WINGO",AX=DB04h"WINGO"
  102933. --------U-2FDB06-----------------------------
  102934. INT 2F U - WINGO.COM - CALL CALLBACK FUNCTION
  102935. AX = DB06h
  102936. Return: AX = return value of INT 2F/AX=1685h
  102937. Note: uses Windows service INT 2F/AX=1685h (SWITCH VMs AND CALLBACK) to
  102938. call the callback function previously set by AX=DB01h
  102939. used for WINGO <-> WINSTART communication
  102940. SeeAlso: AX=1685h, AX=DB00h"WINGO",AX=DB01h"WINGO",AX=DB02h"WINGO",
  102941. SeeAlso: AX=DB03h"WINGO",AX=DB04h"WINGO",AX=DB05h"WINGO"
  102942. --------F-2FDB10-----------------------------
  102943. INT 2F - ZyXEL ZFAX v3+ - EXECUTE ZFAX MAIN MENU
  102944. AX = DB10h
  102945. SeeAlso: AX=DB00h"ZFAX",AX=DB11h"ZFAX"
  102946. --------F-2FDB11-----------------------------
  102947. INT 2F - ZyXEL ZFAX v3+ - SEND FAX
  102948. AX = DB11h
  102949. DS:SI -> filename including path (max 128 characters)
  102950. DS:BX -> remote FAX number
  102951. Return: AX = status (see #03096)
  102952. SeeAlso: AX=DB00h"ZFAX",AX=DB12h,AX=DB13h,AX=DB14h,AX=DB15h,AX=DB20h,AX=DB21h
  102953. (Table 03096)
  102954. Values for ZFAX status:
  102955. 00h OK
  102956. 01h invalid DOS function
  102957. 02h file not found
  102958. 03h path not found
  102959. 04h no file handle available
  102960. 05h access denied by DOS
  102961. 06h invalid handle
  102962. 07h disk full
  102963. 10h printer error
  102964. 11h no graphics font
  102965. 12h no ZFAX font
  102966. 20h DCD dropped while sending
  102967. 21h not ZyXEL modem
  102968. 22h busy
  102969. 23h no response from COM port
  102970. 24h no carrier
  102971. 25h no dial tone
  102972. 26h no answer
  102973. 27h no response
  102974. 28h failed to send FAX
  102975. 30h user aborted
  102976. 40h critical error on disk
  102977. 50h parameter error
  102978. --------F-2FDB12-----------------------------
  102979. INT 2F - ZyXEL ZFAX v3+ - PRINT FAX
  102980. AX = DB12h
  102981. DS:SI -> filename, including path (max 128 characters)
  102982. Return: AX = status (see #03096)
  102983. SeeAlso: AX=DB11h,AX=DB13h,AX=DB14h
  102984. --------F-2FDB13-----------------------------
  102985. INT 2F - ZyXEL ZFAX v3+ - CONVERT FAX
  102986. AX = DB13h
  102987. DS:SI -> source filename, including path (max 128 characters)
  102988. DS:BX -> destination filename, including path (max 80 characters)
  102989. CX = destination file format
  102990. 00h FAX, 01h PCX, 02h TIFF, 03h PRN
  102991. Return: AX = status (see #03096)
  102992. SeeAlso: AX=DB11h,AX=DB12h,AX=DB14h,AX=DB22h
  102993. --------F-2FDB14-----------------------------
  102994. INT 2F - ZyXEL ZFAX v3+ - VIEW FAX
  102995. AX = DB14h
  102996. DS:SI -> source filename, including path (max 128 characters)
  102997. Return: AX = status (see #03096)
  102998. SeeAlso: AX=DB11h,AX=DB12h,AX=DB14h
  102999. --------F-2FDB15-----------------------------
  103000. INT 2F - ZyXEL ZFAX v4.01 - SEND FAX WITH LOGO AND SIGNATURE
  103001. AX = DB15h
  103002. DS:SI -> source filename, including path (max 128 characters)
  103003. DS:BX -> remote FAX number
  103004. DS:CX -> Logo filename
  103005. DS:DX -> Signature filename
  103006. Return: AX = status (see #03096)
  103007. SeeAlso: AX=DB00h"ZFAX",AX=DB11h
  103008. --------F-2FDB16-----------------------------
  103009. INT 2F - ZyXEL ZFAX v4.01 - QUOTE PREVIOUS STATUS
  103010. AX = DB16h
  103011. Return: DX:AX -> previous receive state transaction log (see #03097)
  103012. BX = type (00h incoming FAX, 01h incoming data, 02h incoming voice)
  103013. SeeAlso: AX=DB00h"ZFAX",AX=DB11h,AX=DB17h
  103014. Format of ZFAX transaction log receive state:
  103015. Offset Size Description (Table 03097)
  103016. 00h WORD year
  103017. 02h WORD date
  103018. 04h WORD time
  103019. 06h WORD extension number
  103020. 08h WORD type: 00h incoming FAX, 01h outgoing FAX, 02h voice message
  103021. 0Ah WORD status: 00h normal, 01h remote delete
  103022. 0Ch 125 BYTEs filename
  103023. 89h 24 BYTEs caller ID
  103024. A1h 20 BYTEs FAX number
  103025. B5h 20 BYTEs remote FAX ID
  103026. C9h WORD error code
  103027. CBh WORD connection direction (00h transmit, 01h receive)
  103028. CDh BYTE connection time minutes
  103029. CEh BYTE connection time seconds
  103030. CFh BYTE ???
  103031. D0h WORD connection speed (24, 48, 72, 96, 12, 144)
  103032. D2h WORD connection page size (A4, B4, A3)
  103033. D4h WORD connection coding scheme (1-DN, 1-DH, 2-DN, 2-DH)
  103034. D6h WORD page count
  103035. --------F-2FDB17-----------------------------
  103036. INT 2F - ZyXEL ZFAX v4.01 - BEGIN RECEIVING INCOMING CALL
  103037. AX = DB17h
  103038. Return: AX = status (0000h successful, 0001h unable to start at this time)
  103039. SeeAlso: AX=DB00h"ZFAX"
  103040. --------F-2FDB18-----------------------------
  103041. INT 2F - ZyXEL ZFAX v4.01 - SCHEDULE CALL
  103042. AX = DB18h
  103043. DS:SI -> schedule data (see #03097)
  103044. Return: AX = status (see #03096)
  103045. SeeAlso: AX=DB00h"ZFAX"
  103046. --------F-2FDB20-----------------------------
  103047. INT 2F - ZyXEL ZFAX v3+ - POLL FAX
  103048. AX = DB20h
  103049. DS:SI -> remote FAX number
  103050. Return: AX = status (see #03096)
  103051. SeeAlso: AX=DB11h,AX=DB21h
  103052. --------F-2FDB21-----------------------------
  103053. INT 2F - ZyXEL ZFAX v3+ - SEND VOICE
  103054. AX = DB21h
  103055. DS:SI -> filename including path (max 128 characters)
  103056. DS:BX -> remote phone number
  103057. Return: AX = status (see #03096)
  103058. SeeAlso: AX=DB11h,AX=DB20h,AX=DB22h,AX=DB23h,AX=DB24h
  103059. --------F-2FDB22-----------------------------
  103060. INT 2F - ZyXEL ZFAX v3+ - CONVERT VOICE FILE
  103061. AX = DB22h
  103062. DS:SI -> source filename, including path (max 128 characters)
  103063. DS:BX -> destination filename, including path (max 80 characters)
  103064. CX = destination format
  103065. 00h two-bit ADPCM, 01h three-bit ADPCM, 02h VOC
  103066. Return: AX = status (see #03096)
  103067. SeeAlso: AX=DB13h,AX=DB20h,AX=DB21h,AX=DB23h
  103068. --------F-2FDB23-----------------------------
  103069. INT 2F - ZyXEL ZFAX v3+ - RECORD VOICE FILE
  103070. AX = DB23h
  103071. DS:SI -> destination filename, including path (max 128 characters)
  103072. CX = recording channel (0 = telephone line, 1 = microphone/speaker)
  103073. DX = voice file format
  103074. 00h CELP, 01h two-bit ADPCM, 02h three-bit ADPCM
  103075. Return: AX = status (see #03096)
  103076. SeeAlso: AX=DB21h,AX=DB22h,AX=DB24h
  103077. --------F-2FDB24-----------------------------
  103078. INT 2F - ZyXEL ZFAX v3+ - PLAY VOICE FILE
  103079. AX = DB24h
  103080. DS:SI -> name of voice file, including path (max 128 characters)
  103081. CX = playback channel (0 = telephone line, 1 = microphone/speaker)
  103082. Return: AX = status (see #03096)
  103083. SeeAlso: AX=DB21h,AX=DB22h,AX=DB24h
  103084. --------F-2FDB25-----------------------------
  103085. INT 2F - ZyXEL ZFAX v3+ - ANSWER MODEM WITH VOICE SYSTEM
  103086. AX = DB25h
  103087. Return: AX = status (see #03096)
  103088. SeeAlso: AX=DB21h,AX=DB22h,AX=DB26h,AX=DB27h,AX=DB28h
  103089. --------F-2FDB26-----------------------------
  103090. INT 2F - ZyXEL ZFAX v3+ - DIAL PHONE
  103091. AX = DB26h
  103092. DS:SI -> remote phone number
  103093. Return: AX = status (see #03096)
  103094. SeeAlso: AX=DB25h
  103095. --------F-2FDB27-----------------------------
  103096. INT 2F - ZyXEL ZFAX v3+ - RECEIVE FAX - ANSWER MODEM AND SET TO FAX MODE
  103097. AX = DB27h
  103098. Return: AX = status (see #03096)
  103099. SeeAlso: AX=DB25h,AX=DB28h
  103100. --------F-2FDB28-----------------------------
  103101. INT 2F - ZyXEL ZFAX v3+ - RECEIVE FAX DATA - ANSWER MODEM IN MULTI-AUDIO MODE
  103102. AX = DB28h
  103103. Return: AX = status (see #03096)
  103104. SeeAlso: AX=DB25h,AX=DB27h,AX=DB41h
  103105. --------F-2FDB40-----------------------------
  103106. INT 2F - ZyXEL ZFAX v3+ - INTERNAL TERMINAL
  103107. AX = DB40h
  103108. Return: AX = status (see #03096)
  103109. SeeAlso: AX=DB00h
  103110. --------F-2FDB41-----------------------------
  103111. INT 2F - ZyXEL ZFAX v3+ - SEND DATA - DIAL NUMBER AND UPLOAD FILE WITH ZMODEM
  103112. AX = DB41h
  103113. DS:SI -> source file name, including path (max 128 characters)
  103114. DS:BX -> remote data number
  103115. Return: AX = status (see #03096)
  103116. SeeAlso: AX=DB00h,AX=DB28h
  103117. --------K-2FDC00-----------------------------
  103118. INT 2F - GOLD.COM - INSTALLATION CHECK
  103119. AX = DC00h
  103120. Return: AL = state
  103121. 00h not installed
  103122. FFh installed
  103123. Program: GOLD is a TSR by Bob Eager which makes the NumLock key return the
  103124. code for F1; the purpose is to improve Kermit's VTxxx emulation
  103125. --------K-2FDC01-----------------------------
  103126. INT 2F - GOLD.COM - GET STATE
  103127. AX = DC01h
  103128. Return: AL = status
  103129. 00h off
  103130. 01h on
  103131. SeeAlso: AX=DC00h,AX=DC02h
  103132. --------K-2FDC02-----------------------------
  103133. INT 2F - GOLD.COM - SET STATE
  103134. AX = DC02h
  103135. DL = new state
  103136. 00h off
  103137. 01h on
  103138. Return: AL = 00h (OK)
  103139. SeeAlso: AX=DC01h
  103140. --------t-2FDD-------------------------------
  103141. INT 2F - CappaCom programs - API
  103142. AH = DDh
  103143. AL = 00h general installation check
  103144. Return: AL = FFh if any CappaCom programs are resident
  103145. AL = FEh get info
  103146. Return: ES:BX -> TSR info list (see #03098)
  103147. AL = program identifier
  103148. BH = function
  103149. FDh get version
  103150. Return: BX = version
  103151. FFh installation check
  103152. Return: AL = FFh if installed
  103153. BX = version
  103154. ES = segment of resident code
  103155. others vary by program
  103156. Return: AL = status
  103157. bit 7 set on error
  103158. AL = 81h unknown function
  103159. Note: CappaCom was originally SoftCom but changed its name due to a trademark
  103160. conflict
  103161. Index: installation check;SoftCom programs
  103162. Index: installation check;CappaCom programs
  103163. Format of CappaCom TSR info list:
  103164. Offset Size Description (Table 03098)
  103165. 00h 9 BYTEs blank-padded ASCIZ program name
  103166. 09h BYTE program ID
  103167. 0Ah WORD program's PSP segment
  103168. 0Ch WORD program version (major in high byte)
  103169. 0Eh DWORD pointer to next item in info list or 0000h:0000h
  103170. 12h BYTE number of interrupts hooked
  103171. 13h 5 BYTEs interrupt numbers hooked by program
  103172. 18h 8 BYTEs reserved
  103173. ----------2FDD-------------------------------
  103174. INT 2F - MIXFIX.EXE - API
  103175. AH = DDh
  103176. AL = function
  103177. 00h installation check
  103178. Return: AX = 00DDh if installed
  103179. BX = version (BH = major, BL = minor)
  103180. 41h/61h get From: address
  103181. Return: AX = 0001h
  103182. ES:BX -> ASCIZ 4d address of mail sender ("1:2/3.4")
  103183. 49h/69h get To: address
  103184. Return: AX = 0001h
  103185. ES:BX -> ASCIZ 4d address of recipient ("1:2/3.4")
  103186. 4Ah/6Ah get subject of mail
  103187. Return: AX = 0001h
  103188. ES:BX -> ASCIZ subject of handled mail
  103189. 4Dh/6Dh get mail name
  103190. Return: AX = 0001h
  103191. ES:BX -> ASCIZ full name of current mail file
  103192. 4Eh/6Eh get From: field
  103193. Return: AX = 0001h
  103194. ES:BX -> ASCIZ From: field of mail (mail sender's name)
  103195. Program: MIXFIX by "KIV without Co" is a FidoNet mail robot which may execute
  103196. other programs for mail handling. The called programs may use the
  103197. services described here to retrieve information about the mail being
  103198. handled.
  103199. Index: installation check;MIXFIX.EXE
  103200. --------d-2FDD--BX7844-----------------------
  103201. INT 2F - xDISK v3.32+ - INSTALLATION CHECK
  103202. AH = DDh
  103203. BX = 7844h ('xD')
  103204. CX = 4953h ('IS')
  103205. DX = 4B3Fh ('K?')
  103206. AL = desired drive (01h-1Ah) or 00h to check for xDISK on any drive
  103207. ES:DI -> 25-byte data buffer (see #03099)
  103208. Return: AX = DDFFh if installed (on specified drive if AL nonzero on entry)
  103209. BX = 87BBh
  103210. DX = B4C0h
  103211. ES:DI buffer filled
  103212. CX,CF destroyed
  103213. SeeAlso: INT 21/AX=4404h"xDISK",INT 21/AX=4405h"xDISK"
  103214. Format of xDISK data buffer:
  103215. Offset Size Description (Table 03099)
  103216. 00h DWORD pointer to ASCIZ driver signature "xDISK unit: X"
  103217. 04h BYTE flag: 01h if disk linked to DOS, 00h if unlinked
  103218. 05h BYTE flag: 01h if write protected, 00h if not
  103219. 06h BYTE flag: 01h if root directory full, 00h if not
  103220. 07h BYTE flag: 01h if free space uncompacted, 00h if compacted
  103221. 08h BYTE resizing state: 00h not resizable, 01h resized, 80h resizable
  103222. 09h BYTE flag: 01h inelastic resizable disk, 00h elastic
  103223. 0Ah 2 BYTEs reserved
  103224. 0Ch BYTE flag: 01h collapsed disk, 00h not collapsed
  103225. 0Dh BYTE flag: 01h using all EMS, 00h some EMS free
  103226. 0Eh BYTE flag: 01h password enabled, 00h disabled
  103227. 0Fh BYTE flag: 01h password audio feedback, 00h no feedback
  103228. 10h BYTE flag: 01h password video feedback, 00h no feedback
  103229. 11h BYTE flag: 01h confirm changes, 00h no confirmation
  103230. 12h BYTE flag: 01h terse display, 00h verbose display
  103231. 13h BYTE flag: 01h click speaker on disk access, 00h no click
  103232. 14h BYTE flag: 01h flash icon on disk access, 00h no icon flash
  103233. 15h BYTE FAT entry size: 00h 12-bit, FFh 16-bit
  103234. 16h WORD count of open files in RAM disk
  103235. 18h BYTE unused
  103236. --------N-2FDE00BL00-------------------------
  103237. INT 2F U - Novell Netware - RPRINTER, NPRINTER - INSTALLATION CHECK
  103238. AX = DE00h
  103239. BL = 00h
  103240. Return: AL = FFh If Rprinter/Nprinter Installed
  103241. BX -> Program Segment Prefix N/Rprinter.exe
  103242. --------Q-2FDE00BX4456-----------------------
  103243. INT 2F - DESQview v2.26+ External Device Interface - INSTALLATION CHECK
  103244. AX = DE00h
  103245. BX = 4456h ("DV")
  103246. CX = 5844h ("XD")
  103247. DX = 4931h ("I1")
  103248. Return: AL = FFh if installed (even if other registers do not match)
  103249. if BX,CX, and DX were as specified on entry,
  103250. BX = 4845h ("HE")
  103251. CX = 5245h ("RE")
  103252. DX = 4456h ("DV")
  103253. Range: AH=C0h to AH=FFh, selected by scanning AH=DEh-FFh, then AH=C0h-DDh
  103254. Note: the XDI handler should not issue any DOS or BIOS calls, nor should it
  103255. issue DESQview API calls other than those allowed from hardware ints
  103256. SeeAlso: AX=DE02h,INT 15/AX=5400h
  103257. --------Q-2FDE01-----------------------------
  103258. INT 2F - DESQview v2.26+ External Device Interface - DRIVER CUSTOM SUBFUNCTION
  103259. AX = DE01h
  103260. BX = driver ID
  103261. other registers as needed by driver
  103262. Notes: XDI drivers should pass this call through to previous handler if ID
  103263. does not match
  103264. DESQview never calls this function
  103265. --------Q-2FDE01BX4450-----------------------
  103266. INT 2F U - Quarterdeck QDPMI.SYS v1.0 - INSTALLATION CHECK
  103267. AX = DE01h
  103268. BX = 4450h ("DP")
  103269. CX = 4D49h ("MI")
  103270. DX = 3039h ("09")
  103271. Return: AL = FFh if installed
  103272. BX = 4D42h ("MB")
  103273. CX = 4921h ("I!")
  103274. DX = 8F4Fh
  103275. ES:DI -> filename of DPMI host overlay
  103276. InstallCheck: test for the existence of the character device QDPMI$$$
  103277. SeeAlso: INT 2F/AX=1687h,INT 31/AX=0000h
  103278. Index: installation check;QDPMI
  103279. --------U-2FDE01BX5242-----------------------
  103280. INT 2F - DESQview v2.26+ XDI - CUSTOM SUBFUNCTION, Ralf Brown's XDI drivers
  103281. AX = DE01h
  103282. BX = 5242h ("RB")
  103283. CX:DX = program identifier
  103284. 656F7000h ("eop",0) for DVeop
  103285. Return: AX = 5242h ("RB") if installed
  103286. ES:BX -> data or entry point (see #03100)
  103287. CX = version number (CH = major, CL = minor)
  103288. (Table 03100)
  103289. Call DVeop entry point with:
  103290. ES:DI -> callback address or 0000h:0000h to remove callback
  103291. Return: AX = status
  103292. 0000h failed (callback table full or attempted to remove non-
  103293. existent callback)
  103294. 0001h successful
  103295. ES:DI -> chaining address
  103296. BX,CX,DX destroyed
  103297. Notes: the callback function is called with a simulated interrupt when the
  103298. DESQview window containing it is closed; it should perform all
  103299. necessary cleanup and then perform a FAR jump to the chaining address
  103300. or an IRET if the chaining address is 0000h:0000h
  103301. if the program wishes to remove itself before the window is closed, it
  103302. should call the DVeop entry point with the previously returned
  103303. chaining address and ignore the returned chaining address.
  103304. --------U-2FDE01BX7474-----------------------
  103305. INT 2F - DESQview v2.26+ XDI - CUSTOM SUBFUNCTION, DVTXDI.COM
  103306. AX = DE01h
  103307. BX = 7474h
  103308. CL = function
  103309. 00h installation check
  103310. Return: AL = FFh
  103311. 01h get process handle
  103312. DX = keys on Open Window menu (DL = first, DH = second)
  103313. Return: AX = process handle or 0000h if not running
  103314. 02h (v1.3+) set TMAN handle
  103315. DX = TMAN process handle
  103316. 03h (v1.3+) set open keys to ignore on next CL=01h call
  103317. DX = keys on Open Window menu (DL = first, DH = second)
  103318. Return: BX = 4F4Bh ("OK")
  103319. DL destroyed
  103320. Note: DVTXDI is distributed as part of the shareware products DVTree (DOS
  103321. shell/DESQview process manager) and DVTMAN by Mike Weaver
  103322. Index: installation check;DVTXDI
  103323. --------U-2FDE01BX7575-----------------------
  103324. INT 2F - DESQview v2.26+ XDI - CUSTOM SUBFUNCTION, DVSIXDI.COM
  103325. AX = DE01h
  103326. BX = 7575h
  103327. CX = function
  103328. 0000h installation check
  103329. Return: AX = 00FFh if installed
  103330. 0001h turn on notification (currently unused)
  103331. Return: AX = 0001h
  103332. 0002h turn off notification (currently unused)
  103333. Return: AX = 0001h
  103334. 0003h get process information
  103335. Return: AX = status
  103336. 0000h failed
  103337. 0001h successful
  103338. BX = last instantaneous time slice
  103339. in 1/100s (v1.10)
  103340. in 1/18s (v1.11+)
  103341. CX = number of processes
  103342. DX = number of "(starting)" records (v2.00+)
  103343. SI = number of records in process info array
  103344. (v2.00+) (always 15 for v1.x)
  103345. ES:DI -> process info array (see #03101,#03102)
  103346. 0004h get version
  103347. Return: AH = major version
  103348. AL = minor version
  103349. 0005h (v1.10+) get time since DESQview started
  103350. Return: DX:AX = 1/100s since DV start (v1.10)
  103351. DX:AX = 1/18s since DV start (v1.11+)
  103352. 0006h (v1.10+) get number of task switches
  103353. Return: DX:AX = total task switches
  103354. CX = task switches in last instantaneous interval
  103355. Notes: DVSIXDI is part of the DVSI (DESQview System Information) package by
  103356. Daniel J. Bodoh
  103357. for v1.00, function 0003h allocates common memory, which the caller
  103358. must deallocate after reading the process information; only the
  103359. currently used records are placed in the buffer
  103360. for v1.10+, function 0003h merely returns a pointer to the internal
  103361. array of process information; the caller should make a copy of the
  103362. array while inside a critical section (see INT 15/AX=101Bh). Only
  103363. those records with bit 7 of the first byte set are valid.
  103364. Index: installation check;DVSIXDI
  103365. Format of DVSIXDI v1.00 information for one process:
  103366. Offset Size Description (Table 03101)
  103367. 00h BYTE flags
  103368. bit 7: process slot is valid
  103369. 01h WORD offset into DESQVIEW.DVO of program's record if started from
  103370. Open Windows menu, else undefined
  103371. 03h WORD Switch Windows window number
  103372. 05h WORD segment of process handle
  103373. 07h WORD number of tasks owned by process
  103374. 09h WORD mapping context of process (see #00416 at INT 15/AX=1016h)
  103375. 0Bh DWORD hook for other programs
  103376. Format of DVSIXDI v1.10-v2.00 information for one process:
  103377. Offset Size Description (Table 03102)
  103378. 00h BYTE process flags (see #03103)
  103379. 01h WORD Open Window keys
  103380. 03h WORD Switch Windows number
  103381. 05h WORD segment of process handle
  103382. 07h WORD number of tasks for process
  103383. 09h WORD process mapping context
  103384. 0Bh DWORD time process started (relative to start of DESQview)
  103385. 0Fh DWORD time process last got CPU (relative to start of DESQview)
  103386. 13h DWORD time process last gave up CPU (relative to start of DESQview)
  103387. 17h DWORD total CPU time since process started
  103388. 1Bh DWORD CPU time at start of current instantaneous interval
  103389. 1Fh DWORD CPU time in current instantaneous interval
  103390. 23h DWORD hook for other programs
  103391. Note: all times are in 1/100s for v1.10, in 1/18s for v1.11+
  103392. Bitfields for DVSIXDI process flags:
  103393. Bit(s) Description (Table 03103)
  103394. 7 valid record
  103395. 6 (v2.00+) record is allocated; if bit 7 clear, process is "(starting)"
  103396. and only offsets 01h and 09h are valid
  103397. 5 (v2.00+) this app currently owns the CPU
  103398. 4 reserved (0)
  103399. 3 DESQview system task
  103400. 2 reserved (0)
  103401. 1 task has keyboard (currently unused)
  103402. 0 task swapped out (currently unused)
  103403. --------Q-2FDE01BXFFFE-----------------------
  103404. INT 2F U - DESQview v2.26+ XDI - DVXMS.DVR - ???
  103405. AX = DE01h
  103406. BX = FFFEh
  103407. CX = 4D47h ("MG")
  103408. DX = 0052h (0,"R")
  103409. Return: AL = FFh
  103410. DX = 584Dh
  103411. --------Q-2FDE02-----------------------------
  103412. INT 2F C - DESQview v2.26+ External Dev Interface - DV INITIALIZATION COMPLETE
  103413. AX = DE02h
  103414. BX = mapping context of DESQview
  103415. DX = handle of DESQview system task
  103416. Note: driver should pass this call to previous handler after doing its work
  103417. SeeAlso: AX=DE03h,AX=DE0Fh,INT 15/AX=5400h
  103418. --------Q-2FDE03-----------------------------
  103419. INT 2F C - DESQview v2.26+ External Dev Interface - DV TERMINATION
  103420. AX = DE03h
  103421. BX = mapping context of DESQview
  103422. DX = handle of DESQview system task
  103423. Notes: driver should pass this call to previous handler before doing its work
  103424. DESQview makes this call when it is exiting, but before unhooking any
  103425. interrupt vectors
  103426. SeeAlso: AX=DE02h,AX=DE0Fh,INT 15/AX=5407h
  103427. --------Q-2FDE04-----------------------------
  103428. INT 2F C - DESQview v2.26+ External Dev Interface - ADD PROCESS
  103429. AX = DE04h
  103430. BX = mapping context of new process (see #00416 at INT 15/AX=1016h)
  103431. DX = handle of process
  103432. Return: nothing
  103433. Notes: XMS XDI handler (installed by default) allocates a 22-byte record
  103434. (see #03104) from "common" memory to control access to XMS memory
  103435. all DOS, BIOS, and DV API calls are valid in handler
  103436. driver should pass this call to previous handler after processing it
  103437. SeeAlso: AX=DE05h,AX=DE06h,INT 15/AX=5401h
  103438. Format of XMS XDI structure:
  103439. Offset Size Description (Table 03104)
  103440. 00h DWORD pointer to 10-byte record???
  103441. 04h DWORD pointer to next XMS XDI structure
  103442. 08h WORD mapping context
  103443. 0Ah BYTE ???
  103444. 0Bh 5 BYTEs XMS entry point to return for INT 2F/AX=4310h"XMS"
  103445. (FAR jump to next field)
  103446. 10h 6 BYTEs FAR handler for XMS driver entry point
  103447. (consists of a FAR CALL followed by RETF)
  103448. --------Q-2FDE05-----------------------------
  103449. INT 2F C - DESQview v2.26+ External Dev Interface - REMOVE PROCESS
  103450. AX = DE05h
  103451. BX = mapping context of process (see #00416 at INT 15/AX=1016h)
  103452. DX = handle of last task in process
  103453. Return: nothing
  103454. Notes: XMS XDI handler releases the structure allocated by AX=DE04h
  103455. driver should pass this call to previous handler before processing it
  103456. all DOS, BIOS, and DV API calls except those generating a task switch
  103457. are valid in handler
  103458. SeeAlso: AX=DE04h,AX=DE07h,INT 15/AX=5402h
  103459. --------Q-2FDE06-----------------------------
  103460. INT 2F C - DESQview v2.26+ External Dev Interface - CREATE TASK
  103461. AX = DE06h
  103462. BX = mapping context of process containing task
  103463. DX = handle of new task
  103464. Notes: driver should pass this call to previous handler after processing it
  103465. all DOS, BIOS, and DV API calls are valid in handler
  103466. --------Q-2FDE07-----------------------------
  103467. INT 2F C - DESQview v2.26+ External Dev Interface - TERMINATE TASK
  103468. AX = DE07h
  103469. BX = mapping context of process containing task
  103470. DX = handle of task
  103471. Notes: driver should pass this call to previous handler before processing it
  103472. all DOS, BIOS, and DV API calls except those generating a task switch
  103473. are valid in handler
  103474. SeeAlso: AX=DE04h,AX=DE06h,AX=DE10h
  103475. --------Q-2FDE08-----------------------------
  103476. INT 2F C - DESQview v2.26+ External Dev Interface - SAVE STATE
  103477. AX = DE08h
  103478. BX = mapping context of task being switched from
  103479. (see #00416 at INT 15/AX=1016h)
  103480. DX = handle of task being switched from
  103481. Notes: invoked prior to task swap, interrupts, etc
  103482. driver should pass this call to previous handler after processing it
  103483. SeeAlso: AX=DE09h,INT 15/AX=5403h,INT 15/AX=DE27h
  103484. --------Q-2FDE09-----------------------------
  103485. INT 2F C - DESQview v2.26+ External Dev Interface - RESTORE STATE
  103486. AX = DE09h
  103487. BX = mapping context of task being switched to
  103488. (see #00416 at INT 15/AX=1016h)
  103489. DX = handle of task being switched to
  103490. Notes: state is restored except for interrupts
  103491. driver should pass this call to previous handler before processing it
  103492. SeeAlso: AX=DE08h,INT 15/AX=5404h,INT 15/AX=DE27h
  103493. --------Q-2FDE0A-----------------------------
  103494. INT 2F C - DESQview v2.26+ External Dev Interface - CHANGE KEYBOARD FOCUS
  103495. AX = DE0Ah
  103496. BX = mapping context of task receiving focus
  103497. DX = handle of running task
  103498. Notes: driver should pass this call to previous handler before processing it
  103499. this call often occurs inside a keyboard interrupt
  103500. DV 2.42 does not provide this call to XDI handlers running inside a
  103501. window; instead, it directly calls the INT 2F handler which was
  103502. active at the time DV started
  103503. SeeAlso: INT 15/AX=DE26h,INT 15/AX=DE2Fh
  103504. --------Q-2FDE0B-----------------------------
  103505. INT 2F C - DESQview v2.26+ External Dev Interface - DVP PROCESSING COMPLETE
  103506. AX = DE0Bh
  103507. BX = mapping context of DESQview system task
  103508. CX = number of system memory paragraphs required for the use of all
  103509. XDI drivers (DV will add this to system memory in DVP buffer)
  103510. DX = handle of DESQview system task
  103511. SI = mapping context of new process if it starts
  103512. ES:DI -> DVP buffer
  103513. Return: CX incremented as needed
  103514. Notes: once DV invokes this function, the DVP buffer contents may be changed
  103515. driver should pass this call to previous handler before processing it
  103516. --------Q-2FDE0C-----------------------------
  103517. INT 2F C - DESQview v2.26+ External Dev Interface - SWAP OUT PROCESS
  103518. AX = DE0Ch
  103519. BX = mapping context of task being swapped out
  103520. (see #00416 at INT 15/AX=1016h)
  103521. DX = handle of DESQview system task
  103522. Note: driver should pass this call to previous handler after processing it
  103523. --------Q-2FDE0D-----------------------------
  103524. INT 2F C - DESQview v2.26+ External Dev Interface - SWAP IN PROCESS
  103525. AX = DE0Dh
  103526. BX = mapping context of process just swapped in
  103527. (see #00416 at INT 15/AX=1016h)
  103528. DX = handle of DESQview system task
  103529. Note: driver should pass this call to previous handler before processing it
  103530. --------Q-2FDE0E-----------------------------
  103531. INT 2F C - DESQview v2.26+ External Dev Interface - DVP START FAILED
  103532. AX = DE0Eh
  103533. BX = mapping context of DESQview system task
  103534. DX = handle of DESQview system task
  103535. SI = mapping context of failed process (same as for call to AX=DE0Bh)
  103536. Note: driver should pass this call to previous handler after processing it
  103537. --------Q-2FDE0F-----------------------------
  103538. INT 2F C - DESQview v2.50+ External Dev Interface - INITIALIZE DV
  103539. AX = DE0Fh
  103540. Note: DESQview 2.50+ calls this function just before it completes its
  103541. initialization. At the time of the call, DESQview has not yet
  103542. changed any interrupt vectors
  103543. SeeAlso: AX=DE02h
  103544. --------Q-2FDE10-----------------------------
  103545. INT 2F C - DESQview v2.50+ External Dev Interface - FREE TASK
  103546. AX = DE10h
  103547. BX = mapping context of process (see #00416 at INT 15/AX=1016h)
  103548. DX = task handle of process
  103549. Note: DESQview 2.50+ calls this function before it frees the task; it is
  103550. similar to AX=DE07h but allows the XDI handler to make calls which
  103551. cause context switches
  103552. SeeAlso: AX=DE06h,AX=DE07h
  103553. --------c-2FDF00-----------------------------
  103554. INT 2F - HyperWare programs - INSTALLATION CHECK
  103555. AX = DF00h
  103556. BX = product code (see #03105)
  103557. CX = 0000h
  103558. DX = 0000h
  103559. Return: AL = status
  103560. 00h not installed
  103561. FFh multiplex number in use
  103562. CX = 5948h ('YH') if selected product installed
  103563. ---HyperDisk---
  103564. BX = code segment of resident portion
  103565. DX = HyperDisk local data version
  103566. Program: HyperDisk is a shareware disk cache by HyperWare (Roger Cross)
  103567. Range: AH=C0h to AH=FFh, selected by scanning AH=DFh, then AH=C0h-FFh
  103568. SeeAlso: INT 13/AX=8EEDh
  103569. Index: installation check;HyperDisk|installation check;HyperStb
  103570. Index: installation check;HyperKey|installation check;HyperScreen
  103571. Index: HyperDisk;installation check|HyperStb;installation check
  103572. Index: HyperKey;installation check|HyperScreen;installation check
  103573. (Table 03105)
  103574. Values for HyperWare product code:
  103575. 4248h ('BH') HyperStb
  103576. 4448h ('DH') HyperDisk v4.20+
  103577. 4B48h ('KH') HyperKey
  103578. 5348h ('SH') HyperScreen
  103579. --------Q-2FDF00BX5445-----------------------
  103580. INT 2F U - Quarterdeck TELTSR.COM - INSTALLATION CHECK
  103581. AX = DF00h
  103582. BX = 5445h ('TE')
  103583. CX = 4C54h ('LT')
  103584. DX = 5352h ('SR')
  103585. Return: BX = 5454h ('TT') if installed
  103586. CX = 494Eh ('IN') if installed
  103587. DX = 5454h ('ST') if installed
  103588. Program: TELTSR is a Telnet TSR included with Quarterdeck's DESQview/X v2.00
  103589. which provides an INT 14h interface to the network
  103590. Range: AH=DEh to AH=FFh and AH=C0h to AH=DDh, selected by scanning
  103591. SeeAlso: AX=DF01h"TELTSR",AX=DF02h"TELTSR",INT 14/AH=56h
  103592. --------N-2FDF01BX0000-----------------------
  103593. INT 2F U - MSG.COM - INSTALLATION CHECK
  103594. AX = DF01h
  103595. BX = 0000h
  103596. Return: AX = FDFFh if installed
  103597. BX = segment of resident code
  103598. Program: MSG.COM is a TSR for intercepting incoming Novell broadcast
  103599. messages written by Gary Dobbins (Dobbins@Arizona.Edu)
  103600. --------c-2FDF01BX4448-----------------------
  103601. INT 2F - HyperDisk v4.50+ - GET CURRENT CACHE STATE
  103602. AX = DF01h
  103603. BX = 4448h ('DH')
  103604. Return: AX = 0000h if function supported
  103605. BX = number of cache buffers in use
  103606. CX = number of cache buffers which have been modified
  103607. DL = caching flags (see #03106)
  103608. Range: AH=C0h to AH=FFh, selected by scanning AH=DFh, then AH=C0h-FFh
  103609. SeeAlso: AX=DF00h,AX=DF02h
  103610. Bitfields for HyperDisk caching flags:
  103611. Bit(s) Description (Table 03106)
  103612. 0 staged writes enabled for floppy disks
  103613. 1 staged writes enabled for hard disks
  103614. 2 writes verified on floppy disks
  103615. 3 writes verified on hard disks
  103616. 4 reserved (0)
  103617. 5 reserved (0)
  103618. 6 floppy caching enabled
  103619. 7 all caching functions enabled
  103620. --------Q-2FDF01-----------------------------
  103621. INT 2F U - Quarterdeck TELTSR.COM - CLOSE CONNECTION
  103622. AX = DF01h
  103623. Return: nothing???
  103624. Note: invokes the DESQview/X socket API (see INT 15/AX=DE2Eh) function 0006h
  103625. to close the socket corresponding to the file handle set with
  103626. AX=DF02h; NOP if no file handle was ever set
  103627. SeeAlso: AX=DF00h"TELTSR",AX=DF02h"TELTSR"
  103628. --------c-2FDF02BX4448-----------------------
  103629. INT 2F - HyperDisk v4.50+ - SET CACHE STATE
  103630. AX = DF02h
  103631. BX = 4448h ('DH')
  103632. DL = new caching flags (see #03106)
  103633. Return: AX = 0000h if supported
  103634. BX = number of cache buffers in use
  103635. CX = number of cache buffers which have been modified
  103636. DL = previous caching flags (see #03106)
  103637. Program: HyperDisk is a shareware disk cache by HyperWare (Roger Cross)
  103638. Range: AH=C0h to AH=FFh, selected by scanning AH=DFh, then AH=C0h-FFh
  103639. SeeAlso: AX=DF00h,AX=DF01h
  103640. --------Q-2FDF02-----------------------------
  103641. INT 2F U - Quarterdeck TELTSR.COM - OPEN CONNECTION
  103642. AX = DF02h
  103643. BX = file handle for connection's socket
  103644. Return: AX = status
  103645. 0000h successful
  103646. FFFFh no more room in TELTSR's JFT
  103647. Program: TELTSR is a Telnet TSR included with Quarterdeck's DESQview/X v2.00
  103648. Notes: the indicated file handle becomes owned by TELTSR, and is closed in
  103649. the caller's JFT
  103650. multiple calls to this function will override the previous assignment
  103651. without closing the previous file; use AX=DF01h before further calls
  103652. SeeAlso: AX=DF00h"TELTSR",AX=DF01h"TELTSR"
  103653. --------U-2FE000-----------------------------
  103654. INT 2F - SETDRVER.COM v2.10+ - INSTALLATION CHECK
  103655. AX = E000h
  103656. Return: AX = 4A52h ("JR") if present
  103657. Program: SETDRVER is a public domain TSR by Jacob Rieper which sets the
  103658. apparent DOS version analogously to MS-DOS SETVER
  103659. Notes: this installation check differs from the usual one of returning AL=FFh
  103660. the SETDRVER API is fully emulated by Matthias Paul's FREEVER
  103661. SeeAlso: AX=E000h/DX=4D50h,AX=E001h,INT 21/AH=52h
  103662. --------j-2FE000-----------------------------
  103663. INT 2F - KAOSHIDE - INSTALLATION CHECK
  103664. AX = E000h
  103665. Return: AL = FFh if installed
  103666. Program: KAOSHIDE ('Hidden Kaos') is a PD joke TSR which randomly capitalizes
  103667. alphabetic keys, written by Philip Maland. Although not a virus,
  103668. v2.0 uses some viral-like techniques to hide itself from
  103669. memory-reports by reducing DOS memory size.
  103670. --------U-2FE000DX4D50-----------------------
  103671. INT 2F - FREEVER v1.0+ - INSTALLATION CHECK
  103672. AX = E000h
  103673. DX = 4D50h ('MP')
  103674. Return: AL = FFh if installed
  103675. AH = AMIS INT 2Dh multiplex ID
  103676. CX = FREEVER version (CH=major, CL=minor)
  103677. DX:DI -> AMIS-compliant signature (see #02569)
  103678. (vendor ID is "M. Paul ", program name is "FREEVER ")
  103679. Program: FREEVER is an AMIS-conformant freeware DOS version-faking TSR similar
  103680. to SETVER for any DOS-compatible OS, written by Matthias Paul
  103681. Note: FREEVER emulates INT 21/AH=30h, INT 21/AX=3306h, INT 21/AX=4412h,
  103682. INT 21/AX=4452h, and SETDRVER's API on INT 2F/AX=E00xh, as well as
  103683. providing an AMIS API on INT 2Dh
  103684. SeeAlso: AX=E000h"SETDRVER",INT 21/AH=30h,INT 21/AX=3306h,INT 21/AX=4452h
  103685. --------K-2FE000DX5354-----------------------
  103686. INT 2F - StuffIt v3.21+ - INSTALLATION CHECK
  103687. AX = E000h
  103688. DX = 5354h ("ST")
  103689. Return: AL = FFh if installed
  103690. BX = version (BH = major, BL = BCD minor)
  103691. DX = segment of resident code
  103692. Program: StuffIt is a freeware delayed keyboard stuffer by Terje Mathisen
  103693. --------U-2FE001-----------------------------
  103694. INT 2F - SETDRVER.COM v2.10+ - GET SETDRVER VERSION
  103695. AX = E001h
  103696. Return: AH = major version
  103697. AL = minor version
  103698. Note: the SETDRVER API is fully emulated by Matthias Paul's FREEVER, which
  103699. returns version 2.10 for this call; use AX=E000h/DX=45D0h to get
  103700. FREEVER's version number
  103701. SeeAlso: AX=E000h,AX=E000h/DX=45D0h
  103702. --------U-2FE002-----------------------------
  103703. INT 2F - SETDRVER.COM v2.10+ - GET ORIGINAL DOS VERSION INFO
  103704. AX = E002h
  103705. Return: AL = FFh if successful
  103706. BH = major DOS version
  103707. BL = minor DOS version
  103708. CH = DOS version flag
  103709. CL = OEM number
  103710. DH = major DR DOS version number (FFh if unknown)
  103711. DL = minor DR DOS version number (FFh if unknown)
  103712. SeeAlso: AX=E003h,AX=E007h,INT 21/AH=30h
  103713. --------U-2FE003-----------------------------
  103714. INT 2F - SETDRVER.COM v2.10+ - RESET INTERNAL VARIABLES
  103715. AX = E003h
  103716. BH = new major DOS version
  103717. BL = new minor DOS version
  103718. CH = new DOS version flag
  103719. CL = new DOS revision number
  103720. DH = new OEM number
  103721. SeeAlso: AX=E002h
  103722. --------U-2FE004-----------------------------
  103723. INT 2F - SETDRVER.COM v2.10+ - ENABLE TSR
  103724. AX = E004h
  103725. Return: AL = FFh if successful
  103726. SeeAlso: AX=E000h,AX=E005h,AX=E006h
  103727. --------U-2FE005-----------------------------
  103728. INT 2F - SETDRVER.COM v2.10+ - DISABLE TSR
  103729. AX = E005h
  103730. Return: AL = FFh if successful
  103731. SeeAlso: AX=E000h,AX=E004h,AX=E006h
  103732. --------U-2FE006-----------------------------
  103733. INT 2F - SETDRVER.COM v2.10+ - GET TSR STATUS
  103734. AX = E006h
  103735. Return: AL = FFh if successful
  103736. BL = status
  103737. 01h resident and active
  103738. 02h resident and inactive
  103739. --------U-2FE007-----------------------------
  103740. INT 2F - SETDRVER.COM v2.10+ - GET TaskMAX STATUS AT INSTALLATION
  103741. AX = E007h
  103742. Return: AL = FFh if successful
  103743. BL = status
  103744. 00h if TaskMAX not loaded before SETDRVER
  103745. FFh if TaskMAX was loaded before SETDRVER
  103746. SeeAlso: AX=E003h
  103747. --------U-2FE0-------------------------------
  103748. INT 2F - SETDRVER.COM - RESERVED FOR FUTURE USE
  103749. AH = E0h
  103750. AL = 08h-10h
  103751. --------K-2FE100-----------------------------
  103752. INT 2F - Phantom2 v1.1+ - INSTALLATION CHECK
  103753. AX = E100h
  103754. Return: AX = 0001h if installed
  103755. DS:SI -> ASCIZ hotkey name
  103756. DS:DI -> ASCIZ recording filename
  103757. Program: Phantom of the Keyboard II is a shareware keystroke recorder/replayer
  103758. by P2 Enterprises
  103759. SeeAlso: AX=E101h,AX=E102h,AX=E103h,AX=E300h
  103760. Index: hotkeys;Phantom2
  103761. --------K-2FE101-----------------------------
  103762. INT 2F - Phantom2 v1.1+ - FUNCTION REQUEST
  103763. AX = E101h
  103764. BX = function mask (see #03107)
  103765. CX = code for hotkey (as returned by INT 16/AH=00h) if BX bit 6 set
  103766. DS:DX -> ASCIZ filespec if BX bit 7 set
  103767. SeeAlso: AX=E100h
  103768. Index: hotkeys;Phantom2
  103769. Bitfields for Phantom2 function mask:
  103770. Bit(s) Description (Table 03107)
  103771. 0 record
  103772. 1 play
  103773. 2 QuickPlay
  103774. 3 loop
  103775. 4 mode display toggle
  103776. 5 sound toggle
  103777. 6 set hotkey
  103778. 7 set filespec
  103779. --------K-2FE102-----------------------------
  103780. INT 2F - Phantom2 v1.1+ - UNINSTALL
  103781. AX = E102h
  103782. Return: AX = status
  103783. 0001h removal successful
  103784. 0002h not installed as TSR
  103785. FFFFh disabled but not removed
  103786. SeeAlso: AX=E100h
  103787. --------K-2FE103-----------------------------
  103788. INT 2F - Phantom2 v2.8 - SET ??? FLAG
  103789. AX = E103h
  103790. Return: AX = 0001h
  103791. SeeAlso: AX=E100h
  103792. --------y-2FE200-----------------------------
  103793. INT 2F - SecureDevice - LOGIN TO DRIVE
  103794. AX = E200h
  103795. DL = drive number (0 = A:)
  103796. DS:SI -> 104-byte key
  103797. Return: AL = status
  103798. 00h unable to determine key's validity
  103799. 01h key is valid
  103800. FFh key is invalid
  103801. Program: SecureDevice is a copylefted device driver by Max Loewenthal and
  103802. Arthur Helwig which turns one or more disk files into encrypted
  103803. logical drives
  103804. SeeAlso: AX=E201h,AX=E203h,AX=E209h
  103805. --------y-2FE201-----------------------------
  103806. INT 2F - SecureDevice - GET INFORMATION
  103807. AX = E201h
  103808. DX = driver index (0000h = first loaded)
  103809. Return: AL = number of volumes handled by driver
  103810. DL = drive number of first volume (00h = A:)
  103811. SeeAlso: AX=E200h,AX=E203h,AX=E209h
  103812. --------y-2FE203-----------------------------
  103813. INT 2F - SecureDevice - DESTROY PASSWORD (LOGOUT FROM DRIVE)
  103814. AX = E203h
  103815. DL = drive number (00h = A:) or FFh for all drives
  103816. Return: nothing
  103817. SeeAlso: AX=E200h,AX=E209h
  103818. --------y-2FE209DX0000-----------------------
  103819. INT 2F - SecureDevice - INSTALLATION CHECK
  103820. AX = E209h
  103821. DX = 0000h
  103822. Return: AX = 1DEAh if installed
  103823. DX = number of drivers installed
  103824. --------K-2FE300-----------------------------
  103825. INT 2F - ANARKEY.COM - INSTALLATION CHECK
  103826. AX = E300h
  103827. Return: AL = state
  103828. 00h not installed
  103829. FEh if installed but suspended (v3.0+)
  103830. FFh installed
  103831. Program: ANARKEY.COM is a commandline recall program by Steven Calwas
  103832. Range: AH=C0h to AH=FFh, selected by commandline switch
  103833. SeeAlso: AX=E100h,AX=E301h,AX=E302h,AX=E303h,AX=E304h,AX=E305h,AX=E306h
  103834. SeeAlso: AX=E307h,INT 66"Newkey"
  103835. --------V-2FE300-----------------------------
  103836. INT 2F - Blank - INSTALLATION CHECK
  103837. AX = E300h
  103838. Return: AL = FFh if installed
  103839. ES = resident code segment
  103840. Program: Blank is a shareware screen blanker by Yonah Schmeidler
  103841. Note: AH=E3h is the default, which may be reconfigured by the installation
  103842. program in the registered version
  103843. SeeAlso: AH=93h,AX=C050h,INT 14/AX=AA01h
  103844. Index: screen saver;Blank
  103845. --------K-2FE301-----------------------------
  103846. INT 2F U - ANARKEY.COM v2+ - GET ???
  103847. AX = E301h
  103848. Return: DX:BX -> ??? (see #03108,#03109)
  103849. SeeAlso: AX=E300h
  103850. Format of returned data structure for ANARKEY v2.0:
  103851. Offset Size Description (Table 03108)
  103852. -7 7 BYTEs signature ('ANARKEY')
  103853. 00h WORD ??? (I see 0001h in v2.0)
  103854. 02h WORD ??? (I see 0001h in v2.0)
  103855. 04h WORD ??? (I see 0 in v2.0)
  103856. 06h WORD PSP segment of next program loaded
  103857. Format of returned data structure for ANARKEY v3+:
  103858. Offset Size Description (Table 03109)
  103859. -1 BYTE multiplex number
  103860. 00h WORD ??? (I see 0001h in v3.0-4.0)
  103861. 02h WORD ??? (I see 0001h in v3.0-4.0)
  103862. 04h BYTE ??? (I see 0 in v3.0-4.0)
  103863. 05h WORD PSP segment of next program loaded
  103864. --------K-2FE302-----------------------------
  103865. INT 2F U - ANARKEY.COM v3+ - ???
  103866. AX = E302h
  103867. BL = ???
  103868. Return: ???
  103869. SeeAlso: AX=E300h
  103870. --------K-2FE303-----------------------------
  103871. INT 2F U - ANARKEY.COM v3+ - ANARKMD API
  103872. AX = E303h
  103873. BL = function
  103874. 01h toggle insert mode
  103875. 02h display contents of history buffer
  103876. 03h write history buffer to file
  103877. ES:DX -> file name
  103878. 04h clear history buffer
  103879. 05h undefine all aliases
  103880. 06h show aliases
  103881. 07h list programs using Unix switchar
  103882. 08h jump to bottom of history buffer
  103883. 09h (v4.0) add string to history buffer
  103884. ES:DX -> ASCIZ string
  103885. 0Ah (v4.0) ???
  103886. ES:DX -> ???
  103887. 0Bh (v4.0) copy string to edit buffer for use as next input line
  103888. ES:DX -> ASCIZ string
  103889. 0Ch (v4.0) ???
  103890. 0Dh (v4.0) copy ??? to ???
  103891. 0Eh (v4.0) ???
  103892. 0Fh (v4.0) ???
  103893. 10h (v4.0) set ??? flag
  103894. 11h (v4.0) display error message about running in EMS under Windows
  103895. Return: ???
  103896. SeeAlso: AX=E300h
  103897. --------K-2FE304-----------------------------
  103898. INT 2F U - ANARKEY.COM v2+ - ???
  103899. AX = E304h
  103900. BL = ???
  103901. Return: ???
  103902. SeeAlso: AX=E300h
  103903. --------K-2FE305-----------------------------
  103904. INT 2F U - ANARKEY.COM v3+ - ENABLE/SUSPEND ANARKEY
  103905. AX = E305h
  103906. BL = new state
  103907. 01h suspended
  103908. 00h enabled
  103909. SeeAlso: AX=E300h
  103910. --------K-2FE306-----------------------------
  103911. INT 2F U - ANARKEY.COM v4.0 - GET ???
  103912. AX = E306h
  103913. Return: AX = ???
  103914. SeeAlso: AX=E300h
  103915. --------K-2FE307-----------------------------
  103916. INT 2F U - ANARKEY.COM v4.0 - GET ???
  103917. AX = E307h
  103918. Return: AX = ???
  103919. BL = ???
  103920. SeeAlso: AX=E300h
  103921. --------K-2FE337-----------------------------
  103922. INT 2F - INT16.COM - INSTALLATION CHECK
  103923. AX = E337h
  103924. Return: AX = 0013h if installed
  103925. Program: INT16.COM is an INT16 keyboard BIOS replacement for
  103926. INT 16/AH=00h-02h,10h-12h (based on K3) written by Martin Gerdes
  103927. and published in c't 05/1990.
  103928. SeeAlso: AX=ED58h
  103929. --------l-2FE44D-----------------------------
  103930. INT 2F - NDOS - API
  103931. AX = E44Dh
  103932. Program: NDOS is a version of 4DOS licensed to Symantec for inclusion in the
  103933. Norton Utilities
  103934. Note: as NDOS is a licensed version of 4DOS v3.03, the API is identical to
  103935. that for 4DOS, except that AH=E4h instead of D4h and the installation
  103936. check returns AX=44EEh instead of AX=44DDh
  103937. SeeAlso: AX=D44Dh,AX=E44Eh
  103938. --------l-2FE44E-----------------------------
  103939. INT 2F C - NDOS - AWAITING USER INPUT
  103940. AX = E44Eh
  103941. BX = condition
  103942. 0000h NDOS is ready to display prompt
  103943. 0001h NDOS has displayed the prompt, about to accept user input
  103944. Return: handler must preserve SI, DI, BP, SP, DS, ES, and SS
  103945. SeeAlso: AX=E44Dh
  103946. --------K-2FE44FBX0000-----------------------
  103947. INT 2F - NDOS v4.0+ - KSTACK.COM - INSTALLATION CHECK
  103948. AX = E44Fh
  103949. BX = 0000h
  103950. Return: AX = 44EEh if installed
  103951. Program: NDOS is a version of 4DOS licensed to Symantec for inclusion in the
  103952. Norton Utilities
  103953. Note: this function is also supported by ANSIPLUS v3.01+ and K3PLUS v6.20+,
  103954. which emulate the 4DOS and NDOS keystack
  103955. SeeAlso: AX=D44Fh/BX=0000h,AX=E44Fh/BX=0001h
  103956. --------K-2FE44FBX0001-----------------------
  103957. INT 2F - NDOS v4.0+ - KSTACK.COM - PLACE KEYSTROKES INTO KEYSTACK
  103958. AX = E44Fh
  103959. BX = 0001h
  103960. CX = number of keystrokes (01h-FFh)
  103961. DS:DX -> keystroke list (one word per keystroke)
  103962. Return: AX = status
  103963. 0000h successful
  103964. nonzero failed
  103965. BX,CX,DX destroyed
  103966. Notes: the keystrokes are the exact values to return from subsequent calls to
  103967. INT 16 with AH=00h,01h,10h, or 11h, with the following exceptions:
  103968. 0000h causes subfunctions 01h and 11h to indicate an empty
  103969. keyboard buffer
  103970. FFFFh is followed by a word indicating the number of clock
  103971. ticks to delay before the next faked keystroke
  103972. v4.00 KSTACK overwrites any unread keystrokes from the previous
  103973. invocation, and does not range-check CX; it will overwrite memory
  103974. following the resident portion if CX is greater than 100h.
  103975. this function is also supported by ANSIPLUS v3.01+ and K3PLUS v6.20+,
  103976. which emulate the 4DOS and NDOS keystack
  103977. SeeAlso: AX=E44Fh/BX=0000h,INT 16/AH=00h,INT 21/AX=4403h"DOS"
  103978. --------U-2FE600CL30-------------------------
  103979. INT 2F - Virtual 486 - INSTALLATION CHECK
  103980. AX = E600h
  103981. CL = 30h
  103982. BX = C0DEh
  103983. Return: BX = DEC0h if installed
  103984. Program: Virtual 486 is a 80486 CPU emulator for an 80386 by Solar Designer
  103985. ----------2FE700BX4158-----------------------
  103986. INT 2F - Multiplex - ??? - INSTALLATION CHECK???
  103987. AX = E700h
  103988. BX = 4158h ("AX")
  103989. CX = 4953h ("IS")
  103990. DX = 4845h ("HE")
  103991. Return: AL = FFh if installed
  103992. BX = 4C4Fh ("LO") if ??? installed
  103993. CX = 4F4Bh ("OK")
  103994. DX = 4F55h ("OU")
  103995. ES:DI -> ???
  103996. Range: AH=C0h to AH=FFh, selected by scanning AH=E7-FFh, then AH=C0h-E6h
  103997. Note: called by QDPMI when its Real to Protected Mode Switch Entry Point
  103998. is called
  103999. --------f-2FE77EBX0000-----------------------
  104000. INT 2F - CTDEMN - INSTALLATION CHECK
  104001. AX = E77Eh
  104002. BX = 0000h
  104003. CX = 4F4Dh ('OM')
  104004. DX = 5453h ('TS')
  104005. Return: AX = 7EE7h if installed
  104006. BX = resident code segment
  104007. CX = 6F6Dh ('om')
  104008. DX = 7473h ('ts')
  104009. Program: CTDEMN is a file daemon TSR by Simultan AG
  104010. --------E-2FED00-----------------------------
  104011. INT 2F - Phar Lap DOS EXTENDERS - INSTALLATION CHECK
  104012. AX = ED00h
  104013. BL = DOS extender ID (see #03110)
  104014. Return: AL = status
  104015. 00h not installed
  104016. FFh installed
  104017. SI = 5048h ("PH")
  104018. DI = 4152h ("AR")
  104019. CH = major version number
  104020. CL = minor version number
  104021. DX = flags
  104022. bit 0: running under DPMI
  104023. bit 1: running under Phar Lap VMM
  104024. if running under DPMI:
  104025. BX = DPMI version (BH = major, BL = minor)
  104026. SeeAlso: AH=A1h,AX=F100h,AX=FBA1h
  104027. (Table 03110)
  104028. Values for Phar Lap DOS extender ID:
  104029. 01h 286dosx v1.3+ (Software Development Kit)
  104030. 02h 286dosx v1.3+ (Run-Time Kit)
  104031. 03h 386dosx v4.0+ (SDK)
  104032. 04h 386dosx v4.0+ (RTK)
  104033. --------E-2FED03-----------------------------
  104034. INT 2F R - Phar Lap 386/DOS-Extender v4.1 - GET EXTENDER ENTRY POINT
  104035. AX = ED03h
  104036. CX = real-mode code segment
  104037. DX = real-mode data segment
  104038. Return: CF clear if successful
  104039. CX = protected-mode code segment selector
  104040. DX = protected-mode data segment selector
  104041. ES:DI -> real-mode entry point for calling protected-mode functions
  104042. (see INT 21/AX=250Dh)
  104043. CF set on error
  104044. AX = error code
  104045. 0008h unable to allocate LDT descriptors
  104046. --------E-2FED10BL05-------------------------
  104047. INT 2F - Pharlap DOS Extender - ???
  104048. AX = ED10h
  104049. BL = 05h
  104050. ES:SI -> ??? structure
  104051. Return: AX = ???
  104052. SI = ???
  104053. DI = ???
  104054. SeeAlso: AX=ED00h,AX=ED11h
  104055. --------E-2FED11BL05-------------------------
  104056. INT 2F - Pharlap DOS Extender - FATAL EXIT TO REAL MODE ???
  104057. AX = ED11h
  104058. BL = 05h
  104059. CX = ???
  104060. DX = ???
  104061. ES:SI -> ??? structure
  104062. SS:SP = new stack ???
  104063. Return: ???
  104064. Note: called immediately prior to terminating program with INT 21/AX=4CFFh
  104065. SeeAlso: AX=ED00h,AX=ED10h
  104066. --------K-2FED58-----------------------------
  104067. INT 2F U - K5.COM - INSTALLATION CHECK
  104068. AX = ED58h
  104069. Return: AX = 000Dh if installed
  104070. ES = resident code segment
  104071. BX = ??? (9999h)
  104072. ???
  104073. Program: K5 is an extended keyboard driver by Martin Gerdes, based on his K3
  104074. SeeAlso: AX=E337h,INT 16/AX=AF20h
  104075. --------E-2FED80-----------------------------
  104076. INT 2F - Phar Lap 286|DOS Extender Lite v2.5 - ???
  104077. AX = ED80h
  104078. BL = DOS extender ID (see #03110)
  104079. SI = 5048h ("PH")
  104080. DI = 4152h ("AR")
  104081. ???
  104082. Return: ???
  104083. --------O-2FEDC8BX0000-----------------------
  104084. INT 2F - Novell ??? - INSTALLATION CHECK???
  104085. AX = EDC8h ('EDC' = Novell European Development Center)
  104086. BX = 0000h
  104087. CX = 0000h
  104088. DX = 1234h
  104089. Return: ???
  104090. Desc: called by Novell DOS 7 LOCK command during installation; purpose
  104091. unknown
  104092. --------y-2FEE00-----------------------------
  104093. INT 2F - GRIDLOC.EXE - INSTALLATION CHECK
  104094. AX = EE00h
  104095. Return: AL = FFh if installed
  104096. Program: GRIDLOC is a PC security program by Intelligent Security Systems, Inc.
  104097. SeeAlso: INT 21/AH=40h"NB.SYS"
  104098. --------U-2FEE00-----------------------------
  104099. INT 2F - XVIEW - INSTALLATION CHECK
  104100. AX = EE00h
  104101. Return: AX = 00FFh if installed
  104102. Program: XVIEW is a hypertext viewer by Flambeaux Software, Inc.
  104103. --------N-2FEE00-----------------------------
  104104. INT 2F - WEB v4.02 - INSTALLATION CHECK
  104105. AX = EE00h
  104106. Return: AL = status
  104107. 00h not installed
  104108. FFh installed
  104109. Program: WEB is an IPX-based peer-to-peer network by Webcorp.
  104110. SeeAlso: AH=EEh"WEB",AX=EEF0h
  104111. --------U-2FEE01-----------------------------
  104112. INT 2F - XVIEW - POP UP GIVING TOPIC SEARCH KEYWORD
  104113. AX = EE01h
  104114. DS:DX -> ASCIZ string containing case-insensitive keyword to look up
  104115. Return: AX = status (see #03111)
  104116. Note: the specified keyword should be a hyperlink in the _IndexPage of some
  104117. database; the current database is searched first
  104118. SeeAlso: AX=EE00h"XVIEW",AX=EE02h,AX=EE03h,AX=EE04h,AX=EE06h
  104119. (Table 03111)
  104120. Values for XVIEW function status:
  104121. 0000h successful
  104122. 00F1h unknown subfunction
  104123. 00F2h unable to pop up
  104124. --------U-2FEE02-----------------------------
  104125. INT 2F - XVIEW - POP UP GIVING A PAGE NUMBER
  104126. AX = EE02h
  104127. DX = physical page number or anchor page number (see #03112)
  104128. Return: AX = status (see #03111)
  104129. Note: physical page numbers are assigned by the hypertext compiler, and
  104130. will change if a page is inserted in the middle
  104131. SeeAlso: AX=EE00h"XVIEW",AX=EE01h,AX=EE05h,AX=EE06h
  104132. (Table 03112)
  104133. Values for XVIEW anchor page number:
  104134. FFEAh _Credits
  104135. FFECh _SearchTopics
  104136. FFEDh _SearchText
  104137. FFF0h _ManualList
  104138. FFF5h _HelpOnHelp
  104139. FFF8h _HomePage
  104140. FFF9h _IndexPage
  104141. --------U-2FEE03-----------------------------
  104142. INT 2F - XVIEW - POP UP GIVING FILENAME AND SEARCH TOPIC OR PAGE NUMBER
  104143. AX = EE03h
  104144. DS:DX -> data packet (see #03113)
  104145. Return: AX = status (see #03111)
  104146. SeeAlso: AX=EE00h"XVIEW",AX=EE01h,AX=EE02h,AX=EE06h
  104147. Format of XVIEW data packet:
  104148. Offset Size Description (Table 03113)
  104149. 00h DWORD -> ASCIZ database filespec (0000h:0000h for current database)
  104150. 04h DWORD -> ASCIZ text to look up or 0000h:0000h
  104151. 08h WORD page number (0000h if keyword used)
  104152. 0Ah 6 BYTEs reserved
  104153. --------U-2FEE04-----------------------------
  104154. INT 2F - XVIEW - POP UP AND READ SCREEN FOR SEARCH TOPIC KEYWORD
  104155. AX = EE04h
  104156. Return: AX = status (see #03111)
  104157. Note: equivalent to the action taken when the user presses the Alt-L hotkey
  104158. SeeAlso: AX=EE00h"XVIEW",AX=EE01h,AX=EE03h,AX=EE06h
  104159. --------U-2FEE05-----------------------------
  104160. INT 2F - XVIEW - POP UP TO MOST-RECENTLY VIEWED PAGE
  104161. AX = EE05h
  104162. Return: AX = status (see #03111)
  104163. Note: equivalent to the action taken when the user presses the Alt-H hotkey
  104164. SeeAlso: AX=EE00h"XVIEW",AX=EE02h,AX=EE06h
  104165. --------U-2FEE06-----------------------------
  104166. INT 2F - XVIEW - WAIT FOR POP-DOWN AND GET EXIT CODE
  104167. AX = EE06h
  104168. Return: AX = status (see also AX=EE01h)
  104169. 0001h specified filename is not an xText database
  104170. 0002h no databases found
  104171. 0003h bad data in file
  104172. 0004h memory shortage
  104173. 0005h unable to open the requested file
  104174. 0007h invalid page number for file
  104175. Note: although this call is not required, the exit code can alert the
  104176. caller to problems; if the call is not made, the program should
  104177. enforce a delay of about 1/2 second to allow the viewer to pop up,
  104178. and should not get keyboard input or attempt disk accesses during
  104179. the delay
  104180. SeeAlso: AX=EE00h"XVIEW",AX=EE01h,AX=EE02h,AX=EE03h,AX=EE04h,AX=EE05h
  104181. --------N-2FEE-------------------------------
  104182. INT 2F - WEB v4.02 - WEB MODULE INSTALLATION CHECK
  104183. AH = EEh
  104184. AL = module ID (see #03114)
  104185. Return: AX = 0000h if installed
  104186. ES:DI -> far entry point for module-specific API calls
  104187. (see #03115,#03116,#03117,#03118,#03119)
  104188. Program: WEB is an IPX-based peer-to-peer network by Webcorp.
  104189. SeeAlso: AX=EE00h"WEB"
  104190. (Table 03114)
  104191. Values for WEB module ID:
  104192. 10h server module (SERVER.EXE)
  104193. 20h client module (CLIENT.EXE)
  104194. 30h mail module (MAIL.EXE)
  104195. 40h spooler (PCSPOOL.EXE)
  104196. 50h kernel module (KERNEL.EXE)
  104197. 60h SAP module (KERNEL.EXE)
  104198. 70h resident station manager (SM.EXE)
  104199. 90h router module (ROUTER.EXE)
  104200. (Table 03115)
  104201. Call server module entry point with:
  104202. BX = function
  104203. 0000h remove server module
  104204. Return: AX = status (0000h if successful, else WEB error code)
  104205. 0001h create SYSINFO file
  104206. Note: the SYSINFO file is used by the station manager when
  104207. displaying info for a particular station
  104208. 0002h get server object table
  104209. Return: CX = number of server objects
  104210. ES:DI -> server object table
  104211. Note: server objects include drives and devices that the
  104212. server module controls
  104213. 0003h get server variables
  104214. Return: ES:DI -> server variables
  104215. (Table 03116)
  104216. Call client module entry point with:
  104217. BX = function
  104218. 0000h remove client module
  104219. Return: AX = status (0000h if successful, else WEB error code)
  104220. 0001h decrement client-only flag
  104221. 0002h increment client-only flag
  104222. 0005h set device capture
  104223. Note: decrements DeviceOutput flag, telling the spooler that
  104224. it may trap device output again
  104225. 0006h clear device capture
  104226. Note: increments DeviceOutput flag, telling the spooler that
  104227. it should not trap device output (this is used
  104228. internally by the spooler to prevent it from trapping
  104229. its own output)
  104230. 0007h get client debug pointer
  104231. Return: ES:DI -> client debug data structure (see #03120)
  104232. 0008h get root drive
  104233. Return: AL = WEB startup drive
  104234. 0009h get maximum possible drive/device redirections
  104235. Return: AL = maximum drive redirections
  104236. CH = maximum LPTx redirections
  104237. CL = maximum COMx redirections
  104238. 000Ah suspend client
  104239. Return: AX = previous value of Suspend flag
  104240. 000Bh resume client
  104241. Return: AX = previous value of Suspend flag
  104242. 000Ch get instance data
  104243. CX = maximum number of structures in array
  104244. ES:DI -> buffer for array of WIN_INSTANCE_DATA structures
  104245. (see #03121)
  104246. Return: CX = number of structures actually returned
  104247. Note: used internally by WEB4WIN
  104248. (Table 03117)
  104249. Call mail module entry point with:
  104250. BX = function
  104251. 0000h remove mail module
  104252. Return: AX = status (0000h successful, else WEB error code)
  104253. 0001h set mail poll
  104254. Note: schedules the WEB mail module
  104255. 0002h set mail notify
  104256. Note: sets the Notify flag, which determines whether the
  104257. user will be notified when mail is received
  104258. 0003h clear mail notify
  104259. Note: clears the Notify flag, which determines whether the
  104260. user will be notified when mail is received
  104261. 0004h check whether new mail has arrived
  104262. Return: AL = new mail status
  104263. 00h no new mail since last call
  104264. else new mail has arrived
  104265. Note: also clears the new-mail flag after retrieving it
  104266. 0005h send notify
  104267. ES:DI -> name of WEB user to be notified
  104268. 0006h get post office
  104269. Return: ES:DI -> full network path of Post Office subdirectory
  104270. (Table 03118)
  104271. Call spooler entry point with:
  104272. BX = function
  104273. 0000h remove PCSpool module
  104274. Return: AX = status (0000h successful, else WEB error code)
  104275. 0001h set spooler poll
  104276. Note: schedules the WEB spooler
  104277. 0002h check spooler changed
  104278. Return: AX = 0000h
  104279. Note: this call is a NOP in current versions of WEB
  104280. (Table 03119)
  104281. Call kernel entry point with:
  104282. BX = function
  104283. 0000h remove kernel module
  104284. Return: AX = status (0000h successful, else WEB error code)
  104285. 0001h set kernel ^S filter
  104286. DL = new state (00h don't filter ^S, nonzero do filter)
  104287. 0002h get kernel data area
  104288. Return: ES:DI -> kernel data area
  104289. 0003h display dialog box
  104290. CL = dialog box type
  104291. 00h password
  104292. 01h E-Note received notification
  104293. 02h Novell login
  104294. 03h general notification
  104295. DL = number of rows to display
  104296. ES:SI -> array of far pointers to rows to be displayed
  104297. ES:DI -> Pascal-style input buffer
  104298. Return: AX = status (0000h successful, else error code)
  104299. 0004h kernel service events
  104300. 0005h get kernel's in-critical-section flag
  104301. Return: ES:DI -> kernel InCriticalSection flag
  104302. 0006h schedule DOS event
  104303. AL = directive
  104304. 00h do not ignore WEB ExtraBusy flag
  104305. 01h ignore ExtraBusy flag
  104306. 02h (WEB4WIN) check that current Windows VM is foregrnd VM
  104307. ES:SI -> WEB AES Event Control Block (ECB) (see #03122)
  104308. Notes: the WEB Asynchronous Event Scheduler is similar to the
  104309. one used by IPX; this call schedules a special ECB
  104310. to be executed at a later time. Unlike IPX ECBs,
  104311. the timeout must be set explicitly by the caller
  104312. this function also calls function 0004h
  104313. 0007h check busy
  104314. AL = directive
  104315. 00h do not ignore WEB ExtraBusy flag
  104316. 01h ignore ExtraBusy flag
  104317. 02h (WEB4WIN) check that current Windows VM is foregrnd VM
  104318. Return: AX = status (0000h not busy, else busy)
  104319. 0008h set keyboard intercept
  104320. Note: currently a NOP which returns immediately
  104321. 0009h get keyboard intercept
  104322. Note: currently a NOP which returns immediately
  104323. 000Ah get dialog flags
  104324. Return: ES:DI -> kernel dialog flags (see #03123)
  104325. 000Bh get network path
  104326. Return: ES:DI -> fully-qualified network path of file where
  104327. the screen is stored on Dialog calls
  104328. 000Ch kernel alternate dialog
  104329. CL = dialog box type
  104330. 00h password
  104331. 01h E-Note received notification
  104332. 02h Novell login
  104333. 03h general notification
  104334. DL = number of rows to display
  104335. ES:SI -> array of far pointers to rows to be displayed
  104336. ES:DI -> Pascal-style input buffer
  104337. Return: AX = status (0000h successful, else error code)
  104338. Note: this function is identical to function 0003h except
  104339. that it does not notify WEB4WIN of the impending
  104340. dialog request
  104341. 000Dh get machine/operating system type
  104342. Return: AX = machine/operating system type
  104343. 01h IBM PC, MS-DOS
  104344. 02h IBM PC, DOSV (Japanese)
  104345. 03h NEC PC-9800, JDOS (Japanese)
  104346. 04h IBM PC, Korean DBC DOS
  104347. Format of client debug data structure:
  104348. Offset Size Description (Table 03120)
  104349. 00h WORD total files
  104350. 02h WORD files free
  104351. 04h WORD no files
  104352. 06h WORD minimum files
  104353. 08h WORD total FCBs
  104354. 0Ah WORD total safe FCBs
  104355. 0Ch WORD FCBs in use
  104356. 0Eh WORD wrong FCB
  104357. 10h WORD compressed
  104358. 12h WORD retransmits
  104359. Format of WIN_INSTANCE_DATA structure:
  104360. Offset Size Description (Table 03121)
  104361. 00h DWORD real-mode pointer to data to be instanced
  104362. 04h WORD size of data to be instanced
  104363. Format of WEB AES Event Control Block:
  104364. Offset Size Description (Table 03122)
  104365. 00h DWORD link address
  104366. 04h WORD ESR address
  104367. 08h BYTE InUse flag
  104368. 09h BYTE completion code
  104369. 0Ah 3 BYTEs reserved
  104370. 0Dh WORD timeout
  104371. 0Fh BYTE IgnoreExtra flag
  104372. 10h WORD PSP
  104373. 12h DWORD DTA
  104374. 16h WORD AX value for DOS critical information
  104375. 18h WORD BX value for DOS critical information
  104376. 1Ah WORD CX value for DOS critical information
  104377. 1Ch WORD DX value for DOS critical information
  104378. (Table 03123)
  104379. Values for kernel dialog flags:
  104380. 01h dialog will timeout
  104381. 02h display stars instead of entered keystrokes
  104382. --------N-2FEEF0-----------------------------
  104383. INT 2F - WEB v4.02 - WEB GENERAL NOTIFICATION
  104384. AX = EEF0h
  104385. BX = notification function ID (see #03124)
  104386. Return: varies by notification function
  104387. Program: WEB is an IPX-based peer-to-peer network by Webcorp.
  104388. Note: the notification functions are used internally by WEB modules to notify
  104389. other modules and external programs of actions or event, and should
  104390. never be called by an application
  104391. SeeAlso: AX=EE00h"WEB"
  104392. (Table 03124)
  104393. Values for WEB Notification Function ID:
  104394. 00h node added
  104395. 01h node deleted
  104396. 02h dial attempt
  104397. 03h dial failed
  104398. 04h file close
  104399. 05h close connection
  104400. 07h check Windows mode
  104401. 20h link up
  104402. 21h link down
  104403. --------K-2FF000-----------------------------
  104404. INT 2F U - 4MAP - INSTALLATION CHECK
  104405. AX = F000h
  104406. Return: AX = 00FFh
  104407. Program: 4MAP is a keybinding program for 4DOS (see AX=D44Dh) by Ho-Ping Tseng
  104408. Note: returns AX=00FFh for any value of AL not listed here
  104409. SeeAlso: AX=D44Dh,AX=F001h,AX=F002h
  104410. --------K-2FF001-----------------------------
  104411. INT 2F U - 4MAP - GET KEY MAPPINGS
  104412. AX = F001h
  104413. Return: ES:BX -> key mappings
  104414. SeeAlso: AX=F000h
  104415. --------K-2FF002-----------------------------
  104416. INT 2F U - 4MAP - INSERT CHARACTER INTO ???
  104417. AX = F002h
  104418. BL = character to insert
  104419. Return: AX = status
  104420. 0000h successful
  104421. 0001h buffer full
  104422. SeeAlso: AX=F000h,AX=F003h
  104423. --------K-2FF003-----------------------------
  104424. INT 2F U - 4MAP - INSERT CHARACTER INTO ???
  104425. AX = F003h
  104426. BL = character to insert
  104427. Return: AX = status
  104428. 0000h successful
  104429. 0001h buffer full
  104430. Program: 4MAP is a keybinding program for 4DOS (see AX=D44Dh) by Ho-Ping Tseng
  104431. SeeAlso: AX=F000h,AX=F002h
  104432. --------m-2FF1-------------------------------
  104433. INT 2F U - MIN-MEM v2.11 - INSTALLATION CHECK
  104434. AH = F1h
  104435. AL <> F1h
  104436. Return: AL = F1h if installed
  104437. Program: MIN-MEM is a shareware TSR manager by Biologic which permits up to 24
  104438. popup TSRs to be loaded but swapped out to disk, EMS, or XMS. One
  104439. TSR at a time is brought back into memory at the user's request.
  104440. --------E-2FF100-----------------------------
  104441. INT 2F - DOS EXTENDER INSTALLATION CHECK
  104442. AX = F100h
  104443. Return: AL = FFh if DOS extender present
  104444. SI = 444Fh ("DO")
  104445. DI = 5358h ("SX")
  104446. Note: supported or soon to be supported by Phar Lap, Rational, Ergo, and IGC
  104447. SeeAlso: AH=A1h,AX=ED00h,AX=FBA1h/BX=0081h,INT 15/AX=BF02h
  104448. --------W-2FF200-----------------------------
  104449. INT 2F - WINX - INSTALLATION CHECK
  104450. AX = F200h
  104451. Return: AX = 00FFh if installed
  104452. Program: WINX is a DOS/Windows utilities by Al Williams which can be used to
  104453. launch Windows applications from a DOS Box; it was published in
  104454. "DOS and Windows Protected Mode-Programming with DOS Extenders"
  104455. (Addison-Wesley) and should not be confused with the Windows driver
  104456. of the same name which is part of the DESQview/X package
  104457. --------W-2FF201-----------------------------
  104458. INT 2F - WINX - RETURN ADDRESS OF SERVER BUFFER
  104459. AX = F201h
  104460. Return: AX = status
  104461. FFFFh if WINX is busy processing a different request
  104462. 0000h if successful
  104463. BX:CX = address of server buffer (see #03125)
  104464. Format of WINX server buffer:
  104465. Offset Size Description (Table 03125)
  104466. 00h BYTE command/status
  104467. 00h buffer available
  104468. 01h buffer contains result
  104469. 02h change directory
  104470. 03h execute program
  104471. FFh terminate windows portion of WINX
  104472. 01h ? BYTEs command (03h) or directory (02h)
  104473. or
  104474. 01h DWORD result (01h)
  104475. --------W-2FF202-----------------------------
  104476. INT 2F - WINX - SET SERVER'S WORKING DIRECTORY
  104477. AX = F202h
  104478. BX:CX -> directory
  104479. Return: AX = status
  104480. FFFFh if WINX is busy processing a different request
  104481. 0000h if successful
  104482. SeeAlso: AX=F200h,AX=F203h
  104483. --------W-2FF203-----------------------------
  104484. INT 2F - WINX - EXECUTE COMMAND
  104485. AX = F203h
  104486. BX:CX -> command
  104487. Return: AX = status
  104488. 0000h if successful
  104489. FFFFh if WINX is busy processing a different request
  104490. SeeAlso: AX=F200h,AX=F202h
  104491. --------G-2FF400-----------------------------
  104492. INT 2F - FINDIRQ.COM - INSTALLATION CHECK
  104493. AX = F400h
  104494. Return: AL = 01h if installed
  104495. Program: FINDIRQ is a program by Rick Knoblaugh published in the 9/28/93 issue
  104496. of PC Magazine; when run as a TSR it can determine which IRQs are
  104497. used only when a device is active
  104498. SeeAlso: AX=F401h
  104499. --------N-2FF400-----------------------------
  104500. INT 2F - PowerLAN - INSTALLATION CHECK???
  104501. AX = F400h
  104502. ???
  104503. Return: ???
  104504. Note: this function is called by PowerLAN's NET.EXE just prior to calling
  104505. AX=F401h (get version)
  104506. SeeAlso: AX=F401h"PowerLAN"
  104507. --------N-2FF401-----------------------------
  104508. INT 2F - PowerLAN - GET VERSION
  104509. AX = F401h
  104510. Return: ES:BX -> WORD containing 100*version (in decimal)
  104511. Program: PowerLAN is a networking product by Performance Technology
  104512. SeeAlso: AX=F400h"PowerLAN",AX=F483h"PowerLAN"
  104513. --------G-2FF401CX5121-----------------------
  104514. INT 2F - FINDIRQ.COM - GET HOOKED INTERRUPTS
  104515. AX = F401h
  104516. CX = 5121h ('Q!')
  104517. Return: AX:DX -> hooked interrupt table (see #03126)
  104518. SeeAlso: AX=F400h
  104519. Format of FINDIRQ hooked interrupt table:
  104520. Offset Size Description (Table 03126)
  104521. 00h BYTE 1Ch
  104522. 01h DWORD FINDIRQ's INT 1C handler
  104523. 05h DWORD original INT 1C handler
  104524. 09h BYTE 28h
  104525. 0Ah DWORD FINDIRQ's INT 28 handler
  104526. 0Eh DWORD original INT 28 handler
  104527. 12h BYTE 2Fh
  104528. 13h DWORD FINDIRQ's INT 2F handler
  104529. 17h DWORD original INT 2F handler
  104530. --------N-2FF483-----------------------------
  104531. INT 2F - PowerLAN - ???
  104532. AX = F483h
  104533. ???
  104534. Return: ???
  104535. SeeAlso: AX=F400h"PowerLAN",AX=F401h"PowerLAN"
  104536. --------d-2FF700-----------------------------
  104537. INT 2F - AUTOPARK.COM - INSTALLATION CHECK
  104538. AX = F700h
  104539. Return: AL = state
  104540. 00h not installed
  104541. FFh installed
  104542. Program: AUTOPARK.COM is a resident hard disk parker by Alan D. Jones
  104543. --------d-2FF701-----------------------------
  104544. INT 2F - AUTOPARK.COM - SET PARKING DELAY
  104545. AX = F701h
  104546. BX:CX = 32-bit count of 55ms timer ticks
  104547. --------d-2FF800CX4455-----------------------
  104548. INT 2F U - SuperStor PRO 2XON.COM - INSTALLATION CHECK
  104549. AX = F800h
  104550. CX = 4455h ("DU")
  104551. DL = 45h ("E")
  104552. Return: AL = FFh if installed
  104553. ES:BX -> ASCII signature "Universal Data Exchange"
  104554. Program: SuperStor is a disk-compression program by Addstor.
  104555. Note: returns AX=0001h if AL is not 00h or 01h
  104556. SeeAlso: AX=1001h,AX=F801h
  104557. --------d-2FF801CX4455-----------------------
  104558. INT 2F U - SuperStor PRO 2XON.COM - UNINSTALL
  104559. AX = F801h
  104560. CX = 4455h ("DU")
  104561. DL = 45h ("E")
  104562. ES:BX = return address if successful
  104563. Return: at specified address if successfully removed from memory
  104564. else
  104565. AL = error code
  104566. ???
  104567. Program: SuperStor is a disk-compression program by Addstor.
  104568. Note: returns AX=0001h if AL is not 00h or 01h
  104569. SeeAlso: AX=1001h,AX=F800h
  104570. ----------2FFA00-----------------------------
  104571. INT 2F - Multiplex - ??? - INSTALLATION CHECK???
  104572. AX = FA00h
  104573. BX = ??? (0408h)
  104574. CX = ??? (001Fh)
  104575. DX = ??? (0102h)
  104576. SI = ??? (5ACCh)
  104577. DI = ??? (0632h)
  104578. Return: ???
  104579. Note: called by WinEmacs at startup
  104580. ----------2FFA00-----------------------------
  104581. INT 2F - Multiplex - ??? - INSTALLATION CHECK???
  104582. AX = FA00h
  104583. BX = ??? (03FCh)
  104584. CX = ??? (003Fh)
  104585. DX = ??? (00FFh)
  104586. SI = ??? (5AA6h)
  104587. DI = ??? (0620h)
  104588. Return: ???
  104589. Note: called by Matlab at startup
  104590. --------*-2FFB-------------------------------
  104591. INT 2F - Multiplex - RESERVED BY BORLAND INTERNATIONAL
  104592. AH = FBh
  104593. SeeAlso: AX=FB42h/BX=0001h
  104594. --------f-2FFB-------------------------------
  104595. INT 2F U - Conner Backup Exec AUTORES - API
  104596. AH = FBh
  104597. BL = function number (00h-07h)
  104598. ???
  104599. Return: ???
  104600. Program: AUTORES is a resident program launcher for unattended backups
  104601. --------a-2FFB00-----------------------------
  104602. INT 2F U - AutoBraille v1.1A - INSTALLATION CHECK
  104603. AX = FB00h
  104604. Return: AX = 00FFh if installed
  104605. Program: AutoBraille is a shareware text-to-braille converter by KANSYS, Inc.
  104606. SeeAlso: INT 10/AX=3800h,INT 14/AX=F0F1h
  104607. --------U-2FFB00-----------------------------
  104608. INT 2F U - Jot-It! v1.50 - INSTALLATION CHECK
  104609. AX = FB00h
  104610. Return: AX = FFFFh if installed
  104611. BX = version (BCD, BH=major, BL=minor)
  104612. SeeAlso: AX=FB03h"Jot-It",AX=FB01h"Jot-It"
  104613. --------a-2FFB01-----------------------------
  104614. INT 2F U - AutoBraille v1.1A - ???
  104615. AX = FB01h
  104616. ???
  104617. Return: ???
  104618. --------U-2FFB01-----------------------------
  104619. INT 2F U - Jot-It! v1.50 - GET USER NAME
  104620. AX = FB01h
  104621. Return: DX:BX -> ASCIZ user name
  104622. SeeAlso: AX=FB02h"Jot-It"
  104623. --------a-2FFB02-----------------------------
  104624. INT 2F U - AutoBraille v1.1A - ???
  104625. AX = FB02h
  104626. Return: AH = ???
  104627. AL = ???
  104628. --------U-2FFB02-----------------------------
  104629. INT 2F U - Jot-It! v1.50 - GET MESSAGE DIRECTORY
  104630. AX = FB02h
  104631. Return: DX:BX -> ASCIZ name of directory in which messages are stored
  104632. SeeAlso: AX=FB01h"Jot-It"
  104633. --------a-2FFB03-----------------------------
  104634. INT 2F U - AutoBraille v1.1A - GET NEXT ???
  104635. AX = FB03h
  104636. Return: AX = ???
  104637. --------U-2FFB03-----------------------------
  104638. INT 2F U - Jot-It! v1.50 - UNINSTALL
  104639. AX = FB03h
  104640. Return: resident code removed from memory
  104641. Note: CAUTION: NO checks are performed to ensure that the interrupt vectors
  104642. being unhooked (08h,09h,28h,2Fh) actually point at the Jot-It! code
  104643. SeeAlso: AX=FB00h"Jot-It"
  104644. --------a-2FFB-------------------------------
  104645. INT 2F U - AutoBraille v1.1A - SET ???
  104646. AH = FBh
  104647. AL = 04h-08h
  104648. Return: AX = 0000h
  104649. --------a-2FFB-------------------------------
  104650. INT 2F U - AutoBraille v1.1A - SET ???
  104651. AH = FBh
  104652. AL = 09h-0Fh (???, 0Eh = COM1, 0Fh = COM2)
  104653. Return: ???
  104654. Program: AutoBraille is a shareware text-to-braille converter by KANSYS, Inc.
  104655. --------a-2FFB-------------------------------
  104656. INT 2F U - AutoBraille v1.1A - SET ???
  104657. AH = FBh
  104658. AL = 10h-1Fh
  104659. ???
  104660. Return: ???
  104661. --------a-2FFB20-----------------------------
  104662. INT 2F U - AutoBraille v1.1A - SET ??? FLAGS
  104663. AX = FB20h
  104664. BL = flags to set
  104665. SeeAlso: AX=FB21h"AutoBraille"
  104666. --------a-2FFB21-----------------------------
  104667. INT 2F U - AutoBraille v1.1A - CLEAR ??? FLAGS
  104668. AX = FB21h
  104669. BL = flags to clear
  104670. SeeAlso: AX=FB20h"AutoBraille"
  104671. --------a-2FFB22-----------------------------
  104672. INT 2F U - AutoBraille v1.1A - SET ???
  104673. AX = FB22h
  104674. BL = ???
  104675. Program: AutoBraille is a shareware text-to-braille converter by KANSYS, Inc.
  104676. --------a-2FFB28-----------------------------
  104677. INT 2F U - AutoBraille v1.1A - ???
  104678. AX = FB28h
  104679. BX = ???
  104680. ???
  104681. Return: ???
  104682. SeeAlso: AX=FB29h"AutoBraille"
  104683. --------a-2FFB29-----------------------------
  104684. INT 2F U - AutoBraille v1.1A - ???
  104685. AX = FB29h
  104686. BX = ???
  104687. ???
  104688. Return: ???
  104689. SeeAlso: AX=FB28h"AutoBraille"
  104690. --------a-2FFB-------------------------------
  104691. INT 2F U - AutoBraille v1.1A - SET ???
  104692. AH = FBh
  104693. AL = 2Bh-34h
  104694. BX = ???
  104695. --------a-2FFB35-----------------------------
  104696. INT 2F U - AutoBraille v1.1A - SET ???
  104697. AX = FB35h
  104698. BL = ???
  104699. --------a-2FFB36-----------------------------
  104700. INT 2F U - AutoBraille v1.1A - SET ???
  104701. AX = FB36h
  104702. BL = ???
  104703. --------a-2FFB37-----------------------------
  104704. INT 2F U - AutoBraille v1.1A - SET ???
  104705. AX = FB37h
  104706. BL = ???
  104707. Program: AutoBraille is a shareware text-to-braille converter by KANSYS, Inc.
  104708. --------E-2FFB42BX0001-----------------------
  104709. INT 2F PU - Borland C++ DPMILOAD.EXE - INSTALLATION CHECK???
  104710. AX = FB42h
  104711. BX = 0001h
  104712. Return: AX = version number??? (AL=major, AH=minor)
  104713. CX = next-selector increment
  104714. ---BC2.0---
  104715. ES:BX -> 80-byte buffer for ???
  104716. DX = DPMI version
  104717. ---BC3.0---
  104718. BX = ??? (0000h)
  104719. DX = ???
  104720. ES:SI -> list of valid selectors ???
  104721. Notes: The version of DPMILOAD distributed with BC++ v2.0 identifies itself
  104722. as version 1.000, while the version distributed with BC++ 3.0
  104723. identifies itself as version 1.0; the former is 10864 bytes, the
  104724. latter 22180 bytes. The BC2.0 version is a DPMI loader, while
  104725. the BC3.0 version also adds a DPMI host and DOS extender
  104726. the BC++ 2.0 version displays an error message if called with BX
  104727. values other than 0001h-0008h
  104728. SeeAlso: AX=1687h,AX=FB42h/BX=1001h,AX=FB43h
  104729. --------E-2FFB42BX0002-----------------------
  104730. INT 2F PU - Borland C++ 2.0 DPMILOAD.EXE - ALLOCATE MEMORY
  104731. AX = FB42h
  104732. BX = 0002h
  104733. CX = size in bytes
  104734. DX = bit flags
  104735. bit 2: set to allocate DOS memory, clear for DPMI memory
  104736. SI = selector of descriptor to be modified to access allocated memory
  104737. DI = selector of a second descriptor to be modified
  104738. Return: AX = ??? or 0000h on error
  104739. CX:DX = linear base address of DPMI memory block
  104740. SI:DI = handle for DPMI memory block or FFFFh:FFFFh
  104741. ???
  104742. Note: two segment descriptors may be set if a code and an aliased data
  104743. segment are required; if only one descriptor is needed, SI should
  104744. equal DI on entry
  104745. BUG: when allocating DOS memory, the code computes the linear address by
  104746. multiplying the segment number by 4 rather than shifting by 4
  104747. SeeAlso: AX=FB42h/BX=0003h,AX=FB42h/BX=0008h,INT 31/AX=0501h
  104748. --------E-2FFB42BX0002-----------------------
  104749. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ALLOCATE MEMORY
  104750. AX = FB42h
  104751. BX = 0002h
  104752. ES:SI -> memory block info (see #03127)
  104753. Return: ???
  104754. Note: The version of DPMILOAD distributed with BC++ v2.0 identifies itself
  104755. as version 1.000, while the version distributed with BC++ 3.0
  104756. identifies itself as version 1.0; the former is 10864 bytes, the
  104757. latter 22180 bytes.
  104758. SeeAlso: AX=FB42h/BX=0003h,AX=FB42h/BX=0008h,INT 31/AX=0501h
  104759. Format of DPMILOAD memory block info:
  104760. Offset Size Description (Table 03127)
  104761. 00h WORD flags (see #03128)
  104762. 02h DWORD block size in bytes
  104763. ---DPMI memory block---
  104764. 06h DWORD DPMI memory block handle
  104765. ---DOS memory block---
  104766. 06h WORD real-mode segment of memory block
  104767. 08h WORD selector of memory block
  104768. ---
  104769. 0Ah DWORD linear address of memory
  104770. 0Eh WORD memory operation error code
  104771. 0008h no more free LDT descriptors
  104772. ---if flags bit 0 clear---
  104773. 10h WORD code segment selector for memory block or 0000h or FFFFh
  104774. 12h WORD data alias selector for memory block or 0000h or FFFFh
  104775. ---if flags bit 0 set---
  104776. 10h WORD data segment selector for memory block or 0000h or FFFFh
  104777. 12h WORD unused???
  104778. Bitfields for DPMILOAD memory block flags:
  104779. Bit(s) Description (Table 03128)
  104780. 0 set if data segment rather than code segment
  104781. 1 information valid
  104782. 2 set if DOS memory block rather than DPMI memory block
  104783. 4 ???
  104784. 15 set if no LDT selectors for memory block???
  104785. SeeAlso: #03127
  104786. --------E-2FFB42BX0003-----------------------
  104787. INT 2F PU - Borland C++ DPMILOAD.EXE - GET AVAILABLE MEMORY
  104788. AX = FB42h
  104789. BX = 0003h
  104790. Return: DX:AX = size of largest free block in paragraphs
  104791. 0000h:0000h on error (BC3.0 version only)
  104792. Note: AX and DX are destroyed on error, but no other error indicator is
  104793. returned, under the BC++ 2.0 version of DPMILOAD
  104794. SeeAlso: AX=FB42h/BX=0002h
  104795. --------E-2FFB42BX0004-----------------------
  104796. INT 2F PU - Borland C++ DPMILOAD.EXE - LOAD PROTECTED-MODE EXECUTABLE???
  104797. AX = FB42h
  104798. BX = 0004h
  104799. DS:DX -> ASCIZ filename of protected-mode executable
  104800. Return: CX = selector of ??? or 0000h
  104801. ---BC3.0---
  104802. DX = status (0000h,FFF4h,others???) (see #03129)
  104803. Note: the filename may also be terminated by a CR rather than a NUL under the
  104804. BC++ 3.0 version of DPMILOAD
  104805. (Table 03129)
  104806. Values for DPMILOAD function status:
  104807. 0000h successful
  104808. 0001h ??? failure
  104809. 0002h invalid selector
  104810. 0004h unknown error
  104811. 0008h no more LDT descriptors available???
  104812. FFDEh unable to set descriptor
  104813. FFDFh unable to get segment base address
  104814. FFE0h ???
  104815. FFF2h invalid parameter value
  104816. FFF4h component of filename too long (name not in 8.3 format)
  104817. FFF5h pathname too long (>79 chars)
  104818. FFF6h ???
  104819. FFF8h ???
  104820. FFF9h index out of range
  104821. FFFAh ???
  104822. FFFCh invalid access to code segment???
  104823. FFFEh ???
  104824. FFFFh general error
  104825. --------E-2FFB42BX0005-----------------------
  104826. INT 2F PU - Borland C++ DPMILOAD.EXE - GET ADDRESS OF ??? BY NAME
  104827. AX = FB42h
  104828. BX = 0005h
  104829. CX = selector of DPMILOAD data (see #03130)
  104830. DS:DX -> ASCIZ or CR-terminated name of ??? (case ignored)
  104831. Return: DX = status (see #03129)
  104832. 0000h successful
  104833. AX:BX -> ??? FAR function (called with two words on top of stk)
  104834. else
  104835. BX destroyed
  104836. SeeAlso: AX=FB42h/BX=0006h,AX=FB42h/BX=000Eh
  104837. Format of DPMILOAD data:
  104838. Offset Size Description (Table 03130)
  104839. 00h 12 BYTEs ???
  104840. 0Ch WORD ??? bit flags
  104841. 0Eh 14 BYTEs ???
  104842. 1Ch WORD number of memory control records (see #03133)
  104843. 1Eh 25 BYTEs ???
  104844. 37h BYTE ??? bit flags
  104845. bit 4: data valid???
  104846. 38h 4 BYTEs ???
  104847. 3Ch WORD ???
  104848. 3Eh 12 BYTEs ???
  104849. 46h BYTE ??? counter
  104850. 47h BYTE ???
  104851. 48h BYTE ???
  104852. 49h BYTE ???
  104853. 4Ah WORD ???
  104854. 4Ch 2 BYTEs ???
  104855. 4Eh WORD offset of array of 64-byte memory control records
  104856. 52h WORD offset of name list (see #03131)
  104857. 54h 4 BYTEs ???
  104858. 58h WORD offset of array of 6-byte objects (see #03132)
  104859. 5Ah 8 BYTEs ???
  104860. 62h 9 BYTEs ASCIZ name for ???
  104861. 6Bh 9 BYTEs ASCIZ name for ???
  104862. ???
  104863. Format of name list entry [array]:
  104864. Offset Size Description (Table 03131)
  104865. 00h BYTE length of name (00h if end of array)
  104866. 01h N BYTEs name
  104867. N+1 WORD 1-based index into array of unknown 6-byte objects
  104868. Format of 6-byte objects:
  104869. Offset Size Description (Table 03132)
  104870. 00h BYTE ???
  104871. 01h BYTE ???
  104872. 02h BYTE ???
  104873. 03h BYTE 1-based index of memory control record
  104874. 04h WORD ???
  104875. Format of memory control record:
  104876. Offset Size Description (Table 03133)
  104877. 00h 20 BYTEs memory block info (see #03127)
  104878. 14h 6 BYTEs ???
  104879. 1Ah BYTE ???
  104880. 1Bh 2 BYTEs ???
  104881. 1Dh BYTE ??? bit flags
  104882. 1Eh 14 BYTEs ???
  104883. 2Ch DWORD pointer to ??? memory control record or 0000h:0000h
  104884. 30h DWORD pointer to ??? memory control record or 0000h:0000h
  104885. 34h DWORD pointer to next??? memory control record or 0000h:0000h
  104886. 38h DWORD pointer to prev??? memory control record or 0000h:0000h
  104887. 3Ch 4 BYTEs ???
  104888. Note: the pointers at offsets 2Ch and 30h form a doubly-linked list, as do
  104889. the pointers at offsets 34h and 38h
  104890. --------E-2FFB42BX0006-----------------------
  104891. INT 2F PU - Borland C++ DPMILOAD.EXE - GET ADDRESS OF ??? BY NUMBER
  104892. AX = FB42h
  104893. BX = 0006h
  104894. CX = selector of DPMILOAD data (see #03130)
  104895. DX = 1-based index into array of ??? 6-byte objects
  104896. Return: DX = status (see #03129)
  104897. 0000h successful
  104898. AX:BX -> ??? FAR function (called with two words on top of stk)
  104899. else
  104900. BX destroyed
  104901. SeeAlso: AX=FB42h/BX=0005h,AX=FB42h/BX=000Eh
  104902. --------E-2FFB42BX0007-----------------------
  104903. INT 2F PU - Borland C++ 2.0 DPMILOAD.EXE - ???
  104904. AX = FB42h
  104905. BX = 0007h
  104906. CX = selector of ???
  104907. Return: ???
  104908. Note: The version of DPMILOAD distributed with BC++ v2.0 identifies itself
  104909. as version 1.000, while the version distributed with BC++ 3.0
  104910. identifies itself as version 1.0; the former is 10864 bytes, the
  104911. latter 22180 bytes.
  104912. --------E-2FFB42BX0007-----------------------
  104913. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
  104914. AX = FB42h
  104915. BX = 0007h
  104916. CX = selector of DPMILOAD data (see #03130)
  104917. ???
  104918. Return: DX = status (see #03129)
  104919. 0000h successful
  104920. AX = ???
  104921. --------E-2FFB42BX0008-----------------------
  104922. INT 2F PU - Borland C++ 2.0 DPMILOAD.EXE - FREE MEMORY BLOCK
  104923. AX = FB42h
  104924. BX = 0008h
  104925. CX = bit flags
  104926. bit 2: set if DPMI memory, clear if DOS memory
  104927. DX = selector of DOS memory block
  104928. SI:DI = handle of DPMI memory block
  104929. Return: DX = 0000h on error, unchanged if succcessful
  104930. Note: The version of DPMILOAD distributed with BC++ v2.0 identifies itself
  104931. as version 1.000, while the version distributed with BC++ 3.0
  104932. identifies itself as version 1.0; the former is 10864 bytes, the
  104933. latter 22180 bytes.
  104934. SeeAlso: AX=FB42h/BX=0002h
  104935. --------E-2FFB42BX0008-----------------------
  104936. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - FREE MEMORY BLOCK
  104937. AX = FB42h
  104938. BX = 0008h
  104939. ES:SI -> memory block info (see #03127)
  104940. Return: ???
  104941. SeeAlso: AX=FB42h/BX=0009h
  104942. --------E-2FFB42BX0009-----------------------
  104943. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - RESIZE MEMORY BLOCK
  104944. AX = FB42h
  104945. BX = 0009h
  104946. ES:SI -> memory block info (see #03127)
  104947. ???
  104948. Return: ???
  104949. SeeAlso: AX=FB42h/BX=0008h"3.0"
  104950. --------E-2FFB42BX000A-----------------------
  104951. INT 2F RU - Borland C++ 3.0 DPMILOAD.EXE - INIT DPMI HOST AND SPAWN SUBSHELL
  104952. AX = FB42h
  104953. BX = 000Ah
  104954. CX = 0001h
  104955. DX = ???
  104956. SI = ???
  104957. Return: after user exits subshell
  104958. Notes: this call is used by DPMIRES; unlike most of the DPMILOAD calls, this
  104959. function is not available in protected mode.
  104960. the BC2.0 version of DPMILOAD is purely a DPMI loader, while the BC3.0
  104961. version also adds a DPMI host and DOS extender.
  104962. SeeAlso: AX=FB42h/BX=0004h,AX=FB42h/BX=0015h
  104963. --------E-2FFB42BX000B-----------------------
  104964. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - UNUSED
  104965. AX = FB42h
  104966. BX = 000Bh
  104967. --------E-2FFB42BX000C-----------------------
  104968. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - FREE DESCRIPTORS FOR MEMORY BLOCK???
  104969. AX = FB42h
  104970. BX = 000Ch
  104971. ES:SI -> memory block info ??? (see #03127)
  104972. Return: DX = status???
  104973. SeeAlso: AX=FB42h/BX=000Fh
  104974. --------E-2FFB42BX000D-----------------------
  104975. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - SIMULATE REAL MODE INTERRUPT
  104976. AX = FB42h
  104977. BX = 000Dh
  104978. CX = number of words to copy from protected-mode to real mode stack
  104979. DL = interrupt number
  104980. DH = flags
  104981. bit 0: reset the interrupt controller and A20 line
  104982. ES:DI -> real-mode call structure (see #03148 at INT 31/AX=0300h)
  104983. Return: CX = status
  104984. 0000h successful
  104985. 0001h failed
  104986. SeeAlso: INT 31/AX=0300h
  104987. --------E-2FFB42BX000E-----------------------
  104988. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ADDRESS OF ???
  104989. AX = FB42h
  104990. BX = 000Eh
  104991. DS:DX -> ASCIZ or CR-terminated name of ???
  104992. Return: CX = selector of DPMILOAD data (see #03130) corresponding to name,
  104993. 0000h on error
  104994. SeeAlso: AX=FB42h/BX=0006h,AX=FB42h/BX=001Fh
  104995. --------E-2FFB42BX000F-----------------------
  104996. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - REALLOCATE LDT DESCRPS TO MEMBLK???
  104997. AX = FB42h
  104998. BX = 000Fh
  104999. ES:SI -> memory block info (see #03127)
  105000. Return: ???
  105001. SeeAlso: AX=FB42h/BX=000Ch
  105002. --------E-2FFB42BX0010-----------------------
  105003. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - CONVERT SEGMENT TO SELECTOR
  105004. AX = FB42h
  105005. BX = 0010h
  105006. DX = segment number
  105007. Return: CX = status (0000h,0008h) (see also AX=FB42h/BX=0004h)
  105008. 0000h successful
  105009. DX = selector number for descriptor
  105010. 0008h failed
  105011. SeeAlso: AX=FB42h/BX=0023h
  105012. --------E-2FFB42BX0011-----------------------
  105013. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
  105014. AX = FB42h
  105015. BX = 0011h
  105016. CX = selector of DPMILOAD data (see #03130)
  105017. ???
  105018. Return: DX = status (0000h,0002h,FFFEh) (see also #03129)
  105019. 0000h successful
  105020. AX:BX -> ??? name
  105021. FFFEh ??? error
  105022. --------E-2FFB42BX0012-----------------------
  105023. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
  105024. AX = FB42h
  105025. BX = 0012h
  105026. CX = selector for ???
  105027. Return: CX = selector for ???
  105028. --------E-2FFB42BX0013-----------------------
  105029. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
  105030. AX = FB42h
  105031. BX = 0013h
  105032. CX = selector of DPMILOAD data (see #03130)
  105033. DX = 1-based index of ???
  105034. Return: CX = status (0000h,0002h,FFF9h) (see also #03129)
  105035. 0000h successful
  105036. BX = ??? or 0000h
  105037. FFF9h ??? error
  105038. --------E-2FFB42BX0014-----------------------
  105039. INT 2F RU - Borland C++ 3.0 DPMILOAD.EXE - INSTALLATION CHECK
  105040. AX = FB42h
  105041. BX = 0014h
  105042. CX = 0001h
  105043. Return: BX = 0000h if installed
  105044. Note: unlike most of the DPMILOAD functions, this call is available only in
  105045. real or V86 mode
  105046. SeeAlso: AX=FB42h/BX=0001h,AX=FB42h/BX=000Ah
  105047. --------E-2FFB42BX0015-----------------------
  105048. INT 2F RU - Borland C++ 3.0 DPMILOAD.EXE - UNINSTALL
  105049. AX = FB42h
  105050. BX = 0015h
  105051. CX = 0001h
  105052. Return: ???
  105053. Note: unlike most of the DPMILOAD functions, this call is available only in
  105054. real or V86 mode
  105055. SeeAlso: AX=FB42h/BX=000Ah
  105056. --------E-2FFB42BX0016-----------------------
  105057. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ???
  105058. AX = FB42h
  105059. BX = 0016h
  105060. CX = selector of DPMILOAD data (see #03130)
  105061. Return: DX = status (see also AX=FB42h/BX=0004h)
  105062. 0000h successful
  105063. CX = ???
  105064. --------E-2FFB42BX0017-----------------------
  105065. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
  105066. AX = FB42h
  105067. BX = 0017h
  105068. CX = ???
  105069. DX = ???
  105070. ???
  105071. Return: DX = status (0000h,0001h) (see #03129)
  105072. --------E-2FFB42BX0018-----------------------
  105073. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - SET ???
  105074. AX = FB42h
  105075. BX = 0018h
  105076. CX = ???
  105077. --------E-2FFB42BX0019-----------------------
  105078. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
  105079. AX = FB42h
  105080. BX = 0019h
  105081. CX = selector for ???
  105082. ???
  105083. Return: DX = status (see also AX=FB42h/BX=0004h)
  105084. 0000h successful
  105085. CX = selector for ???
  105086. --------E-2FFB42BX001A-----------------------
  105087. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
  105088. AX = FB42h
  105089. BX = 001Ah
  105090. CX = selector for ???
  105091. ???
  105092. Return: DX = status (see also AX=FB42h/BX=0004h)
  105093. 0000h successful
  105094. 0004h failed
  105095. CX:BX -> ???
  105096. --------E-2FFB42BX001B-----------------------
  105097. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
  105098. AX = FB42h
  105099. BX = 001Bh
  105100. CX = selector of DPMILOAD data (see #03130)
  105101. DX = offset of ???
  105102. Return: DX = status (0000h,0002h) (see also #03129)
  105103. 0000h successful
  105104. BX = selector for ???
  105105. CX = selector for ???
  105106. --------E-2FFB42BX001C-----------------------
  105107. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
  105108. AX = FB42h
  105109. BX = 001Ch
  105110. ES = selector for DPMILOAD data (see #03130)
  105111. CX = 1-based index of ???
  105112. DX = 1-based index of ???
  105113. Return: DX = status (0000h,0002h,FFF9h) (see #03129)
  105114. --------E-2FFB42BX001D-----------------------
  105115. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ???
  105116. AX = FB42h
  105117. BX = 001Dh
  105118. Return: CX:DX = ???
  105119. --------E-2FFB42BX001E-----------------------
  105120. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
  105121. AX = FB42h
  105122. BX = 001Eh
  105123. CX = ???
  105124. ???
  105125. Return: DX = status (see also AX=FB42h/BX=0004h)
  105126. 0000h successful
  105127. FFF7h ??? error
  105128. CX:BX -> ???
  105129. --------E-2FFB42BX001F-----------------------
  105130. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ADDRESS OF ???
  105131. AX = FB42h
  105132. BX = 001Fh
  105133. DS:DX -> 8-character name of ???
  105134. ???
  105135. Return: CX = selector of DPMILOAD data (see #03130) for ???
  105136. 0000h on error
  105137. SeeAlso: AX=FB42h/BX=000Eh
  105138. --------E-2FFB42BX0020-----------------------
  105139. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - NULL FUNCTION???
  105140. AX = FB42h
  105141. BX = 0020h
  105142. Return: DX = ??? (always 0000h)
  105143. --------E-2FFB42BX0021-----------------------
  105144. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET PROCESSOR EXCEPTION HANDLER VECT
  105145. AX = FB42h
  105146. BX = 0021h
  105147. CL = exception number (00h-1Fh)
  105148. Return: DX = status (see also AX=FB42h/BX=0004h)
  105149. 0000h successful
  105150. AX:BX = selector:offset of handler
  105151. FFF2h unable to get exception handler vector
  105152. SeeAlso: AX=FB42h/BX=0022h,AX=FB42h/BX=0024h,INT 31/AX=0202h
  105153. --------E-2FFB42BX0022-----------------------
  105154. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - SET PROCESSOR EXCEPTION HANDLER VECT
  105155. AX = FB42h
  105156. BX = 0022h
  105157. CL = exception number (00h-1Fh)
  105158. SI:DX = selector:offset of new handler
  105159. Return: DX = status (0000h,0004h,FFF2h) (see #03129)
  105160. SeeAlso: AX=FB42h/BX=0021h,AX=FB42h/BX=0025h,INT 31/AX=0203h
  105161. --------E-2FFB42BX0023-----------------------
  105162. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - CONVERT SELECTOR TO SEGMENT NUMBER
  105163. AX = FB42h
  105164. BX = 0023h
  105165. CX = selector
  105166. Return: DX = status (see also AX=FB42h/BX=0004h)
  105167. 0000h successful
  105168. CX = real-mode segment number
  105169. FFF2h descriptor has invalid base address for real-mode segment
  105170. SeeAlso: AX=FB42h/BX=0010h
  105171. --------E-2FFB42BX0024-----------------------
  105172. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET PROTECTED-MODE INTERRUPT VECTOR
  105173. AX = FB42h
  105174. BX = 0024h
  105175. CL = interrupt number
  105176. Return: DX = status (0000h) (see also AX=FB42h/BX=0004h)
  105177. AX:BX = selector:offset of handler
  105178. SeeAlso: AX=FB42h/BX=0025h,INT 31/AX=0204h
  105179. --------E-2FFB42BX0025-----------------------
  105180. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - SET PROTECTED-MODE INTERRUPT VECTOR
  105181. AX = FB42h
  105182. BX = 0025h
  105183. CL = interrupt number
  105184. SI:DX = selector:offset of new handler
  105185. Return: DX = status (0000h,0004h,FFF2h) (see #03129)
  105186. SeeAlso: AX=FB42h/BX=0024h,INT 31/AX=0205h
  105187. --------E-2FFB42BX0026-----------------------
  105188. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - ???
  105189. AX = FB42h
  105190. BX = 0026h
  105191. CX = selector of DPMILOAD data (see #03130)
  105192. DX = 1-based index of ???
  105193. ???
  105194. Return: DX = status (0000h,0002h,FFF9h) (see #03129)
  105195. 0000h successful
  105196. BX = offset of ??? within data structure
  105197. --------E-2FFB42BX0027-----------------------
  105198. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - GET ???
  105199. AX = FB42h
  105200. BX = 0027h
  105201. CX = selector of DPMILOAD data (see #03130)
  105202. DX = offset of ???
  105203. Return: DX = status (see also AX=FB42h/BX=0004h)
  105204. 0000h successful
  105205. BX = ???
  105206. --------E-2FFB42BX0080-----------------------
  105207. INT 2F U - ??? - CALLED BY Borland C++ 3.0 DPMILOAD.EXE
  105208. AX = FB42h
  105209. BX = 0080h
  105210. ???
  105211. Return: AX = ???
  105212. ???
  105213. --------E-2FFB42BX0081-----------------------
  105214. INT 2F U - ??? - CALLED BY Borland C++ 3.0 DPMILOAD.EXE
  105215. AX = FB42h
  105216. BX = 0081h
  105217. ???
  105218. Return: AX = ???
  105219. ???
  105220. --------E-2FFB42BX1001-----------------------
  105221. INT 2F U - Borland RTM.EXE 1.0 - INSTALLATION CHECK???
  105222. AX = FB42h
  105223. BX = 1001h
  105224. Return: BX = 0000h
  105225. SeeAlso: AX=FB42h/BX=0001h,AX=FB42h/BX=1002h,AX=FB42h/BX=1003h
  105226. --------E-2FFB42BX1002-----------------------
  105227. INT 2F U - Borland RTM.EXE 1.0 - EXECUTE COMPILED PROGRAM
  105228. AX = FB42h
  105229. BX = 1002h
  105230. DX = 0014h ???
  105231. ???
  105232. Return: AX = nonzero if successful
  105233. AH = child program exit method??? (usually 4Ch)
  105234. AL = child program exit code (Errorlevel)
  105235. AX = 0000h on load error
  105236. DX = error code (0000h-0027h) (see #03134)
  105237. SeeAlso: AX=FB42h/BX=1001h
  105238. (Table 03134)
  105239. Values for RTM.EXE error code:
  105240. 01h out of memory
  105241. 02h out of selectors
  105242. 03h out of internal tables
  105243. 10h internal error
  105244. 18h internal error
  105245. 1Ah internal error
  105246. 1Bh internal error
  105247. 1Ch internal error
  105248. 20h invalid dynamic link
  105249. 21h internal error
  105250. 22h unable to open file
  105251. 23h invalid .EXE format
  105252. 24h wrong version
  105253. 25h unable to initialize
  105254. 26h DLL initialization error
  105255. other unrecognized error
  105256. --------E-2FFB42BX1003-----------------------
  105257. INT 2F U - Borland RTM.EXE 1.0 - ???
  105258. AX = FB42h
  105259. BX = 1003h
  105260. ???
  105261. Return: ???
  105262. SeeAlso: AX=FB42h/BX=1001h
  105263. --------E-2FFB43-----------------------------
  105264. INT 2F PU - Borland C++ 3.0 DPMILOAD.EXE - NULL FUNCTION
  105265. AX = FB43h
  105266. BX = subfunction (at least 0000h-000Eh)
  105267. Notes: this function is only present in protected mode; it does nothing but
  105268. an immediate IRET
  105269. DPMILOAD.EXE itself calls various subfunctions:
  105270. subfunction 0004h is called with CX=selector of ???, DI=selector
  105271. of DPMILOAD data
  105272. subfunction 0008h is called with CX=selector of DPMILOAD data
  105273. SeeAlso: AX=FB42h/BX=0001h
  105274. --------G-2FFB43BX0100-----------------------
  105275. INT 2F PU - Borland TDX - INSTALLATION CHECK
  105276. AX = FB43h
  105277. BX = 0100h
  105278. Return: BX = FB43h if loaded
  105279. Program: TDX is Borland's Turbo Debugger variant for DPMI programs
  105280. Note: Borland Pascal 7 DPMI programs use this call to check whether they
  105281. should install their own stack and general protection exception
  105282. handlers, or allow TDX to handle those exceptions
  105283. --------a-2FFB64-----------------------------
  105284. INT 2F U - AutoBraille v1.1A - GET ???
  105285. AX = FB64h
  105286. Return: AX = ??? (0006h seen)
  105287. Program: AutoBraille is a shareware text-to-braille converter by KANSYS, Inc.
  105288. --------E-2FFBA1BX0081-----------------------
  105289. INT 2F U - TKERNEL (Borland DOS extender) - INSTALLATION CHECK
  105290. AX = FBA1h
  105291. BX = 0081h
  105292. ES:DI -> 16-byte buffer
  105293. Return: if installed, first four bytes of ES:DI buffer are "IABH"
  105294. Program: TKERNEL is a licensed version of AI Architects/Ergo's OS/x86.
  105295. Note: TKERNEL was present only in Borland C++ 2.0; with version 3.0, the DOS
  105296. extender was moved into DPMILOAD.
  105297. SeeAlso: AH=A1h,AX=F100h,AX=FBA1h/BX=0082h,AX=FBA1h/BX=0084h,INT 15/AX=BF02h
  105298. SeeAlso: INT 21/AX=4403h"AI Architects"
  105299. --------E-2FFBA1BX0082-----------------------
  105300. INT 2F U - TKERNEL (Borland DOS extender) - GET ENTRY POINT
  105301. AX = FBA1h
  105302. BX = 0082h
  105303. ES:DI -> response buffer (see #03135)
  105304. Return: ES:DI buffer filled
  105305. SeeAlso: AX=FBA1h/BX=0081h,AX=FBA1h/BX=0084h
  105306. Format of TKERNEL response buffer:
  105307. Offset Size Description (Table 03135)
  105308. 00h 4 BYTEs signature "IABH"
  105309. 04h DWORD pointer to FAR extender entry point (see #03136)
  105310. (Table 03136)
  105311. Call TKERNEL entry point with:
  105312. AX = function number
  105313. 0000h initialize???
  105314. STACK: WORD ???
  105315. Return: AX = status???
  105316. STACK unchanged
  105317. 0001h get version???
  105318. Return: AX = 0200h for v2.0.34
  105319. 0002h get ???
  105320. Return: AX = ??? (011Eh or 0182h seen)
  105321. 0003h load protected-mode executable
  105322. STACK: DWORD -> ASCIZ filename of executable
  105323. DWORD ???
  105324. DWORD -> program arguments (counted string plus CR)
  105325. DWORD -> environment for protected-mode executable
  105326. (terminated with two consecutive NULs)
  105327. DWORD -> WORD buffer for ???
  105328. Return: AX = status???
  105329. STACK unchanged
  105330. 0004h get descriptor
  105331. STACK: WORD selector for which to get descriptor
  105332. WORD segment number (when running in real mode)
  105333. DWORD -> buffer for descriptor
  105334. Return: CF clear if successful
  105335. buffer filled
  105336. CF set on error
  105337. AX destroyed???
  105338. STACK unchanged
  105339. 0005h ???
  105340. STACK: WORD selector for ???
  105341. WORD subfunction number???
  105342. 0000h run previously-loaded program???
  105343. 0001h ??? (similar to 0000h)
  105344. 0002h
  105345. 0003h
  105346. 0005h ??? (similar to 0000h and 0001h)
  105347. Return: AX = status???
  105348. STACK unchanged
  105349. 0006h ???
  105350. STACK: WORD ???
  105351. DWORD -> WORD (call) max iterations of ???
  105352. (ret) remaining iterations
  105353. Return: AX = ???
  105354. STACK unchanged
  105355. 0007h unused
  105356. Return: AX = 0001h
  105357. 0008h unused
  105358. Return: AX = 0001h
  105359. 0009h copy protected-mode memory into conventional memory
  105360. STACK: WORD selector for source segment
  105361. WORD segment of source if in real mode???
  105362. DWORD offset of source
  105363. WORD number of bytes to copy
  105364. DWORD -> low-memory destination
  105365. Return: AX = status
  105366. STACK unchanged
  105367. 000Ah copy conventional memory into protected-mode memory
  105368. STACK: WORD selector for destination segment
  105369. WORD segment of destination if in real mode???
  105370. DWORD offset of destination
  105371. WORD number of bytes to copy
  105372. DWORD -> low-memory source
  105373. Return: AX = status
  105374. STACK unchanged
  105375. 000Bh get ??? pointers
  105376. STACK: WORD desired pointer
  105377. 0000h get ???
  105378. 0002h get protected-mode CR3
  105379. 0003h get 4K page table buffer pointer
  105380. else Return: DX:AX = FFFFh:FFFFh
  105381. Return: DX:AX = requested pointer
  105382. STACK unchanged
  105383. 000Ch set ??? pointers
  105384. STACK: WORD desired pointer
  105385. 0000h set ???
  105386. 0002h set protected-mode CR3
  105387. 0003h set 4K page table buffer pointer
  105388. else ignore
  105389. DWORD new value for pointer
  105390. Return: STACK unchanged
  105391. 000Dh get ??? pointers
  105392. STACK: WORD desired pointer
  105393. 0000h get ???
  105394. 0001h get ???
  105395. 0002h get ???
  105396. 0003h get ???
  105397. 0004h get ???
  105398. 0005h get ???
  105399. 0006h get ???
  105400. 0007h get ???
  105401. else Return: DX:AX = FFFFh:FFFFh
  105402. Return: DX:AX = desired pointer
  105403. STACK unchanged
  105404. 000Eh set ??? pointer
  105405. STACK: WORD desired pointer
  105406. 0000h set ???
  105407. 0001h set ???
  105408. 0002h set ???
  105409. 0003h set ???
  105410. 0004h set ???
  105411. 0005h set ???
  105412. 0006h set ???
  105413. 0007h set ???
  105414. else Return: DX:AX = FFFFh:FFFFh
  105415. Return: STACK unchanged
  105416. 000Fh get ???
  105417. Return: AX = ??? (seen 0008h)
  105418. 0010h get ???
  105419. Return: AX = ???
  105420. 0011h determine whether selector is valid
  105421. STACK: WORD possible selector
  105422. Return: AX = selector or 0000h if invalid
  105423. STACK unchanged
  105424. 0012h get physical address
  105425. STACK: WORD selector for desired segment
  105426. WORD segment number if in real mode
  105427. DWORD offset within segment
  105428. Return: DX:AX = 32-bit physical address or 00000000h on error
  105429. BX destroyed
  105430. STACK unchanged
  105431. 0013h ???
  105432. Note: normally jumps to code for function 0012h
  105433. 0014h copy protected-mode memory to conventional memory, with ???
  105434. STACK: WORD selector for source segment
  105435. WORD segment of source if in real mode???
  105436. DWORD offset of source
  105437. WORD number of bytes to copy
  105438. DWORD -> low-memory destination
  105439. Return: AX = status???
  105440. STACK unchanged
  105441. 0015h copy conventional memory to protected-mode memory, with ???
  105442. STACK: WORD selector for destination segment
  105443. WORD segment of destination if in real mode???
  105444. DWORD offset of destination
  105445. WORD number of bytes to copy
  105446. DWORD -> low-memory source
  105447. Return: AX = status???
  105448. STACK unchanged
  105449. 0016h set ??? pointer
  105450. STACK: WORD unused
  105451. DWORD -> ??? or 0000h:0000h
  105452. Return: AX = 0000h
  105453. STACK unchanged
  105454. 0017h allocate real-mode procedure???
  105455. STACK: DWORD ASCIZ name of procedure
  105456. DWORD ???
  105457. DWORD address of subroutine to invoke
  105458. Return: AX = status
  105459. 0032h procedure by that name exists
  105460. 0033h no more real-mode procedures available
  105461. DX destroyed
  105462. STACK unchanged
  105463. 0018h unused
  105464. Return: AX = 0001h
  105465. 0019h get parameter block
  105466. Return: DX:AX -> parameter block (format unknown at this time,
  105467. but 92h bytes)
  105468. (preceded by signature "!!PARAM-BLOCK!!")
  105469. 001Ah get ???
  105470. Return: AX = ??? (0148h seen)
  105471. 001Bh free real-mode procedure???
  105472. STACK: DWORD -> ASCIZ name of procedure
  105473. Return: ???
  105474. STACK unchanged
  105475. 001Ch check whether packets from protected mode task pending
  105476. Return: AX = 0001h if packets pending, 0000h if not
  105477. 001Dh set ???
  105478. STACK: DWORD ??? or 0000h:0000h
  105479. Return: AX,BX destroyed
  105480. STACK unchanged
  105481. 001Eh ???
  105482. STACK: WORD ??? (high byte ignored)
  105483. DWORD -> data structure (below)
  105484. Return: AX,BX,CX,DX destroyed
  105485. data structure updated
  105486. STACK unchanged
  105487. Format of data structure:
  105488. Offset Size Description
  105489. 00h 2 BYTEs unused
  105490. 02h WORD ???
  105491. 04h WORD ???
  105492. 06h WORD ???
  105493. 08h 2 BYTEs unused
  105494. 0Ah WORD ???
  105495. 0Ch WORD (call) ???
  105496. (ret) offset of this data structure (BUG?)
  105497. 001Fh set ???
  105498. STACK: WORD ??? (set to 0001h if zero)
  105499. Return: AX destroyed
  105500. STACK unchanged
  105501. 0020h ???
  105502. STACK: DWORD -> ??? (8 bytes of data)
  105503. Return: AX = ???
  105504. STACK unchanged
  105505. 0021h ???
  105506. STACK: DWORD -> ??? (8 bytes of data)
  105507. WORD ???
  105508. WORD ???
  105509. Return: AX = ???
  105510. STACK unchanged
  105511. 0022h ???
  105512. STACK: DWORD -> ??? (8 bytes of data)
  105513. DWORD -> 4-byte buffer for results
  105514. Return: AX = ???
  105515. STACK unchanged
  105516. 0023h ???
  105517. STACK: DWORD -> ??? (8 bytes of data)
  105518. Return: AX = ???
  105519. STACK unchanged
  105520. 0024h set ???
  105521. STACK: WORD ???
  105522. Return: AX destroyed
  105523. STACK unchanged
  105524. 0025h get ???
  105525. Return: AX = ??? (value set with func 0024h)
  105526. 0026h BUG: jumps to hyperspace due to fencepost error
  105527. FFFFh set DOS memory management functions
  105528. BX:SI -> FAR routine for allocating DOS memory
  105529. (called with AH=48h,BX=number of paragraphs to alloc;
  105530. returns CF clear, AX=segment of allocated memory, or
  105531. CF set on error)
  105532. CX:DI -> FAR routine for freeing DOS memory
  105533. (called with AH=49h,ES=segment of block to free;
  105534. returns CF set on error, AX=error code)
  105535. Note: each of these pointers normally points at INT 21/RETF
  105536. other Return: AX = 0001h
  105537. Note: BX may be destroyed by any of the API calls
  105538. --------E-2FFBA1BX0084-----------------------
  105539. INT 2F U - TKERNEL (Borland DOS extender) - UNINSTALL
  105540. AX = FBA1h
  105541. BX = 0084h
  105542. ES:DI -> response buffer (see #03137)
  105543. Return: ES:DI buffer filled
  105544. SeeAlso: AX=FBA1h/BX=0081h,AX=FBA1h/BX=0084h
  105545. Format of TKERNEL response buffer:
  105546. Offset Size Description (Table 03137)
  105547. 00h 4 BYTEs signature "IABH"
  105548. 04h WORD success indicator
  105549. 0001h failed (INT 2F hooked by another program)
  105550. unchanged if successful
  105551. 06h WORD segment of ???
  105552. 08h WORD segment of ??? memory block to free if nonzero
  105553. 0Ah WORD segment of ??? memory block to free if nonzero
  105554. --------s-2FFBFBES0000-----------------------
  105555. INT 2F U - SoundBlaster speech driver - INSTALLATION CHECK
  105556. AX = FBFBh
  105557. ES = 0000h
  105558. Return: ES nonzero if installed
  105559. ES:BX -> entry point data structure (see #03138)
  105560. SeeAlso: INT 80/BX=0000h,INT F3"SoundBlaster"
  105561. Format of SoundBlaster entry point data structure:
  105562. Offset Size Description (Table 03138)
  105563. 00h 3 BYTEs signature "FB "
  105564. 03h BYTE driver major version number???
  105565. 04h DWORD speech driver entry point (see #03139)
  105566. 08h 24 BYTEs ???
  105567. 20h ? BYTEs data buffer for calling speech driver
  105568. (can be 117 bytes or more)
  105569. (Table 03139)
  105570. Call SoundBlaster speech driver entry point with:
  105571. AL = function
  105572. 07h speak a string
  105573. data buffer (see #03138) contains:
  105574. BYTE length of string
  105575. N BYTEs string to speak
  105576. --------K-2FFD12-----------------------------
  105577. INT 2F - KS/KEYSTKCT.EXE - INSTALLATION CHECK
  105578. AX = FD12h
  105579. Return: AX = 0093h if installed
  105580. ES = resident code segment
  105581. ES:CX -> internal "putbuf" routine
  105582. Program: KS/KEYSTKCT.EXE is a key stacking utility (4DOS KEYSTACK.SYS
  105583. look-alike) by Martin Gerdes, published in c't 11/1991, which can be
  105584. loaded as a device driver or as a TSR. It does not emulate 4DOS
  105585. KSTACK API
  105586. Note: the default buffer size is 128 keys
  105587. --------N-2FFE00BX4454-----------------------
  105588. INT 2F - PC-NFS ??? - INSTALLATION CHECK
  105589. AX = FE00h
  105590. BX = 4454h ("DT")
  105591. CX = 4B52h ("KR")
  105592. DX = 4E4Dh ("NM")
  105593. Return: AL = FFh if installed
  105594. BX = 524Eh ("RM")
  105595. CX = 4D44h ("MD")
  105596. DX = 544Bh ("TK")
  105597. Note: DV/X 1.10 DVPCNFS.DVR searches AH=FEh,FFh,C0h-FDh for a valid response
  105598. SeeAlso: AX=FE08h
  105599. --------N-2FFE00BX4454-----------------------
  105600. INT 2F - PC-NFS ??? - INSTALLATION CHECK
  105601. AX = FE00h
  105602. BX = 4454h ("DT")
  105603. CX = 4B52h ("KR")
  105604. DX = 544Dh ("TM")
  105605. Return: AL = FFh if installed
  105606. BX = 5254h ("RT")
  105607. CX = 4D44h ("MD")
  105608. DX = 544Bh ("TK")
  105609. Note: DV/X 1.10 DVPCNFS.DVR searches AH=FEh,FFh,C0h-FDh for a valid response
  105610. SeeAlso: AX=FE08h
  105611. --------U-2FFE00DI4E55-----------------------
  105612. INT 2F U - NORTON UTILITIES 5.0+ TSRs - INSTALLATION CHECK/STATUS REPORT
  105613. AX = FE00h
  105614. DI = 4E55h ("NU")
  105615. SI = TSR identifier (see #03140)
  105616. Return: SI = TSR reply
  105617. lowercase version of SI on entry (i.e. SI ORed with 2020h)
  105618. execpt SMARTCAN v8.0, which returns SI=6673h ('fs')
  105619. AH = status
  105620. 00h installed but disabled internally
  105621. 01h installed and enabled
  105622. AL = installed product
  105623. 00h NCACHE-x or DISKREET
  105624. 01h SPEEDRV / FILESAVE / EP / DISKMON v6+ installed
  105625. 02h NCACHE2 / SMARTCAN
  105626. 45h DISKMON v5 installed
  105627. BX = length of *.INI file (DISKMON and FILESAVE/EP/SMARTCAN only)
  105628. (see #03141,#03142)
  105629. CX = segment of resident portion
  105630. FFFFh if completely loaded high (NCACHE)
  105631. DI may be destroyed
  105632. ---FILESAVE/EP---
  105633. DL = ??? (apparently always 00h)
  105634. ---DISKMON---
  105635. DX = ??? (apparently always 1AE6h [v5] / 1B86h [v6] / 1C26h [v7])
  105636. Notes: the value returned in CX is incorrect for NCACHE 6.00
  105637. all Norton Caches install as SMARTAAR drivers like SMARTDRV v3
  105638. NCACHE2 and SPEEDRV both support the SMARTDRV v4+ installation check
  105639. to detect Diskreet NDisk drives use CDS/DPB (see INT 21/AH=52h)
  105640. SeeAlso: AX=4A10h/BX=0000h,AX=FE01h,AX=FE02h,AX=FE03h,AX=FE04h,AX=FE05h
  105641. SeeAlso: INT 21/AX=4402h"SMARTDRV"
  105642. (Table 03140)
  105643. Values for Norton Utilities TSR identifier:
  105644. 4346h ("CF") NCACHE-F (v5) / NCACHE (v6) / NCACHE2 (v7+) / SPEEDRV
  105645. 4353h ("CS") NCACHE-S (v5 only)
  105646. 4443h ("DC") DISKREET
  105647. 444Dh ("DM") DISKMON
  105648. 4653h ("FS") FILESAVE (v5) / EP (v6) / SMARTCAN (v7+)
  105649. Format of DISKMON.INI file:
  105650. Offset Size Description (Table 03141)
  105651. -6Ch 108 BYTEs (in memory copy only)
  105652. list of filenames which are always protected:
  105653. IBMBIO.COM/IBMDOS.COM, IO.SYS/MSDOS.SYS, TBIOS.SYS/TDOS.SYS,
  105654. MIO.SYS/IO.BIN, COMMAND.COM
  105655. 00h BYTE ??? always 01h
  105656. 01h BYTE disk light (00h off, 01h on)
  105657. 02h BYTE disk protection (00h off, 01h on)
  105658. 03h BYTE protected areas
  105659. 01h system area
  105660. 02h files
  105661. 03h system area and files
  105662. 04h entire disk
  105663. 04h BYTE floppy access (00h not allowed, 01h allowed)
  105664. 05h 27 BYTEs filename extension list (9 entries)
  105665. (lowercase, blank padded or = 000000h)
  105666. 20h 240 BYTEs filename list (20 entries)
  105667. (lowercase, name and extension blank padded, with '.')
  105668. Note: CX:0508h -> copy in installed TSR (v5)
  105669. CX:052Fh -> copy in installed TSR (v6)
  105670. CX:04E0h -> copy in installed TSR (v7-v8)
  105671. Format of FILESAVE.INI / EP.INI / SMARTCAN.INI file:
  105672. Offset Size Description (Table 03142)
  105673. 00h 26 BITs drive list (bit set: file protection on, cleared: off):
  105674. 00h BYTE drives A: - H:
  105675. 01h BYTE drives I: - P:
  105676. 02h BYTE drives Q: - X:
  105677. 03h BYTE drives Y: - Z:
  105678. 04h BYTE which files to protect
  105679. 00h all files
  105680. 01h all files with extension in list
  105681. 02h all files except those with extension in list
  105682. 05h 27 BYTEs filename extension list (9 entries, uppercase, ASCIZ)
  105683. 20h BYTE include files with archive bit clear (00h no, 01h yes)
  105684. 21h WORD number of days after which files are purged (0 = never)
  105685. 23h WORD max kilobytes of erased file space to hold (0 = all)
  105686. Note: CX:03D2h -> copy in installed TSR (v5)
  105687. CX:03F5h -> copy in installed TSR (v6)
  105688. CX:0434h -> copy in installed TSR (v7-v8)
  105689. --------U-2FFE00DX474F-----------------------
  105690. INT 2F - GO! v3.22+ - API
  105691. AX = FE00h
  105692. DX = 474Fh ('GO')
  105693. SI = function number
  105694. 0063h (BCD for '?') installation check
  105695. 0078h (BCD for 'N') non-registered search (two levels only)
  105696. 0082h (BCD for 'R') reserved for registered version
  105697. 0083h (BCD for 'S') reserved for registered version
  105698. 0085h (BCD for 'U') uninstall
  105699. BX:CX -> buffer (for search functions)
  105700. buffer filled with search spec, i.e. "APL" to get first
  105701. directory containing the substring APL, ":\APL" to find
  105702. the first top-level directory beginning with the letters
  105703. APL
  105704. Return: BX:CX buffer filled with result (search functions only)
  105705. result is counted ASCIZ directory name, empty string if
  105706. no matches (i.e. first byte is length of name, followed by
  105707. name)
  105708. Program: GO! is a shareware directory locator TSR by Steve Ryckman
  105709. Note: the application-supplied buffer for the requests and results which
  105710. BX:CX points at must lie outside the conventional (low-640K)
  105711. memory, since the TSR swaps memory on pop-up; a common location is
  105712. the last 96 bytes of the video memory or a UMB
  105713. --------U-2FFE01DI4E55-----------------------
  105714. INT 2F U - NORTON UTILITIES 5.0+ TSRs - ENABLE
  105715. AX = FE01h
  105716. DI = 4E55h ("NU")
  105717. SI = TSR identifier (see #03140)
  105718. Return: SI = TSR reply (lowercase version of entry SI, i.e. SI OR 2020h)
  105719. AX = status
  105720. 0002h successful (DISKMON, FILESAVE, EP)
  105721. FE00h successful (NCACHE-x, DISKREET)
  105722. Notes: if the enable/disable calls are used on DISKMON or NCACHE-x, the status
  105723. report generated by the programs still indicates the previous state,
  105724. and DISKMON.INI is not updated
  105725. apparently has no effect on DISKREET
  105726. SeeAlso: AX=FE00h,AX=FE02h
  105727. --------U-2FFE02DI4E55-----------------------
  105728. INT 2F U - NORTON UTILITIES 5.0+ TSRs - DISABLE
  105729. AX = FE02h
  105730. DI = 4E55h ("NU")
  105731. SI = TSR identifier (see #03140)
  105732. Return: SI = TSR reply (lowercase version of entry SI, i.e. SI OR 2020h)
  105733. AX = status
  105734. 0004h successful (DISKMON, FILESAVE)
  105735. FE00h successful (NCACHE-x, DISKREET)
  105736. Notes: (see also AX=FE01h)
  105737. this function appears to be unsafe, as the cache buffers are not
  105738. flushed
  105739. SeeAlso: AX=FE00h,AX=FE01h
  105740. --------U-2FFE03DI4E55-----------------------
  105741. INT 2F U - NORTON UTILITIES 5.0+ TSRs - FLUSH BUFFERS
  105742. AX = FE03h
  105743. DI = 4E55h ("NU")
  105744. SI = TSR identifier (see #03140)
  105745. Return: SI = TSR reply (lowercase version of entry SI, i.e. SI OR 2020h)
  105746. AX = status
  105747. 0006h successful???
  105748. Notes: only supported by DISKMON, FILESAVE, and NCACHE-x
  105749. useful for flushing NCACHE before rebooting
  105750. SeeAlso: AX=FE00h,AX=FE10h
  105751. --------U-2FFE04DI4E55-----------------------
  105752. INT 2F U - NORTON UTILITIES 5.0+ DISKMON, FILESAVE / EP - internal - ???
  105753. AX = FE04h
  105754. DI = 4E55h ("NU")
  105755. SI = TSR identifier (see #03140)
  105756. Return: SI = TSR reply (lowercase version of entry SI, i.e. SI or 2020h)
  105757. AX = status
  105758. 0008h successful???
  105759. SeeAlso: AX=FE00h
  105760. --------U-2FFE05DI4E55-----------------------
  105761. INT 2F U - NORTON UTILITIES 5.0+ DISKMON, FILESAVE / EP - internal - ???
  105762. AX = FE05h
  105763. DI = 4E55h ("NU")
  105764. SI = TSR identifier (see #03140)
  105765. Return: SI = TSR reply (lowercase version of entry SI, i.e. SI or 2020h)
  105766. AX = status
  105767. 000Ah successful???
  105768. Note: reportedly dangerous
  105769. SeeAlso: AX=FE00h
  105770. --------N-2FFE08-----------------------------
  105771. INT 2F - PC-NFS ??? - GET ???
  105772. AX = FE08h
  105773. Return: ES:BX -> ???
  105774. Notes: DV/X 1.10 DVPCNFS.DVR searches AH=FEh,FFh,C0h-FDh for a valid response
  105775. both the driver responding to AX=FE00h/DX=4E4Dh and the one responding
  105776. to AX=FE00h/DX=544Dh support this function
  105777. SeeAlso: AX=FE00h/BX=4454h
  105778. --------U-2FFE10DI4E55-----------------------
  105779. INT 2F U - NORTON UTILITIES 6.0 NCACHE - REBOOT
  105780. AX = FE10h
  105781. DI = 4E55h ("NU")
  105782. SI = TSR identifier (see #03140)
  105783. Return: SI = TSR reply (lowercase version of entry SI, i.e. SI or 2020h)
  105784. AX = status
  105785. Note: probably used to flush NCACHE buffers and reboot when Ctrl-Alt-Del is
  105786. detected
  105787. SeeAlso: AX=FE03h
  105788. --------S-2FFEEF-----------------------------
  105789. INT 2F - RTS Control TSR - INSTALLATION CHECK
  105790. AX = FEEFh
  105791. Return: AX = EFFEh if installed
  105792. BX = port address
  105793. Program: RTS Control TSR is a utility by Michal Szokolo to lower the RTS
  105794. signal on a COM port during disk accesses to avoid losing incoming
  105795. data
  105796. --------N-2FFF00-----------------------------
  105797. INT 2F - Topware Network Operating System - INSTALLATION CHECK
  105798. AX = FF00h
  105799. Return: AL = status
  105800. 00h not installed, OK to install
  105801. 01h not installed, not OK to install
  105802. FFh installed
  105803. SeeAlso: AX=FF01h,AX=FF02h,AX=FF10h,INT 21/AX=FF00h"Topware",INT 7A"Topware"
  105804. --------N-2FFF01-----------------------------
  105805. INT 2F - Topware Network Operating System - GET VERSION
  105806. AX = FF01h
  105807. Return: AX = version
  105808. SeeAlso: AX=FF00h,AX=FF02h
  105809. --------N-2FFF02-----------------------------
  105810. INT 2F - TopWare Network OS v5.10+ - GET TopNet VERSION STRING
  105811. AX = FF02h
  105812. Return: ES:BX -> version string
  105813. SeeAlso: AX=FF00h,AX=FF01h
  105814. --------N-2FFF10-----------------------------
  105815. INT 2F - TopWare Network OS v5.10+ - TopTerm - INSTALLATION CHECK
  105816. AX = FF10h
  105817. Return: AL = status (00h not installed, 01h installed)
  105818. SeeAlso: AX=FF00h,AX=FF11h,AX=FF12h,AX=FF13h
  105819. --------N-2FFF11-----------------------------
  105820. INT 2F - TopWare Network OS v5.10+ - TopTerm - ENABLE KEYBOARD SERVICE
  105821. AX = FF11h
  105822. Note: this function is only available on workstations, not on the server
  105823. SeeAlso: AX=FF10h,AX=FF12h
  105824. --------N-2FFF12-----------------------------
  105825. INT 2F - TopWare Network OS v5.10+ - TopTerm - DISABLE KEYBOARD SERVICE
  105826. AX = FF12h
  105827. Note: this function is only available on workstations, not on the server
  105828. SeeAlso: AX=FF10h,AX=FF11h
  105829. --------N-2FFF13-----------------------------
  105830. INT 2F - TopWare Network OS v5.10+ - TopTerm - SET INSTALLATION FLAG
  105831. AX = FF13h
  105832. CL = new state (00h off, 01h on)
  105833. SeeAlso: AX=FF10h
  105834. --------N-2FFF14-----------------------------
  105835. INT 2F - TopWare Network OS v5.10+ - START BACKGROUND RECEIVE VIDEO DATA
  105836. AX = FF14h
  105837. Note: this function is only available on workstations, not on the server
  105838. SeeAlso: AX=FF10h,AX=FF15h
  105839. --------N-2FFF15-----------------------------
  105840. INT 2F - TopWare Network OS v5.10+ - END BACKGROUND RECEIVE VIDEO DATA
  105841. AX = FF15h
  105842. Note: this function is only available on workstations, not on the server
  105843. SeeAlso: AX=FF10h,AX=FF14h
  105844. --------N-2FFF16-----------------------------
  105845. INT 2F - TopWare Network OS v5.10+ - SET CONTROL NUMBER OF "SHOW" SCREEN
  105846. AX = FF16h
  105847. BL = which to set (00h TopShow, FFh TopTerm)
  105848. CX = destination screen
  105849. 0000h all stations
  105850. 0000h-00FFh (TopTerm only) send to group CL
  105851. 8001h-80FEh send to station CL
  105852. SeeAlso: AX=FF18h
  105853. --------N-2FFF18-----------------------------
  105854. INT 2F - TopWare Network OS v5.10+ - SEND FULL SCREEN OF DATA FOR TopShow
  105855. AX = FF18h
  105856. SeeAlso: AX=FF00h,AX=FF16h,AX=FF27h
  105857. --------N-2FFF23-----------------------------
  105858. INT 2F - TopWare Network OS v5.10+ - CLOSE SPOOL FILES AND START PRINTING
  105859. AX = FF23h
  105860. SeeAlso: AX=FF00h
  105861. --------N-2FFF27-----------------------------
  105862. INT 2F - TopWare Network OS v5.10+ - GET "SHOW" TYPE
  105863. AX = FF27h
  105864. Return: AL = type (00h complete version, 01h simple version)
  105865. BL = "show" functions flag (00h disabled, 01h enabled)
  105866. SeeAlso: AX=FF16h,AX=FF18h
  105867. --------D-30---------------------------------
  105868. INT 30 - (NOT A VECTOR!) - DOS 1+ - FAR JMP instruction for CP/M-style calls
  105869. the CALL 5 entry point does a FAR jump to here
  105870. Note: under DOS 2+, the instruction at PSP:0005 points two bytes too low in
  105871. memory
  105872. SeeAlso: INT 21/AH=26h
  105873. --------V-30---------------------------------
  105874. INT 30 - QRIP/TSR - USED BY GRAPHICS LIBRARY
  105875. Program: QRIP/TSR is a shareware TSR by Shane Hathaway implementing the Remote
  105876. Imaging Protocol (RIP, RIPscrip) used by several BBS systems to
  105877. provide a graphical user interface
  105878. SeeAlso: INT 2F/AX=ACF0h
  105879. --------W-30---------------------------------
  105880. INT 30 P - MS Windows 3.1+ - PROTECTED-MODE CALLBACK
  105881. SeeAlso: INT 20"Windows"
  105882. --------!---Section--------------------------
  105883. Interrupt List, part 14 of 18
  105884. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  105885. --------D-31---------------------------------
  105886. INT 31 - overwritten by CP/M jump instruction in INT 30
  105887. --------v-31---------------------------------
  105888. INT 31 - VIRUS - "Vacsina" series - INSTALLATION CHECK (NOT A VECTOR!)
  105889. Note: if one of the Vacsina viruses is resident, the low byte of this
  105890. interrupt still contains the last byte of the INT 30 CP/M JMP
  105891. instruction, but the remaining three bytes are 7Fh 39h followed
  105892. by the Vacsina version number
  105893. SeeAlso: INT 21/AX=FFFFh"VIRUS",INT 32"VIRUS"
  105894. --------E-310000-----------------------------
  105895. INT 31 P - DPMI 0.9+ - ALLOCATE LDT DESCRIPTORS
  105896. AX = 0000h
  105897. CX = number of descriptors to allocate
  105898. Return: CF clear if successful
  105899. AX = base selector
  105900. CF set on error
  105901. AX = error code (DPMI 1.0+) (see #03143)
  105902. Notes: DPMI is the DOS Protected-Mode Interface
  105903. the base and limit of the returned descriptors will be 0, and the type
  105904. will be "data"
  105905. add the value returned by INT 31/AX=0003h to move to subsequent
  105906. descriptors if multiple descriptors were allocated
  105907. not supported by MS Windows 3.0 in Standard mode
  105908. SeeAlso: AX=0001h,AX=000Dh,INT 21/AX=3501h
  105909. (Table 03143)
  105910. Values for DPMI 1.0 error code:
  105911. 0000h-7FFFh DOS error passed through by DPMI
  105912. 8001h unsupported function
  105913. 8002h object in wrong state for function
  105914. 8003h system integrity would be endangered
  105915. 8004h deadlock detected
  105916. 8005h pending serialization request cancelled
  105917. 8010h out of DPMI internal resources
  105918. 8011h descriptor unavailable
  105919. 8012h linear memory unavailable
  105920. 8013h physical memory unavailable
  105921. 8014h backing store unavailable
  105922. 8015h callback unavailable
  105923. 8016h handle unavailable
  105924. 8017h maximum lock count exceeded
  105925. 8018h shared memory already serialized exclusively by another
  105926. 8019h shared memory already serialized shared by another client
  105927. 8021h invalid value for numeric or flag parameter
  105928. 8022h invalid segment selector
  105929. 8023h invalid handle
  105930. 8024h invalid callback
  105931. 8025h invalid linear address
  105932. 8026h request not supported by hardware
  105933. --------E-310001-----------------------------
  105934. INT 31 P - DPMI 0.9+ - FREE LDT DESCRIPTOR
  105935. AX = 0001h
  105936. BX = selector to free
  105937. Return: CF clear if successful
  105938. CF set on error
  105939. AX = error code (DPMI 1.0+) (8022h) (see #03143)
  105940. Notes: only one descriptor is freed per call
  105941. the program's initial CS, DS, and SS descriptors may be freed
  105942. (DPMI 1.0+) any segment registers containing the freed selector are
  105943. set to 0000h
  105944. not supported by MS Windows 3.0 in Standard mode
  105945. SeeAlso: AX=0000h,AX=000Ah,AX=000Dh,INT 21/AX=3502h
  105946. --------E-310002-----------------------------
  105947. INT 31 P - DPMI 0.9+ - SEGMENT TO DESCRIPTOR
  105948. AX = 0002h
  105949. BX = real mode segment
  105950. Return: CF clear if successful
  105951. AX = selector corresponding to real mode segment (64K limit)
  105952. CF set on error
  105953. AX = error code (DPMI 1.0+) (8011h) (see #03143)
  105954. Notes: multiple calls for the same real mode segment return the same selector
  105955. the returned descriptor can never be modified or freed
  105956. not supported by MS Windows 3.0 in Standard mode
  105957. --------E-310003-----------------------------
  105958. INT 31 P - DPMI 0.9+ - GET NEXT SELECTOR INCREMENT VALUE
  105959. AX = 0003h
  105960. Return: CF clear
  105961. AX = value to add to get next sequential selector
  105962. Notes: the increment will be a power of two
  105963. not supported by MS Windows 3.0 in Standard mode
  105964. SeeAlso: AX=0000h
  105965. --------E-310004-----------------------------
  105966. INT 31 P - DPMI 0.9+ - LOCK SELECTOR
  105967. AX = 0004h
  105968. BX = selector to lock (prevent paging)
  105969. Return: ???
  105970. Note: although marked as reserved in versions 0.9 and 1.0 of the DPMI
  105971. specification, this function is called by MS Windows TASKMAN,
  105972. PROGMAN, and KERNEL
  105973. SeeAlso: AX=0005h,AX=0600h
  105974. --------E-310005-----------------------------
  105975. INT 31 P - DPMI 0.9+ - UNLOCK SELECTOR
  105976. AX = 0005h
  105977. BX = selector to unlock (permit paging)
  105978. Return: ???
  105979. Note: although marked as reserved in versions 0.9 and 1.0 of the DPMI
  105980. specification, this function is called by MS Windows TASKMAN,
  105981. PROGMAN, and KERNEL
  105982. SeeAlso: AX=0004h,AX=0601h
  105983. --------E-310006-----------------------------
  105984. INT 31 P - DPMI 0.9+ - GET SEGMENT BASE ADDRESS
  105985. AX = 0006h
  105986. BX = selector
  105987. Return: CF clear if successful
  105988. CX:DX = linear base address of segment
  105989. CF set on error
  105990. AX = error code (DPMI 1.0+) (8022h) (see #03143)
  105991. Note: not supported by MS Windows 3.0 in Standard mode
  105992. SeeAlso: AX=0007h,INT 21/AX=3504h
  105993. --------E-310007-----------------------------
  105994. INT 31 P - DPMI 0.9+ - SET SEGMENT BASE ADDRESS
  105995. AX = 0007h
  105996. BX = selector
  105997. CX:DX = linear base address
  105998. Return: CF clear if successful
  105999. CF set on error
  106000. AX = error code (DPMI 1.0+) (8022h,8025h) (see #03143)
  106001. Notes: only modify descriptors allocated with INT 31/AX=0000h
  106002. only the low 24 bits of the address will be used by 16-bit DPMI
  106003. implementations even on a 386 or higher
  106004. DPMI 1.0+ automatically reloads any segment registers containing the
  106005. selector being modified
  106006. not supported by MS Windows 3.0 in Standard mode
  106007. SeeAlso: AX=0006h,AX=0008h,AX=0009h,AX=000Ch,INT 21/AX=3503h
  106008. SeeAlso: INT 21/AH=E9h"OS/286",INT 2C/AX=0002h
  106009. --------E-310008-----------------------------
  106010. INT 31 P - DPMI 0.9+ - SET SEGMENT LIMIT
  106011. AX = 0008h
  106012. BX = selector
  106013. CX:DX = segment limit
  106014. Return: CF clear if successful
  106015. CF set on error
  106016. AX = error code (DPMI 1.0+) (8021h,8022h,8025h) (see #03143)
  106017. Notes: CX must be zero for 16-bit DPMI implementations
  106018. limits greater than 1MB must be page aligned (low 12 bits set)
  106019. only modify descriptors allocated with INT 31/AX=0000h
  106020. DPMI 1.0+ automatically reloads any segment registers containing the
  106021. selector being modified
  106022. not supported by MS Windows 3.0 in Standard mode
  106023. SeeAlso: AX=0007h,AX=0009h,AX=000Ch,INT 21/AX=3505h,INT 21/AH=E9h"OS/286"
  106024. SeeAlso: INT 2C/AX=0003h,#00501 at INT 15/AH=89h
  106025. --------E-310009-----------------------------
  106026. INT 31 P - DPMI 0.9+ - SET DESCRIPTOR ACCESS RIGHTS
  106027. AX = 0009h
  106028. BX = selector
  106029. CL = access rights/type byte (see #00502 at INT 15/AH=89h)
  106030. CH = 80386 extended rights/type byte (see #00505 at INT 15/AH=89h)
  106031. (32-bit DPMI implementations only)
  106032. Return: CF clear if successful
  106033. CF set on error
  106034. AX = error code (DPMI 1.0+) (8021h,8022h,8025h) (see #03143)
  106035. Notes: if the Present bit is clear, CL bits 0-3 may have any value
  106036. DPMI 1.0+ automatically reloads any segment registers containing the
  106037. selector being modified
  106038. not supported by MS Windows 3.0 in Standard mode
  106039. SeeAlso: AX=0007h,AX=0008h,AX=000Ch,INT 21/AX=2514h,INT 2C/AX=0004h
  106040. SeeAlso: INT 2C/AX=0005h
  106041. --------E-31000A-----------------------------
  106042. INT 31 P - DPMI 0.9+ - CREATE ALIAS DESCRIPTOR
  106043. AX = 000Ah
  106044. BX = selector
  106045. Return: CF clear if successful
  106046. AX = new data selector
  106047. CF set on error
  106048. AX = error code (DPMI 1.0+) (8011h,8022h) (see #03143)
  106049. Notes: fails if selector in BX is not a code segment or is invalid
  106050. use INT 31/AX=0001h to free new selector
  106051. future changes to the original selector will not be reflected in the
  106052. returned alias selector
  106053. not supported by MS Windows 3.0 in Standard mode
  106054. SeeAlso: AX=0001h
  106055. --------E-31000B-----------------------------
  106056. INT 31 P - DPMI 0.9+ - GET DESCRIPTOR
  106057. AX = 000Bh
  106058. BX = LDT selector
  106059. ES:(E)DI -> 8-byte buffer for copy of descriptor
  106060. Return: CF clear if successful
  106061. buffer filled
  106062. CF set on error
  106063. AX = error code (DPMI 1.0+) (8022h) (see #03143)
  106064. Notes: 16-bit programs use ES:DI as pointer, 32-bit must use ES:EDI
  106065. not supported by MS Windows 3.0 in Standard mode
  106066. SeeAlso: AX=000Ch
  106067. --------E-31000C-----------------------------
  106068. INT 31 P - DPMI 0.9+ - SET DESCRIPTOR
  106069. AX = 000Ch
  106070. BX = LDT selector
  106071. ES:(E)DI -> 8-byte buffer containing descriptor
  106072. Return: CF clear if successful
  106073. CF set on error
  106074. AX = error code (DPMI 1.0+) (8021h,8022h,8025h) (see #03143)
  106075. Notes: 16-bit programs use ES:DI as pointer, 32-bit must use ES:EDI
  106076. only modify descriptors allocated with INT 31/AX=0000h
  106077. DPMI 1.0+ automatically reloads any segment registers containing the
  106078. selector being modified
  106079. not supported by MS Windows 3.0 in Standard mode
  106080. SeeAlso: AX=000Bh
  106081. --------E-31000D-----------------------------
  106082. INT 31 P - DPMI 0.9+ - ALLOCATE SPECIFIC LDT DESCRIPTOR
  106083. AX = 000Dh
  106084. BX = LDT selector
  106085. Return: CF clear if successful
  106086. descriptor allocated
  106087. CF set on error
  106088. AX = error code (DPMI 1.0+) (8011h,8022h) (see #03143)
  106089. Notes: free descriptor with INT 31/AX=0001h
  106090. the first 16 descriptors (04h-7Ch) are reserved for this function, but
  106091. some may already be in use by other applications under DPMI 0.9;
  106092. DPMI 1.0 guarantees 16 descriptors per client
  106093. not supported by MS Windows 3.0 in Standard mode
  106094. SeeAlso: AX=0000h,AX=0001h
  106095. --------E-31000E-----------------------------
  106096. INT 31 P - DPMI 1.0+ - GET MULTIPLE DESCRIPTORS
  106097. AX = 000Eh
  106098. CX = number of descriptors to copy
  106099. ES:(E)DI -> descriptor buffer (see #03144)
  106100. Return: CF clear if successful
  106101. descriptors copied
  106102. CF set on error
  106103. AX = error code (8022h) (see #03143)
  106104. CX = number of descriptors successfully copied
  106105. Notes: 16-bit programs use ES:DI as pointer, 32-bit must use ES:EDI
  106106. if the function fails, the first CX descriptors are valid; the
  106107. remainder are not modified
  106108. SeeAlso: AX=000Bh,AX=000Fh
  106109. Format of DPMI descriptor buffer entry (one per descriptor to get):
  106110. Offset Size Description (Table 03144)
  106111. 00h WORD selector (set by client)
  106112. 02h QWORD descriptor (set by host)
  106113. --------E-31000F-----------------------------
  106114. INT 31 P - DPMI 1.0+ - SET MULTIPLE DESCRIPTORS
  106115. AX = 000Fh
  106116. CX = number of descriptors to copy
  106117. ES:(E)DI -> descriptor buffer (see #03145)
  106118. Return: CF clear if successful
  106119. descriptors copied
  106120. CF set on error
  106121. AX = error code (8021h,8022h,8025h) (see #03143)
  106122. CX = number of descriptors successfully copied
  106123. Notes: 16-bit programs use ES:DI as pointer, 32-bit must use ES:EDI
  106124. if the function fails, the first CX descriptors are valid; the
  106125. remainder are not modified
  106126. DPMI 1.0+ automatically reloads any segment registers containing a
  106127. selector being modified
  106128. SeeAlso: AX=000Ch,AX=000Eh
  106129. Format of DPMI descriptor buffer entry (one per descriptor to set):
  106130. Offset Size Description (Table 03145)
  106131. 00h WORD selector
  106132. 02h QWORD descriptor
  106133. --------E-310100-----------------------------
  106134. INT 31 P - DPMI 0.9+ - ALLOCATE DOS MEMORY BLOCK
  106135. AX = 0100h
  106136. BX = number of paragraphs to allocate
  106137. Return: CF clear if successful
  106138. AX = real mode segment of allocated block
  106139. DX = first selector for allocated block
  106140. CF set on error
  106141. AX = DOS error code (07h,08h) (see #01680 at INT 21/AH=59h/BX=0000h)
  106142. (DPMI 1.0+) DPMI error code (8011h) (see #03143)
  106143. BX = size (in paragraphs) of largest available block
  106144. Notes: multiple contiguous selectors are allocated for blocks of more than 64K
  106145. if the caller is a 16-bit program
  106146. never modify or deallocate returned descriptors
  106147. not supported by MS Windows 3.0 in Standard mode
  106148. SeeAlso: AX=0101h,AX=0501h
  106149. --------E-310101-----------------------------
  106150. INT 31 P - DPMI 0.9+ - FREE DOS MEMORY BLOCK
  106151. AX = 0101h
  106152. DX = selector of block
  106153. Return: CF set if successful
  106154. CF set on error
  106155. AX = DOS error code (07h,09h) (see #01680 at INT 21/AH=59h/BX=0000h)
  106156. Notes: all descriptors allocated for the block are automatically freed
  106157. DPMI 1.0+ automatically zeros any segment registers containing a
  106158. selector freed by this function
  106159. not supported by MS Windows 3.0 in Standard mode
  106160. SeeAlso: AX=0100h,AX=0102h,AX=0502h
  106161. --------E-310102-----------------------------
  106162. INT 31 P - DPMI 0.9+ - RESIZE DOS MEMORY BLOCK
  106163. AX = 0102h
  106164. BX = new block size in paragraphs
  106165. DX = selector of block
  106166. Return: CF clear if successful
  106167. CF set on error
  106168. AX = DOS error code (07h,08h,09h)
  106169. (see #01680 at INT 21/AH=59h/BX=0000h)
  106170. (DPMI 1.0+) DPMI error code (8011h,8022h) (see #03143)
  106171. BX = maximum block size (in paragraphs) possible
  106172. Notes: increasing the size of a block past a 64K boundary will fail if the
  106173. next descriptor in the LDT is already in use
  106174. shrinking a block past a 64K boundary will cause some selectors to be
  106175. freed; DPMI 1.0+ automatically zeros any segment registers containing
  106176. a selector freed by this function
  106177. not supported by MS Windows 3.0 in Standard mode
  106178. SeeAlso: AX=0100h
  106179. --------E-310200-----------------------------
  106180. INT 31 P - DPMI 0.9+ - GET REAL MODE INTERRUPT VECTOR
  106181. AX = 0200h
  106182. BL = interrupt number
  106183. Return: CF clear
  106184. CX:DX = segment:offset of real mode interrupt handler
  106185. Note: the DPMI implementation is required to support all 256 vectors
  106186. SeeAlso: AX=0201h,AX=0204h,INT 21/AX=2503h
  106187. --------E-310201-----------------------------
  106188. INT 31 P - DPMI 0.9+ - SET REAL MODE INTERRUPT VECTOR
  106189. AX = 0201h
  106190. BL = interrupt number
  106191. CX:DX = segment:offset of real mode handler
  106192. Return: CF clear
  106193. Note: all memory that may be touched by a hardware interrupt handler must be
  106194. locked down with INT 31/AX=0600h
  106195. SeeAlso: AX=0200h,AX=0205h,AX=0600h,INT 21/AX=2505h
  106196. --------E-310202-----------------------------
  106197. INT 31 P - DPMI 0.9+ - GET PROCESSOR EXCEPTION HANDLER VECTOR
  106198. AX = 0202h
  106199. BL = exception number (00h-1Fh)
  106200. Return: CF clear if successful
  106201. CX:(E)DX = selector:offset of handler
  106202. CF set on error
  106203. AX = error code (DPMI 1.0+) (8021h) (see #03143)
  106204. Notes: 16-bit programs receive the pointer in CX:DX, 32-bit programs in CX:EDX
  106205. DPMI 1.0+ supports this function only for backward compatibility; use
  106206. AX=0210h or AX=0211h instead
  106207. not supported by MS Windows 3.0 in Standard mode
  106208. SeeAlso: AX=0203h,AX=0210h,AX=0211h,INT 2F/AX=FB42h/BX=0021h
  106209. --------E-310203-----------------------------
  106210. INT 31 P - DPMI 0.9+ - SET PROCESSOR EXCEPTION HANDLER VECTOR
  106211. AX = 0203h
  106212. BL = exception number (00h-1Fh)
  106213. CX:(E)DX = selector:offset of handler
  106214. Return: CF clear if successful
  106215. CF set on error
  106216. AX = error code (DPMI 1.0+) (8021h,8022h) (see #03143)
  106217. Notes: 32-bit programs must supply an offset in EDX and use a 32-bit interrupt
  106218. stack frame on chaining to the next exception handler
  106219. the handler should return using a FAR return
  106220. all fault stack frames contain an error code, but it is only valid for
  106221. exceptions 08h and 0Ah-0Eh
  106222. handlers will only be called if the exception occurs in protected mode,
  106223. and the DPMI host does not transparently handle the exception
  106224. the handler may change certain values on the stack frame
  106225. (see #03146,#03147)
  106226. DPMI 1.0+ supports this function only for backward compatibility; use
  106227. AX=0212h or AX=0213h instead
  106228. not supported by MS Windows 3.0 in Standard mode
  106229. SeeAlso: AX=0202h,AX=0212h,AX=0213h,INT 2F/AX=FB42h/BX=0022h
  106230. Format of stack frame for 16-bit programs: (offset from SS:SP)
  106231. Offset Size Description (Table 03146)
  106232. 00h DWORD return CS:IP (do not change)
  106233. 04h WORD error code
  106234. 06h DWORD CS:IP of exception
  106235. 0Ah WORD flags
  106236. 0Ch DWORD SS:SP
  106237. Format of stack frame for 32-bit programs: (offset from SS:ESP)
  106238. Offset Size Description (Table 03147)
  106239. 00h DWORD return EIP (do not change)
  106240. 04h WORD return CS selector (do not change)
  106241. 06h WORD reserved (do not change)
  106242. 08h DWORD error code
  106243. 0Ch DWORD EIP of exception
  106244. 10h WORD CS selector of exception
  106245. 12h WORD reserved (do not change)
  106246. 14h DWORD EFLAGS
  106247. 18h DWORD ESP
  106248. 1Ch WORD SS
  106249. 1Eh WORD reserved (do not change)
  106250. --------E-310204-----------------------------
  106251. INT 31 P - DPMI 0.9+ - GET PROTECTED MODE INTERRUPT VECTOR
  106252. AX = 0204h
  106253. BL = interrupt number
  106254. Return: CF clear
  106255. CX:(E)DX = selector:offset of handler
  106256. Notes: 16-bit programs use CX:DX, 32-bit programs use CX:EDX
  106257. DPMI implementations are required to support all 256 vectors
  106258. not supported by MS Windows 3.0 in Standard mode
  106259. SeeAlso: AX=0200h,AX=0205h,INT 21/AX=2502h,INT 2C/AX=0006h
  106260. SeeAlso: INT 2F/AX=FB42h/BX=0024h
  106261. --------E-310205-----------------------------
  106262. INT 31 P - DPMI 0.9+ - SET PROTECTED MODE INTERRUPT VECTOR
  106263. AX = 0205h
  106264. BL = interrupt number
  106265. CX:(E)DX = selector:offset of handler
  106266. Return: CF clear if successful
  106267. CF set on error
  106268. AX = error code (DPMI 1.0+) (8022h) (see #03143)
  106269. Notes: 16-bit programs use CX:DX, 32-bit programs use CX:EDX
  106270. 32-bit programs must use a 32-bit interrupt stack frame when chaining
  106271. to the next handler
  106272. DPMI implementations are required to support all 256 vectors
  106273. hardware interrupts are reflected to the virtual machine's primary
  106274. client, software interrupts to the current client
  106275. not supported by MS Windows 3.0 in Standard mode
  106276. SeeAlso: AX=0201h,AX=0204h,INT 21/AX=2504h,INT 2C/AX=0007h
  106277. SeeAlso: INT 2F/AX=FB42h/BX=0025h
  106278. --------E-310210-----------------------------
  106279. INT 31 P - DPMI 1.0+ - GET PROTECTED MODE EXTENDED PROCESSOR EXCEPTION HANDLER
  106280. AX = 0210h
  106281. BL = exception number (00h-1Fh)
  106282. Return: CF clear if successful
  106283. CX:(E)DX = selector:offset of exception handler
  106284. CF set on error
  106285. AX = error code (8021h) (see #03143)
  106286. Note: DPMI host reflects exception to current client's handler
  106287. SeeAlso: AX=0202h,AX=0211h,AX=0212h
  106288. --------E-310211-----------------------------
  106289. INT 31 P - DPMI 1.0+ - GET REAL MODE EXTENDED PROCESSOR EXCEPTION HANDLER
  106290. AX = 0211h
  106291. BL = exception number (00h-1Fh)
  106292. Return: CF clear if successful
  106293. CX:(E)DX = selector:offset of exception handler
  106294. CF set on error
  106295. AX = error code (8021h) (see #03143)
  106296. Notes: returns address of protected-mode handler for real-mode exception
  106297. DPMI host performs a switch to protected mode, reflects the exception
  106298. to the virtual machine's primary client, and returns to real mode
  106299. on the handler's completion
  106300. SeeAlso: AX=0202h,AX=0210h,AX=0213h
  106301. --------E-310212-----------------------------
  106302. INT 31 P - DPMI 1.0+ - SET PROTECTED MODE EXTENDED PROCESSOR EXCEPTION HANDLER
  106303. AX = 0212h
  106304. BL = exception or fault number (00h-1Fh)
  106305. CX:(E)DX = exception handler selector:offset
  106306. Return: CF clear if successful
  106307. CF set on error
  106308. AX = error code (8021h,8022h) (see #03143)
  106309. Note: DPMI host sends exception to current client's handler
  106310. SeeAlso: AX=0203h,AX=0210h,AX=0213h
  106311. --------E-310213-----------------------------
  106312. INT 31 P - DPMI 1.0+ - SET REAL MODE EXTENDED PROCESSOR EXCEPTION HANDLER
  106313. AX = 0213h
  106314. BL = exception or fault number (00h-1Fh)
  106315. CX:(E)DX = exception handler selector:offset
  106316. Return: CF clear if successful
  106317. CF set on error
  106318. AX = error code (8021h,8022h) (see #03143)
  106319. Notes: specifies address of protected-mode handler for real-mode exception
  106320. DPMI host performs a switch to protected mode, reflects the exception
  106321. to the virtual machine's primary client, and returns to real mode
  106322. on the handler's completion
  106323. SeeAlso: AX=0203h,AX=0211h,AX=0212h
  106324. --------E-310300-----------------------------
  106325. INT 31 P - DPMI 0.9+ - SIMULATE REAL MODE INTERRUPT
  106326. AX = 0300h
  106327. BL = interrupt number
  106328. BH = flags
  106329. bit 0: reset the interrupt controller and A20 line (DPMI 0.9)
  106330. reserved, must be 0 (DPMI 1.0+)
  106331. others: reserved, must be 0
  106332. CX = number of words to copy from protected mode to real mode stack
  106333. ES:(E)DI = selector:offset of real mode call structure (see #03148)
  106334. Return: CF clear if successful
  106335. real mode call structure modified (all fields except SS:SP, CS:IP
  106336. filled with return values from real mode interrupt)
  106337. CF set on error
  106338. AX = error code (DPMI 1.0+) (8012h,8013h,8014h,8021h)(see #03143)
  106339. protected mode stack unchanged
  106340. Notes: 16-bit programs use ES:DI as pointer, 32-bit programs use ES:EDI
  106341. CS:IP in the real mode call structure is ignored for this call,
  106342. instead, the indicated interrupt vector is used for the address
  106343. the flags in the call structure are pushed on the real mode stack to
  106344. form an interrupt stack frame, and the trace and interrupt flags are
  106345. clear on entry to the handler
  106346. DPMI will provide a small (30 words) real mode stack if SS:SP is zero
  106347. the real mode handler must return with the stack in the same state as
  106348. it was on being called
  106349. SeeAlso: AX=0302h,AX=FF01h,INT 21/AX=2511h,INT 21/AH=E3h"OS/286"
  106350. SeeAlso: INT 2C/AX=0026h,INT 2F/AX=FB42h/BX=000Dh
  106351. Format of DPMI real mode call structure:
  106352. Offset Size Description (Table 03148)
  106353. 00h DWORD EDI
  106354. 04h DWORD ESI
  106355. 08h DWORD EBP
  106356. 0Ch DWORD reserved (00h)
  106357. 10h DWORD EBX
  106358. 14h DWORD EDX
  106359. 18h DWORD ECX
  106360. 1Ch DWORD EAX
  106361. 20h WORD flags
  106362. 22h WORD ES
  106363. 24h WORD DS
  106364. 26h WORD FS
  106365. 28h WORD GS
  106366. 2Ah WORD IP
  106367. 2Ch WORD CS
  106368. 2Eh WORD SP
  106369. 30h WORD SS
  106370. --------E-310301-----------------------------
  106371. INT 31 P - DPMI 0.9+ - CALL REAL MODE PROCEDURE WITH FAR RETURN FRAME
  106372. AX = 0301h
  106373. BH = flags
  106374. bit 0: reset the interrupt controller and A20 line (DPMI 0.9)
  106375. reserved, must be 0 (DPMI 1.0+)
  106376. others: reserved must be 0
  106377. CX = number of words to copy from protected mode to real mode stack
  106378. ES:(E)DI = selector:offset of real mode call structure
  106379. (see #03148 at INT 31/AX=0300h)
  106380. Return: CF clear if successful
  106381. real mode call structure modified (all fields except SS:SP, CS:IP
  106382. filled with return values from real mode interrupt)
  106383. CF set on error
  106384. AX = error code (DPMI 1.0+) (8012h,8013h,8014h,8021h)(see #03143)
  106385. protected mode stack unchanged
  106386. Notes: 16-bit programs use ES:DI as pointer, 32-bit programs use ES:EDI
  106387. the real mode procedure must exit with a FAR return
  106388. DPMI will provide a small (30 words) real mode stack if SS:SP is zero
  106389. the real mode handler must return with the stack in the same state as
  106390. it was on being called
  106391. SeeAlso: AX=0300h,AX=0302h,AX=FF02h,INT 21/AX=250Eh,INT 21/AH=E1h"OS/286"
  106392. SeeAlso: INT 2C/AX=0025h
  106393. --------E-310302-----------------------------
  106394. INT 31 P - DPMI 0.9+ - CALL REAL MODE PROCEDURE WITH IRET FRAME
  106395. AX = 0302h
  106396. BH = flags
  106397. bit 0: reset the interrupt controller and A20 line (DPMI 0.9)
  106398. reserved, must be 0 (DPMI 1.0+)
  106399. others: reserved, must be 0
  106400. CX = number of words to copy from protected mode to real mode stack
  106401. ES:(E)DI = selector:offset of real mode call structure
  106402. (see #03148 at INT 31/AX=0300h)
  106403. Return: CF clear if successful
  106404. real mode call structure modified (all fields except SS:SP, CS:IP
  106405. filled with return values from real mode interrupt)
  106406. CF set on error
  106407. AX = error code (DPMI 1.0+) (8012h,8013h,8014h,8021h)(see #03143)
  106408. protected mode stack unchanged
  106409. Notes: 16-bit programs use ES:DI as pointer, 32-bit programs use ES:EDI
  106410. the flags in the call structure are pushed on the real mode stack to
  106411. form an interrupt stack frame, and the trace and interrupt flags are
  106412. clear on entry to the handler
  106413. the real mode procedure must exit with an IRET
  106414. DPMI will provide a small (30 words) real mode stack if SS:SP is zero
  106415. the real mode handler must return with the stack in the same state as
  106416. it was on being called
  106417. SeeAlso: AX=0300h
  106418. --------E-310303-----------------------------
  106419. INT 31 P - DPMI 0.9+ - ALLOCATE REAL MODE CALLBACK ADDRESS
  106420. AX = 0303h
  106421. DS:(E)SI = selector:offset of procedure to call
  106422. ES:(E)DI = selector:offset of real mode call structure (see #03148)
  106423. Return: CF clear if successful
  106424. CX:DX = segment:offset of real mode call address (see #03149)
  106425. CF set on error
  106426. AX = error code (DPMI 1.0+) (8015h) (see #03143)
  106427. Notes: the real mode call structure is static, causing reentrancy problems;
  106428. its contents are only valid at the time of a callback
  106429. the called procedure must modify the real mode CS:IP before returning
  106430. values are returned to real mode by modifying the real mode call struc
  106431. DPMI hosts must provide at least 16 callbacks per client
  106432. the limited DPMI host built into Phar Lap's 286|DOS-Extender v2.5 does
  106433. not support this function
  106434. SeeAlso: AX=0304h,AX=0C00h
  106435. (Table 03149)
  106436. Values DPMI real-mode callback procedure is called with:
  106437. DS:(E)SI = selector:offset of real mode SS:SP
  106438. ES:(E)DI = selector:offset of real mode call structure
  106439. SS:(E)SP = locked protected mode API stack
  106440. interrupts disabled
  106441. Return: (with IRET)
  106442. ES:(E)DI = selector:offset of real mode call structure to restore
  106443. --------E-310304-----------------------------
  106444. INT 31 P - DPMI 0.9+ - FREE REAL MODE CALLBACK ADDRESS
  106445. AX = 0304h
  106446. CX:DX = real mode callback address
  106447. Return: CF clear if successful
  106448. CF set on error
  106449. AX = error code (DPMI 1.0+) (8024h) (see #03143)
  106450. Note: the limited DPMI host built into Phar Lap's 286|DOS-Extender v2.5 does
  106451. not support this function
  106452. SeeAlso: AX=0303h
  106453. --------E-310305-----------------------------
  106454. INT 31 P - DPMI 0.9+ - GET STATE SAVE/RESTORE ADDRESSES
  106455. AX = 0305h
  106456. Return: CF clear
  106457. AX = size in bytes of state buffer
  106458. BX:CX = real mode address of procedure to save/restore state
  106459. SI:(E)DI = protected mode procedure to save/restore state (see #03150)
  106460. Notes: the buffer size will be zero if it is not necessary to preserve state
  106461. 16-bit programs should call SI:DI, 32-bit programs should call SI:EDI
  106462. this function is only needed if using the raw mode switch service
  106463. SeeAlso: AX=0306h
  106464. (Table 03150)
  106465. Call DPMI state-save procedures with:
  106466. AL = direction
  106467. 00h save state
  106468. 01h restore state
  106469. ES:(E)DI -> state buffer
  106470. Return: all registers preserved
  106471. --------E-310306-----------------------------
  106472. INT 31 P - DPMI 0.9+ - GET RAW MODE SWITCH ADDRESSES
  106473. AX = 0306h
  106474. Return: CF clear
  106475. BX:CX -> procedure to switch from real to protected mode (see #03151)
  106476. SI:(E)DI -> procedure to switch from protected to real mode
  106477. Notes: 16-bit programs should jump to SI:DI, 32-bit programs should use SI:EDI
  106478. the caller must save and restore the state of the task with AX=0305h
  106479. not supported by MS Windows 3.0 in Standard mode
  106480. SeeAlso: AX=0305h
  106481. (Table 03151)
  106482. Values to JUMP at mode-switch procedures with:
  106483. AX = new DS
  106484. CX = new ES
  106485. DX = new SS
  106486. (E)BX = new (E)SP
  106487. SI:(E)DI = new CS:(E)IP
  106488. Notes: BP/EBP is preserved across the call, but AX/EAX, BX/EBX, CX/ECX,
  106489. DX/EDX, SI/ESI, and DI/EDI will be undefined; FS and GS will be 0000h
  106490. interrupts will stay disabled during the entire mode switch if they
  106491. are disabled on entry to the mode-switch procedure
  106492. --------E-310400-----------------------------
  106493. INT 31 P - DPMI 0.9+ - GET DPMI VERSION
  106494. AX = 0400h
  106495. Return: CF clear
  106496. AH = major version of DPMI spec supported
  106497. AL = two-digit minor version of DPMI spec supported
  106498. BX = DPMI host flags (see #03152)
  106499. CL = processor type (02h=80286, 03h=80386, 04h=80486)
  106500. DH = curr value of virtual master interrupt controller base interrupt
  106501. DL = curr value of virtual slave interrupt controller base interrupt
  106502. BUG: Windows NT versions from the March 1993 beta to at least the Final
  106503. release with fixes to CSD002 report version 0090h (0.144); this has
  106504. reportedly been corrected in the Windows NT 3.5 beta
  106505. SeeAlso: AX=0401h,INT 21/AX=250Ch,INT 2F/AX=1687h,INT 4B/AX=8102h/DX=0000h
  106506. SeeAlso: INT 67/AX=DE0Ah
  106507. Bitfields for DPMI host flags:
  106508. Bit(s) Description (Table 03152)
  106509. 0 running under an 80386 (32-bit) implementation
  106510. 1 processor returns to real mode for reflected interrupts instead of V86
  106511. mode
  106512. 2 virtual memory supported
  106513. 3 reserved (undefined)
  106514. 4-15 reserved (zero)
  106515. --------E-310401-----------------------------
  106516. INT 31 P - DPMI 1.0+ - GET DPMI CAPABILITIES
  106517. AX = 0401h
  106518. ES:(E)DI -> 128-byte buffer for host description (see #03153)
  106519. Return: CF clear if successful
  106520. AX = capabilities (see #03154)
  106521. CX = reserved (00h)
  106522. DX = reserved (00h)
  106523. buffer filled
  106524. CF set on error (DPMI 0.9 only)
  106525. SeeAlso: AX=0400h
  106526. Format of DPMI host description:
  106527. Offset Size Description (Table 03153)
  106528. 00h BYTE host major version number
  106529. 01h BYTE host minor version number
  106530. 02h 126 BYTEs ASCIZ host vendor name
  106531. Bitfields for DPMI capabilities:
  106532. Bit(s) Description (Table 03154)
  106533. 0 paged accessed/dirty supported (see AX=0506h,AX=0507h)
  106534. 1 exceptions restartability supported
  106535. 2 device mapping supported (see AX=0508h)
  106536. 3 conventional memory mapping supported (see AX=0509h)
  106537. 4 demand zero-fill supported
  106538. 5 write-protect client capability supported
  106539. 6 write-protect host capability supported
  106540. 7-15 reserved
  106541. --------E-310500-----------------------------
  106542. INT 31 P - DPMI 0.9+ - GET FREE MEMORY INFORMATION
  106543. AX = 0500h
  106544. ES:(E)DI -> buffer for memory information (see #03155)
  106545. Return: CF clear
  106546. Notes: 16-bit programs use ES:DI, 32-bit programs use ES:EDI
  106547. this function must be considered advisory because other applications
  106548. may affect the results at any time after the call
  106549. fields not supported by the DPMI implementation are filled with
  106550. FFFFFFFFh
  106551. DPMI 1.0+ supports this function solely for backward compatibility; use
  106552. AX=050Bh instead
  106553. the limited DPMI host built into Phar Lap's 286|DOS-Extender v2.5 only
  106554. returns the first field in the memory information record
  106555. SeeAlso: AX=0501h,AX=050Bh,AX=0604h
  106556. Format of DPMI memory information:
  106557. Offset Size Description (Table 03155)
  106558. 00h DWORD largest available block in bytes
  106559. 04h DWORD maximum unlocked page allocation
  106560. 08h DWORD maximum locked page allocation
  106561. 0Ch DWORD total linear address space in pages
  106562. 10h DWORD total unlocked pages
  106563. 14h DWORD free pages
  106564. 18h DWORD total physical pages
  106565. 1Ch DWORD free linear address space in pages
  106566. 20h DWORD size of paging file/partition in pages
  106567. 24h 12 BYTEs reserved
  106568. --------E-310501-----------------------------
  106569. INT 31 P - DPMI 0.9+ - ALLOCATE MEMORY BLOCK
  106570. AX = 0501h
  106571. BX:CX = size in bytes
  106572. Return: CF clear if successful
  106573. BX:CX = linear address of block
  106574. SI:DI = memory block handle for resizing and freeing block
  106575. CF set on error
  106576. AX = error code (DPMI 1.0+) (8012h-8014h,8016h,8021h)(see #03143)
  106577. Notes: no selectors are allocated
  106578. the memory block is allocated unlocked (can be locked with AX=0600h)
  106579. allocations are often page granular (see AX=0604h)
  106580. under MS Windows 3.10 Enhanced mode with paging enabled, it is possible
  106581. for this function to fail even if AX=0500h indicates that enough
  106582. memory is available
  106583. SeeAlso: AX=0000h,AX=0100h,AX=0500h,AX=0502h,AX=0503h,AX=0504h,AX=0D00h
  106584. SeeAlso: INT 2F/AX=FB42h/BX=0002h
  106585. --------E-310502-----------------------------
  106586. INT 31 P - DPMI 0.9+ - FREE MEMORY BLOCK
  106587. AX = 0502h
  106588. SI:DI = handle of memory block
  106589. Return: CF clear if successful
  106590. CF set on error
  106591. AX = error code (DPMI 1.0+) (8023h) (see #03143)
  106592. Note: any selectors allocated for the memory block must also be freed,
  106593. preferably before freeing the memory block
  106594. SeeAlso: AX=0001h,AX=0101h,AX=0501h,AX=0D01h
  106595. --------E-310503-----------------------------
  106596. INT 31 P - DPMI 0.9+ - RESIZE MEMORY BLOCK
  106597. AX = 0503h
  106598. BX:CX = new size in bytes (nonzero)
  106599. SI:DI = handle of memory block
  106600. Return: CF clear if successful
  106601. BX:CX = new linear address
  106602. SI:DI = new handle of memory block
  106603. CF set on error
  106604. AX = error code (DPMI 1.0+) (8012h-8014h,8016h,8021h,8023h)
  106605. (see #03143)
  106606. Notes: any selectors pointing at the block must be updated
  106607. the previous memory block handle becomes invalid
  106608. an error is returned if the new size is 0
  106609. SeeAlso: AX=0102h,AX=0501h,AX=0505h
  106610. --------E-310504-----------------------------
  106611. INT 31 P - DPMI 1.0+ - ALLOCATE LINEAR MEMORY BLOCK
  106612. AX = 0504h
  106613. EBX = page-aligned linear address of memory block (00000000h if any
  106614. address is acceptable)
  106615. ECX = size in bytes (nonzero)
  106616. EDX = flags
  106617. bit 0: set to create committed pages instead of uncommitted pages
  106618. bits 1-31 reserved (0)
  106619. Return: CF clear if successful
  106620. EBX = linear address of memory block
  106621. ESI = memory block handle
  106622. CF set on error
  106623. AX = error code (8001h,8012h-8014h,8016h,8021h,8025h)(see #03143)
  106624. Note: only supported by 32-bit DPMI hosts, but may be used by 16-bit clients
  106625. SeeAlso: AX=0501h,AX=0505h
  106626. --------E-310505-----------------------------
  106627. INT 31 P - DPMI 1.0+ - RESIZE LINEAR MEMORY BLOCK
  106628. AX = 0505h
  106629. ESI = memory block handle
  106630. ECX = new size in bytes (nonzero)
  106631. EDX = flags
  106632. bit 0: create committed pages rather than uncommitted pages
  106633. bit 1: segment descriptor update required
  106634. ES:EBX -> buffer containing array of WORDs with selectors
  106635. EDI = number of selectors in array
  106636. bits 2-31 reserved (0)
  106637. Return: CF clear if successful
  106638. EBX = new linear base address
  106639. ESI = new memory block handle
  106640. CF set on error
  106641. AX = error code (8001h,8012h-8014h,8016h,8021h,8023h)(see #03143)
  106642. Notes: only supported by 32-bit DPMI hosts, but may be used by 16-bit clients
  106643. the old memory block handle becomes invalid
  106644. if EDX bit 1 set and the block's base address is changed, DPMI updates
  106645. all descriptors for selectors in the update buffer which fall within
  106646. the memory block
  106647. SeeAlso: AX=0503h,AX=0504h
  106648. --------E-310506-----------------------------
  106649. INT 31 P - DPMI 1.0+ - GET PAGE ATTRIBUTES
  106650. AX = 0506h
  106651. ESI = memory block handle
  106652. EBX = offset in memory block of first page
  106653. ECX = number of pages
  106654. ES:EDX -> array of WORDs to hold page attributes (see #03156)
  106655. Return: CF clear if successful
  106656. buffer filled
  106657. CF set on error
  106658. AX = error code (8001h,8023h,8025h) (see #03143)
  106659. Notes: only supported by 32-bit DPMI hosts, but may be used by 16-bit clients
  106660. if EBX is not page-aligned, it will be rounded down
  106661. SeeAlso: AX=0504h,AX=0507h,INT 21/AX=251Dh,INT 21/AX=EB00h
  106662. Bitfields for DPMI page attribute word:
  106663. Bit(s) Description (Table 03156)
  106664. 0-2 page type
  106665. 000 uncommitted
  106666. 001 committed
  106667. 010 mapped (see AX=0508h,AX=0509h)
  106668. other currently unused
  106669. 3 page is read/write rather than read-only
  106670. 4 accessed/dirty bits supplied in bits 5 and 6
  106671. 5 page has been accessed (only valid if bit 4 set)
  106672. 6 page has been written (only valid if bit 4 set)
  106673. 7-15 reserved (0)
  106674. --------E-310507-----------------------------
  106675. INT 31 P - DPMI 1.0+ - MODIFY PAGE ATTRIBUTES
  106676. AX = 0507h
  106677. ESI = memory block handle
  106678. EBX = offset in memory block of first page
  106679. ECX = number of pages
  106680. ES:EDX -> array of WORDs with new page attributes (see #03156)
  106681. Return: CF clear if successful
  106682. CF set on error
  106683. AX = error code (8001h,8002h,8013h,8014h,8021h,8023h,8025h)
  106684. (see #03143)
  106685. ECX = number of pages which have been set
  106686. Notes: only supported by 32-bit DPMI hosts, but may be used by 16-bit clients
  106687. if EBX is not page-aligned, it will be rounded down
  106688. SeeAlso: AX=0504h,AX=0506h,INT 21/AX=251Eh
  106689. --------E-310508-----------------------------
  106690. INT 31 P - DPMI 1.0+ - MAP DEVICE IN MEMORY BLOCK
  106691. AX = 0508h
  106692. ESI = memory block handle
  106693. EBX = page-aligned offset within memory block of page(s) to be mapped
  106694. ECX = number of pages to map
  106695. EDX = page-aligned physical address of device
  106696. Return: CF clear if successful
  106697. CF set on error
  106698. AX = error code (8001h,8003h,8023h,8025h) (see #03143)
  106699. Notes: only supported by 32-bit DPMI hosts, but may be used by 16-bit clients
  106700. support of this function is optional; hosts are also allowed to support
  106701. the function for some devices but not others
  106702. SeeAlso: AX=0504h,AX=0509h,AX=0800h,AX=0801h
  106703. --------E-310509-----------------------------
  106704. INT 31 P - DPMI 1.0+ - MAP CONVENTIONAL MEMORY IN MEMORY BLOCK
  106705. AX = 0509h
  106706. ESI = memory block handle
  106707. EBX = page-aligned offset within memory block of page(s) to map
  106708. ECX = number of pages to map
  106709. EDX = page-aligned linear address of conventional (below 1M) memory
  106710. Return: CF clear if successful
  106711. CF set on error
  106712. AX = error code (8001h,8003h,8023h,8025h) (see #03143)
  106713. Notes: only supported by 32-bit DPMI hosts, but may be used by 16-bit clients
  106714. support of this function is optional
  106715. SeeAlso: AX=0504h,AX=0508h,AX=0801h
  106716. --------E-31050A-----------------------------
  106717. INT 31 P - DPMI 1.0+ - GET MEMORY BLOCK SIZE AND BASE
  106718. AX = 050Ah
  106719. SI:DI = memory block handle
  106720. Return: CF clear if successful
  106721. SI:DI = size in bytes
  106722. BX:CX = base address
  106723. CF set on error
  106724. AX = error code (8023h) (see #03143)
  106725. SeeAlso: AX=0501h,AX=0504h
  106726. --------E-31050B-----------------------------
  106727. INT 31 P - DPMI 1.0+ - GET MEMORY INFORMATION
  106728. AX = 050Bh
  106729. ES:(E)DI -> 128-byte buffer for memory information (see #03157)
  106730. Return: CF clear if successful
  106731. CF set on error (DPMI 0.9 only)
  106732. Note: 16-bit programs use ES:DI, 32-bit programs must use ES:EDI
  106733. SeeAlso: AX=0500h
  106734. Format of DPMI memory information:
  106735. Offset Size Description (Table 03157)
  106736. 00h DWORD total allocated bytes of physical memory controlled by host
  106737. 04h DWORD total allocated bytes of virtual memory controlled by host
  106738. 08h DWORD total available bytes of virtual memory controlled by host
  106739. 0Ch DWORD total allocated bytes of virtual memory for curr virtual mach
  106740. 10h DWORD total available bytes of virtual memory for curr virtual mach
  106741. 14h DWORD total allocated bytes of virtual memory for current client
  106742. 18h DWORD total available bytes of virtual memory for current client
  106743. 1Ch DWORD total locked bytes for current client
  106744. 20h DWORD maximum locked bytes for current client
  106745. 24h DWORD highest linear address available to current client
  106746. 28h DWORD largest available memory block in bytes
  106747. 2Ch DWORD minimum allocation unit in bytes
  106748. 30h DWORD allocation alignment unit size in bytes
  106749. 34h 76 BYTEs reserved (00h)
  106750. --------E-310600-----------------------------
  106751. INT 31 P - DPMI 0.9+ - LOCK LINEAR REGION
  106752. AX = 0600h
  106753. BX:CX = starting linear address
  106754. SI:DI = size of region in bytes
  106755. Return: CF clear if successful
  106756. CF set on error
  106757. none of the memory is locked
  106758. AX = error code (DPMI 1.0+) (8013h,8017h,8025h) (see #03143)
  106759. Notes: pages at beginning and end will be locked if the region overlaps them
  106760. may be called multiple times for a given page; the DPMI host keeps a
  106761. lock count for each page
  106762. SeeAlso: AX=0004h,AX=0601h,INT 21/AX=251Ah,INT 21/AX=EB06h
  106763. --------E-310601-----------------------------
  106764. INT 31 P - DPMI 0.9+ - UNLOCK LINEAR REGION
  106765. AX = 0601h
  106766. BX:CX = starting linear address
  106767. SI:DI = size of region in bytes
  106768. Return: CF clear if successful
  106769. CF set on error
  106770. none of the memory is unlocked
  106771. AX = error code (DPMI 1.0+) (8002h,8025h) (see #03143)
  106772. Notes: pages at beginning and end will be unlocked if the region overlaps them
  106773. memory whose lock count has not reached zero remains locked
  106774. SeeAlso: AX=0005h,AX=0600h,INT 21/AX=251Bh,INT 21/AX=EB07h
  106775. --------E-310602-----------------------------
  106776. INT 31 P - DPMI 0.9+ - MARK REAL MODE REGION AS PAGEABLE
  106777. AX = 0602h
  106778. BX:CX = starting linear address
  106779. SI:DI = size of region in bytes
  106780. Return: CF clear if successful
  106781. CF set on error
  106782. none of the memory is made pageable
  106783. AX = error code (DPMI 1.0+) (8002h,8025h) (see #03143)
  106784. Notes: must relock all unlocked real mode memory before terminating process
  106785. for DPMI 0.9; DPMI 1.0+ automatically relocks real mode memory
  106786. pages at beginning and end will be unlocked if the region overlaps them
  106787. pageability of real mode pages is binary, not a count
  106788. SeeAlso: AX=0600h,AX=0603h
  106789. --------E-310603-----------------------------
  106790. INT 31 P - DPMI 0.9+ - RELOCK REAL MODE REGION
  106791. AX = 0603h
  106792. BX:CX = starting linear address
  106793. SI:DI = size of region in bytes
  106794. Return: CF clear if successful
  106795. CF set on error
  106796. none of the memory is relocked
  106797. AX = error code (DPMI 1.0+) (8002h,8013h,8025h) (see #03143)
  106798. Notes: pages at beginning and end will be relocked if the region overlaps them
  106799. pageability of real mode pages is binary, not a count
  106800. SeeAlso: AX=0602h
  106801. --------E-310604-----------------------------
  106802. INT 31 P - DPMI 0.9+ - GET PAGE SIZE
  106803. AX = 0604h
  106804. Return: CF clear if successful
  106805. BX:CX = page size in bytes
  106806. CF set on error
  106807. AX = error code (DPMI 1.0+) (see also #03143)
  106808. 8001h unsupported, 16-bit host
  106809. BUG: the Borland C++ 3.1 DPMILOAD returns with CF clear but BX and CX
  106810. unchanged
  106811. --------E-310700-----------------------------
  106812. INT 31 Pu - DPMI 0.9+ - MARK PAGES AS PAGING CANDIDATES
  106813. AX = 0700h
  106814. BX:CX = starting linear page number
  106815. SI:DI = number of pages to mark as paging candidates
  106816. Return: ???
  106817. Note: although marked as reserved in versions 0.9 and 1.0 of the DPMI
  106818. specification, this function is called by MS Windows TASKMAN,
  106819. PROGMAN, and KERNEL
  106820. SeeAlso: AX=0701h,AX=0702h
  106821. --------E-310701-----------------------------
  106822. INT 31 Pu - DPMI 0.9+ - DISCARD PAGES
  106823. AX = 0701h
  106824. BX:CX = starting linear page number
  106825. SI:DI = number of pages to discard
  106826. Return: ???
  106827. Note: although marked as reserved in versions 0.9 and 1.0 of the DPMI
  106828. specification, this function is called by MS Windows TASKMAN,
  106829. PROGMAN, and KERNEL
  106830. SeeAlso: AX=0700h,AX=0703h
  106831. --------E-310702-----------------------------
  106832. INT 31 P - DPMI 0.9+ - MARK PAGE AS DEMAND PAGING CANDIDATE
  106833. AX = 0702h
  106834. BX:CX = starting linear address
  106835. SI:DI = number of bytes to mark as paging candidates
  106836. Return: CF clear if successful
  106837. CF set on error
  106838. AX = error code (DPMI 1.0+) (8025h) (see #03143)
  106839. Notes: this function is advisory, and does not force immediate paging
  106840. partial pages will not be discarded
  106841. SeeAlso: AX=0700h,AX=0703h
  106842. --------E-310703-----------------------------
  106843. INT 31 P - DPMI 0.9+ - DISCARD PAGE CONTENTS
  106844. AX = 0703h
  106845. BX:CX = starting linear address
  106846. SI:DI = number of bytes to mark as discarded
  106847. Return: CF clear if successful
  106848. CF set on error
  106849. AX = error code (DPMI 1.0+) (8025h) (see #03143)
  106850. Notes: this function is advisory, and may be ignored by DPMI implementations
  106851. partial pages will not be discarded
  106852. SeeAlso: AX=0701h,AX=0702h
  106853. --------E-310800-----------------------------
  106854. INT 31 P - DPMI 0.9+ - PHYSICAL ADDRESS MAPPING
  106855. AX = 0800h
  106856. BX:CX = physical address (should be above 1 MB)
  106857. SI:DI = size in bytes
  106858. Return: CF clear if successful
  106859. BX:CX = linear address which maps the requested physical memory
  106860. CF set on error
  106861. AX = error code (DPMI 1.0+) (8003h,8021h) (see #03143)
  106862. Notes: implementations may refuse this call because it can circumvent protects
  106863. the caller must build an appropriate selector for the memory
  106864. do not use for memory mapped in the first megabyte
  106865. SeeAlso: AX=0002h,AX=0508h,AX=0509h,AX=0801h,INT 21/AX=250Ah,INT 21/AX=EB05h
  106866. --------E-310801-----------------------------
  106867. INT 31 P - DPMI 1.0+ - FREE PHYSICAL ADDRESS MAPPING
  106868. AX = 0801h
  106869. BX:CX = linear address returned by AX=0800h
  106870. Return: CF clear if successful
  106871. CF set on error
  106872. AX = error code (8025h) (see #03143)
  106873. Note: should be called at end of access to device mapped with AX=0800h
  106874. SeeAlso: AX=0508h,AX=0509h,AX=0800h,INT 21/AX=EB03h
  106875. --------E-310900-----------------------------
  106876. INT 31 P - DPMI 0.9+ - GET AND DISABLE VIRTUAL INTERRUPT STATE
  106877. AX = 0900h
  106878. Return: CF clear
  106879. virtual interrupts disabled
  106880. AL = previous interrupt state (00h disabled, 01h enabled)
  106881. AH preserved
  106882. Notes: the previous state may be restored simply by executing another INT 31
  106883. a CLI instruction may be used if the previous state is unimportant,
  106884. but should be assumed to be very slow due to trapping by the host
  106885. SeeAlso: AX=0901h,AX=0902h
  106886. --------E-310901-----------------------------
  106887. INT 31 P - DPMI 0.9+ - GET AND ENABLE VIRTUAL INTERRUPT STATE
  106888. AX = 0901h
  106889. Return: CF clear
  106890. virtual interrupts enabled
  106891. AL = previous interrupt state (00h disabled, 01h enabled)
  106892. AH preserved
  106893. Notes: the previous state may be restored simply by executing another INT 31
  106894. a STI instruction may be used if the previous state is unimportant,
  106895. but should be assumed to be very slow due to trapping by the host
  106896. SeeAlso: AX=0900h,AX=0902h
  106897. --------E-310902-----------------------------
  106898. INT 31 P - DPMI 0.9+ - GET VIRTUAL INTERRUPT STATE
  106899. AX = 0902h
  106900. Return: CF clear
  106901. AL = current interrupt state (00h disabled, 01h enabled)
  106902. Note: should be used rather than PUSHF because that instruction yields the
  106903. physical interrupt state rather than the per-client virtualized
  106904. interrupt flag
  106905. SeeAlso: AX=0900h,AX=0901h
  106906. --------E-310A00-----------------------------
  106907. INT 31 P - DPMI 0.9+ - GET VENDOR SPECIFIC API ENTRY POINT
  106908. AX = 0A00h
  106909. DS:(E)SI -> case-sensitive ASCIZ vendor name or identifier
  106910. Return: CF clear if successful
  106911. ES:(E)DI -> FAR extended API entry point
  106912. DS, FS, GS, EAX, EBX, ECX, EDX, ESI, EBP destroyed
  106913. CF set on error
  106914. AX = error code (DPMI 1.0+) (8001h) (see #03143)
  106915. Notes: extended API parameters are vendor-specific
  106916. DPMI 1.0+ supports this function solely for backward compatibility; use
  106917. INT 2F/AX=168Ah instead
  106918. this function is not supported by MS Windows 3.10, BC++ 3.1 DPMILOAD,
  106919. or QDPMI v1.0x; use INT 2F/AX=168Ah instead. It is supported by
  106920. 386MAX v7.01.
  106921. SeeAlso: INT 2F/AX=168Ah
  106922. --------E-310B00-----------------------------
  106923. INT 31 P - DPMI 0.9+ - SET DEBUG WATCHPOINT
  106924. AX = 0B00h
  106925. BX:CX = linear address
  106926. DL = size (1,2,4 bytes)
  106927. DH = type (00h execute, 01h write, 02h read/write)
  106928. Return: CF clear if successful
  106929. BX = watchpoint handle
  106930. CF set on error
  106931. AX = error code (DPMI 1.0+) (8016h,8021h,8025h) (see #03143)
  106932. SeeAlso: AX=0212h,AX=0601h
  106933. --------E-310B01-----------------------------
  106934. INT 31 P - DPMI 0.9+ - CLEAR DEBUG WATCHPOINT
  106935. AX = 0B01h
  106936. BX = watchpoint handle
  106937. Return: CF clear if successful
  106938. CF set on error
  106939. AX = error code (DPMI 1.0+) (8023h) (see #03143)
  106940. Note: the watchpoint handle is freed
  106941. SeeAlso: AX=0B00h
  106942. --------E-310B02-----------------------------
  106943. INT 31 P - DPMI 0.9+ - GET STATE OF DEBUG WATCHPOINT
  106944. AX = 0B02h
  106945. BX = watchpoint handle
  106946. Return: CF clear if successful
  106947. AX = status flags
  106948. bit 0: watch point has been executed since AX=0B00h or AX=0B03h
  106949. CF set on error
  106950. AX = error code (DPMI 1.0+) (8023h) (see #03143)
  106951. SeeAlso: AX=0B00h,AX=0B03h
  106952. --------E-310B03-----------------------------
  106953. INT 31 P - DPMI 0.9+ - RESET DEBUG WATCHPOINT
  106954. AX = 0B03h
  106955. BX = watchpoint handle
  106956. Return: CF clear if successful
  106957. CF set on error
  106958. AX = error code (DPMI 1.0+) (8023h) (see #03143)
  106959. SeeAlso: AX=0B02h
  106960. --------E-310C00-----------------------------
  106961. INT 31 P - DPMI 1.0+ - INSTALL RESIDENT HANDLER INIT CALLBACK
  106962. AX = 0C00h
  106963. ES:(E)DI -> resident service provider structure (see #03158)
  106964. Return: CF clear if successful
  106965. CF set on error
  106966. AX = error code (8015h,8021h,8025h) (see #03143 at AX=0000h)
  106967. Note: calling this function declares an intent to provide resident
  106968. protected mode services after terminating with AX=0C01h
  106969. SeeAlso: AX=0303h,AX=0C01h
  106970. Format of DPMI resident service provider structure:
  106971. Offset Size Description (Table 03158)
  106972. 00h QWORD descriptor for 16-bit data segment
  106973. 08h QWORD descriptor for 16-bit code segment (zeros if not supported)
  106974. 10h WORD offset of 16-bit callback procedure
  106975. 12h 2 BYTEs reserved
  106976. 14h QWORD descriptor for 32-bit data segment
  106977. 1Ch QWORD descriptor for 32-bit code segment (zeros if not supported)
  106978. 24h DWORD offset of 32-bit callback procedure
  106979. --------E-310C01-----------------------------
  106980. INT 31 P - DPMI 1.0+ - TERMINATE AND STAY RESIDENT
  106981. AX = 0C01h
  106982. BL = return code
  106983. DX = number of paragraphs of DOS memory to reserve (0 or >= 6)
  106984. Return: never
  106985. Notes: should only be used if the program will only provide services to
  106986. other DPMI programs
  106987. any protected mode memory remains allocated to the program unless
  106988. explicitly freed before this call
  106989. must first call AX=0C00h or program will simply be terminated
  106990. SeeAlso: AX=0C00h,INT 21/AH=31h
  106991. --------E-310D00-----------------------------
  106992. INT 31 P - DPMI 1.0+ - ALLOCATE SHARED MEMORY
  106993. AX = 0D00h
  106994. ES:(E)DI -> shared memory allocation request structure (see #03159)
  106995. Return: CF clear if successful
  106996. request structure updated
  106997. CF set on error
  106998. AX = error code (8012h,8013h,8014h,8016h,8021h) (see #03143)
  106999. Note: first 16 bytes of memory block will be initialized to zeros on the
  107000. first allocation
  107001. SeeAlso: AX=0501h,AX=0D01h,AX=0D02h
  107002. Format of DPMI shared memory allocation request structure:
  107003. Offset Size Description (Table 03159)
  107004. 00h DWORD requested length of shared memory block in bytes
  107005. 04h DWORD (ret) allocated length of block
  107006. 08h DWORD (ret) shared memory handle
  107007. 0Ch DWORD (ret) linear address of memory block
  107008. 10h PWORD selector:offset32 of ASCIZ name for memory block
  107009. (name max 128 bytes)
  107010. 16h 2 BYTEs reserved
  107011. 18h 4 BYTEs reserved (00h)
  107012. --------E-310D01-----------------------------
  107013. INT 31 P - DPMI 1.0+ - FREE SHARED MEMORY
  107014. AX = 0D01h
  107015. SI:DI = shared memory block handle
  107016. Return: CF clear if successful
  107017. CF set on error
  107018. AX = error code (8023h) (see #03143)
  107019. Notes: handle becomes invalid after this call
  107020. DPMI maintains separate global and virtual machine use counts for each
  107021. shared memory block; when the global use counts reaches zero, the
  107022. block is finally destroyed
  107023. SeeAlso: AX=0502h,AX=0D00h
  107024. --------E-310D02-----------------------------
  107025. INT 31 P - DPMI 1.0+ - SERIALIZE SHARED MEMORY
  107026. AX = 0D02h
  107027. SI:DI = shared memory block handle
  107028. DX = flags
  107029. bit 0: return immediately rather than suspending if serialization
  107030. unavailable
  107031. bit 1: shared rather than exclusive serialization
  107032. bits 2-15 reserved (0)
  107033. Return: CF clear if successful
  107034. CF set on error
  107035. AX = error code (8004h,8005h,8017h-8019h,8023h) (see #03143)
  107036. Notes: an exclusive serialization blocks any other serialization attempts for
  107037. the same block by another virtual machine; a shared serialization
  107038. blocks attempts at exclusive serialization by another virtual machine
  107039. hosts are not required to detect deadlock
  107040. a client's interrupt handler can cancel a serialization call which
  107041. caused it to block by calling AX=0D03h
  107042. SeeAlso: AX=0D00h,AX=0D03h
  107043. --------E-310D03-----------------------------
  107044. INT 31 P - DPMI 1.0+ - FREE SERIALIZATION ON SHARED MEMORY
  107045. AX = 0D03h
  107046. SI:DI = shared memory block handle
  107047. DX = flags
  107048. bit 0: release shared serialization rather than exclusive serialztn
  107049. bit 1: free pending serialization
  107050. bits 2-15 reserved (0)
  107051. Return: CF clear if successful
  107052. CF set on error
  107053. AX = error code (8002h,8023h) (see #03143 at AX=0000h)
  107054. SeeAlso: AX=0D00h,AX=0D02h
  107055. --------E-310E00-----------------------------
  107056. INT 31 P - DPMI 1.0+ - GET COPROCESSOR STATUS
  107057. AX = 0E00h
  107058. Return: CF clear
  107059. AX = coprocessor status (see #03160)
  107060. Note: supported by 386MAX v6.01, which otherwise only supports DPMI 0.9
  107061. SeeAlso: AX=0E01h
  107062. Bitfields for DPMI coprocessor status:
  107063. Bit(s) Description (Table 03160)
  107064. 0 numeric coprocessor enabled for current client
  107065. 1 client is emulating coprocessor
  107066. 2 numeric coprocessor is present
  107067. 3 host is emulating coprocessor instructions
  107068. 4-7 coprocessor type
  107069. 0000 none
  107070. 0010 80287
  107071. 0011 80387
  107072. 0100 80486 with numeric coprocessor
  107073. other reserved
  107074. 8-15 not used
  107075. --------E-310E01-----------------------------
  107076. INT 31 P - DPMI 1.0+ - SET EMULATION
  107077. AX = 0E01h
  107078. BX = coprocessor flag bits (see #03161)
  107079. Return: CF clear if successful
  107080. CF set on error
  107081. AX = error code (8026h) (see #03143 at AX=0000h)
  107082. Note: supported by 386MAX v6.01, which otherwise only supports DPMI 0.9
  107083. SeeAlso: AX=0E00h
  107084. Bitfields for DPMI coprocessor flags:
  107085. Bit(s) Description (Table 03161)
  107086. 0 enable numeric coprocessor for current client
  107087. 1 client will emulate coprocessor
  107088. 2-15 not used
  107089. --------E-3157-------------------------------
  107090. INT 31 - Netroom3 DPMI.EXE v3.00 - ???
  107091. AH = 57h
  107092. AL = subfunction (at least 02h,03h,04h,05h,07h,08h,09h,0Ah)
  107093. ???
  107094. Return: ???
  107095. SeeAlso: INT 2C/AX=0000h"Cloaking"
  107096. --------E-315702-----------------------------
  107097. INT 31 - Netroom3 DPMI.EXE v3.00 - SWITCH TO PROTECTED MODE
  107098. AX = 5702h
  107099. DX = PSP segment of caller
  107100. STACK: WORD ???
  107101. WORD flags (bit 0 set if 32-bit program)
  107102. Return: as for DPMI mode-switch entry point (see #02718 at INT 2F/AX=1687h)
  107103. Note: this function is called by the real-mode DPMI mode-switch entry point
  107104. SeeAlso: INT 2F/AX=1687h
  107105. --------E-31EE00------------------------
  107106. INT 31 - DOS32 v3.0+ - GET DOS32 VERSION AND SELECTOR VALUES
  107107. AX = EE00h
  107108. Return: AL = minor version (BCD)
  107109. AH = major version (BCD)
  107110. DL = system type (1=raw DOS, 2=XMS, 4=VCPI, 8=DPMI)
  107111. BX = selector of 4GB data segment with zero base address
  107112. Program: DOS32 is a 32 bit DOS extender by Adam Seychell.
  107113. SeeAlso: AX=EE02h
  107114. --------E-31EE02------------------------
  107115. INT 31 - DOS32 v3.0+ - GET DOS32 ADDRESS INFORMATION
  107116. AX = EE02h
  107117. Return: AX = real-mode segment of temporary 8K buffer (v3.1+)
  107118. EBX = 32bit linear address of the program segment
  107119. EDX = Total size in bytes of the programs .EXE file after linking.
  107120. ESI = offset address of PSP
  107121. EDI = offset address of program environment
  107122. ECX = offset address of the program's .EXE ASCIZ file name and path
  107123. SeeAlso: AX=EE00h,AX=EE20h
  107124. --------E-31EE10------------------------
  107125. INT 31 - DOS32 v3.2+ - SET UP A DOS32 LOADABLE LIBRARY
  107126. AX = EE10h
  107127. EDX -> library ASCIZ path\filename
  107128. EBX = number of bytes to seek from beginning of file
  107129. Return: CF clear if successful
  107130. EAX = size of memory block required to store library
  107131. EBX = size of library file
  107132. CF set on error
  107133. AL = error code.
  107134. 01h error opening or reading file
  107135. 02h bad DOS32 library file
  107136. SeeAlso: AX=EE00h,AX=EE11h
  107137. --------E-31EE11------------------------
  107138. INT 31 - DOS32 v3.2+ - LOAD LIBRARY FILE
  107139. AX = EE11h
  107140. EDX -> near pointer of memory block to store library
  107141. Return: CF clear if successful
  107142. EDX = near pointer to the dynamic library public
  107143. CF set on error
  107144. Note: must first successfuly call function AX=EE10h before calling this
  107145. function
  107146. SeeAlso: AX=EE00h,AX=EE10h
  107147. --------E-31EE20------------------------
  107148. INT 31 - DOS32 v3.0+ - GET REAL MODE CALL BACK ADDRESS WITH RETF STACK FRAME
  107149. AX = EE20h
  107150. ESI = offset of the real mode call back function
  107151. Return: CF clear if successful
  107152. CX:DX = real mode address to call up to the protected mode
  107153. procedure
  107154. CF set on error
  107155. SeeAlso: AX=EE00h,AX=EE02h,AX=EE21h
  107156. --------E-31EE21------------------------
  107157. INT 31 - DOS32 v3.0+ - GET REAL MODE CALL BACK ADDRESS WITH IRET STACK FRAME
  107158. AX = EE21h
  107159. ESI = offset of the real mode call back function
  107160. Return: CF clear if successful
  107161. CX:DX = real mode address to call up to the protected mode
  107162. procedure
  107163. CF set on error
  107164. SeeAlso: AX=EE20h
  107165. --------E-31EE30------------------------
  107166. INT 31 - DOS32 v3.0+ - TERMINATE AND STAY RESIDENT
  107167. AX = EE30h
  107168. SeeAlso: AX=EE21h,AX=EE40h,INT 21/AH=31h
  107169. --------E-31EE40------------------------
  107170. INT 31 - DOS32 v3.0+ - UNDO PREVIOUS MEMORY ALLOCATION or DMA BUFFER
  107171. AX = EE40h
  107172. Return: CF clear if successful
  107173. CF set on error
  107174. SeeAlso: AX=EE41h,AX=EE42h
  107175. --------E-31EE41------------------------
  107176. INT 31 - DOS32 v3.0+ - ALLOCATE 16KB DMA BLOCK
  107177. AX = EE41h
  107178. Return: CF clear if successful
  107179. EBX -> 16KB DMA block (physical address)
  107180. EDX -> 16KB DMA block (offset address)
  107181. CF set on error
  107182. SeeAlso: AX=EE40h,AX=EE42h
  107183. --------E-31EE42------------------------
  107184. INT 31 - DOS32 v3.0+ - ALLOCATE MEMORY BLOCK
  107185. AX = EE42h
  107186. EDX = size in bytes
  107187. Return: CF clear if successful
  107188. EAX = size in bytes
  107189. EDX -> memory block
  107190. CF set on error
  107191. Note: size is rounded off to the next 4KB boundary
  107192. SeeAlso: AX=EE40h,AX=EE41h
  107193. --------E-31FF00-----------------------------
  107194. INT 31 P - CauseWay - "Info" - GET SYSTEM SELECTORS/FLAGS
  107195. AX = FF00h
  107196. Return: AX = selector for flag address space (base 00000000h, limit 4GB)
  107197. BX = selector for current PSP segment (limit 0100h)
  107198. (E)CX = size of DOS transfer buffer (max 64K)
  107199. DX = real-mode segment address of DOS transfer buffer
  107200. ES:(E)SI = protected-mode address of DOS transfer buffer
  107201. EDI = system flags (see #03162)
  107202. Program: CauseWay is a 386 DOS extender by Michael Devore and John Wildsmith
  107203. for use with Watcom C++ or assembly language programs
  107204. Notes: the entire transfer buffer can be addressed with a 16-bit offset in
  107205. protected mode
  107206. CauseWay always maps selector 0040h to the BIOS data segment at
  107207. real-mode segment 0040h; when not running under a DPMI host, CauseWay
  107208. also provides selectors A000h, B000h, and B800h mapped to video
  107209. memory
  107210. SeeAlso: AX=FF25h
  107211. Bitfields for CauseWay system flags:
  107212. Bit(s) Description (Table 03162)
  107213. 0 32-bit code
  107214. 1 virtual memory manage enabled
  107215. 3-2 mode: 00 raw extended memory, 01 VCPI, 10 DPMI
  107216. 4 DPMI available
  107217. 5 VCPI available
  107218. 6 no memory managers
  107219. 7 application descriptor table type: 0 = GDT, 1 = LDT
  107220. 14-8 reserved
  107221. 15 debugging engine present
  107222. --------E-31FF01-----------------------------
  107223. INT 31 P - CauseWay - "IntXX" - SIMULATE REAL-MODE INTERRUPT
  107224. AX = FF01h
  107225. BL = interrupt number
  107226. ES:(E)DI -> real-mode register list (see #03148 at AX=0300h)
  107227. Return: register list updated
  107228. Note: CauseWay fills in the values for SS, SP, and FLAGS itself, and ignores
  107229. the values specified for CS and IP
  107230. SeeAlso: AX=0300h,AX=FF02h
  107231. --------E-31FF02-----------------------------
  107232. INT 31 P - CauseWay - "FarCallReal" - SIMULATE REAL-MODE FAR CALL
  107233. AX = FF02h
  107234. ES:(E)DI -> real-mode register list (see #03148 at AX=0300h)
  107235. Return: register list updated
  107236. SeeAlso: AX=0301h,AX=FF01h
  107237. --------E-31FF03-----------------------------
  107238. INT 31 P - CauseWay - "GetSel" - ALLOCATE NEW SELECTOR
  107239. AX = FF03h
  107240. Return: CF clear if successful
  107241. BX = new selector
  107242. CF set on error
  107243. Note: the new selector is initialized with a base address of 000000h, a limit
  107244. of 0000h, and attributes read/write expand-up data
  107245. SeeAlso: AX=FF04h,AX=FF05h,AX=FF06h
  107246. --------E-31FF04-----------------------------
  107247. INT 31 P - CauseWay - "RelSel" - RELEASE A SELECTOR
  107248. AX = FF04h
  107249. BX = selector
  107250. Return: CF clear if successful
  107251. CF set on error
  107252. SeeAlso: AX=FF03h,AX=FF06h
  107253. --------E-31FF05-----------------------------
  107254. INT 31 P - CauseWay - "CodeSel" - CONVERT SELECTOR TO EXECUTABLE CODE SELECTOR
  107255. AX = FF05h
  107256. BX = selector
  107257. CL = default operation size (00h = 16-bit, 01h = 32-bit)
  107258. Return: CF clear if successful
  107259. CF set on error
  107260. SeeAlso: AX=FF03h
  107261. --------E-31FF06-----------------------------
  107262. INT 31 P - CauseWay - "AliasSel" - CREATE READ/WRITE DATA ALIAS SELECTOR
  107263. AX = FF06h
  107264. BX = original selector
  107265. Return: CF clear if successful
  107266. AX = new data selector aliasing original selector
  107267. CF set on error
  107268. SeeAlso: AX=FF03h,AX=FF04h
  107269. --------E-31FF07-----------------------------
  107270. INT 31 P - CauseWay - "GetSelDet" - GET SELECTOR BASE AND LIMIT
  107271. AX = FF07h
  107272. BX = selector
  107273. Return: CF clear if successful
  107274. CX:DX = base address
  107275. SI:DI = limit (bytes)
  107276. CF set on error
  107277. SeeAlso: AX=FF08h,AX=FF09h
  107278. --------E-31FF08-----------------------------
  107279. INT 31 P - CauseWay - "GetSelDet32" - GET SELECTOR BASE AND LIMIT (32-bit)
  107280. AX = FF08h
  107281. Return: CF clear if successful
  107282. EDX = base address
  107283. ECX = limit (bytes)
  107284. CF set on error
  107285. SeeAlso: AX=FF07h,AX=FF0Ah
  107286. --------E-31FF09-----------------------------
  107287. INT 31 P - CauseWay - "SetSelDet" - SET SELECTOR BASE AND LIMIT
  107288. AX = FF09h
  107289. BX = selector
  107290. CX:DX = new base address
  107291. SI:DI = new byte-granular limit
  107292. Return: CF clear if successful
  107293. CF set on error
  107294. SeeAlso: AX=FF07h,AX=FF0Ah
  107295. --------E-31FF0A-----------------------------
  107296. INT 31 P - CauseWay - "SetSelDet32" - SET SELECTOR BASE AND LIMIT (32-bit)
  107297. AX = FF0Ah
  107298. BX = selector
  107299. EDX = new base address
  107300. ECX = new byte-granular limit
  107301. Return: CF clear if successful
  107302. CF set on error
  107303. SeeAlso: AX=FF08h,AX=FF09h
  107304. --------E-31FF0B-----------------------------
  107305. INT 31 P - CauseWay - "GetMem" - ALLOCATE BLOCK OF MEMORY
  107306. AX = FF0Bh
  107307. CX:DX = size in bytes (FFFFh:FFFFh to get size of largest available)
  107308. Return: CF clear if successful
  107309. BX = selector for accessing block if requested size not FFFFh:FFFFh
  107310. CX:DX = size of largest available block if requested FFFFh:FFFFh
  107311. CF set on error
  107312. SeeAlso: AX=FF0Ch,AX=FF0Dh,AX=FF0Fh,AX=FF10h,AX=FF2Ch
  107313. --------E-31FF0C-----------------------------
  107314. INT 31 P - CauseWay - "GetMem32" - ALLOCATE BLOCK OF MEMORY (32-bit)
  107315. AX = FF0Ch
  107316. ECX = size in bytes (FFFFFFFFh to get size of largest available block)
  107317. Return: CF clear if successful
  107318. BX = selector for accessing block if requested size not FFFFh:FFFFh
  107319. ECX = size of largest available block if requested FFFFh:FFFFh
  107320. CF set on error
  107321. SeeAlso: AX=FF0Bh,AX=FF0Eh,AX=FF0Fh,AX=FF11h
  107322. --------E-31FF0D-----------------------------
  107323. INT 31 P - CauseWay - "ResMem" - RESIZE MEMORY BLOCK
  107324. AX = FF0Dh
  107325. BX = selector for block to be resized
  107326. CX:DX = new size in bytes
  107327. Return: CF clear if successful
  107328. CF set on error
  107329. Note: the memory block may have to be copied to another location in order
  107330. to satisfy the requested new size, in which case the base address
  107331. of the selector is updated
  107332. SeeAlso: AX=FF0Bh,AX=FF0Eh,AX=FF12h
  107333. --------E-31FF0E-----------------------------
  107334. INT 31 P - CauseWay - "ResMem32" - RESIZE MEMORY BLOCK (32-bit)
  107335. AX = FF0Eh
  107336. BX = selector for block to be resized
  107337. ECX = new size in bytes
  107338. Return: CF clear if successful
  107339. CF set on error
  107340. Note: the memory block may have to be copied to another location in order
  107341. to satisfy the requested new size, in which case the base address
  107342. of the selector is updated
  107343. SeeAlso: AX=FF0Ch,AX=FF0Dh,AX=FF13h
  107344. --------E-31FF0F-----------------------------
  107345. INT 31 P - CauseWay - "RelMem" - RELEASE PREVIOUSLY ALLOCATED MEMORY
  107346. AX = FF0Fh
  107347. BX = selector for block to be released
  107348. Return: CF clear if successful
  107349. CF set on error
  107350. SeeAlso: AX=FF0Bh,AX=FF0Ch,AX=FF14h
  107351. --------E-31FF10-----------------------------
  107352. INT 31 P - CauseWay - "GetMemLinear" - ALLOCATE MEMORY WITHOUT SELECTOR
  107353. AX = FF10h
  107354. CX:DX = size of block in bytes
  107355. Return: CF clear if successful
  107356. SI:DI = linear address of allocated block
  107357. CF set on error
  107358. Note: this function may return addresses above 16M
  107359. SeeAlso: AX=FF0Bh,AX=FF11h,AX=FF12h,AX=FF14h
  107360. --------E-31FF11-----------------------------
  107361. INT 31 P - CauseWay - "GetMemLinear32" - ALLOCATE MEMORY WITHOUT SELECTOR
  107362. AX = FF11h
  107363. ECX = size of block in bytes
  107364. Return: CF clear if successful
  107365. ESI = linear address of allocated block
  107366. CF set on error
  107367. Note: this function may return addresses above 16M
  107368. SeeAlso: AX=FF0Ch,AX=FF10h,AX=FF13h,AX=FF14h
  107369. --------E-31FF12-----------------------------
  107370. INT 31 P - CauseWay - "ResMemLinear" - RESIZE LINEAR MEMORY BLOCK
  107371. AX = FF12h
  107372. CX:DX = new size in bytes
  107373. SI:DI = linear address of block to be resized
  107374. Return: CF clear if successful
  107375. SI:DI = new linear address of block
  107376. CF set on error
  107377. SeeAlso: AX=FF0Dh,AX=FF10h,AX=FF13h
  107378. --------E-31FF13-----------------------------
  107379. INT 31 P - CauseWay - "ResMemLinear32" - RESIZE LINEAR MEMORY BLOCK (32-bit)
  107380. AX = FF13h
  107381. ECX = new size in bytes
  107382. ESI = linear address of block to be resized
  107383. Return: CF clear if successful
  107384. ESI = new linear address of block
  107385. CF set on error
  107386. SeeAlso: AX=FF0Eh,AX=FF11h,AX=FF12h
  107387. --------E-31FF14-----------------------------
  107388. INT 31 P - CauseWay - "RelMemLinear" - RELEASE LINEAR MEMORY BLOCK
  107389. AX = FF14h
  107390. SI:DI = linear address of block to be released
  107391. Return: CF clear if successful
  107392. CF set on error
  107393. SeeAlso: AX=FF0Fh,AX=FF10h,AX=FF15h
  107394. --------E-31FF15-----------------------------
  107395. INT 31 P - CauseWay - "RelMemLinear32" - RELEASE LINEAR MEMORY BLOCK (32-bit)
  107396. AX = FF15h
  107397. ESI = linear address of block to be released
  107398. Return: CF clear if successful
  107399. CF set on error
  107400. SeeAlso: AX=FF0Fh,AX=FF11h,AX=FF15h
  107401. --------E-31FF16-----------------------------
  107402. INT 31 P - CauseWay - "GetMemNear" - ALLOCATE APPLICATION-RELATIVE MEMORY
  107403. AX = FF16h
  107404. EBX = size in bytes of block to allocate
  107405. Return: CF clear if successful
  107406. ESI = application-relative linear address of allocated block
  107407. CF set on error
  107408. SeeAlso: AX=FF17h,AX=FF18h,AX=FF19h
  107409. --------E-31FF17-----------------------------
  107410. INT 31 P - CauseWay - "ResMemNear" - RESIZE APPLICATION-RELATIVE MEMORY BLOCK
  107411. AX = FF17h
  107412. EBX = size in bytes of block to allocate
  107413. ESI = application-relative linear address of block
  107414. Return: CF clear if successful
  107415. ESI = new application-relative linear address of block
  107416. CF set on error
  107417. SeeAlso: AX=FF16h,AX=FF18h,AX=FF19h
  107418. --------E-31FF18-----------------------------
  107419. INT 31 P - CauseWay - "RelMemNear" - RELEASE APPLICATION-RELATIVE MEMORY BLOCK
  107420. AX = FF18h
  107421. ESI = application-relative linear address of block
  107422. Return: CF clear if successful
  107423. CF set on error
  107424. SeeAlso: AX=FF16h,AX=FF17h,AX=FF19h
  107425. --------E-31FF19-----------------------------
  107426. INT 31 P - CauseWay - "Linear2Near" - CONVERT LINEAR TO APP-RELATIVE ADDRESS
  107427. AX = FF19h
  107428. ESI = linear address
  107429. Return: ESI = application-relative linear address
  107430. SeeAlso: AX=FF1Ah
  107431. --------E-31FF1A-----------------------------
  107432. INT 31 P - CauseWay - "Near2Linear" - CONVERT APP-RELATIVE TO LINEAR ADDRESS
  107433. AX = FF1Ah
  107434. ESI = application-relative linear address
  107435. Return: ESI = linear address
  107436. SeeAlso: AX=FF19h
  107437. --------E-31FF1B-----------------------------
  107438. INT 31 P - CauseWay - "LockMem" - LOCK REGION OF MEMORY
  107439. AX = FF1Bh
  107440. BX:CX = starting linear address
  107441. SI:DI = size of region in bytes
  107442. Return: CF clear if successful
  107443. CF set on error
  107444. Desc: prevent memory from being swapped out by the virtual memory manager
  107445. Note: locks are applied on 4K page boundaries, so memory above and below
  107446. the specified region may be locked as well
  107447. SeeAlso: AX=FF1Ch,AX=FF1Dh
  107448. --------E-31FF1C-----------------------------
  107449. INT 31 P - CauseWay - "LockMem32" - LOCK REGION OF MEMORY (32-bit)
  107450. AX = FF1Ch
  107451. ESI = starting linear address
  107452. ECX = size of region in bytes
  107453. Return: CF clear if successful
  107454. CF set on error
  107455. Desc: prevent memory from being swapped out by the virtual memory manager
  107456. Note: locks are applied on 4K page boundaries, so memory above and below
  107457. the specified region may be locked as well
  107458. SeeAlso: AX=FF1Bh,AX=FF1Eh,AX=FF1Fh
  107459. --------E-31FF1D-----------------------------
  107460. INT 31 P - CauseWay - "UnLockMem" - UNLOCK REGION OF MEMORY
  107461. AX = FF1Dh
  107462. BX:CX = starting linear address
  107463. SI:DI = size of region in bytes
  107464. Return: CF clear if successful
  107465. CF set on error
  107466. Desc: allow memory to be swapped out by the virtual memory manager
  107467. Note: locks are applied on 4K page boundaries, so memory above and below
  107468. the specified region may be unlocked as well
  107469. SeeAlso: AX=FF1Bh,AX=FF1Eh
  107470. --------E-31FF1E-----------------------------
  107471. INT 31 P - CauseWay - "UnLockMem32" - UNLOCK REGION OF MEMORY (32-bit)
  107472. AX = FF1Eh
  107473. ESI = starting linear address
  107474. ECX = size of region in bytes
  107475. Return: CF clear if successful
  107476. CF set on error
  107477. Desc: allow memory to be swapped out by the virtual memory manager
  107478. Note: locks are applied on 4K page boundaries, so memory above and below
  107479. the specified region may be unlocked as well
  107480. SeeAlso: AX=FF1Ch,AX=FF1Dh,AX=FF20h
  107481. --------E-31FF1F-----------------------------
  107482. INT 31 P - CauseWay - "LockMemNear" - LOCK APPLICATION-RELATIVE MEMORY REGION
  107483. AX = FF1Fh
  107484. ESI = starting application-relative linear address
  107485. EBX = size of region in bytes
  107486. Return: CF clear if successful
  107487. CF set on error
  107488. Desc: prevent memory from being swapped out by the virtual memory manager
  107489. Note: locks are applied on 4K page boundaries, so memory above and below
  107490. the specified region may be locked as well
  107491. SeeAlso: AX=FF1Ch,AX=FF20h
  107492. --------E-31FF20-----------------------------
  107493. INT 31 P - CauseWay - "UnLockMemNear" - UNLOCK APP-RELATIVE MEMORY REGION
  107494. AX = FF20h
  107495. ESI = starting application-relative linear address
  107496. ECX = size of region in bytes
  107497. Return: CF clear if successful
  107498. CF set on error
  107499. Desc: allow memory to be swapped out by the virtual memory manager
  107500. Note: locks are applied on 4K page boundaries, so memory above and below
  107501. the specified region may be unlocked as well
  107502. SeeAlso: AX=FF1Eh,AX=FF1Fh
  107503. --------E-31FF21-----------------------------
  107504. INT 31 P - CauseWay - "GetMemDOS" - ALLOCATE CONVENTIONAL MEMORY
  107505. AX = FF21h
  107506. BX = number of paragraphs to allocate
  107507. Return: CF clear if successful
  107508. AX = real-mode segment of allocated block
  107509. DX = initial selector for block
  107510. CF set on error
  107511. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  107512. BX = size of largest available block
  107513. Note: if the requested size is greater than 64K, contiguous selectors will
  107514. be allocated, one for each 64K; for 32-bit applications, the first
  107515. selector's limit will be set to the size of the entire block, while
  107516. that selector will have a limit of 64K for 16-bit applications. All
  107517. selectors after the first one have a limit of 64K except the final
  107518. one
  107519. SeeAlso: AX=FF22h,AX=FF23h,INT 21/AH=48h
  107520. --------E-31FF22-----------------------------
  107521. INT 31 P - CauseWay - "ResMemDOS" - RESIZE CONVENTIONAL MEMORY BLOCK
  107522. AX = FF22h
  107523. BX = new size in paragraphs
  107524. DX = initial selector for block
  107525. Return: CF clear if successful
  107526. CF set on error
  107527. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  107528. BX = maximum number of paragraphs available
  107529. Note: this function will also fail if the block is expanded past a 64K
  107530. boundary and the next selector is already in use
  107531. SeeAlso: AX=FF21h,AX=FF23h,INT 21/AH=49h
  107532. --------E-31FF23-----------------------------
  107533. INT 31 P - CauseWay - "RelMemDOS" - RELEASE CONVENTIONAL MEMORY BLOCK
  107534. AX = FF23h
  107535. DX = initial selector for block
  107536. Return: CF clear if successful
  107537. CF set on error
  107538. AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
  107539. Note: all descriptors allocated for the block are freed
  107540. SeeAlso: AX=FF21h,AX=FF22h,INT 21/AH=4Ah
  107541. --------E-31FF24-----------------------------
  107542. INT 31 P - CauseWay - "ExecOverlay" - LOAD AND OPTIONALLY EXECUTE APP CODE
  107543. AX = FF24h
  107544. EBX = flags
  107545. bit 0: don't execute (overlay only)
  107546. bit 1: don't preserve relocation information
  107547. ES:EDX -> filename (see also #03163)
  107548. FS:ESI -> commandline (ESI = 00000000h if no commandline)
  107549. GS:EDI -> name (CW's /o option)
  107550. Return: CF clear if successful
  107551. ---EBX bit 0 set---
  107552. CX:EDX = program entry point (CS:EIP)
  107553. SI = segment of PSP
  107554. ---EBX bit 1 set---
  107555. BX:EAX = initial SS:ESP
  107556. EDI high word = base segment
  107557. EDI low word = number of segments
  107558. EBP = start of segment definitions
  107559. CF set on error
  107560. AX = error code
  107561. 0001h DOS file access error
  107562. 0002h not a CuaseWay 3P file
  107563. 0003h not enough memory
  107564. SeeAlso: AX=FF2Ah,INT 21/AH=4Bh
  107565. Format of CauseWay executable:
  107566. Offset Size Description (Table 03163)
  107567. 00h 2 BYTEs signature "3P"
  107568. 02h DWORD size of header data in bytes
  107569. 06h DWORD size of EXE image data in bytes
  107570. 0Ah DWORD number of bytes of program memory required
  107571. 0Eh WORD number of segment definitions (see #03165)
  107572. 10h DWORD number of relocation table entries
  107573. 14h DWORD offset of program entry point
  107574. 18h WORD segment list entry number for entry point's CS
  107575. 1Ah DWORD initial ESP
  107576. 1Eh WORD segment list entry number for initial SS
  107577. 20h DWORD control flags (see #03164)
  107578. 24h DWORD automatic stack size in bytes if ESP entry = 00000000h
  107579. 28h BYTE length of name (name follows program image)
  107580. 29h 23 BYTEs reserved
  107581. SeeAlso: #01594,#01609 at INT 21/AH=4Bh
  107582. Bitfields for CauseWay executable control flags:
  107583. Bit(s) Description (Table 03164)
  107584. 0 16-bit interrupt stack frame
  107585. 7 descriptor table type (0 = GDT, 1 = LDT)
  107586. 14 16-bit default data size
  107587. 31 compressed EXE image
  107588. Note: bits 0 and 14 should always be equal
  107589. SeeAlso: #03163
  107590. Format of CauseWay segment definition [array]:
  107591. Offset Size Description (Table 03165)
  107592. 00h DWORD start offset within program image
  107593. 04h DWORD length and type
  107594. bits 0-19: length
  107595. bit 20: granularity (if set, length is in 4K pages)
  107596. bits 21-24: type
  107597. 0000 code
  107598. 0001 read/write data
  107599. 0010 stack
  107600. 0011 read-only data
  107601. bit 25: force segment descriptor's D bit to 0
  107602. bit 26: force segmetn descriptor's D bit to 1
  107603. SeeAlso: #03163
  107604. --------E-31FF25-----------------------------
  107605. INT 31 P - CauseWay - "GetDOSTrans" - GET DOS TRANSFER BUFFER
  107606. AX = FF25h
  107607. Return: BX = real-mode segment of transfer buffer
  107608. ECX = transfer buffer size
  107609. DX = protected-mode selector for transfer buffer
  107610. Note: the default buffer size of 8K is sufficient for most applications,
  107611. but an application performing large amounts of file I/O may benefit
  107612. from allocating its own, larger buffer
  107613. SeeAlso: AX=FF00h,AX=FF26h
  107614. --------E-31FF26-----------------------------
  107615. INT 31 P - CauseWay - "SetDOSTrans" - SET DOS TRANSFER BUFFER
  107616. AX = FF26h
  107617. BX = real-mode segment of new transfer buffer
  107618. ECX = new transfer buffer size
  107619. DX = protected-mode selector for new transfer buffer
  107620. Return: nothing
  107621. Note: the specific buffer must be located in conventional memory; only the
  107622. first 64K will be used
  107623. SeeAlso: AX=FF25h
  107624. --------E-31FF27-----------------------------
  107625. INT 31 P - CauseWay v1.3 - "GetMCBSize" - GET CURRENT MCB ALLOCATION BLOCK SIZE
  107626. AX = FF27h
  107627. Return: ECX = current threshold
  107628. Desc: determine the memory allocation size below which CauseWay will use
  107629. internal MCB chains rather than allocating full 4K pages via DPMI
  107630. SeeAlso: AX=FF00h,AX=FF28h
  107631. --------E-31FF28-----------------------------
  107632. INT 31 P - CauseWay v1.3 - "SetMCBSize" - SET MCB MEMORY ALLOCATION BLOCK SIZE
  107633. AX = FF28h
  107634. ECX = new threshold (0000000h to disable MCB memory allocation system)
  107635. Return: CF clear if successful
  107636. threshold unchanged (default 16K)
  107637. CF set on error (threshold > 64K)
  107638. Desc: specify the memory allocation size below which CauseWay will use
  107639. internal MCB chains rather than allocating full 4K pages via DPMI
  107640. Note: the specified threshold will be rounded up to the next higher multiple
  107641. of 4K
  107642. SeeAlso: AX=FF00h,AX=FF27h
  107643. --------E-31FF29-----------------------------
  107644. INT 31 P - CauseWay v1.3 - "GetSels" - ALLOCATE MULTIPLE SELECTORS
  107645. AX = FF29h
  107646. CX = number of selectors to allocate
  107647. Return: BX = base selector
  107648. Desc: allocate multiple contiguous selectors, initializing each to have a
  107649. base address and limit of zero
  107650. SeeAlso: AX=FF00h,AX=FF04h
  107651. --------E-31FF2A-----------------------------
  107652. INT 31 P - CauseWay v1.3 - "cwLoad" - LOAD ANOTHER CAUSEWAY PROGRAM AS OVERLAY
  107653. AX = FF2Ah
  107654. DS:EDX -> filename
  107655. Return: CF clear if successful
  107656. CX:EDX = CS:EIP of entry point
  107657. BX:EAX = initial SS:ESP for program
  107658. SI = PSP for overlay program
  107659. CF set on error
  107660. AX = error code (01h file error, 02h not a 3P file, 03h no memory)
  107661. Note: the returned PSP can be given to "RelMem" (AX=FF0Fh) to release the
  107662. overlay's memory and selectors; only selectors and memory allocated
  107663. during loading will be freed by RelMem unless one switches PSPs with
  107664. INT 21/AH=50h
  107665. SeeAlso: AX=FF00h,AX=FF24h
  107666. --------E-31FF2B-----------------------------
  107667. INT 31 P - CauseWay v1.3 - "cwcInfo" - VALIDATE AND GET SIZE OF CWC FILE
  107668. AX = FF2Bh
  107669. BX = file handle for CWC-compressed file
  107670. Return: CF clear if successful
  107671. ECX = expanded file size
  107672. CF set on error (not a CWC-compressed file)
  107673. SeeAlso: AX=FF00h,AX=FFFBh
  107674. --------E-31FF2C-----------------------------
  107675. INT 31 P - CauseWay v1.3 - "GetMemSO" - ALLOCATE MEMORY AND RETURN SEL:OFFSET
  107676. AX = FF2Ch
  107677. CX:DX = block size in bytes
  107678. Return: CF clear if successful
  107679. SI:DI = selector:offset of allocated memory
  107680. CF set on error
  107681. Note: unlike "GetMem" (AX=FF0Bh), this function will reuse selectors until a
  107682. segment is full, rather than allocating a new selector for each
  107683. memory block
  107684. SeeAlso: AX=FF00h,AX=FF2Dh,AX=FF2Eh
  107685. --------E-31FF2D-----------------------------
  107686. INT 31 P - CauseWay v1.3 - "ResMemSO" - RESIZE SELECTOR:OFFSET MEMORY BLOCK
  107687. AX = FF2Dh
  107688. SI:DI = selector:offset for memory block
  107689. CX:DX = new size of block
  107690. Return: CF clear if successful
  107691. SI:DI = new selector:offset for memory block
  107692. CF set on error
  107693. SeeAlso: AX=FF00h,AX=FF2Ch,AX=FF2Eh
  107694. --------E-31FF2E-----------------------------
  107695. INT 31 P - CauseWay v1.3 - "RelMemSO" - RELEASE SELECTOR:OFFSET MEMORY BLOCK
  107696. AX = FF2Eh
  107697. SI:DI = selector:offset for memory block
  107698. SeeAlso: AX=FF00h
  107699. --------E-31FFFB-----------------------------
  107700. INT 31 P - Causeway v1.3 - "cwcLoad" - LOAD/EXPAND CWC-COMPRESSED FILE
  107701. AX = FFFBh
  107702. BX = source file handle
  107703. ES:EDI -> memory buffer into which to expand file
  107704. Return: CF clear if successful
  107705. ECX = expanded data length
  107706. CF set on error
  107707. EAX = error code (01h file error, 02h bad data, 03h not CWC file)
  107708. Note: the provided file may consist of the concatenation of several CWC
  107709. files; the one beginning at the current file position will be
  107710. expanded
  107711. SeeAlso: AX=FF2Bh
  107712. --------v-32---------------------------------
  107713. INT 32 - VIRUS - "Tiny" Viruses - ORIGINAL INT 21h VECTOR
  107714. SeeAlso: INT 21/AX=FFFFh"VIRUS",INT 31"VIRUS",INT 44"VIRUS"
  107715. --------v-32---------------------------------
  107716. INT 32 - VIRUS - "Plovdiv 1.3"/"Damage 1.3" - ORIGINAL INT 21h VECTOR
  107717. SeeAlso: INT 31"VIRUS",INT 9E"VIRUS"
  107718. --------y-326E-------------------------------
  107719. INT 32 - NOISE.SYS 0.53 - API
  107720. AH = 6Eh (function ID)
  107721. AL = subfunction (see INT 32/AX=6E00h)
  107722. Return: CF set on error
  107723. AL = error code (see #03166)
  107724. CF clear if successful
  107725. Notes: INT 32 is only a proposed interface for NOISE.SYS. Use the IOCTL READ
  107726. from the RANDOM device to determine the interrupt and function ID
  107727. used by the driver, since future versions may use the Alternate
  107728. Multiplex Interrupt (AMIS) at INT 2Dh.
  107729. the beta v0.51 had a substantially different API on INT 32/AH=6Eh
  107730. (Table 03166)
  107731. Values for NOISE.SYS error codes:
  107732. 00h subfunction not supported
  107733. FBh random pool is empty
  107734. FCh quality of sample is too low
  107735. FDh too many processes using the API or driver
  107736. FEh subfunction is disabled in the current build
  107737. FFh successful
  107738. --------y-326E00-----------------------------
  107739. INT 32 - NOISE.SYS v0.53+ - INSTALLATION CHECK
  107740. AX = 6E00h
  107741. Return: AL = installation status
  107742. 00h not installed
  107743. FFh installed
  107744. CX = version (ie, 0123h = Version 1.2.3)
  107745. DX:DI -> signature string
  107746. --------y-326E01-----------------------------
  107747. INT 32 - NOISE.SYS v0.53+ - GET ENTRY POINT
  107748. AX = 6E01h
  107749. Return: AL = FFh
  107750. DX:DI -> far call hook
  107751. ----------326E04-----------------------------
  107752. INT 32 - NOISE.SYS v0.55+ - GET INTERRUPT HOOK LIST
  107753. AX = 6E04h
  107754. Return: AL = status
  107755. 00h = unimplemented
  107756. 04h = DX:BX -> interrupt hook list
  107757. FEh = subfunction disabled
  107758. Note: the hook list array ends with API interrupt (usually 32h, although
  107759. it will differ if the API is installed at another interrupt)
  107760. ----------326E06-----------------------------
  107761. INT 32 - NOISE.SYS v0.55+ - GET DEVICE DRIVER HEADER
  107762. AX = 6E06h
  107763. Return: AL = number of device drivers in NOISE.SYS chain
  107764. 02h = default (for RANDOM and URANDOM devices)
  107765. AH = AMIS device driver flags (set to 00h for now)
  107766. DX:BX -> first device in chain (see #01646)
  107767. SeeAlso: INT 2D/AL=06h
  107768. --------y-326E10-----------------------------
  107769. INT 32 - NOISE.SYS v0.53+ - STATUS CHECK
  107770. AX = 6E10h
  107771. Return: CF set on error
  107772. AL = error code (FDh) (see #03166)
  107773. CF clear if successful
  107774. AL = status
  107775. FFh successful
  107776. BH = number of processes using the API
  107777. CX = number of random bytes waiting
  107778. DX = maximum possible bytes waiting
  107779. (if CX=DX, the pool is full)
  107780. Note: this subfunction is a convenient way to check the driver if any
  107781. fresh bytes are waiting in the output pool.
  107782. SeeAlso: INT 32/AH=6Eh,AX=6E00h,AX=6E11h
  107783. --------y-326E11-----------------------------
  107784. INT 32 - NOISE.SYS v0.53+ - GET ENTROPY ESTIMATE
  107785. AX = 6E11h
  107786. Return: CF set on error
  107787. AL = error code (00h,FDh,FEh) (see #03166)
  107788. CF clear if successful
  107789. EBX = estimated bit count (refer to note below)
  107790. CL = FRACBITS (number of fractional bits)
  107791. EDX = low 32-bits of total number of samples added
  107792. Note: the estimated number of fresh random bits is equal to
  107793. (EAX >> FRACBITS) + ((EAX & ((1 << FRACBITS)-1) / (1 << FRACBITS))
  107794. SeeAlso: AH=6Eh,AX=6E00h
  107795. --------y-326E12-----------------------------
  107796. INT 32 - NOISE.SYS v0.53+ - ADD SAMPLE FROM FAST TIMER
  107797. AX = 6E12h
  107798. Return: CF set on error
  107799. AL = error code (FCh,FDh,FEh) (see #03166)
  107800. CF clear if successful
  107801. CX = number of random bytes waiting
  107802. Note: subfunctions 12h and 13h are meant for applications or devices
  107803. which are able to gather entropy from other sources which are
  107804. not polled by NOISE.SYS (for example, a communications driver
  107805. could use this call to sample packet arrival times).
  107806. SeeAlso: AX=6E00h,AX=6E10h,AX=6E13h
  107807. --------y-326E13-----------------------------
  107808. INT 32 - NOISE.SYS v0.53+ - ADD 16-BIT SAMPLE TO RANDOM POOL
  107809. AX = 6E13h
  107810. DX = sample
  107811. Return: CF set on error
  107812. AL = error code (FCh,FEh) (see #03166)
  107813. CF clear if successful
  107814. CX = number of random bytes waiting
  107815. SeeAlso: AX=6E00h,AX=6E11h
  107816. --------y-326E14-----------------------------
  107817. INT 32 - NOISE.SYS v0.53+ - GET FLAGS
  107818. AX = 6E14h
  107819. Return: BX = flags (see #03167)
  107820. CX = mask of settable flags in BX
  107821. SeeAlso: AX=6E00h,AX=6E15h
  107822. Bitfields for NOISE.SYS flags:
  107823. Bit(s) Description (Table 03167)
  107824. 0 MS Windows active
  107825. 1-5 reserved
  107826. 6 clock drift sampling
  107827. 7 video retrace drift sampling
  107828. 8 network access sampling (not implemented yet in 0.53)
  107829. 9 CD-ROM access sampling (not implemented yet in 0.53)
  107830. 10 DOS spinner
  107831. 11 DOS process start/end and miscellaneous process activity sampling
  107832. 12 mouse movement/button sampling
  107833. 13 disk sampling (INT 13)
  107834. 14 keystroke timings
  107835. 15 reserved for hardware RNG
  107836. --------y-326E15-----------------------------
  107837. INT 32 - NOISE.SYS v0.53+ - SET FLAGS
  107838. AX = 6E15h
  107839. BX = flags (see #03167)
  107840. Return: BX = new flags
  107841. Note: flags which AX=6E14h indicates are not settable should be masked off
  107842. by ANDing with the CX returned by AX=6E14h
  107843. SeeAlso: AX=6E00h,AX=6E14h
  107844. --------y-326E16-----------------------------
  107845. INT 32 - NOISE.SYS v0.53+ - READ URANDOM BYTES
  107846. AX = 6E16h
  107847. CX = number of bytes
  107848. ES:DI -> buffer
  107849. Return: CF set on error
  107850. AL = error code (FDh,FEh) (see #03166)
  107851. CF clear if successful
  107852. CX = number of random bytes read
  107853. SeeAlso: AX=6E00h,AX=6E12h,AX=6E17h
  107854. --------y-326E17-----------------------------
  107855. INT 32 - NOISE.SYS v0.53+ - READ RANDOM BYTES
  107856. AX = 6E17h
  107857. CX = number of bytes
  107858. ES:DI -> buffer
  107859. Return: CF set on error
  107860. AL = error code (FBh,FDh,FEh) (see #03166)
  107861. CF clear if successful
  107862. CX = number of random bytes read
  107863. SeeAlso: AX=6E00h,AX=6E16h
  107864. ----------326E18-----------------------------
  107865. INT 32 - NOISE.SYS v0.6+ - READ CONTROL RECORD
  107866. AX = 6E18h
  107867. CX = buffer size
  107868. ES:DI -> buffer
  107869. Return: AL = status
  107870. 00h unimplemented (before v0.6)
  107871. FEh subfunction is disabled
  107872. FFh successful
  107873. CX = number of bytes read
  107874. Note: the control record corresponds to the IOCTL Read record for the RANDOM
  107875. device
  107876. ----------326E-------------------------------
  107877. INT 32 - NOISE.SYS - RESERVED FOR FUTURE USE
  107878. AH = 6Eh
  107879. AL = 19h to 3Fh
  107880. Return: AL = 00h
  107881. Note: these functions are reserved for future use; user additions to the
  107882. the driver should use subfunctions 40h to FFh.
  107883. --------M-330000-----------------------------
  107884. INT 33 - MS MOUSE - RESET DRIVER AND READ STATUS
  107885. AX = 0000h
  107886. Return: AX = status
  107887. 0000h hardware/driver not installed
  107888. FFFFh hardware/driver installed
  107889. BX = number of buttons
  107890. 0000h other than two
  107891. 0002h two buttons (many drivers)
  107892. 0003h Mouse Systems/Logitech three-button mouse
  107893. FFFFh two buttons
  107894. Notes: to use mouse on a Hercules-compatible monographics card in graphics
  107895. mode, you must first set 0040h:0049h to 6 for page 0 or 5 for page 1,
  107896. and then call this function. Logitech drivers v5.01 and v6.00
  107897. reportedly do not correctly use Hercules graphics in dual-monitor
  107898. systems, while version 4.10 does.
  107899. the Logitech mouse driver contains the signature string "LOGITECH"
  107900. three bytes past the interrupt handler; many of the Logitech mouse
  107901. utilities check for this signature.
  107902. Logitech MouseWare v6.30 reportedly does not support CGA video modes
  107903. if no CGA is present when it is started and the video board is
  107904. later switched into CGA emulation
  107905. SeeAlso: AX=0011h,AX=0021h,AX=002Fh,INT 62/AX=007Ah,INT 74
  107906. --------M-330001-----------------------------
  107907. INT 33 - MS MOUSE v1.0+ - SHOW MOUSE CURSOR
  107908. AX = 0001h
  107909. SeeAlso: AX=0002h,INT 16/AX=FFFEh,INT 62/AX=007Bh,INT 6F/AH=06h"F_TRACK_ON"
  107910. --------M-330002-----------------------------
  107911. INT 33 - MS MOUSE v1.0+ - HIDE MOUSE CURSOR
  107912. AX = 0002h
  107913. Note: multiple calls to hide the cursor will require multiple calls to
  107914. function 01h to unhide it.
  107915. SeeAlso: AX=0001h,AX=0010h,INT 16/AX=FFFFh,INT 62/AX=007Bh
  107916. SeeAlso: INT 6F/AH=08h"F_TRACK_OFF"
  107917. --------M-330003-----------------------------
  107918. INT 33 - MS MOUSE v1.0+ - RETURN POSITION AND BUTTON STATUS
  107919. AX = 0003h
  107920. Return: BX = button status (see #03168)
  107921. CX = column
  107922. DX = row
  107923. Note: in text modes, all coordinates are specified as multiples of the cell
  107924. size, typically 8x8 pixels
  107925. SeeAlso: AX=0004h,AX=000Bh,INT 2F/AX=D000h"ZWmous"
  107926. Bitfields for mouse button status:
  107927. Bit(s) Description (Table 03168)
  107928. 0 left button pressed if 1
  107929. 1 right button pressed if 1
  107930. 2 middle button pressed if 1 (Mouse Systems/Logitech/Genius)
  107931. --------M-330004-----------------------------
  107932. INT 33 - MS MOUSE v1.0+ - POSITION MOUSE CURSOR
  107933. AX = 0004h
  107934. CX = column
  107935. DX = row
  107936. Note: the row and column are truncated to the next lower multiple of the cell
  107937. size (typically 8x8 in text modes); however, some versions of the
  107938. Microsoft documentation incorrectly state that the coordinates are
  107939. rounded
  107940. SeeAlso: AX=0003h,INT 62/AX=0081h,INT 6F/AH=10h"F_PUT_SPRITE"
  107941. --------M-330005-----------------------------
  107942. INT 33 - MS MOUSE v1.0+ - RETURN BUTTON PRESS DATA
  107943. AX = 0005h
  107944. BX = button number (see #03169)
  107945. Return: AX = button states (see #03168)
  107946. BX = number of times specified button has been pressed since last call
  107947. CX = column at time specified button was last pressed
  107948. DX = row at time specified button was last pressed
  107949. Note: at least for the Genius mouse driver, the number of button presses
  107950. returned is limited to 7FFFh
  107951. SeeAlso: AX=0006h,INT 62/AX=007Ch
  107952. (Table 03169)
  107953. Values for mouse button number:
  107954. 0000h left
  107955. 0001h right
  107956. 0002h middle (Mouse Systems/Logitech/Genius mouse)
  107957. --------M-330006-----------------------------
  107958. INT 33 - MS MOUSE v1.0+ - RETURN BUTTON RELEASE DATA
  107959. AX = 0006h
  107960. BX = button number (see #03169)
  107961. Return: AX = button states (see #03168)
  107962. BX = number of times specified button has been released since last call
  107963. CX = column at time specified button was last released
  107964. DX = row at time specified button was last released
  107965. Note: at least for the Genius mouse driver, the number of button releases
  107966. returned is limited to 7FFFh
  107967. SeeAlso: AX=0005h,INT 62/AX=007Ch
  107968. --------M-330007-----------------------------
  107969. INT 33 - MS MOUSE v1.0+ - DEFINE HORIZONTAL CURSOR RANGE
  107970. AX = 0007h
  107971. CX = minimum column
  107972. DX = maximum column
  107973. Note: in text modes, the minimum and maximum columns are truncated to the
  107974. next lower multiple of the cell size, typically 8x8 pixels
  107975. SeeAlso: AX=0008h,AX=0010h,AX=0031h,INT 62/AX=0080h
  107976. SeeAlso: INT 6F/AH=0Ch"F_SET_LIMITS_X"
  107977. --------M-330008-----------------------------
  107978. INT 33 - MS MOUSE v1.0+ - DEFINE VERTICAL CURSOR RANGE
  107979. AX = 0008h
  107980. CX = minimum row
  107981. DX = maximum row
  107982. Note: in text modes, the minimum and maximum rows are truncated to the
  107983. next lower multiple of the cell size, typically 8x8 pixels
  107984. SeeAlso: AX=0007h,AX=0010h,AX=0031h,INT 62/AX=0080h
  107985. SeeAlso: INT 6F/AH=0Eh"F_SET_LIMITS_Y"
  107986. --------M-330009-----------------------------
  107987. INT 33 - MS MOUSE v3.0+ - DEFINE GRAPHICS CURSOR
  107988. AX = 0009h
  107989. BX = column of cursor hot spot in bitmap (-16 to 16)
  107990. CX = row of cursor hot spot (-16 to 16)
  107991. ES:DX -> mask bitmap (see #03170)
  107992. Notes: in graphics modes, the screen contents around the current mouse cursor
  107993. position are ANDed with the screen mask and then XORed with the
  107994. cursor mask
  107995. the Microsoft mouse driver v7.04 and v8.20 uses only BL and CL, so the
  107996. hot spot row/column should be limited to -128..127
  107997. Microsoft KnowledgeBase article Q19850 states that the high bit is
  107998. right-most, but that statement is contradicted by all other available
  107999. documentation
  108000. SeeAlso: AX=000Ah,AX=0012h,AX=002Ah,INT 62/AX=007Fh,INT 6F/AH=0Ah"F_DEF_MASKS"
  108001. Format of mouse mask bitmap:
  108002. Offset Size Description (Table 03170)
  108003. 00h 16 WORDs screen mask
  108004. 10h 16 WORDs cursor mask
  108005. Note: each word defines the sixteen pixels of a row, low bit rightmost
  108006. --------M-33000A-----------------------------
  108007. INT 33 - MS MOUSE v3.0+ - DEFINE TEXT CURSOR
  108008. AX = 000Ah
  108009. BX = hardware/software text cursor
  108010. 0000h software
  108011. CX = screen mask
  108012. DX = cursor mask
  108013. 0001h hardware
  108014. CX = start scan line
  108015. DX = end scan line
  108016. Note: when the software cursor is selected, the character/attribute data at
  108017. the current screen position is ANDed with the screen mask and then
  108018. XORed with the cursor mask
  108019. SeeAlso: AX=0009h,INT 62/AX=007Eh
  108020. --------M-33000B-----------------------------
  108021. INT 33 - MS MOUSE v1.0+ - READ MOTION COUNTERS
  108022. AX = 000Bh
  108023. Return: CX = number of mickeys mouse moved horizontally since last call
  108024. DX = number of mickeys mouse moved vertically
  108025. Notes: a mickey is the smallest increment the mouse can sense
  108026. positive values indicate down/right
  108027. SeeAlso: AX=0003h,AX=001Bh,AX=0027h
  108028. --------M-33000C-----------------------------
  108029. INT 33 - MS MOUSE v1.0+ - DEFINE INTERRUPT SUBROUTINE PARAMETERS
  108030. AX = 000Ch
  108031. CX = call mask (see #03171)
  108032. ES:DX -> FAR routine (see #03172)
  108033. SeeAlso: AX=0018h
  108034. Bitfields for mouse call mask:
  108035. Bit(s) Description (Table 03171)
  108036. 0 call if mouse moves
  108037. 1 call if left button pressed
  108038. 2 call if left button released
  108039. 3 call if right button pressed
  108040. 4 call if right button released
  108041. 5 call if middle button pressed (Mouse Systems/Logitech/Genius mouse)
  108042. 6 call if middle button released (Mouse Systems/Logitech/Genius mouse)
  108043. 7-15 unused
  108044. Note: some versions of the Microsoft documentation incorrectly state that CX
  108045. bit 0 means call if mouse cursor moves
  108046. (Table 03172)
  108047. Values interrupt routine is called with:
  108048. AX = condition mask (same bit assignments as call mask)
  108049. BX = button state
  108050. CX = cursor column
  108051. DX = cursor row
  108052. SI = horizontal mickey count
  108053. DI = vertical mickey count
  108054. Notes: some versions of the Microsoft documentation erroneously swap the
  108055. meanings of SI and DI
  108056. in text modes, the row and column will be reported as a multiple of
  108057. the character cell size, typically 8x8 pixels
  108058. --------M-33000D-----------------------------
  108059. INT 33 - MS MOUSE v1.0+ - LIGHT PEN EMULATION ON
  108060. AX = 000Dh
  108061. SeeAlso: AX=000Eh,INT 10/AH=04h
  108062. --------M-33000E-----------------------------
  108063. INT 33 - MS MOUSE v1.0+ - LIGHT PEN EMULATION OFF
  108064. AX = 000Eh
  108065. SeeAlso: AX=000Dh
  108066. --------M-33000F-----------------------------
  108067. INT 33 - MS MOUSE v1.0+ - DEFINE MICKEY/PIXEL RATIO
  108068. AX = 000Fh
  108069. CX = number of mickeys per 8 pixels horizontally (default 8)
  108070. DX = number of mickeys per 8 pixels vertically (default 16)
  108071. SeeAlso: AX=0013h,AX=001Ah,INT 62/AX=0082h
  108072. --------M-330010-----------------------------
  108073. INT 33 - MS MOUSE v1.0+ - DEFINE SCREEN REGION FOR UPDATING
  108074. AX = 0010h
  108075. CX,DX = X,Y coordinates of upper left corner
  108076. SI,DI = X,Y coordinates of lower right corner
  108077. Note: mouse cursor is hidden in the specified region, and needs to be
  108078. explicitly turned on again
  108079. SeeAlso: AX=0001h,AX=0002h,AX=0007h,AX=0010h"Genius MOUSE",AX=0031h
  108080. --------M-330010-----------------------------
  108081. INT 33 - Genius MOUSE - DEFINE SCREEN REGION FOR UPDATING
  108082. AX = 0010h
  108083. ES:DX -> update region list (see #03173)
  108084. Notes: mouse cursor is hidden in the specified region, and needs to be
  108085. explicitly turned on again
  108086. this version of the call is described in an August 1988 version of the
  108087. Genius Mouse programmer's reference; it has been changed to conform
  108088. to the Microsoft version shown above by version 9.06 (and possibly
  108089. earlier versions)
  108090. SeeAlso: AX=0001h,AX=0002h,AX=0007h,AX=0010h"MS MOUSE"
  108091. Format of Genius Mouse update region list:
  108092. Offset Size Description (Table 03173)
  108093. 00h WORD left-most column
  108094. 02h WORD top-most row
  108095. 04h WORD right-most column
  108096. 06h WORD bottom-most row
  108097. --------M-330011-----------------------------
  108098. INT 33 - Genius Mouse 9.06 - GET NUMBER OF BUTTONS
  108099. AX = 0011h
  108100. Return: AX = FFFFh
  108101. BX = number of buttons
  108102. SeeAlso: AX=0000h
  108103. --------M-330012-----------------------------
  108104. INT 33 - MS MOUSE - SET LARGE GRAPHICS CURSOR BLOCK
  108105. AX = 0012h
  108106. BH = cursor width in words
  108107. CH = rows in cursor
  108108. BL = horizontal hot spot (-16 to 16)
  108109. CL = vertical hot spot (-16 to 16)
  108110. ES:DX -> bit map of screen and cursor maps
  108111. Return: AX = FFFFh if successful
  108112. SeeAlso: AX=0009h,AX=002Ah,AX=0035h
  108113. --------M-330013-----------------------------
  108114. INT 33 - MS MOUSE v5.0+ - DEFINE DOUBLE-SPEED THRESHOLD
  108115. AX = 0013h
  108116. DX = threshold speed in mickeys/second, 0000h = default of 64/second
  108117. Note: if speed exceeds threshold, the cursor's on-screen motion is doubled
  108118. SeeAlso: AX=000Fh,AX=001Bh,AX=002Ch
  108119. --------M-330014-----------------------------
  108120. INT 33 - MS MOUSE v3.0+ - EXCHANGE INTERRUPT SUBROUTINES
  108121. AX = 0014h
  108122. CX = call mask (see #03171)
  108123. ES:DX -> FAR routine
  108124. Return: CX = call mask of previous interrupt routine
  108125. ES:DX = FAR address of previous interrupt routine
  108126. SeeAlso: AX=000Ch,AX=0018h
  108127. --------M-330015-----------------------------
  108128. INT 33 - MS MOUSE v6.0+ - RETURN DRIVER STORAGE REQUIREMENTS
  108129. AX = 0015h
  108130. Return: BX = size of buffer needed to store driver state
  108131. SeeAlso: AX=0016h,AX=0017h,AX=0042h
  108132. --------M-330016-----------------------------
  108133. INT 33 - MS MOUSE v6.0+ - SAVE DRIVER STATE
  108134. AX = 0016h
  108135. BX = size of buffer (see AX=0015h)
  108136. ES:DX -> buffer for driver state
  108137. Note: although not documented (since the Microsoft driver does not use it),
  108138. many drivers appear to require BX on input
  108139. SeeAlso: AX=0015h,AX=0017h
  108140. --------M-330017-----------------------------
  108141. INT 33 - MS MOUSE v6.0+ - RESTORE DRIVER STATE
  108142. AX = 0017h
  108143. BX = size of buffer (see AX=0015h)
  108144. ES:DX -> buffer containing saved state
  108145. Notes: although not documented (since the Microsoft driver does not use it),
  108146. many drivers appear to require BX on input
  108147. some mouse drivers range-check the values in the saved state based on
  108148. the current video mode; thus, the video mode should be restored
  108149. before the mouse driver's state is restored
  108150. SeeAlso: AX=0015h,AX=0016h
  108151. --------M-330018-----------------------------
  108152. INT 33 - MS MOUSE v6.0+ - SET ALTERNATE MOUSE USER HANDLER
  108153. AX = 0018h
  108154. CX = call mask (see #03174)
  108155. ES:DX -> FAR routine to be invoked on mouse events (see #03175)
  108156. Return: AX = status
  108157. 0018h if successful
  108158. FFFFh on error
  108159. Notes: up to three handlers can be defined by separate calls to this function,
  108160. each with a different combination of shift states in the call mask;
  108161. calling this function again with a call mask of 0000h undefines the
  108162. specified handler (official documentation); specifying the same
  108163. call mask and an address of 0000h:0000h undefines the handler (real
  108164. life)
  108165. some versions of the documentation erroneously reverse the order of
  108166. the bits in the call mask
  108167. SeeAlso: AX=000Ch,AX=0014h,AX=0019h
  108168. Bitfields for mouse call mask:
  108169. Bit(s) Description (Table 03174)
  108170. 0 call if mouse moves
  108171. 1 call if left button pressed
  108172. 2 call if left button released
  108173. 3 call if right button pressed
  108174. 4 call if right button released
  108175. 5 call if shift button pressed during event
  108176. 6 call if ctrl key pressed during event
  108177. 7 call if alt key pressed during event
  108178. Note: at least one of 5-7 must be set
  108179. (Table 03175)
  108180. Values user handler is called with:
  108181. AX = condition mask (same bit assignments as call mask)
  108182. BX = button state
  108183. CX = cursor column
  108184. DX = cursor row
  108185. SI = horizontal mickey count
  108186. DI = vertical mickey count
  108187. Return: registers preserved
  108188. Note: in text modes, the row and column will be reported as a multiple of
  108189. the cell size, typically 8x8 pixels
  108190. --------M-330019-----------------------------
  108191. INT 33 - MS MOUSE v6.0+ - RETURN USER ALTERNATE INTERRUPT VECTOR
  108192. AX = 0019h
  108193. CX = call mask (see #03174)
  108194. Return: BX:DX = user interrupt vector
  108195. CX = call mask (0000h if not found)
  108196. Note: attempts to find a user event handler (defined by function 18h)
  108197. whose call mask matches CX
  108198. SeeAlso: AX=0018h
  108199. --------M-33001A-----------------------------
  108200. INT 33 - MS MOUSE v6.0+ - SET MOUSE SENSITIVITY
  108201. AX = 001Ah
  108202. BX = horizontal speed \
  108203. CX = vertical speed / (see AX=000Fh)
  108204. DX = double speed threshold (see AX=0013h)
  108205. SeeAlso: AX=0013h,AX=001Bh,INT 62/AX=0082h
  108206. --------M-33001B-----------------------------
  108207. INT 33 - MS MOUSE v6.0+ - RETURN MOUSE SENSITIVITY
  108208. AX = 001Bh
  108209. Return: BX = horizontal speed
  108210. CX = vertical speed
  108211. DX = double speed threshold
  108212. SeeAlso: AX=000Bh,AX=001Ah
  108213. --------M-33001C-----------------------------
  108214. INT 33 - MS MOUSE v6.0+ - SET INTERRUPT RATE
  108215. AX = 001Ch
  108216. BX = rate (see #03176)
  108217. Notes: only available on InPort mouse
  108218. values greater than 4 may cause unpredictable driver behavior
  108219. (Table 03176)
  108220. Values for mouse interrupt rate:
  108221. 00h no interrupts allowed
  108222. 01h 30 per second
  108223. 02h 50 per second
  108224. 03h 100 per second
  108225. 04h 200 per second
  108226. --------M-33001D-----------------------------
  108227. INT 33 - MS MOUSE v6.0+ - DEFINE DISPLAY PAGE NUMBER
  108228. AX = 001Dh
  108229. BX = display page number
  108230. Note: the cursor will be displayed on the specified page
  108231. SeeAlso: AX=001Eh
  108232. --------M-33001E-----------------------------
  108233. INT 33 - MS MOUSE v6.0+ - RETURN DISPLAY PAGE NUMBER
  108234. AX = 001Eh
  108235. Return: BX = display page number
  108236. SeeAlso: AX=001Dh
  108237. --------M-33001F-----------------------------
  108238. INT 33 - MS MOUSE v6.0+ - DISABLE MOUSE DRIVER
  108239. AX = 001Fh
  108240. Return: AX = status
  108241. 001Fh successful
  108242. ES:BX = INT 33 vector before mouse driver was first installed
  108243. FFFFh unsuccessful
  108244. Notes: restores vectors for INT 10 and INT 71 (8086) or INT 74 (286/386)
  108245. if you restore INT 33 to ES:BX, driver will be completely disabled
  108246. many drivers return AX=001Fh even though the driver has been disabled
  108247. SeeAlso: AX=0020h
  108248. --------M-330020-----------------------------
  108249. INT 33 - MS MOUSE v6.0+ - ENABLE MOUSE DRIVER
  108250. AX = 0020h
  108251. Return: AX = status
  108252. 0020h successful
  108253. FFFFh unsuccessful
  108254. Notes: restores vectors for INT 10h and INT 71h (8086) or INT 74h (286/386)
  108255. which were removed by function 1Fh
  108256. Microsoft's documentation states that no value is returned
  108257. SeeAlso: AX=001Fh
  108258. --------M-330021-----------------------------
  108259. INT 33 - MS MOUSE v6.0+ - SOFTWARE RESET
  108260. AX = 0021h
  108261. Return: AX = status
  108262. FFFFh if mouse driver installed
  108263. BX = number of buttons (FFFFh = two buttons)
  108264. 0021h if mouse driver not installed
  108265. Note: this call is identical to funtion 00h, but does not reset the mouse
  108266. SeeAlso: AX=0000h
  108267. --------M-330022-----------------------------
  108268. INT 33 - MS MOUSE v6.0+ - SET LANGUAGE FOR MESSAGES
  108269. AX = 0022h
  108270. BX = language (see #03177)
  108271. Note: only available on international versions of the driver; US versions
  108272. ignore this call
  108273. SeeAlso: AX=0023h
  108274. (Table 03177)
  108275. Values for mouse driver language:
  108276. 00h English
  108277. 01h French
  108278. 02h Dutch
  108279. 03h German
  108280. 04h Swedish
  108281. 05h Finnish
  108282. 06h Spanish
  108283. 07h Portugese
  108284. 08h Italian
  108285. --------M-330023-----------------------------
  108286. INT 33 - MS MOUSE v6.0+ - GET LANGUAGE FOR MESSAGES
  108287. AX = 0023h
  108288. Return: BX = language (see #03177)
  108289. Note: the US version of the driver always returns zero
  108290. SeeAlso: AX=0022h
  108291. --------M-330024-----------------------------
  108292. INT 33 - MS MOUSE v6.26+ - GET SOFTWARE VERSION, MOUSE TYPE, AND IRQ NUMBER
  108293. AX = 0024h
  108294. Return: AX = FFFFh on error
  108295. otherwise,
  108296. BH = major version
  108297. BL = minor version
  108298. CH = type (1=bus, 2=serial, 3=InPort, 4=PS/2, 5=HP)
  108299. CL = interrupt (0=PS/2, 2=IRQ2, 3=IRQ3,...,7=IRQ7,...,0Fh=IRQ15)
  108300. SeeAlso: AX=004Dh,AX=006Dh
  108301. --------M-330025-----------------------------
  108302. INT 33 - MS MOUSE v6.26+ - GET GENERAL DRIVER INFORMATION
  108303. AX = 0025h
  108304. Return: AX = general information (see #03178)
  108305. BX = cursor lock flag for OS/2 to prevent reentrancy problems
  108306. CX = mouse code active flag (for OS/2)
  108307. DX = mouse driver busy flag (for OS/2)
  108308. Bitfields for general mouse driver information:
  108309. Bit(s) Description (Table 03178)
  108310. 15 driver loaded as device driver rather than TSR
  108311. 14 driver is newer integrated type
  108312. 13,12 current cursor type
  108313. 00 software text cursor
  108314. 01 hardware text cursor (CRT Controller's cursor)
  108315. 1X graphics cursor
  108316. 11-8 interrupt rate (see #03176)
  108317. 7-0 count of currently-active Mouse Display Drivers (MDD), the newer
  108318. integrated driver type
  108319. --------M-330026-----------------------------
  108320. INT 33 - MS MOUSE v6.26+ - GET MAXIMUM VIRTUAL COORDINATES
  108321. AX = 0026h
  108322. Return: BX = mouse-disabled flag (0000h mouse enabled, nonzero disabled)
  108323. CX = maximum virtual X (for current video mode)
  108324. DX = maximum virtual Y
  108325. Note: for driver versions before 7.05, this call returns the currently-set
  108326. maximum coordinates; v7.05+ returns the absolute maximum coordinates
  108327. SeeAlso: AX=0031h
  108328. --------M-330026-----------------------------
  108329. INT 33 - Genius Mouse 9.06 - ???
  108330. AX = 0026h
  108331. Return: CX = 0204h if CX was 0105h on entry, else unchanged
  108332. --------M-330027-----------------------------
  108333. INT 33 - MS MOUSE v7.01+ - GET SCREEN/CURSOR MASKS AND MICKEY COUNTS
  108334. AX = 0027h
  108335. Return: AX = screen-mask value (or hardware cursor scan-line start for v7.02+)
  108336. BX = cursor-mask value (or hardware cursor scan-line stop for v7.02+)
  108337. CX = horizontal mickeys moved since last call
  108338. DX = vertical mickeys moved since last call
  108339. SeeAlso: AX=000Bh
  108340. --------M-330028-----------------------------
  108341. INT 33 - MS MOUSE v7.0+ - SET VIDEO MODE
  108342. AX = 0028h
  108343. CX = new video mode (call is NOP if 0000h)
  108344. DH = Y font size (00h = default)
  108345. DL = X font size (00h = default)
  108346. Return: CL = status (00h = successful)
  108347. Notes: DX is ignored unless the selected video mode supports font size control
  108348. when CX=0000h, an internal flag that had been set by a previous call
  108349. is cleared; this is required before a mouse reset
  108350. SeeAlso: AX=0029h,INT 10/AH=00h
  108351. --------M-330029-----------------------------
  108352. INT 33 - MS MOUSE v7.0+ - ENUMERATE VIDEO MODES
  108353. AX = 0029h
  108354. CX = previous video mode
  108355. 0000h get first supported video mode
  108356. other get next supported mode after mode CX
  108357. Return: CX = first/next video mode (0000h = no more video modes)
  108358. DS:DX -> description of video mode or 0000h:0000h if none
  108359. Notes: the enumerated video modes may be in any order and may repeat
  108360. the description string (if available) is terminated by '$' followed by
  108361. a NUL byte
  108362. SeeAlso: AX=0028h
  108363. --------M-33002A-----------------------------
  108364. INT 33 - MS MOUSE v7.02+ - GET CURSOR HOT SPOT
  108365. AX = 002Ah
  108366. Return: AX = internal counter controlling cursor visibility
  108367. BX = cursor hot spot column
  108368. CX = cursor hot spot row
  108369. DX = mouse type (see #03179)
  108370. Note: the hot spot location is relative to the upper left corner of the
  108371. cursor block and may range from -128 to +127 both horizontally and
  108372. vertically
  108373. SeeAlso: AX=0009h,AX=0012h,AX=0035h
  108374. (Table 03179)
  108375. Values for mouse type:
  108376. 00h none
  108377. 01h bus
  108378. 02h serial
  108379. 03h InPort
  108380. 04h IBM
  108381. 05h Hewlett-Packard
  108382. --------M-33002B-----------------------------
  108383. INT 33 - MS MOUSE v7.0+ - LOAD ACCELERATION PROFILES
  108384. AX = 002Bh
  108385. BX = active acceleration profile
  108386. 0001h-0004h or FFFFh to restore default curves
  108387. ES:SI -> buffer containing acceleration profile data (see #03180)
  108388. Return: AX = success flag
  108389. SeeAlso: AX=002Ch,AX=002Dh,AX=0033h
  108390. Format of acceleration profile data:
  108391. Offset Size Description (Table 03180)
  108392. 00h BYTE length of acceleration profile 1
  108393. 01h BYTE length of acceleration profile 2
  108394. 02h BYTE length of acceleration profile 3
  108395. 03h BYTE length of acceleration profile 4
  108396. 04h 32 BYTEs threshold speeds for acceleration profile 1
  108397. 24h 32 BYTEs threshold speeds for acceleration profile 2
  108398. 44h 32 BYTEs threshold speeds for acceleration profile 3
  108399. 64h 32 BYTEs threshold speeds for acceleration profile 4
  108400. 84h 32 BYTEs speedup factor for acceleration profile 1
  108401. (10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
  108402. A4h 32 BYTEs speedup factor for acceleration profile 2
  108403. (10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
  108404. C4h 32 BYTEs speedup factor for acceleration profile 3
  108405. (10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
  108406. E4h 32 BYTEs speedup factor for acceleration profile 4
  108407. (10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
  108408. 104h 16 BYTEs name of acceleration profile 1 (blank-padded)
  108409. 114h 16 BYTEs name of acceleration profile 2 (blank-padded)
  108410. 124h 16 BYTEs name of acceleration profile 3 (blank-padded)
  108411. 134h 16 BYTEs name of acceleration profile 4 (blank-padded)
  108412. Note: unused bytes in the threshold speed fields are filled with 7Fh and
  108413. unused bytes in the speedup factor fields are filled with 10h
  108414. --------M-33002C-----------------------------
  108415. INT 33 - MS MOUSE v7.0+ - GET ACCELERATION PROFILES
  108416. AX = 002Ch
  108417. Return: AX = status (0000h success)
  108418. BX = currently-active acceleration profile
  108419. ES:SI -> acceleration profile data (see #03180)
  108420. SeeAlso: AX=002Bh,AX=002Dh,AX=0033h
  108421. --------M-33002D-----------------------------
  108422. INT 33 - MS MOUSE v7.0+ - SELECT ACCELERATION PROFILE
  108423. AX = 002Dh
  108424. BX = acceleration level
  108425. 0001h-0004h to set profile, or FFFFh to get current profile
  108426. Return: AX = status
  108427. 0000h successful
  108428. ES:SI -> 16-byte blank-padded name of acceleration profile
  108429. FFFEh invalid acceleration curve number
  108430. ES:SI destroyed
  108431. BX = active acceleration curve number
  108432. SeeAlso: AX=0013h,AX=002Bh,AX=002Ch,AX=002Eh
  108433. --------M-33002E-----------------------------
  108434. INT 33 - MS MOUSE v8.10+ - SET ACCELERATION PROFILE NAMES
  108435. AX = 002Eh
  108436. BL = flag (if nonzero, fill ES:SI buffer with default names on return)
  108437. ES:SI -> 64-byte buffer containing profile names (16 bytes per name)
  108438. Return: AX = status (0000h success)
  108439. FFFEh error for ATI Mouse driver
  108440. ES:SI buffer filled with default names if BL nonzero on entry
  108441. Notes: not supported by Logitech driver v6.10
  108442. supported by ATI Mouse driver v7.04
  108443. SeeAlso: AX=002Ch,AX=002Dh,AX=012Eh,AX=022Eh
  108444. --------M-33002F-----------------------------
  108445. INT 33 - MS MOUSE v7.02+ - MOUSE HARDWARE RESET
  108446. AX = 002Fh
  108447. Return: AX = status
  108448. Note: invoked by mouse driver v8.20 on being called with INT 2F/AX=530Bh
  108449. SeeAlso: INT 2F/AH=53h
  108450. --------M-330030-----------------------------
  108451. INT 33 - MS MOUSE v7.04+ - GET/SET BallPoint INFORMATION
  108452. AX = 0030h
  108453. CX = command
  108454. 0000h get status of BallPoint device
  108455. other set rotation angle and masks
  108456. BX = rotation angle (-32768 to 32767 degrees)
  108457. CH = primary button mask
  108458. CL = secondary button mask
  108459. Return: AX = button status (FFFFh if no BallPoint) (see #03181)
  108460. BX = rotation angle (0-360 degrees)
  108461. CH = primary button mask
  108462. CL = secondary button mask
  108463. Note: not supported by the ATI Mouse driver which calls itself v7.04
  108464. Bitfields for BallPoint mouse button status:
  108465. Bit(s) Description (Table 03181)
  108466. 5 button 1
  108467. 4 button 2
  108468. 3 button 3
  108469. 2 button 4
  108470. other zero
  108471. --------M-330031-----------------------------
  108472. INT 33 - MS MOUSE v7.05+ - GET CURRENT MINIMUM/MAXIMUM VIRTUAL COORDINATES
  108473. AX = 0031h
  108474. Return: AX = virtual X minimum
  108475. BX = virtual Y minimum
  108476. CX = virtual X maximum
  108477. DX = virtual Y maximum
  108478. Note: the minimum and maximum values are those set by AX=0007h and AX=0008h;
  108479. the default is minimum = 0 and maximum = absolute maximum
  108480. (see AX=0026h)
  108481. SeeAlso: AX=0007h,AX=0008h,AX=0010h,AX=0026h
  108482. --------M-330032-----------------------------
  108483. INT 33 - MS MOUSE v7.05+ - GET ACTIVE ADVANCED FUNCTIONS
  108484. AX = 0032h
  108485. Return: AX = active function flags (FFFFh for v8.10)
  108486. bit 15: function 0025h supported
  108487. bit 14: function 0026h supported
  108488. ...
  108489. bit 0: function 0034h supported
  108490. BX = ??? (0000h) officially unused
  108491. CX = ??? (E000h) officially unused
  108492. DX = ??? (0000h) officially unused
  108493. Note: the Italian version of MS MOUSE v8.20 reportedly indicates that
  108494. functions 0033h and 0034h are not supported even though they are
  108495. --------M-330033-----------------------------
  108496. INT 33 - MS MOUSE v7.05+ - GET SWITCH SETTINGS AND ACCELERATION PROFILE DATA
  108497. AX = 0033h
  108498. CX = size of buffer
  108499. 0000h get required buffer size
  108500. Return: AX = 0000h
  108501. CX = required size (0154h for Logitech v6.10, 0159h
  108502. for MS v8.10-8.20)
  108503. other
  108504. ES:DX -> buffer of CX bytes for mouse settings
  108505. Return: AX = 0000h
  108506. CX = number of bytes returned
  108507. ES:DX buffer filled (see #03182)
  108508. SeeAlso: AX=002Bh
  108509. Format of mouse settings data buffer:
  108510. Offset Size Description (Table 03182)
  108511. 00h BYTE mouse type
  108512. 01h BYTE current language
  108513. 02h BYTE horizontal sensitivity (00h-64h)
  108514. 03h BYTE vertical sensitivity (00h-64h)
  108515. 04h BYTE double-speed threshold (00h-64h)
  108516. 05h BYTE ballistic curve (01h-04h)
  108517. 06h BYTE interrupt rate (01h-04h)
  108518. 07h BYTE cursor override mask
  108519. 08h BYTE laptop adjustment
  108520. 09h BYTE memory type (00h-02h)
  108521. 0Ah BYTE SuperVGA support (00h,01h)
  108522. 0Bh BYTE rotation angle
  108523. 0Ch BYTE ???
  108524. 0Dh BYTE primary button (01h-04h)
  108525. 0Eh BYTE secondary button (01h-04h)
  108526. 0Fh BYTE click lock enabled (00h,01h)
  108527. 10h 324 BYTEs acceleration profile data (see #03180)
  108528. 154h 5 BYTEs ??? (Microsoft driver, but not Logitech)
  108529. --------M-330034-----------------------------
  108530. INT 33 - MS MOUSE v8.0+ - GET INITIALIZATION FILE
  108531. AX = 0034h
  108532. Return: AX = status (0000h successful)
  108533. ES:DX -> ASCIZ initialization (.INI) file name
  108534. --------M-330035-----------------------------
  108535. INT 33 - MS MOUSE v8.10+ - LCD SCREEN LARGE POINTER SUPPORT
  108536. AX = 0035h
  108537. BX = function
  108538. FFFFh get current settings
  108539. Return: AX = 0000h
  108540. BH = style (see #03183)
  108541. BL = size (see #03184)
  108542. CH = threshold (00h-64h)
  108543. CL = active flag (00h disabled, 01h enabled)
  108544. DX = delay
  108545. other
  108546. BH = pointer style (see #03183)
  108547. BL = size (see #03184)
  108548. CH = threshold (00h-64h)
  108549. CL = active flag (00h disable size change, 01h enable)
  108550. DX = delay (0000h-0064h)
  108551. Return: AX = 0000h
  108552. Note: not supported by Logitech driver v6.10
  108553. SeeAlso: AX=0012h,AX=002Ah
  108554. (Table 03183)
  108555. Values for pointer style:
  108556. 00h normal
  108557. 01h reverse
  108558. 02h transparent
  108559. SeeAlso: #03184
  108560. (Table 03184)
  108561. Values for pointer size:
  108562. 00h small ("1")
  108563. 01h medium ("1.5")
  108564. 02h large ("2")
  108565. SeeAlso: #03183
  108566. --------M-330042-----------------------------
  108567. INT 33 - PCMOUSE - GET MSMOUSE STORAGE REQUIREMENTS
  108568. AX = 0042h
  108569. Return: AX = status
  108570. 0000h MSMOUSE not installed
  108571. 0042h functions 42h, 50h, and 52h not supported
  108572. FFFFh successful
  108573. BX = buffer size in bytes for functions 50h and 52h
  108574. Note: this function is also supported by the Genius Mouse 9.06 driver
  108575. SeeAlso: AX=0015h,AX=0050h,AX=0052h
  108576. --------M-330043-----------------------------
  108577. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - CONFIGURE MOUSE???
  108578. AX = 0043h
  108579. CX:BX -> configuration buffer (see #03185)
  108580. DL = ???
  108581. Return: ???
  108582. Notes: also calls routines for INT 33/AX=0053h and INT 33/AX=004Fh
  108583. this function is also supported by the Genius Mouse 9.06 driver
  108584. Format of Mouse Systems configuration buffer:
  108585. Offset Size Description (Table 03185)
  108586. 00h WORD I/O port address
  108587. 02h BYTE ???
  108588. 03h BYTE interrupt number
  108589. 04h BYTE interrupt mask for interrupt controller
  108590. 05h 5 BYTEs ???
  108591. --------M-330044CXCDEF-----------------------
  108592. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - TOGGLE IGNORE ACCELERATION CMDS
  108593. AX = 0044h
  108594. CX = CDEFh
  108595. Return: AX = new state of "Ignore Application Acceleration Commands" flag
  108596. Note: this function is also supported by the Genius Mouse 9.06 driver
  108597. SeeAlso: AX=0045h
  108598. --------M-330045CXCDEF-----------------------
  108599. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - TOGGLE RESOLUTION DOUBLING
  108600. AX = 0045h
  108601. CX = CDEFh
  108602. Return: AX = new state of resolution doubling flag
  108603. Note: this function is also supported by the Genius Mouse 9.06 driver
  108604. SeeAlso: AX=0044h
  108605. --------M-330047-----------------------------
  108606. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SET BUTTON ASSIGNMENTS
  108607. AX = 0047h
  108608. ES:BX -> button assignments (3 bytes, combinations of "L", "M", "R")
  108609. Return: ???
  108610. Note: also supported by Genius Mouse 9.06 driver
  108611. SeeAlso: AX=0067h
  108612. --------M-330048BXCDEF-----------------------
  108613. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - GET ???
  108614. AX = 0048h
  108615. BX = CDEFh
  108616. Return: CX = ???
  108617. BH = ???
  108618. BL = ??? (if 50h, driver is using PS/2 pointing device BIOS interface)
  108619. Note: also supported by Genius Mouse 9.06 driver
  108620. --------M-33004B-----------------------------
  108621. INT 33 - LCS/Telegraphics MOUSE DRIVERS - INSTALLATION CHECK / GET VERSION
  108622. AX = 004Bh
  108623. Return: ES:DI -> ASCIZ signature/description string if installed (see #03186)
  108624. (Table 03186)
  108625. Values for LCS/Telegraphics mouse driver OEM signature/description string:
  108626. "Primax Generic;Universal Mouse Driver;IMOUSE;v8.20i"
  108627. "Synaptics;TouchPad Driver;SYNTOUCH;v2.26"
  108628. "Z-NIX;BUS,AUX,Serial 3-byte and 5-byte Mouse Driver;ZMOUSE;v7.04d"
  108629. Note: the string consists of OEM, driver description, driver name, and
  108630. version number
  108631. --------M-33004CBXCDEF-----------------------
  108632. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SET ??? FLAG
  108633. AX = 004Ch
  108634. BX = CDEFh
  108635. Note: also supported by Genius Mouse 9.06
  108636. SeeAlso: AX=006Ch
  108637. --------M-33004D-----------------------------
  108638. INT 33 - MS MOUSE - RETURN POINTER TO COPYRIGHT STRING
  108639. AX = 004Dh
  108640. Return: ES:DI -> copyright message "*** This is Copyright 1983 Microsoft" or
  108641. "Copyright 19XX...."
  108642. Notes: also supported by Logitech, Kraft, Genius Mouse, and Mouse Systems
  108643. mouse drivers
  108644. in the Genius Mouse 9.06 driver, the ASCIZ signature "KYE" immediately
  108645. follows the above copyright message (KYE Corp. manufactures the
  108646. driver)
  108647. SeeAlso: AX=0024h,AX=006Dh,AX=0666h
  108648. --------M-33004F-----------------------------
  108649. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ENABLE MOUSE
  108650. AX = 004Fh
  108651. Return: nothing
  108652. Note: also supported by Genius Mouse 9.06
  108653. SeeAlso: AX=0043h,AX=0053h
  108654. --------M-330050-----------------------------
  108655. INT 33 - PCMOUSE - SAVE MSMOUSE STATE
  108656. AX = 0050h
  108657. BX = buffer size (ignored by some driver versions)
  108658. ES:DX -> buffer
  108659. Return: AX = FFFFh if successful
  108660. Notes: the buffer must be large enough to hold the entire state, or following
  108661. data will be overwritten by state data in versions which ignore BX;
  108662. use INT 33/AX=0042h to get the required size
  108663. this function is also supported by the Genius Mouse 9.06 driver
  108664. SeeAlso: AX=0042h,AX=0052h
  108665. --------M-330052-----------------------------
  108666. INT 33 - PCMOUSE - RESTORE MSMOUSE STATE
  108667. AX = 0052h
  108668. BX = buffer size (ignored by some driver versions)
  108669. ES:DX -> buffer
  108670. Return: AX = FFFFh if successful
  108671. Note: also supported by Genius Mouse 9.06 driver
  108672. SeeAlso: AX=0050h
  108673. --------M-330053-----------------------------
  108674. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - DISABLE MOUSE
  108675. AX = 0053h
  108676. Return: nothing
  108677. Note: also supported by Genius Mouse 9.06
  108678. SeeAlso: AX=0043h,AX=004Fh
  108679. --------M-330054CXCDEF-----------------------
  108680. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SELECT ULTRARES ACCELERATION LEVEL
  108681. AX = 0054h
  108682. CX = CDEFh
  108683. BX = new acceleration level (0-9)
  108684. Return: ???
  108685. Note: this function is also supported by the Genius Mouse 9.06 driver
  108686. SeeAlso: AX=005Ah
  108687. --------M-330055-----------------------------
  108688. INT 33 - Kraft Mouse - GET ???
  108689. AX = 0055h
  108690. Return: CX = ???
  108691. DX = ???
  108692. ES = ???
  108693. --------M-330058-----------------------------
  108694. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ???
  108695. AX = 0058h
  108696. Return: AX = CS of driver
  108697. CX:BX = original INT 33 vector
  108698. DX = ???
  108699. Note: this function is also supported by the Genius Mouse 9.06 driver
  108700. --------M-33005A-----------------------------
  108701. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SET ULTRARES ACCELERATIONS
  108702. AX = 005Ah
  108703. CX = number of WORDs to copy (max 0014h, but not range-checked)
  108704. DX:SI -> buffer containing thresholds??? (CX words)
  108705. DX:BX -> buffer containing acceleration values???
  108706. (9*14h words, only first CX of each 14h used)
  108707. ???
  108708. Return: CF clear
  108709. ???
  108710. Note: this function is also supported by Genius Mouse 9.06
  108711. SeeAlso: AX=0054h
  108712. --------M-330061BXCDEF-----------------------
  108713. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ???
  108714. AX = 0061h
  108715. BX = CDEFh
  108716. Return: CX = ???
  108717. Note: also supported by Genius Mouse 9.06
  108718. --------M-330067-----------------------------
  108719. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - GET MOUSE BUTTONS???
  108720. AX = 0067h
  108721. Return: BL = number of buttons???
  108722. Note: also supported by Genius Mouse 9.06
  108723. SeeAlso: AX=0047h
  108724. --------M-33006A-----------------------------
  108725. INT 33 U - ATI Mouse - INSTALLATION CHECK
  108726. AX = 006Ah
  108727. Return: AL = AAh
  108728. AH = ???
  108729. BH = ???
  108730. BL = ???
  108731. CL = ???
  108732. CH = ???
  108733. Program: ATI's MOUSE.COM and MOUSE.SYS are drivers for the mouse port found on
  108734. some of ATI's video adapters
  108735. SeeAlso: AX=006Dh
  108736. --------M-33006C-----------------------------
  108737. INT 33 U - TRUEDOX Mouse driver v4.01 - GET/SET HARDWARE PARAMETERS
  108738. AX = 006Ch
  108739. BX = new IRQ (0003h or 0004h), or 0000h to get current values only
  108740. CL = new IRQmask (sent to 8259)
  108741. DX = new base I/O port
  108742. Return: BX = current IRQ
  108743. DX = light pen state???
  108744. Note: this is the mouse driver for the Dell Dimension series of computers, by
  108745. TRUEDOX Technology Corporation
  108746. SeeAlso: AX=00A1h,AX=0666h
  108747. --------M-33006CBXCDEF-----------------------
  108748. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - CLEAR ??? FLAG
  108749. AX = 006Ch
  108750. BX = CDEFh
  108751. Note: also supported by Genius Mouse 9.06
  108752. SeeAlso: AX=004Ch
  108753. --------M-33006D-----------------------------
  108754. INT 33 - MS MOUSE - GET VERSION STRING
  108755. AX = 006Dh
  108756. Return: ES:DI -> Microsoft version number of resident driver (see #03187)
  108757. Notes: also supported by Logitech, Mouse Systems, Kraft, and Genius mouse
  108758. drivers
  108759. the Mouse Systems 7.01 and Genius Mouse 9.06 drivers report their
  108760. Microsoft version as 7.00 even though they do not support any of the
  108761. functions from 0025h through 002Dh supported by the MS 7.00 driver
  108762. (the Genius Mouse driver supports function 0026h, but it differs
  108763. from the Microsoft function)
  108764. the TRUEDOX 4.01 driver reports its version as 6.26 through this call,
  108765. but as 6.24 through AX=0024h
  108766. SeeAlso: AX=0024h,AX=004Dh,AX=006Ah,AX=266Ch
  108767. Format of Microsoft version number:
  108768. Offset Size Description (Table 03187)
  108769. 00h BYTE major version
  108770. 01h BYTE minor version (BCD)
  108771. --------M-330070BXABCD-----------------------
  108772. INT 33 - Mouse Systems MOUSE DRIVER - POPUP.COM - INSTALLATION CHECK
  108773. AX = 0070h
  108774. BX = ABCDh
  108775. Return: AX = ABCDh if installed
  108776. BX:CX -> data structure (see #03188)
  108777. Notes: this function is also supported by the Genius Mouse 9.06 driver
  108778. the v7.01 POPUP.COM and menu drivers also check for the signature
  108779. CDh ABh BAh DCh at offset -2Ch from the interrupt handler
  108780. if POPUP is not loaded, the returned data structure contains the proper
  108781. signature at offset 00h, but not at offset 08h
  108782. Format of Mouse Systems POPUP.COM data structure:
  108783. Offset Size Description (Table 03188)
  108784. 00h WORD signature ABCDh
  108785. 02h DWORD pointer to info structure??? (see #03189)
  108786. 06h 2 BYTEs ???
  108787. 08h WORD signature ABCDh
  108788. Format of Mouse Systems POPUP.COM info structure:
  108789. Offset Size Description (Table 03189)
  108790. 00h WORD driver version
  108791. 02h 8 BYTEs ???
  108792. 0Ah WORD segment of ???
  108793. ???
  108794. --------M-330072BXABCD-----------------------
  108795. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ???
  108796. AX = 0072h
  108797. BX = ABCDh
  108798. Return: ???
  108799. Note: this function is also supported by the Genius Mouse 9.06 driver
  108800. --------M-330073BXCDEF-----------------------
  108801. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - GET BUTTON ASSIGNMENTS
  108802. AX = 0073h
  108803. BX = CDEFh
  108804. ES:DX -> 3-byte buffer for button assignments
  108805. Return: CX = number of buttons???
  108806. ES:DX buffer filled (default is "LMR")
  108807. Note: also supported by Genius Mouse 9.06
  108808. SeeAlso: AX=0067h
  108809. --------M-3300A0-----------------------------
  108810. INT 33 U - TRUEDOX Mouse driver - SET HARDWARE PC MODE (3 button)
  108811. AX = 00A0h
  108812. Return: nothing
  108813. Note: this function is only available if the mouse mode is switchable
  108814. through the power pins
  108815. SeeAlso: AX=006Ch"TRUEDOX",AX=00A1h"TRUEDOX"
  108816. --------M-3300A1-----------------------------
  108817. INT 33 U - TRUEDOX Mouse driver - SET HARDWARE MS MODE (2 button)
  108818. AX = 00A1h
  108819. Return: nothing
  108820. Notes: this function is only available if the mouse mode is switchable
  108821. through the power pins
  108822. this is the mouse driver for the Dell Dimension series of computers, by
  108823. TRUEDOX Technology Corporation
  108824. SeeAlso: AX=006Ch"TRUEDOX",AX=00A0h"TRUEDOX",AX=00A6h,AX=0666h
  108825. --------M-3300A6-----------------------------
  108826. INT 33 U - TRUEDOX Mouse driver - SET RESOLUTION
  108827. AX = 00A6h
  108828. BX = new software resolution
  108829. 0001h 50-200 dpi
  108830. 0002h 200-400 dpi
  108831. 0003h 400-800 dpi
  108832. Note: this is the mouse driver for the Dell Dimension series of computers, by
  108833. TRUEDOX Technology Corporation
  108834. SeeAlso: AX=00A0h,AX=00A1h,AX=0666h
  108835. --------M-3300B0-----------------------------
  108836. INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
  108837. AX = 00B0h
  108838. ???
  108839. Return: ???
  108840. --------M-3300D6-----------------------------
  108841. INT 33 - Twiddler TWMOUSE - GET BUTTON/TILT STATE
  108842. AX = 00D6h
  108843. Return: AX = current button bitmap
  108844. BX = current X tilt (approximately -200..+200 = -90degrees..+90deg.)
  108845. CX = current Y tilt
  108846. Program: the Twiddler is a chording keyboard/mouse combination by Handykey
  108847. Corporation
  108848. --------M-3300F0-----------------------------
  108849. INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
  108850. AX = 00F0h
  108851. ???
  108852. Return: ???
  108853. --------M-3300F1-----------------------------
  108854. INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
  108855. AX = 00F1h
  108856. ???
  108857. Return: ???
  108858. --------M-3300F2-----------------------------
  108859. INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
  108860. AX = 00F2h
  108861. ???
  108862. Return: ???
  108863. --------M-3300F3-----------------------------
  108864. INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
  108865. AX = 00F3h
  108866. ???
  108867. Return: ???
  108868. --------M-330100CX4752-----------------------
  108869. INT 33 - GRTMOUSE v1.00+ - INSTALLATION CHECK
  108870. AX = 0100h
  108871. CX = 4752h ('GR')
  108872. DX = 544Dh ('TM')
  108873. Return: AX = 474Dh ('GM') if installed
  108874. CX = version number (CH = major, CL = minor)
  108875. Program: GRTMOUSE is a graphical-cursor driver for textmode by Tommer Leyvand
  108876. SeeAlso: AX=0101h,AX=0102h,AX=0103h,AX=0104h
  108877. --------M-330101-----------------------------
  108878. INT 33 - GRTMOUSE v1.00+ - SET MOUSE CURSOR SHAPE
  108879. AX = 0101h
  108880. DS:SI -> 16-byte cursor pattern
  108881. Return: CF clear if successful
  108882. SeeAlso: AX=0100h,AX=0102h
  108883. --------M-330102-----------------------------
  108884. INT 33 - GRTMOUSE v1.00+ - GET MOUSE CURSOR SHAPE
  108885. AX = 0102h
  108886. ES:DI -> 16-byte buffer for cursor pattern
  108887. SeeAlso: AX=0100h,AX=0101h
  108888. --------M-330103-----------------------------
  108889. INT 33 - GRTMOUSE v1.00+ - SET ACTIVE CHARACTERS
  108890. AX = 0103h
  108891. CH,CL,DH,DL = ASCII codes to be remapped to display mouse pointer
  108892. Note: the default active characters are D0h,D1h,D6h,D8h; the active
  108893. characters should be in the range C0h to DFh
  108894. SeeAlso: AX=0100h,AX=0104h
  108895. --------M-330104-----------------------------
  108896. INT 33 - GRTMOUSE v1.00+ - GET ACTIVE CHARACTERS
  108897. AX = 0104h
  108898. Return: CH,CL,DH,DL = ASCII codes for the active characters
  108899. SeeAlso: AX=0100h,AX=0103h
  108900. --------M-33012E-----------------------------
  108901. INT 33 - MS MOUSE v8.10+ - ???
  108902. AX = 012Eh
  108903. BL = ???
  108904. Return: AX = 0000h (MS)
  108905. AX = FFFFh (ATI Mouse v7.04)
  108906. Note: not supported by Logitech driver v6.10
  108907. SeeAlso: AX=002Eh,AX=022Eh
  108908. --------M-33022E-----------------------------
  108909. INT 33 - MS MOUSE v8.10+ - ???
  108910. AX = 022Eh
  108911. BL = ???
  108912. Return: AX = 0000h (MS)
  108913. AX = FFFFh (ATI Mouse v7.04)
  108914. Note: not supported by Logitech driver v6.10
  108915. SeeAlso: AX=002Eh,AX=012Eh
  108916. --------M-330666-----------------------------
  108917. INT 33 U - TRUEDOX Mouse driver v4.01 - GET COPYRIGHT STRING
  108918. AX = 0666h
  108919. Return: DX:AX -> ASCII "Copyright 1987-1992 TRUEDOX Technology Corporation"
  108920. Note: this is the mouse driver for the Dell Dimension series of computers,
  108921. by TRUEDOX Technology Corporation
  108922. SeeAlso: AX=004Dh,AX=00A6h,AX=0666h
  108923. --------M-33136C-----------------------------
  108924. INT 33 - LOGITECH MOUSE v6.10+ - ???
  108925. AX = 136Ch
  108926. BX = ???
  108927. Return: AX = ???
  108928. BX = ???
  108929. --------M-33146C-----------------------------
  108930. INT 33 - LOGITECH MOUSE v6.10+ - GET/SET ???
  108931. AX = 146Ch
  108932. BL = function
  108933. 00h set ???
  108934. BH = new value (zero/nonzero to clear/set)
  108935. else get ???
  108936. Return: ???
  108937. --------M-33156C-----------------------------
  108938. INT 33 - LOGITECH MOUSE v6.10+ - GET SIGNATURE AND VERSION STRINGS
  108939. AX = 156Ch
  108940. Return: ES:DI -> signature "LOGITECH MOUSE DRIVER"
  108941. ES:SI -> version string, terminated with CRLF
  108942. --------M-33166C-----------------------------
  108943. INT 33 - LOGITECH MOUSE v6.10+ - ???
  108944. AX = 166Ch
  108945. BL = ???
  108946. 00h ???
  108947. 01h ???
  108948. other ???
  108949. BH = new value of ???
  108950. Return: AX = FFFFh
  108951. --------M-33176C-----------------------------
  108952. INT 33 - LOGITECH MOUSE v6.10+ - ???
  108953. AX = 176Ch
  108954. ???
  108955. Return: ???
  108956. --------M-33186C-----------------------------
  108957. INT 33 - LOGITECH MOUSE v6.10+ - ???
  108958. AX = 186Ch
  108959. ???
  108960. Return: ???
  108961. --------M-33196C-----------------------------
  108962. INT 33 - LOGITECH MOUSE v6.10+ - ???
  108963. AX = 196Ch
  108964. ???
  108965. Return: ???
  108966. --------M-331A6C-----------------------------
  108967. INT 33 - LOGITECH MOUSE v6.10+ - GET ???
  108968. AX = 1A6Ch
  108969. Return: AX = FFFFh
  108970. BX = ???
  108971. CX = ???
  108972. SeeAlso: AX=1B6Ch
  108973. --------M-331B6C-----------------------------
  108974. INT 33 - LOGITECH MOUSE v6.10+ - SET ???
  108975. AX = 1B6Ch
  108976. BX = new value for ??? (0000h-0003h)
  108977. Return: AX = FFFFh
  108978. SeeAlso: AX=1A6Ch
  108979. --------M-331C6C-----------------------------
  108980. INT 33 - LOGITECH MOUSE v6.10+ - ???
  108981. AX = 1C6Ch
  108982. BX = ???
  108983. <42h ???
  108984. =42h ???
  108985. >42h ???
  108986. ES:DI -> ???
  108987. Return: AX = ???
  108988. --------M-331D6C-----------------------------
  108989. INT 33 - LOGITECH MOUSE - GET COMPASS PARAMETER
  108990. AX = 1D6Ch
  108991. Return: BX = direction (0=north, 1=south, 2=east, 3=west)
  108992. SeeAlso: AX=1E6Ch
  108993. --------M-331E6C-----------------------------
  108994. INT 33 - LOGITECH MOUSE - SET COMPASS PARAMETER
  108995. AX = 1E6Ch
  108996. BX = direction (0=north, 1=south, 2=east, 3=west)
  108997. SeeAlso: AX=1D6Ch
  108998. --------M-331F6C-----------------------------
  108999. INT 33 - LOGITECH MOUSE - GET BALLISTICS INFORMATION
  109000. AX = 1F6Ch
  109001. Return: BX = 0=off, 1=on
  109002. CX = 1=low, 2=high
  109003. SeeAlso: AX=002Ch,AX=236Ch
  109004. --------M-33206C-----------------------------
  109005. INT 33 - LOGITECH MOUSE - SET LEFT OR RIGHT PARAMETER
  109006. AX = 206Ch
  109007. BX = parameter (00h = right, FFh = left)
  109008. SeeAlso: AX=216Ch
  109009. --------M-33216C-----------------------------
  109010. INT 33 - LOGITECH MOUSE - GET LEFT OR RIGHT PARAMETER
  109011. AX = 216Ch
  109012. Return: BX = parameter (00h = right, FFh = left)
  109013. SeeAlso: AX=206Ch
  109014. --------M-33226C-----------------------------
  109015. INT 33 - LOGITECH MOUSE - REMOVE DRIVER FROM MEMORY
  109016. AX = 226Ch
  109017. Note: this only frees memory; does not restore hooked interrupts
  109018. --------M-33236C-----------------------------
  109019. INT 33 - LOGITECH MOUSE - SET BALLISTICS INFORMATION
  109020. AX = 236Ch
  109021. BX = 0=off, 1=on
  109022. CX = 1=low, 2=high
  109023. SeeAlso: AX=002Ch,AX=1F6Ch
  109024. --------M-33246C-----------------------------
  109025. INT 33 - LOGITECH MOUSE - GET PARAMETERS AND RESET SERIAL MOUSE
  109026. AX = 246Ch
  109027. ES:DX -> parameter table buffer (see #03190)
  109028. Return: AX = FFFFh if driver installed for serial mouse
  109029. SeeAlso: AX=0000h,AX=256Ch/BX=0000h,AX=256Ch/BX=0001h,AX=256Ch/BX=0003h
  109030. Format of Logitech Mouse parameter table:
  109031. Offset Size Description (Table 03190)
  109032. 00h WORD baud rate divided by 100 (serial mouse only)
  109033. 02h WORD emulation (serial mouse only)
  109034. 04h WORD report rate (serial mouse only)
  109035. 06h WORD firmware revision (serial mouse only)
  109036. 08h WORD 00h (serial mouse only)
  109037. 0Ah WORD port (serial mouse only)
  109038. 0Ch WORD physical buttons
  109039. 0Eh WORD logical buttons
  109040. --------M-33256CBX0000-----------------------
  109041. INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET BAUD RATE (SERIAL MOUSE ONLY)
  109042. AX = 256Ch
  109043. BX = 0000h
  109044. CX = rate (0=1200, 1=2400, 2=4800, 3=9600)
  109045. Return: AX = FFFFh if driver installed for serial mouse
  109046. SeeAlso: AX=246Ch,AX=256Ch/BX=0001h,AX=256Ch/BX=0002h,AX=276Ch
  109047. --------M-33256CBX0001-----------------------
  109048. INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET EMULATION (SERIAL MOUSE ONLY)
  109049. AX = 256Ch
  109050. BX = 0001h
  109051. CX = emulation type (see #03191)
  109052. Return: AX = FFFFh if driver installed for serial mouse
  109053. SeeAlso: AX=246Ch,AX=256Ch/BX=0000h,AX=256Ch/BX=0003h,AX=276Ch
  109054. (Table 03191)
  109055. Values for Logitech mouse emulation type:
  109056. 00h 5 byte packed binary
  109057. 01h 3 byte packed binary
  109058. 02h hexadecimal
  109059. 03h relative bit pad
  109060. 04h not supported
  109061. 05h MM Series
  109062. 06h not supported
  109063. 07h Microsoft
  109064. --------M-33256CBX0002-----------------------
  109065. INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET REPORT RATE (SERIAL MOUSE ONLY)
  109066. AX = 256Ch
  109067. BX = 0002h
  109068. CX = rate (0=10, 1=20, 2=35, 3=50, 4=70, 5=100, 6=150)
  109069. Return: AX = FFFFh if driver installed for serial mouse
  109070. SeeAlso: AX=246Ch,AX=256Ch/BX=0001h,AX=256Ch/BX=0003h,AX=276Ch
  109071. --------M-33256CBX0003-----------------------
  109072. INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET MOUSE PORT (SERIAL MOUSE ONLY)
  109073. AX = 256Ch
  109074. BX = 0003h
  109075. CX = port (1, 2)
  109076. Return: AX = FFFFh if driver installed for serial mouse
  109077. SeeAlso: AX=246Ch,AX=256Ch/BX=0000h,AX=256Ch/BX=0004h,AX=276Ch
  109078. --------M-33256CBX0004-----------------------
  109079. INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET MOUSE LOGICAL BUTTONS
  109080. AX = 256Ch
  109081. BX = 0004h
  109082. CX = buttons (2, 3)
  109083. Return: AX = FFFFh if driver installed for serial mouse
  109084. SeeAlso: AX=246Ch,AX=276Ch
  109085. --------M-33266C-----------------------------
  109086. INT 33 - LOGITECH MOUSE - GET VERSION???
  109087. AX = 266Ch
  109088. Return: BX = 'SS'
  109089. CH = '4' major version number
  109090. CL = '1' minor version number
  109091. SeeAlso: AX=006Dh
  109092. --------M-33276C-----------------------------
  109093. INT 33 - LOGITECH MOUSE - ??? Tries MMSeries, Baud 2400
  109094. AX = 276Ch
  109095. SeeAlso: AX=256Ch
  109096. --------M-333000-----------------------------
  109097. INT 33 - Smooth Mouse Driver, PrecisePoint - INSTALLATION CHECK
  109098. AX = 3000h
  109099. Return: AX = FFFFh if installed
  109100. BX = version number (BH = major, BL = minor)
  109101. Program: SMD is a programmer's library by Andy Hakim which provides a
  109102. graphics-style mouse cursor in text mode. PrecisePoint is an
  109103. SMD-based TSR which replaces the block mouse cursor in text
  109104. applications.
  109105. SeeAlso: AX=0000h,AX=3001h,AX=3003h
  109106. --------M-333001-----------------------------
  109107. INT 33 - Smooth Mouse Driver, PrecisePoint - ENABLE SMOOTH MOUSE
  109108. AX = 3001h
  109109. Return: AX = status (0000h = disabled, 0001h = enabled)
  109110. Note: SMD remains disabled if running under Desqview or in graphics mode
  109111. SeeAlso: AX=0001h,AX=0002h,AX=3002h
  109112. --------M-333002-----------------------------
  109113. INT 33 - Smooth Mouse Driver, PrecisePoint - DISABLE SMOOTH MOUSE
  109114. AX = 3002h
  109115. Return: AX = status (0000h = disabled, 0001h = enabled)
  109116. SeeAlso: AX=0001h,AX=0002h,AX=3000h,AX=3001h
  109117. --------M-333003-----------------------------
  109118. INT 33 - Smooth Mouse Driver, PrecisePoint - GET INFORMATION
  109119. AX = 3003h
  109120. BL = data structure selector
  109121. 00h Primary Bitmap (used for 25 line mode) (see #03192)
  109122. 01h Secondary Bitmap (used for 43/50 line modes) (see #03192)
  109123. 02h Sacrifice Character Map (see #03193)
  109124. 03h Program Information (see #03194)
  109125. Return: ES:DX -> selected data structure
  109126. SeeAlso: AX=3000h
  109127. Format of Primary/Secondary Bitmap [SMD_BITMAP_STRUCT]:
  109128. Offset Size Description (Table 03192)
  109129. 00h BYTE vertical size of bitmap (00h - 10h)
  109130. 01h BYTE horizontal size of bitmap (00h - 10h)
  109131. 02h BYTE vertical hotspot position (00h - 10h)
  109132. 03h BYTE horizontal hotspot position (00h - 10h)
  109133. 04h 16 WORDs cursor bitmap data
  109134. 14h 16 WORDs screen bitmap data
  109135. Format of Sacrifice Character Map [SMD_SMAP_STRUCT]:
  109136. Offset Size Description (Table 03193)
  109137. 00h BYTE bytes are character values (00h-FFh) used in place of the
  109138. 01h BYTE actual character for the corresponding position on the screen
  109139. 02h BYTE +--------------+ occupied by part or all of the mouse
  109140. 03h BYTE | 0h | 1h | 2h | cursor
  109141. 04h BYTE |----+----+----|
  109142. 05h BYTE | 3h | 4h | 5h |
  109143. 06h BYTE |----+----+----|
  109144. 07h BYTE | 6h | 7h | 8h |
  109145. 08h BYTE +--------------+
  109146. Format of Program Information [SMD_INFO_STRUCT]:
  109147. Offset Size Description (Table 03194)
  109148. 00h WORD segment of old interrupt 33h handler
  109149. 02h WORD offset of old interrupt 33h handler
  109150. 04h WORD PSP of SMD
  109151. 06h BYTE ENABLE/DISABLE manual setting status
  109152. 07h BYTE ENABLE/DISABLE internal usage status
  109153. --------M-333004-----------------------------
  109154. INT 33 - Smooth Mouse Driver, PrecisePoint - RESERVED FUTURE EXPANSION
  109155. AX = 3004h
  109156. SeeAlso: AX=3000h
  109157. --------M-333005-----------------------------
  109158. INT 33 - Smooth Mouse Driver, PrecisePoint - RESERVED FUTURE EXPANSION
  109159. AX = 3005h
  109160. SeeAlso: AX=3000h
  109161. --------M-334F00-----------------------------
  109162. INT 33 - LOGITECH MOUSE v6.10+ - GET ???
  109163. AX = 4F00h
  109164. Return: AX = 004Fh if supported
  109165. BX = ???
  109166. ES:DI -> ???
  109167. SeeAlso: AX=4F01h
  109168. --------M-334F01-----------------------------
  109169. INT 33 - LOGITECH MOUSE v6.10+ - ???
  109170. AX = 4F01h
  109171. ES = ???
  109172. Return: AX = 004Fh if supported
  109173. ES:DI -> ???
  109174. SeeAlso: AX=4F00h
  109175. --------M-336F00-----------------------------
  109176. INT 33 - Hewlett Packard - HP MOUSE DRIVER INSTALLATION CHECK
  109177. AX = 6F00h
  109178. BX <> 4850h
  109179. Return: BX = 4850h ('HP') if mouse driver written by Hewlett Packard
  109180. SeeAlso: INT 10/AX=6F00h,INT 14/AX=6F00h,INT 16/AX=6F00h,INT 17/AX=6F00h
  109181. --------M-338800-----------------------------
  109182. INT 33 U - InfoTrack IMOUSE.COM - UNHOOK MOUSE IRQ
  109183. AX = 8800h
  109184. BX <> FFFFh
  109185. Note: the code is written to expect a subfunction number in AL, but only
  109186. function 00h has been implemented
  109187. SeeAlso: AX=8800h/BX=FFFFh
  109188. --------M-338800BXFFFF-----------------------
  109189. INT 33 U - InfoTrack IMOUSE.COM - GET ACTIVE IRQ
  109190. AX = 8800h
  109191. BX = FFFFh
  109192. Return: BL = number of IRQ being used by the mouse
  109193. SeeAlso: AX=8800h
  109194. --------T-33FFE6-----------------------------
  109195. INT 33 - Switch-It v3.23 - GET ??? PROGRAM
  109196. AX = FFE6h
  109197. CX = length of buffer
  109198. ES:DI -> buffer for program name
  109199. Return: ES:DI buffer filled
  109200. Program: Switch-It is a task switcher supporting up to 100 programs
  109201. simultaneously by Better Software Technology, Inc.
  109202. --------T-33FFE7-----------------------------
  109203. INT 33 - Switch-It v3.23 - GET ???
  109204. AX = FFE7h
  109205. Return: AX = ???
  109206. --------T-33FFE8-----------------------------
  109207. INT 33 - Switch-It v3.23 - ???
  109208. AX = FFE8h
  109209. CX = length of name including terminating NUL
  109210. DS:SI -> ASCIZ program pathname
  109211. --------T-33FFE9-----------------------------
  109212. INT 33 - Switch-It v3.23 - SET ???
  109213. AX = FFE9h
  109214. BX = ???
  109215. --------T-33FFEA-----------------------------
  109216. INT 33 - Switch-It v3.23 - SET ???
  109217. AX = FFEAh
  109218. BL = ???
  109219. --------T-33FFEB-----------------------------
  109220. INT 33 - Switch-It v3.23 - SET ??? FLAG
  109221. AX = FFEBh
  109222. --------T-33FFEC-----------------------------
  109223. INT 33 - Switch-It v3.23 - SET ???
  109224. AX = FFECh
  109225. BL = ???
  109226. --------T-33FFED-----------------------------
  109227. INT 33 - Switch-It v3.23 - GET ???
  109228. AX = FFEDh
  109229. Return: AX = ??? (0001h)
  109230. BX = ???
  109231. Program: Switch-It is a task switcher supporting up to 100 programs
  109232. simultaneously by Better Software Technology, Inc.
  109233. --------T-33FFEE-----------------------------
  109234. INT 33 - Switch-It v3.23 - GET ???
  109235. AX = FFEEh
  109236. Return: AX = ???
  109237. --------T-33FFEF-----------------------------
  109238. INT 33 - Switch-It v3.23 - GET ???
  109239. AX = FFEFh
  109240. Return: BX:AX -> ???
  109241. --------T-33FFF0-----------------------------
  109242. INT 33 - Switch-It v3.23 - SET ???
  109243. AX = FFF0h
  109244. BL = ???
  109245. --------T-33FFF1-----------------------------
  109246. INT 33 - Switch-It v3.23 - GET CONFIGURATION FILE
  109247. AX = FFF1h
  109248. Return: BX:AX -> ASCIZ pathname of configuration file
  109249. Program: Switch-It is a task switcher supporting up to 100 programs
  109250. simultaneously by Better Software Technology, Inc.
  109251. --------T-33FFF2-----------------------------
  109252. INT 33 - Switch-It v3.23 - SET ??? FLAG
  109253. AX = FFF2h
  109254. Return: AL = 01h
  109255. --------T-33FFF3-----------------------------
  109256. INT 33 - Switch-It v3.23 - GET ???
  109257. AX = FFF3h
  109258. Return: AX = ???
  109259. --------T-33FFF4-----------------------------
  109260. INT 33 - Switch-It v3.23 - SET ???
  109261. AX = FFF4h
  109262. BX = ???
  109263. CX = ???
  109264. --------T-33FFF5-----------------------------
  109265. INT 33 - Switch-It v3.23 - GET ???
  109266. AX = FFF5h
  109267. Return: AX = ???
  109268. --------T-33FFF6-----------------------------
  109269. INT 33 - Switch-It v3.23 - GET ???
  109270. AX = FFF6h
  109271. Return: AX = ???
  109272. --------T-33FFF7-----------------------------
  109273. INT 33 - Switch-It v3.23 - GET ???
  109274. AX = FFF7h
  109275. BX = index of ???
  109276. Return: AX = ???
  109277. --------T-33FFF8-----------------------------
  109278. INT 33 - Switch-It v3.23 - ???
  109279. AX = FFF8h
  109280. BX = ???
  109281. CX = length of program name, including terminating NUL
  109282. DS:SI -> ASCIZ program pathname
  109283. Return: ???
  109284. Program: Switch-It is a task switcher supporting up to 100 programs
  109285. simultaneously by Better Software Technology, Inc.
  109286. --------T-33FFF9-----------------------------
  109287. INT 33 - Switch-It v3.23 - NOP
  109288. AX = FFF9h
  109289. --------T-33FFFA-----------------------------
  109290. INT 33 - Switch-It v3.23 - SET ???
  109291. AX = FFFAh
  109292. BX = index of program
  109293. SeeAlso: AX=FFFBh,AX=FFFCh
  109294. --------T-33FFFB-----------------------------
  109295. INT 33 - Switch-It v3.23 - GET ???
  109296. AX = FFFBh
  109297. BX = index of program
  109298. Return: AX = ??? (0000h or 0001h)
  109299. SeeAlso: AX=FFFAh,AX=FFFCh
  109300. --------T-33FFFC-----------------------------
  109301. INT 33 - Switch-It v3.23 - CLEAR ???
  109302. AX = FFFCh
  109303. BX = index of program
  109304. SeeAlso: AX=FFFAh,AX=FFFCh
  109305. --------T-33FFFD-----------------------------
  109306. INT 33 - Switch-It v3.23 - GET MEMORY ADDRESSES???
  109307. AX = FFFDh
  109308. Return: AX = first available segment???
  109309. BX = paragraph of top of conventional memory
  109310. DX = PSP segment of SI.EXE
  109311. --------T-33FFFE-----------------------------
  109312. INT 33 - Switch-It v3.23 - INSTALLATION CHECK
  109313. AX = FFFEh
  109314. Return: BX = ???
  109315. DX = 5349h ("SI")
  109316. --------T-33FFFF-----------------------------
  109317. INT 33 - Switch-It v3.23 - ???
  109318. AX = FFFFh
  109319. BX = ???
  109320. Program: Switch-It is a task switcher supporting up to 100 programs
  109321. simultaneously by Better Software Technology, Inc.
  109322. --------r-34---------------------------------
  109323. INT 34 - FLOATING POINT EMULATION - OPCODE D8h
  109324. Desc: this interrupt is used to emulate floating-point instructions with
  109325. an opcode of D8h
  109326. Note: the floating-point emulators in Borland and Microsoft languages and
  109327. Lahey FORTRAN use this interrupt
  109328. SeeAlso: INT 35,INT 3E
  109329. --------r-35---------------------------------
  109330. INT 35 - FLOATING POINT EMULATION - OPCODE D9h
  109331. Desc: this interrupt is used to emulate floating-point instructions with
  109332. an opcode of D9h
  109333. Note: the floating-point emulators in Borland and Microsoft languages and
  109334. Lahey FORTRAN use this interrupt
  109335. SeeAlso: INT 34,INT 36
  109336. --------r-36---------------------------------
  109337. INT 36 - FLOATING POINT EMULATION - OPCODE DAh
  109338. Desc: this interrupt is used to emulate floating-point instructions with
  109339. an opcode of DAh
  109340. Note: the floating-point emulators in Borland and Microsoft languages and
  109341. Lahey FORTRAN use this interrupt
  109342. SeeAlso: INT 35,INT 37
  109343. --------r-37---------------------------------
  109344. INT 37 - FLOATING POINT EMULATION - OPCODE DBh
  109345. Desc: this interrupt is used to emulate floating-point instructions with
  109346. an opcode of DBh
  109347. Note: the floating-point emulators in Borland and Microsoft languages and
  109348. Lahey FORTRAN use this interrupt
  109349. SeeAlso: INT 36,INT 38
  109350. --------r-38---------------------------------
  109351. INT 38 - FLOATING POINT EMULATION - OPCODE DCh
  109352. Desc: this interrupt is used to emulate floating-point instructions with
  109353. an opcode of DCh
  109354. Note: the floating-point emulators in Borland and Microsoft languages and
  109355. Lahey FORTRAN use this interrupt
  109356. SeeAlso: INT 37,INT 39
  109357. --------O-38---------------------------------
  109358. INT 38 - PC-MOS/386 v3.0 - API
  109359. Note: this API was been moved to INT D4h sometime between versions 3.0 and
  109360. 5.01; v3.0 supported at least functions 02h,04h,0703h,10h,11h, and
  109361. 12h
  109362. SeeAlso: INT D4/AH=02h,INT D4/AH=04h,INT D4/AH=07h,INT D4/AH=10h,INT D4/AH=11h
  109363. --------r-39---------------------------------
  109364. INT 39 - FLOATING POINT EMULATION - OPCODE DDh
  109365. Desc: this interrupt is used to emulate floating-point instructions with
  109366. an opcode of DDh
  109367. Note: the floating-point emulators in Borland and Microsoft languages and
  109368. Lahey FORTRAN use this interrupt
  109369. SeeAlso: INT 38,INT 3A
  109370. --------r-3A---------------------------------
  109371. INT 3A - FLOATING POINT EMULATION - OPCODE DEh
  109372. Desc: this interrupt is used to emulate floating-point instructions with
  109373. an opcode of DEh
  109374. Note: the floating-point emulators in Borland and Microsoft languages and
  109375. Lahey FORTRAN use this interrupt
  109376. SeeAlso: INT 39,INT 3B
  109377. --------r-3B---------------------------------
  109378. INT 3B - FLOATING POINT EMULATION - OPCODE DFh
  109379. Desc: this interrupt is used to emulate floating-point instructions with
  109380. an opcode of DFh
  109381. Note: the floating-point emulators in Borland and Microsoft languages and
  109382. Lahey FORTRAN use this interrupt
  109383. SeeAlso: INT 3A,INT 3C
  109384. --------r-3C---------------------------------
  109385. INT 3C - FLOATING POINT EMULATION - INSTRUCTIONS WITH SEGMENT OVERRIDE
  109386. Notes: the floating-point emulators in Borland and Microsoft languages and
  109387. Lahey FORTRAN use this interrupt
  109388. the generated code is CD 3C xy mm ....
  109389. where xy is a modified ESC instruction and mm is the modR/M byte.
  109390. The xy byte appears to be encoded as
  109391. s s 0 1 1 x x x or s s 0 0 0 x x x
  109392. where "ss" specifies the segment override:
  109393. 00 -> DS:
  109394. 01 -> SS:
  109395. 10 -> CS:
  109396. 11 -> ES:
  109397. SeeAlso: INT 3B,INT 3D
  109398. --------r-3D---------------------------------
  109399. INT 3D - FLOATING POINT EMULATION - STANDALONE FWAIT
  109400. Notes: the floating-point emulators in Borland and Microsoft languages and
  109401. Lahey FORTRAN use this interrupt
  109402. this vector is modified but not restored by Direct Access v4.0, and
  109403. may be left dangling by other programs written with the same version
  109404. of compiled BASIC
  109405. SeeAlso: INT 3C,INT 3E
  109406. --------r-3E---------------------------------
  109407. INT 3E - FLOATING POINT EMULATION - Borland LANGUAGES "SHORTCUT" CALL
  109408. Notes: the two bytes following the INT 3E instruction are the subcode
  109409. (see #03195) and a NOP (90h), except for subcodes DCh and DEh, where
  109410. the second byte is a register count (01h-08h)
  109411. this vector is modified but not restored by Direct Access v4.0, and
  109412. may be left dangling by other programs written with the same version
  109413. of compiled BASIC
  109414. SeeAlso: INT 3D
  109415. (Table 03195)
  109416. Values for Borland floating-point shortcut subcode:
  109417. Subcode Function
  109418. DCh load 8086 stack with 8087 registers; overwrites the 10*N bytes at the
  109419. top of the stack prior to the INT 3E with the 8087 register contents
  109420. DEh load 8087 registers from top of 8086 stack; ST0 is furthest from top
  109421. of 8086 stack
  109422. E0h round TOS and R1 to single precision, compare, pop twice
  109423. returns AX=8087 status word, FLAGS=8087 condition bits
  109424. E2h round TOS and R1 to double precision, compare, pop twice
  109425. returns AX=8087 status word, FLAGS=8087 condition bits
  109426. Note: buggy in TPas5.5, because it sets the 8087 precision control
  109427. field to the undocumented value 01h; this results in actually
  109428. rounding to single precision
  109429. E4h compare TOS/R1 with two POP's
  109430. returns FLAGS=8087 condition bits
  109431. E6h compare TOS/R1 with POP
  109432. returns FLAGS=8087 condition bits
  109433. E8h FTST (check TOS value)
  109434. returns FLAGS=8087 condition bits
  109435. EAh FXAM (check TOS value)
  109436. returns AX=8087 status word
  109437. ECh sine(ST0)
  109438. EEh cosine(ST0)
  109439. F0h tangent(ST0)
  109440. F2h arctangent(ST0)
  109441. F4h ST0 = ln(ST0)
  109442. F6h ST0 = log2(ST0)
  109443. F8h ST0 = log10(ST0)
  109444. FAh ST0 = e**ST0
  109445. FCh ST0 = 2**ST0
  109446. FEh ST0 = 10**ST0
  109447. --------r-3F---------------------------------
  109448. INT 3F - Overlay manager interrupt (Microsoft LINK.EXE, Borland TLINK VROOMM)
  109449. Notes: INT 3F is the default, and may be overridden while linking
  109450. this vector is modified but not restored by Direct Access v4.0, and
  109451. may be left dangling by other programs written with the same version
  109452. of compiled BASIC
  109453. SeeAlso: INT FE"OVERLAY"
  109454. --------r-3F---------------------------------
  109455. INT 3F - Microsoft Dynamic Link Library manager
  109456. SeeAlso: INT 21/AH=4Bh
  109457. --------B-40---------------------------------
  109458. INT 40 - DISKETTE - ROM BIOS DISKETTE HANDLER RELOCATED BY HARD DISK BIOS
  109459. SeeAlso: INT 13/AH=00h,INT 13/AH=02h,INT 47"SuperBIOS",INT 63"Adaptec"
  109460. --------h-40---------------------------------
  109461. INT 40 - Z100 - Master 8259 - Parity error or S100 error
  109462. SeeAlso: INT 41"Z100",INT FF"Z100"
  109463. --------O-40---------------------------------
  109464. INT 40 - Acorn BBC Master 512 - "OSFIND" - OPEN FILE
  109465. AL = operation
  109466. 00h close file
  109467. 40h open file for reading
  109468. 80h open file for writing
  109469. C0h open file for random access
  109470. DS:BX -> CR-terminated filename
  109471. Return: AL = file handle (00h if file closed or could not be opened)
  109472. Note: the Acorn BBC Master 512 is an 80186-based add-on board for the
  109473. 6502-based Master 128 which uses the original CPU as an I/O processor
  109474. SeeAlso: INT 41"Acorn",INT 42"Acorn",INT 43"Acorn",INT 44"Acorn",INT 4C"Acorn"
  109475. --------h-40---------------------------------
  109476. INT 40 - TI Professional PC - IRQ0
  109477. Note: on the TI Pro, IRQ0 is connected to the same pin on the expansion bus
  109478. that IBM connects to IRQ2
  109479. SeeAlso: INT 0A"IRQ2",INT 41"TI Professional"
  109480. --------B-41---------------------------------
  109481. INT 41 - SYSTEM DATA - HARD DISK 0 PARAMETER TABLE ADDRESS [NOT A VECTOR!]
  109482. Notes: the default parameter table array is located at F000h:E401h in 100%
  109483. compatible BIOSes; the pointer may be overridden by the hard disk
  109484. controller's BIOS to support drive formats unknown to the ROM BIOS
  109485. not used by some PS/2 models
  109486. BIOSes which support four hard drives may store the parameter tables
  109487. for drives 81h-83h immediately following the parameter table pointed
  109488. at by INT 41, with a separate copy of the drive 81h table for INT 46.
  109489. The check for such an arrangement is to test whether INT 46 points
  109490. somewhere other than exactly 16 bytes past INT 41, and the sixteen
  109491. bytes starting at offset 10h from INT 41 are identical to the sixteen
  109492. bytes pointed at by INT 46
  109493. another arrangement for BIOSes which support four IDE drives is to have
  109494. four tables pointed at by INT 41 in the order primary master,
  109495. primary slave, secondary master, and secondary slave, in which case
  109496. (for example) a system with only primary master and secondary master
  109497. will have valid tables at offsets 00h and 20h, with garbage (but
  109498. sectors-per-track = 00h) at offsets 10h and 30h
  109499. SeeAlso: #03196,INT 13/AH=09h,INT 1E,INT 46"HARD DISK 1",INT 60"Adaptec"
  109500. SeeAlso: INT C0"AMI"
  109501. Format of fixed disk parameters:
  109502. Offset Size Description (Table 03196)
  109503. 00h WORD number of cylinders
  109504. 02h BYTE number of heads
  109505. 03h WORD starting reduced write current cylinder (XT only, 0 for others)
  109506. 05h WORD starting write precompensation cylinder number
  109507. 07h BYTE maximum ECC burst length (XT only)
  109508. 08h BYTE control byte (see #03197,#03198)
  109509. 09h BYTE standard timeout (XT only, 0 for others)
  109510. 0Ah BYTE formatting timeout (XT and WD1002 only, 0 for others)
  109511. 0Bh BYTE timeout for checking drive (XT and WD1002 only, 0 for others)
  109512. 0Ch WORD cylinder number of landing zone (AT and later only)
  109513. 0Eh BYTE number of sectors per track (AT and later only)
  109514. 0Fh BYTE reserved
  109515. SeeAlso: #00273,#00277
  109516. Bitfields for XT fixed disk control byte:
  109517. Bit(s) Description (Table 03197)
  109518. 2-0 drive step speed
  109519. 000 3ms
  109520. 100 200ms
  109521. 101 70ms (default)
  109522. 110 3ms
  109523. 111 3ms
  109524. 5-3 unused
  109525. 6 disable ECC retries
  109526. 7 disable access retries
  109527. Bitfields for AT fixed disk control byte:
  109528. Bit(s) Description (Table 03198)
  109529. 0 unused
  109530. 1 reserved (0) (disable IRQ)
  109531. 2 reserved (0) (no reset)
  109532. 3 set if more than 8 heads
  109533. 4 always 0
  109534. 5 set if manufacturer's defect map on max cylinder+1 (AT and later only)
  109535. 6 disable ECC retries
  109536. 7 disable access retries
  109537. --------h-41---------------------------------
  109538. INT 41 - Z100 - Master 8259 - Processor Swap
  109539. SeeAlso: INT 40"Z100",INT 42"Z100"
  109540. --------h-41---------------------------------
  109541. INT 41 - TI Professional PC - IRQ1
  109542. Note: on the TI Pro, IRQ1 is connected to the same pin on the expansion bus
  109543. that IBM connects to IRQ3
  109544. SeeAlso: INT 0B"IRQ3",INT 40"TI Professional",INT 42"TI Professional"
  109545. --------O-41---------------------------------
  109546. INT 41 - Acorn BBC Master 512 - "OSGBPB" - MULTI-BYTE GET/PUT
  109547. AL = function
  109548. 01h put bytes sequentially
  109549. 02h put bytes, ignoring sequential pointer
  109550. 03h get bytes sequentially
  109551. 04h get bytes, ignoring sequential pointer
  109552. 05h get media title and boot option
  109553. 06h get current device and directory
  109554. 07h get current library and device
  109555. 08h search directory
  109556. DS:BX -> control block (see #03199)
  109557. Return: CF clear if successful
  109558. CF set on error
  109559. AL = 00h if operation attempted
  109560. AL unchanged if unsupported function
  109561. SeeAlso: INT 40"Acorn",INT 42"Acorn",INT 43"Acorn"
  109562. Format of BBC Master control block:
  109563. Offset Size Description (Table 03199)
  109564. 00h BYTE file handle
  109565. 01h DWORD pointer to data in either I/O processor or Tube processor
  109566. 05h DWORD number of bytes to be transferred
  109567. 09h DWORD transfer address
  109568. --------G-410000-----------------------------
  109569. INT 41 CPU - MS Windows debugging kernel - OUTPUT CHARACTER FOR USER
  109570. AX = 0000h
  109571. DS:DX -> character
  109572. Note: the kernel calls this function when it wants the user program to
  109573. output a character
  109574. SeeAlso: AX=0001h
  109575. --------G-410001-----------------------------
  109576. INT 41 CPU - MS Windows debugging kernel - INPUT CHARACTER
  109577. AX = 0001h
  109578. Return: AL = character
  109579. Note: the kernel calls this function when it needs to input a character
  109580. SeeAlso: AX=0000h
  109581. --------G-41000D-----------------------------
  109582. INT 41 CPU - MS Windows debugging kernel - TASK GOING OUT
  109583. AX = 000Dh
  109584. SeeAlso: AX=000Eh
  109585. --------G-41000E-----------------------------
  109586. INT 41 CPU - MS Windows debugging kernel - TASK COMING IN
  109587. AX = 000Eh
  109588. SeeAlso: AX=000Dh
  109589. --------G-410012-----------------------------
  109590. INT 41 CPU - MS Windows debugging kernel - "OutputDebugString"
  109591. AX = 0012h
  109592. DS:SI -> string (Windows 3.0)
  109593. ES:SI -> string (Windows 3.1)
  109594. Return: nothing???
  109595. Note: this function is called by the kernel when it wants to output a
  109596. string through the debugger
  109597. SeeAlso: AX=0050h,INT 68/AH=47h
  109598. --------G-41004F-----------------------------
  109599. INT 41 CPU - MS Windows debugging kernel - DEBUGGER INSTALLATION CHECK
  109600. AX = 004Fh
  109601. Return: AX = F386h if debugger is present
  109602. SeeAlso: INT 68/AX=4400h
  109603. --------G-410050-----------------------------
  109604. INT 41 P - MS Windows debugging kernel - "DefineDebugSegment"
  109605. AX = 0050h
  109606. BX = segment number in executable (0-based)
  109607. CX = selector
  109608. DX = instance handle
  109609. SI = segment flags (0=code, 1=data)
  109610. ES:DI -> module name of owner
  109611. Return: ???
  109612. SeeAlso: AX=0012h,AX=004Fh
  109613. --------G-410051-----------------------------
  109614. INT 41 CPU - MS Windows debugging kernel - MOVE SEGMENT
  109615. AX = 0051h
  109616. ???
  109617. Return: ???
  109618. SeeAlso: AX=0050h,AX=0052h
  109619. --------G-410052-----------------------------
  109620. INT 41 CPU - MS Windows debugging kernel - FREE SEGMENT
  109621. AX = 0052h
  109622. BX = freed selector
  109623. SeeAlso: AX=0050h,AX=0051h,AX=005Ch
  109624. --------G-410059-----------------------------
  109625. INT 41 CPU - MS Windows debugging kernel - LOAD TASK
  109626. AX = 0059h
  109627. ???:BX = CS:IP of new task's starting point
  109628. --------G-41005C-----------------------------
  109629. INT 41 CPU - MS Windows debugging kernel - FREE INITIAL SEGMENT
  109630. AX = 005Ch
  109631. BX = freed selector
  109632. Note: called only when KERNEL starts, once for CS and once for the DS alias
  109633. to CS
  109634. SeeAlso: AX=0052h
  109635. --------G-410060-----------------------------
  109636. INT 41 CPU - MS Windows debugging kernel - END OF SEGMENT LOAD
  109637. AX = 0060h
  109638. ???
  109639. Return: ???
  109640. SeeAlso: AX=0061h
  109641. --------G-410061-----------------------------
  109642. INT 41 CPU - MS Windows debugging kernel - END OF SEGMENT DISCARD
  109643. AX = 0061h
  109644. ???
  109645. Return: ???
  109646. SeeAlso: AX=0060h
  109647. --------G-410062-----------------------------
  109648. INT 41 CPU - MS Windows debugging kernel - APPLICATION TERMINATING
  109649. AX = 0062h
  109650. STACK: BYTE exit code
  109651. Return: ???
  109652. STACK unchanged???
  109653. SeeAlso: AX=0064h
  109654. --------G-410063-----------------------------
  109655. INT 41 CPU - MS Windows debugging kernel - ASYNCHRONOUS STOP (Ctrl-Alt-SysReq)
  109656. AX = 0063h
  109657. --------G-410064-----------------------------
  109658. INT 41 CPU - MS Windows debugging kernel - DLL LOADED
  109659. AX = 0064h
  109660. CX:BX = DLL entry point CS:IP
  109661. SI = module handle
  109662. SeeAlso: AX=0062h,AX=0065h
  109663. --------G-410065-----------------------------
  109664. INT 41 CPU - MS Windows debugging kernel - MODULE REMOVED
  109665. AX = 0065h
  109666. ES = module handle
  109667. SeeAlso: AX=0064h
  109668. --------G-410066-----------------------------
  109669. INT 41 CPU - MS Windows debugging kernel - ERROR
  109670. AX = 0066h
  109671. Note: called by LogError()
  109672. SeeAlso: AX=0067h
  109673. --------G-410067-----------------------------
  109674. INT 41 CPU - MS Windows debugging kernel - PARAMETER ERROR
  109675. AX = 0067h
  109676. Note: called by LogParamError()
  109677. SeeAlso: AX=0066h
  109678. --------V-42---------------------------------
  109679. INT 42 - VIDEO - RELOCATED DEFAULT INT 10 VIDEO SERVICES (EGA,VGA)
  109680. Desc: contains the address of the original INT 10 handler which an EGA+
  109681. video adapter replaces with its own on-board BIOS code
  109682. SeeAlso: INT 10/AH=00h,INT 10/AH=0Eh,INT 6D"VGA"
  109683. Note: not used by PS/2 built-in VGA or XGA
  109684. --------h-42---------------------------------
  109685. INT 42 - Z100 - Master 8259 - Timer
  109686. SeeAlso: INT 41"Z100",INT 43"Z100"
  109687. --------h-42---------------------------------
  109688. INT 42 - TI Professional PC - IRQ2
  109689. Note: on the TI Pro, IRQ0 is connected to the same pin on the expansion bus
  109690. that IBM connects to IRQ4
  109691. SeeAlso: INT 0C"IRQ4",INT 41"TI Professional",INT 43"TI Professional"
  109692. --------b-42---------------------------------
  109693. INT 42 - Western Digital WD1002 SuperBIOS - INT 40 CASCADE
  109694. Note: if the second WD1002 controller in the system finds INT 40 already in
  109695. use, it uses this vector to cascade to the first controller's BIOS
  109696. SeeAlso: INT 40"DISKETTE",INT 47"SuperBIOS"
  109697. --------O-42---------------------------------
  109698. INT 42 - Acorn BBC Master 512 - "OSBPUT" - WRITE SINGLE BYTE TO FILE
  109699. AL = byte to be written
  109700. BH = file handle
  109701. Return: flags destroyed
  109702. SeeAlso: INT 40"Acorn",INT 41"Acorn",INT 43"Acorn",INT 47"Acorn",INT 49"Acorn"
  109703. --------V-425F33-----------------------------
  109704. INT 42 C - Chips & Technologies '65530' BIOS - MODE SET HOOK
  109705. AX = 5F33h
  109706. BL = current width in characters
  109707. BH = curent video mode
  109708. CH = active display page
  109709. Return: nothing
  109710. Desc: this function is called at the end of a video mode set
  109711. Note: the OEM has the option of enabling or disabling this callout, as well
  109712. as specifying whether the callout occurs on INT 15h or INT 42h
  109713. SeeAlso: INT 15/AX=5F31h,INT 15/AX=5F35h,INT 10/AX=5F50h,INT 15/AX=5F33h
  109714. --------V-427500-----------------------------
  109715. INT 42 U - Toshiba laptops - ???
  109716. AX = 7500h
  109717. BL = ??? (00h or 01h)
  109718. Return: ???
  109719. Note: used by Toshiba utility VCHAD.EXE
  109720. SeeAlso: AX=7501h,AX=7503h
  109721. --------V-427501-----------------------------
  109722. INT 42 U - Toshiba laptop - GET ??? DATA
  109723. AX = 7501h
  109724. DS:DI -> data area to be filled ???
  109725. Return: area filled with data ???
  109726. Note: used by Toshiba utility VCHAD.EXE
  109727. SeeAlso: AX=7500h,AX=7502h,AX=7503h
  109728. --------V-427502-----------------------------
  109729. INT 42 U - Toshiba laptops - SET ??? DATA
  109730. AX = 7502h
  109731. DS:DI -> data area ???
  109732. Return: ???
  109733. Note: used by Toshiba utility VCHAD.EXE
  109734. SeeAlso: AX=7501h,AX=7503h
  109735. --------V-427503-----------------------------
  109736. INT 42 - Toshiba laptops - GET DISPLAY STATUS
  109737. AX = 7503h
  109738. Return: AX = 7575h if supported
  109739. CX = 0001h if supported
  109740. BH = display type (00h color, 03h monochrome)
  109741. BL = display state
  109742. 01h internal LCD display is active
  109743. 02h external VGA display is active
  109744. 03h both displays active / DeskStation display mode enabled
  109745. (not possible on all machines)
  109746. Note: used by VCHAD.EXE and supported by all Toshiba VGA laptops until about
  109747. 1994 (string "TOSHIBA " at F000:E010h should be checked before call)
  109748. no longer supported by T21xx series, use INT 10/AX=5F50h instead
  109749. INT 42 normally points to F000:F065h but may be redirected by QEMM386
  109750. SeeAlso: AX=7500h,AX=7504h,INT 10/AX=5F50h,INT 15/AH=C0h
  109751. --------V-427504-----------------------------
  109752. INT 42 U - Toshiba laptops - ???
  109753. AX = 7504h
  109754. BL = ???
  109755. Return: BH = ???
  109756. Note: used by Toshiba utility VCHAD.EXE
  109757. SeeAlso: AX=7500h,AX=7503h
  109758. --------V-43---------------------------------
  109759. INT 43 - VIDEO DATA - CHARACTER TABLE (EGA,MCGA,VGA)
  109760. Desc: points at graphics data for characters 00h-7Fh of the current font
  109761. in 8x8 dot modes, graphics data for all characters in 8x14 and 8x16
  109762. modes
  109763. Note: this is not a callable vector!
  109764. SeeAlso: INT 06"no-name",INT 1F"SYSTEM DATA",INT 44"VIDEO"
  109765. --------h-43---------------------------------
  109766. INT 43 - Z100 - Master 8259 - Slave 8259 input
  109767. Note: slave runs in special fully nested mode
  109768. SeeAlso: INT 42"Z100",INT 44"Z100"
  109769. --------h-43---------------------------------
  109770. INT 43 - TI Professional PC - IRQ3 - TIMER1 25ms INTERVAL INTERRUPT
  109771. SeeAlso: INT 0B"IRQ3",INT 42"TI Professional",INT 44"TI Professional"
  109772. SeeAlso: INT 58"TI Professional"
  109773. --------O-43---------------------------------
  109774. INT 43 - Acorn BBC Master 512 - "OSBGET" - READ SINGLE BYTE FROM FILE
  109775. BH = file handle
  109776. Return: CF clear if successful
  109777. AL = byte read from file
  109778. CF set on error
  109779. SeeAlso: INT 40"Acorn",INT 41"Acorn",INT 42"Acorn",INT 46"Acorn"
  109780. --------V-44---------------------------------
  109781. INT 44 - VIDEO DATA - ROM BIOS CHARACTER FONT, CHARACTERS 00h-7Fh (PCjr)
  109782. Desc: this vector points at graphics data for current character font
  109783. SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO"
  109784. --------N-44---------------------------------
  109785. INT 44 - Novell NetWare - HIGH-LEVEL LANGUAGE API
  109786. --------I-44---------------------------------
  109787. INT 44 - IBM 3270-PC High Level Language API
  109788. DS:SI -> parameter control block
  109789. --------h-44---------------------------------
  109790. INT 44 - Z100 - Master 8259 - Serial A
  109791. SeeAlso: INT 43"Z100",INT 45"Z100"
  109792. --------h-44---------------------------------
  109793. INT 44 - TI Professional PC - IRQ4
  109794. Note: on the TI Pro, IRQ4 is connected to the same pin on the expansion bus
  109795. that IBM connects to IRQ5
  109796. SeeAlso: INT 0D"IRQ5",INT 43"TI Professional",INT 45"TI Professional"
  109797. --------v-44---------------------------------
  109798. INT 44 - VIRUS - "Lehigh" - ORIGINAL INT 21h VECTOR
  109799. SeeAlso: INT 32"VIRUS",INT 60"VIRUS",INT 70"VIRUS",INT 9E"VIRUS"
  109800. --------O-4400-------------------------------
  109801. INT 44 - Acorn BBC Master 512 - "OSARGS" - GET/SET FILE PARAMS FOR OPEN FILE
  109802. AH = 00h
  109803. AL = function
  109804. 00h get current filing system
  109805. Return: AL = filing system (see #03200)
  109806. 01h get address of commandline tail
  109807. Return: BX buffer filled with address of command tail in I/O
  109808. processor address space (use INT 4A/AL=05h to
  109809. retrieve)
  109810. FFh flush all files onto secondary storage
  109811. BX -> 4-byte data buffer
  109812. Note: the commandline tail is terminated with a carriage return (0Dh)
  109813. SeeAlso: INT 40"Acorn",INT 45"Acorn"
  109814. (Table 03200)
  109815. Values for BBC Master filing system:
  109816. 00h none
  109817. 01h 1200 bps cassette
  109818. 02h 300 bps cassette
  109819. 03h ROM FS
  109820. 04h DFS
  109821. 05h ANFS/NFS
  109822. 06h TFS
  109823. 08h ADFS
  109824. --------O-44---------------------------------
  109825. INT 44 - Acorn BBC Master 512 - "OSARGS" - GET/SET FILE PARAMS FOR OPEN FILE
  109826. AH = nonzero file handle
  109827. AL = function
  109828. 00h get sequential pointer for file
  109829. 01h set sequential pointer for file
  109830. 02h get length of file
  109831. BX -> 4-byte data buffer
  109832. Return: BX buffer updated if appropriate
  109833. SeeAlso: INT 40"Acorn",INT 41"Acorn",INT 44/AH=00h,INT 45"Acorn",INT 4A"Acorn"
  109834. --------h-45---------------------------------
  109835. INT 45 - Z100 - Master 8259 - Serial B
  109836. SeeAlso: INT 44"Z100",INT 46"Z100"
  109837. --------h-45---------------------------------
  109838. INT 45 - TI Professional PC - IRQ5
  109839. Note: on the TI Pro, IRQ5 is connected to the same pin on the expansion bus
  109840. that IBM connects to IRQ6
  109841. SeeAlso: INT 0E"IRQ6",INT 44"TI Professional",INT 46"TI Professional"
  109842. --------O-45---------------------------------
  109843. INT 45 - Acorn BBC Master 512 - "OSFILE" - READ/WRITE FILE OR DIRECTORY INFO
  109844. AL = function
  109845. 00h save block of memory as file
  109846. 01h update directory entry for existing file
  109847. 02h set load address for existing file
  109848. 03h set execution address for existing file
  109849. 04h set attributes for existing file
  109850. 05h read directory
  109851. 06h delete file
  109852. FFh load file
  109853. DS:BX -> control block (see #03201)
  109854. Return: FLAGS destroyed
  109855. AL = file type
  109856. 00h not found
  109857. 01h file found
  109858. 02h directory found
  109859. FFh protected file
  109860. SeeAlso: INT 40"Acorn",INT 41"Acorn",INT 44"Acorn",INT 46"Acorn"
  109861. Format of BBC Master control block:
  109862. Offset Size Description (Table 03201)
  109863. 00h WORD address of CR-terminated filename
  109864. 02h DWORD load address of file
  109865. 06h DWORD execution address of file
  109866. 0Ah DWORD start address of data to save
  109867. 0Eh DWORD end address of data to save, or file attributes
  109868. file attributes in low byte (see #03202)
  109869. other three bytes are filing-system specific file attributes
  109870. Bitfields for BBC Master file attributes:
  109871. Bit(s) Description (Table 03202)
  109872. 0 no owner read access
  109873. 1 no owner write access
  109874. 2 not executable by owner
  109875. 3 not deletable by owner
  109876. 4 no public read access
  109877. 5 no public write access
  109878. 6 not executable with public access
  109879. 7 not deletable with public access
  109880. --------B-46---------------------------------
  109881. INT 46 - SYSTEM DATA - HARD DISK 1 DRIVE PARAMETER TABLE ADDRESS [NOT A VECTOR!]
  109882. Note: not used by some PS/2 models
  109883. SeeAlso: INT 13/AH=09h,INT 41"HARD DISK 0",INT 60"Adaptec",INT C0"AMI"
  109884. --------h-46---------------------------------
  109885. INT 46 - Z100 - Master 8259 - Keyboard, Retrace, and Light Pen
  109886. SeeAlso: INT 45"Z100",INT 47"Z100"
  109887. --------h-46---------------------------------
  109888. INT 46 - TI Professional PC - IRQ6 - FLOPPY DISK CONTROLLER
  109889. Note: on the TI Pro, IRQ6 is connected to the same pin on the expansion bus
  109890. that IBM connects to IRQ7
  109891. SeeAlso: INT 0F"IRQ7",INT 45"TI Professional",INT 47"TI Professional"
  109892. --------O-46---------------------------------
  109893. INT 46 - Acorn BBC Master 512 - "OSRDCH" - GET CHARACTER FROM CUR INPUT STREAM
  109894. Return: CF clear if successful
  109895. AL = character read
  109896. CF set on error
  109897. AL = error code
  109898. SeeAlso: INT 40"Acorn",INT 43"Acorn",INT 47"Acorn",INT 49"Acorn"
  109899. --------h-47---------------------------------
  109900. INT 47 - Z100 - Master 8259 - Printer
  109901. SeeAlso: INT 46"Z100",INT 48"Z100"
  109902. --------h-47---------------------------------
  109903. INT 47 - TI Professional PC - IRQ7 - KEYBOARD USART
  109904. SeeAlso: INT 09"IRQ1",INT 46"TI Professional"
  109905. --------O-47---------------------------------
  109906. INT 47 - Acorn BBC Master 512 - "OSWRCH" - WRITE CHARACTER TO CUR OUTPUT STREAM
  109907. AL = character to be written
  109908. Return: FLAGS destroyed
  109909. SeeAlso: INT 40"Acorn",INT 46"Acorn",INT 49"Acorn"
  109910. --------b-47---------------------------------
  109911. INT 47 - Western Digital WD1002-27X SuperBIOS - INT 40 CASCADE
  109912. Desc: used by the second WD1002-27X controller to cascade to the first
  109913. controller's INT 40
  109914. SeeAlso: INT 40"DISKETTE",INT 42"SuperBIOS",INT 48"SuperBIOS"
  109915. ----------478000-----------------------------
  109916. INT 47 - SQL Base - DATABASE ENGINE API
  109917. AX = 8000h
  109918. DS:BX -> parameter block, first word is function number (see #03203)
  109919. Program: SQL Base is a network-oriented database engine by Gupta Technologies
  109920. SeeAlso: AX=8001h
  109921. (Table 03203)
  109922. Values for SQL Base function number:
  109923. 01h "SQLFINI" initalialize application's use of the database
  109924. 02h "SQLFDON" application is done using the database
  109925. 03h "SQLFCON" connect to a cursor/database
  109926. 04h "SQLFDIS" disconnect from a cursor/database
  109927. 05h "SQLFCOM" compile a SQL command
  109928. 06h "SQLFEXE" execute a SQL command
  109929. 07h "SQLFCEX" compile and execute a SQL command
  109930. 08h "SQLFCMT" commit a transaction to the database
  109931. 09h "SQLFDES" describe the items of a SELECT statement
  109932. 0Ah "SQLFGFI" get fetch information
  109933. 0Bh "SQLFFBK" fetch previous result row from SELECT statement
  109934. 0Ch "SQLFFET" fetch next result row from SELECT statement
  109935. 0Dh "SQLFEFB" enable fetch backwards
  109936. 0Eh "SQLFPRS" position in result set
  109937. 0Fh "SQLFURS" undo result set
  109938. 10h "SQLFNBV" get number of bind variables
  109939. 11h "SQLFBND" bind data variables
  109940. 12h "SQLFBNN" bind numerics
  109941. 13h "SQLFBLN" bind long number
  109942. 14h "SQLFBLD" bind long data variables
  109943. 15h "SQLFSRS" start restriction set processing
  109944. 16h "SQLFRRS" restart restriction set processing
  109945. 17h "SQLFCRS" close restriction set
  109946. 18h "SQLFDRS" drop restriction set
  109947. 19h "SQLFARF" apply Roll Forward journal
  109948. 1Ah "SQLFERF" end Roll Forward journal
  109949. 1Bh "SQLFSRF" start Roll Forward journal
  109950. 1Ch "SQLFSTO" store a compiled SQL command
  109951. 1Dh "SQLFRET" retrieve a compiled SQL command
  109952. 1Eh "SQLFDST" drop a stored command
  109953. 1Fh "SQLFCTY" get command type
  109954. 20h "SQLFEPO" get error position
  109955. 21h "SQLFGNR" get number of rows
  109956. 22h "SQLFNSI" get number of select items
  109957. 23h "SQLFRBF" get Roll Back flag
  109958. 24h "SQLFRCD" get return code
  109959. 25h "SQLFROW" get number of ROWs
  109960. 26h "SQLFSCN" set cursor name
  109961. 27h "SQLFSIL" set isolation level
  109962. 28h "SQLFSLP" set log parameters
  109963. 29h "SQLFSSB" set select buffer
  109964. 2Ah "SQLFSSS" set sort space
  109965. 2Bh "SQLFRLO" read long
  109966. 2Ch "SQLFWLO" write long
  109967. 2Dh "SQLFLSK" long seek
  109968. 2Eh "SQLFGLS" get long size
  109969. 2Fh "SQLFELO" end long operation
  109970. 30h "SQLFRBK" roll back a transaction from the database
  109971. 31h "SQLFERR" error message
  109972. 32h "SQLFCPY" copy
  109973. 33h "SQLFR01" reserved
  109974. 34h "SQLFSYS" system
  109975. 35h "SQLFSTA" statistics
  109976. 36h "SQLFR02" reserved
  109977. 37h "SQLFXAD" extra add
  109978. 38h "SQLFXCN" extra character to number
  109979. 39h "SQLFXDA" extra date add
  109980. 3Ah "SQLFXDP" extra date picture
  109981. 3Bh "SQLFXDV" extra divide
  109982. 3Ch "SQLFXML" extra multiply
  109983. 3Dh "SQLFXNP" extra number picture
  109984. 3Eh "SQLFXPD" extra picture date
  109985. 3Fh "SQLFXSB" extra subtract
  109986. 40h "SQLFINS" install database
  109987. 41h "SQLFDIN" deinstall database
  109988. 42h "SQLFDIR" directory of databases
  109989. 43h "SQLFTIO" timeout
  109990. 44h "SQLFFQN" get fully qualified column name
  109991. 45h "SQLFEXP" explain execution plan
  109992. 46h "SQLFFER" get full error
  109993. 47h "SQLFBKP" begin online backup
  109994. 48h "SQLFRDC" read backup data chunk
  109995. 49h "SQLFEBK" end backup
  109996. 4Ah "SQLFRES" begin restore from backup
  109997. 4Bh "SQLFWDC" write backup data chunk for restore
  109998. 4Ch "SQLFRRD" recover restored database to consistent state
  109999. 4Dh "SQLFERS" end restore
  110000. 4Eh "SQLFNRR" return number of result set rows
  110001. 4Fh "SQLFSTR" start restriction mode
  110002. 50h "SQLFSPR" stop restriction mode
  110003. 51h "SQLFCNC" connect 2
  110004. 52h "SQLFCNR" connect with no recovery
  110005. 53h "SQLFOMS" set output message size
  110006. 54h "SQLFIMS" set input message size
  110007. 55h "SQLFSCP" set cache pages
  110008. 56h "SQLFDSC" describe items of a SELECT statement (external)
  110009. 57h "SQLFLAB" get label info for items in SELECT statement
  110010. 58h "SQLFCBV" clear bind variables
  110011. 59h "SQLFGET" get database information
  110012. 5Ah "SQLFSET" set database information
  110013. 5Bh "SQLFTEC" translate error code
  110014. ----------478001-----------------------------
  110015. INT 47 - SQL Base - GET VERSION NUMBER
  110016. AX = 8001h
  110017. Return: ???
  110018. Program: SQL Base is a network-oriented database engine by Gupta Technologies
  110019. SeeAlso: AX=8000h
  110020. --------B-48---------------------------------
  110021. INT 48 - KEYBOARD - CORDLESS KEYBOARD TRANSLATION (PCjr)
  110022. SeeAlso: INT 49"PCjr"
  110023. --------h-48---------------------------------
  110024. INT 48 - Z100 - Slave 8259 - S100 vectored line 0
  110025. SeeAlso: INT 47"Z100",INT 49"Z100"
  110026. --------N-48---------------------------------
  110027. INT 48 - Watstar PC Network data pointer 1
  110028. SeeAlso: INT 49"Watstar"
  110029. --------O-48---------------------------------
  110030. INT 48 - Acorn BBC Master 512 - "OSNEWL" - SEND NEWLINE TO OUTPUT STREAM
  110031. Return: FLAGS destroyed
  110032. Note: writes a carriage return (0Dh) followed by a linefeed (0Ah)
  110033. SeeAlso: INT 40"Acorn",INT 47"Acorn",INT 49"Acorn"
  110034. --------b-48---------------------------------
  110035. INT 48 - Western Digital WD1002-27X SuperBIOS - DRIVE DATA (NOT A VECTOR!)
  110036. Note: the second WD1002-27X controller in a system uses the low byte to
  110037. store the number of drives controlled by the second controller,
  110038. and the high word for temporary storage during track recalculation;
  110039. the first controller uses offsets 74h-77h in the BIOS data area
  110040. (refer to MEMORY.LST) to store data
  110041. SeeAlso: INT 47"SuperBIOS"
  110042. --------V-48---------------------------------
  110043. INT 48 U - Compaq UILIB.EXE - API
  110044. AX = function (see #03204)
  110045. BX = call type (0002h) (see #03207)
  110046. ???
  110047. Return: ???
  110048. Note: returns AX=FFFFh if 1000h<=AX<=2000h and AX is not one of the functions
  110049. listed below
  110050. SeeAlso: AX=1A70h
  110051. (Table 03204)
  110052. Values for valid UILIB function number:
  110053. 1000h 1160h 12D0h 1430h 1570h 1680h 17F0h 1920h 1A90h
  110054. 1010h 1170h 12E0h 1440h 1578h 1690h 1800h 1930h 1AA0h
  110055. 1020h 1180h 12F0h 1450h 1580h 16A0h 1810h 1940h
  110056. 1030h 1190h 1300h 1460h 1590h 16B0h 1820h 1950h
  110057. 1040h 11A0h 1310h 1470h 1594h 16C0h 1830h 1960h
  110058. 1050h 11B0h 1320h 1480h 1598h 16D0h 1840h 1970h
  110059. 1060h 11C0h 1330h 1490h 15A0h 16E0h 1848h 1980h
  110060. 1070h 11D0h 1340h 14A0h 15B0h 16F0h 1850h 1990h
  110061. 1080h 11E0h 1350h 14B0h 15C0h 1700h 1860h 19A0h
  110062. 1090h 11F0h 1360h 14B8h 15D0h 1710h 1870h 19B0h
  110063. 1095h 1200h 1370h 14BBh 15D4h 1720h 1878h 19C0h
  110064. 1098h 1210h 1380h 14C0h 15D8h 1730h 1880h 19D0h
  110065. 10A0h 1220h 1390h 14D0h 15E0h 1735h 1890h 19E0h
  110066. 10C0h 1230h 13A0h 14E0h 15F0h 1740h 1898h 19F0h
  110067. 10D0h 1240h 13B0h 14F0h 1600h 1750h 18A0h 1A00h
  110068. 10E0h 1250h 13B8h 1500h 1610h 1770h 18B0h 1A10h
  110069. 10F0h 1260h 13C0h 1508h 1620h 1780h 18C0h 1A20h
  110070. 1100h 1270h 13D0h 1510h 1630h 1790h 18D0h 1A30h
  110071. 1110h 1280h 13E0h 1520h 1640h 17A0h 18E0h 1A40h
  110072. 1120h 1290h 13F0h 1530h 1650h 17B0h 18F0h 1A50h
  110073. 1130h 12A0h 1400h 1540h 1660h 17C0h 1900h 1A60h
  110074. 1140h 12B0h 1410h 1550h 1664h 17D0h 1909h 1A70h
  110075. 1150h 12C0h 1420h 1560h 1670h 17E0h 1910h 1A80h
  110076. --------b-4800-------------------------------
  110077. INT 48 - TI Professional PC - SPEAKER DEVICE - SOUND SPEAKER
  110078. AH = 00h
  110079. AL = number of 25ms ticks sound should last
  110080. Return: nothing
  110081. Desc: sound the speaker at the current frequency setting (see AH=02h) for
  110082. the indicated duration
  110083. Notes: this function returns immediately; the sound is terminated by the
  110084. timer interrupt handler
  110085. if a new sound is requested while one is already in progress, the
  110086. previous sound is terminated immediately and the new sound takes
  110087. its place
  110088. SeeAlso: AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  110089. SeeAlso: INT 40"TI Professional",INT 49/AH=01h"TI"
  110090. SeeAlso: INT 4A/AH=00h"TI",INT 4C"TI Professional",INT 4D/AH=00h
  110091. --------b-4801-------------------------------
  110092. INT 48 - TI Professional PC - SPEAKER DEVICE - CHECK SPEAKER STATUS
  110093. AH = 01h
  110094. Return: ZF clear if speaker is currently on
  110095. ZF set if speaker is currently off
  110096. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  110097. --------b-4802-------------------------------
  110098. INT 48 - TI Professional PC - SPEAKER DEVICE - SET SPEAKER FREQUENCY
  110099. AH = 02h
  110100. CX = frequency divisor (freq = 1250000 / CX)
  110101. Return: nothing
  110102. SeeAlso: AH=00h,AH=01h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  110103. --------b-4803-------------------------------
  110104. INT 48 - TI Professional PC - SPEAKER DEVICE - TURN ON SPEAKER
  110105. AH = 03h
  110106. Return: nothing
  110107. Desc: turn on the speaker at the current frequency, leaving it on until
  110108. explicitly turned off with AH=04h or the end of a subsequent
  110109. AH=00h
  110110. SeeAlso: AH=00h,AH=01h,AH=02h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  110111. --------b-4804-------------------------------
  110112. INT 48 - TI Professional PC - SPEAKER DEVICE - TURN OFF SPEAKER
  110113. AH = 04h
  110114. Return: nothing
  110115. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  110116. --------b-4805-------------------------------
  110117. INT 48 - TI Professional PC - SPEAKER DEVICE - DELAY
  110118. AH = 05h
  110119. CX = desired delay in milliseconds
  110120. Return: after delay expires
  110121. Note: the delay is only approximate, and may be longer than requested
  110122. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  110123. --------b-4806-------------------------------
  110124. INT 48 - TI Professional PC - CALCULATE CRC
  110125. AH = 06h
  110126. ES:BX -> memory block for which to calculate CRC
  110127. BP = size of block in bytes
  110128. Return: DX = CRC for block
  110129. ZF set if DX = 0000h
  110130. Note: if the CRC of a memory block is appended to the block, then the CRC
  110131. of the block plus CRC should equal 0000h
  110132. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  110133. --------b-4807-------------------------------
  110134. INT 48 - TI Professional PC - PRINT ROM MESSAGE
  110135. AH = 07h
  110136. SI = offset of ASCIZ message string within segment F400h
  110137. Return: nothing
  110138. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  110139. --------b-4808-------------------------------
  110140. INT 48 - TI Professional PC - DISPLAY SYSTEM ERROR MESSAGE
  110141. AH = 08h
  110142. BX = error number
  110143. Return: nothing
  110144. Desc: displays the error message " ** System Error ** - xxxx" where xxxx is
  110145. the hexadecimal value in BX
  110146. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  110147. --------b-4809-------------------------------
  110148. INT 48 - TI Professional PC - GET SYSTEM CONFIGURATION DATA
  110149. AH = 09h
  110150. Return: ES:BX -> system configuration word (see #03227)
  110151. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  110152. --------b-480A-------------------------------
  110153. INT 48 - TI Professional PC - GET EXTRA SYSTEM CONFIGURATION INFO ADDRESS
  110154. AH = 0Ah
  110155. Return: ES:BX -> configuration information (see #03205)
  110156. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Bh
  110157. Format of TI Professional PC extra system configuration information:
  110158. Offset Size Description (Table 03205)
  110159. -3 WORD memory size in paragraphs
  110160. 00h BYTE drive type byte (see #03206)
  110161. 01h WORD extra system configuration word 1
  110162. bit 0: 8087 is present
  110163. bits 15-1: reserved (0)
  110164. 03h WORD extra system configuration word 2
  110165. bits 15-0: reserved (0)
  110166. Bitfields for TI Professional PC drive type byte:
  110167. Bit(s) Description (Table 03206)
  110168. 0 drive A is double-sided
  110169. 1 drive A has 80 tracks instead of 40
  110170. 2 drive B is double-sided
  110171. 3 drive B has 80 tracks instead of 40
  110172. 4 drive C is double-sided
  110173. 5 drive C has 80 tracks instead of 40
  110174. 6 drive D is double-sided
  110175. 7 drive D has 80 tracks instead of 40
  110176. Note: the type for drive A is determined by motherboard switches; the
  110177. remaining drives' types are set from a table in IO.SYS
  110178. SeeAlso: #03205
  110179. --------b-480B-------------------------------
  110180. INT 48 - TI Professional PC - GET EXTRA SYSTEM CONFIGURATION INFORMATION
  110181. AH = 0Bh
  110182. Return: AL = drive type byte (see #03206)
  110183. BX = extra system configuration word 1 (see #03205)
  110184. CX = extra system configuration word 2 (see #03205)
  110185. AH destroyed
  110186. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah
  110187. --------V-481A70-----------------------------
  110188. INT 48 U - Compaq UILIB.EXE - INSTALLATION CHECK
  110189. AX = 1A70h
  110190. BX = call type (see #03207)
  110191. Return: CX = 5649h ('VI') if installed
  110192. DX = 4557h ('EW') if installed
  110193. AX = version??? (0106h)
  110194. (Table 03207)
  110195. Values for UILIB call type:
  110196. 0000h near
  110197. 0001h far
  110198. 0002h INT (only valid call type when using INT 48)
  110199. 0003h near
  110200. --------B-49---------------------------------
  110201. INT 49 - SYSTEM DATA - NON-KEYBOARD SCAN-CODE TRANSLATION TABLE (PCjr)
  110202. SeeAlso: #03208,INT 48"PCjr"
  110203. Format of PCjr scan-code translation table:
  110204. Offset Size Description (Table 03208)
  110205. 00h BYTE number of non-keyboard scancodes in the table
  110206. 01h N WORDs high byte 00h (NUL) byte scancode with low order byte
  110207. representing the scancode mapped values relative to their
  110208. input values within the range of 56h through 7Eh
  110209. --------h-49---------------------------------
  110210. INT 49 - Z100 - Slave 8259 - S100 vectored line 1
  110211. SeeAlso: INT 48"Z100",INT 4A"Z100"
  110212. --------N-49---------------------------------
  110213. INT 49 - Watstar PC Network data pointer 2
  110214. SeeAlso: INT 48"Watstar"
  110215. --------O-49---------------------------------
  110216. INT 49 - Acorn BBC Master 512 - "OSASCI" - WRITE CHARACTER TO CUR OUTPUT STREAM
  110217. AL = character to be written
  110218. Return: FLAGS destroyed
  110219. Note: converts carriage return (0Dh) into CRLF sequence (0Dh 0Ah)
  110220. SeeAlso: INT 40"Acorn",INT 46"Acorn",INT 47"Acorn",INT 48"Acorn"
  110221. --------b-49---------------------------------
  110222. INT 49 - Tandy 2000 - BOOTSTRAP LOADER
  110223. Note: this interrupt is identical to INT 19
  110224. SeeAlso: INT 19,INT 4A"Tandy 2000",INT 4C"Tandy 2000",INT 51"Tandy 2000"
  110225. --------a-490001-----------------------------
  110226. INT 49 - MAGic v1.16+ - TURN ON MAGNIFICATION
  110227. AX = 0001h
  110228. Return: AX = status (see #03209)
  110229. BX,CX,DX destroyed
  110230. Program: MAGic (MAGnification In Color) is a TSR by Microsystems Software, Inc.
  110231. providing 2x2 text and graphics magnification on VGA, XGA, and SVGA
  110232. Note: INT 49 is the default, but may be overridden on the commandline. The
  110233. actual interrupt in use may be found by searching for the signature
  110234. "MAGic" or "xMAGic" (for the deluxe version) immediately preceding
  110235. the interrupt handler (this is also the installation check). MAGic
  110236. uses CodeRunneR, which places the signature "RT" at offset 0000h in
  110237. the interrupt handler's segment, followed by MAGic's TSR ID of
  110238. "VMAG".
  110239. SeeAlso: AX=0002h,AX=0003h,AX=0004h,AX=0008h
  110240. Index: installation check;MAGic
  110241. (Table 03209)
  110242. Values for MAGic status:
  110243. 0000h cannot magnify current video mode
  110244. 0002h magnified (text mode)
  110245. 0003h magnified (graphics mode)
  110246. FFFDh function works only in magnified mode
  110247. FFFFh MAGic busy, retry later
  110248. --------a-490002-----------------------------
  110249. INT 49 - MAGic v1.16+ - TURN OFF MAGNIFICATION
  110250. AX = 0002h
  110251. Return: AX = status (see #03209)
  110252. BX,CX,DX destroyed
  110253. SeeAlso: AX=0001h
  110254. --------a-490003-----------------------------
  110255. INT 49 - MAGic v1.16+ - SHIFT MAGNIFIED WINDOW TO INCLUDE SPECIFIED LOCATION
  110256. AX = 0003h
  110257. BX = vertical position (character row [text] or pixel row [graphics])
  110258. DX = horizontal position (char column [text] or 8-pixel units [gr])
  110259. Return: AX = status
  110260. 0000h successful
  110261. FFFFh MAGic busy, retry later
  110262. BX,CX,DX destroyed
  110263. Note: window is not moved if the position is inside the current window
  110264. SeeAlso: AX=0001h,AX=0004h,AX=0005h
  110265. --------a-490004-----------------------------
  110266. INT 49 - MAGic v1.16+ - REPOSITION MAGNIFIED WINDOW
  110267. AX = 0004h
  110268. BX = vertical position of upper left corner
  110269. DX = horizontal position
  110270. Return: AX = status (see AX=0003h)
  110271. BX,CX,DX destroyed
  110272. SeeAlso: AX=0001h,AX=0003h,AX=0005h
  110273. --------a-490005-----------------------------
  110274. INT 49 - MAGic v1.16+ - GET POSITION OF MAGNIFIED WINDOW
  110275. AX = 0005h
  110276. Return: AX = status
  110277. 0000h successful
  110278. BX = vertical position (char row or pixel row)
  110279. DX = horizontal position (char column or 8-pixel units)
  110280. FFFFh MAGic busy, retry later
  110281. BX,DX destroyed
  110282. CX destroyed
  110283. SeeAlso: AX=0001h,AX=0003h,AX=0004h,AX=0006h,AX=0007h
  110284. --------a-490006-----------------------------
  110285. INT 49 - MAGic v1.16+ - GET SIZE OF FULL SCREEN
  110286. AX = 0006h
  110287. Return: AX = status
  110288. 0000h successful
  110289. BX = vertical size (char rows or pixel rows)
  110290. DX = horizontal size (char cols or 8-pixel units)
  110291. FFFFh MAGic busy, retry later
  110292. BX,DX destroyed
  110293. CX destroyed
  110294. SeeAlso: AX=0001h,AX=0005h,AX=0007h
  110295. --------a-490007-----------------------------
  110296. INT 49 - MAGic v1.16+ - GET SIZE OF MAGNIFICATION WINDOW
  110297. AX = 0007h
  110298. Return: AX = status
  110299. 0000h successful
  110300. BX = vertical size (char rows or pixel rows)
  110301. DX = horizontal size (char cols or 8-pixel units)
  110302. FFFEh invalid function
  110303. FFFFh MAGic busy, retry later
  110304. BX,DX destroyed
  110305. CX destroyed
  110306. BUG: in v1.16 and v1.17, this function is not recognized as valid, but
  110307. AX=0000h is accepted and will branch into hyperspace
  110308. SeeAlso: AX=0001h,AX=0006h
  110309. --------a-490008-----------------------------
  110310. INT 49 - MAGic v1.23+ - SET TEXT MODE MAGNIFICATION SIZE
  110311. AX = 0008h
  110312. BX = scaling factor (01h=1.4 times, 02h, 04h, 06h, 08h, 09h=12 times)
  110313. Return: AX = status
  110314. 0000h successful
  110315. FFFBh scaling factor only available in MAGic Deluxe
  110316. FFFCh already in magnified state, can't set size
  110317. Notes: this call specifies the amount a subsequent call to AX=0001h should
  110318. magnify the display
  110319. scaling factors greater than 2 are only available in MAGic Deluxe
  110320. SeeAlso: AX=0001h
  110321. --------V-4901-------------------------------
  110322. INT 49 - TI Professional PC - CRT - SET CURSOR SIZE AND TYPE
  110323. AH = 01h
  110324. CH = cursor start line (bits 3-0) and status (bits 6-5)
  110325. status bits:
  110326. 00 non-blinking cursor
  110327. 01 no cursor
  110328. 10 fast-blinking cursor
  110329. 11 slow-blinking cursor
  110330. CL = cursor end line
  110331. Return: nothing
  110332. Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  110333. SeeAlso: AH=02h,AH=03h,INT 40"TI Professional",INT 48/AH=00h"TI Professional"
  110334. SeeAlso: INT 4A/AH=00h"TI",INT 4B"TI Professional",INT 4D/AH=00h
  110335. SeeAlso: INT 57"TI Professional"
  110336. --------V-4902-------------------------------
  110337. INT 49 - TI Professional PC - CRT - SET CURSOR POSITION
  110338. AH = 02h
  110339. DH = column
  110340. DL = row
  110341. Return: DX destroyed
  110342. Notes: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  110343. the TI swaps the row and column compared to the equivalent IBM call
  110344. SeeAlso: AH=01h,AH=03h
  110345. --------V-4903-------------------------------
  110346. INT 49 - TI Professional PC - CRT - GET CURSOR POSTION AND TYPE
  110347. AH = 03h
  110348. Return: CH = cursor start and status (see AH=01h)
  110349. CL = cursor end line
  110350. DH = cursor column
  110351. DL = cursor row
  110352. Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  110353. SeeAlso: AH=01h,AH=02h
  110354. --------V-4906-------------------------------
  110355. INT 49 - TI Professional PC - CRT - SCROLL UP/COPY WINDOW
  110356. AH = 06h
  110357. AL = source blanking
  110358. 00h blank source region (move/scroll)
  110359. nonzero do not blank source region (copy)
  110360. DH,DL = source start column,row
  110361. BH,BL = destination start column,row
  110362. CH = width of region to move/copy
  110363. CL = height of region to move/copy
  110364. Return: nothing
  110365. Notes: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  110366. the specified region may be wider than the screen, but reliable
  110367. operation then requires that the height be exactly one row
  110368. SeeAlso: AH=01h,AH=02h,AH=07h,AH=13h,AH=14h
  110369. --------V-4907-------------------------------
  110370. INT 49 - TI Professional PC - CRT - SCROLL DOWN/COPY WINDOW
  110371. AH = 07h
  110372. AL = source blanking
  110373. 00h blank source region (move/scroll)
  110374. nonzero do not blank source region (copy)
  110375. DH,DL = source start column,row
  110376. BH,BL = destination start column,row
  110377. CH = width of region to move/copy
  110378. CL = height of region to move/copy
  110379. Return: nothing
  110380. Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  110381. SeeAlso: AH=01h,AH=02h,AH=06h,AH=13h,AH=14h
  110382. --------V-4908-------------------------------
  110383. INT 49 - TI Professional PC - CRT - GET CHARACTER AND ATTRIBUTE AT POSITION
  110384. AH = 08h
  110385. Return: AL = character at current cursor position
  110386. AH = attribute
  110387. Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  110388. SeeAlso: AH=01h,AH=09h,AH=0Ah,AH=0Eh,INT 10/AH=08h
  110389. --------V-4909-------------------------------
  110390. INT 49 - TI Professional PC - CRT - WRITE CHARACTER(S) WITH ATTRIBUTE
  110391. AH = 09h
  110392. AL = character to write
  110393. BL = attribute to use (becomes new current attribute)
  110394. CX = number of times to write character
  110395. Return: nothing
  110396. Desc: write CX copies of the character in AL beginning at the current cursor
  110397. position
  110398. Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  110399. SeeAlso: AH=01h,AH=08h,AH=0Ah,AH=0Eh,INT 10/AH=09h
  110400. --------V-490A-------------------------------
  110401. INT 49 - TI Professional PC - CRT - WRITE CHARACTER(S) WITH CURRENT ATTRIBUTE
  110402. AH = 0Ah
  110403. AL = character to write
  110404. CX = number of times to write character
  110405. Return: nothing
  110406. Desc: write CX copies of the character in AL beginning at the current cursor
  110407. position
  110408. Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  110409. SeeAlso: AH=01h,AH=02h,AH=08h,AH=09h,AH=0Eh,INT 10/AH=0Ah
  110410. --------V-490E-------------------------------
  110411. INT 49 - TI Professional PC - CRT - TTY OUTPUT
  110412. AH = 0Eh
  110413. AL = character to write
  110414. Return: nothing
  110415. Desc: write the character in AL at the current cursor position, advancing
  110416. the cursor, and interpreting CR, LF, TAB, and BEL characters
  110417. Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  110418. SeeAlso: AH=01h,AH=02h,AH=08h,AH=09h,AH=0Ah,INT 10/AH=0Eh
  110419. --------V-4910-------------------------------
  110420. INT 49 - TI Professional PC - CRT - WRITE BLOCK OF CHARACTERS WITH ATTRIBUTE
  110421. AH = 10h
  110422. AL = attribute (becomes new current attribute)
  110423. DX:BX -> string of characters to write
  110424. CX = length of string
  110425. Return: nothing
  110426. Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  110427. BUG: CX must not be 0000h on entry, or the system will crash
  110428. SeeAlso: AH=01h,AH=02h,AH=09h,AH=0Eh,AH=11h
  110429. --------V-4911-------------------------------
  110430. INT 49 - TI Professional PC - CRT - WRITE BLOCK OF CHARACTERS WITH CURR ATTRIB
  110431. AH = 11h
  110432. DX:BX -> string of characters to write
  110433. CX = length of string
  110434. Return: nothing
  110435. Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  110436. BUG: CX must not be 0000h on entry, or the system will crash
  110437. SeeAlso: AH=01h,AH=02h,AH=09h,AH=0Eh,AH=10h
  110438. --------V-4912-------------------------------
  110439. INT 49 - TI Professional PC - CRT - FILL ENTIRE SCREEN WITH ATTRIBUTE
  110440. AH = 12h
  110441. AL = attribute (see #03210)
  110442. Return: nothing
  110443. Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  110444. SeeAlso: AH=01h,AH=02h
  110445. Bitfields for TI Professional PC screen attribute:
  110446. Bit(s) Description (Table 03210)
  110447. 7 alternate character set (requires user-supplied ROM)
  110448. 6 blink
  110449. 5 underline
  110450. 4 reverse video
  110451. 3 character enable
  110452. 2 green (color) or 58% intensity (gray-scale)
  110453. 1 red (color) or 27.5% intensity
  110454. 0 blue (color) or 14.5% intensity
  110455. --------V-4913-------------------------------
  110456. INT 49 - TI Professional PC - CRT - CLEAR ENTIRE TEXT SCREEN AND HOME CURSOR
  110457. AH = 13h
  110458. Return: nothing
  110459. Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  110460. SeeAlso: AH=01h,AH=02h,AH=06h,AH=14h
  110461. --------V-4914-------------------------------
  110462. INT 49 - TI Professional PC - CRT - CLEAR ENTIRE GRAPHICS SCREEN
  110463. AH = 14h
  110464. Return: nothing
  110465. Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  110466. SeeAlso: AH=01h,AH=02h,AH=06h,AH=13h
  110467. --------V-4915-------------------------------
  110468. INT 49 - TI Professional PC - CRT - SET PROTECTED STATUS AREA
  110469. AH = 15h
  110470. CL = row at which to start status area, or 00h to cancel
  110471. CH = 00h
  110472. Return: nothing
  110473. Desc: set a protected area of the screen which will not be affected by TTY
  110474. writes or the scrolls they may generate
  110475. Notes: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  110476. the current cursor position must be above the status area in order to
  110477. set the protected area
  110478. SeeAlso: AH=01h,AH=02h
  110479. --------V-4916-------------------------------
  110480. INT 49 - TI Professional PC - CRT - SET ATTRIBUTE LATCH
  110481. AH = 16h
  110482. BL = new attribute (see #03210)
  110483. Return: nothing
  110484. Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  110485. SeeAlso: AH=01h,AH=02h
  110486. --------V-4917-------------------------------
  110487. INT 49 - TI Professional PC - CRT - GET START-OF-DISPLAY POINTER
  110488. AH = 17h
  110489. Return: DX = current offset at which display starts
  110490. Note: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  110491. SeeAlso: AH=01h,AH=02h,INT 10/AH=FEh
  110492. --------V-4918-------------------------------
  110493. INT 49 - TI Professional PC - CRT - PRINT TTY STRING
  110494. AH = 18h
  110495. CS:BX -> counted string (count byte with length followed by string)
  110496. Return: nothing
  110497. Notes: AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  110498. the string must be located in the caller's code segment; any TSRs
  110499. which want to hook INT 49 must check for this function and emulate
  110500. it, because the BIOS retrieves the caller's CS from the stack
  110501. SeeAlso: AH=01h,AH=02h,AH=0Eh
  110502. --------B-4A---------------------------------
  110503. INT 4A C - SYSTEM - USER ALARM HANDLER
  110504. Desc: This interrupt is invoked by the BIOS when a real-time clock alarm
  110505. occurs; an application may use it to perform an action at a
  110506. predetermined time.
  110507. Note: this interrupt is called from within a hardware interrupt handler,
  110508. so all usual precautions against reentering DOS must be taken
  110509. SeeAlso: INT 1A/AH=06h
  110510. --------h-4A---------------------------------
  110511. INT 4A - Z100 - Slave 8259 - S100 vectored line 2
  110512. SeeAlso: INT 49"Z100",INT 4B"Z100"
  110513. --------b-4A---------------------------------
  110514. INT 4A - Tandy 2000 - PRINT SCREEN
  110515. Note: this interrupt is identical to INT 05
  110516. SeeAlso: INT 05"PRINT SCREEN"
  110517. --------O-4A---------------------------------
  110518. INT 4A - Acorn BBC Master 512 - "OSWORD" - MISC FUNCTIONS USING CONTROL BLOCK
  110519. AL = function code
  110520. FAh transfer data between 80186 and 65C12 I/O processor
  110521. DS:BX -> control block (see #03211)
  110522. Return: FLAGS destroyed
  110523. control block updated
  110524. Note: there are more functions than are listed here, but details are not
  110525. available
  110526. SeeAlso: INT 40"Acorn",INT 4B"Acorn",INT 4C"Acorn"
  110527. Format of BBC Master control block for function FAh:
  110528. Offset Size Description (Table 03211)
  110529. 00h BYTE number of parameters sent to I/O processor (0Dh,0Eh)
  110530. 01h BYTE number of parameters read from I/O processor (01h)
  110531. 02h DWORD I/O processor address
  110532. 06h DWORD 80186 segment:offset address
  110533. 0Ah WORD number of bytes to transfer
  110534. 0Ch BYTE operation type
  110535. 00h write to 65C12 at 24 us/byte
  110536. 01h read from 65C12 at 24 us/byte
  110537. 02h write to 65C12 at 26 us/word
  110538. 03h read from 65C12 at 26 us/word
  110539. 04h write to 65C12 at 10 us/byte using 256-byte blocks
  110540. 05h read from 65C12 at 10 us/byte using 256-byte blocks
  110541. 0Dh BYTE 65C12 memory access control (only used if offset 00h = 0Eh)
  110542. (see #03212)
  110543. Bitfields for 65C12 memory access control:
  110544. Bit(s) Description (Table 03212)
  110545. 7 unused
  110546. 6 always use main screen memory if I/O addr 3000h-7FFFh (overrides bit 5)
  110547. 5 use shadow screen memory if screen address specified
  110548. 4 use current ROM rather than ROM selected by bits 3-0 (only if I/O
  110549. address between 8000h and BFFFh)
  110550. 3-0 paged ROM number
  110551. --------b-4A00-------------------------------
  110552. INT 4A - TI Professional PC - KEYBOARD - GET KEYPRESS
  110553. AH = 00h
  110554. Return: AX = keystroke (AH=00h for ASCII keys -- no scan code)
  110555. SeeAlso: AH=01h,AH=02h,AH=03h,AH=04h,AH=05h,INT 16/AH=00h
  110556. SeeAlso: INT 47"TI Professional",INT 48/AH=00h"TI Professional"
  110557. SeeAlso: INT 49/AH=01h"TI",INT 4C"TI Professional",INT 4D/AH=00h
  110558. SeeAlso: INT 5B"TI Professional"
  110559. --------b-4A01-------------------------------
  110560. INT 4A - TI Professional PC - KEYBOARD - GET KEYBOARD STATUS
  110561. AH = 01h
  110562. Return: ZF set if no keystroke available
  110563. ZF clear if keystrokes in buffer
  110564. AX = next keystroke (AH=00h for ASCII keys -- no scan code)
  110565. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h,INT 16/AH=01h
  110566. --------b-4A02-------------------------------
  110567. INT 4A - TI Professional PC - KEYBOARD - GET KEYBOARD MODE
  110568. AH = 02h
  110569. Return: AL = shift states (see #03213)
  110570. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h,INT 16/AH=02h
  110571. Bitfields for TI Professional PC keyboard shift states:
  110572. Bit(s) Description (Table 03213)
  110573. 0 Ctrl key pressed
  110574. 1 Alt key pressed
  110575. 2 either Shift key pressed
  110576. 3-6 0
  110577. 7 CapsLock is ON
  110578. --------b-4A03-------------------------------
  110579. INT 4A - TI Professional PC - KEYBOARD - FLUSH KEYBOARD BUFFER
  110580. AH = 03h
  110581. Return: nothing
  110582. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h
  110583. --------b-4A04-------------------------------
  110584. INT 4A - TI Professional PC - KEYBOARD - SEND COMMAND TO KEYBOARD
  110585. AH = 04h
  110586. AL = command
  110587. 00h reset to default states
  110588. 01h enable auto-repeat (default)
  110589. 02h disable auto-repeat
  110590. 03h lock keyboard
  110591. 04h unlock keyboard (default)
  110592. 05h enable keyclick (requires hardware modification to work)
  110593. 06h disable keyclick (default)
  110594. Return: nothing
  110595. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h
  110596. --------b-4A05-------------------------------
  110597. INT 4A - TI Professional PC - KEYBOARD - INSERT CHARACTER INTO KEYBOARD BUFFER
  110598. AH = 05h
  110599. BX = character code (BH=00h if ASCII character, BL=00h/BH nonzero for
  110600. extended codes) (see #03214)
  110601. Return: ZF set if keyboard buffer was already full
  110602. ZF clear if keystroke inserted into buffer
  110603. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h,INT 5B"TI"
  110604. (Table 03214)
  110605. Values for TI Professional PC scan/character codes:
  110606. Scan Key Normal Shift Ctrl Alt Notes
  110607. 00h -- unused
  110608. 01h F5 3F00h 5800h 6200h 6C00h
  110609. 02h F6 4000h 5900h 6300h 6D00h
  110610. 03h F7 4100h 5A00h 6400h 6E00h
  110611. 04h F8 4200h 5B00h 6500h 6F00h
  110612. 05h F9 4300h 5C00h 6600h 7000h
  110613. 06h F10 4400h 5D00h 6700h 7100h
  110614. 07h F11 4500h 0800h 0A00h 0C00h
  110615. 08h F12 4600h 0900h 0B00h 0D00h
  110616. 09h 1 ! 0031h 0021h ---- 7800h
  110617. 0Ah 2 @ 0032h 0040h 0300h 7900h
  110618. 0Bh 3 # 0033h 0023h ---- 7A00h
  110619. 0Ch 4 $ 0034h 0024h ---- 7B00h
  110620. 0Dh 5 % 0035h 0025h ---- 7C00h
  110621. 0Eh 6 ^ 0036h 005Eh 001Eh 7D00h
  110622. 0Fh 7 & 0037h 0026h ---- 7E00h
  110623. 10h 8 * 0038h 002Ah ---- 7F00h
  110624. 11h 9 ( 0039h 0028h ---- 8000h
  110625. 12h 0 ) 0030h 0029h ---- 8100h
  110626. 13h - _ 002Dh 005Fh 001Fh 8200h
  110627. 14h = + 003Dh 002Bh ---- 8300h
  110628. 15h BACK SPACE 0008h 0008h 007Fh ----
  110629. 16h ` ~ 0060h 007Eh ---- ----
  110630. 17h NUM = 003Dh 003Dh 003Dh 8C00h
  110631. 18h NUM + 002Bh 002Bh 002Bh 8D00h
  110632. 19h NUM SPAC 0020h 0020h 0020h 8E00h
  110633. 1Ah NUM TAB 0009h 0F00h 0009h 8F00h
  110634. 1Bh NUM 1 0031h 0031h 0031h (alt-###) [Note 5]
  110635. 1Ch (unused)
  110636. 1Dh NUM 0 0030h 0030h 0030h (alt-###) [Note 5]
  110637. 1Eh NUM ENTER 000Dh 000Dh 000Dh ----
  110638. 1Fh NUM 4 0034h 0034h 0034h (alt-###) [Note 5]
  110639. 20h NUM 5 0035h 0035h 0035h (alt-###) [Note 5]
  110640. 21h NUM 9 0039h 0039h 0039h (alt-###) [Note 5]
  110641. 22h NUM - 002Dh 002Dh 002Dh ----
  110642. 23h NUM 2 0032h 0032h 0032h (alt-###) [Note 5]
  110643. 24h-26h -- unused
  110644. 27h NUM 7 0037h 0037h 0037h (alt-###) [Note 5]
  110645. 28h NUM 8 0038h 0038h 0038h (alt-###) [Note 5]
  110646. 29h NUM 6 0036h 0036h 0036h (alt-###) [Note 5]
  110647. 2Ah NUM , 002Ch 002Ch 002Ch ----
  110648. 2Bh NUM 3 0033h 0033h 0033h (alt-###) [Note 5]
  110649. 2Ch NUM . 002Eh 002Eh 002Eh ----
  110650. 2Dh PRINT 7200h [Note2] ---- ---- [Notes 1,2]
  110651. 2Eh RtArrow 4D00h 8A00h 7400h 4E00h
  110652. 2Fh INS 5200h 2800h 2900h 2A00h [Note 1]
  110653. 30h DEL 5300h 3800h 3900h 3A00h [Note 1]
  110654. 31h TAB 0009h 0F00h 0009h ----
  110655. 32h Q 0071h 0051h 0011h 1000h
  110656. 33h W 0077h 0057h 0017h 1100h
  110657. 34h E 0065h 0045h 0005h 1200h
  110658. 35h R 0072h 0052h 0012h 1300h
  110659. 36h T 0074h 0054h 0014h 1400h
  110660. 37h Y 0079h 0059h 0019h 1500h
  110661. 38h U 0075h 0055h 0015h 1600h
  110662. 39h I 0069h 0049h 0009h 1700h
  110663. 3Ah O 006Fh 004Fh 000Fh 1800h
  110664. 3Bh P 0070h 0050h 0010h 1900h
  110665. 3Ch [ { 005Bh 007Bh 001Bh ----
  110666. 3Dh ] } 005Dh 007Dh 001Dh ----
  110667. 3Eh LINE FEED 000Ah 000Ah 7500h 4F00h
  110668. 3Fh BRK/PAUS [Note3] [Note4] ---- ---- [Notes 1,3,4]
  110669. 40h UpArrow 4800h 8800h 8400h 4900h
  110670. 41h ESC 001Bh 001Bh 001Bh ----
  110671. 42h A 0061h 0041h 0001h 1E00h
  110672. 43h S 0073h 0053h 0013h 1F00h
  110673. 44h D 0064h 0044h 0004h 2000h
  110674. 45h F 0066h 0046h 0006h 2100h
  110675. 46h G 0067h 0047h 0007h 2200h
  110676. 47h H 0068h 0048h 0008h 2300h
  110677. 48h J 006Ah 004Ah 000Ah 2400h
  110678. 49h K 006Bh 004Bh 000Bh 2500h
  110679. 4Ah L 006Ch 004Ch 000Ch 2600h
  110680. 4Bh ; : 003Bh 003Ah ---- ----
  110681. 4Ch ' " 0027h 0022h ---- ----
  110682. 4Dh RETURN 000Dh 000Dh 000Dh ----
  110683. 4Eh \ | 005Ch 007Ch 001Ch ----
  110684. 4Fh LeftArrow 4B00h 8B00h 7300h 4C00h
  110685. 50h HOME 4700h 8600h 7700h 8500h
  110686. 51h Space Bar 0020h 0020h 0020h 0020h
  110687. 52h Z 007Ah 005Ah 001Ah 2C00h
  110688. 53h X 0078h 0058h 0018h 2D00h
  110689. 54h C 0063h 0043h 0003h 2E00h
  110690. 55h V 0076h 0056h 0016h 2F00h
  110691. 56h B 0062h 0042h 0002h 3000h
  110692. 57h N 006Eh 004Eh 000Eh 3100h
  110693. 58h M 006Dh 004Dh 000Dh 3200h
  110694. 59h , < 002Ch 003Ch ---- ----
  110695. 5Ah PRINT 7200h [Note2] ---- ---- [Notes 1,2]
  110696. 5Bh . > 002Eh 003Eh ---- ----
  110697. 5Ch / ? 002Fh 003Fh ---- ----
  110698. 5Dh (unused)
  110699. 5Eh DEL 5300h 3800h 3900h 3A00h [Note 1]
  110700. 5Fh INS 5200h 2800h 2900h 2A00h [Note 1]
  110701. 60h DownArrow 5000h 8900h 7600h 5100h
  110702. 61h-63h -- unused
  110703. 64h BRK/PAUS [Note3] [Note4] ---- ---- [Notes 1,3,4]
  110704. 65h F1 3B00h 5400h 5E00h 6800h
  110705. 66h F2 3C00h 5500h 5F00h 6900h
  110706. 67h F3 3D00h 5600h 6000h 6A00h
  110707. 68h F4 3E00h 5700h 6100h 6B00h
  110708. 69h-6Fh -- unused
  110709. Notes: [1] four of the keys can have differing scan codes, depending on the
  110710. actual keyboard; the BIOS accepts either scan code ("normal": 2Fh,
  110711. 30h, 5Ah, 64h; "alternate": 2Dh,3Fh,5Eh,5Fh) for any of these keys
  110712. [2] Shift-Print invokes INT 5E for a screen dump; the PRTSCRN.DEV
  110713. device driver also supports Alt-Print, Ctrl-Print, Shift-Alt-Print,
  110714. and Shift-Ctrl-Print for dumping graphics in various permutations
  110715. [3] BRK/PAUS invokes INT 5C for a pause, then stuffs 0100h into the
  110716. keyboard buffer
  110717. [4] Shift-BRK/PAUS invokes INT 5D for the Break, then stuffs 0000h
  110718. into the keyboard buffer; MS-DOS hooks INT 5D to keep the 0000h from
  110719. appearing in the keyboard buffer
  110720. [5] on the TI Pro, one enters an arbitrary character slightly
  110721. differently than on a standard PC: exactly three numberpad digits
  110722. must be pressed (using leading zeros for codes less than 100), and
  110723. the key for the requested code is inserted into the keyboard buffer
  110724. immediately on pressing the third key. The Alt key may be released
  110725. and re-pressed arbitrarily often between digits without affecting
  110726. the Alt-digit-digit-digit sequence.
  110727. scan codes with bit 7 set are not key releases, but rather
  110728. auto-repeated keystrokes, which the BIOS only places into the
  110729. keyboard buffer if the buffer is empty at the time (thus avoiding
  110730. typeahead of repeated keystrokes faster than they can be processed)
  110731. SeeAlso: #00006 at INT 09
  110732. --------h-4B---------------------------------
  110733. INT 4B - Z100 - Slave 8259 - S100 vectored line 3
  110734. SeeAlso: INT 4A"Z100",INT 4C"Z100"
  110735. --------d-4B---------------------------------
  110736. INT 4B - Common Access Method SCSI interface (draft revision 1.9)
  110737. ES:DI -> CAM Control Block (see #03229 at INT 4F/AX=8100h)
  110738. InstallCheck: test for the string "SCSI_CAM" eight bytes past the INT 4Bh
  110739. handler
  110740. Notes: the CAM committee moved the interface to INT 4F after revision 1.9
  110741. to avoid conflicting with the IBM SCSI interface and the Virtual
  110742. DMA specification
  110743. the only driver to date reported to use the CAM interface on INT 4B
  110744. instead of INT 4F is from Future Domain (which has drivers for CAM
  110745. on either interrupt)
  110746. SeeAlso: INT 4F/AX=8100h
  110747. Index: installation check;Common Access Method SCSI interface
  110748. --------b-4B---------------------------------
  110749. INT 4B - Tandy 2000 - EQUIPMENT DETERMINATION
  110750. Return: AX = BIOS equipment list word (see #03215)
  110751. Note: this interrupt is identical to INT 11 on the Tandy 2000
  110752. SeeAlso: INT 11"EQUIPMENT",INT 4A"Tandy 2000",INT 4C"Tandy 2000"
  110753. Bitfields for Tandy 2000 BIOS equipment list:
  110754. Bit(s) Description (Table 03215)
  110755. 0 reserved
  110756. 1 monochrome graphics installed
  110757. 2 graphics with color option installed
  110758. 3 floppy disk drive 1 installed
  110759. 4 floppy disk drive 2 installed
  110760. 5 hard disk drive 1 installed
  110761. 6 hard disk drive 2 installed
  110762. 7 unused
  110763. 8 black and white monitor
  110764. 9 color monitor
  110765. 12-10 reserved
  110766. 13 printer installed
  110767. 14 reserved
  110768. 15 unused
  110769. SeeAlso: #00226 at INT 11
  110770. --------O-4B---------------------------------
  110771. INT 4B - Acorn BBC Master 512 - "OSBYTE" - MISC FUNCTIONS USING REGISTER PARAMS
  110772. AL = function code
  110773. BL = first parameter
  110774. BH = second parameter (if needed)
  110775. Return: BL = first return parameter
  110776. BH = second return parameter
  110777. CF depends on function
  110778. SeeAlso: INT 40"Acorn",INT 4A"Acorn",INT 4C"Acorn"
  110779. --------b-4B00-------------------------------
  110780. INT 4B - TI Professional PC - PARALLEL PORT - OUTPUT CHARACTER
  110781. AH = 00h
  110782. DL = printer number (00h)
  110783. AL = character to print
  110784. Return: AH = printer status (see #03216)
  110785. Note: on the TI Pro, the BIOS only supports DL=00h; MS-DOS versions for the
  110786. TI hook INT 4B and handle requests for DL<>00h
  110787. SeeAlso: AH=01h,AH=02h,INT 17/AH=00h
  110788. SeeAlso: INT 40"TI Professional",INT 48/AH=00h"TI Professional"
  110789. SeeAlso: INT 49/AH=01h"TI",INT 4C"TI Professional",INT 4D/AH=00h
  110790. Bitfields for TI Professional PC printer status:
  110791. Bit(s) Description (Table 03216)
  110792. 0 timeout (function 00h only)
  110793. 3-1 unused
  110794. 4 busy
  110795. 5 paper out
  110796. 6 on-line (selected)
  110797. 7 fault
  110798. --------b-4B01-------------------------------
  110799. INT 4B - TI Professional PC - PARALLEL PORT - INITIALIZE PRINTER
  110800. AH = 01h
  110801. DL = printer number (00h)
  110802. Return: AH = printer status (see #03216)
  110803. Note: on the TI Pro, the BIOS only supports DL=00h; MS-DOS versions for the
  110804. TI hook INT 4B and handle requests for DL<>00h
  110805. SeeAlso: AH=00h,AH=02h,INT 17/AH=01h
  110806. --------b-4B02-------------------------------
  110807. INT 4B - TI Professional PC - PARALLEL PORT - GET PRINTER STATUS
  110808. AH = 02h
  110809. DL = printer number (00h)
  110810. Return: AH = printer status (see #03216)
  110811. Note: on the TI Pro, the BIOS only supports DL=00h; MS-DOS versions for the
  110812. TI hook INT 4B and handle requests for DL<>00h
  110813. SeeAlso: AH=00h,AH=01h,INT 17/AH=02h
  110814. --------d-4B80-------------------------------
  110815. INT 4B - IBM SCSI interface
  110816. AH = 80h
  110817. AL = 00h-10h (Corel PowerSCSI INT4BCAM.SYS)
  110818. further details not yet available
  110819. --------d-4B8102DX0000-----------------------
  110820. INT 4B - Virtual DMA Specification (VDS) - GET VERSION
  110821. AX = 8102h
  110822. DX = 0000h
  110823. Return: CF clear if successful
  110824. AH = major version number
  110825. AL = minor version number
  110826. BX = product number (see #03217)
  110827. CX = product revision number
  110828. always 0000h for QMAPS and HPMM.SYS
  110829. always 0001h for Microsoft's EMM386.EXE v4.20-4.41
  110830. DX = flags (see #03219)
  110831. SI:DI = maximum DMA buffer size
  110832. CF set on error
  110833. AL = error code (see #03218)
  110834. Note: bit 5 of 0040h:007Bh is supposed to be set if VDS is supported; this is
  110835. apparently not always the case
  110836. SeeAlso: INT 2C/AX=002Bh,INT 31/AX=0400h,MEM 0040h:007Bh"4Bh"
  110837. Index: installation check;Virtual DMA Specification
  110838. (Table 03217)
  110839. Values for VDS product number:
  110840. 0000h for Quadtel's QMAPS and Hewlett-Packard's HPMM.SYS
  110841. 0001h for Microsoft's EMM386.EXE
  110842. 0003h for Windows 3.x WIN386.EXE
  110843. 0300h OS/2 (all versions to date)
  110844. 0EDCh for DR DOS 6.0 EMM386.SYS
  110845. 4560h ("E`") for Qualitas' 386MAX
  110846. 4D43h ("MC") for V Communications' Memory Commander
  110847. 5145h ("QE") for Quarterdeck's QEMM-386
  110848. 524Dh ("RM") for Helix's Netroom RM386
  110849. (Table 03218)
  110850. Values for VDS error code:
  110851. 01h region not in contiguous memory
  110852. 02h region crossed a physical alignment boundary
  110853. 03h unable to lock pages
  110854. 04h no buffer available
  110855. 05h region too large for buffer
  110856. 06h buffer currently in use
  110857. 07h invalid memory region
  110858. 08h region was not locked
  110859. 09h number of physical pages greater than table length
  110860. 0Ah invalid buffer ID
  110861. 0Bh copy out of buffer range
  110862. 0Ch invalid DMA channel number
  110863. 0Dh disable count overflow
  110864. 0Eh disable count underflow
  110865. 0Fh function not supported
  110866. 10h reserved flag bits set in DX
  110867. Bitfields for VDS flags:
  110868. Bit(s) Description (Table 03219)
  110869. 0 PC/XT bus (DMA in first megabyte only)
  110870. 1 physical buffer/remap region in first megabyte
  110871. 2 automatic remap enabled
  110872. 3 all memory is physically contiguous
  110873. 4-15 reserved (zero)
  110874. --------d-4B8103-----------------------------
  110875. INT 4B - Virtual DMA Specification - LOCK DMA REGION
  110876. AX = 8103h
  110877. DX = flags (see #03220)
  110878. ES:DI -> DMA descriptor structure (see #03221,#03222,#03223)
  110879. Return: CF clear if successful
  110880. DDS physical address field filled in
  110881. DDS buffer ID field filled (0000h if no buffer allocated)
  110882. CF set on error
  110883. AL = error code (see #03218)
  110884. DDS region size field filled wth maximum contiguous length in bytes
  110885. BUGS: Windows 3.0 does not correctly support automatic remapping or copying
  110886. in enhanced mode
  110887. Windows 3.0 in enhanced mode does not return a correct code on error
  110888. SeeAlso: AX=8104h,AX=8105h
  110889. Bitfields for VDS flags:
  110890. Bit(s) Description (Table 03220)
  110891. 0 reserved (zero)
  110892. 1 data should be copied into buffer (ignored if 2 set)
  110893. 2 buffer should not be allocated if region noncontiguous or crosses
  110894. physical alignment boundary specified by 4-5
  110895. 3 don't attempt automatic remap
  110896. 4 region must not cross 64K physical alignment boundary
  110897. 5 region must not cross 128K physical alignment boundary
  110898. 6-15 reserved (zero)
  110899. Format of DMA descriptor structure (DDS):
  110900. Offset Size Description (Table 03221)
  110901. 00h DWORD region size
  110902. 04h DWORD offset
  110903. 08h WORD segment/selector
  110904. 0Ah WORD buffer ID
  110905. 0Ch DWORD physical address
  110906. Format of Extended DMA descriptor structure (EDDS):
  110907. Offset Size Description (Table 03222)
  110908. 00h DWORD region size
  110909. 04h DWORD offset
  110910. 08h WORD segment/selector
  110911. 0Ah WORD reserved
  110912. 0Ch WORD number available
  110913. 0Eh WORD number used
  110914. 10h DWORD region 0 physical address
  110915. 14h DWORD region 0 size in bytes
  110916. 18h DWORD region 1 physical address
  110917. 1Ch DWORD region 1 size in bytes
  110918. ...
  110919. Format of Extended DMA descriptor structure (EDDS) with page table entries:
  110920. Offset Size Description (Table 03223)
  110921. 00h DWORD region size
  110922. 04h DWORD offset
  110923. 08h WORD segment/selector
  110924. 0Ah WORD reserved
  110925. 0Ch WORD number available
  110926. 0Eh WORD number used
  110927. 10h DWORD page table entry 0 (same as 80386 page table entry)
  110928. 14h DWORD page table entry 1
  110929. ...
  110930. Note: bits 1-11 of the page table entries should be zero; bit 0 set if page
  110931. is present and locked
  110932. --------d-4B8104-----------------------------
  110933. INT 4B - Virtual DMA Specification - UNLOCK DMA REGION
  110934. AX = 8104h
  110935. DX = flags
  110936. bit 0: reserved (zero)
  110937. bit 1: data should be copied out of buffer
  110938. bits 2-15 reserved (zero)
  110939. ES:DI -> DMA descriptor structure (see #03221,#03222) with region size,
  110940. physical address, and buffer ID fields set
  110941. Return: CF clear if successful
  110942. DDS physical address field set
  110943. DDS buffer ID field set (0000h if no buffer allocated)
  110944. CF set on error
  110945. AL = error code (see #03218)
  110946. DDS region size field filled wth maximum contiguous length in bytes
  110947. Note: Windows 3.0 does not check whether the region extends beyond the end of
  110948. a segment
  110949. BUG: Windows 3.0 in enhanced mode does not return a correct code on error
  110950. SeeAlso: AX=8103h,AX=8106h
  110951. --------d-4B8105-----------------------------
  110952. INT 4B - Virtual DMA Specification - SCATTER/GATHER LOCK REGION
  110953. AX = 8105h
  110954. DX = flags (see #03224)
  110955. ES:DI -> Extended DMA descriptor structure (see #03222,#03223)
  110956. region size, linear segment, linear offset, and number avail
  110957. fields set
  110958. Return: CF clear if successful
  110959. EDDS number used field set
  110960. if DX bit 6 set, lower 12 bits of BX = offset in first page
  110961. CF set on error
  110962. AL = error code (see #03218)
  110963. EDDS region size field filled with max length in bytes that can be
  110964. locked and described in the EDDS table
  110965. BUG: Windows 3.0 in enhanced mode may return zero instead of the physical
  110966. page address for pages which were originally not present
  110967. SeeAlso: AX=8103h,AX=8106h
  110968. Bitfields for VDS flags:
  110969. Bit(s) Description (Table 03224)
  110970. 0-5 reserved (zero)
  110971. 6 EDDS should be returned with page table entries
  110972. 7 only present pages should be locked (not-present pages receive entry
  110973. of 0000h)
  110974. 8-15 reserved (zero)
  110975. --------d-4B8106-----------------------------
  110976. INT 4B - Virtual DMA Specification - SCATTER/GATHER UNLOCK REGION
  110977. AX = 8106h
  110978. DX = flags (see #03225)
  110979. ES:DI -> Extended DMA descriptor structure (see #03222,#03223) returned
  110980. by AX=8105h
  110981. Return: CF clear if successful
  110982. CF set on error
  110983. AL = error code (see #03218)
  110984. Note: according to the Microsoft version of the VDS specification, the
  110985. actual scatter/gather list is ignored, while according to the IBM
  110986. version of the specification, "the result of a LOCK operation"
  110987. must be provided to this function
  110988. SeeAlso: AX=8104h,AX=8105h
  110989. Bitfields for VDS flags:
  110990. Bit(s) Description (Table 03225)
  110991. 0-5 reserved (zero)
  110992. 6 EDDS contains page table entries
  110993. 7 EDDS may contain not-present pages (entry = 0000h)
  110994. 8-15 reserved (zero)
  110995. --------d-4B8107-----------------------------
  110996. INT 4B - Virtual DMA Specification - REQUEST DMA BUFFER
  110997. AX = 8107h
  110998. DX = flags
  110999. bit 0: reserved (zero)
  111000. bit 1: data should be copied into buffer
  111001. bits 2-15 reserved (zero)
  111002. ES:DI -> DMA descriptor structure (see #03221) with region size set
  111003. (also region offset and region segment if DX bit 1 set)
  111004. Return: CF clear if successful
  111005. DDS physical address and buffer ID set
  111006. DDS region size filled with length of buffer
  111007. CF set on error
  111008. AL = error code (see #03218)
  111009. SeeAlso: AX=8108h
  111010. --------d-4B8108-----------------------------
  111011. INT 4B - Virtual DMA Specification - RELEASE DMA BUFFFER
  111012. AX = 8108h
  111013. DX = flags
  111014. bit 0: reserved (zero)
  111015. bit 1: data should be copied out of buffer
  111016. bits 2-15 reserved (zero)
  111017. ES:DI -> DMA descriptor structure (see #03221,#03222) with buffer ID set
  111018. (also region size/region offset/segment if DX bit 1 set)
  111019. Return: CF clear if successful
  111020. CF set on error
  111021. AL = error code (see #03218)
  111022. BUG: under Windows 3.0 Enhanced mode, you must specify that data be copied
  111023. for this function to work correctly
  111024. SeeAlso: AX=8107h
  111025. --------d-4B8109DX0000-----------------------
  111026. INT 4B - Virtual DMA Specification - COPY INTO DMA BUFFER
  111027. AX = 8109h
  111028. DX = 0000h
  111029. ES:DI -> DMA descriptor structure (see #03221,#03222) with buffer ID,
  111030. region segment/offset, and region size fields set
  111031. BX:CX = starting offset into DMA buffer
  111032. Return: CF clear if successful
  111033. CF set on error
  111034. AL = error code (see #03218)
  111035. BUG: Windows 3.0 Enhanced mode does not correctly interpret the copy count
  111036. SeeAlso: AX=810Ah
  111037. --------d-4B810ADX0000-----------------------
  111038. INT 4B - Virtual DMA Specification - COPY OUT OF DMA BUFFER
  111039. AX = 810Ah
  111040. DX = 0000h
  111041. ES:DI -> DMA descriptor structure (see #03221,#03223) with buffer ID,
  111042. region segment/offset, and region size fields set
  111043. BX:CX = starting offset into DMA buffer
  111044. Return: CF clear if successful
  111045. CF set on error
  111046. AL = error code (see #03218)
  111047. BUG: Windows 3.0 Enhanced mode does not correctly interpret the copy count
  111048. SeeAlso: AX=8109h
  111049. --------d-4B810B-----------------------------
  111050. INT 4B - Virtual DMA Specification - DISABLE DMA TRANSLATION
  111051. AX = 810Bh
  111052. BX = DMA channel number
  111053. DX = 0000h
  111054. Return: CF clear if successful
  111055. CF set on error
  111056. AL = error code (see #03218)
  111057. SeeAlso: AX=810Ch
  111058. --------d-4B810C-----------------------------
  111059. INT 4B - Virtual DMA Specification - ENABLE DMA TRANSLATION
  111060. AX = 810Ch
  111061. BX = DMA channel number
  111062. DX = 0000h
  111063. Return: CF clear if successful
  111064. ZF set if disable count decremented to zero
  111065. CF set on error
  111066. AL = error code (see #03218)
  111067. SeeAlso: AX=810Bh
  111068. --------Q-4B810D-----------------------------
  111069. INT 4B - QEMM-386 - BUG
  111070. AX = 810Dh
  111071. Note: the code in QEMM v5.11 and 6.00 jumps to an invalid location on this
  111072. call
  111073. --------h-4C---------------------------------
  111074. INT 4C - Z100 - Slave 8259 - S100 vectored line 4
  111075. SeeAlso: INT 4B"Z100",INT 4D"Z100"
  111076. --------b-4C---------------------------------
  111077. INT 4C - TI Professional PC - CLOCK/ANALOG INTERFACE
  111078. no details available
  111079. SeeAlso: INT 40"TI Professional",INT 49/AH=01h"TI"
  111080. SeeAlso: INT 4A/AH=00h"TI",INT 4B"TI Professional",INT 4D/AH=00h
  111081. SeeAlso: INT 58"TI Professional"
  111082. --------b-4C---------------------------------
  111083. INT 4C - Tandy 2000 - GET MEMORY SIZE
  111084. Return: AX = kilobytes of contiguous memory starting at 0
  111085. Note: this interrupt is identical to INT 12 on the Tandy 2000
  111086. SeeAlso: INT 12"BIOS",INT 4A"Tandy 2000",INT 4B"Tandy 2000",INT 51"Tandy 2000"
  111087. --------O-4C---------------------------------
  111088. INT 4C - Acorn BBC Master 512 - "OSCLI" - INTERPRET COMMAND LINE
  111089. DS:BX -> CR-terminated command string
  111090. Return: FLAGS destroyed
  111091. SeeAlso: INT 40"Acorn",INT 4A"Acorn",INT 4B"Acorn"
  111092. --------h-4D---------------------------------
  111093. INT 4D - Z100 - Slave 8259 - S100 vectored line 5
  111094. SeeAlso: INT 4C"Z100",INT 4E"Z100"
  111095. --------s-4D---------------------------------
  111096. INT 4D - IBM - M-Audio Adapter SUPPORT
  111097. no details available; supposedly documented in IBM form G571-0203-01
  111098. --------B-4D00-------------------------------
  111099. INT 4D - TI Professional PC - DISK - RESET DISK SYSTEM
  111100. AH = 00h
  111101. DL = drive (if bit 7 is set both hard disks and floppy disks reset)
  111102. Return: AH = status (see #00234 at INT 13/AH=01h)
  111103. CF clear if successful (returned AH=00h)
  111104. CF set on error
  111105. Note: this function is the same as INT 13/AH=00h on a standard PC BIOS
  111106. SeeAlso: AH=01h,AH=02h,AH=08h,AH=0Bh,INT 13/AH=00h,INT 46"TI Professional"
  111107. SeeAlso: INT 48/AH=00h"TI Professional",INT 4A/AH=00h"TI"
  111108. --------B-4D01-------------------------------
  111109. INT 4D - TI Professional PC - DISK - GET STATUS OF LAST OPERATION
  111110. AH = 01h
  111111. DL = drive (bit 7 set for hard disk)
  111112. Return: CF clear if status unchanged
  111113. CF set if status changed since last call
  111114. AH = 00h
  111115. AL = status of previous operation (see #00234 at INT 13/AH=01h)
  111116. Notes: this function is nearly the same as INT 13/AH=01h on a standard PC BIOS
  111117. the TI's BIOS tranparently performs a number of retries, and an error
  111118. status is only reported if all of the retries fail. To get the error
  111119. status if the operation succeeded on a retry, use AH=07h instead
  111120. SeeAlso: AH=00h,AH=07h,INT 13/AH=01h
  111121. --------B-4D02-------------------------------
  111122. INT 4D - TI Professional PC - DISK - READ SECTOR(S) INTO MEMORY
  111123. AH = 02h
  111124. AL = number of sectors to read (must be nonzero)
  111125. CH = low eight bits of cylinder number
  111126. CL = sector number 1-63 (bits 0-5)
  111127. high two bits of cylinder (bits 6-7, hard disk only)
  111128. DH = head number
  111129. DL = drive number (bit 7 set for hard disk)
  111130. ES:BX -> data buffer
  111131. Return: CF set on error
  111132. if AH = 11h (corrected ECC error), AL = burst length
  111133. CF clear if successful
  111134. AH = status (see #00234 at INT 13/AH=01h)
  111135. AL = number of sectors transferred
  111136. ES:BX -> buffer for last sector processed (including one with errors)
  111137. SeeAlso: AH=00h,AH=01h,AH=03h,AH=04h,INT 13/AH=02h
  111138. --------B-4D03-------------------------------
  111139. INT 4D - TI Professional PC - DISK - WRITE SECTOR(S) FROM MEMORY
  111140. AH = 03h
  111141. AL = number of sectors to write (must be nonzero)
  111142. CH = low eight bits of cylinder number
  111143. CL = sector number 1-63 (bits 0-5)
  111144. high two bits of cylinder (bits 6-7, hard disk only)
  111145. DH = head number
  111146. DL = drive number (bit 7 set for hard disk)
  111147. ES:BX -> buffer containing data
  111148. Return: CF set on error
  111149. if AH = 11h (corrected ECC error), AL = burst length
  111150. CF clear if successful
  111151. AH = status (see #00234 at INT 13/AH=01h)
  111152. AL = number of sectors transferred
  111153. ES:BX -> buffer for last sector processed (including one with errors)
  111154. SeeAlso: AH=00h,AH=01h,AH=02h,AH=04h,INT 13/AH=03h
  111155. --------B-4D04-------------------------------
  111156. INT 4D - TI Professional PC - DISK - VERIFY DISK SECTOR CRC(S)
  111157. AH = 04h
  111158. AL = number of sectors to verify (must be nonzero)
  111159. CH = low eight bits of cylinder number
  111160. CL = sector number 1-63 (bits 0-5)
  111161. high two bits of cylinder (bits 6-7, hard disk only)
  111162. DH = head number
  111163. DL = drive number (bit 7 set for hard disk)
  111164. ES:BX -> data buffer
  111165. Return: CF set on error
  111166. if AH = 11h (corrected ECC error), AL = burst length
  111167. CF clear if successful
  111168. AH = status (see #00234 at INT 13/AH=01h)
  111169. AL = number of sectors transferred
  111170. ES:BX -> buffer for last sector processed (including one with errors)
  111171. Note: even though no data is transferred, ES:BX must still be valid
  111172. SeeAlso: AH=00h,AH=01h,AH=02h,AH=06h,INT 13/AH=04h
  111173. --------B-4D05-------------------------------
  111174. INT 4D - TI Professional PC - DISK - NOP
  111175. AH = 05h
  111176. Note: on the TI Pro, FORMAT.COM contains direct port I/O commands to perform
  111177. disk formatting, rather than using the BIOS
  111178. --------B-4D06-------------------------------
  111179. INT 4D - TI Professional PC - DISK - VERIFY DISK SECTOR(S)
  111180. AH = 06h
  111181. AL = number of sectors to verify (must be nonzero)
  111182. CH = low eight bits of cylinder number
  111183. CL = sector number 1-63 (bits 0-5)
  111184. high two bits of cylinder (bits 6-7, hard disk only)
  111185. DH = head number
  111186. DL = drive number (bit 7 set for hard disk)
  111187. ES:BX -> data buffer
  111188. Return: CF set on error
  111189. if AH = 11h (corrected ECC error), AL = burst length
  111190. CF clear if successful
  111191. AH = status (see #00234 at INT 13/AH=01h)
  111192. AL = number of sectors transferred
  111193. ES:BX -> buffer for last sector processed (including one with errors)
  111194. Note: even though no data is transferred, ES:BX must still be valid because
  111195. an actual comparison with disk data is performed, not just the CRC
  111196. check of the standard PC BIOS or INT 4D/AH=04h
  111197. SeeAlso: AH=00h,AH=01h,AH=02h,AH=04h,INT 13/AH=04h
  111198. --------B-4D07-------------------------------
  111199. INT 4D - TI Professional PC - DISK - GET RETRY STATUS OF LAST OPERATION
  111200. AH = 07h
  111201. DL = drive (bit 7 set for hard disk)
  111202. Return: CF clear if status unchanged
  111203. CF set if status changed since last call
  111204. AH = 00h
  111205. AL = status of previous operation (see #00234 at INT 13/AH=01h)
  111206. Notes: this function is nearly the same as INT 13/AH=01h on a standard PC BIOS
  111207. the TI's BIOS tranparently performs a number of retries; this function
  111208. returns the error status of a failed operation even if the operation
  111209. succeeded on a retry
  111210. SeeAlso: AH=00h,AH=01h,INT 13/AH=01h
  111211. --------B-4D08-------------------------------
  111212. INT 4D - TI Professional PC - DISK - SET STANDARD DEVICE INTERFACE TABLE
  111213. AH = 08h
  111214. DL = drive number (00h-03h)
  111215. AL = drive type
  111216. 00h single-sided 48 tpi (40-track, 8 sectors, 512 bytes/sector)
  111217. 01h double-sided 48 tpi (40-track, 8 sectors, 512 bytes/sector)
  111218. 02h single-sided 96 tpi (80-track, 8 sectors, 512 bytes/sector)
  111219. 03h double-sided 96 tpi (80-track, 8 sectors, 512 bytes/sector)
  111220. Return: nothing???
  111221. SeeAlso: AH=00h,AH=09h
  111222. --------B-4D09-------------------------------
  111223. INT 4D - TI Professional PC - DISK - SET DEVICE INTERFACE TABLE ADDRESS
  111224. AH = 09h
  111225. DL = drive number (00h-07h)
  111226. ES:BX -> Device Interface Table (see #03226)
  111227. Return: nothing???
  111228. SeeAlso: AH=00h,AH=08h,AH=0Ah,INT 1E
  111229. Format of TI Professional PC Device Interface Table:
  111230. Offset Size Description (Table 03226)
  111231. 00h DWORD -> entry point for disk routine
  111232. 04h WORD bytes per sector
  111233. 06h BYTE sectors per track
  111234. 07h BYTE number of heads
  111235. 08h BYTE number of cylinders
  111236. 09h BYTE retry count
  111237. 0Ah BYTE precompensation start
  111238. SeeAlso: #01264 at INT 1E
  111239. --------B-4D0A-------------------------------
  111240. INT 4D - TI Professional PC - DISK - GET DEVICE INTERFACE TABLE ADDRESS
  111241. AH = 0Ah
  111242. DL = drive number (00h-07h)
  111243. Return: AH = status
  111244. ES:BX -> Device Interface Table (see #03226)
  111245. SeeAlso: AH=00h,AH=08h,AH=09h,INT 1E
  111246. --------B-4D0B-------------------------------
  111247. INT 4D - TI Professional PC - DISK - TURN OFF ALL DRIVES
  111248. AH = 0Bh
  111249. Return: AH = 00h
  111250. Note: used for diagnostics or to conserve power
  111251. SeeAlso: AH=00h
  111252. --------h-4E---------------------------------
  111253. INT 4E - Z100 - Slave 8259 - S100 vectored line 6
  111254. SeeAlso: INT 4D"Z100",INT 4F"Z100"
  111255. --------b-4E00-------------------------------
  111256. INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - SET BIOS DATE
  111257. AH = 00h
  111258. BX = number of days since January 1, 1980
  111259. Return: nothing
  111260. SeeAlso: AH=01h,AH=02h
  111261. SeeAlso: INT 40"TI Professional",INT 48/AH=00h"TI Professional"
  111262. SeeAlso: INT 4A/AH=00h"TI",INT 4F"TI Professional"
  111263. --------b-4E01-------------------------------
  111264. INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - SET BIOS TIME
  111265. AH = 01h
  111266. CH = hours
  111267. CL = minutes
  111268. DH = seconds
  111269. DL = hundredths
  111270. Return: nothing
  111271. Note: the BIOS does not validate the data passed to this function
  111272. SeeAlso: AH=00h,AH=02h
  111273. --------b-4E02-------------------------------
  111274. INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - GET BIOS DATA AND TIME
  111275. AH = 02h
  111276. Return: AX = number of days since January 1, 1980
  111277. CH = hours
  111278. CL = minutes
  111279. DH = seconds
  111280. DL = hundredths
  111281. SeeAlso: AH=00h,AH=01h
  111282. --------h-4F---------------------------------
  111283. INT 4F - Z100 - Slave 8259 - S100 vectored line 7
  111284. SeeAlso: INT 4E"Z100"
  111285. --------b-4F---------------------------------
  111286. INT 4F - TI Professional PC - SYSTEM CONFIGURATION CALL
  111287. Return: AX = system configuration word (see #03227)
  111288. BX = size of contiguous DOS memory in paragraphs
  111289. SeeAlso: INT 11"BIOS",INT 12"BIOS",INT 40"TI Professional",INT 48/AH=09h
  111290. SeeAlso: INT 49/AH=01h"TI",INT 4B"TI Professional",INT 4D/AH=00h
  111291. SeeAlso: INT 4E"TI Professional"
  111292. Bitfields for TI Professional PC system configuration:
  111293. Bit(s) Description (Table 03227)
  111294. 0 floppy drive 0 (A:, internal) installed
  111295. 1 floppy drive 1 (B:, internal) installed
  111296. 2 floppy drive 2 (C:, external) installed
  111297. 3 floppy drive 3 (D:, external) installed
  111298. 4 drive A: is 96tpi (80 tracks)
  111299. 5 drive A: is double-sided
  111300. 6 60 Hz power instead of 50 Hz
  111301. 7 hard disk (E: or E:/F:) installed
  111302. 8 serial port 1 installed
  111303. 9 serial port 2 installed
  111304. 10 serial port 3 installed
  111305. 11 serial port 4 installed
  111306. 14-12 installed graphics RAM
  111307. 000 none (text-only system)
  111308. 001 bank A only (graphics limited to 2 of 8 colors)
  111309. 111 banks A/B/C (graphics supports 8 of 8 colors)
  111310. 15 clock/analog board installed
  111311. --------d-4F8100-----------------------------
  111312. INT 4F - Common Access Method SCSI interface rev 2.3 - SEND CCB TO XPT/SIM
  111313. AX = 8100h
  111314. ES:BX -> CAM Control Block (CCB) (see #03229)
  111315. Return: AH = status
  111316. 00h successful
  111317. 01h invalid CCB address (0000h:0000h)
  111318. Note: the SCSI Interface Module (SIM) may complete the requested function
  111319. and invoke the completion callback function before this call returns
  111320. SeeAlso: AX=8200h,INT 2F/AX=7F01h,INT 4B"Common Access Method"
  111321. (Table 03228)
  111322. Values for CAM function code:
  111323. 00h NOP
  111324. 01h execute SCSI I/O
  111325. 02h get device type
  111326. 03h path inquiry
  111327. 04h release SIM queue
  111328. 05h set async callback
  111329. 06h set device type
  111330. 07h-0Fh reserved
  111331. 10h abort SCSI command
  111332. 11h reset SCSI bus
  111333. 12h reset SCSI device
  111334. 13h terminate I/O process
  111335. 14h-1Fh reserved
  111336. 20h engine inquiry
  111337. 21h execute engine request
  111338. 22h-2Fh reserved
  111339. 30h enable logical unit number
  111340. 31h execute target I/O
  111341. 32h-7Fh reserved
  111342. 80h-FFh vendor-specific functions
  111343. Format of CAM Control Block:
  111344. Offset Size Description (Table 03229)
  111345. 00h DWORD physical address of this CCB
  111346. 04h WORD CAM control block length
  111347. 06h BYTE function code (see #03228)
  111348. 07h BYTE CAM status (see #03232)
  111349. 08h BYTE SCSI status
  111350. 09h BYTE path ID (FFh = XPT)
  111351. 0Ah BYTE target ID
  111352. 0Bh BYTE logical unit number
  111353. 0Ch WORD CAM flags (see #03230)
  111354. 0Eh BYTE CAM address flags (see #03231)
  111355. 0Fh BYTE target-mode flags (see #03233)
  111356. ---function 02h---
  111357. 10h DWORD pointer to 36-byte buffer for inquiry data or 0000h:0000h
  111358. 14h BYTE peripheral device type of target logical unit number
  111359. ---function 03h---
  111360. 10h BYTE version number (00h-07h prior to rev 1.7, 08h = rev 1.7,
  111361. 09h-FFh = rev no, i.e. 23h = rev 2.3)
  111362. 11h BYTE SCSI capabilities (see #03234)
  111363. 12h BYTE target mode support
  111364. bit 7: processor mode
  111365. bit 6: phase-cognizant mode
  111366. bit 5-0: reserved
  111367. 13h BYTE miscellaneous flags
  111368. bit 7: scanned high to low instead of low to high
  111369. bit 6: removables not included in scan
  111370. bit 5: inquiry data not kept by XPT
  111371. bits 4-0: reserved
  111372. 14h WORD engine count
  111373. 16h 14 BYTEs vendor-specific data
  111374. 24h DWORD size of private data area
  111375. 28h DWORD asynchronous event capabilities (see #03235)
  111376. 2Ch BYTE highest path ID assigned
  111377. 2Dh BYTE SCSI device ID of initiator
  111378. 2Eh 2 BYTEs reserved
  111379. 30h 16 BYTEs SIM vendor ID
  111380. 40h 16 BYTEs HBA (host bus adaptor) vendor ID
  111381. 50h 4 BYTEs operating-system dependant usage
  111382. ---functions 00h,04h,11h,12h---
  111383. no additional fields
  111384. ---function 05h---
  111385. 10h DWORD asynchronous event enables (refer to function 03h above)
  111386. 14h DWORD pointer to asynchronous callback routine (see #03241)
  111387. 18h DWORD pointer to peripheral driver buffer
  111388. 1Ch BYTE size of peripheral buffer
  111389. ---function 06h---
  111390. 10h BYTE peripheral device type of target
  111391. ---functions 10h,13h---
  111392. 10h DWORD pointer to CCB to be aborted
  111393. ---function 20h---
  111394. 10h WORD engine number
  111395. 12h BYTE engine type
  111396. 00h buffer memory
  111397. 01h lossless compression
  111398. 02h lossy compression
  111399. 03h encryption
  111400. 13h BYTE engine algorithm ID
  111401. 00h vendor-unique
  111402. 01h LZ1 variation 1 (STAC)
  111403. 02h LZ2 variation 1 (HP DCZL)
  111404. 03h LZ2 variation 2 (Infochip)
  111405. 14h DWORD engine memory size
  111406. ---function 21h---
  111407. 10h DWORD pointer to peripheral driver
  111408. 14h 4 BYTEs reserved
  111409. 18h DWORD OS-dependent request-mapping info
  111410. 1Ch DWORD address of completion callback routine
  111411. 20h DWORD pointer to scatter/gather list or data buffer
  111412. 24h DWORD length of data transfer
  111413. 28h DWORD pointer to engine buffer data
  111414. 2Ch 2 BYTEs reserved
  111415. 2Eh WORD number of scatter/gather entries
  111416. 30h DWORD maximum destination data length
  111417. 34h DWORD length of destination data
  111418. 38h DWORD source residual length
  111419. 3Ch 12 BYTEs reserved
  111420. 48h DWORD OS-dependent timeout value
  111421. 4Ch 4 BYTEs reserved
  111422. 50h WORD engine number
  111423. 52h WORD vendor-unique flags
  111424. 54h 4 BYTEs reserved
  111425. 58h N BYTEs private data area for SIM
  111426. ---function 30h---
  111427. 10h WORD group 6 vendor-unique CDB length
  111428. 12h WORD group 7 vendor-unique CDB length
  111429. 14h DWORD pointer to target CCB list
  111430. 18h WORD number of target CCBs
  111431. ---other functions---
  111432. 10h DWORD pointer to peripheral driver
  111433. 14h DWORD pointer to next CCB
  111434. 18h DWORD OS-dependent request mapping information
  111435. 1Ch DWORD address of completion callback routine (see #03240)
  111436. 20h DWORD pointer to scatter/gather list or data buffer
  111437. 24h DWORD length of data transfer
  111438. 28h DWORD pointer to sense info buffer
  111439. 2Ch BYTE length of sense info buffer
  111440. 2Dh BYTE CDB length
  111441. 2Eh WORD number of scatter/gather entries
  111442. scatter/gather list is array of 2N DWORDs, each pair specifying
  111443. the address and length of a data block
  111444. 30h 4 BYTEs vendor-specific data
  111445. 34h BYTE (ret) SCSI status
  111446. 35h BYTE (ret) auto-sense residual length
  111447. 36h 2 BYTEs reserved
  111448. 38h DWORD (ret) residual length
  111449. 40h 12 BYTEs Command Descriptor Block (CDB) (see #03236,#03237,#03238)
  111450. 44h DWORD OS-dependent timeout value
  111451. 48h DWORD pointer to message buffer
  111452. 4Ch WORD length of message buffer
  111453. 4Eh WORD vendor-unique flags
  111454. 50h BYTE tag queue action
  111455. 51h 3 BYTEs reserved
  111456. 54h N BYTEs private data area for SIM
  111457. Bitfields for CAM flags:
  111458. Bit(s) Description (Table 03230)
  111459. 0 CDB is a pointer
  111460. 1 tagged queue action enable
  111461. 2 linked CDB
  111462. 3 disable callback on completion
  111463. 4 scatter/gather
  111464. 5 disable autosense
  111465. 7-6 direction (00 reserved, 01 in, 10 out, 11 no data transfer)
  111466. 9-8 reserved
  111467. 10 engine synchronize
  111468. 11 SIM queue freeze
  111469. 12 SIM queue priority
  111470. 1 head insertion
  111471. 0 tail insertion (normal)
  111472. 13 disable synchronous transfers \ mutually
  111473. 14 initiate synchronous transfers / exclusive
  111474. 15 disable disconnect
  111475. Bitfields for CAM address flags:
  111476. Bit(s) Description (Table 03231)
  111477. 7 SG list/data (0 = host, 1 = engine)
  111478. 6 CDB pointer (6-1: 0=virtual addr, 1=phys addr)
  111479. 5 SG list/data
  111480. 4 sense buffer
  111481. 3 message buffer
  111482. 2 next CCB
  111483. 1 callback on completion
  111484. 0 reserved
  111485. (Table 03232)
  111486. Values for CAM status:
  111487. 00h request in progress
  111488. 01h request successful
  111489. 02h host aborted request
  111490. 03h unable to abort request
  111491. 04h request completed with error
  111492. 05h CAM is busy
  111493. 06h invalid request
  111494. 07h invalid path ID
  111495. 08h no such SCSI device
  111496. 09h unable to terminate I/O process
  111497. 0Ah timeout on target selection
  111498. 0Bh timeout on command
  111499. 0Dh receive message rejection
  111500. 0Eh sent/received SCSI bus reset
  111501. 0Fh detected uncorrectable parity error
  111502. 10h Autosense request failed
  111503. 11h no HBA detected
  111504. 12h data over/underrun
  111505. 13h bus freed unexpectedly
  111506. 14h target bus phase sequence failure
  111507. 15h CCB too small
  111508. 16h requested capability not available
  111509. 17h sent bus device reset
  111510. 18h terminate I/O process
  111511. 38h invalid LUN
  111512. 39h invalid target ID
  111513. 3Ah unimplemented function
  111514. 3Bh nexus not established
  111515. 3Ch invalid initiator ID
  111516. 3Dh received SCSI Command Descriptor Block
  111517. 3Eh LUN already enabled
  111518. 3Fh SCSI bus busy
  111519. Note: bit 6 set to indicate frozen SIM queue
  111520. bit 7 set to indicate valid autosense
  111521. Bitfields for CAM target-mode flags:
  111522. Bit(s) Description (Table 03233)
  111523. 7 data buffer valid
  111524. 6 status valid
  111525. 5 message buffer valid
  111526. 4 reserved
  111527. 3 phase-cognizant mode
  111528. 2 target CCB available
  111529. 1 disable autodisconnect
  111530. 0 disable autosave/restore
  111531. Bitfields for SCSI capabilities:
  111532. Bit(s) Description (Table 03234)
  111533. 7 modify data pointers
  111534. 6 wide bus (32 bits)
  111535. 5 wide bus (16 bits)
  111536. 4 synchronous transfers
  111537. 3 linked commands
  111538. 2 reserved
  111539. 1 tagged queueing
  111540. 0 soft reset
  111541. Bitfields for CAM asynchronous event capabilities:
  111542. Bit(s) Description (Table 03235)
  111543. 31-24 vendor-specific
  111544. 23-8 reserved
  111545. 7 new devices found during rescan
  111546. 6 SIM module deregistered
  111547. 5 SIM module registered
  111548. 4 sent bus device reset to target
  111549. 3 SCSI AEN
  111550. 2 reserved
  111551. 1 unsolicited reselection
  111552. 0 unsolicited SCSI bus reset
  111553. Format of Six-Byte SCSI Command Descriptor Block (CDB):
  111554. Offset Size Description (Table 03236)
  111555. 00h BYTE operation code (see #03239)
  111556. 01h BYTE logical unit number (bits 7-5), SCSI-1/SCSI-2
  111557. MSB of logical block address (bits 4-0)
  111558. 02h WORD logical block address (low word)
  111559. 04h BYTE transfer length
  111560. 05h BYTE control byte
  111561. SeeAlso: #03237,#03238
  111562. Format of Ten-Byte SCSI Command Descriptor Block (CDB):
  111563. Offset Size Description (Table 03237)
  111564. 00h BYTE operation code (see #03239)
  111565. 01h BYTE logical unit number (bits 7-5), SCSI-1/SCSI-2
  111566. reserved in SCSI-3
  111567. 02h DWORD logical block address (low word)
  111568. 06h BYTE reserved
  111569. 07h WORD transfer length
  111570. 09h BYTE control byte
  111571. SeeAlso: #03236,#03238
  111572. Format of Twelve-Byte SCSI Command Descriptor Block (CDB):
  111573. Offset Size Description (Table 03238)
  111574. 00h BYTE operation code (see #03239)
  111575. 01h BYTE logical unit number (bits 7-5), SCSI-1/SCSI-2
  111576. reserved in SCSI-3
  111577. 02h DWORD logical block address (low word)
  111578. 06h DWORD transfer length
  111579. 0Ah BYTE reserved
  111580. 0Bh BYTE control byte
  111581. SeeAlso: #03236,#03237
  111582. (Table 03239)
  111583. Values for SCSI CDB operation code for direct-access devices:
  111584. 00h Test Unit Ready
  111585. 01h Rezero Unit
  111586. 03h Request Sense
  111587. 04h Format Unit
  111588. 07h Reassign Blocks
  111589. 08h Read (6-byte CDB)
  111590. 0Ah Write (6-byte CDB)
  111591. 0Bh Seek (6-byte CDB)
  111592. 12h Inquiry
  111593. 15h Mode Select (6-byte CDB)
  111594. 16h Reserve
  111595. 17h Release
  111596. 18h Copy
  111597. 1Ah Mode Sense (6-byte CDB)
  111598. 1Bh Start/Stop Unit
  111599. 1Ch Receive Diagnostic Results
  111600. 1Dh Send Diagnostic
  111601. 1Eh Prevent/Allow Medium Removal
  111602. 25h Read Capacity
  111603. 28h Read (10-byte CDB)
  111604. 2Ah Write (10-byte CDB)
  111605. 2Bh Seek (10-byte CDB)
  111606. 2Eh Write and Verify
  111607. 2Fh Verify
  111608. 30h Search Data High
  111609. 31h Search Data Equal
  111610. 32h Search Data Low
  111611. 33h Set Limits
  111612. 34h Prefetch
  111613. 35h Synchronize Cache
  111614. 36h Lock/Unlock Cache
  111615. 37h Read Defect Data
  111616. 39h Compare
  111617. 3Ah Copy and Verify
  111618. 3Bh Write Buffer
  111619. 3Ch Read Buffer
  111620. 3Eh Read Long
  111621. 3Fh Write Long
  111622. 40h Change Definition
  111623. 41h Write Same
  111624. 4Ch Log Select
  111625. 4Dh Log Sense
  111626. 55h Mode Select (10-byte CDB)
  111627. 5Ah Mode Sense (10-byte CDB)
  111628. SeeAlso: #03236,#03237,#03238
  111629. (Table 03240)
  111630. Values completion callback function is called with:
  111631. interrupts disabled
  111632. ES:BX -> completed CCB
  111633. (Table 03241)
  111634. Values asynchronous callback function is called with:
  111635. AH = opcode
  111636. AL = path ID generating callback
  111637. DH = target ID causing event
  111638. DL = LUN causing event
  111639. CX = data byte count (if applicable)
  111640. ES:BX -> data buffer (if applicable)
  111641. Return: all registers preserved
  111642. --------d-4F8200CX8765-----------------------
  111643. INT 4F - Common Access Method SCSI interface rev 2.3 - INSTALLATION CHECK
  111644. AX = 8200h
  111645. CX = 8765h
  111646. DX = CBA9h
  111647. Return: AH = 00h if installed
  111648. CX = 9ABCh
  111649. DX = 5678h
  111650. ES:DI -> "SCSI_CAM"
  111651. SeeAlso: AX=8100h,INT 4B"Common Access Method"
  111652. --------N-50---------------------------------
  111653. INT 50 - TIL Xpert AIM (X.25)
  111654. AH = function
  111655. --------H-50---------------------------------
  111656. INT 50 - IRQ0 relocated by DESQview
  111657. Range: INT 50 to INT F8, selected automatically
  111658. Notes: this is the default location for older versions; DESQview v2.26+
  111659. searches for unused ranges of interrupts and uses the lowest
  111660. available range in its list for relocating these IRQs and the next
  111661. lowest for relocating IRQ8-IRQ15
  111662. a range of eight interrupts starting at a multiple of 8 is considered
  111663. available if all vectors are identical and it has not been excluded
  111664. with an /XB:nn commandline switch
  111665. the list of ranges for v2.26 is 50h,58h,68h,78h,F8h (if < two of these
  111666. are available, F8h and then 50h are used anyway)
  111667. the list of ranges for v2.31+ is 68h,78h,88h-B8h,F8h (if < two of these
  111668. are available, F8h and then F0h are used anyway)
  111669. SeeAlso: INT 08"IRQ0",INT 51"DESQview",INT 54"DESQview",INT 58"DESQview"
  111670. SeeAlso: INT D8"Screen Thief"
  111671. --------H-50---------------------------------
  111672. INT 50 - IRQ0 relocated by IBM 3278 emulation control program
  111673. SeeAlso: INT 51"IBM 3278"
  111674. --------H-50---------------------------------
  111675. INT 50 - IRQ0 relocated by OS/2 v1.x
  111676. SeeAlso: INT 51"OS/2"
  111677. ----------50---------------------------------
  111678. INT 50 - TI Professional PC - FATAL SOFTWARE ERROR TRAP
  111679. Desc: the default handler generates a System Error message and halts the
  111680. computer such that only Ctrl-Alt-Del can restart operation
  111681. Note: documented as "for system use only"; intended for multi-tasking
  111682. software
  111683. SeeAlso: INT 40"TI Professional",INT 4F"TI Professional"
  111684. SeeAlso: INT 51"TI Professional",INT 53"TI Professional"
  111685. --------V-500000-----------------------------
  111686. INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - OPEN TEXT WINDOW
  111687. AX = 0000h
  111688. ES:BX -> name string or ES:0000h if none
  111689. CH,CL = row,column of upper left corner
  111690. DH,DL = row,column of lower right corner
  111691. Return: AX = window handle or
  111692. 0000h if not installed
  111693. FFFFh on error
  111694. SeeAlso: AX=0001h,AX=0002h"TEXT WINDOWS"
  111695. --------V-500001-----------------------------
  111696. INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - CLOSE TEXT WINDOW
  111697. AX = 0001h
  111698. DI = window handle
  111699. SeeAlso: AX=0000h
  111700. --------V-500002-----------------------------
  111701. INT 50 - Vanderaart TEXT WINDOWS - PUT CHARACTER IN WINDOW
  111702. AX = 0002h
  111703. BL = character
  111704. BH = attribute
  111705. DL = column
  111706. DH = row
  111707. DI = window handle
  111708. Return: AX = status
  111709. 0000h if successful
  111710. FFFFh if outside window
  111711. SeeAlso: AX=0000h
  111712. --------l-500002-----------------------------
  111713. INT 50 - PC Thuis Organizer Shell - PLOT TEXT
  111714. AX = 0002h
  111715. ES:BX -> text string
  111716. DH,DL = row,column of upper left corner
  111717. DI = window handle
  111718. Return: AX = status
  111719. 0000h successful (text fits in window)
  111720. FFFFh error
  111721. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  111722. published in the June/July 1990 issue of PC Thuis Power magazine
  111723. --------V-500003-----------------------------
  111724. INT 50 - Vanderaart TEXT WINDOWS - OUTPUT LINE TO WINDOW
  111725. AX = 0003h
  111726. ES:BX -> text string
  111727. CX = string length (0000h if ASCIZ string)
  111728. DL = position (FFh centered, else flush left)
  111729. DH = starting row
  111730. DI = window handle
  111731. Return: AX = status
  111732. 0000h successful
  111733. FFFFh did not fit in window
  111734. --------l-500003-----------------------------
  111735. INT 50 - PC Thuis Organizer Shell - WRITE FILE
  111736. AX = 0003h
  111737. ES:BX -> data to be written
  111738. CX = number of bytes to write
  111739. DS:SI -> filename
  111740. Return: AX = status
  111741. 0000h successful
  111742. FFFFh error
  111743. SeeAlso: AX=0004h"Shell"
  111744. --------V-500004-----------------------------
  111745. INT 50 - Vanderaart TEXT WINDOWS - GET KEY
  111746. AX = 0004h
  111747. CH = type
  111748. 00h any key
  111749. 01h 'J' or 'N' (Dutch for yes/no)
  111750. Return: AX = key
  111751. SeeAlso: INT 16/AH=00h
  111752. --------l-500004-----------------------------
  111753. INT 50 - PC Thuis Organizer Shell - READ FILE
  111754. AX = 0004h
  111755. ES:BX -> buffer for data
  111756. CX = number of bytes to read or 0000h for entire file
  111757. DL = file type
  111758. 01h setting shell
  111759. 02h setting sterm
  111760. 03h INT21 file
  111761. DS:SI -> filename
  111762. Return: AX = status
  111763. 0000h successful
  111764. FFFFh error
  111765. Note: file type numbers are maintained by John Vanderaart; if a new file type
  111766. is needed, a type number should be requested from him through the
  111767. magazine:
  111768. PC Thuis BV
  111769. Spaarne 55
  111770. 2011 CE HAARLEM
  111771. The Netherlands
  111772. SeeAlso: AX=0003h"Shell"
  111773. --------V-500005-----------------------------
  111774. INT 50 - Vanderaart TEXT WINDOWS - CHANGE ATTRIBUTE
  111775. AX = 0005h
  111776. BL = new attribute
  111777. CH,CL = row,column of upper left corner
  111778. DH,DL = row,column of lower right corner
  111779. DI = window handle
  111780. --------l-500005-----------------------------
  111781. INT 50 - PC Thuis Organizer Shell - PROMPT YES/NO
  111782. AX = 0005h
  111783. ES:BX -> prompt string (ES:0000h if no prompt)
  111784. Return: AX = key pressed
  111785. 0000h "J" (Dutch "Ja" = "Yes")
  111786. FFFFh "N" (Dutch "Nee" = "No")
  111787. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  111788. published in the June/July 1990 issue of PC Thuis Power magazine
  111789. SeeAlso: AX=0008h"PC Thuis"
  111790. --------V-500006-----------------------------
  111791. INT 50 - Vanderaart TEXT WINDOWS - EDIT LINE IN WINDOW
  111792. AX = 0006h
  111793. ES:BX -> text string
  111794. CH = type of input (see #03242)
  111795. DH,DL = row,column of upper left corner
  111796. DI = window handle
  111797. Return: AX = key which terminated entry
  111798. 0000h Enter
  111799. 0001h Esc
  111800. 0002h Down arrow
  111801. 0003h Up arrow
  111802. 0004h F10
  111803. (Table 03242)
  111804. Values for type of input to Vanderaart Text Windows:
  111805. 00h everything
  111806. 01h uppercase only
  111807. 02h positive numbers
  111808. 03h Dutch postal code ("9999 AA")
  111809. 04h 'J' or 'N' (Dutch yes/no)
  111810. 05h telephone or FAX number
  111811. 06h positive or negative number
  111812. 07h date (dd/mm/yy)
  111813. 08h money
  111814. 09h '1' through '8'
  111815. 0Ah '1' through '4'
  111816. 0Bh uppercase filenames
  111817. --------l-500006-----------------------------
  111818. INT 50 - PC Thuis Organizer Shell - ALERT USER
  111819. AX = 0006h
  111820. ES:BX -> string
  111821. --------l-500007-----------------------------
  111822. INT 50 - PC Thuis Organizer Shell - DO LINE
  111823. AX = 0007h
  111824. ES:BX -> text string
  111825. CX = string length in bytes (0000h if NUL-terminated)
  111826. DL = FFh to center string, else flush left
  111827. DH = upper left row
  111828. DI = window handle
  111829. Return: AX = status
  111830. 0000h successful
  111831. FFFFh error
  111832. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  111833. published in the June/July 1990 issue of PC Thuis Power magazine
  111834. SeeAlso: AX=0008h
  111835. --------l-500008-----------------------------
  111836. INT 50 - PC Thuis Organizer Shell - DO MENU
  111837. AX = 0008h
  111838. ES:BX -> menu structure
  111839. Return: AL = index 1 or FFh if not selected
  111840. AH = index 2 or FFh if not selected
  111841. BL = index 3 or FFh if not selected
  111842. BH = index 4 or FFh if not selected
  111843. SeeAlso: AX=0005h"PC Thuis",AX=0007h,AX=000Ch
  111844. --------l-500009-----------------------------
  111845. INT 50 - PC Thuis Organizer Shell - MESSAGE ON
  111846. AX = 0009h
  111847. ES:BX -> message string
  111848. SeeAlso: AX=000Ah
  111849. --------l-50000A-----------------------------
  111850. INT 50 - PC Thuis Organizer Shell - MESSAGE OFF
  111851. AX = 000Ah
  111852. SeeAlso: AX=0009h
  111853. --------l-50000B-----------------------------
  111854. INT 50 - PC Thuis Organizer Shell - CHANGE ATTRIBUTE
  111855. AX = 000Bh
  111856. BL = new attribute
  111857. CH,CL = row,column of upper left corner
  111858. DH,DL = row,column of lower right corner
  111859. DI = window handle
  111860. --------l-50000C-----------------------------
  111861. INT 50 - PC Thuis Organizer Shell - DO REQUEST
  111862. AX = 000Ch
  111863. ES:BX -> request structure
  111864. Return: AX = status
  111865. 0000h confirmed
  111866. FFFFh denied
  111867. SeeAlso: AX=0008h
  111868. --------l-50000D-----------------------------
  111869. INT 50 - PC Thuis Organizer Shell - EDIT LINE
  111870. AX = 000Dh
  111871. ES:BX -> text string
  111872. CL = length
  111873. CH = input type (see #03243)
  111874. DH,DL = row,column of upper left corner
  111875. DI = window handle
  111876. Return: AX = result code
  111877. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  111878. published in the June/July 1990 issue of PC Thuis Power magazine
  111879. Bitfields for input type:
  111880. Bit(s) Description (Table 03243)
  111881. 0 force uppercase
  111882. 1 integer
  111883. 2 no spaces allowed
  111884. 3 no cursor keys
  111885. --------l-50000E-----------------------------
  111886. INT 50 - PC Thuis Organizer Shell - PLOT CHARACTER
  111887. AX = 000Eh
  111888. BL = character
  111889. BH = attribute
  111890. DH,DL = row,column at which to plot
  111891. DI = window handle
  111892. Return: AX = status
  111893. 0000h successful
  111894. FFFFh errror
  111895. --------l-50000F-----------------------------
  111896. INT 50 - PC Thuis Organizer Shell - EMPTY WINDOW
  111897. AX = 000Fh
  111898. BL = character
  111899. BH = attribute
  111900. DI = window handle
  111901. --------l-500010-----------------------------
  111902. INT 50 - PC Thuis Organizer Shell - TRACE MENU
  111903. AX = 0010h
  111904. ES:BX -> first menu structure
  111905. CL = hotkey to look up
  111906. Return: AL = index 1 or FFh if not selected
  111907. AH = index 2 or FFh if not selected
  111908. BL = index 3 or FFh if not selected
  111909. BH = index 4 or FFh if not selected
  111910. Index: hotkeys;PC Thuis Organizer Shell
  111911. --------l-500011-----------------------------
  111912. INT 50 - PC Thuis Organizer Shell - MOVE MEMORY
  111913. AX = 0011h
  111914. DS:SI -> source
  111915. ES:DI -> destination
  111916. CX = number of bytes to move (0000h = until NUL string terminator???)
  111917. SeeAlso: AX=0012h
  111918. --------l-500012-----------------------------
  111919. INT 50 - PC Thuis Organizer Shell - COMPARE MEMORY
  111920. AX = 0012h
  111921. DS:SI -> source
  111922. ES:DI -> destination
  111923. CX = number of bytes to compare (0000h=until NUL string terminator???)
  111924. Return: AX = status
  111925. 0000h same
  111926. FFFFh different
  111927. SeeAlso: AX=0011h
  111928. --------l-500013-----------------------------
  111929. INT 50 - PC Thuis Organizer Shell - GET KEY
  111930. AX = 0013h
  111931. CH = type flags
  111932. bit 0: force uppercase
  111933. bit 1: integer
  111934. bit 2: no spaces
  111935. Return: AX = keystroke
  111936. --------l-500014-----------------------------
  111937. INT 50 - PC Thuis Organizer Shell - SCROLL WINDOW
  111938. AX = 0014h
  111939. BL = direction
  111940. 06h up
  111941. 07h down
  111942. BH = attribute
  111943. DI = window handle
  111944. SeeAlso: INT 10/AH=06h,INT 10/AH=07h
  111945. --------l-500015-----------------------------
  111946. INT 50 - PC Thuis Organizer Shell - GET MEMORY HANDLE
  111947. AX = 0015h
  111948. BL = handle size
  111949. 00h 65536 bytes (64K)
  111950. 01h 65535 bytes (64K-1)
  111951. 02h 32768 bytes (32K)
  111952. 03h 32767 bytes (32K-1)
  111953. Return: AX = segment
  111954. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  111955. published in the June/July 1990 issue of PC Thuis Power magazine
  111956. SeeAlso: INT 21/AH=48h
  111957. --------H-51---------------------------------
  111958. INT 51 - IRQ1 relocated by DESQview
  111959. Range: INT 51 to INT F9, selected automatically
  111960. Note: this is the default location for older versions; see INT 50"DESQview"
  111961. for details of interrupt relocation
  111962. SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
  111963. --------H-51---------------------------------
  111964. INT 51 - IRQ1 relocated by IBM 3278 emulation control program
  111965. SeeAlso: INT 50"IBM 3278",INT 54"IBM 3278"
  111966. --------H-51---------------------------------
  111967. INT 51 - IRQ1 relocated by OS/2 v1.x
  111968. SeeAlso: INT 50"OS/2",INT 54"OS/2"
  111969. ----------51---------------------------------
  111970. INT 51 - TI Professional PC - RESTART TIMING EVENT
  111971. AX = timer count in 25ms intervals
  111972. DS:DI -> timing-event table (see #03244)
  111973. Note: documented as "for system use only"; intended for multi-tasking
  111974. software
  111975. SeeAlso: INT 50"TI Professional",INT 52"TI Professional"
  111976. Format of TI Professional PC timing event table:
  111977. Offset Size Description (Table 03244)
  111978. 00h WORD offset of next event table entry
  111979. 02h BYTE normally unused (FFh)
  111980. 03h BYTE flags:
  111981. bit 7 set if timing event active
  111982. bits 6-0 not used by BIOS (0), but could be used by option ROMs
  111983. 04h WORD timeout count (decremented every 25ms when active)
  111984. 06h WORD offset of event handler (in segment F400h) to call on event
  111985. timeout; the F400h segment allows addressing both system ROMs
  111986. and the first 16K of memory (due to the 1M memory wraparound)
  111987. --------b-51---------------------------------
  111988. INT 51 - Tandy 2000 - KEYBOARD SERVICES
  111989. Note: this interrupt is identical to INT 16 on Tandy 2000
  111990. SeeAlso: INT 16/AH=00h,INT 16/AH=01h,INT 16/AH=02h,INT 16/AH=04h"Tandy"
  111991. SeeAlso: INT 16/AH=04h,INT 4A"Tandy 2000",INT 4C"Tandy 2000",INT 52"Tandy 2000"
  111992. --------H-52---------------------------------
  111993. INT 52 - IRQ2 relocated by DESQview
  111994. Range: INT 52 to INT FA, selected automatically
  111995. Note: this is the default location for older versions; see INT 50"DESQview"
  111996. for details of interrupt relocation
  111997. SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
  111998. --------H-52---------------------------------
  111999. INT 52 - IRQ2 relocated by IBM 3278 emulation control program, OS/2 v1.x
  112000. SeeAlso: INT 50"IBM 3278",INT 51"OS/2"
  112001. ----------52---------------------------------
  112002. INT 52 - TI Professional PC - CANCEL TIMING EVENT
  112003. DS:DI -> timing-event table (see #03244)
  112004. Note: documented as "for system use only"; intended for multi-tasking
  112005. software
  112006. SeeAlso: INT 51"TI Professional",INT 53"TI Professional"
  112007. --------b-52---------------------------------
  112008. INT 52 - Tandy 2000 - VIDEO SERVICES
  112009. Note: this interrupt is identical to INT 10
  112010. SeeAlso: INT 10/AH=00h,INT 10/AH=01h,INT 10/AH=08h,INT 10/AH=0Eh
  112011. SeeAlso: INT 4A"Tandy 2000",INT 51"Tandy 2000",INT 53"Tandy 2000"
  112012. --------H-53---------------------------------
  112013. INT 53 - IRQ3 relocated by DESQview
  112014. Range: INT 53 to INT FB, selected automatically
  112015. Note: this is the default location for older versions; see INT 50"DESQview"
  112016. for details of interrupt relocation
  112017. SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
  112018. --------H-53---------------------------------
  112019. INT 53 - IRQ3 relocated by IBM 3278 emulation control program, OS/2 v1.x
  112020. SeeAlso: INT 50"IBM 3278",INT 51"OS/2"
  112021. ----------53---------------------------------
  112022. INT 53 - TI Professional PC - SVC INTERFACE
  112023. Notes: documented as "for system use only"; intended for multi-tasking
  112024. software
  112025. this interrupt is not used by the BIOS; the default handler generates
  112026. a system error trap (see INT 51"TI Professional")
  112027. SeeAlso: INT 50"TI Professional",INT 54"TI Professional"
  112028. --------b-53---------------------------------
  112029. INT 53 - Tandy 2000 - SERIAL COMMUNICATIONS
  112030. Note: this interrupt is identical to INT 14 on Tandy 2000
  112031. SeeAlso: INT 14/AH=00h"SERIAL",INT 14/AH=01h,INT 14/AH=02h,INT 14/AH=03h
  112032. SeeAlso: INT 14/AH=04h"Tandy 2000",INT 52"Tandy 2000",INT 54"Tandy 2000"
  112033. --------N-53---------------------------------
  112034. INT 53 - WEB??? - API
  112035. BX = function
  112036. 0000h ???
  112037. AX = ???
  112038. Return: AX = ???
  112039. 0004h ???
  112040. 0009h ???
  112041. 0015h
  112042. AX = ???
  112043. DX = ???
  112044. 0017h
  112045. Return: ???
  112046. InstallCheck: check for the signature "WEBCO" immediately prior to the
  112047. interrupt handler
  112048. Note: the above calls are made by Show Partner F/X v3.6 (see INT 10/AH=53h)
  112049. Index: installation check;unknown|installation check;WEBCO
  112050. --------H-54---------------------------------
  112051. INT 54 - IRQ4 relocated by DESQview
  112052. Range: INT 54 to INT FC, selected automatically
  112053. Note: this is the default location for older versions; see INT 50"DESQview"
  112054. for details of interrupt relocation
  112055. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  112056. --------H-54---------------------------------
  112057. INT 54 - IRQ4 relocated by IBM 3278 emulation control program, OS/2 v1.x
  112058. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  112059. ----------54---------------------------------
  112060. INT 54 - TI Professional PC - ACTIVATE TASK SUBROUTINE
  112061. Notes: documented as "for system use only"; intended for multi-tasking
  112062. software
  112063. this interrupt is not used by the BIOS; the default handler generates
  112064. a system error trap (see INT 51"TI Professional")
  112065. SeeAlso: INT 50"TI Professional",INT 53"TI Professional"
  112066. --------b-54---------------------------------
  112067. INT 54 - Tandy 2000 - LINE PRINTER
  112068. Note: this interrupt is identical to INT 17 on Tandy 2000
  112069. SeeAlso: INT 17/AH=00h,INT 17/AH=01h,INT 17/AH=02h,INT 4A"Tandy 2000"
  112070. SeeAlso: INT 53"Tandy 2000",INT 55"Tandy 2000"
  112071. --------X-545400-----------------------------
  112072. INT 54 U - Toshiba PCMCIA2 - INSTALLATION CHECK
  112073. AX = 5400h
  112074. Return: AX = 0054h if installed
  112075. CX:DX -> INT function handler
  112076. --------H-55---------------------------------
  112077. INT 55 - IRQ5 relocated by DESQview
  112078. Range: INT 55 to INT FD, selected automatically
  112079. Note: this is the default location for older versions; see INT 50"DESQview"
  112080. for details of interrupt relocation
  112081. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  112082. --------H-55---------------------------------
  112083. INT 55 - IRQ5 relocated by IBM 3278 emulation control program, OS/2 v1.x
  112084. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  112085. --------b-55---------------------------------
  112086. INT 55 - TI Professional PC - RESERVED FOR FUTURE USE
  112087. Notes: documented as "for system use only"; intended for multi-tasking
  112088. software
  112089. this interrupt is not used by the BIOS; the default handler generates
  112090. a system error trap (see INT 51"TI Professional")
  112091. SeeAlso: INT 50"TI Professional",INT 56"TI Professional"
  112092. --------b-55---------------------------------
  112093. INT 55 - Tandy 2000 - SYSTEM CLOCK
  112094. Note: this interrupt is identical to INT 1A on Tandy 2000
  112095. SeeAlso: INT 1A/AH=00h,INT 1A/AH=01h,INT 1A/AH=02h"Tandy 2000"
  112096. SeeAlso: INT 1A/AH=03h"Tandy 2000",INT 54"Tandy 2000",INT 56"Tandy 2000"
  112097. --------H-56---------------------------------
  112098. INT 56 - IRQ6 relocated by DESQview
  112099. Range: INT 56 to INT FE, selected automatically
  112100. Note: this is the default location for older versions; see INT 50"DESQview"
  112101. for details of interrupt relocation
  112102. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  112103. --------H-56---------------------------------
  112104. INT 56 - IRQ6 relocated by IBM 3278 emulation control program, OS/2 v1.x
  112105. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  112106. --------b-56---------------------------------
  112107. INT 56 - TI Professional PC - RESERVED FOR FUTURE USE
  112108. Notes: documented as "for system use only"; intended for multi-tasking
  112109. software
  112110. this interrupt is not used by the BIOS; the default handler generates
  112111. a system error trap (see INT 51"TI Professional")
  112112. SeeAlso: INT 50"TI Professional",INT 55"TI Professional"
  112113. --------b-56---------------------------------
  112114. INT 56 - Tandy 2000 - FLOPPY DISK SERVICES
  112115. Note: this interrupt is identical to INT 13 on Tandy 2000
  112116. SeeAlso: INT 13/AH=00h,INT 13/AH=01h,INT 13/AH=02h,INT 13/AH=03h
  112117. SeeAlso: INT 4A"Tandy 2000",INT 51"Tandy 2000",INT 55"Tandy 2000"
  112118. --------H-57---------------------------------
  112119. INT 57 - IRQ7 relocated by DESQview
  112120. Range: INT 57 to INT FF, selected automatically
  112121. Note: this is the default location for older versions; see INT 50"DESQview"
  112122. for details of interrupt relocation
  112123. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  112124. --------H-57---------------------------------
  112125. INT 57 - IRQ7 relocated by IBM 3278 emulation control program, OS/2 v1.x
  112126. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  112127. --------b-57---------------------------------
  112128. INT 57 C - TI Professional PC - CRT MAPPING HOOK
  112129. AX/BX/CX/DX/BP/SI/DI same as on entry to CRT subroutine (e.g. INT 49)
  112130. DS = BIOS system segment
  112131. ES = DE00h
  112132. Return: DF/IF flags must be preserved
  112133. ES,DS,BP preserved
  112134. AX,BX,CX,DX,SI,DI may be changed as necessary to modify the original
  112135. call
  112136. Desc: hooking this vector permits programs to intercept or modify all
  112137. screen output, including both application calls to INT 49 and
  112138. calls generated internally by the BIOS which bypass INT 49
  112139. Note: by default, this vector points at an IRET instruction
  112140. SeeAlso: INT 49/AH=01h"TI",INT 50"TI Professional"
  112141. --------H-58---------------------------------
  112142. INT 58 - IRQ8 relocated by DESQview 2.26+
  112143. Range: INT 58 to INT F8, selected automatically
  112144. Note: this is the default, but other INTs may be used (see INT 50"DESQview")
  112145. SeeAlso: INT 50"DESQview",INT 59"DESQview",INT 70
  112146. --------H-58---------------------------------
  112147. INT 58 - IRQ0 relocated by DoubleDOS
  112148. SeeAlso: INT 08
  112149. --------b-58---------------------------------
  112150. INT 58 C - TI Professional PC - SYSTEM TIMER 25ms HOOK
  112151. Desc: called from the hardware timer tick interrupt, after executing the
  112152. first four BIOS timing events, updating the system clock, invoking
  112153. INT 5A if required, saving registers, and switching to a temporary
  112154. stack (the one reserved for IRQ3)
  112155. Notes: the handler for this interrupt may destroy AX,BX,DI,ES but must
  112156. preserve all other registers; 8 WORDs of stack space are available,
  112157. of which at most 4 may be used if the handler enables interrupts
  112158. if the handler switches stacks (because more than 4/8 WORDs are
  112159. required), the original stack must be restored before chaining to
  112160. the previous handler
  112161. SeeAlso: INT 43"TI Professional",INT 4C"TI Professional"
  112162. SeeAlso: INT 5A"TI Professional"
  112163. --------H-59---------------------------------
  112164. INT 59 - IRQ9 relocated by DESQview 2.26+
  112165. Range: INT 59 to INT F9, selected automatically
  112166. Note: this is the default, but other INTs may be used (see INT 50"DESQview")
  112167. SeeAlso: INT 50"DESQview",INT 58"DESQview",INT 5A"DESQview",INT 71
  112168. --------H-59---------------------------------
  112169. INT 59 - IRQ1 relocated by DoubleDOS
  112170. SeeAlso: INT 09
  112171. --------b-59---------------------------------
  112172. INT 59 - TI Professional PC - COMMON ROM HARDWARE INTERRUPT EXIT VECTOR
  112173. Desc: all hardware interrupts on the TI Pro jump indirectly to the handler
  112174. pointed at by this interrupt vector to finish their handling of
  112175. the hardware interrupt
  112176. Notes: the default handler decrements the interrupt count, restores registers
  112177. (including the stack pointer), sends an EOI to the interrupt
  112178. controller, and finally does an IRET
  112179. can be used by multitaskers which need to get control after every
  112180. hardware interrupt
  112181. SeeAlso: INT 40"TI Professional",INT 47"TI Professional"
  112182. SeeAlso: INT 53"TI Professional"
  112183. --------V-59---------------------------------
  112184. INT 59 - GSS Computer Graphics Interface (GSS*CGI)
  112185. DS:DX -> block of 5 array pointers
  112186. Return: CF set on error
  112187. AX = error code
  112188. CF clear if successful
  112189. AX = return code
  112190. Note: INT 59 is the means by which GSS*CGI language bindings communicate with
  112191. GSS*CGI device drivers and the GSS*CGI device driver controller.
  112192. also used by the IBM Graphic Development Toolkit
  112193. --------H-5A---------------------------------
  112194. INT 5A - IRQ10 relocated by DESQview 2.26+
  112195. Range: INT 5A to INT FA, selected automatically
  112196. Note: this is the default, but other INTs may be used (see INT 50"DESQview")
  112197. SeeAlso: INT 50"DESQview",INT 59"DESQview",INT 5B"DESQview",INT 72
  112198. --------H-5A---------------------------------
  112199. INT 5A - IRQ2 relocated by DoubleDOS
  112200. SeeAlso: INT 0A"IRQ2"
  112201. --------N-5A---------------------------------
  112202. INT 5A - PC Cluster adapter BIOS entry address
  112203. ???
  112204. Return: ???
  112205. SeeAlso: INT 5B"PC Cluster"
  112206. --------b-5A---------------------------------
  112207. INT 5A - TI Professional PC - SYSTEM TIMER 100ms HOOK
  112208. Desc: called from the hardware timer tick interrupt, after executing the
  112209. first four BIOS timing events, updating the system clock, saving
  112210. registers, and switching to a temporary stack (the one reserved
  112211. for IRQ3), but before calling INT 58
  112212. no details available
  112213. Notes: this interrupt is invoked on every fourth timer interrupt
  112214. the handler for this interrupt may destroy AX,BX,DI,ES but must
  112215. preserve all other registers; 8 WORDs of stack space are available,
  112216. of which at most 4 may be used if the handler enables interrupts
  112217. if the handler switches stacks (because more than 4/8 WORDs are
  112218. required), the original stack must be restored before chaining to
  112219. the previous handler
  112220. SeeAlso: INT 43"TI Professional",INT 4C"TI Professional"
  112221. SeeAlso: INT 58"TI Professional"
  112222. --------H-5B---------------------------------
  112223. INT 5B - IRQ11 relocated by DESQview 2.26+
  112224. Range: INT 5B to INT FB, selected automatically
  112225. Note: this is the default, but other INTs may be used (see INT 50"DESQview")
  112226. SeeAlso: INT 50"DESQview",INT 5A"DESQview",INT 5C"DESQview",INT 73
  112227. --------H-5B---------------------------------
  112228. INT 5B - IRQ3 relocated by DoubleDOS
  112229. SeeAlso: INT 0B
  112230. --------N-5B---------------------------------
  112231. INT 5B - PC cluster adapter - RELOCATED INT 19
  112232. SeeAlso: INT 19,INT 5A"PC Cluster"
  112233. --------N-5B---------------------------------
  112234. INT 5B - AT&T Starlan Extended NetBIOS (variable length names)
  112235. ES:BX -> Network Control Block (see #03245)
  112236. Return: AL = status (see #03248)
  112237. SeeAlso: INT 5C"NetBIOS"
  112238. Format of Starlan Network Control Block:
  112239. Offset Size Description (Table 03245)
  112240. 00h BYTE ncb_command (see also #03250)
  112241. 70h send net Break
  112242. 01h BYTE ncb_retcode
  112243. 02h BYTE ncb_lsn
  112244. 03h BYTE ncb_num
  112245. 04h DWORD -> ncb_buffer
  112246. 08h WORD ncb_length
  112247. 0Ah 16 BYTEs ncb_callname
  112248. 1Ah 16 BYTEs ncb_name
  112249. 2Ah BYTE ncb_rto
  112250. 2Bh BYTE ncb_sto
  112251. 2Ch DWORD -> ncb_post /* int (far *ncb_post)(); */
  112252. 30h BYTE ncb_lana_num
  112253. 31h BYTE ncb_cmd_cplt
  112254. 32h DWORD -> ncb_vname
  112255. 36h BYTE ncb_vnamelen
  112256. 37h 9 BYTEs ncb_reserve
  112257. Note: fields 00h-31h are the same as for a standard NetBIOS NCB (see #03249)
  112258. --------N-5B---------------------------------
  112259. INT 5B - Microsoft Network Transport Layer Interface
  112260. Note: used by MS-NET for executing network commands
  112261. SeeAlso: INT 5C"NetBIOS"
  112262. --------N-5B---------------------------------
  112263. INT 5B - used by Alloy NTNX
  112264. --------N-5B---------------------------------
  112265. INT 5B - ISOLAN Multi Protocol Software
  112266. ES:BX -> Transfer Control Block (see #03246)
  112267. Return: AL = status
  112268. Note: this software interface allows multiple protocols/software packages
  112269. to access a BICC 411x network card
  112270. Format of ISOLAN Transfer Control Block:
  112271. Offset Type Description (Table 03246)
  112272. 00h BYTE command code
  112273. B3h Status
  112274. F2h Activate
  112275. F3h Deactivate
  112276. F4h Send Data
  112277. 01h BYTE command identity
  112278. 02h BYTE virtual circuit ID
  112279. 03h WORD buffer length
  112280. 05h DWORD buffer pointer
  112281. 09h BYTE expedited data flag
  112282. 0Ah BYTE cancelable flag
  112283. 0Bh 16 BYTEs local network address
  112284. 1Bh 16 BYTEs remote network address
  112285. 2Bh DWORD asynchronous notification routine
  112286. 30h DWORD local network number
  112287. 34h DWORD remote network number
  112288. 38h BYTE call timeout
  112289. 39h BYTE not used
  112290. 3Ah 8 BYTEs reserved
  112291. 42h BYTE command code extension
  112292. 43h WORD Blue Book MAC type
  112293. --------b-5B---------------------------------
  112294. INT 5B C - TI Professional PC - KEYBOARD MAPPING HOOK
  112295. CF set
  112296. AH = shift state (see #03247)
  112297. AL = scan code (see #03214)
  112298. Return: BX, CX, DI, ES may be destroyed
  112299. various return methods are supported:
  112300. IRET, AX unchanged: process keystroke normally
  112301. IRET, AL = FFh: discard keystroke
  112302. IRET, AX changed: process modified keystroke
  112303. chain to old INT 5B: allow other handlers to look at (possibly
  112304. modified) keystroke in AX
  112305. RETF 2, CF clear: place returned AX into keyboard buffer without
  112306. any further processing
  112307. Notes: invoked by the keyboard ISR, and used to remap the keyboard
  112308. if CF is clear on entry, some other handler has processed the
  112309. keystroke and the current handler should not modify it, instead
  112310. performing a RETF 2 or IRET (after clearing CF on the stack)
  112311. when requesting that a value be placed directly into the keyboard
  112312. buffer, AL and AH may not *both* be nonzero (the TI does not
  112313. return scan codes as part of the key code for non-extended keys)
  112314. SeeAlso: INT 15/AH=4Fh,INT 4A/AH=00h"TI",INT 59"TI Professional"
  112315. SeeAlso: INT 5C"TI Professional",INT 5D"TI Professional"
  112316. SeeAlso: INT 5E"TI Professional",INT 5F"TI Professional"
  112317. Bitfields for TI Professional PC keyboard mapping hook shift states:
  112318. Bit(s) Description (Table 03247)
  112319. 7 CAPS LOCK is on
  112320. 6-4 reserved (0)
  112321. 3 repeated key
  112322. 2 Shift is pressed
  112323. 1 Alt is pressed
  112324. 0 Ctrl is pressed
  112325. --------U-5B5254DL04-------------------------
  112326. INT 5B U - SitBack v3.02R - GET ???
  112327. AX = 5254h
  112328. DL = 04h
  112329. Return: ES:BX -> ??? in resident portion
  112330. Program: SitBack is a background file backup utility by SitBack Technologies,
  112331. Inc. which initiates backups whenever the system is idle
  112332. SeeAlso: AX=8485h/DL=71h,AX=8485h/DL=72h
  112333. --------U-5B8485DL70-------------------------
  112334. INT 5B U - SitBack v3.02R - INSTALLATION CHECK
  112335. AX = 8485h
  112336. DL = 70h
  112337. Return: CX = 8485h if installed
  112338. DX:AX -> ??? (configuration data?)
  112339. Program: SitBack is a background file backup utility by SitBack Technologies,
  112340. Inc. which initiates backups whenever the system is idle
  112341. SeeAlso: AX=5254h/DL=04h,AX=8485h/DL=78h
  112342. --------U-5B8485DL71-------------------------
  112343. INT 5B U - SitBack v3.02R - SET ??? FLAG AND GET ??? ADDRESS
  112344. AX = 8485h
  112345. DL = 71h
  112346. Return: ES:BX -> FAR entry point to ???
  112347. Note: the flag which is modified is located at the address returned by
  112348. AX=5254h/DL=04h
  112349. SeeAlso: AX=8485h/DL=72h
  112350. --------U-5B8485DL72-------------------------
  112351. INT 5B U - SitBack v3.02R - CLEAR ??? FLAG
  112352. AX = 8485h
  112353. DL = 72h
  112354. Note: the flag which is modified is located at the address returned by
  112355. AX=5254h/DL=04h
  112356. SeeAlso: AX=8485h/DL=71h
  112357. --------U-5B8485DL73-------------------------
  112358. INT 5B U - SitBack v3.02R - ???
  112359. AX = 8485h
  112360. DL = 73h
  112361. ???
  112362. Return: ???
  112363. --------U-5B8485DL74-------------------------
  112364. INT 5B U - SitBack v3.02R - ???
  112365. AX = 8485h
  112366. DL = 74h
  112367. ???
  112368. Return: ???
  112369. --------U-5B8485DL75-------------------------
  112370. INT 5B U - SitBack v3.02R - ???
  112371. AX = 8485h
  112372. DL = 75h
  112373. CX = ???
  112374. Return: ???
  112375. SeeAlso: AX=8485h/DL=76h
  112376. --------U-5B8485DL76-------------------------
  112377. INT 5B U - SitBack v3.02R - ???
  112378. AX = 8485h
  112379. DL = 76h
  112380. CX = ???
  112381. Return: ???
  112382. Note: conditionally calls the code for AX=8485h/DL=75h
  112383. SeeAlso: AX=8485h/DL=75h
  112384. --------U-5B8485DL77-------------------------
  112385. INT 5B U - SitBack v3.02R - SET ??? FLAG
  112386. AX = 8485h
  112387. DL = 77h
  112388. --------U-5B8485DL78-------------------------
  112389. INT 5B U - SitBack v3.02R - GET RESIDENT DATA SEGMENT
  112390. AX = 8485h
  112391. DL = 78h
  112392. Return: CX = 5342h if supported
  112393. ES = AX = segment of TSR data
  112394. SeeAlso: AX=8485h/DL=70h,AX=8485h/DL=79h
  112395. --------U-5B8485DL79-------------------------
  112396. INT 5B U - SitBack v3.02R - GET DTA
  112397. AX = 8485h
  112398. DL = 79h
  112399. Return: CX = 5342h if supported
  112400. ES:BX -> DTA set by last INT 21/AH=1Ah
  112401. Note: this function is provided by SBOS.EXE rather than SB.EXE
  112402. SeeAlso: INT 21/AH=1Ah
  112403. --------U-5B8485DL7A-------------------------
  112404. INT 5B U - SitBack v3.02R - TOGGLE ???
  112405. AX = 8485h
  112406. DL = 7Ah
  112407. Return: CX = 5342h if supported
  112408. AL = new value of ??? (00h or 01h)
  112409. --------N-5C---------------------------------
  112410. INT 5C - NetBIOS INTERFACE
  112411. ES:BX -> network control block (NCB) (see #03249)
  112412. Return: AL = status (see #03248)
  112413. Program: NetBIOS was developed by Sytek, Inc. in 1984 as a high-level
  112414. programming interface to the IBM PC Network; the first implementation
  112415. was a ROM BIOS extension on Sytek's PCnet LAN adapter card, but many
  112416. current networks support NetBIOS as the session layer.
  112417. Note: The Sytek PCnet card uses DMA 3.
  112418. SeeAlso: INT 2A/AH=01h,INT 2A/AH=04h,INT 5B"Extended NetBIOS"
  112419. (Table 03248)
  112420. Values for NetBIOS status:
  112421. 00h successful
  112422. 01h bad buffer size
  112423. 03h invalid NETBIOS command
  112424. 05h timeout
  112425. 06h receive buffer too small
  112426. 07h No-ACK command failed
  112427. 08h bad session number
  112428. 09h LAN card out of memory
  112429. 0Ah session closed
  112430. 0Bh command has been cancelled
  112431. 0Dh name already exists
  112432. 0Eh local name table full
  112433. 0Fh name still in use, can't delete
  112434. 11h local session table full
  112435. 12h remote PC not listening
  112436. 13h bad NCB_NUM field
  112437. 14h no answer to CALL or no such remote
  112438. 15h name not in local name table
  112439. 16h duplicate name
  112440. 17h bad delete
  112441. 18h abnormal end
  112442. 19h name error, multiple identical names in use
  112443. 1Ah bad packet
  112444. 21h network card busy
  112445. 22h too many commands queued
  112446. 23h bad LAN card number
  112447. 24h command finished while cancelling
  112448. 26h command can't be cancelled
  112449. 30h name defined by another process (OS/2)
  112450. 34h NetBIOS environment not defined, must issue reset (OS/2)
  112451. 35h required operating system resources exhausted (OS/2)
  112452. 36h maximum applications exceeded (OS/2)
  112453. 37h no SAPs available for NetBIOS (OS/2)
  112454. 38h requested resources not available (OS/2)
  112455. 40h Lana System Error
  112456. 41h Lana Remote Hot Carrier
  112457. 42h Lana Local Hot Carrier
  112458. 43h Lana No Carrier Detected
  112459. 44h unusual network condition
  112460. 45h-4Dh hardware error
  112461. 4Eh token ring is broken
  112462. 4Fh token ring error
  112463. 50h adapter malfunction
  112464. F7h error in explicit INITIALIZE
  112465. F8h error in implicit OPEN
  112466. F9h TOKREUI internal error
  112467. FAh hardware adapter testing
  112468. FBh NetBIOS emulator not found
  112469. FCh OPEN or OPEN_SAP failure
  112470. FDh unexpected adapter closure
  112471. FFh NetBIOS busy (command pending)
  112472. Format of NetBIOS Network Control Block:
  112473. Offset Size Description (Table 03249)
  112474. 00h BYTE command code (see #03250)
  112475. 01h BYTE return code (see #03248)
  112476. 02h BYTE local session number (LSN)
  112477. 03h BYTE "ncb_num" datagram table entry from ADD NAME
  112478. 04h DWORD -> I/O buffer
  112479. 08h WORD length of data in buffer
  112480. 0Ah 16 BYTEs remote system to call
  112481. 1Ah 16 BYTEs network name of local machine
  112482. 2Ah BYTE receive timeout in 1/2 seconds
  112483. 2Bh BYTE send timeout in 1/2 seconds
  112484. 2Ch DWORD -> FAR post handler /* int (far *ncb_post)(); */
  112485. 30h BYTE network adapter number on which to execute command
  112486. 00h-03h IBM NetBIOS specs
  112487. F0h-FFh Eicon NABios interface (see also INT 7B"Eicon")
  112488. 31h BYTE command completion code (see #03248)
  112489. 32h 14 BYTEs reserved for network card
  112490. (Table 03250)
  112491. Values for NetBIOS command code field in NCB:
  112492. 10h start session with NCB_NAME name (call)
  112493. 11h listen for call
  112494. 12h end session with NCB_NAME name (hangup)
  112495. 14h send data via NCB_LSN
  112496. 15h receive data from a session
  112497. 16h receive data from any session
  112498. 17h send multiple data buffers
  112499. 20h send unACKed message (datagram)
  112500. 21h receive datagram
  112501. 22h send broadcast datagram
  112502. 23h receive broadcast datagram
  112503. 30h add name to name table
  112504. 31h delete name from name table
  112505. 32h reset adapter card and tables
  112506. 33h get adapter status (see #03251)
  112507. 34h status of all sessions for name (see #03253)
  112508. 35h cancel
  112509. 36h add group name to name table
  112510. 48h send data and receive data (LAN Manager NETBEUI.DOS)
  112511. 70h unlink from IBM remote program (no F0h function)
  112512. 71h send data without ACK
  112513. 72h send multiple buffers without ACK
  112514. 72h UngermannBass Register (conflicts with above function)
  112515. 73h UngermannBass SendNmc
  112516. 74h UngermannBass Callniu
  112517. 75h UngermannBass Calladdr
  112518. 76h UngermannBass Listenaddr
  112519. 77h UngermannBass SendPkt
  112520. 78h find name
  112521. 78h UngermannBass RcvPkt (conflicts with above function)
  112522. 79h token-ring protocol trace
  112523. 79h UngermannBass SendAttn (conflicts with above function)
  112524. 7Ah UngermannBass RcvAttn
  112525. 7Bh UngermannBass Listenniu
  112526. 7Ch UngermannBass RcvRaw
  112527. 7Dh UngermannBass SendNmc2
  112528. 7Fh Beame&Whiteside BWNB installation check (returns with return code and
  112529. completion code both set to 03h, while invalid functions return only
  112530. return code field set to 03h)
  112531. Note: OR any of the above except 70h with 80h for non-waiting call
  112532. Format of NetBIOS structure "astatus":
  112533. Offset Size Description (Table 03251)
  112534. 00h 6 BYTEs as_id
  112535. 06h BYTE as_jumpers
  112536. 07h BYTE as_post
  112537. 08h BYTE as_major
  112538. 09h BYTE as_minor
  112539. 0Ah WORD as_interval
  112540. 0Ch WORD as_crcerr
  112541. 0Eh WORD as_algerr
  112542. 10h WORD as_colerr
  112543. 12h WORD as_abterr
  112544. 14h DWORD as_tcount
  112545. 18h DWORD as_rcount
  112546. 1Ch WORD as_retran
  112547. 1Eh WORD as_xresrc
  112548. 20h 8 BYTEs as_res0
  112549. 28h WORD as_ncbfree
  112550. 2Ah WORD as_ncbmax
  112551. 2Ch WORD as_ncbx
  112552. 2Eh 4 BYTEs as_res1
  112553. 32h WORD as_sespend
  112554. 34h WORD as_msp
  112555. 36h WORD as_sesmax
  112556. 38h WORD as_bufsize
  112557. 3Ah WORD as_names
  112558. 3Ch 16 name structures as_name (see #03252)
  112559. Note: it has been reported that the first field should be 16 bytes instead
  112560. of six (shifthing all remaining fields by ten bytes)
  112561. Format of NetBIOS structure "name":
  112562. Offset Size Description (Table 03252)
  112563. 00h 16 BYTEs "nm_name" symbolic name
  112564. 10h BYTE "nm_num" number associated with name
  112565. 11h BYTE nm_status
  112566. Format of NetBIOS structure "sstatus":
  112567. Offset Size Description (Table 03253)
  112568. 00h BYTE number of sessions being reported
  112569. 01h BYTE number of sessions with this name
  112570. 02h BYTE number of outstanding receive datagrams
  112571. 03h BYTE number of outstanding ReceiveAnys
  112572. 04h var session structures (see #03254)
  112573. Format of NetBIOS structure "session":
  112574. Offset Size Description (Table 03254)
  112575. 00h BYTE local session number
  112576. 01h BYTE state
  112577. 01h listen pending
  112578. 02h call pending
  112579. 03h session established
  112580. 04h hangup pending
  112581. 05h hangup done
  112582. 06h session aborted
  112583. 02h 16 BYTEs local name
  112584. 12h 16 BYTEs remote name
  112585. 22h BYTE number of outstanding receives
  112586. 23h BYTE number of outstanding sends/chainsends
  112587. --------H-5C---------------------------------
  112588. INT 5C - IRQ12 relocated by DESQview 2.26+
  112589. Range: INT 5C to INT FC, selected automatically
  112590. Note: this is the default, but other INTs may be used (see INT 50"DESQview")
  112591. SeeAlso: INT 50"DESQview",INT 5B"DESQview",INT 5D"DESQview",INT 74
  112592. --------H-5C---------------------------------
  112593. INT 5C - IRQ4 relocated by DoubleDOS
  112594. SeeAlso: INT 0C
  112595. --------N-5C---------------------------------
  112596. INT 5C - TOPS INTERFACE
  112597. ES:BX -> Network Control Block
  112598. Note: TOPS card uses DMA 1, 3 or none.
  112599. --------N-5C---------------------------------
  112600. INT 5C - ATALK.SYS - AppleTalk INTERFACE
  112601. DX:BX -> control block (see #03256)
  112602. Return: none
  112603. InstallCheck: test for the signature "AppleTalk" 16 bytes prior to the
  112604. interrupt handler
  112605. Range: INT 5Ch to INT 70h
  112606. Index: installation check;ATALK.SYS|installation check;AppleTalk interface
  112607. (Table 03255)
  112608. Values for ATALK.SYS command code:
  112609. 01h "AT_INIT" initialize the driver
  112610. 02h "AT_KILL"
  112611. 03h "AT_GETNETINFO" get current network info incl init status
  112612. 04h "AT_GETCLOCKTICKS"
  112613. 05h "AT_STARTTIMER"
  112614. 06h "AT_RESETTIMER"
  112615. 07h "AT_CANCELTIMER"
  112616. 10h "LAP_INSTALL"
  112617. 11h "LAP_REMOVE"
  112618. 12h "LAP_WRITE"
  112619. 13h "LAP_READ"
  112620. 14h "LAP_CANCEL"
  112621. 20h "DDP_OPENSOCKET"
  112622. 21h "DDP_CLOSESOCKET"
  112623. 22h "DDP_WRITE"
  112624. 23h "DDP_READ"
  112625. 24h "DDP_CANCEL"
  112626. 30h "NBP_REGISTER"
  112627. 31h "NBP_REMOVE"
  112628. 32h "NBP_LOOKUP"
  112629. 33h "NBP_CONFIRM"
  112630. 34h "NBP_CANCEL"
  112631. 35h "ZIP_GETZONELIST"
  112632. 36h "ZIP_GETMYZONE"
  112633. 37h "ZIP_TAKEDOWN"
  112634. 38h "ZIP_BRINGUP"
  112635. 40h "ATP_OPENSOCKET"
  112636. 41h "ATP_CLOSESOCKET"
  112637. 42h "ATP_SENDREQUEST"
  112638. 43h "ATP_GETREQUEST"
  112639. 44h "ATP_SENDRESPONSE"
  112640. 45h "ATP_ADDRESPONSE"
  112641. 46h "ATP_CANCELTRANS"
  112642. 47h "ATP_CANCELRESPONSE"
  112643. 48h "ATP_CANCELREQUEST"
  112644. 50h "ASP_GETPARMS"
  112645. 51h "ASP_CLOSESESSION"
  112646. 52h "ASP_CANCEL"
  112647. 53h "ASP_INIT"
  112648. 54h "ASP_KILL"
  112649. 55h "ASP_GETSESSION"
  112650. 56h "ASP_GETREQUEST"
  112651. 57h "ASP_CMDREPLY"
  112652. 58h "ASP_WRTCONTINUE"
  112653. 59h "ASP_WRTREPLY"
  112654. 5Ah "ASP_CLOSEREPLY"
  112655. 5Bh "ASP_NEWSTATUS"
  112656. 5Ch "ASP_ATTENTION"
  112657. 5Dh "ASP_GETSTATUS"
  112658. 5Eh "ASP_OPENSESSION"
  112659. 5Fh "ASP_COMMAND"
  112660. 60h "ASP_WRITE"
  112661. 61h "ASP_GETATTENTION"
  112662. 70h "PAP_OPEN"
  112663. 71h "PAP_CLOSE"
  112664. 72h "PAP_READ"
  112665. 73h "PAP_WRITE"
  112666. 74h "PAP_STATUS"
  112667. 75h "PAP_REGNAME"
  112668. 76h "PAP_REMNAME"
  112669. 77h "PAP_INIT"
  112670. 78h "PAP_NEWSTATUS"
  112671. 79h "PAP_GETNEXTJOB"
  112672. 7Ah "PAP_KILL"
  112673. 7Bh "PAP_CANCEL"
  112674. Format of AppleTalk control block:
  112675. Offset Size Description (Table 03256)
  112676. 00h WORD command code (see #03255)
  112677. OR with the following flags
  112678. 8000h start command then return
  112679. 4000h wait for interrupt service to complete
  112680. 02h WORD returned status
  112681. 0000h success (already initialized if func 01h)
  112682. 04h DWORD pointer to completion function
  112683. 08h WORD network number
  112684. 0Ah BYTE node ID
  112685. ---if general func (01h,03h), control block continues:
  112686. 0Bh BYTE "inf_abridge"
  112687. 0Ch WORD "inf_config"
  112688. 0Eh DWORD pointer to buffer
  112689. 12h WORD buffer size
  112690. ---if DDP function (20h-24h), control block continues:
  112691. 0Bh BYTE "ddp_addr_socket"
  112692. 0Ch BYTE "ddp_socket"
  112693. 0Dh BYTE "ddp_type"
  112694. 0Eh DWORD pointer to buffer
  112695. 12h WORD buffer size
  112696. 14h BYTE "ddp_chksum"
  112697. ---if Name Binding Protocol (30h-34h), control block continues:
  112698. 0Bh BYTE "nbp_addr_socket"
  112699. 0Ch WORD "nbp_toget"
  112700. 0Eh DWORD pointer to buffer (see #03257)
  112701. 12h WORD buffer size
  112702. 14h BYTE "nbp_interval"
  112703. 15h BYTE "nbp_retry"
  112704. 16h DWORD "nbp_entptr"
  112705. ---if AppleTalk Transaction Protocol (42h), control block continues:
  112706. 0Bh BYTE "atp_addr_socket"
  112707. 0Ch WORD "atp_socket"
  112708. 0Eh DWORD pointer to buffer
  112709. 12h WORD buffer size
  112710. 14h BYTE "atp_interval"
  112711. 15h BYTE "atp_retry"
  112712. 16h BYTE ATP flags
  112713. bit 5: exactly one transaction
  112714. 17h BYTE "atp_seqbit"
  112715. 18h BYTE transaction ID
  112716. 19h 4 BYTEs ATP user bytes
  112717. 1Dh BYTE number of BDS buffers
  112718. 1Eh BYTE number of BDS responses
  112719. 1Fh DWORD pointer to BDS buffers (see #03258)
  112720. Format of Name Binding Protocol Name-to-Address binding entries for NBP_LOOKUP:
  112721. Offset Size Description (Table 03257)
  112722. 00h WORD "tup_address_network"
  112723. 02h BYTE "tup_address_notid"
  112724. 03h BYTE "tup_address_socket"
  112725. 04h BYTE "tup_enum"
  112726. 05h 99 BYTEs name
  112727. Format of BDS entries:
  112728. Offset Size Description (Table 03258)
  112729. 00h DWORD pointer to buffer
  112730. 04h WORD size of buffer
  112731. 06h WORD BDS data size
  112732. 08h 4 BYTEs "bds_userbytes"
  112733. --------N-5C---------------------------------
  112734. INT 5C - IBM 802.2 INTERFACE (LLC)
  112735. ES:BX -> CCB (see #03259)
  112736. Return: none
  112737. Format of IBM 802.2 CCB:
  112738. Offset Size Description (Table 03259)
  112739. 00h BYTE adapter
  112740. 01h BYTE command code
  112741. 02h BYTE return code
  112742. 03h BYTE work
  112743. 04h DWORD pointer to ???
  112744. 08h DWORD pointer to completion function???
  112745. 0Ch DWORD pointer to parameters???
  112746. --------N-5C---------------------------------
  112747. INT 5C - $25 LAN - INSTALLATION CHECK
  112748. Notes: current versions only check whether the vector is 0000h:0000h or not
  112749. future versions are supposed to have the signature "NET" in the three
  112750. bytes preceding the INT 5C handler
  112751. --------b-5C0100-----------------------------
  112752. INT 5C C - TI Professional PC - KEYBOARD PAUSE KEY VECTOR
  112753. AX = 0100h
  112754. CF clear
  112755. Return: CF clear
  112756. AX = keystroke to be placed into keyboard buffer
  112757. CF set
  112758. AX ignored
  112759. Desc: toggle a pause flag which is checked by the CRT Device Service Routine
  112760. (see INT 49/AH=01h"TI") and causes it to temporarily halt the
  112761. machine on the next video-related function (until a key is pressed)
  112762. SeeAlso: INT 09"IRQ1",INT 4A/AH=00h"TI",INT 59"TI Professional"
  112763. SeeAlso: INT 5B"TI Professional",INT 5D"TI Professional"
  112764. SeeAlso: INT 5E"TI Professional",INT 5F"TI Professional"
  112765. --------N-5C04-------------------------------
  112766. INT 5C - $25 LAN - CHECK IF CONNECTION ALIVE
  112767. AH = 04h
  112768. AL = COM port (0 = default)
  112769. CX = wait count in character times (should be at least 100)
  112770. Return: ZF set if link alive
  112771. --------H-5D---------------------------------
  112772. INT 5D - IRQ13 relocated by DESQview 2.26+
  112773. Range: INT 5D to INT FD, selected automatically
  112774. Note: this is the default, but other INTs may be used (see INT 50"DESQview")
  112775. SeeAlso: INT 50"DESQview",INT 5C"DESQview",INT 5E"DESQview",INT 75
  112776. --------H-5D---------------------------------
  112777. INT 5D - IRQ5 relocated by DoubleDOS
  112778. SeeAlso: INT 0D"IRQ5",INT 5C"DoubleDOS"
  112779. --------b-5D---------------------------------
  112780. INT 5D C - TI Professional PC - KEYBOARD BREAK KEY VECTOR
  112781. CF clear
  112782. AX = 0000h
  112783. Return: CF clear
  112784. AX = keystroke to place into keyboard buffer
  112785. CF set
  112786. AX ignored
  112787. Desc: invoked by the keyboard ISR when Shift-BrkPause is pressed
  112788. Note: the default handler is a simple IRET instruction
  112789. SeeAlso: INT 09"IRQ1",INT 4A/AH=00h"TI",INT 59"TI Professional"
  112790. SeeAlso: INT 5B"TI Professional",INT 5C"TI Professional"
  112791. SeeAlso: INT 5E"TI Professional",INT 5F"TI Professional"
  112792. --------H-5E---------------------------------
  112793. INT 5E - IRQ14 relocated by DESQview 2.26+
  112794. Range: INT 5E to INT FE, selected automatically
  112795. Note: this is the default, but other INTs may be used (see INT 50"DESQview")
  112796. SeeAlso: INT 50"DESQview",INT 5D"DESQview",INT 5F"DESQview",INT 76
  112797. --------H-5E---------------------------------
  112798. INT 5E - IRQ6 relocated by DoubleDOS
  112799. SeeAlso: INT 0E,INT 5D"DoubleDOS"
  112800. --------b-5E---------------------------------
  112801. INT 5E C - TI Professional PC - KEYBOARD PRINT-SCREEN VECTOR
  112802. CF set
  112803. Return: CF clear
  112804. AX = keystroke to be placed into keyboard buffer
  112805. CF set
  112806. AX ignored
  112807. Desc: hook to dump the screen to the printer
  112808. Notes: hooked by TI MS-DOS, which provides a PRTSCRN character device which
  112809. can invoke screen prints when a decimal digit (indicating the type
  112810. of screen dump) is written to it
  112811. the TI MS-DOS print-screen routine allows selective dumps of text
  112812. only, graphics only, or text and graphics superimposed, in either
  112813. normal or reverse, by pressing the appropriate keystroke combination:
  112814. Shift-Print, Ctrl-Print, Alt-Print, Shift-Alt-Print, Ctrl-Alt-Print,
  112815. or Shift-Ctrl-Print.
  112816. the BIOS default routine for this vector is an IRET
  112817. SeeAlso: INT 05"PRINT SCREEN",INT 4A/AH=00h"TI",INT 59"TI Professional"
  112818. SeeAlso: INT 5B"TI Professional",INT 5C"TI Professional"
  112819. SeeAlso: INT 5D"TI Professional",INT 5F"TI Professional"
  112820. --------H-5F---------------------------------
  112821. INT 5F - IRQ15 relocated by DESQview 2.26+
  112822. Range: INT 5F to INT FF, selected automatically
  112823. Note: this is the default, but other INTs may be used (see INT 50"DESQview")
  112824. SeeAlso: INT 50"DESQview",INT 5E"DESQview",INT 77
  112825. --------H-5F---------------------------------
  112826. INT 5F - IRQ7 relocated by DoubleDOS
  112827. SeeAlso: INT 0F,INT 5E"DoubleDOS"
  112828. --------b-5F---------------------------------
  112829. INT 5F C - TI Professional PC - KEYBOARD QUEUEING VECTOR
  112830. Return: all registers preserved
  112831. Desc: hook for multitaskers to be informed when a keypress is placed in the
  112832. keyboard buffer
  112833. Note: the default handler is a simple IRET instruction
  112834. SeeAlso: INT 09,INT 4A/AH=00h"TI",INT 59"TI Professional"
  112835. SeeAlso: INT 5B"TI Professional",INT 5C"TI Professional"
  112836. SeeAlso: INT 5D"TI Professional",INT 5E"TI Professional"
  112837. --------b-5F00-------------------------------
  112838. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET VIDEO MODE
  112839. AH = 00h
  112840. AL = video mode
  112841. 03h text,CGA color (100LX/200LX)
  112842. 06h 640x200 CGA graphics (100LX/200LX)
  112843. 07h text, system manager compliant
  112844. 20h 240x128 mono graphics, system manager compliant
  112845. 87h text, not system manager compliant
  112846. A0h 240x128 mono graphics, not system manager compliant
  112847. Notes: the defaults after setting the mode to graphics are (0,0) logical
  112848. origin, full-screen clip region, (0,0) pen location, pen color 1,
  112849. pixel replacement FORCE, line type and fill mask all bits set
  112850. modes 03h and 06h can also be set with the standard INT 10/AH=00h
  112851. SeeAlso: INT 0F"HP 95LX",INT 10/AH=00h,INT 15/AX=4DD4h
  112852. --------b-5F01-------------------------------
  112853. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET FILL MASK
  112854. AH = 01h
  112855. ES:DI -> 8-byte fill mask
  112856. Note: the fill mask represents an 8x8 pixel box and is repeated as necessary
  112857. when drawing filled rectangles; it is always aligned with the byte
  112858. boundaries of video memory, regardless of the actual boundaries of
  112859. the rectangle
  112860. SeeAlso: AH=02h
  112861. --------b-5F02-------------------------------
  112862. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - GET CURRENT GRAPHICS INFO
  112863. AH = 02h
  112864. ES:DI -> graphics info record (see #03260)
  112865. Return: DX:AX -> filled graphics info record (for return to high-level langs)
  112866. Format of HP 95LX graphics info record:
  112867. Offset Size Description (Table 03260)
  112868. 00h BYTE current video mode
  112869. 01h BYTE default video mode
  112870. 02h WORD display width in pixels
  112871. 04h WORD display height in pixels
  112872. 06h WORD current pen column
  112873. 08h WORD current pen row
  112874. 0Ah WORD current line type
  112875. 0Ch WORD current replacement rule
  112876. 0Eh WORD current pen color
  112877. 10h WORD current leftmost column of clip region
  112878. 12h WORD current rightmost column of clip region
  112879. 14h WORD current topmost row of clip region
  112880. 16h WORD current bottommost row of clip region
  112881. 18h WORD current column of logical origin
  112882. 1Ah WORD current row of logical origin
  112883. 1Ch 8 BYTEs current fill mask
  112884. --------b-5F03-------------------------------
  112885. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET LOGICAL ORIGIN
  112886. AH = 03h
  112887. CX = column
  112888. DX = row
  112889. SeeAlso: AH=04h
  112890. --------b-5F04-------------------------------
  112891. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET CLIP REGION
  112892. AH = 04h
  112893. CX = left-most column
  112894. DX = top-most row
  112895. SI = right-most column
  112896. DI = bottom-most row
  112897. SeeAlso: AH=03h
  112898. --------b-5F05-------------------------------
  112899. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - DRAW RECTANGLE
  112900. AH = 05h
  112901. AL = fill type
  112902. 00h outline, using current line type and color
  112903. 01h solid, using current color
  112904. 02h pattern, using current fill mask and color
  112905. DX,CX = row,column of other corner of rectangle
  112906. Note: the rectangle is drawn starting at the current pen position
  112907. SeeAlso: AH=01h,AH=06h,AH=07h
  112908. --------b-5F06-------------------------------
  112909. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - DRAW LINE
  112910. AH = 06h
  112911. DX,CX = row,column of end point
  112912. Note: the line is drawn starting at the current pen position
  112913. SeeAlso: AH=05h,AH=07h
  112914. --------b-5F07-------------------------------
  112915. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - PLOT POINT
  112916. AH = 07h
  112917. DX,CX = row,column of point
  112918. Note: also sets pen position to the specified point
  112919. SeeAlso: AH=06h,AH=08h,AH=0Ch
  112920. --------b-5F08-------------------------------
  112921. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - MOVE PEN
  112922. AH = 08h
  112923. DX,CX = row,column of new pen position
  112924. SeeAlso: AH=07h,AH=09h
  112925. --------b-5F09-------------------------------
  112926. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET PEN COLOR
  112927. AH = 09h
  112928. AL = new color (00h = white, 01h = black)
  112929. SeeAlso: AH=08h,AH=0Ah,AH=0Bh
  112930. --------b-5F0A-------------------------------
  112931. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET REPLACEMENT RULE
  112932. AH = 0Ah
  112933. AL = new replacement rule
  112934. 00h force
  112935. 01h AND
  112936. 02h OR
  112937. 03h XOR
  112938. ---100LX/200LX---
  112939. 04h InvForce
  112940. 05h InvAND
  112941. 06h InvOR
  112942. 07h InvXOR
  112943. 08h Txt
  112944. SeeAlso: AH=01h,AH=09h,AH=0Bh
  112945. --------b-5F0B-------------------------------
  112946. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET LINE TYPE
  112947. AH = 0Bh
  112948. CX = new line type
  112949. Note: the line type specifies 16 bits which are repeated over and over while
  112950. drawing the pixels of a line
  112951. SeeAlso: AH=09h,AH=0Ah
  112952. --------b-5F0C-------------------------------
  112953. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - GET PIXEL
  112954. AH = 0Ch
  112955. DX,CX = row,column of pixel to read
  112956. Return: AX = pixel color
  112957. SeeAlso: AH=07h
  112958. --------b-5F0D-------------------------------
  112959. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - GET IMAGE
  112960. AH = 0Dh
  112961. DX,CX = row,column of first corner
  112962. BP,SI = row,column of second corner
  112963. ES:DI -> image buffer (see #03261)
  112964. Note: the specified corners are included in the saved image
  112965. SeeAlso: AH=0Eh
  112966. Format of HP 95LX image buffer:
  112967. Offset Size Description (Table 03261)
  112968. 00h WORD number of planes (always 01h on HP 95LX)
  112969. 02h WORD number of bits/pixel (always 01h on HP 95LX)
  112970. 04h WORD image width in pixels
  112971. 06h WORD image height in pixels
  112972. 08h N BYTEs image data
  112973. requires (WIDTH+7)/8 * HEIGHT bytes
  112974. --------b-5F0E-------------------------------
  112975. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - PUT IMAGE
  112976. AH = 0Eh
  112977. AL = replacement rule (see #03262)
  112978. DX,CX = row,column of top left corner
  112979. ES:DI -> image buffer (see #03261)
  112980. Note: if the specified image does not fit completely on the screen, this call
  112981. does nothing
  112982. SeeAlso: AH=0Dh
  112983. Bitfields for replacement rule:
  112984. Bit(s) Description (Table 03262)
  112985. 2 invert image before applying rule
  112986. 1-0 function (00 force, 01 AND, 10 OR, 11 XOR)
  112987. --------b-5F0F-------------------------------
  112988. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - WRITE TEXT
  112989. AH = 0Fh
  112990. AL = rotate flag (if nonzero, rotate 90 degrees counter-clockwise)
  112991. DX,CX = row,column of first character's top left corner
  112992. ES:DI -> ASCIZ text
  112993. --------b-5F10-------------------------------
  112994. INT 5F - HP 100LX/200LX GRAPHICS PRIMITIVES - GET FONT POINTER
  112995. AH = 10h
  112996. CX = font size of desired font
  112997. 0808h 8x8 small (80x25 text)
  112998. 0A0Bh 11x10 medium (64x18 text)
  112999. 100Ch 12x16 large (40x16 text)
  113000. Return: DX:AX -> ptr to font or 0000h:fontID# if built-in font
  113001. SeeAlso: AH=11h
  113002. --------b-5F11-------------------------------
  113003. INT 5F - HP 100LX/200LX GRAPHICS PRIMITIVES - SET CURRENT FONT
  113004. AH = 11h
  113005. ES:DI -> ptr to font or 0000h:fontID# for built-in font
  113006. Note: this function should be called immediately after AH=10h with the
  113007. pointer supplied by that call
  113008. SeeAlso: AH=10h
  113009. --------!---Section--------------------------
  113010. Interrupt List, part 15 of 18
  113011. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  113012. --------*-60---------------------------------
  113013. INT 60 - reserved for user interrupt
  113014. --------v-60---------------------------------
  113015. INT 60 - VIRUS - "Zero Bug" - INSTALLATION CHECK
  113016. Desc: The "Zero Bug" virus hooks this vector. It considers itself installed
  113017. if offset 103h of the handler's segment contains the bytes "ZE"
  113018. SeeAlso: INT 32"VIRUS",INT 44"VIRUS",INT 61"SEMTEX"
  113019. --------d-60---------------------------------
  113020. INT 60 - Adaptec and OMTI controllers - DRIVE 0 DATA
  113021. SeeAlso: INT 41"HARD DISK 0",INT 61"Adaptec",INT 62"Adaptec",INT 63"Adaptec"
  113022. SeeAlso: INT 64"Adaptec",INT C0"AMI",#00732 at INT 1A/AX=B102h
  113023. Notes: this vector stores the first four bytes of the parameter table for
  113024. hard disk 0
  113025. these vectors are used by the following Adaptec controllers:
  113026. ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16
  113027. these vectors are NOT used by the following Adaptec controllers:
  113028. ACB 2310, ACB 2312, ACB 2320D, ACB 2322D
  113029. --------b-60---------------------------------
  113030. INT 60 - TI Professional PC - SYSTEM ROM DATA AREA POINTER (NOT A VECTOR!)
  113031. Desc: the low word of this vector contains the segment of the RAM data area
  113032. to be used by the system ROM at F400h:A000h, and the high word
  113033. contains the length of the data area (see #03263)
  113034. SeeAlso: INT 61"TI Professional PC",INT 66"TI Professional PC"
  113035. Format of TI Professional System ROM data area:
  113036. Offset Size Description (Table 03263)
  113037. 00h BYTE port 00h shadow
  113038. 01h BYTE port 03h shadow
  113039. 02h BYTE port 04h shadow
  113040. 03h WORD system configuration word (see #03266)
  113041. 05h BYTE 25ms count
  113042. 06h WORD offset of timing event 1 (0008h)
  113043. 08h WORD (event 1) offset of timing event 2 (0010h)
  113044. 0Ah BYTE (event 1) unused (FFh)
  113045. 0Bh BYTE (event 1) active flag (bit 7 set if on)
  113046. 0Ch WORD (event 1) count-down until end of event
  113047. 0Eh WORD (event 1) event routine (in segment F400h) to call at timeout
  113048. 10h WORD (event 2) offset of timing event 3 (0018h)
  113049. 12h BYTE (event 2) unused (FFh)
  113050. 13h BYTE (event 2) active flag (bit 7 set if on)
  113051. 14h WORD (event 2) count-down until end of event
  113052. 16h WORD (event 2) event routine (in segment F400h) to call at timeout
  113053. 18h WORD (event 3) offset of timing event 3 (0020h)
  113054. 1Ah BYTE (event 3) unused (FFh)
  113055. 1Bh BYTE (event 3) active flag (bit 7 set if on)
  113056. 1Ch WORD (event 3) count-down until end of event
  113057. 1Eh WORD (event 3) event routine (in segment F400h) to call at timeout
  113058. 20h WORD (event 4) 0000h - last event
  113059. 22h BYTE (event 4) unused (FFh)
  113060. 23h BYTE (event 4) active flag (bit 7 set if on)
  113061. 24h WORD (event 4) count-down until end of event
  113062. 26h WORD (event 4) event routine (in segment F400h) to call at timeout
  113063. 28h WORD offset of start of text display within segment DE00h
  113064. 2Ah WORD end of display
  113065. 2Ch WORD current absolute cursor position
  113066. 2Eh WORD start of current character row
  113067. 30h WORD current cursor column
  113068. 32h WORD cursor type and size (see #03264)
  113069. 34h WORD start of protected status region on screen (0000h = none)
  113070. 36h BYTE pop flag used by some ROM routines
  113071. 00h pop registers before return
  113072. nonzero: do not pop
  113073. 37h BYTE unused (FFh)
  113074. 38h BYTE PAUSE flag
  113075. 00h off
  113076. FFh on
  113077. 39h BYTE temp: current attribute while moving characters on screen
  113078. 3Ah WORD start of keyboard queue (next key at start+2 or 0042h if 0060h)
  113079. 3Ch WORD end of keyboard queue (next key inserted at end+2 or 0042h)
  113080. 3Eh BYTE number of characters in buffer
  113081. 3Fh BYTE keyboard mode flags (see #03265)
  113082. 40h BYTE Alt-digit-digit-digit accumulator
  113083. 41h BYTE Alt-digit-digit-digit count of digits (mod 3)
  113084. 42h 16 WORDs keyboard buffer (circular queue)
  113085. 62h 8 DWORDs Drive Interface Table pointers for floppies A:-D: + four others
  113086. (0000h:0000h if pointer not in use)
  113087. 82h BYTE disk-error retry count (incremented on each disk error)
  113088. 83h 2 BYTEs BIOS scratch space
  113089. 85h 8 BYTEs current cylinder number for drives 0-7
  113090. FFh = unknown
  113091. 8Dh BYTE BIOS scratch space
  113092. 8Eh BYTE hard error code for last disk access
  113093. 00h operation successful
  113094. 8Fh 8 BYTEs save area for disk DSR parameters
  113095. 97h 6 BYTEs current drive status
  113096. 9Dh BYTE retry error status
  113097. 9Eh BYTE BIOS scratch space
  113098. 9Fh 7 BYTEs ???
  113099. A6h 2 WORDs INT 47 save area for SS,SP
  113100. AAh 2 WORDs INT 46 save area for SS,SP
  113101. AEh 2 WORDs INT 43 save area for SS,SP
  113102. B2h 2 WORDs save area for SS,SP to be restored by common intr. exit routine
  113103. B6h 24 WORDs stack for INT 47
  113104. E6h 24 WORDs stack for INT 46
  113105. 116h 17 WORDs stack for INT 43
  113106. 13Ah 6 BYTEs system date and time (hundredths, seconds, minutes, hours, and
  113107. WORD days since 01jan1980)
  113108. Note: timing event 1 is the disk I/O timeout, event 2 is the floppy disk
  113109. motor timeout, event 3 is the floppy disk motor spin-up time, and
  113110. event 4 is used to turn off the speaker after a delay
  113111. Bitfields for TI Professional PC cursor size and type:
  113112. Bit(s) Description (Table 03264)
  113113. 15 reserved (0)
  113114. 14-13 cursor type
  113115. 00 nonblinking
  113116. 01 off
  113117. 10 slow blink
  113118. 11 fast blink
  113119. 12-8 starting scan line (0-11)
  113120. 7-5 reserved (0)
  113121. 4-0 ending scan line (0-11)
  113122. SeeAlso: #03263
  113123. Bitfields for TI Professional PC keyboard mode flags:
  113124. Bit(s) Description (Table 03265)
  113125. 7 CapsLock was ON at last keypress
  113126. 6-4 reserved (0)
  113127. 3 repeat key
  113128. 2 Shift was down at last keypress
  113129. 1 Alt was down at last keypress
  113130. 0 Ctrl was down at last keypress
  113131. SeeAlso: #03263
  113132. Bitfields for TI Professional System Configuration Word:
  113133. Bit(s) Description (Table 03266)
  113134. 0 drive A: installed
  113135. 1 drive B: installed
  113136. 2 drive C: installed
  113137. 3 drive D: installed
  113138. 4 drive A: is 80-track
  113139. 5 drive A: is double-sided
  113140. 6 60-Hz (USA,etc.) system instead of 50-Hz (Europe)
  113141. 7 hard disk installed
  113142. 8 serial port 1 installed
  113143. 9 serial port 2 installed
  113144. 10 serial port 3 installed
  113145. 11 serial port 4 installed
  113146. 14-12 installed graphics planes
  113147. 000 none
  113148. 001 plane A
  113149. 111 planes A, B, and C
  113150. 15 clock installed
  113151. SeeAlso: #03263
  113152. --------b-60---------------------------------
  113153. INT 60 - Atari Portfolio - USER INTERFACE FUNCTIONS
  113154. Desc: supplies a number of subfunctions which perform such functions as
  113155. drawing boxes and menus, and provide input line editing
  113156. SeeAlso: INT 61/AH=00h"Atari",INT 61"EXTENDED BIOS"
  113157. --------V-60---------------------------------
  113158. INT 60 - Nabbit v2.0 - (NOT A VECTOR!) - INSTALLATION CHECK
  113159. Program: Nabbit is a shareware resident screen data grabber by RSE Inc.
  113160. Range: INT 60 to INT 66, selected by searching for first free vector
  113161. Note: the Nabbit installation check consists of testing whether the
  113162. interrupt vector points at the ASCIZ signature string "iG"
  113163. (69h 47h 00h)
  113164. --------V-60---------------------------------
  113165. INT 60 - ATI M64VBE.COM - INSTALLATION SIGNATURE
  113166. Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip
  113167. InstallCheck: scan for an interrupt with the ASCIZ signature "M64VBE" three
  113168. bytes past the interrupt handler
  113169. Range: INT 60 to INT 66, selected by searching for first free vector
  113170. SeeAlso: INT 10/AX=4FDDh"M64VBE",INT 10/AX=4FFFh/BX=364Dh"M64VBE"
  113171. --------V-60---------------------------------
  113172. INT 60 U - Buffit v3.0 - (NOT A VECTOR!) - INSTALLATION CHECK
  113173. Program: Buffit is a shareware scrollback utility by D.T. Hamilton
  113174. Range: INT 60 to INT 6F, selected by searching for first free vector
  113175. Notes: the Buffit installation check consists of testing whether the
  113176. interrupt vector points at the ASCII signature "Buffit "
  113177. there is a private entry point (see #03267) immediately following the
  113178. signature string, i.e. eight bytes beyond the address pointed at
  113179. by the interrupt vector
  113180. (Table 03267)
  113181. Call Buffit private entry point with:
  113182. AH = function
  113183. 00h get information and hotkey state
  113184. 01h get information and toggle hotkey state
  113185. Return: AH = new hotkey state (00h enabled, 01h disabled)
  113186. AL = hotkey scan code (see #00006)
  113187. BH = hotkey shift states
  113188. BL = ??? (01h)
  113189. CX = segment of resident code
  113190. DH = interrupt number used for signature pointer
  113191. DL = ??? (00h)
  113192. SI = INT 09 handler offset
  113193. DI = INT 21 handler offset
  113194. Index: hotkeys;Buffit
  113195. --------r-60---------------------------------
  113196. INT 60 - PC-IPC API
  113197. STACK: DWORD pointer to parameter block (see #03268)
  113198. Return: STACK: unchanged
  113199. Program: PC-IPC is a shareware TSR by Donnelly Software Engineering which
  113200. allows communication between independent programs
  113201. Range: INT 00 to INT FF, selected by commandline switch
  113202. Format of PC-IPC parameter block:
  113203. Offset Size Description (Table 03268)
  113204. 00h WORD caller's ID
  113205. 02h WORD to ID
  113206. 04h WORD command code (see #03269)
  113207. 06h WORD returned status (see #03270)
  113208. 08h WORD returned error code (see #03271)
  113209. 0Ah WORD size of data
  113210. 0Ch DWORD pointer to data buffer
  113211. (Table 03269)
  113212. Values for PC-IPC command code:
  113213. 01h "IPC_CMND_INQUIRE" inquire current status
  113214. set status field, writes WORD to data buffer containing free
  113215. message space in bytes, and sets the "size" field to the
  113216. number of messages waiting
  113217. 02h "IPC_CMND_ENABLE" reenable PC-IPC
  113218. ignored unless called with the same ID that disabled PC-IPC
  113219. 03h "IPC_CMND_DISABLE" disable PC-IPC
  113220. 04h "IPC_CMND_INSTALL" reset PC-IPC
  113221. 06h "IPC_CMND_RDATA" read data
  113222. returns first message in data buffer, sets "size" to message length
  113223. and "to ID" field to sender's ID
  113224. if no messages available, bit 4 of status is cleared and "size" is
  113225. set to zero
  113226. 07h "IPC_CMND_SDATA" send data
  113227. 08h "IPC_CMND_REQID" require user ID
  113228. create a new recognized ID and return in "caller's ID" field
  113229. 09h "IPC_CMND_DELID" cancel user ID
  113230. delete caller's ID from pool of recognized IDs
  113231. 0Ah "IPC_CMND_RDATAW" read data, wait if no messages available
  113232. 0Bh "IPC_CMND_VERS" get PC-IPC version
  113233. string representing version returned in data buffer, "size" field
  113234. set to length of string
  113235. Bitfields for returned status:
  113236. Bit(s) Description (Table 03270)
  113237. 0 unused
  113238. 1 IPC enabled
  113239. 2 IPC installed
  113240. 3 error
  113241. 4 message(s) available
  113242. (Table 03271)
  113243. Values for PC-IPC error code:
  113244. 00h no error
  113245. 01h invalid command or parameter
  113246. 02h only process 0 can install/reset IPC
  113247. 03h process can not install/reset IPC
  113248. 04h IPC is not enabled
  113249. 05h process can not disable IPC
  113250. 06h invalid destination process ID
  113251. 07h invalid sending process ID
  113252. 08h invalid data destination
  113253. 09h no more process IDs available
  113254. 0Ah can not relinquish that process ID
  113255. 0Bh message space is full
  113256. 0Ch IPC is not installed
  113257. --------R-60---------------------------------
  113258. INT 60 - Tangram Arbiter - API
  113259. Desc: Arbiter makes a PC disk look like a slow disk over an SNA link to an
  113260. IBM mainframe
  113261. Range: INT 60h to INT 66h, selected by configuration parameter
  113262. Notes: identified by string "@ARB_API" immediately following a short jump at
  113263. the interrupt handler address
  113264. --------N-60---------------------------------
  113265. INT 60 - Excelan LAN Workplace for DOS 3.5 - API
  113266. ES:BX -> request packet (see #03272)
  113267. Return: request packet updated
  113268. InstallCheck: test for the WORD 4142h ('AB') immediately preceding the
  113269. interrupt handler
  113270. Note: this interrupt is also supported by Beame&Whiteside's BWLWP35 shim,
  113271. which was used in creating this description
  113272. BUG: because BWLWP35 range-checks only the low byte of the function number,
  113273. and has a fencepost error even in that test, functions 000Bh and
  113274. XX01h-XX0Bh (XX nonzero) branch to random locations
  113275. SeeAlso: INT 2F/AX=7A40h
  113276. Format of Excelan request packet:
  113277. Offset Size Description (Table 03272)
  113278. 00h 12 BYTEs ???
  113279. 0Ch WORD (ret) error code (see #03273)
  113280. 0Eh DWORD -> FAR function for ???
  113281. 12h WORD function number
  113282. 0001h ???
  113283. 0002h NOP
  113284. 0003h NOP
  113285. 0004h NOP
  113286. 0005h ???
  113287. 0006h get ??? record
  113288. 0007h NOP
  113289. 0008h reset ???
  113290. 0009h NOP
  113291. 000Ah set ???
  113292. ???
  113293. ---function 01h---
  113294. 20h BYTE (call) subfunction (32h-3Bh)
  113295. 3Bh non-blocking I/O request (will be tested every clock tick)
  113296. 21h BYTE (ret) error code
  113297. 00h successful
  113298. 09h invalid connection number
  113299. 2Ah bad connection type
  113300. 45h ???
  113301. ---function 01h, subfunction 32h---
  113302. 3Ah WORD (call) connection type (01h stream, 02h datagram)
  113303. ---function 01h, subfunction 34h---
  113304. 26h WORD (call) ???
  113305. 28h WORD (call) ???
  113306. 2Ah WORD (call) ???
  113307. ---function 01h, subfunction 35h---
  113308. 1Ah WORD (call) connection number???
  113309. 26h WORD (ret) ???
  113310. ---function 01h, subfunction 36h---
  113311. 1Ah WORD (call) connection number???
  113312. 38h WORD ???
  113313. ---function 01h, subfunction 37h---
  113314. 24h WORD (ret) ???
  113315. 26h WORD (ret) ???
  113316. ---function 01h, subfunction 38h---
  113317. 1Ah WORD (call) connection number???
  113318. ---function 01h, subfunction 3Ah---
  113319. 22h WORD (call) ???
  113320. 667Eh ???
  113321. 667Fh ???
  113322. 24h BYTE (call 667Eh) ???
  113323. 24h WORD (return 667Fh) ???
  113324. ---function 01h, subfunction 3Bh---
  113325. 0Eh DWORD (call) -> function to invoke for I/O or 0000h:0000h
  113326. function called with AX = 0000h
  113327. STACK: DWORD -> request packet
  113328. WORD 0000h
  113329. should return STACK unchanged
  113330. 1Ah WORD (call) connection number???
  113331. 21h BYTE (ret) set to 01h when I/O becomes possible
  113332. 22h BYTE (call) direction (00h write, 01h read)
  113333. 34h DWORD (ret) -> next pending request packet
  113334. ---function 05h---
  113335. 1Eh WORD (call) ???
  113336. 20h WORD (call) ???
  113337. 34h DWORD (call) -> ???
  113338. ---function 06h---
  113339. 16h DWORD (call) -> buffer for ??? record (see #03274)
  113340. 1Ah WORD (call) number of bytes to copy
  113341. 22h WORD (ret) number of bytes transferred
  113342. ---function 08h---
  113343. 14h WORD (ret) ??? (0001h)
  113344. ---function 0Ah---
  113345. 16h DWORD (call) -> WORD ???
  113346. 1Ch WORD (call) must be 000Ah for BWLWP35
  113347. (Table 03273)
  113348. Values for Excelan error code:
  113349. 0000h successful
  113350. 002Dh invalid function
  113351. 0050h ???
  113352. Format of ??? record:
  113353. Offset Size Description (Table 03274)
  113354. 00h WORD offset of ???
  113355. 02h 4 BYTEs ???
  113356. 06h DWORD IP address (big-endian)
  113357. 0Ah 6 BYTEs physical address (big-endian)
  113358. ???
  113359. --------N-60---------------------------------
  113360. INT 60 - TCPDRV 2.01 - TCP/IP Application Binary Interface (ABI)
  113361. Note: The handler for the interrupt will start with a 2-byte NEAR jump
  113362. instruction, followed by the ASCIZ signature string "TCP DRVR".
  113363. To find the interrupt being used by the driver, an application
  113364. should scan through interrupt vectors 60h to 7Fh until it finds
  113365. one with the "TCP DRVR" string.
  113366. This specification is being proposed by Peter R. Tattam from the
  113367. University of Tasmania.
  113368. Index: installation check;TCPDRV
  113369. --------G-60---------------------------------
  113370. INT 60 U - INTRSPY/CMDSPY v1.0 only - API
  113371. Program: INTRSPY is a script-driven debugger included with the book
  113372. _Undocumented_DOS_.
  113373. InstallCheck: determine that a) the handler is an IRET instruction, and
  113374. b) the signature 0Dh "INTRSPY vN.NN" immediately precedes the handler
  113375. Notes: INTRSPY will hook the first available interrupt in the range 60h-67h.
  113376. If INTRSPY is installed, the DWORD immediately after the IRET stores
  113377. its entry point (see #03275)
  113378. INTRSPY v2.0 (included with the second edition of the book) no longer
  113379. supports this API
  113380. Index: installation check;INTRSPY
  113381. (Table 03275)
  113382. Call INTRSPY v1.0 entry point with:
  113383. AH = function
  113384. 00h ???
  113385. 01h set current directory (for use in reporting)
  113386. ES:DI -> counted string containing directory name (max 79 char)
  113387. 02h set name of script file
  113388. ES:DI -> counted string containing file name (max 79 chars)
  113389. 03h set script arguments
  113390. ES:DI -> counted string containing arguments (max 79 chars)
  113391. 04h get directory set with function 01h
  113392. ES:DI -> 80-byte buffer for directory name
  113393. 05h get name of script file
  113394. ES:DI -> 80-byte buffer for script filename
  113395. 06h get script arguments
  113396. ES:DI -> 80-byte buffer for script arguments
  113397. 07h get ???
  113398. CL = 00h-15h specifies what to get
  113399. ES:DI -> WORD to be set with desired value on return
  113400. 08h get ???
  113401. ES:DI -> WORD to be set with returned value
  113402. 09h get ???
  113403. ES:DI -> WORD to be set with returned value
  113404. 0Bh store code for interrupt handler???
  113405. ES:DI -> data
  113406. CX = number of bytes
  113407. 0Ch ???
  113408. ES:DI -> ???
  113409. 0Dh get ???
  113410. ES:DI -> BYTE to be set with returned value
  113411. 0Eh set ??? flag
  113412. 0Fh clear ??? flag
  113413. 10h ???
  113414. Return: AL = 04h or 05h if failed
  113415. 11h ???
  113416. Return: AL = 05h if failed
  113417. 12h get ???
  113418. ES:DI -> buffer
  113419. Return: CX = number of bytes returned in buffer
  113420. 13h ???
  113421. Return: AH = 00h
  113422. AL = status
  113423. 00h successful
  113424. 01h invalid function
  113425. 02h ???
  113426. 03h ???
  113427. 04h ???
  113428. 05h ???
  113429. --------u-60---------------------------------
  113430. INT 60 U - PC/370 v4.2 - ???
  113431. ???
  113432. Return: ???
  113433. Program: PC/370 is an IBM 370 emulator by Donald S. Higgins
  113434. Range: INT 00 to INT FF, selected by patching the executable
  113435. Note: the documentation includes instructions for patching the system for
  113436. another interrupt
  113437. SeeAlso: INT 2F/AX=7F24h,INT DC"PC/370"
  113438. --------r-60---------------------------------
  113439. INT 60 - JPI TopSPEED Modula-2 v1 - PROCEDURE ENTRY TRAP
  113440. SeeAlso: INT 61"JPI"
  113441. --------N-60---------------------------------
  113442. INT 60 - FTP Packet Driver - PC/TCP Packet Driver Specification
  113443. Range: INT 20 to INT FF
  113444. Notes: The handler for the interrupt will start with a 3-byte jump
  113445. instruction, followed by the ASCIZ string "PKT DRVR" (the
  113446. terminating NUL is significant).
  113447. To find the interrupt being used by the driver, an application should
  113448. scan through interrupt vectors 20h to FFh (60h through 80h for
  113449. v1.09- of the specification) until it finds one with the "PKT DRVR"
  113450. string.
  113451. AH values of 80h to FFh have been reserved for user-defined additions.
  113452. --------I-60---------------------------------
  113453. INT 60 u - 3270-PC CONTROL PROGRAM - ???
  113454. --------b-60----DI0100-----------------------
  113455. INT 60 u - HP 95LX System Manager - WAIT FOR EVENT
  113456. DI = 0100h
  113457. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113458. DWORD pointer to event record (see #03277)
  113459. Return: event record filled
  113460. STACK unchanged
  113461. Note: this call will timeout after about 500ms
  113462. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0101h,INT 61"HP 95LX",INT 62"HP 95LX"
  113463. (Table 03276)
  113464. Values for HP 95LX event type:
  113465. 00h no events
  113466. 01h keystroke available
  113467. 02h Ctrl-Break
  113468. 03h reactivation (always follows deactivation event)
  113469. 04h about to deactivate (sleep)
  113470. next get-event call will not return until reactivated
  113471. 05h forced application termination
  113472. 06h 1-2-3 bridge service request (only given to 1-2-3)
  113473. 07h request to grow
  113474. 08h request to shrink
  113475. 09h application's alarm expired
  113476. 0Ah daily chance to set an alarm
  113477. 0Bh system date or time has been changed
  113478. Format of HP 95LX event record:
  113479. Offset Size Description (Table 03277)
  113480. 00h WORD event type (see #03276)
  113481. 02h WORD ASCII code page 850 translation of keystroke
  113482. or grow/shrink amount in paragraphs or 0000h if error
  113483. or alarm expiration data
  113484. 04h BYTE scan code from BIOS
  113485. 05h BYTE shift key states at time keystroke is retrieved
  113486. 06h WORD LICS translation of keystroke
  113487. 08h BYTE function key number (1-2-3 only)
  113488. 09h DWORD pointer to 1-2-3 bridge record (see #03279)
  113489. or pointer to time change structure (see #03278)
  113490. Note: if the System Manager is awaiting the conclusion of a bridge service
  113491. or grow/shrink call and the event type field is set to FFFFh on
  113492. entry, the SysMgr will resume
  113493. Format of HP 95LX time change structure:
  113494. Offset Size Description (Table 03278)
  113495. 00h WORD old year
  113496. 02h BYTE old month
  113497. 03h BYTE old date
  113498. 04h BYTE old day
  113499. 05h BYTE old hour
  113500. 06h BYTE old minute
  113501. 07h BYTE old second
  113502. 08h BYTE old hundredth of a second
  113503. 09h 9 BYTEs new time in same format as old time
  113504. --------b-60----DI0101-----------------------
  113505. INT 60 u - HP 95LX System Manager - CHECK FOR EVENT
  113506. DI = 0101h
  113507. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113508. DWORD pointer to event record (INT 60/DI=0100h)
  113509. Return: event record filled
  113510. STACK unchanged
  113511. Note: this call returns immediately if no event is available
  113512. SeeAlso: INT 60/DI=0100h
  113513. --------b-60----DI0102-----------------------
  113514. INT 60 u - HP 95LX System Manager - "SH_STATUS"
  113515. DI = 0102h
  113516. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113517. Return: ???
  113518. STACK unchanged
  113519. --------b-60----DI0104-----------------------
  113520. INT 60 u - HP 95LX System Manager - LOTUS 1-2-3 BRIDGE SERVICES
  113521. DI = 0104h
  113522. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113523. DWORD pointer to bridge record (see #03279)
  113524. Return: ???
  113525. STACK unchanged
  113526. Format of HP 95LX bridge record:
  113527. Offset Size Description (Table 03279)
  113528. 00h WORD function code (see #03280)
  113529. 02h WORD return code from 1-2-3
  113530. 04h 16 BYTEs ASCII range name
  113531. 14h WORD start column of range
  113532. 16h WORD start row of range
  113533. 18h WORD end column of range
  113534. 1Ah WORD end row of range
  113535. 1Ch WORD order in which data is placed in buffer
  113536. 1Eh WORD buffer size
  113537. 20h WORD offset within bridge record's segment of buffer for cell data
  113538. (Table 03280)
  113539. Values for HP 95LX function code:
  113540. 00h test
  113541. 01h get range
  113542. 02h "GETRANGE_ADDR"
  113543. 03h "SETRANGE_ADDR"
  113544. 04h "GETRANGE_DATA"
  113545. 05h "SETRANGE_DATA"
  113546. 06h recalculate
  113547. 07h get cursor
  113548. 08h set cursor
  113549. 09h redisplay
  113550. 0Ah cell type
  113551. 0Bh "CALCTYPE"
  113552. --------b-60----DI0105-----------------------
  113553. INT 60 u - HP 95LX System Manager - FLUSH KEYBOARD BUFFER
  113554. DI = 0105h
  113555. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113556. Return: ???
  113557. STACK unchanged
  113558. --------b-60----DI0106-----------------------
  113559. INT 60 u - HP 95LX System Manager - YIELD CPU
  113560. DI = 0106h
  113561. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113562. DWORD pointer to ???
  113563. Return: ???
  113564. STACK unchanged
  113565. SeeAlso: INT 15/AX=1000h,INT 2F/AX=1680h
  113566. --------b-60----DI0107-----------------------
  113567. INT 60 u - HP 95LX System Manager - "NO_FINI" - REFUSE TERMINATION REQUEST
  113568. DI = 0107h
  113569. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113570. DWORD pointer to ???
  113571. Return: ???
  113572. STACK unchanged
  113573. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  113574. --------b-60----DI0200-----------------------
  113575. INT 60 u - HP 95LX System Manager - SETUP MENU
  113576. DI = 0200h
  113577. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113578. DWORD pointer to menu data (see #03281)
  113579. DWORD pointer to ???
  113580. WORD number of items on menu???
  113581. WORD ???
  113582. DWORD pointer to ???
  113583. WORD ???
  113584. DWORD pointer to ???
  113585. Return: ???
  113586. STACK unchanged
  113587. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0201h,INT 60/DI=0203h,INT 60/DI=0205h
  113588. Format of HP 95LX menu data:
  113589. Offset Size Description (Table 03281)
  113590. 00h 80 BYTEs first line of menu text
  113591. 50h 80 BYTEs second line of menu text
  113592. A0h 80 BYTEs third line of menu text
  113593. F0h WORD number of keywords
  113594. F2h WORD index of currently highlighted keyword or FFFFh
  113595. F4h WORD single prompt on top line if nonzero
  113596. F6h 20 BYTEs which line each of 20 keywords is located on
  113597. 10Ah 20 BYTEs offset of each of 20 keywords within its line
  113598. 11Eh 20 BYTEs length of each of 20 keywords
  113599. 132h 20 BYTEs first letter of each of 20 keywords
  113600. 146h 20 WORDs offsets of long prompts for each of 20 keywords
  113601. --------b-60----DI0201-----------------------
  113602. INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY MENU
  113603. DI = 0201h
  113604. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113605. DWORD pointer to menu data (see #03281)
  113606. Return: ???
  113607. STACK unchanged
  113608. SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0206h
  113609. --------b-60----DI0202-----------------------
  113610. INT 60 u - HP 95LX System Manager - "MENU_ON" - ENABLE PROCESSING OF MENU
  113611. DI = 0202h
  113612. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113613. DWORD pointer to menu data (see #03281)
  113614. Return: ???
  113615. STACK unchanged
  113616. SeeAlso: INT 60/DI=0200h,INT 60/DI=0201h,INT 60/DI=0203h
  113617. --------b-60----DI0203-----------------------
  113618. INT 60 u - HP 95LX System Manager - REMOVE MENU
  113619. DI = 0203h
  113620. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113621. DWORD pointer to menu data (see #03281)
  113622. Return: ???
  113623. STACK unchanged
  113624. SeeAlso: INT 60/DI=0201h,INT 60/DI=0202h,INT 60/DI=0204h,INT 60/DI=0208h
  113625. --------b-60----DI0204-----------------------
  113626. INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER HANDLE MENU KEYSTROKE
  113627. DI = 0204h
  113628. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113629. DWORD pointer to menu data (see #03281)
  113630. WORD keystroke
  113631. DWORD pointer to WORD to receive selection number
  113632. Return: buffer for selection number filled with index of selected menu item or
  113633. FFFFh if no final selection yet
  113634. STACK unchanged
  113635. SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0207h
  113636. --------b-60----DI0205-----------------------
  113637. INT 60 u - HP 95LX System Manager - INITIALIZE FILE SELECTION MENU
  113638. DI = 0205h
  113639. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113640. DWORD pointer to file menu structure (see #03282)
  113641. DWORD pointer to edit record (see #03285 at INT 60/DI=0400h)
  113642. DWORD pointer to wildcard filespec for initial file list
  113643. WORD row???
  113644. WORD column???
  113645. Return: ???
  113646. STACK unchanged
  113647. SeeAlso: INT 60/DI=0200h,INT 60/DI=0206h,INT 60/DI=0208h
  113648. Format of HP 95LX file menu structure:
  113649. Offset Size Description (Table 03282)
  113650. 00h DWORD pointer to ASCIZ base directory name
  113651. 04h DWORD pointer to ASCIZ file pattern (wildcard filespec)
  113652. 08h DWORD pointer to file list workspace, at least 1024 bytes (see #03283)
  113653. 0Ch WORD size of file list workspace in bytes
  113654. 0Eh WORD starting row (-3 is topmost, 0 is first non-"reserved" line)
  113655. 10h WORD starting column
  113656. 12h WORD number of lines
  113657. 14h WORD number of columns
  113658. 16h WORD number of files displayed on each line
  113659. ---the remaining fields are initialized by the System Manager---
  113660. 18h WORD 0000h if first edit character, else multiline
  113661. 1Ah WORD number of files in file list
  113662. 1Ch WORD max files workspace has room for
  113663. 1Eh WORD file at top of list
  113664. 20h WORD index of file to highlight
  113665. 22h WORD index of file to unhighlight
  113666. 24h WORD current focus (01h FMENU, 02h EDIT)
  113667. Format of HP 95LX file list workspace entry:
  113668. Offset Size Description (Table 03283)
  113669. 00h BYTE file attributes
  113670. 01h WORD file time (see #01665 at INT 21/AX=5700h)
  113671. 03h WORD file date (see #01666 at INT 21/AX=5700h)
  113672. 05h DWORD file size
  113673. 09h 13 BYTEs ASCIZ filename
  113674. --------b-60----DI0206-----------------------
  113675. INT 60 u - HP 95LX System Manager - DISPLAY/REDISPLAY FILE SELECTION MENU
  113676. DI = 0206h
  113677. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113678. DWORD pointer to file menu structure (see #03282)
  113679. DWORD pointer to edit record (see #03285 at INT 60/DI=0400h)
  113680. Return: ???
  113681. STACK unchanged
  113682. SeeAlso: INT 60/DI=0205h
  113683. --------b-60----DI0207-----------------------
  113684. INT 60 u - HP 95LX System Manager - LET SYSMGR PROCESS FILE SEL MENU KEYSTROKE
  113685. DI = 0207h
  113686. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113687. DWORD pointer to file menu structure (see #03282)
  113688. DWORD pointer to edit record (see #03285 at INT 60/DI=0400h)
  113689. WORD keystroke
  113690. Return: AX = status (see #03284)
  113691. STACK unchanged
  113692. SeeAlso: INT 60/DI=0205h,INT 60/DI=0208h
  113693. (Table 03284)
  113694. Values for HP 95LX System Manager status:
  113695. 0000h keystroke processed, call INT 60/DI=0206h to refresh menu
  113696. 0001h redisplay application area before refreshing menu
  113697. 0002h user confirmed selection, filename is in edit record's buffer
  113698. 0003h user aborted menu
  113699. FFFBh bad filename
  113700. FFFCh bad directory
  113701. FFFDh bad drive
  113702. FFFEh unknown keystroke
  113703. FFFFh keystroke known but invalid in current context
  113704. --------b-60----DI0208-----------------------
  113705. INT 60 u - HP 95LX System Manager - REMOVE FILE SELECTION MENU
  113706. DI = 0208h
  113707. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113708. DWORD pointer to file menu structure (see #03282)
  113709. DWORD pointer to edit record (see #03285 at INT 60/DI=0400h)
  113710. Return: ???
  113711. STACK unchanged
  113712. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0205h,INT 60/DI=0206h
  113713. --------b-60----DI0300-----------------------
  113714. INT 60 u - HP 95LX System Manager - DISPLAY STRING
  113715. DI = 0300h
  113716. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113717. WORD starting row (-3 is topmost, 0 is first user line)
  113718. WORD starting column
  113719. DWORD pointer to string
  113720. WORD length of string
  113721. WORD display style: 0000h normal, 0001h reverse video
  113722. WORD "OSTYLE"
  113723. Return: ???
  113724. STACK unchanged
  113725. SeeAlso: INT 60/DI=0F03h,INT 60/DI=1005h
  113726. --------b-60----DI0301-----------------------
  113727. INT 60 u - HP 95LX System Manager - CLEAR PORTION OF SCREEN
  113728. DI = 0301h
  113729. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113730. WORD starting row (-3 is topmost, 0 is first user line)
  113731. WORD starting column
  113732. WORD number of rows
  113733. WORD number of columns
  113734. Return: ???
  113735. STACK unchanged
  113736. SeeAlso: INT 60/DI=0302h,INT 60/DI=1005h
  113737. --------b-60----DI0302-----------------------
  113738. INT 60 u - HP 95LX System Manager - SCROLL PORTION OF SCREEN
  113739. DI = 0302h
  113740. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113741. WORD starting row???
  113742. WORD starting column???
  113743. WORD height of scroll region???
  113744. WORD width of scroll region???
  113745. WORD number of lines to scroll region???
  113746. Return: ???
  113747. STACK unchanged
  113748. SeeAlso: INT 60/DI=0301h
  113749. --------b-60----DI0303-----------------------
  113750. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_XCHG"
  113751. DI = 0303h
  113752. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113753. WORD ???
  113754. WORD ???
  113755. WORD ???
  113756. WORD ???
  113757. DWORD pointer to ???
  113758. Return: ???
  113759. STACK unchanged
  113760. --------b-60----DI0304-----------------------
  113761. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRATTR"
  113762. DI = 0304h
  113763. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113764. DWORD pointer to ???
  113765. WORD ???
  113766. Return: ???
  113767. STACK unchanged
  113768. --------b-60----DI0305-----------------------
  113769. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRRVRT"
  113770. DI = 0305h
  113771. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113772. WORD ???
  113773. WORD ???
  113774. DWORD pointer to ???
  113775. WORD ???
  113776. Return: ???
  113777. STACK unchanged
  113778. --------b-60----DI0307-----------------------
  113779. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRINV"
  113780. DI = 0307h
  113781. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113782. WORD ???
  113783. WORD ???
  113784. WORD ???
  113785. Return: ???
  113786. STACK unchanged
  113787. --------b-60----DI0308-----------------------
  113788. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_ROWS_COLS"
  113789. DI = 0308h
  113790. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113791. Return: ???
  113792. STACK unchanged
  113793. --------b-60----DI0309-----------------------
  113794. INT 60 u - HP 95LX System Manager - SET SCREEN (VIDEO???) MODE
  113795. DI = 0309h
  113796. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113797. WORD new mode
  113798. Return: ???
  113799. STACK unchanged
  113800. --------b-60----DI030A-----------------------
  113801. INT 60 u - HP 95LX System Manager - GET SCREEN (VIDEO???) MODE
  113802. DI = 030Ah
  113803. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113804. Return: ???
  113805. STACK unchanged
  113806. --------b-60----DI030B-----------------------
  113807. INT 60 u - HP 95LX System Manager - SET CURSOR POSITION
  113808. DI = 030Bh
  113809. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113810. WORD row (-3 is topmost, 0 is first non-reserved line)
  113811. WORD column
  113812. Return: ???
  113813. STACK unchanged
  113814. Note: cursor is hidden if the specified position is not on the physical
  113815. display
  113816. SeeAlso: INT 10/AH=02h,INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  113817. --------b-60----DI0400-----------------------
  113818. INT 60 u - HP 95LX System Manager - "EDIT_INIT"
  113819. DI = 0400h
  113820. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113821. DWORD pointer to edit record (see #03285)
  113822. DWORD pointer to string to be edited
  113823. WORD initial length of string being edited
  113824. WORD maximum length of edited string
  113825. WORD row of edit field
  113826. WORD leftmost column of edit field
  113827. Return: ???
  113828. STACK unchanged
  113829. Format of HP 95LX edit record:
  113830. Offset Size Description (Table 03285)
  113831. 00h WORD current length of edit buffer
  113832. 02h BYTE flag for special processing on first character
  113833. 03h BYTE flags
  113834. bit 0: tab handling
  113835. 04h WORD editing in prompt window?
  113836. 06h DWORD pointer to top line of prompt window message
  113837. 0Ah WORD length of top line of prompt
  113838. 0Ch DWORD pointer to second line of prompt window message
  113839. 10h WORD length of second line of prompt
  113840. 12h 80 BYTEs workspace for editing
  113841. 62h 2 WORDs line array needed for multi-line editing
  113842. 66h 36 BYTEs multi-line edit record (see #03286)
  113843. 8Ah WORD displayable columns
  113844. Format of HP 95LX multi-line edit record:
  113845. Offset Size Description (Table 03286)
  113846. 00h DWORD pointer to user-supplied edit buffer
  113847. 04h WORD length of edit buffer
  113848. 06h WORD current cursor position
  113849. 08h WORD starting row of edit area (-3 is topmost, 0 is first user line)
  113850. 0Ah WORD starting column of edit area
  113851. 0Ch WORD height of edit area
  113852. 0Eh WORD width of edit area
  113853. 10h WORD current top row (-3 is topmost, 0 is first user line)
  113854. 12h WORD number of rows displayable
  113855. 14h BYTE cursor column
  113856. 15h BYTE 01h if buffer has been modified
  113857. 16h BYTE first displayable column (ticker fields only)
  113858. 17h BYTE 01h if wordwrap enabled, FFh if ticker field
  113859. 18h DWORD pointer to array of line starts (at least one bigger than edit
  113860. area is high)
  113861. 1Ch BYTE currently marking?
  113862. 1Dh BYTE flag
  113863. 1Eh WORD offset of mark start
  113864. 20h WORD offset of mark end (inclusive)
  113865. 22h WORD displayable columns
  113866. --------b-60----DI0401-----------------------
  113867. INT 60 u - HP 95LX System Manager - EDIT ON TOP LINE
  113868. DI = 0401h
  113869. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113870. DWORD pointer to edit record (see #03285)
  113871. DWORD pointer to string to edit
  113872. WORD initial length of string being edited
  113873. WORD maximum length of edited string
  113874. DWORD pointer to first line of prompt
  113875. WORD length of first line
  113876. DWORD pointer to second line of prompt
  113877. WORD length of second line
  113878. Return: ???
  113879. STACK unchanged
  113880. --------b-60----DI0402-----------------------
  113881. INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY EDIT FIELD
  113882. DI = 0402h
  113883. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113884. DWORD pointer to edit record (see #03285)
  113885. Return: ???
  113886. STACK unchanged
  113887. --------b-60----DI0403-----------------------
  113888. INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER PROCESS EDITING KEYSTROK
  113889. DI = 0403h
  113890. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113891. DWORD pointer to edit record (see #03285)
  113892. WORD keystroke
  113893. DWORD pointer to WORD buffer for result code
  113894. Return: result code buffer filled with 0001h if editing complete
  113895. STACK unchanged
  113896. --------b-60----DI0404-----------------------
  113897. INT 60 u - HP 95LX System Manager - "MDIT_INI"
  113898. DI = 0404h
  113899. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113900. DWORD pointer to ???
  113901. WORD ???
  113902. WORD ???
  113903. WORD ???
  113904. WORD ???
  113905. DWORD pointer to ???
  113906. WORD ???
  113907. WORD ???
  113908. WORD ???
  113909. DWORD pointer to ???
  113910. Return: ???
  113911. STACK unchanged
  113912. --------b-60----DI0405-----------------------
  113913. INT 60 u - HP 95LX System Manager - "MDIT_DIS"
  113914. DI = 0405h
  113915. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113916. DWORD pointer to ???
  113917. Return: ???
  113918. STACK unchanged
  113919. --------b-60----DI0406-----------------------
  113920. INT 60 u - HP 95LX System Manager - "MDIT_KEY"
  113921. DI = 0406h
  113922. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113923. DWORD pointer to ???
  113924. WORD ???
  113925. Return: ???
  113926. STACK unchanged
  113927. --------b-60----DI0407-----------------------
  113928. INT 60 u - HP 95LX System Manager - "MDIT_FIL"
  113929. DI = 0407h
  113930. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113931. DWORD pointer to ???
  113932. DWORD pointer to ???
  113933. Return: ???
  113934. STACK unchanged
  113935. --------b-60----DI0408-----------------------
  113936. INT 60 u - HP 95LX System Manager - "MDIT_MARK"
  113937. DI = 0408h
  113938. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113939. DWORD pointer to ???
  113940. Return: ???
  113941. STACK unchanged
  113942. --------b-60----DI0409-----------------------
  113943. INT 60 u - HP 95LX System Manager - "MDIT_UNMARK"
  113944. DI = 0409h
  113945. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113946. DWORD pointer to ???
  113947. Return: ???
  113948. STACK unchanged
  113949. --------b-60----DI040A-----------------------
  113950. INT 60 u - HP 95LX System Manager - "MDIT_CUTMARK"
  113951. DI = 040Ah
  113952. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113953. DWORD pointer to ???
  113954. Return: ???
  113955. STACK unchanged
  113956. --------b-60----DI040B-----------------------
  113957. INT 60 u - HP 95LX System Manager - "MDIT_INS_STR"
  113958. DI = 040Bh
  113959. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113960. DWORD pointer to ???
  113961. DWORD pointer to ???
  113962. WORD ???
  113963. Return: ???
  113964. STACK unchanged
  113965. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  113966. --------b-60----DI0500-----------------------
  113967. INT 60 u - HP 95LX System Manager - OPEN FILE
  113968. DI = 0500h
  113969. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113970. DWORD pointer to file state record (see #03287)
  113971. DWORD pointer to filename
  113972. WORD length of filename
  113973. WORD ???
  113974. WORD suppress buffering if nonzero
  113975. Return: AX = status
  113976. STACK unchanged
  113977. SeeAlso: INT 60/DI=0501h,INT 60/DI=0502h,INT 60/DI=0508h
  113978. Format of HP 95LX file state record:
  113979. Offset Size Description (Table 03287)
  113980. 00h WORD DOS file handle
  113981. 02h WORD state flags (see #03288)
  113982. 04h DWORD current DOS physical file offset (FFFFFFFFh if unknown)
  113983. 08h DWORD DOS file offset of start of buffer
  113984. 0Ch DWORD effective file offset as seen by caller
  113985. 10h WORD number of bytes in file buffer
  113986. ---buffered I/O only---
  113987. 12h 512 BYTEs file buffer
  113988. Bitfields for HP 95LX file state flags:
  113989. Bit(s) Description (Table 03288)
  113990. 0 buffer contents valid
  113991. 1 buffer is dirty and must be written
  113992. 2 unbuffered I/O
  113993. 3 file is a character device
  113994. SeeAlso: #03287
  113995. --------b-60----DI0501-----------------------
  113996. INT 60 u - HP 95LX System Manager - OPEN FILE IN READ-ONLY MODE
  113997. DI = 0501h
  113998. STACK: 2 WORDs unused dummies (for calls from high level languages)
  113999. DWORD pointer to file state record (see #03287)
  114000. DWORD pointer to filename
  114001. WORD length of filename
  114002. WORD ???
  114003. WORD suppress buffering if nonzero
  114004. Return: AX = status
  114005. STACK unchanged
  114006. SeeAlso: INT 60/DI=0500h
  114007. --------b-60----DI0502-----------------------
  114008. INT 60 u - HP 95LX System Manager - CREATE NEW FILE
  114009. DI = 0502h
  114010. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114011. DWORD pointer to file state record (see #03287)
  114012. DWORD pointer to filename
  114013. WORD length of filename
  114014. WORD ???
  114015. WORD suppress buffering if nonzero
  114016. Return: AX = status
  114017. STACK unchanged
  114018. SeeAlso: INT 60/DI=0500h,INT 60/DI=0503h
  114019. --------b-60----DI0503-----------------------
  114020. INT 60 u - HP 95LX System Manager - CREATE OR TRUNCATE FILE
  114021. DI = 0503h
  114022. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114023. DWORD pointer to file state record (see #03287)
  114024. DWORD pointer to filename
  114025. WORD length of filename
  114026. WORD ???
  114027. WORD suppress buffering if nonzero
  114028. Return: AX = status
  114029. STACK unchanged
  114030. SeeAlso: INT 60/DI=0502h
  114031. --------b-60----DI0504-----------------------
  114032. INT 60 u - HP 95LX System Manager - READ FROM FILE
  114033. DI = 0504h
  114034. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114035. DWORD pointer to file state record (see #03287)
  114036. DWORD pointer to data buffer
  114037. WORD number of bytes to read
  114038. DWORD pointer to WORD in which to return actual bytes read
  114039. Return: ???
  114040. STACK unchanged
  114041. SeeAlso: INT 60/DI=0505h
  114042. --------b-60----DI0505-----------------------
  114043. INT 60 - HP 95LX System Manager - WRITE TO FILE
  114044. DI = 0505h
  114045. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114046. DWORD pointer to file state record (see #03287)
  114047. DWORD pointer to data
  114048. WORD length of data
  114049. Return: AX = status
  114050. STACK unchanged
  114051. SeeAlso: INT 60/DI=0504h
  114052. --------b-60----DI0506-----------------------
  114053. INT 60 u - HP 95LX System Manager - SET FILE POSITION
  114054. DI = 0506h
  114055. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114056. DWORD pointer to file state record (see #03287)
  114057. 2 WORDs ???
  114058. Return: ???
  114059. STACK unchanged
  114060. SeeAlso: INT 60/DI=0507h
  114061. --------b-60----DI0507-----------------------
  114062. INT 60 u - HP 95LX System Manager - GET FILE POSITION
  114063. DI = 0507h "M_TELL"
  114064. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114065. DWORD pointer to file state record (see #03287)
  114066. DWORD pointer to DWORD buffer for file position???
  114067. Return: ???
  114068. STACK unchanged
  114069. SeeAlso: INT 60/DI=0506h
  114070. --------b-60----DI0508-----------------------
  114071. INT 60 u - HP 95LX System Manager - CLOSE FILE
  114072. DI = 0508h
  114073. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114074. DWORD pointer to file state record (see #03287)
  114075. Return: ???
  114076. STACK unchanged
  114077. SeeAlso: INT 60/DI=0500h
  114078. --------b-60----DI0509-----------------------
  114079. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETPAT"
  114080. DI = 0509h
  114081. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114082. DWORD pointer to ???
  114083. DWORD pointer to ???
  114084. WORD ???
  114085. WORD ???
  114086. Return: ???
  114087. STACK unchanged
  114088. --------b-60----DI050A-----------------------
  114089. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_MATCH"
  114090. DI = 050Ah
  114091. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114092. DWORD pointer to ??? (see #03289)
  114093. DWORD pointer to ???
  114094. Return: ???
  114095. STACK unchanged
  114096. Format of HP 95LX pattern match control block:
  114097. Offset Size Description (Table 03289)
  114098. 00h 43 BYTEs FindFirst data block (see #01626 at INT 21/AH=4Eh)
  114099. 2Bh 80 BYTEs full path name
  114100. 7Bh BYTE offset of last component of filename
  114101. 7Ch BYTE DOS function number (4Eh or 4Fh)
  114102. --------b-60----DI050B-----------------------
  114103. INT 60 u - HP 95LX System Manager - IDENTIFY FILENAME REFERENT
  114104. DI = 050Bh
  114105. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114106. DWORD pointer to ???
  114107. WORD ???
  114108. WORD ???
  114109. DWORD pointer to ???
  114110. Return: ??? = result (see #03290)
  114111. ???
  114112. STACK unchanged
  114113. (Table 03290)
  114114. Values returned by HP 95LX System Manager:
  114115. 0000h nonexistent
  114116. 0001h file
  114117. 0002h directory
  114118. 0003h character device
  114119. --------b-60----DI050C-----------------------
  114120. INT 60 u - HP 95LX System Manager - DELETE FILE
  114121. DI = 050Ch "M_DELETE"
  114122. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114123. DWORD pointer to ???
  114124. WORD ???
  114125. WORD ???
  114126. Return: ???
  114127. STACK unchanged
  114128. --------b-60----DI050D-----------------------
  114129. INT 60 u - HP 95LX System Manager - RENAME FILE
  114130. DI = 050Dh
  114131. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114132. DWORD pointer to ???
  114133. WORD ???
  114134. WORD ???
  114135. DWORD pointer to ???
  114136. WORD ???
  114137. WORD ???
  114138. Return: ???
  114139. STACK unchanged
  114140. --------b-60----DI050E-----------------------
  114141. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETDIR"
  114142. DI = 050Eh
  114143. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114144. WORD ???
  114145. DWORD pointer to ???
  114146. DWORD pointer to ???
  114147. Return: ???
  114148. STACK unchanged
  114149. --------b-60----DI050F-----------------------
  114150. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETDIR"
  114151. DI = 050Fh
  114152. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114153. DWORD pointer to ???
  114154. WORD ???
  114155. Return: ???
  114156. STACK unchanged
  114157. --------b-60----DI0510-----------------------
  114158. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_VOLUME"
  114159. DI = 0510h
  114160. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114161. DWORD pointer to ???
  114162. DWORD pointer to ???
  114163. Return: ???
  114164. STACK unchanged
  114165. --------b-60----DI0511-----------------------
  114166. INT 60 u - HP 95LX System Manager - MAKE A SUBDIRECTORY
  114167. DI = 0511h
  114168. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114169. DWORD pointer to ???
  114170. WORD ???
  114171. WORD ???
  114172. Return: ???
  114173. STACK unchanged
  114174. SeeAlso: INT 21/AH=39h,INT 60/DI=0512h
  114175. --------b-60----DI0512-----------------------
  114176. INT 60 u - HP 95LX System Manager - REMOVE A SUBDIRECTORY
  114177. DI = 0512h
  114178. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114179. DWORD pointer to ???
  114180. WORD ???
  114181. WORD ???
  114182. Return: ???
  114183. STACK unchanged
  114184. SeeAlso: INT 21/AH=3Ah,INT 60/DI=0511h
  114185. --------b-60----DI0513-----------------------
  114186. INT 60 u - HP 95LX System Manager - GET DEFAULT DRIVE
  114187. DI = 0513h
  114188. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114189. DWORD pointer to ??? buffer for current drive
  114190. Return: ???
  114191. STACK unchanged
  114192. SeeAlso: INT 21/AH=19h,INT 60/DI=0514h
  114193. --------b-60----DI0514-----------------------
  114194. INT 60 u - HP 95LX System Manager - SET DEFAULT DRIVE
  114195. DI = 0514h
  114196. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114197. WORD new drive
  114198. Return: ???
  114199. STACK unchanged
  114200. SeeAlso: INT 21/AH=0Eh"DOS 1+",INT 60/DI=0513h
  114201. --------b-60----DI0515-----------------------
  114202. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_FDATE"
  114203. DI = 0515h
  114204. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114205. DWORD pointer to ???
  114206. DWORD pointer to ???
  114207. Return: ???
  114208. STACK unchanged
  114209. --------b-60----DI0516-----------------------
  114210. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GET_SYSDIR"
  114211. DI = 0516h
  114212. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114213. DWORD pointer to ???
  114214. Return: ???
  114215. STACK unchanged
  114216. --------b-60----DI0517-----------------------
  114217. INT 60 u - HP 95LX System Manager - GET FILE ATTRIBUTES
  114218. DI = 0517h
  114219. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114220. DWORD pointer to ???
  114221. WORD ???
  114222. WORD ???
  114223. DWORD pointer to ??? buffer for file's attributes???
  114224. Return: ???
  114225. STACK unchanged
  114226. SeeAlso: INT 21/AX=4300h,INT 60/DI=0518h
  114227. --------b-60----DI0518-----------------------
  114228. INT 60 u - HP 95LX System Manager - SET FILE ATTRIBUTES
  114229. DI = 0518h
  114230. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114231. DWORD pointer to ???
  114232. WORD ???
  114233. WORD ???
  114234. WORD new attributes???
  114235. Return: ???
  114236. STACK unchanged
  114237. SeeAlso: INT 21/AX=4301h,INT 60/DI=0517h
  114238. --------b-60----DI0519-----------------------
  114239. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COMMON_OPEN"
  114240. DI = 0519h
  114241. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114242. DWORD pointer to ???
  114243. DWORD pointer to ???
  114244. WORD ???
  114245. WORD ???
  114246. WORD ???
  114247. WORD ???
  114248. WORD ???
  114249. Return: ???
  114250. STACK unchanged
  114251. --------b-60----DI051A-----------------------
  114252. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COPYDT"
  114253. DI = 051Ah
  114254. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114255. DWORD pointer to ???
  114256. DWORD pointer to ???
  114257. Return: ???
  114258. STACK unchanged
  114259. --------b-60----DI051B-----------------------
  114260. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETFDT"
  114261. DI = 051Bh
  114262. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114263. DWORD pointer to ???
  114264. DWORD pointer to ???
  114265. Return: ???
  114266. STACK unchanged
  114267. --------b-60----DI051C-----------------------
  114268. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_PUTFDT"
  114269. DI = 051Ch
  114270. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114271. DWORD pointer to ???
  114272. WORD ???
  114273. Return: ???
  114274. STACK unchanged
  114275. --------b-60----DI0600-----------------------
  114276. INT 60 u - HP 95LX System Manager - PROCESS INITIALIZING
  114277. DI = 0600h
  114278. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114279. Return: ???
  114280. STACK unchanged
  114281. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0601h,INT 61"HP 95LX"
  114282. --------b-60----DI0601-----------------------
  114283. INT 60 u - HP 95LX System Manager - PROCESS TERMINATION
  114284. DI = 0601h
  114285. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114286. Return: never
  114287. STACK unchanged
  114288. SeeAlso: INT 21/AH=4Ch,INT 2F/AX=1122h,INT 60/DI=0600h
  114289. --------b-60----DI0602-----------------------
  114290. INT 60 u - HP 95LX System Manager - "M_LOCK" - PREVENT TASK SWITCHES
  114291. DI = 0602h
  114292. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114293. Return: ???
  114294. STACK unchanged
  114295. SeeAlso: INT 15/AX=101Bh,INT 2F/AX=1681h,INT 60/DI=0603h
  114296. --------b-60----DI0603-----------------------
  114297. INT 60 u - HP 95LX System Manager - "M_UNLOCK" - ALLOW TASK SWITCHES
  114298. DI = 0603h
  114299. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114300. Return: ???
  114301. STACK unchanged
  114302. SeeAlso: INT 15/AX=101Ch,INT 2F/AX=1682h,INT 60/DI=0602h
  114303. --------b-60----DI0604-----------------------
  114304. INT 60 u - HP 95LX System Manager - "M_SPAWN"
  114305. DI = 0604h
  114306. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114307. DWORD pointer to ???
  114308. WORD ???
  114309. WORD ???
  114310. DWORD pointer to ???
  114311. Return: ???
  114312. STACK unchanged
  114313. SeeAlso: INT 21/AH=4Bh
  114314. --------b-60----DI0605-----------------------
  114315. INT 60 u - HP 95LX System Manager - "M_APPCOUNT"
  114316. DI = 0605h
  114317. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114318. Return: ???
  114319. STACK unchanged
  114320. --------b-60----DI0606-----------------------
  114321. INT 60 u - HP 95LX System Manager - "M_REBOOT"
  114322. DI = 0606h
  114323. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114324. Return: ???
  114325. STACK unchanged
  114326. SeeAlso: INT 14/AH=17h"FOSSIL",INT 19
  114327. --------b-60----DI0607-----------------------
  114328. INT 60 u - HP 95LX System Manager - "M_SPAWNARG"
  114329. DI = 0607h
  114330. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114331. DWORD pointer to ???
  114332. WORD ???
  114333. DWORD pointer to ???
  114334. WORD ???
  114335. Return: ???
  114336. STACK unchanged
  114337. --------b-60----DI0608-----------------------
  114338. INT 60 u - HP 95LX System Manager - "M_REG_APP_NAME"
  114339. DI = 0608h
  114340. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114341. DWORD pointer to ???
  114342. Return: ???
  114343. STACK unchanged
  114344. --------b-60----DI0609-----------------------
  114345. INT 60 u - HP 95LX System Manager - "M_APP_NAME"
  114346. DI = 0609h
  114347. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114348. DWORD pointer to ???
  114349. Return: DX:AX -> ???
  114350. STACK unchanged
  114351. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  114352. --------b-60----DI0700-----------------------
  114353. INT 60 u - HP 95LX System Manager - OPEN CLIPBOARD
  114354. DI = 0700h
  114355. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114356. Return: ??? = error code (see #03291)
  114357. ???
  114358. STACK unchanged
  114359. SeeAlso: INT 60/DI=0701h,INT 60/DI=0702h
  114360. (Table 03291)
  114361. Values for HP 95LX error code:
  114362. 0000h successful
  114363. FFF8h transfer request out of bounds
  114364. FFF9h no such representation
  114365. FFFAh no representation open
  114366. FFFBh a representation is already open
  114367. FFFCh representation already exists
  114368. FFFDh heap allocation failure
  114369. FFFEh clipboard not open
  114370. FFFFh clipboard access denied
  114371. --------b-60----DI0701-----------------------
  114372. INT 60 u - HP 95LX System Manager - CLOSE CLIPBOARD
  114373. DI = 0701h
  114374. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114375. Return: ???
  114376. STACK unchanged
  114377. SeeAlso: INT 60/DI=0700h,INT 60/DI=0702h
  114378. --------b-60----DI0702-----------------------
  114379. INT 60 u - HP 95LX System Manager - RESET CLIPBOARD
  114380. DI = 0702h
  114381. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114382. DWORD pointer to ???
  114383. Return: ???
  114384. STACK unchanged
  114385. SeeAlso: INT 60/DI=0700h
  114386. --------b-60----DI0704-----------------------
  114387. INT 60 u - HP 95LX System Manager - "M_NEW_REP" - START A NEW REPRESENTATION???
  114388. DI = 0704h
  114389. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114390. DWORD pointer to ???
  114391. Return: ???
  114392. STACK unchanged
  114393. SeeAlso: INT 60/DI=0705h,INT 60/DI=0706h,INT 60/DI=0707h
  114394. --------b-60----DI0705-----------------------
  114395. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_FINI_REP"
  114396. DI = 0705h
  114397. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114398. Return: ???
  114399. STACK unchanged
  114400. SeeAlso: INT 60/DI=0704h
  114401. --------b-60----DI0706-----------------------
  114402. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_NAME"
  114403. DI = 0706h
  114404. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114405. WORD ???
  114406. DWORD pointer to ???
  114407. DWORD pointer to ???
  114408. Return: ???
  114409. STACK unchanged
  114410. SeeAlso: INT 60/DI=0704h,INT 60/DI=0707h
  114411. --------b-60----DI0707-----------------------
  114412. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_INDEX"
  114413. DI = 0707h
  114414. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114415. DWORD pointer to ???
  114416. DWORD pointer to ???
  114417. DWORD pointer to ???
  114418. Return: ???
  114419. STACK unchanged
  114420. SeeAlso: INT 60/DI=0704h,INT 60/DI=0706h
  114421. --------b-60----DI0708-----------------------
  114422. INT 60 u - HP 95LX System Manager - WRITE TO CLIPBOARD
  114423. DI = 0708h
  114424. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114425. DWORD pointer to data to be written???
  114426. WORD length of data???
  114427. Return: ???
  114428. STACK unchanged
  114429. SeeAlso: INT 60/DI=0709h
  114430. --------b-60----DI0709-----------------------
  114431. INT 60 u - HP 95LX System Manager - READ FROM CLIPBOARD
  114432. DI = 0709h
  114433. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114434. WORD ???
  114435. WORD ???
  114436. DWORD pointer to buffer for data???
  114437. WORD length of buffer???
  114438. Return: ???
  114439. STACK unchanged
  114440. SeeAlso: INT 60/DI=0708h
  114441. --------b-60----DI0800-----------------------
  114442. INT 60 u - HP 95LX System Manager - BEEP
  114443. DI = 0800h
  114444. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114445. Return: ???
  114446. STACK unchanged
  114447. SeeAlso: INT 60/DI=0801h,INT 60/DI=0802h,INT 60/DI=0803h
  114448. --------b-60----DI0801-----------------------
  114449. INT 60 u - HP 95LX System Manager - SOUND SERVICE "M_THUD"
  114450. DI = 0801h
  114451. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114452. Return: ???
  114453. STACK unchanged
  114454. SeeAlso: INT 60/DI=0800h,INT 60/DI=0802h,INT 60/DI=0803h
  114455. --------b-60----DI0802-----------------------
  114456. INT 60 u - HP 95LX System Manager - MAKE A SOUND PATTERN
  114457. DI = 0802h
  114458. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114459. WORD pattern number (00h-06h)
  114460. Return: ???
  114461. STACK unchanged
  114462. SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0803h
  114463. --------b-60----DI0803-----------------------
  114464. INT 60 u - HP 95LX System Manager - TURN OFF SOUND
  114465. DI = 0803h
  114466. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114467. Return: ???
  114468. STACK unchanged
  114469. SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0802h
  114470. --------b-60----DI0900-----------------------
  114471. INT 60 - HP 95LX System Manager - ALLOCATE REGULAR MEMORY BLOCK
  114472. DI = 0900h
  114473. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114474. WORD size of block in bytes
  114475. Return: AX -> memory block
  114476. STACK unchanged
  114477. Note: System Manager-compliant applications are always small-model (64K code,
  114478. 64K data)
  114479. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0902h,INT 60/DI=0903h
  114480. --------b-60----DI0902-----------------------
  114481. INT 60 u - HP 95LX System Manager - FREE REGULAR MEMORY BLOCK
  114482. DI = 0902h
  114483. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114484. WORD offset of memory block???
  114485. Return: ???
  114486. STACK unchanged
  114487. Note: System Manager-compliant applications are always small-model (64K code,
  114488. 64K data)
  114489. SeeAlso: INT 60/DI=0900h,INT 60/DI=0904h
  114490. --------b-60----DI0903-----------------------
  114491. INT 60 u - HP 95LX System Manager - ALLOCATE LARGE MEMORY BLOCK
  114492. DI = 0903h
  114493. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114494. WORD size of block in bytes???
  114495. Return: AX -> memory block???
  114496. STACK unchanged
  114497. SeeAlso: INT 60/DI=0900h,INT 60/DI=0904h
  114498. --------b-60----DI0904-----------------------
  114499. INT 60 u - HP 95LX System Manager - FREE LARGE MEMORY BLOCK
  114500. DI = 0904h
  114501. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114502. WORD segment of memory block???
  114503. Return: AX -> ???
  114504. STACK unchanged
  114505. SeeAlso: INT 60/DI=0902h,INT 60/DI=0903h
  114506. --------b-60----DI0B00-----------------------
  114507. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DTINFO"
  114508. DI = 0B00h
  114509. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114510. DWORD pointer to ???
  114511. Return: ???
  114512. STACK unchanged
  114513. --------b-60----DI0B01-----------------------
  114514. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GETDTM"
  114515. DI = 0B01h
  114516. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114517. DWORD pointer to ???
  114518. Return: ???
  114519. STACK unchanged
  114520. --------b-60----DI0B02-----------------------
  114521. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SETDTM"
  114522. DI = 0B02h
  114523. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114524. DWORD pointer to ???
  114525. Return: ???
  114526. STACK unchanged
  114527. --------b-60----DI0B03-----------------------
  114528. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_XALARM"
  114529. DI = 0B03h
  114530. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114531. WORD ???
  114532. Return: ???
  114533. STACK unchanged
  114534. --------b-60----DI0B04-----------------------
  114535. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_ALARM"
  114536. DI = 0B04h
  114537. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114538. DWORD pointer to alarm record??? (see #03292)
  114539. WORD ???
  114540. Return: ???
  114541. STACK unchanged
  114542. Format of HP 95LX alarm record:
  114543. Offset Size Description (Table 03292)
  114544. 00h BYTE hour
  114545. 01h BYTE minute
  114546. 02h BYTE second
  114547. 03h BYTE unused padding
  114548. 04h WORD rescheduling interval, in seconds
  114549. 06h BYTE are seconds significant?
  114550. 07h BYTE alarm sound
  114551. 08h 40 BYTEs message displayed when alarm activates
  114552. 30h BYTE task ID of owner
  114553. 31h BYTE application's own use for sub-class
  114554. 32h 4 BYTEs application's own use for private data
  114555. --------b-60----DI0B05-----------------------
  114556. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_SW"
  114557. DI = 0B05h
  114558. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114559. DWORD pointer to ???
  114560. Return: ???
  114561. STACK unchanged
  114562. --------b-60----DI0B06-----------------------
  114563. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SW"
  114564. DI = 0B06h
  114565. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114566. DWORD pointer to ???
  114567. DWORD pointer to ???
  114568. DWORD pointer to ???
  114569. Return: ???
  114570. STACK unchanged
  114571. --------b-60----DI0B07-----------------------
  114572. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_SW"
  114573. DI = 0B07h
  114574. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114575. DWORD pointer to ???
  114576. Return: ???
  114577. STACK unchanged
  114578. --------b-60----DI0B08-----------------------
  114579. INT 60 u - HP 95LX System Manager - "M_TELLTIME" - DISPLAY TIMESTAMP
  114580. DI = 0B08h
  114581. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114582. WORD timestamp format (see #03293)
  114583. WORD row (-3 is topmost, 0 is first non-reserved line)
  114584. WORD column
  114585. Return: ???
  114586. STACK unchanged
  114587. Bitfields for HP 95LX timestamp format:
  114588. Bit(s) Description (Table 03293)
  114589. 1-0 timestamp components
  114590. 00 date only
  114591. 01 time only
  114592. 10 date and time
  114593. 11 day and date
  114594. 4 supply am/pm
  114595. 5 supply seconds
  114596. 6 show year
  114597. 7 four-digit year
  114598. --------b-60----DI0B09-----------------------
  114599. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SETTINGS"
  114600. DI = 0B09h
  114601. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114602. DWORD pointer to ??? (see #03294)
  114603. DWORD pointer to ???
  114604. Return: ???
  114605. STACK unchanged
  114606. SeeAlso: INT 60/DI=0B0Ah,INT 60/DI=0B0Fh
  114607. Format of HP 95LX system settings:
  114608. Offset Size Description (Table 03294)
  114609. 00h WORD country code
  114610. 02h WORD speaker volume (00h-03h or FFh for off)
  114611. 04h WORD contrast level (00h-0Fh)
  114612. 06h WORD week start (00h Sunday, 01h Monday)
  114613. 08h WORD punctuation format (see #03295)
  114614. 0Ah WORD two-character language code (only 5355h = "US" byte-swapped)
  114615. 0Ch WORD current date format (see #03296)
  114616. 0Eh WORD current time format (see #03297)
  114617. 10h WORD collating sequence
  114618. 00h numbers first, 01h letters first, 02h ASCII
  114619. 12h 80 BYTEs name of picture file
  114620. 62h 30 BYTEs name
  114621. 80h 30 BYTEs title
  114622. 9Eh 28 BYTEs company name
  114623. BAh WORD number of languages
  114624. BCh 6 BYTEs available languages
  114625. C2h 66 BYTEs language menu
  114626. 104h 2 BYTEs ASCIZ date separator
  114627. 106h 2 BYTEs ASCIZ time separator
  114628. 108h BYTE date order
  114629. 109h BYTE use 24 hour time?
  114630. 10Ah 16 BYTEs currency string
  114631. 11Ah WORD currency string position (00h prefix, 01h suffix)
  114632. 11Ch WORD keyboard (see #03298)
  114633. 11Eh WORD printer baud rate
  114634. 00h 300, 01h 1200, 02h 2400, 03h 4800, 04h 9600, 05h 19200
  114635. 120h WORD printer driver code
  114636. 00h Epson FX80, 01h HP Laserjet, 02h IBM ProPrinter
  114637. 122h WORD printer interface (00h COM1, 01h COM2, 02h IR, 03h LPT1)
  114638. 124h WORD system manager interrupt (60h by default)
  114639. 126h WORD code page (01h CP850, 02h CP437)
  114640. 128h WORD active exit key
  114641. 12Ah WORD active menu key
  114642. 12Ch WORD active CHAR key toggle
  114643. 12Eh 6 BYTEs alarm
  114644. (Table 03295)
  114645. Values for HP 95LX punctuation format:
  114646. code decimal arg thousands
  114647. 00h . , ,
  114648. 01h , . .
  114649. 02h . ; ;
  114650. 03h , ; .
  114651. 04h . , " "
  114652. 05h , . " "
  114653. 06h . ; " "
  114654. 07h , ; " "
  114655. (Table 03296)
  114656. Values for HP 95LX current date format:
  114657. 00h dd-mmm-yy
  114658. 01h dd-mmm
  114659. 02h mmm-yy
  114660. 03h mm/dd/yy
  114661. 04h dd/mm/yy
  114662. 05h dd.mm.yy
  114663. 06h yy-mm-dd
  114664. 07h mm/dd
  114665. 08h dd/mm
  114666. 09h dd.mm
  114667. 0Ah mm-dd
  114668. (Table 03297)
  114669. Values for HP 95LX current time format:
  114670. 00h HH:MM:SS am/pm
  114671. 01h HH:MM am/pm
  114672. 02h HH:MM:SS
  114673. 03h HH.MM.SS
  114674. 04h HH,MM,SS
  114675. 05h HHhMMmSSs
  114676. 06h HH:MM
  114677. 07h HH.MM
  114678. 08h HH,MM
  114679. 09h HHhMMm
  114680. (Table 03298)
  114681. Values for HP 95LX keyboard layout:
  114682. 0001h Belgium
  114683. 0002h French Canadian
  114684. 0004h Denmark
  114685. 0008h Finland
  114686. 0010h French
  114687. 0020h Finland
  114688. 0040h Italy
  114689. 0080h Netherlands
  114690. 0100h Norway
  114691. 0200h Portugal
  114692. 0400h Spain
  114693. 0800h Sweden
  114694. 1000h Swiss French
  114695. 2000h Swiss German
  114696. 4000h United Kingdom
  114697. 8000h USA
  114698. --------b-60----DI0B0A-----------------------
  114699. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SET_SETTINGS"
  114700. DI = 0B0Ah
  114701. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114702. DWORD pointer to ???
  114703. DWORD pointer to ???
  114704. Return: ???
  114705. STACK unchanged
  114706. SeeAlso: INT 60/DI=0B09h
  114707. --------b-60----DI0B0B-----------------------
  114708. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_TIMER"
  114709. DI = 0B0Bh
  114710. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114711. DWORD pointer to ???
  114712. Return: ???
  114713. STACK unchanged
  114714. SeeAlso: INT 60/DI=0B0Ch,INT 60/DI=0B0Dh
  114715. --------b-60----DI0B0C-----------------------
  114716. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_TIMER"
  114717. DI = 0B0Ch
  114718. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114719. DWORD pointer to ???
  114720. Return: ???
  114721. STACK unchanged
  114722. SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0Dh
  114723. --------b-60----DI0B0D-----------------------
  114724. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_TIMER"
  114725. DI = 0B0Dh
  114726. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114727. DWORD pointer to ???
  114728. DWORD pointer to ???
  114729. DWORD pointer to ???
  114730. Return: ???
  114731. STACK unchanged
  114732. SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0Ch
  114733. --------b-60----DI0B0E-----------------------
  114734. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_TELL_ANYTIME"
  114735. DI = 0B0Eh
  114736. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114737. WORD ???
  114738. WORD ???
  114739. WORD ???
  114740. DWORD pointer to ???
  114741. DWORD pointer to ???
  114742. Return: DX:AX -> ???
  114743. STACK unchanged
  114744. --------b-60----DI0B0F-----------------------
  114745. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVCE "M_GET_SETTINGS_ADDR"
  114746. DI = 0B0Fh
  114747. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114748. Return: DX:AX -> system settings record (see #03294)
  114749. STACK unchanged
  114750. SeeAlso: INT 60/DI=0B09h
  114751. --------b-60----DI0B10-----------------------
  114752. INT 60 u - HP 95LX System Manager - PARSE DATE SPECIFICATION
  114753. DI = 0B10h
  114754. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114755. WORD ???
  114756. DWORD pointer to ???
  114757. DWORD pointer to ???
  114758. Return: ???
  114759. STACK unchanged
  114760. --------b-60----DI0B11-----------------------
  114761. INT 60 u - HP 95LX System Manager - PARSE TIME SPECIFICATION
  114762. DI = 0B11h
  114763. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114764. WORD ???
  114765. DWORD pointer to ???
  114766. DWORD pointer to ???
  114767. Return: ???
  114768. STACK unchanged
  114769. --------b-60----DI0B12-----------------------
  114770. INT 60 u - HP 95LX System Manager - SET DATE PARSING RULE
  114771. DI = 0B12h
  114772. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114773. WORD new parsing rule (see #03299)
  114774. Return: ???
  114775. STACK unchanged
  114776. SeeAlso: INT 60/DI=0B13h
  114777. (Table 03299)
  114778. Values for HP 95LX date parsing rule:
  114779. 01h day-month-year
  114780. 02h month-day-year
  114781. 03h year-month-day
  114782. 04h "DMYO"
  114783. 05h "MDYO"
  114784. OR with 08h to get any year
  114785. --------b-60----DI0B13-----------------------
  114786. INT 60 u - HP 95LX System Manager - SET TIME PARSING RULE
  114787. DI = 0B13h
  114788. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114789. WORD new parsing rule (see #03300)
  114790. Return: ???
  114791. STACK unchanged
  114792. SeeAlso: INT 60/DI=0B12h
  114793. (Table 03300)
  114794. Values for HP 95LX time parsing rule:
  114795. 01h HH:MM:SS (am/pm)
  114796. 02h HH:MM:SS (24hr)
  114797. 03h HHMM:SS (24hr)
  114798. 04h HH:MM:SS.hh (24hr)
  114799. 05h HH:MM (am/pm)
  114800. 06h HH:MM (24hr)
  114801. 07h HHMM (24hr)
  114802. --------b-60----DI0B14-----------------------
  114803. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_POST_TIME"
  114804. DI = 0B14h
  114805. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114806. Return: ???
  114807. STACK unchanged
  114808. --------b-60----DI0B15-----------------------
  114809. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DAY_TRIGGER"
  114810. DI = 0B15h
  114811. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114812. WORD ???
  114813. Return: ???
  114814. STACK unchanged
  114815. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  114816. --------b-60----DI0C00-----------------------
  114817. INT 60 u - HP 95LX System Manager - OPEN PRINTER
  114818. DI = 0C00h
  114819. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114820. Return: ???
  114821. STACK unchanged
  114822. SeeAlso: INT 60/DI=0C01h,INT 60/DI=0C02h,INT 60/DI=0C03h
  114823. --------b-60----DI0C01-----------------------
  114824. INT 60 u - HP 95LX System Manager - CLOSE PRINTER
  114825. DI = 0C01h
  114826. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114827. Return: ???
  114828. STACK unchanged
  114829. Note: relinquishes control of printer
  114830. SeeAlso: INT 60/DI=0C00h
  114831. --------b-60----DI0C02-----------------------
  114832. INT 60 u - HP 95LX System Manager - WRITE TO PRINTER
  114833. DI = 0C02h
  114834. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114835. DWORD pointer to data to be written
  114836. WORD length of data
  114837. Return: ???
  114838. STACK unchanged
  114839. SeeAlso: INT 60/DI=0C00h
  114840. --------b-60----DI0C03-----------------------
  114841. INT 60 u - HP 95LX System Manager - INITIALIZE PRINTER
  114842. DI = 0C03h
  114843. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114844. Return: ???
  114845. STACK unchanged
  114846. SeeAlso: INT 60/DI=0C00h
  114847. --------b-60----DI0C04-----------------------
  114848. INT 60 u - HP 95LX System Manager - "M_TRANS_PRINTER"
  114849. DI = 0C04h
  114850. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114851. WORD ???
  114852. DWORD pointer to ???
  114853. Return: ???
  114854. STACK unchanged
  114855. --------b-60----DI0C05-----------------------
  114856. INT 60 u - HP 95LX System Manager - "M_FALL_PRINTER"
  114857. DI = 0C05h
  114858. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114859. WORD ???
  114860. DWORD pointer to ???
  114861. Return: ???
  114862. STACK unchanged
  114863. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  114864. --------b-60----DI0E00-----------------------
  114865. INT 60 u - HP 95LX System Manager - COMMUNICATIONS SERVICE "M_COMM_INIT"
  114866. DI = 0E00h
  114867. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114868. DWORD pointer to ???
  114869. Return: ???
  114870. STACK unchanged
  114871. SeeAlso: #03301,INT 60/DI=0E01h,INT 60/DI=0E02h
  114872. (Table 03301)
  114873. Values for HP 95LX error code:
  114874. 0000h successful
  114875. FFF1h "E_BUSY"
  114876. FFF2h timeout
  114877. FFF3h framing error
  114878. FFF4h parity error
  114879. FFF5h overrun error
  114880. FFF6h "E_EMPTY"
  114881. FFF7h "E_CONECT"
  114882. FFF8h not open
  114883. FFF9h out of memory
  114884. FFFAh buffer overflow
  114885. FFFBh "E_NOFIT"
  114886. FFFCh unsupported
  114887. FFFDh "E_IVOPR"
  114888. FFFEh "E_IVCHN"
  114889. FFFFh "E_REOPEN"
  114890. --------b-60----DI0E01-----------------------
  114891. INT 60 u - HP 95LX System Manager - OPEN COMMUNICATIONS CHANNEL
  114892. DI = 0E01h
  114893. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114894. DWORD pointer to WORD buffer for comm channel handle
  114895. WORD communications line number (01h-04h)
  114896. Return: ???
  114897. STACK unchanged
  114898. SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E02h
  114899. --------b-60----DI0E02-----------------------
  114900. INT 60 u - HP 95LX System Manager - CLOSE COMMUNICATIONS CHANNEL
  114901. DI = 0E02h
  114902. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114903. WORD comm channel handle
  114904. Return: ???
  114905. STACK unchanged
  114906. SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E01h
  114907. --------b-60----DI0E03-----------------------
  114908. INT 60 u - HP 95LX System Manager - "M_COMM_GETMDM"
  114909. DI = 0E03h
  114910. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114911. WORD ???
  114912. Return: ???
  114913. STACK unchanged
  114914. --------b-60----DI0E04-----------------------
  114915. INT 60 u - HP 95LX System Manager - "M_COMM_ANSWER"
  114916. DI = 0E04h
  114917. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114918. WORD ???
  114919. WORD ???
  114920. Return: ???
  114921. STACK unchanged
  114922. --------b-60----DI0E05-----------------------
  114923. INT 60 u - HP 95LX System Manager - "M_COMM_DIAL"
  114924. DI = 0E05h
  114925. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114926. WORD ???
  114927. DWORD pointer to ???
  114928. Return: ???
  114929. STACK unchanged
  114930. --------b-60----DI0E06-----------------------
  114931. INT 60 u - HP 95LX System Manager - RESET COMMUNICATIONS CHANNEL
  114932. DI = 0E06h
  114933. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114934. WORD comm channel handle
  114935. WORD reset options (see #03302)
  114936. Return: ???
  114937. STACK unchanged
  114938. Bitfields for HP 95LX reset options:
  114939. Bit(s) Description (Table 03302)
  114940. 0 reset line
  114941. 1 flush transmit buffer
  114942. 2 flush receive buffer
  114943. 3 reset modem
  114944. 4 reset receiver's ^S state
  114945. 5 reset transmitter's ^S state
  114946. --------b-60----DI0E07-----------------------
  114947. INT 60 u - HP 95LX System Manager - "M_COMM_HANGUP"
  114948. DI = 0E07h
  114949. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114950. WORD ???
  114951. Return: ???
  114952. STACK unchanged
  114953. --------b-60----DI0E08-----------------------
  114954. INT 60 u - HP 95LX System Manager - SEND DATA OVER COMM CHANNEL
  114955. DI = 0E08h
  114956. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114957. WORD comm channel handle
  114958. DWORD pointer to data to be sent
  114959. WORD option flags
  114960. bit 0: send partial buffer
  114961. bit 1: turn on receiver after sending
  114962. DWORD pointer to WORD containing length of data to be sent
  114963. Return: length WORD updated to contain number of bytes actually sent???
  114964. STACK unchanged
  114965. SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0Bh
  114966. --------b-60----DI0E09-----------------------
  114967. INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL TRANSMIT QUEUE
  114968. DI = 0E09h
  114969. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114970. WORD ???
  114971. DWORD pointer to ??? WORD
  114972. DWORD pointer to ??? WORD
  114973. Return: ???
  114974. STACK unchanged
  114975. SeeAlso: INT 60/DI=0E0Ah
  114976. --------b-60----DI0E0A-----------------------
  114977. INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL RECEIVE QUEUE
  114978. DI = 0E0Ah
  114979. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114980. WORD comm channel handle
  114981. DWORD pointer to WORD to get receive buffer size
  114982. DWORD pointer to WORD to get free bytes in receive buffer
  114983. Return: ???
  114984. STACK unchanged
  114985. SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0Bh
  114986. --------b-60----DI0E0B-----------------------
  114987. INT 60 u - HP 95LX System Manager - RECEIVE DATA FROM COMM CHANNEL
  114988. DI = 0E0Bh
  114989. STACK: 2 WORDs unused dummies (for calls from high level languages)
  114990. WORD comm channel handle
  114991. DWORD pointer to data buffer
  114992. DWORD pointer to WORD (call) length of data buffer
  114993. (ret) number of bytes received
  114994. Return: ???
  114995. STACK unchanged
  114996. SeeAlso: INT 60/DI=0E08h,INT 60/DI=0E0Ah
  114997. --------b-60----DI0E0C-----------------------
  114998. INT 60 u - HP 95LX System Manager - "M_COMM_HAZCMD"
  114999. DI = 0E0Ch
  115000. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115001. WORD ???
  115002. DWORD pointer to ???
  115003. WORD ???
  115004. Return: ???
  115005. STACK unchanged
  115006. --------b-60----DI0E0D-----------------------
  115007. INT 60 u - HP 95LX System Manager - "M_COMM_COMAND"
  115008. DI = 0E0Dh
  115009. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115010. WORD ???
  115011. DWORD pointer to ???
  115012. WORD ???
  115013. Return: ???
  115014. STACK unchanged
  115015. --------b-60----DI0E0E-----------------------
  115016. INT 60 u - HP 95LX System Manager - "M_COMM_BREAK"
  115017. DI = 0E0Eh
  115018. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115019. WORD ???
  115020. WORD ???
  115021. Return: ???
  115022. STACK unchanged
  115023. --------b-60----DI0E0F-----------------------
  115024. INT 60 u - HP 95LX System Manager - "M_COMM_FRCXON"
  115025. DI = 0E0Fh
  115026. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115027. WORD ???
  115028. Return: ???
  115029. STACK unchanged
  115030. --------b-60----DI0E10-----------------------
  115031. INT 60 u - HP 95LX System Manager - "M_COMM_FRCXOF"
  115032. DI = 0E10h
  115033. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115034. WORD ???
  115035. Return: ???
  115036. STACK unchanged
  115037. --------b-60----DI0E11-----------------------
  115038. INT 60 u - HP 95LX System Manager - "M_COMM_SETDTR"
  115039. DI = 0E11h
  115040. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115041. WORD ???
  115042. WORD ???
  115043. Return: ???
  115044. STACK unchanged
  115045. --------b-60----DI0E12-----------------------
  115046. INT 60 u - HP 95LX System Manager - "M_COMM_XMITNG"
  115047. DI = 0E12h
  115048. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115049. WORD ???
  115050. Return: ???
  115051. STACK unchanged
  115052. --------b-60----DI0E13-----------------------
  115053. INT 60 u - HP 95LX System Manager - "M_COMM_STATUS"
  115054. DI = 0E13h
  115055. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115056. WORD ???
  115057. Return: ???
  115058. STACK unchanged
  115059. --------b-60----DI0E14-----------------------
  115060. INT 60 u - HP 95LX System Manager - SET COMMUNICATIONS SETTINGS
  115061. DI = 0E14h
  115062. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115063. WORD comm channel handle
  115064. DWORD pointer to communications settings (see #03303)
  115065. Return: ???
  115066. STACK unchanged
  115067. SeeAlso: INT 60/DI=0E15h
  115068. Format of HP 95LX communications settings:
  115069. Offset Size Description (Table 03303)
  115070. 00h BYTE dial type ('T' tone, 'P' pulse)
  115071. 01h WORD baud rate divisor (115200/baud_rate)
  115072. 03h BYTE parity (00h none, 08h odd, 18h even, 28h mark, 38h space)
  115073. 04h BYTE stop bits (00h one, 04h two)
  115074. 05h BYTE data bits - 5
  115075. 06h BYTE software handshake
  115076. 01h none, 02h XOFF/XON, 04h XOFF/any, 08h ENQ/ACK
  115077. 07h BYTE infrared (01h off, 02h on)
  115078. 08h BYTE duplex (01h half, 02h full)
  115079. 09h BYTE echo (01h echo, 02h no echo)
  115080. --------b-60----DI0E15-----------------------
  115081. INT 60 u - HP 95LX System Manager - GET COMMUNICATIONS SETTINGS
  115082. DI = 0E15h
  115083. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115084. WORD ???
  115085. DWORD pointer to buffer for settings (see #03303)
  115086. Return: ???
  115087. STACK unchanged
  115088. SeeAlso: INT 60/DI=0E14h
  115089. --------b-60----DI0E16-----------------------
  115090. INT 60 u - HP 95LX System Manager - "M_COMM_CNFGUR"
  115091. DI = 0E16h
  115092. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115093. WORD ???
  115094. WORD ???
  115095. WORD ???
  115096. WORD ???
  115097. WORD ???
  115098. Return: ???
  115099. STACK unchanged
  115100. --------b-60----DI0E17-----------------------
  115101. INT 60 u - HP 95LX System Manager - "M_COMM_QRYERR"
  115102. DI = 0E17h
  115103. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115104. WORD ???
  115105. Return: ???
  115106. STACK unchanged
  115107. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  115108. --------b-60----DI0F00-----------------------
  115109. INT 60 u - HP 95LX System Manager - "M_ERRMSG"
  115110. DI = 0F00h
  115111. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115112. WORD ???
  115113. DWORD pointer to ???
  115114. WORD ???
  115115. DWORD pointer to ???
  115116. Return: ???
  115117. STACK unchanged
  115118. --------b-60----DI0F01-----------------------
  115119. INT 60 u - HP 95LX System Manager - DRAW STANDARD TITLE BOX
  115120. DI = 0F01h
  115121. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115122. DWORD pointer to ASCIZ title string
  115123. Return: ???
  115124. STACK unchanged
  115125. --------b-60----DI0F02-----------------------
  115126. INT 60 u - HP 95LX System Manager - "SHOWNAME"
  115127. DI = 0F02h
  115128. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115129. DWORD pointer to ???
  115130. Return: ???
  115131. STACK unchanged
  115132. --------b-60----DI0F03-----------------------
  115133. INT 60 u - HP 95LX System Manager - DISPLAY TWO-LINE MESSAGE BOX
  115134. DI = 0F03h
  115135. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115136. DWORD pointer to first line of message
  115137. WORD length of first line
  115138. DWORD pointer to second line of message
  115139. WORD length of second line
  115140. Return: ???
  115141. STACK unchanged
  115142. SeeAlso: INT 60/DI=0300h,INT 60/DI=0F04h,INT 60/DI=0F09h
  115143. --------b-60----DI0F04-----------------------
  115144. INT 60 u - HP 95LX System Manager - REMOVE MESSAGE BOX
  115145. DI = 0F04h
  115146. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115147. Return: ???
  115148. STACK unchanged
  115149. SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F09h
  115150. --------b-60----DI0F05-----------------------
  115151. INT 60 u - HP 95LX System Manager - "M_COM_TIMER_ADDR"
  115152. DI = 0F05h
  115153. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115154. Return: DX:AX -> ???
  115155. STACK unchanged
  115156. --------b-60----DI0F06-----------------------
  115157. INT 60 u - HP 95LX System Manager - "M_COM_TIMER_COUNT_ADDR"
  115158. DI = 0F06h
  115159. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115160. Return: DX:AX -> ???
  115161. STACK unchanged
  115162. --------b-60----DI0F07-----------------------
  115163. INT 60 u - HP 95LX System Manager - "M_SYS_RSRC_ADDR"
  115164. DI = 0F07h
  115165. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115166. Return: DX:AX -> ???
  115167. STACK unchanged
  115168. --------b-60----DI0F08-----------------------
  115169. INT 60 u - HP 95LX System Manager - "M_BIOS_OUTSTR"
  115170. DI = 0F08h
  115171. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115172. ???
  115173. Return: ???
  115174. STACK unchanged
  115175. --------b-60----DI0F09-----------------------
  115176. INT 60 u - HP 95LX System Manager - DISPLAY THREE-LINE MESSAGE BOX
  115177. DI = 0F09h
  115178. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115179. DWORD pointer to first line of message
  115180. WORD length of first line
  115181. DWORD pointer to second line of message
  115182. WORD length of second line
  115183. DWORD pointer to third line of message
  115184. WORD length of third line
  115185. Return: ???
  115186. STACK unchanged
  115187. SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F04h
  115188. --------b-60----DI0F0A-----------------------
  115189. INT 60 u - HP 95LX System Manager - DISABLE MACROS
  115190. DI = 0F0Ah
  115191. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115192. Return: ???
  115193. STACK unchanged
  115194. SeeAlso: INT 60/DI=0F0Bh
  115195. --------b-60----DI0F0B-----------------------
  115196. INT 60 u - HP 95LX System Manager - ENABLE MACROS
  115197. DI = 0F0Bh
  115198. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115199. Return: ???
  115200. STACK unchanged
  115201. SeeAlso: INT 60/DI=0F0Ah
  115202. --------b-60----DI0F0C-----------------------
  115203. INT 60 u - HP 95LX System Manager - "M_DATE_TIME_SEPS"
  115204. DI = 0F0Ch
  115205. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115206. ???
  115207. Return: ???
  115208. STACK unchanged
  115209. --------b-60----DI0F0D-----------------------
  115210. INT 60 u - HP 95LX System Manager - "M_FORM_FT"
  115211. DI = 0F0Dh
  115212. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115213. DWORD pointer to ???
  115214. Return: DX:AX -> ???
  115215. STACK unchanged
  115216. --------b-60----DI0F0E-----------------------
  115217. INT 60 u - HP 95LX System Manager - "M_RAM_IV_INFO"
  115218. DI = 0F0Eh
  115219. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115220. DWORD pointer to ???
  115221. Return: DX:AX -> ???
  115222. STACK unchanged
  115223. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  115224. --------b-60----DI1005-----------------------
  115225. INT 60 u - HP 95LX System Manager - "M_DIRTY_SYNC" - FORCE SCREEN UPDATE
  115226. DI = 1005h
  115227. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115228. Return: ???
  115229. STACK unchanged
  115230. SeeAlso: INT 10/AH=FFh,INT 60/DI=0300h,INT 60/DI=0301h
  115231. --------b-60----DI1200-----------------------
  115232. INT 60 u - HP 95LX System Manager - RESOURCE SERVICE "MAP_RESOURCE_FILE"
  115233. DI = 1200h
  115234. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115235. DWORD pointer to ???
  115236. Return: ???
  115237. STACK unchanged
  115238. --------b-60----DI1201-----------------------
  115239. INT 60 u - HP 95LX System Manager - "GET_RESOURCE_PTR"
  115240. DI = 1201h
  115241. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115242. WORD ???
  115243. Return: DX:AX -> ???
  115244. STACK unchanged
  115245. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  115246. --------b-60----DI1202-----------------------
  115247. INT 60 u - HP 95LX System Manager - "GET_RSRC_TAB_PTR"
  115248. DI = 1202h
  115249. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115250. Return: DX:AX -> ???
  115251. STACK unchanged
  115252. --------b-60----DI1203-----------------------
  115253. INT 60 u - HP 95LX System Manager - "INIT_SYSMGR_RSRCS"
  115254. DI = 1203h
  115255. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115256. Return: ???
  115257. STACK unchanged
  115258. --------b-60----DI1300-----------------------
  115259. INT 60 u - HP 95LX System Manager - INITIALIZE HELP SYSTEM
  115260. DI = 1300h
  115261. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115262. DWORD pointer to ???
  115263. DWORD pointer to ???
  115264. WORD ???
  115265. Return: ???
  115266. STACK unchanged
  115267. --------b-60----DI1301-----------------------
  115268. INT 60 u - HP 95LX System Manager - DISPLAY HELP
  115269. DI = 1301h
  115270. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115271. DWORD pointer to ???
  115272. Return: ???
  115273. STACK unchanged
  115274. --------b-60----DI1302-----------------------
  115275. INT 60 u - HP 95LX System Manager - "M_HELP_KEY"
  115276. DI = 1302h
  115277. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115278. DWORD pointer to ???
  115279. WORD ???
  115280. Return: ???
  115281. STACK unchanged
  115282. --------b-60----DI1303-----------------------
  115283. INT 60 u - HP 95LX System Manager - "M_HELP_TERM"
  115284. DI = 1303h
  115285. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115286. DWORD pointer to ???
  115287. Return: ???
  115288. STACK unchanged
  115289. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  115290. --------b-60----DI1400-----------------------
  115291. INT 60 u - HP 95LX System Manager - "M_ColInit"
  115292. DI = 1400h
  115293. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115294. Return: AX = ???
  115295. STACK unchanged
  115296. --------b-60----DI1401-----------------------
  115297. INT 60 u - HP 95LX System Manager - "M_ColCpStr"
  115298. DI = 1401h
  115299. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115300. DWORD pointer to ???
  115301. WORD ???
  115302. DWORD pointer to ???
  115303. WORD ???
  115304. Return: ???
  115305. STACK unchanged
  115306. --------b-60----DI1402-----------------------
  115307. INT 60 u - HP 95LX System Manager - "M_ColLicsStr"
  115308. DI = 1402h
  115309. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115310. ???
  115311. Return: ???
  115312. STACK unchanged
  115313. --------b-60----DI1403-----------------------
  115314. INT 60 u - HP 95LX System Manager - "M_ColLicsChar"
  115315. DI = 1403h
  115316. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115317. ???
  115318. Return: ???
  115319. STACK unchanged
  115320. --------b-60----DI1404-----------------------
  115321. INT 60 u - HP 95LX System Manager - "M_ColToLower"
  115322. DI = 1404h
  115323. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115324. DWORD pointer to ???
  115325. WORD ???
  115326. Return: ???
  115327. STACK unchanged
  115328. --------b-60----DI1405-----------------------
  115329. INT 60 u - HP 95LX System Manager - "M_ColCpSearch"
  115330. DI = 1405h
  115331. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115332. DWORD pointer to ???
  115333. WORD ???
  115334. DWORD pointer to ???
  115335. WORD ???
  115336. WORD ???
  115337. Return: ???
  115338. STACK unchanged
  115339. --------b-60----DI1406-----------------------
  115340. INT 60 u - HP 95LX System Manager - "M_ColToUpper"
  115341. DI = 1406h
  115342. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115343. DWORD pointer to ???
  115344. WORD ???
  115345. Return: ???
  115346. STACK unchanged
  115347. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  115348. --------b-60----DI1500-----------------------
  115349. INT 60 u - HP 95LX System Manager - "GrDispInit"
  115350. DI = 1500h
  115351. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115352. ???
  115353. Return: ???
  115354. STACK unchanged
  115355. --------b-60----DI1501-----------------------
  115356. INT 60 u - HP 95LX System Manager - "GrDispClear"
  115357. DI = 1501h
  115358. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115359. ???
  115360. Return: ???
  115361. STACK unchanged
  115362. --------b-60----DI1502-----------------------
  115363. INT 60 u - HP 95LX System Manager - "GrDispDot"
  115364. DI = 1502h
  115365. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115366. ???
  115367. Return: ???
  115368. STACK unchanged
  115369. --------b-60----DI1503-----------------------
  115370. INT 60 u - HP 95LX System Manager - "GrDispDraw"
  115371. DI = 1503h
  115372. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115373. ???
  115374. Return: ???
  115375. STACK unchanged
  115376. --------b-60----DI1504-----------------------
  115377. INT 60 u - HP 95LX System Manager - "GrDispFill"
  115378. DI = 1504h
  115379. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115380. ???
  115381. Return: ???
  115382. STACK unchanged
  115383. --------b-60----DI1505-----------------------
  115384. INT 60 u - HP 95LX System Manager - "GrDispRead"
  115385. DI = 1505h
  115386. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115387. ???
  115388. Return: ???
  115389. STACK unchanged
  115390. --------b-60----DI1506-----------------------
  115391. INT 60 u - HP 95LX System Manager - "GrDispString"
  115392. DI = 1506h
  115393. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115394. ???
  115395. Return: ???
  115396. STACK unchanged
  115397. --------b-60----DI1507-----------------------
  115398. INT 60 u - HP 95LX System Manager - "GrDispPan"
  115399. DI = 1507h
  115400. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115401. ???
  115402. Return: ???
  115403. STACK unchanged
  115404. --------b-60----DI1508-----------------------
  115405. INT 60 u - HP 95LX System Manager - "GrDispZoom"
  115406. DI = 1508h
  115407. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115408. ???
  115409. Return: ???
  115410. STACK unchanged
  115411. --------b-60----DI1509-----------------------
  115412. INT 60 u - HP 95LX System Manager - "GrDispSave"
  115413. DI = 1509h
  115414. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115415. ???
  115416. Return: ???
  115417. STACK unchanged
  115418. --------b-60----DI150A-----------------------
  115419. INT 60 u - HP 95LX System Manager - "GrDispRestore"
  115420. DI = 150Ah
  115421. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115422. ???
  115423. Return: ???
  115424. STACK unchanged
  115425. --------b-60----DI150B-----------------------
  115426. INT 60 u - HP 95LX System Manager - "GrDispCorner"
  115427. DI = 150Bh
  115428. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115429. ???
  115430. Return: ???
  115431. STACK unchanged
  115432. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  115433. --------b-60----DI1604-----------------------
  115434. INT 60 u - HP 95LX System Manager - "CP_TO_LICS"
  115435. DI = 1604h
  115436. STACK: 2 WORDs unused dummies (for calls from high level languages)
  115437. ???
  115438. Return: ???
  115439. STACK unchanged
  115440. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  115441. --------G-6000-------------------------------
  115442. INT 60 - SYS_PROF.EXE - PROFILER STATUS
  115443. AH = 00h
  115444. Return: AX = 0000h profiling is off
  115445. otherwise profiling is on
  115446. Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  115447. Issue 47
  115448. SeeAlso: AH=01h"SYS_PROF",AH=02h"SYS_PROF"
  115449. --------G-6000-------------------------------
  115450. INT 60 - MDEBUG - GET STATUS
  115451. AH = 00h
  115452. DS:SI -> password or a null byte
  115453. Return: AX = return code
  115454. FFFEh password is invalid
  115455. FFFDh display mode is invalid
  115456. else successful
  115457. ES = value of the monitor register SE
  115458. DI = value of the monitor register OF
  115459. CH = monitor color
  115460. CL = interpreter color
  115461. BH = monitor start line
  115462. BL = interpreter start line
  115463. AH = makecode of the hotkey
  115464. AL = ASCII code of the hotkey
  115465. DL = status of special keys (only SHIFT, ALT, CTRL) for the
  115466. hotkey (coded as for the keyboard flag at 0040h:0017h)
  115467. DH = basic process number for the communication with drivers
  115468. process number for the display driver, DH+1 = process
  115469. number for the command driver(s)
  115470. DS:SI -> MDEBUG identification table (see #03304)
  115471. Program: MDEBUG is a shareware memory-resident debugging tool by Bernd
  115472. Schemmer, including a memory monitor, an interpreter, and a
  115473. disassembler
  115474. Notes: MDEBUG uses INT 60 by default, but may be directed to any of INT 60
  115475. through INT 67; the interrupt handler is preceded by the signature
  115476. "USERINT" and is not chained
  115477. if DS:SI points at a null byte, MDEBUG will prompt for a password if
  115478. passwords are active; enough stack space must be provided for an
  115479. INT 10h call (which MDEBUG uses while prompting for the password)
  115480. SeeAlso: AH=02h"MDEBUG"
  115481. Index: hotkeys;MDEBUG
  115482. Format of MDEBUG identification table:
  115483. Offset Size Description (Table 03304)
  115484. -2 WORD entry offset
  115485. 00h WORD CS of MDEBUG
  115486. 02h DWORD old INT 08h vector
  115487. 06h DWORD old INT 09h vector
  115488. 0Ah DWORD address INT 16h routine used by MDEBUG
  115489. 0Eh BYTE length of version string
  115490. 0Fh N BYTEs version string
  115491. --------N-600000-----------------------------
  115492. INT 60 - RIFS - CLIENT - INSTALLATION CHECK
  115493. AX = 0000h
  115494. Return: AX = 1234h if installed
  115495. CF clear
  115496. Program: RIFS is the Remote Installable File System by "kyle"
  115497. InstallCheck: test for the signature "RIFS" immediately preceding the
  115498. interrupt handler
  115499. Range: INT 60 to INT 66 and INT 18,selected by scanning for 0000h:0000h vector
  115500. SeeAlso: AX=0001h,AX=0005h,AX=0007h,AX=0008h,INT 2F/AX=5600h
  115501. --------N-600001-----------------------------
  115502. INT 60 - RIFS - CLIENT - UNINSTALL
  115503. AX = 0001h
  115504. Return: CF clear if successful
  115505. SeeAlso: AX=0000h,AX=0009h
  115506. --------N-600002-----------------------------
  115507. INT 60 - RIFS - CLIENT - REMAP DRIVE
  115508. AX = 0002h
  115509. BH = local drive number
  115510. BL = remote drive number
  115511. Return: CF clear if successful
  115512. CF set on error
  115513. SeeAlso: AX=0000h,AX=0003h,AX=0004h,INT 21/AX=5F03h,INT 21/AX=5F05h"STARLITE"
  115514. --------N-600003-----------------------------
  115515. INT 60 - RIFS - CLIENT - UNMAP DRIVE
  115516. AX = 0003h
  115517. BL = drive to unmap
  115518. Return: CF clear if successful
  115519. CF set on error
  115520. SeeAlso: AX=0000h,AX=0002h,AX=0004h,INT 21/AX=5F04h,INT 21/AX=5F06h"STARLITE"
  115521. --------N-600004-----------------------------
  115522. INT 60 - RIFS - CLIENT - UNMAP ALL DRIVES
  115523. AX = 0004h
  115524. Return: CF clear if successful
  115525. CF set on error
  115526. SeeAlso: AX=0000h,AX=0002h,AX=0003h
  115527. --------N-600005-----------------------------
  115528. INT 60 - RIFS - CLIENT - GET TRANSLATION TABLE
  115529. AX = 0005h
  115530. Return: CF clear if successful
  115531. ES:BX -> translation table
  115532. CF set on error
  115533. SeeAlso: AX=0000h,AX=0006h,AX=0007h
  115534. --------N-600006-----------------------------
  115535. INT 60 - RIFS - CLIENT - GET STATISTICS TABLE
  115536. AX = 0006h
  115537. Return: CF clear if successful
  115538. ES:BX -> statistics table
  115539. CF set on error
  115540. SeeAlso: AX=0000h,AX=0005h,AX=0007h,AX=000Ah
  115541. --------N-600007-----------------------------
  115542. INT 60 - RIFS - CLIENT - GET PORT TRANSLATION TABLE
  115543. AX = 0007h
  115544. Return: CF clear if successful
  115545. CX = number of entries
  115546. ES:BX -> port mapping table
  115547. CF set on error
  115548. SeeAlso: AX=0000h,AX=0005h
  115549. --------N-600008-----------------------------
  115550. INT 60 - RIFS - SERVER - INSTALLATION CHECK
  115551. AX = 0008h
  115552. Return: CF clear if successful
  115553. CF set on error
  115554. InstallCheck: test for the signature "RIFS" immediately preceding the
  115555. interrupt handler
  115556. Range: INT 60 to INT 66 and INT 18,selected by scanning for 0000h:0000h vector
  115557. SeeAlso: AX=0000h,AX=0009h,AX=000Ah,AX=000Bh
  115558. --------N-600009-----------------------------
  115559. INT 60 - RIFS - SERVER - UNINSTALL
  115560. AX = 0009h
  115561. Return: CF clear if successful
  115562. CF set on error
  115563. SeeAlso: AX=0001h,AX=0008h
  115564. --------N-60000A-----------------------------
  115565. INT 60 - RIFS - SERVER - GET STATISTICS TABLE
  115566. AX = 000Ah
  115567. Return: CF clear if successful
  115568. ES:BX -> statistics table
  115569. CF set on error
  115570. SeeAlso: AX=0006h,AX=0008h,AX=0009h,AX=000Bh
  115571. --------N-60000B-----------------------------
  115572. INT 60 - RIFS - SERVER - RESET
  115573. AX = 000Bh
  115574. Return: CF clear if successful
  115575. CF set on error
  115576. Note: closes all open files
  115577. SeeAlso: AX=0008h,AX=0009h
  115578. --------G-6001-------------------------------
  115579. INT 60 - MDEBUG - GET ADDRESS OF THE HELP REGISTERS
  115580. AH = 01h
  115581. DS:SI -> password or a null byte
  115582. Return: AX = return code
  115583. FFFEh password is invalid
  115584. FFFDh display mode is invalid
  115585. else successful
  115586. ES:DI point to the help registers of MDEBUG
  115587. ES:DI-02h -> R0 (WORD)
  115588. ES:DI -> R1 (WORD)
  115589. ES:DI+02h -> R2 (WORD)
  115590. ES:DI+04h -> R3 (WORD)
  115591. ...
  115592. ES:DI+0Eh -> R8 (WORD)
  115593. --------G-6001-------------------------------
  115594. INT 60 - SYS_PROF.EXE - TURN PROFILING OFF
  115595. AH = 01h
  115596. Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  115597. Issue 47
  115598. SeeAlso: AH=00h"SYS_PROF",AH=02h"SYS_PROF"
  115599. --------N-6001FF-----------------------------
  115600. INT 60 - FTP Packet Driver - BASIC FUNC - GET DRIVER INFO
  115601. AX = 01FFh
  115602. BX = handle returned by function 02h
  115603. Return: CF set on error
  115604. DH = error code (see #03305)
  115605. CF clear if successful
  115606. BX = version
  115607. CH = network interface class (see #03306)
  115608. DX = interface type (see #03306)
  115609. CL = number
  115610. DS:SI -> name
  115611. AL = driver functions supported
  115612. 01h basic
  115613. 02h basic and extended
  115614. 05h basic and high-performance
  115615. 06h basic, high-performance, and extended
  115616. FFh not installed
  115617. Note: the handle in BX is optional for drivers written to v1.07 or later of
  115618. the packet driver specification
  115619. (Table 03305)
  115620. Values for Packet Driver error code:
  115621. 01h "BAD_HANDLE" invalid handle number
  115622. 02h "NO_CLASS" no interfaces of the specified class found
  115623. 03h "NO_TYPE" no interfaces of the specified type found
  115624. 04h "NO_NUMBER" no interfaces of the specified number found
  115625. 05h "BAD_TYPE" bad packet type
  115626. 06h "NO_MULTICAST" interface does not support multicast messages
  115627. 07h "CANT_TERMINATE" this packet driver cannot terminate
  115628. 08h "BAD_MODE" invalid receiver mode
  115629. 09h "NO_SPACE" insufficient space
  115630. 0Ah "TYPE_INUSE" type accessed but never released
  115631. 0Bh "BAD_COMMAND" bad command
  115632. 0Ch "CANT_SEND" packet could not be sent
  115633. 0Dh "CANT_SET" hardware address could not be changed
  115634. 0Eh "BAD_ADDRESS" hardware address has a bad length or format
  115635. 0Fh "CANT_RESET" could not reset interface
  115636. (Table 03306)
  115637. Values for Packet Driver network interface classes/types:
  115638. Class 01h Ethernet/IEEE 802.3
  115639. 01h 3COM 3C500/3C501
  115640. 02h 3COM 3C505
  115641. 03h MICOM-Interlan NI5010
  115642. 04h BICC Data Networks 4110
  115643. 05h BICC Data Networks 4117
  115644. 06h MICOM-Interlan NP600
  115645. 08h Ungermann-Bass PC-NIC
  115646. 09h Univation NC-516
  115647. 0Ah TRW PC-2000
  115648. 0Bh MICOM-Interlan NI5210
  115649. 0Ch 3COM 3C503
  115650. 0Dh 3COM 3C523
  115651. 0Eh Western Digital WD8003
  115652. 0Fh Spider Systems S4
  115653. 10h Torus Frame Level
  115654. 11h 10Net Communications
  115655. 12h Gateway PC-bus
  115656. 13h Gateway AT-bus
  115657. 14h Gateway MCA-bus
  115658. 15h IMC PCnic
  115659. 16h IMC PCnic II
  115660. 17h IMC PCnic 8-bit
  115661. 18h Tigan Communications
  115662. 19h Micromatic Research
  115663. 1Ah Clarkson "Multiplexor"
  115664. 1Bh D-Link 8-bit
  115665. 1Ch D-Link 16-bit
  115666. 1Dh D-Link PS/2
  115667. 1Eh Research Machines 8
  115668. 1Fh Research Machines 16
  115669. 20h Research Machines MCA
  115670. 21h Radix Microsystems EXM1 16-bit
  115671. 22h Interlan Ni9210
  115672. 23h Interlan Ni6510
  115673. 24h Vestra LANMASTER 16-bit
  115674. 25h Vestra LANMASTER 8-bit
  115675. 26h Allied Telesis PC/XT/AT
  115676. 27h Allied Telesis NEC PC-98
  115677. 28h Allied Telesis Fujitsu FMR
  115678. 29h Ungermann-Bass NIC/PS2
  115679. 2Ah Tiara LANCard/E AT
  115680. 2Bh Tiara LANCard/E MC
  115681. 2Ch Tiara LANCard/E TP
  115682. 2Dh Spider Communications SpiderComm 8
  115683. 2Eh Spider Communications SpiderComm 16
  115684. 2Fh AT&T Starlan NAU
  115685. 30h AT&T Starlan-10 NAU
  115686. 31h AT&T Ethernet NAU
  115687. 32h Intel smart card
  115688. 33h Xircom Packet Adapter
  115689. 34h Aquila Ethernet
  115690. 35h Novell NE1000
  115691. 36h Novell NE2000
  115692. 37h SMC PC-510
  115693. 38h AT&T Fiber NAU
  115694. 39h NDIS to Packet Driver adapter
  115695. 3Ah Racal-InterLan ES3210
  115696. 3Bh General Systems ISDN simulated Ethernet
  115697. 3Ch Hewlett-Packard
  115698. 3Dh IMC EtherNic-8
  115699. 3Eh IMC EtherNic-16
  115700. 3Fh IMC EtherNic-MCA
  115701. 40h NetWorth EtherNext
  115702. 41h Dataco Scanet
  115703. 42h DEC DEPCA
  115704. 43h C-Net
  115705. 44h Gandalf LANLine
  115706. 45h Apricot built-in
  115707. 46h David Systems Ether-T
  115708. 47h ODI to Packet Driver adapter (see also INT 2F/AX=5100h)
  115709. 48h AMD Am21110-16
  115710. 49h Intel ICD Network controller family
  115711. 4Ah Intel ICD PCL2
  115712. 4Bh Intel ICD PCL2A
  115713. 4Ch AT&T LANPacer
  115714. 4Dh AT&T LANPacer+
  115715. 4Eh AT&T EVB
  115716. 4Fh AT&T StarStation
  115717. 50h SLIP simulated ethernet
  115718. 51h Racal-Interlan NIA310
  115719. 52h Racal-Interlan NISE
  115720. 53h Racal-Interlan NISE30
  115721. 54h Racal-Interlan NI6610
  115722. 55h Ethernet over IP/UDP
  115723. 56h ICL EtherTeam 16
  115724. 57h David Systems
  115725. 58h NCR WaveLAN
  115726. 59h Thomas Contrad TC5045
  115727. 5Ah Russ Nelson's Parallel Port driver
  115728. 5Bh Intell EtherExpress 16
  115729. 5Ch IBMTOKEN
  115730. 5Dh Zenith Z-Note
  115731. 5Eh 3Com 3C509
  115732. 5Fh Mylex LNE390
  115733. 60h Madge Smart Ringnode
  115734. 61h Novell NE2100
  115735. 62h Allied Telesis 1500
  115736. 63h Allied Telesis 1700
  115737. 64h Fujitsu EtherCoupler
  115738. Class 02h ProNET-10
  115739. 01h Proteon p1300
  115740. 02h Proteon p1800
  115741. Class 03h IEEE 802.5/ProNet-4 (without expanded RIFs)
  115742. 01h IBM Token-Ring Adapter
  115743. 02h Proteon p1340
  115744. 03h Proteon p1344
  115745. 04h Gateway PC-bus
  115746. 05h Gateway AT-bus
  115747. 06h Gateway MCA-bus
  115748. 07h Madge board
  115749. 39h NDIS to Packet Driver adapter
  115750. 47h ODI to Packet Driver adapter
  115751. Class 04h Omninet
  115752. Class 05h Appletalk
  115753. 01h ATALK.SYS adapter
  115754. Class 06h Serial Line
  115755. 01h Clarkson 8250-SLIP
  115756. 02h Clarkson "Multiplexor"
  115757. 03h Eicon Technologies
  115758. Class 07h StarLAN (subsumed by Ethernet class)
  115759. Class 08h ARCnet
  115760. 01h Datapoint RIM
  115761. Class 09h AX.25
  115762. 01h Ottawa PI card
  115763. 02h Eicon Technologies
  115764. Class 0Ah KISS
  115765. Class 0Bh IEEE 802.3 with 802.2 headers
  115766. types same as for class 01h
  115767. Class 0Ch FDDI with 802.2 headers
  115768. 01h Western Digital
  115769. 02h Frontier Technology
  115770. Class 0Dh Internet X.25
  115771. 01h Western Digital
  115772. 02h Frontier Technology
  115773. 03h Emerging Technologies
  115774. 04h The Software Forge
  115775. 05h Link Data Intelligent X.25
  115776. 06h Eicon Technologies
  115777. Class 0Eh N.T. LANSTAR (encapsulating DIX Ethernet)
  115778. 01h NT LANSTAR/8
  115779. 02h NT LANSTAR/MC
  115780. Class 0Fh SLFP (MIT serial specification)
  115781. 01h MERIT
  115782. Class 10h PPP (Point-to-Point Protocol)
  115783. 01h 8250/16550 UART
  115784. 02h Niwot Networks synch
  115785. 03h Eicon Technologies
  115786. Class 11h 802.5 with expanded RIFs
  115787. types same as for class 3
  115788. Class 12h reserved for LCP/NCPs
  115789. Note: class and type numbers are cleared through FTP Software
  115790. --------G-6002-------------------------------
  115791. INT 60 - MDEBUG - SET STATUS
  115792. AH = 02h
  115793. DS:SI -> password or a null byte
  115794. ES = new value for the register SE
  115795. DI = new value for the register OF
  115796. CH = new monitor color if nonzero
  115797. CL = new interpreter color if nonzero
  115798. BH = new monitor start line if nonzero
  115799. BL = new interpreter start line if nonzero
  115800. AL = new ASCII code for the hotkey ('A'..'Z', 'a'..'z') if nonzero
  115801. DL = new status of the special keys (SHIFT, ALT, CTRL) for the hotkey
  115802. if nonzero
  115803. DH = if nonzero, new basic process number for communication with the
  115804. drivers (DH = multiplex number for the display driver,
  115805. DH+1 = multiplex number for the command driver or drivers)
  115806. Return: AX = return code
  115807. FFFFh call not allowed
  115808. FFFEh password is invalid
  115809. FFFDh display mode is invalid
  115810. 0000h successful, status changed
  115811. else AL = error reasons (see #03307)
  115812. Note: the values of the registers SE and OF are always changed, the other
  115813. values are only changed if they are valid
  115814. SeeAlso: AH=00h"MDEBUG"
  115815. Index: hotkeys;MDEBUG
  115816. Bitfields for MDEBUG error reasons:
  115817. Bit(s) Description (Table 03307)
  115818. 0 invalid monitor start line
  115819. 1 invalid interpreter start line
  115820. 2 invalid hotkey
  115821. 3 invalid process number
  115822. 4-7 reserved
  115823. --------N-6002-------------------------------
  115824. INT 60 - FTP Packet Driver - BASIC FUNC - ACCESS TYPE
  115825. AH = 02h
  115826. AL = interface class
  115827. BX = interface type
  115828. DL = interface number
  115829. DS:SI -> type
  115830. CX = length of type (0000h for all packets)
  115831. ES:DI -> receiver function (see #03308)
  115832. Return: CF set on error
  115833. DH = error code (see #03305)
  115834. CF clear if successful
  115835. AX = handle
  115836. SeeAlso: AH=03h"FTP"
  115837. (Table 03308)
  115838. Values packet driver receiver is called with when a packet is received:
  115839. AX = subfunction
  115840. 00h get packet buffer
  115841. CX = buffer length
  115842. DX = lookahead length (v1.10+)
  115843. DS:SI -> lookahead buffer if DX nonzero (v1.10+)
  115844. DI = error flags (class dependent) (v1.10+)
  115845. Return: ES:DI -> packet buffer
  115846. 0000h:0000h means throw away packet
  115847. CX = size of buffer (v1.10+), may be smaller than
  115848. incoming data
  115849. 01h copy completed
  115850. DS:SI -> buffer
  115851. CX = bytes actually copied (v1.10+)
  115852. BX = handle
  115853. --------G-6002-------------------------------
  115854. INT 60 - SYS_PROF.EXE - TURN PROFILING ON
  115855. AH = 02h
  115856. Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  115857. Issue 47
  115858. SeeAlso: AH=00h"SYS_PROF",AH=01h"SYS_PROF"
  115859. --------G-6003-------------------------------
  115860. INT 60 - MDEBUG - POP UP
  115861. AH = 03h
  115862. DS:SI -> password or a null byte
  115863. ES -> new value for the register SE
  115864. DI -> new value for the register OF
  115865. Return: AX = return code (see #03309)
  115866. SeeAlso: AH=04h"MDEBUG"
  115867. (Table 03309)
  115868. Values for MDEBUG return code:
  115869. FFFFh call not allowed
  115870. FFFEh password is invalid
  115871. FFFDh display mode is invalid
  115872. else successful
  115873. --------N-6003-------------------------------
  115874. INT 60 - FTP Packet Driver - BASIC FUNC - RELEASE TYPE
  115875. AH = 03h
  115876. BX = handle
  115877. Return: CF set on error
  115878. DH = error code (see #03305)
  115879. CF clear if successful
  115880. SeeAlso: AH=02h"FTP"
  115881. --------G-6003-------------------------------
  115882. INT 60 - SYS_PROF.EXE - GET ADDRESS OF PROFILING TABLE
  115883. AH = 03h
  115884. Return: ES:BX -> profiling table
  115885. Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  115886. Issue 47
  115887. SeeAlso: AH=04h"SYS_PROF"
  115888. --------N-6004-------------------------------
  115889. INT 60 - FTP Packet Driver - BASIC FUNC - SEND PACKET
  115890. AH = 04h
  115891. DS:SI -> buffer
  115892. CX = length
  115893. Return: CF set on error
  115894. DH = error code (see #03305)
  115895. CF clear if successful
  115896. Note: the buffer may be modified immediately upon return from this call
  115897. SeeAlso: AH=0Bh
  115898. --------G-6004-------------------------------
  115899. INT 60 - MDEBUG - POP UP
  115900. AH = 04h
  115901. DS:SI -> password or a null byte
  115902. Return: AX = return code (see #03309)
  115903. SeeAlso: AH=03h"MDEBUG",AH=07h"MDEBUG"
  115904. --------G-6004-------------------------------
  115905. INT 60 - SYS_PROF.EXE - CLEAR PROFILING TABLE
  115906. AH = 04h
  115907. Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  115908. Issue 47
  115909. SeeAlso: AH=03h"SYS_PROF"
  115910. --------N-6005-------------------------------
  115911. INT 60 - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE
  115912. AH = 05h
  115913. BX = handle (optional for v1.10+)
  115914. Return: CF set on error
  115915. DH = error code (see #03305)
  115916. CF clear if successful
  115917. --------G-6005-------------------------------
  115918. INT 60 - MDEBUG - GET AND SET MDEBUG FLAGS
  115919. AH = 05h
  115920. DS:SI -> password or a null byte
  115921. BL = new value for the semaphor of MDEBUG
  115922. 00h enable popup of MDEBUG
  115923. else disable popup of MDEBUG
  115924. Return: AX = return code
  115925. FFFEh password is invalid
  115926. FFFDh display mode is invalid
  115927. else successful
  115928. BL = old value of the semaphor of MDEBUG
  115929. BH = old value of the INT 08h semaphor
  115930. (this semaphor is always reset after this function)
  115931. --------N-6006-------------------------------
  115932. INT 60 - FTP Packet Driver - BASIC FUNC - GET ADDRESS
  115933. AH = 06h
  115934. BX = handle (optional for v1.10+)
  115935. ES:DI -> buffer
  115936. CX = length
  115937. Return: CF set on error
  115938. DH = error code (see #03305)
  115939. CF clear if successful
  115940. CX = length
  115941. Note: copies the local net address associated with the handle into the buffer
  115942. --------G-6006-------------------------------
  115943. INT 60 - MDEBUG - GET PASSWORD STATUS
  115944. AH = 06h
  115945. Return: AL = status
  115946. 00h password inactive
  115947. 01h password active
  115948. --------N-6007-------------------------------
  115949. INT 60 - FTP Packet Driver - BASIC FUNC - RESET INTERFACE
  115950. AH = 07h
  115951. BX = handle (optional for v1.10+)
  115952. Return: CF set on error
  115953. DH = error code (see #03305)
  115954. CF clear if successful
  115955. --------G-6007-------------------------------
  115956. INT 60 - MDEBUG v1.70+ - GET ACTIVE PART OF MDEBUG
  115957. AH = 07h
  115958. Return: AL = active part for the next popup session of MDEBUG:
  115959. bit 0: the next popup session will start in the interpreter rather
  115960. than in the monitor
  115961. bit 1: the next popup session will sart in the online-help
  115962. SeeAlso: AH=03h"MDEBUG",AH=04h"MDEBUG"
  115963. --------G-6008-------------------------------
  115964. INT 60 - MDEBUG - UNUSED
  115965. AH = 08h-FFh
  115966. Return: AX = FFFCh
  115967. --------N-600A-------------------------------
  115968. INT 60 - FTP Packet Driver 1.09+ - HIGH-PERF FUNC - GET PARAMETERS
  115969. AH = 0Ah
  115970. Return: CF set on error
  115971. DH = error code (0Bh) (see #03305)
  115972. CF clear if successful
  115973. ES:DI -> parameter table (see #03310)
  115974. Format of packet driver parameter table:
  115975. Offset Size Description (Table 03310)
  115976. 00h BYTE major revision of packet driver spec driver conforms to
  115977. 01h BYTE minor revision of packet driver spec
  115978. 02h BYTE length of this structure in bytes
  115979. 03h BYTE length of a MAC-layer address
  115980. 04h WORD maximum transfer unit, including MAC headers
  115981. 06h WORD buffer size for multicast addr
  115982. 08h WORD number of receive buffers (one less than back-to-back MTU rcvs)
  115983. 0Ah WORD number of transmit buffers
  115984. 0Ch WORD interrupt number to hook for post-EOI processing, 00h=none
  115985. --------N-600B-------------------------------
  115986. INT 60 - FTP Packet Driver 1.09 - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
  115987. AH = 0Bh
  115988. DS:SI -> buffer
  115989. CX = length of buffer
  115990. ES:DI -> FAR function to call when buffer becomes available (see #03311)
  115991. Return: CF set on error
  115992. DH = error code (0Bh,0Ch) (see #03305)
  115993. CF clear if successful
  115994. Notes: unlike function 04h, the buffer is not available for modification as
  115995. soon as the call returns; the buffer may be queued by the driver and
  115996. not processed until later
  115997. this function has been dropped from v1.10+ of the specification and
  115998. replaced by function 0Ch
  115999. SeeAlso: AH=04h"Packet Driver",AH=0Ch"Packet Driver"
  116000. (Table 03311)
  116001. Values packet driver completion function is called with:
  116002. AX = result
  116003. 00h copy OK
  116004. nonzero error
  116005. ES:DI -> buffer passed to INT 60/AH=0Bh call
  116006. --------N-600C-------------------------------
  116007. INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
  116008. AH = 0Ch
  116009. ES:DI -> pointer to IOCB (see #03312)
  116010. Return: CF set on error
  116011. DH = error code (see #03305)
  116012. CF clear if successful
  116013. SeeAlso: AH=04h"Packet Driver",AH=0Bh"Packet Driver"
  116014. Format of packet driver IOCB:
  116015. Offset Size Description (Table 03312)
  116016. 00h DWORD pointer to buffer
  116017. 04h WORD length of buffer
  116018. 06h BYTE flags
  116019. bit 0: packet driver is finished with IOCB
  116020. bit 1: application requests upcall when driver completes
  116021. 07h DWORD function address for upcall (see #03313)
  116022. 0Bh 4 BYTEs future gather write
  116023. 0Fh BYTE ???
  116024. 10h 8 BYTEs private driver workspace
  116025. (Table 03313)
  116026. Values completion function is called with:
  116027. ES:DI -> IOCB passed to INT 60/AH=0Ch
  116028. --------N-600C-------------------------------
  116029. INT 60 - Banyan VINES, 3com - GET STATION ADDRESS
  116030. AH = 0Ch
  116031. Return: AL = status
  116032. 00h successful
  116033. ES:SI -> 6-byte station address
  116034. 02h semaphore service is unavailable
  116035. --------N-600D-------------------------------
  116036. INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - DROP PACKET FROM QUEUE
  116037. AH = 0Dh
  116038. ES:DI -> IOCB
  116039. Return: CF set on error
  116040. DH = error code (see #03305)
  116041. CF clear if successful
  116042. SeeAlso: AH=0Ch"Packet Driver"
  116043. --------N-6011-------------------------------
  116044. INT 60 - 3com, 10NET, Banyan VINES - LOCK AND WAIT
  116045. AH = 11h
  116046. AL = drive number or 0
  116047. DX = number of seconds to wait
  116048. ES:SI = Ethernet address or 0
  116049. DS:BX -> 31-byte ASCIZ semaphore name
  116050. Return: AL = status (see #03314)
  116051. SeeAlso: AH=12h,AH=13h
  116052. (Table 03314)
  116053. Values for 3com semaphore status:
  116054. 00h successful
  116055. 01h timeout
  116056. 02h server not responding
  116057. 03h invalid semaphore name
  116058. 04h semaphore list is full
  116059. 05h invalid drive ID
  116060. 06h invalid Ethernet address
  116061. 07h not logged in
  116062. 08h write to network failed
  116063. 09h semaphore already logged for this CPU
  116064. --------N-6012-------------------------------
  116065. INT 60 - 3com, 10NET, Banyan VINES - LOCK
  116066. AH = 12h
  116067. AL = drive number or 00h
  116068. ES:SI = Ethernet address or 0000h:0000h
  116069. DS:BX -> 31-byte ASCIZ semaphore name
  116070. Return: AL = status (see also #03314)
  116071. 01h semaphore currently locked by another PC
  116072. Note: unlike function 11h, this function returns immediately
  116073. SeeAlso: AH=11h,AH=13h
  116074. --------N-6013-------------------------------
  116075. INT 60 - 3com, 10NET, Banyan VINES - UNLOCK
  116076. AH = 13h
  116077. AL = drive number or 00h
  116078. ES:SI = Ethernet address or 0000h:0000h
  116079. DS:BX -> 31-byte ASCIZ semaphore name
  116080. Return: AL = status (see also #03314)
  116081. 01h semaphore not locked
  116082. SeeAlso: AH=11h,AH=12h
  116083. --------N-6014-------------------------------
  116084. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET RECEIVE MODE
  116085. AH = 14h
  116086. BX = handle (optional for v1.10+)
  116087. CX = mode (see #03315)
  116088. Return: CF set on error
  116089. DH = error code (01h,08h) (see #03305)
  116090. CF clear if successful
  116091. SeeAlso: AH=15h
  116092. (Table 03315)
  116093. Values for packet driver receive mode:
  116094. 01h turn off receiver
  116095. 02h receive only packets sent to this interface
  116096. 03h mode 2 plus broadcast packets
  116097. 04h mode 3 plus limited multicast packets
  116098. 05h mode 3 plus all multicast packets
  116099. 06h all packets
  116100. 07h raw mode for serial line only (v1.10+)
  116101. --------N-6015-------------------------------
  116102. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET RECEIVE MODE
  116103. AH = 15h
  116104. BX = handle (optional for v1.10+)
  116105. Return: CF set on error
  116106. DH = error code (01h) (see #03305)
  116107. CF clear if successful
  116108. AX = receive mode (see #03315)
  116109. SeeAlso: AH=14h
  116110. --------N-6016-------------------------------
  116111. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET MULTICAST LIST
  116112. AH = 16h
  116113. ES:DI -> multicast list
  116114. CX = length of list in bytes
  116115. Return: CF set on error
  116116. DH = error code (06h,09h,0Eh) (see #03305)
  116117. CF clear if successful
  116118. SeeAlso: AH=17h
  116119. --------N-6017-------------------------------
  116120. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET MULTICAST LIST
  116121. AH = 17h
  116122. Return: CF set on error
  116123. DH = error code (06h,09h) (see #03305 at AX=01FFh)
  116124. CF clear if successful
  116125. ES:DI -> multicast addresses (do not modify)
  116126. CX = bytes of multicast addresses currently in use
  116127. SeeAlso: AH=16h
  116128. --------N-6018-------------------------------
  116129. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET STATISTICS
  116130. AH = 18h
  116131. BX = handle (optional for v1.10+)
  116132. Return: CF set on error
  116133. DH = error code (01h) (see #03305)
  116134. CF clear if successful
  116135. DS:SI -> statistics (see #03316)
  116136. Format of packet driver statistics:
  116137. Offset Size Description (Table 03316)
  116138. 00h DWORD packets in
  116139. 04h DWORD packets out
  116140. 08h DWORD bytes in
  116141. 0Ch DWORD bytes out
  116142. 10h DWORD errors in
  116143. 14h DWORD errors out
  116144. 18h DWORD packets dropped
  116145. --------N-6019-------------------------------
  116146. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET NETWORK ADDRESS
  116147. AH = 19h
  116148. ES:DI -> address
  116149. CX = length of address
  116150. Return: CF set on error
  116151. DH = error code (0Dh,0Eh) (see #03305)
  116152. CF clear if successful
  116153. CX = length
  116154. --------N-601A-------------------------------
  116155. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - SEND RAW BYTES
  116156. AH = 1Ah
  116157. DS:SI -> buffer
  116158. CX = length of buffer
  116159. Return: CF set on error
  116160. DH = error code (see #03305 at AX=01FFh)
  116161. CF clear if successful
  116162. SeeAlso: AH=1Ch
  116163. --------N-601B-------------------------------
  116164. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FLUSH RAW BYTES RECEIVED
  116165. AH = 1Bh
  116166. Return: CF set on error
  116167. DH = error code (see #03305)
  116168. CF clear if successful
  116169. SeeAlso: AH=1Ch
  116170. --------N-601C-------------------------------
  116171. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FETCH RAW BYTES RECEIVED
  116172. AH = 1Ch
  116173. DS:SI -> buffer
  116174. CX = length of buffer
  116175. DX = timeout in clock ticks
  116176. Return: CF set on error
  116177. DH = error code (see #03305 at AX=01FFh)
  116178. CF clear if successful
  116179. CX = number of bytes transferred to buffer
  116180. SeeAlso: AH=1Ah,AH=1Bh
  116181. ----------60899B-----------------------------
  116182. INT 60 U - Agfa TTSR.EXE - API
  116183. AX = 899Bh
  116184. BX = function
  116185. 0001h installation check
  116186. Return: BX = 899Bh if installed
  116187. 0002h ???
  116188. 0003h ???
  116189. ???
  116190. Return: ???
  116191. Note: TTSR.EXE is found in FotoLook 2.09 (16-bit), which is available from
  116192. agfa.com; it appears to provide DOS ASPI support
  116193. !!!
  116194. --------a-60AD-------------------------------
  116195. INT 60 - AccessDOS - API
  116196. AH = ADh
  116197. AL = function
  116198. E1h ???
  116199. Return: AX = ???
  116200. E2h get configuration
  116201. Return: BX:AX -> configuration data
  116202. Program: AccessDOS is a public domain TSR developed at The Trace Research and
  116203. Development Center which provides extensions for keyboard, mouse,
  116204. and sound access by the visually, hearing, or motor-control
  116205. impaired.
  116206. InstallCheck: test for the signature "ACCESSv1.00" beginning three bytes
  116207. past the start of the interrupt handler (this same signature is also
  116208. present in v1.10)
  116209. Range: INT 60 to INT 66, selected by scanning for 0000h:0000h vector
  116210. --------N-60E9-------------------------------
  116211. INT 60 - FTP Packet Driver - Crynwr Software - AUTOSELECT TRANSCEIVER
  116212. AH = E9h
  116213. ???
  116214. Return: ???
  116215. --------*-61---------------------------------
  116216. INT 61 - reserved for user interrupt
  116217. --------b-61---------------------------------
  116218. INT 61 - Atari Portfolio - EXTENDED BIOS
  116219. Desc: provides subfunctions such as turning off the machine, accessing
  116220. internal variables, and mapping memory cards
  116221. SeeAlso: INT 60"Atari",AH=00h"Portfolio",AH=08h"Portfolio",AH=0Dh"Portfolio"
  116222. SeeAlso: AH=11h"Portfolio",AH=15h"Portfolio",AH=19h"Portfolio"
  116223. SeeAlso: AH=1Bh"Portfolio",AH=24h"Portfolio",AH=2Ch"Portfolio"
  116224. SeeAlso: AH=30h"Portfolio"
  116225. --------b-61---------------------------------
  116226. INT 61 - TI Professional PC - FACTORY ROM DATA AREA POINTER (NOT A VECTOR!)
  116227. Desc: the low word of this vector contains the segment of the RAM data area
  116228. to be used by the expansion ROM at F400h:0000h, and the high word
  116229. contains the length of the data area; this segment and size are
  116230. both set to 0000h if no ROM is installed at F400h:0000h
  116231. SeeAlso: INT 60"TI Professional PC",INT 62"TI Professional"
  116232. SeeAlso: INT 66"TI Professional PC"
  116233. --------b-61---------------------------------
  116234. INT 61 - HP 95LX System Manager - LOAD DS
  116235. SeeAlso: INT 0F"HP 95LX",INT 60/DI=0102h"HP 95LX"
  116236. --------r-61---------------------------------
  116237. INT 61 - JPI TopSPEED Modula-2 v1 - PROCEDURE EXIT TRAP
  116238. SeeAlso: INT 60"JPI"
  116239. --------d-61---------------------------------
  116240. INT 61 - Adaptec and OMTI controllers - DRIVE 0 DATA
  116241. Desc: this vector stores the second four bytes of the parameter table for
  116242. hard disk 0
  116243. SeeAlso: INT 60"Adaptec",INT 62"Adaptec",INT 63"Adaptec"
  116244. --------I-61---------------------------------
  116245. INT 61 - Sangoma CCIP (CCPOP 3270 resident module) INTERFACE
  116246. BX:DX -> control block
  116247. SeeAlso: INT 67"Sangoma"
  116248. --------v-61---------------------------------
  116249. INT 61 - VIRUS - "SEMTEX"/"Screen Trasher" - INT 21h SUBSTITUTE
  116250. Note: the virus copies the original INT 21h vector into INT 61h
  116251. SeeAlso: INT 21/AH=00h,INT 21/AH=25h,INT 60"VIRUS",INT 6B"VIRUS"
  116252. --------U-61---------------------------------
  116253. INT 61 - PC-Magazin - PAGE, SWAPx
  116254. details not yet available
  116255. Program: PAGE and SWAPx are utilities from PC-Magazin, the German edition of
  116256. PC Magazine, issue 47/85, page 31
  116257. SeeAlso: INT 66"INCA"
  116258. --------N-61---------------------------------
  116259. INT 61 - TCPOpen kernel - API
  116260. ES:BX -> request packet (see #03317)
  116261. Program: TCPOpen is a TCP/IP protocol stack by Lanera
  116262. Range: INT 60 to INT 7F, selected by configuration file
  116263. Note: there does not appear to be an installation check, though function
  116264. FFFFh can be used to verify that the software is indeed functioning
  116265. Format of TCPOpen request packet:
  116266. Offset Size Description (Table 03317)
  116267. 00h 8 BYTEs ???
  116268. 08h WORD function number (0000h-001Ah or FFF9h-FFFFh)
  116269. 0Ah WORD ???
  116270. 0Ch 2 BYTEs ???
  116271. 0Eh WORD (ret) return code
  116272. 10h 2 BYTEs ???
  116273. 12h WORD ???
  116274. 14h WORD (ret) 0001h if requested function complete
  116275. 16h WORD (ret) ???
  116276. 18h 6 BYTEs ???
  116277. 1Eh DWORD -> ???
  116278. 22h WORD ??? or 0000h
  116279. 24h WORD (ret) ???
  116280. SeeAlso: #03318
  116281. (Table 03318)
  116282. Call TCPOpen Function FFFFh: installation verification
  116283. Return: offset 10h = BEEFh
  116284. offset 14h = 0001h
  116285. offset 24h = ???
  116286. Index: installation check;TCPOpen kernel
  116287. --------N-61---------------------------------
  116288. INT 61 - XFS v1.76 - XFSKRNL.EXE - API
  116289. AX = function
  116290. 8000h installation check???
  116291. Return: AX = 0000h
  116292. 8001h ???
  116293. ES:DI -> DWORD ???
  116294. Return: AX = status???
  116295. 8002h ???
  116296. BX = ???
  116297. CX = ???
  116298. ES:DI -> ???
  116299. Return: AX = status???
  116300. 8003h ???
  116301. BX = ???
  116302. CX = ???
  116303. ES:DI -> ???
  116304. Return: AX = status???
  116305. 8004h ???
  116306. BX = ???
  116307. Return: AX = status???
  116308. 8005h wait until ???
  116309. Return: DX:AX = ???
  116310. 8006h get ???
  116311. Return: DX:AX -> ??? record
  116312. 8007h set IP address??? (or htonl/ntohl)
  116313. DX:BX = IP address???
  116314. Return: DX:AX = byte-swapped IP address
  116315. 8008h set IP address??? (or htonl/ntohl)
  116316. DX:AX = IP address???
  116317. Return: DX:AX = byte-swapped IP address
  116318. 8009h ???
  116319. ES:DI -> ???
  116320. Return: DX:AX = ???
  116321. 800Ah ???
  116322. 800Bh ???
  116323. Return: DX:AX = ???
  116324. 800Ch ???
  116325. 800Dh ???
  116326. 800Eh ???
  116327. 800Fh ???
  116328. 8010h get ??? record
  116329. Return: DX:AX -> ??? record
  116330. 8011h ???
  116331. 8012h ???
  116332. BX = ???
  116333. Return: DX:AX = ???
  116334. 8013h get ??? record
  116335. Return: DX:AX -> ??? record
  116336. 8014h ???
  116337. ES:DI -> ???
  116338. Return: nothing
  116339. 8015h get ??? record
  116340. Return: DX:AX -> 8-byte ??? record
  116341. 8016h get ??? record
  116342. Return: DX:AX -> 6-byte ??? record
  116343. 8017h ???
  116344. ES:DI -> ???
  116345. Return: DX:AX = ???
  116346. 8018h get ??? record
  116347. Return: DX:AX -> ??? record
  116348. 8019h get ??? record
  116349. Return: DX:AX -> 14-byte ??? record
  116350. 801Ah get ??? record
  116351. Return: DX:AX -> ??? record (max 98 bytes)
  116352. 801Bh get ??? record
  116353. Return: DX:AX -> ??? record
  116354. 801Ch ???
  116355. Return: nothing
  116356. 801Dh get ???
  116357. Return: AL = ???
  116358. 801Eh ???
  116359. Return: AX = ???
  116360. 801Fh uninstall
  116361. Return: AX = status
  116362. 0000h successful
  116363. other interrupt which could not be released
  116364. AX = other
  116365. Return: AX:BX = ??? (0000h:0000h by default)
  116366. Program: XFS is a shareware Network File System client by Robert Juhasz
  116367. Range: INT 60 to INT 65, selected by scanning for two consecutive free
  116368. vectors and hooking the first
  116369. SeeAlso: INT 62"XFS"
  116370. --------N-61---------------------------------
  116371. INT 61 - FTP Software PC/TCP - TCP/IP TSR System Call interface
  116372. AH = system call number (also see entries below)
  116373. 01h "pkt_alloc" (v2.05; this is "net_config" in v2.1+)
  116374. 02h "pkt_free" (v2.05; this is "get_kernel_info" in v2.1+)
  116375. Return: CF clear if successful
  116376. CF set on error
  116377. AL = basic error (see #03319)
  116378. AH = suberror number (see #03320,#03321)
  116379. InstallCheck: test for the signature "TCPTSR" three bytes beyond the start
  116380. of the interrupt handler
  116381. Range: INT 20h to INT E0h, selected by configuration
  116382. BUG: the SLIP kernel for v2.05 bounds-checks the wrong register, so values
  116383. greater than 54h in AH may crash the system. Other kernels may have
  116384. this bug as well.
  116385. SeeAlso: INT 61/AH=00h"PC/TCP",INT 61/AH=2Ah,INT 61/AH=54h
  116386. Index: installation check;PC/TCP
  116387. (Table 03319)
  116388. Values for PC/TCP error code:
  116389. 00h "NET_NOERR" successful
  116390. 01h "NET_ERR_INUSE" protocol or socket already in use
  116391. 02h "NET_DOS_ERR" MS-DOS error (returned as suberror code in AH)
  116392. 03h "NET_ERR_NOMEM" out of memory
  116393. 04h "NET_ERR_NOTNETCONN" not a network descriptor
  116394. 05h "NET_ERR_ILLEGALOP" invalid operation on given kind of network descriptor
  116395. 06h "NET_ERR_BADPKT" illegal or corrupted packet
  116396. 07h "NET_ERR_NOHOST" no host bound to specified connection
  116397. 08h "NET_ERR_CANTOPEN" unable to open file
  116398. 09h "NET_ERR_NET_UNREACHABLE" network is unreachable
  116399. 0Ah "NET_ERR_HOST_UNREACHABLE" host is unreachable (see #03320)
  116400. 0Bh "NET_ERR_PROT_UNREACHABLE" protocol is unreachable
  116401. 0Ch "NET_ERR_PORT_UNREACHABLE" port is unreachable
  116402. 0Dh "NET_ERR_TIMEOUT" operation timed out
  116403. 0Eh "NET_ERR_HOSTUNKNOWN" unable to resolve host name
  116404. 0Fh "NET_ERR_NOSERVERS" no name servers configured
  116405. 10h "NET_ERR_SERVER_ERR" bad reply from name server
  116406. Subcodes: 0= no error, 1 = Host unreachable
  116407. 11h "NET_ERR_BADFORMAT" bad format for IP address or field in IP address
  116408. structure is zero
  116409. 12h "NET_ERR_BADARG" invalid argument
  116410. 13h "NET_ERR_EOF" foreign host closed its end of connection
  116411. 14h "NET_ERR_RESET" connection has been reset
  116412. 15h "NET_ERR_WOULDBLOCK" recv() call was done on a non-blocking connection
  116413. with no data available
  116414. 16h "NET_ERR_UNBOUND" insufficient resources to do operation
  116415. 17h "NET_ERR_NODESC" could not allocate network descriptor
  116416. 18h "NET_ERR_BADSYSCALL" invalid/unsupported kernel call
  116417. 19h "NET_ERR_CANTBROADCAST" unable to broadcast
  116418. 1Ah "NET_ERR_NOTESTAB" operation illegal because connection not established
  116419. 1Bh kernel busy, try again later
  116420. 1Ch "NET_ERR_ICMPMESG" an ICMP message was received (not on streams)
  116421. (see #03321)
  116422. ---v2.1+---
  116423. 1Dh "NET_ERR_TERMINATING" internal kernel fatal error
  116424. 1Eh "NET_ERR_TAG_LOCKED" not allowed to set this tag (net_config)
  116425. 1Fh "NET_ERR_BAD_INTERFACE" non existent interface specified
  116426. 20h "NET_ERR_BADCONFIG" kernel cannot run - bad configuration
  116427. 21h "NET_ERR_EMM" expanded memory error
  116428. 22h "NET_ERR_CANT_SHUTDOWN" cant unload kernel (multitasker running)
  116429. 23h "NET_ERR_PARKED_IN" unable to unhook DOS interrupt
  116430. 24h "NET_ERR_NOQIOS" ran out of resources; try again later
  116431. 25h "NET_ERR_WOULD_TRUNCATE" datagram too large and "don't truncate" was set
  116432. (Table 03320)
  116433. Values for subcodes of PC/TCP error 0Ah "NET_ERR_HOST_UNREACHABLE":
  116434. 00h no error
  116435. 01h host unreachable
  116436. 02h ARP failed
  116437. 03h hardware failure
  116438. 04h link failure
  116439. 05h no route
  116440. 06h gateway down
  116441. SeeAlso: #03319,#03321
  116442. (Table 03321)
  116443. Values for subcodes of PC/TCP error 1Ch "NET_ERR_ICMPMESG":
  116444. 07h unrecognised
  116445. 08h can't fragment
  116446. 09h srcr_fail
  116447. 0Ah source quench
  116448. 0Bh time exceeded
  116449. 0Ch parameter problem
  116450. 0Dh admin_prohib. see also code 0Ah
  116451. SeeAlso: #03319,#03320
  116452. --------N-6100-------------------------------
  116453. INT 61 U - PC/TCP kernel v2.05+ - GET DEBUG INFORMATION
  116454. AH = 00h
  116455. DS:SI -> 216-byte buffer for network debugging information (see #03322)
  116456. Return: CF clear
  116457. AX = 0000h
  116458. buffer filled
  116459. Notes: this call is not documented by FTP, Inc. for any version
  116460. most of the information returned by this call is available via the
  116461. documented get_kernel_info or net_info commands.
  116462. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  116463. SeeAlso: INT 61"FTP Software",INT 61/AH=2Ah"PC/TCP"
  116464. Format of network debugging information:
  116465. Offset Size Description (Table 03322)
  116466. 00h DWORD number of interrupts
  116467. 04h DWORD receive buffer low-water mark
  116468. 08h DWORD transmit buffer low-water mark
  116469. 0Ch DWORD number of packets received
  116470. 10h DWORD number of packets transmitted
  116471. 14h DWORD total receive errors
  116472. 18h DWORD total transmit errors
  116473. 1Ch 4 BYTEs ???
  116474. 20h DWORD receive resets
  116475. 24h DWORD transmit resets
  116476. 28h DWORD number of "runts" received
  116477. 2Ch DWORD number of alignment errors on received packets
  116478. 30h DWORD number of CRC errors on received packets
  116479. 34h DWORD number of parity errors on received packets
  116480. 38h DWORD number of receive overflow errors
  116481. 3Ch DWORD number of oversized packets received
  116482. 40h DWORD number of packets lost due to lack of buffers
  116483. 44h DWORD receive timeouts
  116484. 48h 32 BYTEs ???
  116485. 68h DWORD number of transmit collisions
  116486. 6Ch DWORD number of transmit timeouts
  116487. 70h DWORD number of transmit underflows
  116488. 74h DWORD number of lost "crs" on transmit
  116489. 78h DWORD number of times heartbeat failed on transmit
  116490. 7Ch 24 BYTEs ???
  116491. 94h WORD free packet buffers
  116492. 96h WORD total packet buffers
  116493. 98h WORD minimum number of packet buffers free since kernel started
  116494. 9Ah 24 BYTEs ???
  116495. B2h DWORD pointer to TCP connection list???
  116496. B6h DWORD pointer to IP routing table???
  116497. BAh 30 BYTEs ???
  116498. --------N-6100-------------------------------
  116499. INT 61 - Banyan VINES - CALL A SERVICE
  116500. AH = 00h
  116501. AL = service ID (1..16)
  116502. other registers vary by service
  116503. Return: AX = status (see #03325)
  116504. Desc: Calls an adapter driver or redirector service. The service handler
  116505. pointers are stored at offset 0010h in the code segment of the
  116506. BANV interrupt handler (see #03323).
  116507. Note: Banyan can use any interrupt from 60h through 66h. The Banyan
  116508. interrupt handler is identified by the string "BANV" in the four
  116509. bytes immediately preceding the interrupt handler
  116510. SeeAlso: AH=01h,AH=03h
  116511. Format of the BANV code segment (revision 5.53):
  116512. Offset Size Description (Table 03323)
  116513. 00h 16 BYTEs reserved
  116514. 10h 16 DWORDs far pointers to the service handlers (0 = not installed)
  116515. 50h DWORD far pointer to last called service
  116516. 54h WORD VINES revision
  116517. 56h DWORD VINES revision long
  116518. 5Ah WORD VINES revision (lower bound)
  116519. 5Ch DWORD VINES revision (lower bound) long
  116520. 60h WORD VINES revision (upper bound)
  116521. 62h DWORD VINES revision (upper bound) long
  116522. 66h WORD end of PCCONFIG area
  116523. 68h WORD start of PCCONFIG area
  116524. 6Ah 4 BYTEs BANV interrupt identifier ("BANV")
  116525. 6Eh N BYTEs BANV interrupt service
  116526. SeeAlso: #03324
  116527. --------b-6100-------------------------------
  116528. INT 61 - Atari Portfolio - SERVICE INITIALIZATION
  116529. AH = 00h
  116530. Return: nothing
  116531. Note: applications using any Portfolio INT 61 calls should call this function
  116532. exactly once at startup
  116533. SeeAlso: AH=07h"Portfolio",AH=09h"Portfolio",AH=0Dh"Portfolio"
  116534. SeeAlso: AH=11h"Portfolio",AH=15h"Portfolio",AH=19h"Portfolio"
  116535. SeeAlso: AH=1Bh"Portfolio",AH=24h"Portfolio",AH=2Ch"Portfolio"
  116536. SeeAlso: AH=30h"Portfolio"
  116537. --------V-610000-----------------------------
  116538. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - ZOOM DISPLAY
  116539. AX = 0000h
  116540. BX = zoom factor (0-7)
  116541. Desc: zooms the display based on the given zoom factor
  116542. Notes: INT 61h is the default interrupt; the actual interrupt number can be
  116543. obtained by calling INT 16/AH=FFh
  116544. not all vendors include the Tseng TSR which supports these functions
  116545. SeeAlso: AX=0001h"OPTIMA",AX=0002h"OPTIMA",AX=0005h"OPTIMA"
  116546. SeeAlso: INT 16/AH=FFh"OPTIMA"
  116547. --------N-610001DS0001-----------------------
  116548. INT 61 - Banyan VINES - INTERNAL VINES SOCKET API (NEAR DATA)
  116549. AX = 0001h
  116550. DS = 0001h (to distinguish from alternate AX=0001h socket interface)
  116551. CX:BX -> internal communications control block (see #03324)
  116552. DX = caller's data segment
  116553. Return: AX = status
  116554. 0000h successful
  116555. 0099h invalid operation
  116556. 00A5h resource not available
  116557. Desc: StreetTalk access with session handles
  116558. Range: INT 60 to INT 66
  116559. Notes: This service is handled by the adapter driver
  116560. The request dispatch table contains dummy entries for subfunctions
  116561. 06h, 0Dh, 0Eh, 0Fh, 10h, and 11h, which always return error 0099h
  116562. (invalid operation) in the request block's result buffer
  116563. in recent VINES releases, this interface is superseded by the AX=000Fh
  116564. interface, which allows FAR parameter block pointers (refer to that
  116565. function's entries for more details on individual subfunctions)
  116566. some adapter drivers (e.g. the NDIS2 token ring driver NDTOKBAN for
  116567. VINES 5.53) ignore the value in CX and use the value from DX instead
  116568. SeeAlso: AX=000Fh
  116569. Format of internal communications control block:
  116570. Offset Size Description (Table 03324)
  116571. 00h WORD subfunction number
  116572. 02h WORD magic number (FEFEh)
  116573. 04h WORD (ret) result, should be set to 0 before calling
  116574. 06h WORD reserved (will be set to client DS)
  116575. 08h WORD caller's code segment if function 000Bh, 0 else
  116576. 0Ah WORD pointer to parameter block
  116577. 0Ch WORD reserved (segment of parameter block; will be set to client DS)
  116578. 0Eh WORD StreetTalk handle
  116579. SeeAlso: #03323,#03444 at INT 61/AX=000Fh
  116580. --------N-610001SF0001-----------------------
  116581. INT 61 - Banyan VINES - "Sosock" - OPEN COMMUNICATIONS SOCKET
  116582. AX = 0001h subfn 0001h
  116583. DS:DX -> communications control block (function 0001h) (see #03326)
  116584. Return: AX = status (0000h-0002h,0098h,009Eh-00A2h) (see #03325)
  116585. Range: INT 60h to INT 66h
  116586. Note: The Banyan interrupt handler is identified by the string "BANV" in
  116587. the four bytes immediately preceding the interrupt handler
  116588. SeeAlso: AX=0001h/SF=0002h,AX=0001h/SF=0008h,INT 15/AX=DE2Eh
  116589. (Table 03325)
  116590. Values for VINES status:
  116591. 0000h successful
  116592. 0001h service not installed
  116593. 0002h invalid service ID
  116594. 0003h invalid function
  116595. 0004h-000Ah reserved for BANV interface errors
  116596. 0097h invalid socket identifier
  116597. 0098h resource already in use
  116598. 009Bh destination node unreachable
  116599. 009Ch message overflow
  116600. 009Dh destination socket nonexistent
  116601. 009Eh address family does not exist
  116602. 009Fh socket type does not exist
  116603. 00A0h protocol does not exist
  116604. 00A1h no more sockets available
  116605. 00A2h no more buffer space available
  116606. 00A3h timeout
  116607. 00A5h resource not available
  116608. 00A6h internal communication failure
  116609. 00B1h resource disconnect
  116610. Format of VINES control block to open socket:
  116611. Offset Size Description (Table 03326)
  116612. 00h WORD 0001h
  116613. 02h WORD pointer to argument block
  116614. 04h WORD error return code
  116615. 06h 4 BYTEs reserved
  116616. SeeAlso: #03327
  116617. Format of VINES argument block for opening socket:
  116618. Offset Size Description (Table 03327)
  116619. 00h WORD pointer to 2-byte buffer for socket identifier
  116620. 02h WORD address family
  116621. 0003h Banyan
  116622. 04h WORD socket type
  116623. in address family 0003h
  116624. 0001h IPC socket
  116625. 0002h SPP socket
  116626. 06h WORD protocol number
  116627. FFFFh default
  116628. 08h WORD pointer to 16-byte buffer for socket address (see #03328)
  116629. 0Ah WORD local port number
  116630. 0000h if service should assign transient port number
  116631. 0001h to 01FFh well-known port number (assigned by Banyan)
  116632. SeeAlso: #03326
  116633. Format of Banyan VINES IPC port:
  116634. Offset Size Description (Table 03328)
  116635. 00h WORD address family (always 0003h for Banyan ports)
  116636. 04h 4 BYTEs network number (server's serial number)
  116637. 06h WORD subnet number (0001h = server, 8000h-FFFEh = PC)
  116638. 08h WORD port ID (0001h-01FFh for "well-known" ports)
  116639. 0Ah BYTE hop count
  116640. 0Bh 5 BYTEs filler
  116641. SeeAlso: #03333
  116642. --------N-610001SF0002-----------------------
  116643. INT 61 - Banyan VINES - "Sosend" - INITIATE OUTPUT EVENT
  116644. AX = 0001h subfn 0002h
  116645. DS:DX -> communications control block (function 0002h) (see #03329)
  116646. Return: AX = status (0000h-0002h,0097h,009Bh-009Dh,00A2h,00A3h,00B1h)
  116647. (see #03325)
  116648. Range: INT 60h to INT 66h
  116649. Note: The Banyan interrupt handler is identified by the string "BANV" in
  116650. the four bytes immediately preceding the interrupt handler
  116651. SeeAlso: AX=0001h/SF=0001h,AX=0001h/SF=0005h
  116652. Format of VINES control block for subfunction 0002h:
  116653. Offset Size Description (Table 03329)
  116654. 00h WORD 0002h
  116655. 02h WORD pointer to argument block (see #03330)
  116656. 04h WORD error return code (0000h,0097h,00A2h,00A3h,00A5h,00A6h,00B1h)
  116657. (see #03325)
  116658. 06h 4 BYTEs reserved
  116659. SeeAlso: #03334
  116660. Format of VINES argument block for subfunction 0002h:
  116661. Offset Size Description (Table 03330)
  116662. 00h WORD routine metric
  116663. 02h WORD error return code
  116664. 04h WORD socket identifier
  116665. 06h WORD pointer to send buffer (see #03332)
  116666. 08h WORD length of send buffer
  116667. 0Ah WORD message request flags (see #03331)
  116668. 0Ch 16 BYTEs socket address (see #03333)
  116669. 1Ch WORD timeout value in multiples of 200ms
  116670. 1Eh WORD connection identifier
  116671. 20h WORD type of request
  116672. 0001h send message
  116673. 0002h establish a virtual connection
  116674. 0003h terminate a virtual connection
  116675. SeeAlso: #03329,#03335
  116676. Bitfields for message request flags:
  116677. Bit(s) Description (Table 03331)
  116678. 0 async request
  116679. 1 reliable message
  116680. 2 flush receive buffer on overflow
  116681. 3 end of user message received
  116682. 4 vectored request (if set, send buffer contains buffer descriptors)
  116683. 5 connection-specific receive
  116684. 6 change to connection-specific receive mode
  116685. SeeAlso: #03330,#03335
  116686. Format of buffer descriptor:
  116687. Offset Size Description (Table 03332)
  116688. 00h WORD data segment
  116689. 02h WORD buffer pointer
  116690. 04h WORD buffer length
  116691. 06h WORD character count
  116692. SeeAlso: #03330
  116693. Format of VINES socket address for unreliable datagrams:
  116694. Offset Size Description (Table 03333)
  116695. 00h WORD 0003h address family
  116696. 02h DWORD FFFFFFFFh network number
  116697. 06h WORD FFFFh subnet number
  116698. 08h WORD local port number
  116699. 0Ah BYTE 00h-0Fh hop count
  116700. 0Bh 5 BYTEs 0000h filler
  116701. SeeAlso: #03328
  116702. --------N-610001SF0003-----------------------
  116703. INT 61 - Banyan VINES - "Sorec" - RECEIVE INPUT EVENT NOTIFICATION
  116704. AX = 0001h subfn 0003h
  116705. DS:DX -> communications control block (function 0003h) (see #03334)
  116706. Return: AX = status (00-0Ah,97h,A2h,A3h) (see #03325)
  116707. Range: INT 60h to INT 66h
  116708. Note: The Banyan interrupt handler is identified by the string "BANV" in
  116709. the four bytes immediately preceding the interrupt handler
  116710. SeeAlso: AX=0001h/SF=0002h
  116711. Format of VINES control block for subfunction 0003h:
  116712. Offset Size Description (Table 03334)
  116713. 00h WORD 0003h
  116714. 02h WORD pointer to argument block (see #03335)
  116715. 04h WORD error return code (0000h,0097h,00A2h,00A3h,00A5h,00A6h,00B1h)
  116716. (see #03325)
  116717. 06h 4 BYTEs reserved
  116718. SeeAlso: #03329,#03335,#03337
  116719. Format of VINES argument block for subfunction 0003h:
  116720. Offset Size Description (Table 03335)
  116721. 00h WORD character count
  116722. 02h WORD error return code
  116723. 04h WORD socket identifier
  116724. 06h WORD pointer to receive buffer (see #03336)
  116725. 08h WORD length of receive buffer
  116726. 0Ah WORD message request flags (see #03331)
  116727. 0Ch 16 BYTEs socket address (see #03328)
  116728. 1Ch WORD timeout value in multiples of 200ms
  116729. 1Eh WORD connection identifier
  116730. 20h WORD type of response
  116731. 0001h message received
  116732. 0002h virtual connection established
  116733. 0003h virtual connection terminated
  116734. SeeAlso: #03334,#03338
  116735. Format of buffer descriptor:
  116736. Offset Size Description (Table 03336)
  116737. 00h WORD data segment
  116738. 02h WORD buffer pointer
  116739. 04h WORD buffer length
  116740. 06h WORD character count
  116741. SeeAlso: #03335
  116742. --------N-610001SF0004-----------------------
  116743. INT 61 - Banyan VINES - "Soclose" - CLOSE A SOCKET
  116744. AX = 0001h subfn 0004h
  116745. DS:DX -> communications control block (function 0004h) (see #03337)
  116746. Return: AX = status (0000h-000Ah,0097h) (see #03325)
  116747. Range: INT 60h to INT 66h
  116748. Note: The Banyan interrupt handler is identified by the string "BANV" in
  116749. the four bytes immediately preceding the interrupt handler
  116750. SeeAlso: AX=0001h/SF=0001h,INT 15/AX=DE2Eh
  116751. Format of VINES control block to close socket:
  116752. Offset Size Description (Table 03337)
  116753. 00h WORD 0004h
  116754. 02h WORD pointer to argument block (see #03338)
  116755. 04h WORD error return code (see #03325)
  116756. 06h 4 BYTEs reserved
  116757. SeeAlso: #03334,#03340
  116758. Format of VINES argument block for closing socket:
  116759. Offset Size Description (Table 03338)
  116760. 00h WORD socket identifier
  116761. SeeAlso: #03335,#03337,#03341
  116762. --------N-610001SF0005-----------------------
  116763. INT 61 - Banyan VINES - "Sowait" - WAIT FOR ASYNCHRONOUS EVENT COMPLETION
  116764. AX = 0001h subfn 0005h
  116765. DS:DX -> communications control block (see #03340)
  116766. Return: AX = status (0000h-000Ah,00A2h,00A3h) (see #03339)
  116767. Desc: returns results for all asynchronous operations invoked from the
  116768. data segment used for this call
  116769. Range: INT 60h to INT 66h
  116770. Notes: The Banyan interrupt handler is identified by the string "BANV" in
  116771. the four bytes immediately preceding the interrupt handler
  116772. SeeAlso: AX=0001h/SF=0002h,AX=0001h/SF=0009h
  116773. (Table 03339)
  116774. Values for VINES function status:
  116775. 0000h successful
  116776. 0001h service not installed
  116777. 0002h invalid service ID
  116778. 0003h-000Ah reserved for BANV interface errors
  116779. 00A2h no more buffer space available
  116780. 00A3h timeout event
  116781. Format of VINES control block for subfunction 0005h:
  116782. Offset Size Description (Table 03340)
  116783. 00h WORD 0005h
  116784. 02h WORD pointer to argument block (see #03341)
  116785. 04h WORD error return code
  116786. 06h 4 BYTEs reserved
  116787. SeeAlso: #03337,#03342
  116788. Format of VINES argument block for subfunction 0005h:
  116789. Offset Size Description (Table 03341)
  116790. 00h WORD pointer to WORD event pointer
  116791. 02h WORD timeout in multiples of 200ms, FFFFh = infinite
  116792. SeeAlso: #03338,#03340
  116793. --------N-610001SF0008-----------------------
  116794. INT 61 - Banyan VINES - "Sosession" - REGISTER APPLICATION WITH COMM SERVICE
  116795. AX = 0001h subfn 0008h
  116796. DS:DX -> communications control block (function 0008h) (see #03342)
  116797. Return: AX = status
  116798. 0000h successful
  116799. 00A2h no more buffer space available
  116800. Range: INT 60h to INT 66h
  116801. Note: The Banyan interrupt handler is identified by the string "BANV" in
  116802. the four bytes immediately preceding the interrupt handler
  116803. SeeAlso: AX=0001h/SF=0001h,AX=0001h/SF=0009h
  116804. Format of VINES control block for subfunction 0006h:
  116805. Offset Size Description (Table 03342)
  116806. 00h WORD 0008h
  116807. 02h WORD process type
  116808. 0001h transient process
  116809. 0002h resident process
  116810. 04h WORD error return code
  116811. 06h 4 BYTEs reserved
  116812. SeeAlso: #03340,#03343
  116813. --------N-610001SF000B-----------------------
  116814. INT 61 - Banyan VINES - "Soint" - SET USER COMPLETION FUNCTION
  116815. AX = 0001h subfn 000Bh
  116816. DS:DX -> communications control block (function 000Bh) (see #03343)
  116817. Return: AX = status (00h-0Ah,A2h) (see #03339)
  116818. Range: INT 60h to INT 66h
  116819. Note: The Banyan interrupt handler is identified by the string "BANV" in
  116820. the four bytes immediately preceding the interrupt handler
  116821. SeeAlso: AX=0001h/SF=0005h,AX=0001h/SF=0008h
  116822. Format of VINES control block for subfunction 000Bh:
  116823. Offset Size Description (Table 03343)
  116824. 00h WORD 000Bh
  116825. 02h WORD pointer to argument block (see #03344)
  116826. 04h WORD error return code (see #03325)
  116827. 06h 2 BYTEs reserved
  116828. 08h WORD user CS register
  116829. SeeAlso: #03342
  116830. Format of VINES argument block for subfunction 000Bh:
  116831. Offset Size Description (Table 03344)
  116832. 00h WORD pointer to user interrupt function (see #03345)
  116833. 02h WORD pointer to user stack
  116834. 04h WORD initial timeout value in multiples of 200ms, FFFFh = infinite
  116835. SeeAlso: #03344
  116836. (Table 03345)
  116837. Values FAR user function is invoked with:
  116838. SS = DS = ES = segment of control block
  116839. STACK: DWORD return address
  116840. WORD argument pointer (sosend or sorec argument block)
  116841. WORD error return code
  116842. 0000h argument pointer is valid
  116843. 00A3h timeout
  116844. --------V-610001-----------------------------
  116845. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - CENTER ZOOM WINDOW
  116846. AX = 0001h
  116847. BX = X coordinate to center
  116848. CX = Y coordinate to center
  116849. Desc: Positions the zoom window such that the specified window-relative
  116850. coordinates appear as close as possible to the center of the
  116851. display. Useful for scrolling and panning.
  116852. Range: unknown
  116853. Notes: INT 61h is the default interrupt; the actual interrupt number can be
  116854. obtained by calling INT 16/AH=FFh
  116855. not all vendors include the Tseng TSR which supports these functions
  116856. SeeAlso: AX=0000h"OPTIMA",AX=0002h"OPTIMA",AX=0005h"OPTIMA"
  116857. SeeAlso: INT 16/AH=FFh"OPTIMA"
  116858. --------I-610002-----------------------------
  116859. INT 61 - Banyan VINES - 3270 INTERFACE
  116860. AX = 0002h
  116861. BH = function number (see #03346)
  116862. DS:CX -> argument block (except BH=00h,1Ah) (see #03348)
  116863. Return: AX = status (see #03347)
  116864. Notes: Either 3270/SNA or 3270/BSC interface may use AX=0002h, depending on
  116865. which is loaded first. The other interface will use AX=000Ah
  116866. Status codes greater than 63h indicate an inconsistency in the 3270/SNA
  116867. or 3270/BSC resident driver, which must be reloaded by the user
  116868. (Table 03346)
  116869. Values for VINES 3270 interface function number:
  116870. 00h "pi2reset" reset 3270/SNA or 3270/BSC driver
  116871. 02h "pi2bsc" (3270/BSC only)
  116872. 03h "pi2get" get information stored in 3270 resident driver
  116873. 04h "pi2put" store information in 3270 resident driver
  116874. 05h "pi2gcur" get current screen position
  116875. 07h "pi2sdat" send data keystroke
  116876. 08h "pi2scom" send command keystroke
  116877. 0Ah "pi2field" get field info for arbitrary screen positions
  116878. 0Fh "pi2stat" get logical unit/device status
  116879. 12h "pi2nlus" determine logical unit/device assignment
  116880. 13h "pi2gate" specifies comm port address to gateway service
  116881. 14h "pi2attach" attach a logical unit/device
  116882. 15h "pi2sdev" save logical unit/device info in resident driver
  116883. (not supported in >3.0)
  116884. 16h "pi2gdev" get device information (not supported in >3.0)
  116885. 17h "pi2luinfo" get info about specific logical unit/device
  116886. 18h "pi2gerr" get finer error detail
  116887. 19h "pi2dhold" (3270/SNA only) holds a 3270 device
  116888. 1Ah "pi2shut" release memory-resident module
  116889. 1Ch "pi2sprof" save profile info in res driver (not supp in >3.0)
  116890. 1Dh "pi2gprof" get prevsly stored profile info (not supp in >3.0)
  116891. (Table 03347)
  116892. Values for VINES 3270 status:
  116893. 0000h successful
  116894. 000Bh invalid parameter or data does not fit data area
  116895. 000Ch another code path currently active in resident driver
  116896. 000Dh operation currently not allowed
  116897. 0032h encountered connection disconnect error
  116898. 0033h encountered "sosend" completion error
  116899. 0034h encountered "sosend" communication error
  116900. 0035h attach request refused. extended error info via "pi2gerr":
  116901. 01h resource unavailable
  116902. 02h invalid type
  116903. 03h version mismatch
  116904. 04h invalid logical unit number
  116905. 05h error during ARL processing
  116906. 06h no access for user
  116907. 0071h encountered "sosock" error
  116908. 0072h encountered unrecognizable error
  116909. 0073h encountered "sowait" error (extended info via "pi2gerr")
  116910. 0074h encountered invalid type-of-request on "sowait"
  116911. 0075h encountered "sorec" error (extended info via "pi2gerr")
  116912. 0076h encountered "sorec" completion error (ext info via "pi2gerr")
  116913. 0077h encountered connection request
  116914. 0078h encountered unrecognizable data
  116915. 0079h encountered unknown connection ID (ext info via "pi2gerr")
  116916. SeeAlso: #03325
  116917. Format of argument block for BH=03h,04h:
  116918. Offset Size Description (Table 03348)
  116919. 00h WORD size of data area (max 256)
  116920. 02h N BYTEs data area
  116921. SeeAlso: #03349,#03350,#03351
  116922. Format of argument block for BH=05h:
  116923. Offset Size Description (Table 03349)
  116924. 00h WORD logical unit/device number
  116925. 02h WORD pointer to WORD buffer for cursor index
  116926. 04h WORD pointer to BYTE buffer for current field attribute
  116927. SeeAlso: #03348,#03350,#03351
  116928. Format of argument block for BH=07h:
  116929. Offset Size Description (Table 03350)
  116930. 00h WORD logical unit/device number
  116931. 02h WORD ASCII data byte
  116932. 04h WORD pointer to WORD count of characters which will need updating
  116933. SeeAlso: #03348,#03349,#03351
  116934. Format of argument block for BH=08h:
  116935. Offset Size Description (Table 03351)
  116936. 00h WORD logical unit/device number
  116937. 02h WORD 3270 keystroke (see #03352)
  116938. SeeAlso: #03348,#03349,#03350,#03353
  116939. (Table 03352)
  116940. Values for 3270 keystroke:
  116941. 0000h Enter
  116942. 0001h Clear
  116943. 0002h PA1
  116944. 0003h PA2
  116945. 0004h PA3
  116946. 0005h PF1
  116947. ...
  116948. 001Ch PF24
  116949. 001Dh CSELECT (cursor select)
  116950. 001Eh Insert
  116951. 001Fh Delete
  116952. 0020h EOField
  116953. 0021h EINPUT (erase input)
  116954. 0022h Reset
  116955. 0023h Attention
  116956. 0024h SysReq
  116957. 0025h Duplicate
  116958. 0026h Fieldmark
  116959. 0027h Home
  116960. 0028h NextLine
  116961. 0029h Tab
  116962. 002Ah BackTab
  116963. 002Bh cursor up
  116964. 002Ch cursor down
  116965. 002Dh cursor right
  116966. 002Eh cursor left
  116967. 002Fh double cursor right
  116968. 0030h double cursor left
  116969. 0031h PRINT
  116970. 0032h CANCEL
  116971. 0033h Backspace
  116972. Format of argument block for BH=0Ah:
  116973. Offset Size Description (Table 03353)
  116974. 00h WORD logical unit/device number
  116975. 02h WORD screen index
  116976. 04h WORD pointer to WORD buffer for field length
  116977. 06h WORD pointer to WORD buffer for offset in screen of field start
  116978. SeeAlso: #03351,#03354
  116979. Format of argument block for BH=0Fh:
  116980. Offset Size Description (Table 03354)
  116981. 00h WORD logical unit/device number
  116982. 02h WORD clear mask (clear these bits of status after returning status)
  116983. 04h WORD pointer to WORD buffer for device status (see #03355)
  116984. SeeAlso: #03353,#03356
  116985. Bitfields for Banyan 3270 device status:
  116986. Bit(s) Description (Table 03355)
  116987. 10 status modified
  116988. 9 buffer modified
  116989. 8 set cursor
  116990. 5 sound alarm
  116991. 1-0 size of print line for printer logical units
  116992. 00 unformatted line
  116993. 01 40-character line
  116994. 10 64-character line
  116995. 11 80-character line
  116996. Format of argument block for BH=12h:
  116997. Offset Size Description (Table 03356)
  116998. 00h WORD pointer to WORD buffer for number of logical units or devices
  116999. 02h WORD pointer to WORD buffer for version number
  117000. 04h WORD pointer to 64-byte buffer for logical unit/device list
  117001. SeeAlso: #03354,#03357
  117002. Format of argument block for BH=13h:
  117003. Offset Size Description (Table 03357)
  117004. 00h 16 BYTEs communications port address (see #03328)
  117005. SeeAlso: #03356,#03358
  117006. Format of argument block for BH=14h:
  117007. Offset Size Description (Table 03358)
  117008. 00h WORD logical unit/device number
  117009. 0000h attach any free device of the specified type
  117010. 02h WORD logical unit/device type
  117011. (3270/SNA) 01h, 02h, or 03h
  117012. (3270/BSC) 02h display
  117013. (3270/BSC) 03h printer
  117014. 04h WORD pointer to WORD buffer for attached logical unit/device number
  117015. SeeAlso: #03357,#03359
  117016. Format of argument block for BH=16h:
  117017. Offset Size Description (Table 03359)
  117018. 00h WORD pointer to 18-byte buffer for device block (see #03364)
  117019. first WORD must be set to desired logical unit/device number
  117020. SeeAlso: #03358,#03360
  117021. Format of argument block for BH=17h:
  117022. Offset Size Description (Table 03360)
  117023. 00h WORD logical unit/device number
  117024. 02h WORD pointer to information block in caller's DS (see #03365)
  117025. SeeAlso: #03359,#03361
  117026. Format of argument block for BH=18h:
  117027. Offset Size Description (Table 03361)
  117028. 00h WORD pointer to WORD buffer for major error code
  117029. 02h WORD pointer to WORD buffer for minor error code
  117030. SeeAlso: #03360,#03362
  117031. Format of argument block for BH=19h:
  117032. Offset Size Description (Table 03362)
  117033. 00h WORD logical unit/device number
  117034. SeeAlso: #03361,#03363
  117035. Format of argument block for BH=1Ch,1Dh:
  117036. Offset Size Description (Table 03363)
  117037. 00h WORD pointer to profile block in caller's DS (see #03368)
  117038. SeeAlso: #03348,#03362
  117039. Format of device block, argument block for BH=15h:
  117040. Offset Size Description (Table 03364)
  117041. 00h WORD logical unit/device number
  117042. 02h WORD logical unit/device type
  117043. 04h WORD display model number
  117044. 06h WORD numeric checking
  117045. 08h WORD status line
  117046. 0Ah BYTE unprotected normal field attribute
  117047. 0Bh BYTE unprotected intensified field attribute
  117048. 0Ch BYTE protected normal field attribute
  117049. 0Dh BYTE protected intensified field attribute
  117050. 0Eh WORD reserved
  117051. 10h WORD printer port number
  117052. Format of information block:
  117053. Offset Size Description (Table 03365)
  117054. 00h WORD device model number
  117055. 02h DWORD screen buffer pointer
  117056. 06h DWORD status line pointer (see #03366)
  117057. 0Ah DWORD reserved
  117058. Format of Banyan VINES 3270 status line:
  117059. Offset Size Description (Table 03366)
  117060. 00h BYTE comm line status
  117061. 00h inactive
  117062. 01h active
  117063. 01h BYTE activation level
  117064. 01h physical unit activated
  117065. 02h logical unit also activated
  117066. 03h session is bound
  117067. 02h BYTE data traffic state
  117068. 00h inactive
  117069. 01h active
  117070. 03h BYTE screen ownership
  117071. 00h SLU->PLU session owns screen
  117072. 01h SLU->SSCP session owns screen
  117073. 04h BYTE keyboard status (see #03367)
  117074. 05h BYTE insert mode
  117075. 01h if in insert mode
  117076. 06h BYTE numeric
  117077. 01h if current screen buffer is numeric only
  117078. 07h BYTE printer status
  117079. 00h printer not assigned
  117080. 01h printer is inactive
  117081. 02h printer error
  117082. 03h currently printing
  117083. 04h printer is busy
  117084. 05h printer is very busy
  117085. 08h BYTE printer assignment
  117086. 09h BYTE maximum size of network name
  117087. 0Ah N BYTEs ASCIZ network name
  117088. BYTE maximum size of message window
  117089. M BYTEs null-terminated message window
  117090. BYTE code set
  117091. 00h EBCDIC
  117092. 01h ASCII
  117093. M BYTEs extended attributes
  117094. 01h extended attributes are in effect (stored at screen+1920)
  117095. each extended attribute specifies
  117096. bits 0,1: 00=normal, 01=blink, 10=reverse, 11=underscor
  117097. bits 2-4: 000=default,001=blue,010=red,011=pink,
  117098. 100=green,101=turquoise,110=yellow,111=white
  117099. BYTE extended color
  117100. 01h other than base color is in effect
  117101. (Table 03367)
  117102. Values for Banyan VINES 3270 keyboard status:
  117103. 00h UNLOCK - ready to accept data
  117104. 01h TIME - aid was struck
  117105. 02h SYSTEM - received response no restore
  117106. 03h FUNCTION - unavailable keyboard function
  117107. 04h INPUT - not currently used
  117108. 05h ENDFIELD - field filled in insert mode
  117109. 06h PROTECTED - attempt to enter in protected field
  117110. 07h NUMERIC - attempt to enter in numeric field
  117111. 08h PROGRAM - error in outbound data stream
  117112. Format of Banyan VINES 3270 profile block:
  117113. Offset Size Description (Table 03368)
  117114. 00h 64 BYTEs gateway service name
  117115. 40h 16 BYTEs gateway comm port address
  117116. 50h WORD primary logical unit number
  117117. 52h WORD secondary logical unit type
  117118. 54h WORD secondary logical unit number
  117119. 56h WORD printer assignment
  117120. 58h 50 BYTEs keyboard definitions filename
  117121. --------V-610002-----------------------------
  117122. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - END ZOOM
  117123. AX = 0002h
  117124. Desc: switches off zoom and returns window to its original state
  117125. Range: unknown
  117126. Notes: INT 61h is the default interrupt; the actual interrupt number can be
  117127. obtained by calling INT 16/AH=FFh
  117128. not all vendors include the Tseng TSR which supports these functions
  117129. SeeAlso: AX=0000h"OPTIMA",INT 16/AH=FFh"OPTIMA"
  117130. --------N-610003SF00-------------------------
  117131. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INIT USER BUFFER PTR INFO
  117132. AX = 0003h subfn 00h
  117133. DS:BX -> argument block (see #03370)
  117134. Return: AX = status (see #03369)
  117135. SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=08h,AX=0003h/SF=0Dh
  117136. (Table 03369)
  117137. Values for VINES function status:
  117138. 0000h successful
  117139. 000Bh invalid session ID
  117140. 000Ch session not active
  117141. 000Dh invalid request type
  117142. 000Eh invalid parameters
  117143. 000Fh out of heap space
  117144. 0010h timeout on send
  117145. 0011h Banyan communications error
  117146. 0012h session not waiting for host
  117147. 0013h session is active
  117148. 0014h duplicate suspend session request
  117149. 0015h no session suspended
  117150. 0016h ring data buffer full
  117151. 0017h printer error encountered
  117152. 0018h Banyan communications error
  117153. 0019h unable to make connection
  117154. 001Ah no ring buffer specified at startup
  117155. 001Bh service is down
  117156. 001Ch invalid service name
  117157. 001Dh service is closed
  117158. 001Eh invalid connection name
  117159. 001Fh max session limit reached for service
  117160. 0020h access rights list for connection/dialout does not include this user
  117161. 0021h service not responding
  117162. 0022h missing telephone number
  117163. SeeAlso: #03325,#03373
  117164. Format of VINES argument block:
  117165. Offset Size Description (Table 03370)
  117166. 00h BYTE session ID (00h)
  117167. 01h BYTE 00h (func "initialize user buffer pointer information area")
  117168. 02h WORD -> user buffer ptr info area in caller's current DS (see #03371)
  117169. Format of user buffer ptr info area:
  117170. Offset Size Description (Table 03371)
  117171. 00h WORD flags
  117172. 0000h don't read interface's data buffer
  117173. 0001h read data buffer
  117174. 02h DWORD pointer to ring buffer
  117175. 06h WORD length of ring buffer
  117176. 08h WORD ring buffer offset to last byte read by caller
  117177. 0Ah DWORD pointer to WORD containing offset of last byte
  117178. in ring buffer filled
  117179. 0Eh DWORD pointer to screen buffer
  117180. 12h DWORD pointer to field containing cursor position
  117181. 16h DWORD pointer to terminal status area (see #03372)
  117182. Format of VINES terminal status area:
  117183. Offset Size Description (Table 03372)
  117184. 00h BYTE status of session: 4Eh=oNline, 46h=oFfline, 57h=Waiting
  117185. 01h BYTE terminal type (00h=VT100, 01h=TTY, 02h=VT52, 03h=IBM3101)
  117186. 02h BYTE current keypad mode (VT100,VT52 only)
  117187. 4Eh ("N") numeric mode
  117188. 41h ("A") application mode
  117189. 03h 4 BYTEs current state of LEDs (VT100 only)
  117190. 00h off
  117191. 01h on
  117192. 07h WORD line error count
  117193. 09h WORD primary error code (see #03373)
  117194. 0Bh WORD secondary error code
  117195. (Table 03373)
  117196. Values for VINES primary error code:
  117197. 0000h no error
  117198. 0001h unable to make connection
  117199. 0002h communications error, restart session
  117200. 0003h async terminal emulation service unavailable
  117201. 0004h lost carrier
  117202. 0005h all matching lines busy
  117203. 0006h no lines defined for connection name
  117204. 0007h no dial lines available on server
  117205. 0008h no matching dial lines available
  117206. 0009h out of heap space
  117207. 000Ah service error encountered
  117208. 000Bh timed out waiting to connect
  117209. 000Ch communications error
  117210. 000Dh communications error
  117211. 000Eh host wants file transferred to/from PC
  117212. 000Fh host software changed session parameter
  117213. 0010h host software changed tap settings
  117214. 0011h host software changed LED indicator
  117215. 0012h host software changed display background (secondary error code 00h for
  117216. white on black, 01h for black on white)
  117217. 0013h host software changed display option (secondary error code 00h for off,
  117218. 01h for on)
  117219. 0014h communications error
  117220. 0015h communications error
  117221. 0016h unable to make connection
  117222. 0017h unable to make connection
  117223. SeeAlso: #03369
  117224. --------N-610003SF01-------------------------
  117225. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SEND TO HOST
  117226. AX = 0003h subfn 01h
  117227. DS:BX -> argument block (see #03374)
  117228. Return: AX = status (see #03369)
  117229. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=02h,AX=0003h/SF=14h
  117230. Format of VINES argument block for Function 0003h subfunction 01h:
  117231. Offset Size Description (Table 03374)
  117232. 00h BYTE session ID (00h)
  117233. 01h BYTE 01h (function "send to host")
  117234. 02h BYTE type
  117235. 00h ASCII byte
  117236. 01h ASCII string
  117237. 02h terminal function code
  117238. 03h up arrow
  117239. 04h down arrow
  117240. 05h left arrow
  117241. 06h right arrow
  117242. 07h break
  117243. 03h N BYTEs type-specific info (see #03375)
  117244. Format of type-specific info:
  117245. Offset Size Description (Table 03375)
  117246. ---ASCII byte---
  117247. 03h BYTE byte to send to host
  117248. ---ASCII string---
  117249. 03h WORD length of string
  117250. 05h WORD pointer to string
  117251. ---terminal function code (VT52/VT100)---
  117252. 03h BYTE function code
  117253. 00h keypad 0
  117254. 01h keypad 1
  117255. ...
  117256. 09h keypad 9
  117257. 0Ah keypad -
  117258. 0Bh keypad ,
  117259. 0Ch keypad .
  117260. 0Dh keypad ENTER
  117261. 0Eh PF1
  117262. 0Fh PF2
  117263. 10h PF3
  117264. 11h PF4
  117265. ---terminal function code (IBM3101)---
  117266. 03h BYTE function code
  117267. 00h PF1
  117268. ...
  117269. 07h PF8
  117270. 08h Home
  117271. SeeAlso: #03374
  117272. --------N-610003SF02-------------------------
  117273. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - "CONTROL MONITOR"
  117274. AX = 0003h subfn 02h
  117275. DS:BX -> argument block (see #03376)
  117276. Return: AX = status (see #03369)
  117277. SeeAlso: AX=0003h/SF=03h,AX=0003h/SF=05h
  117278. Format of VINES argument block for Function 0003h subfunction 02h:
  117279. Offset Size Description (Table 03376)
  117280. 00h BYTE session ID (00h)
  117281. 01h BYTE 02h (function "control monitor")
  117282. 02h BYTE display flag
  117283. 00h don't display data received from host
  117284. 01h display data
  117285. --------N-610003SF03-------------------------
  117286. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - "FLOW CONTROL DATA"
  117287. AX = 0003h subfn 03h
  117288. DS:BX -> argument block (see #03377)
  117289. Return: AX = status (see #03369)
  117290. Desc: this function permits the caller to freeze/unfreeze the display and
  117291. the ring buffer
  117292. SeeAlso: AX=0003h/SF=02h,AX=0003h/SF=06h
  117293. Format of VINES argument block for Function 0003h subfunction 03h:
  117294. Offset Size Description (Table 03377)
  117295. 00h BYTE session ID (00h)
  117296. 01h BYTE 03h (function "flow control data")
  117297. 02h BYTE flow control flag
  117298. 00h allow characters to be put into display or ring buffer
  117299. 01h don't place any more characters into display or ring buffer
  117300. --------N-610003SF04-------------------------
  117301. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - END ACTIVE SESSION
  117302. AX = 0003h subfn 04h
  117303. DS:BX -> argument block (see #03378)
  117304. Return: AX = status (see #03369)
  117305. SeeAlso: AX=0003h/SF=0Ah,AX=0003h/SF=0Dh,AX=0003h/SF=0Fh
  117306. Format of VINES argument block for ending active session:
  117307. Offset Size Description (Table 03378)
  117308. 00h BYTE session ID (00h)
  117309. 01h BYTE 04h (function "end active session")
  117310. --------N-610003SF05-------------------------
  117311. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET SESSION PARAMETER
  117312. AX = 0003h subfn 05h
  117313. DS:BX -> argument block (see #03379)
  117314. Return: AX = status (see #03369)
  117315. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=06h,AX=0003h/SF=08h
  117316. Format of VINES argument block for setting session parameters:
  117317. Offset Size Description (Table 03379)
  117318. 00h BYTE session ID (00h)
  117319. 01h BYTE 05h (function "set session parameter")
  117320. 02h BYTE parameter number (see #03380)
  117321. 03h BYTE new parameter value
  117322. (Table 03380)
  117323. Values for parameter number:
  117324. 00h line speed (00h=any, 01h=50, 02h=110, 03h=134.5, 04h=150,
  117325. 05h=300, 06h=600, 07h=1200, 08h=2400, 09h=4800, 0Ah=9600)
  117326. 01h parity (00h=none, 01h=odd, 02h=even)
  117327. 02h duplex (00h=full, 01h=half)
  117328. 03h character size (00h=7 bits, 01h=8 bits)
  117329. 04h stop bits (00h=1, 01h=2)
  117330. 05h XON/XOFF flow control (00h=no, 01h=yes)
  117331. 07h intercharacter delay in tenths of a second
  117332. 08h interline delay in tenths of a second
  117333. 09h auto linefeed (00h=no, 01h=yes)
  117334. 0Ah filter control characters (00h=no, 01h=yes)
  117335. 0Bh terminal type (00h=VT100,01h=glassTTY,02h=VT52,03h=IBM3101)
  117336. 0Ch auto wrap (00h=no, 01h=yes)
  117337. 0Dh cursor shape (00h=underscore, 01h=block)
  117338. 0Eh character set (00h=UK, 01h=US ASCII)
  117339. 0Fh printer port (00h=LPT1, 01h=LPT2, 02h=LPT3)
  117340. SeeAlso: #03379
  117341. --------N-610003SF06-------------------------
  117342. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET SESSION PARAMETER
  117343. AX = 0003h subfn 06h
  117344. DS:BX -> argument block (see #03381)
  117345. Return: AX = status (see #03369)
  117346. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=05h,AX=0003h/SF=07h
  117347. Format of VINES argument block for getting session parameters:
  117348. Offset Size Description (Table 03381)
  117349. 00h BYTE session ID (00h)
  117350. 01h BYTE 06h (function "get session parameter")
  117351. 02h BYTE parameter number (see #03380)
  117352. 03h BYTE (ret) current parameter value
  117353. --------N-610003SF07-------------------------
  117354. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET TAB SETTINGS
  117355. AX = 0003h subfn 07h
  117356. DS:BX -> argument block (see #03382)
  117357. Return: AX = status (see #03369)
  117358. SeeAlso: AX=0003h/SF=05h,AX=0003h/SF=08h
  117359. Format of VINES argument block for setting tab settings:
  117360. Offset Size Description (Table 03382)
  117361. 00h BYTE session ID (00h)
  117362. 01h BYTE 07h (function "set tab settings")
  117363. 02h WORD pointer to 80-byte buffer in caller's current DS
  117364. each byte = 00h if no tab, 01h if tab at that position
  117365. --------N-610003SF08-------------------------
  117366. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET TAB SETTINGS
  117367. AX = 0003h subfn 08h
  117368. DS:BX -> argument block (see #03383)
  117369. Return: AX = status (see #03369)
  117370. SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=07h
  117371. Format of VINES argument block for getting tab settings:
  117372. Offset Size Description (Table 03383)
  117373. 00h BYTE session ID (00h)
  117374. 01h BYTE 08h (function "get tab settings")
  117375. 02h WORD pointer to 80-byte buffer in caller's current DS
  117376. each byte set to 00h if no tab, 01h if tab at that position
  117377. --------N-610003SF09-------------------------
  117378. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - REFRESH EMULATION SCREEN
  117379. AX = 0003h subfn 09h
  117380. DS:BX -> argument block (see #03384)
  117381. Return: AX = status (see #03369)
  117382. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=0Bh
  117383. Format of VINES argument block for Function 0003h subfunction 09h:
  117384. Offset Size Description (Table 03384)
  117385. 00h BYTE session ID (00h)
  117386. 01h BYTE 09h (function "refresh emulation screen")
  117387. --------N-610003SF0A-------------------------
  117388. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SUSPEND SESSION TEMPORARILY
  117389. AX = 0003h subfn 0Ah
  117390. DS:BX -> argument block (see #03385)
  117391. Return: AX = status (see #03369)
  117392. SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=09h,AX=0003h/SF=0Bh,AX=0003h/SF=0Dh
  117393. Format of VINES argument block:
  117394. Offset Size Description (Table 03385)
  117395. 00h BYTE session ID (00h)
  117396. 01h BYTE 0Ah (function "suspend session temporarily")
  117397. 02h WORD size of session information to be saved
  117398. 04h WORD pointer to buffer in caller's DS
  117399. --------N-610003SF0B-------------------------
  117400. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - RESUME SUSPENDED SESSION
  117401. AX = 0003h subfn 0Bh
  117402. DS:BX -> argument block (see #03386)
  117403. Return: AX = status (see #03369)
  117404. SeeAlso: AX=0003h/SF=09h,AX=0003h/SF=0Ah
  117405. Format of VINES argument block:
  117406. Offset Size Description (Table 03386)
  117407. 00h BYTE session ID (00h)
  117408. 01h BYTE 0Bh (function "restore previously suspended session")
  117409. 02h WORD size of buffer into which session info is restored
  117410. 04h WORD pointer to buffer in caller's DS
  117411. --------N-610003SF0C-------------------------
  117412. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET SCROLL LOCK CHECKING
  117413. AX = 0003h subfn 0Ch
  117414. DS:BX -> argument block (see #03387)
  117415. Return: AX = status (see #03369)
  117416. SeeAlso: AX=0003h/SF=00h
  117417. Format of VINES argument block:
  117418. Offset Size Description (Table 03387)
  117419. 00h BYTE session ID (00h)
  117420. 01h BYTE 0Ch (function "set state of scroll lock checking")
  117421. 02h BYTE check_scroll_lock flag
  117422. 00h off
  117423. 01h on (display of host data stopped while ScrollLock on)
  117424. --------N-610003SF0D-------------------------
  117425. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - EXIT EMULATION
  117426. AX = 0003h subfn 0Dh
  117427. DS:BX -> argument block (see #03388)
  117428. Return: AX = status (see #03369)
  117429. SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=0Ah
  117430. Format of VINES argument block:
  117431. Offset Size Description (Table 03388)
  117432. 00h BYTE session ID (00h)
  117433. 01h BYTE 0Dh (function "exit emulation")
  117434. --------N-610003SF0E-------------------------
  117435. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INTERRUPT ON CHAR FROM HOST
  117436. AX = 0003h subfn 0Eh
  117437. DS:BX -> argument block (see #03389)
  117438. Return: AX = status (see #03369)
  117439. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=14h
  117440. Format of VINES argument block:
  117441. Offset Size Description (Table 03389)
  117442. 00h BYTE session ID (00h)
  117443. 01h BYTE 0Eh (function "interrupt on character from host")
  117444. 02h DWORD pointer to routine to be called (0000h:0000h = don't call)
  117445. 06h DWORD stack pointer to use when call is made
  117446. --------N-610003SF0F-------------------------
  117447. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START A SESSION
  117448. AX = 0003h subfn 0Fh
  117449. DS:BX -> argument block (see #03390)
  117450. Return: AX = status (see #03369)
  117451. SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=0Bh
  117452. Format of VINES argument block:
  117453. Offset Size Description (Table 03390)
  117454. 00h BYTE session ID (00h)
  117455. 01h BYTE 0Fh (function "start a session")
  117456. 02h WORD pointer to information area in caller's current DS (see #03391)
  117457. Format of VINES information area:
  117458. Offset Size Description (Table 03391)
  117459. 00h WORD length of service name
  117460. 02h WORD pointer to service name in caller's DS
  117461. 04h BYTE type of connection (00h=connection name, 01h=dialout)
  117462. 05h WORD length of connection name/telephone number
  117463. 07h WORD pointer to connection name/telephone number
  117464. --------N-610003SF10-------------------------
  117465. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START/STOP PRINTING
  117466. AX = 0003h subfn 10h
  117467. DS:BX -> argument block (see #03392)
  117468. Return: AX = status (see #03369)
  117469. SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=13h
  117470. Format of VINES argument block:
  117471. Offset Size Description (Table 03392)
  117472. 00h BYTE session ID (00h)
  117473. 01h BYTE 10h (function "start/stop printing of data received from host")
  117474. 02h WORD print capture flag (00h=off, 01h=on)
  117475. --------N-610003SF11-------------------------
  117476. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET FILE TRANSFER PARAMETERS
  117477. AX = 0003h subfn 11h
  117478. DS:BX -> argument block (see #03393)
  117479. Return: AX = status (see #03369)
  117480. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=12h
  117481. Format of VINES argument block:
  117482. Offset Size Description (Table 03393)
  117483. 00h BYTE session ID (00h)
  117484. 01h BYTE 11h (function "get file transfer parameters")
  117485. 02h WORD pointer to info area in caller's current DS (see #03394)
  117486. Format of VINES info area:
  117487. Offset Size Description (Table 03394)
  117488. 00h BYTE protocol flag (00h none, 01h Kermit)
  117489. 01h BYTE direction flag (00h send, 01h receive)
  117490. 02h BYTE length of null-terminated PC filename
  117491. 03h DWORD pointer to null-terminated PC filename
  117492. 07h BYTE length of null-terminated host filename
  117493. 08h DWORD pointer to null-terminated host filename
  117494. --------N-610003SF12-------------------------
  117495. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET CONNECTION INFORMATION
  117496. AX = 0003h subfn 12h
  117497. DS:BX -> argument block (see #03395)
  117498. Return: AX = status (see #03369)
  117499. SeeAlso: AX=0003h/SF=11h,AX=0003h/SF=15h
  117500. Format of VINES argument block:
  117501. Offset Size Description (Table 03395)
  117502. 00h BYTE session ID (00h)
  117503. 01h BYTE 12h (function "get connection information")
  117504. 02h WORD offset of buffer for connection information (see #03396)
  117505. Format of VINES connection information:
  117506. Offset Size Description (Table 03396)
  117507. 00h WORD length of service name (returned)
  117508. 02h WORD pointer to 64-byte buffer for service name
  117509. 04h BYTE type of connection
  117510. 00h connection name
  117511. 01h dialout
  117512. 05h WORD length of connection name/telephone number
  117513. 07h WORD pointer to 64-byte buffer for name/telno
  117514. 09h BYTE server line number being used (returned)
  117515. --------N-610003SF13-------------------------
  117516. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START/STOP TRACING TRAFFIC
  117517. AX = 0003h subfn 13h
  117518. DS:BX -> argument block (see #03397)
  117519. Return: AX = status (see #03369)
  117520. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=0Eh
  117521. Format of VINES argument block:
  117522. Offset Size Description (Table 03397)
  117523. 00h BYTE session ID (00h)
  117524. 01h BYTE 13h (function "start/stop tracing data traffic in session")
  117525. 02h BYTE trace flag (00h=off, 01h=on)
  117526. --------N-610003SF14-------------------------
  117527. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INTERRUPT ON HOST MESSAGE
  117528. AX = 0003h subfn 14h
  117529. DS:BX -> argument block (see #03398)
  117530. Return: AX = status (see #03369)
  117531. SeeAlso: AX=0003h/SF=0Eh
  117532. Format of VINES argument block:
  117533. Offset Size Description (Table 03398)
  117534. 00h BYTE session ID (00h)
  117535. 01h BYTE 14h (function "interrupt on message from host")
  117536. 02h DWORD pointer to routine to be called (0000h:0000h = don't call)
  117537. 06h DWORD stack pointer to use when call is made
  117538. --------N-610003SF15-------------------------
  117539. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - RESET ERROR
  117540. AX = 0003h subfn 15h
  117541. DS:BX -> argument block (see #03399)
  117542. Return: AX = status (see #03369)
  117543. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=12h
  117544. Format of VINES argument block:
  117545. Offset Size Description (Table 03399)
  117546. 00h BYTE session ID (00h)
  117547. 01h BYTE 15h (function "reset error")
  117548. --------V-610003-----------------------------
  117549. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - REPORT ZOOM FACTOR
  117550. AX = 0003h
  117551. Return: AX = zoom factor
  117552. Desc: returns the current zoom factor
  117553. Range: unknown
  117554. Notes: INT 61h is the default interrupt; the actual interrupt number can be
  117555. obtained by calling INT 16/AH=FFh
  117556. not all vendors include the Tseng TSR which supports these functions
  117557. SeeAlso: AX=0000h"OPTIMA",AX=0005h"OPTIMA",INT 16/AH=FFh"OPTIMA"
  117558. --------N-610004-----------------------------
  117559. INT 61 - Banyan VINES - FILE SERVICE CONTROL
  117560. AX = 0004h
  117561. DS:DX -> request block (see #03401)
  117562. Return: AX = status (see #03400)
  117563. Notes: This service is handled by the redirector
  117564. The request dispatch table contains dummy entries for requests 0Ah,
  117565. 0Dh, 15h, 19h, and 1Ah, which always return error 0033h (invalid
  117566. request ID)
  117567. (Table 03400)
  117568. Values for Banyan VINES file service control status code:
  117569. 0000h successful
  117570. 0002h file not found
  117571. 0003h path not found
  117572. 000Fh invalid drive
  117573. 0015h drive not ready
  117574. 0033h invalid request ID
  117575. 0034h drive not connected
  117576. 0037h drive number out of range
  117577. 0038h drive number not available
  117578. 003Ah invalid operation
  117579. 0055h drive already connected
  117580. 0057h invalid number of entries
  117581. Format of Banyan VINES file service request block:
  117582. Offset Size Description (Table 03401)
  117583. 00h WORD request ID (1..28)
  117584. 02h n BYTES additional parameters and result buffer
  117585. --------N-610004SF0001-----------------------
  117586. INT 61 - Banyan VINES - SET DRIVE CONNECTION
  117587. AX = 0004h subfn 0001h
  117588. DS:DX -> request block (see #03402)
  117589. Return: AX = status (0000h,0037h,0038h,0055h) (see #03400)
  117590. Desc: Maps the specified file service to a DOS drive letter
  117591. Note: If an empty service name is specified, an existing connection will
  117592. be removed
  117593. SeeAlso: AX=0004h/SF=0002h
  117594. Format of VINES Function 0004h/Subfunction 0001h request block:
  117595. Offset Size Description (Table 03402)
  117596. 00h WORD 0001h
  117597. 02h BYTE drive number (0=default, 1=A, ...)
  117598. 03h 16 BYTEs reserved
  117599. 13h 64 BYTEs null-terminated file service name
  117600. 53h 5 BYTEs reserved
  117601. --------N-610004SF0002-----------------------
  117602. INT 61 - Banyan VINES - GET DRIVE CONNECTION
  117603. AX = 0004h subfn 0002h
  117604. DS:DX -> request block (see #03403)
  117605. Return: AX = status (0000h,0034h,0037h) (see #03400)
  117606. Desc: Returns the StreetTalk name of the associated file service
  117607. SeeAlso: AX=0004h/SF=0001h,AX=0004h/SF=0003h
  117608. Format of VINES Function 0004h/Subfunction 0002h request block:
  117609. Offset Size Description (Table 03403)
  117610. 00h WORD 0002h
  117611. 02h BYTE drive number (0=default, 1=A, ...)
  117612. 03h 16 BYTEs reserved
  117613. 13h 64 BYTEs buffer for null-terminated file service name
  117614. 53h 5 BYTEs reserved
  117615. --------N-610004SF0003-----------------------
  117616. INT 61 - Banyan VINES - GET NETWORK DRIVE MAP
  117617. AX = 0004h subfn 0003h
  117618. DS:DX -> request block (see #03404)
  117619. Return: AX = status
  117620. 0000h drive map returned in request block
  117621. Desc: Returns a bit map indicating which drive numbers are connected to a
  117622. file service
  117623. Note: Only bits 0-25 are significant
  117624. SeeAlso: AX=0004h/SF=0002h
  117625. Format of VINES Function 0004h/Subfunction 0003h request block:
  117626. Offset Size Description (Table 03404)
  117627. 00h WORD 0003h
  117628. 02h DWORD buffer for drive map (bit0=A, bit1=B, ...)
  117629. --------N-610004SF0004-----------------------
  117630. INT 61 - Banyan VINES - SET USER NAME
  117631. AX = 0004h subfn 0004h
  117632. DS:DX -> request block (see #03405)
  117633. Return: AX = status (0000h) (see #03400)
  117634. Notes: Other side effects, if any, not known
  117635. SeeAlso: AX=0004h/SF=0005h,#03431 [ID 0004h],AX=0007h/BX=0005h
  117636. Format of VINES Function 0004h/Subfunction 0004h request block:
  117637. Offset Size Description (Table 03405)
  117638. 00h WORD 0004h
  117639. 02h 64 BYTE null-terminated user name
  117640. --------N-610004SF0005-----------------------
  117641. INT 61 - Banyan VINES - GET USER NAME
  117642. AX = 0004h subfn 0005h
  117643. DS:DX -> request block (see #03406)
  117644. Return: AX = status (see also #03400)
  117645. 0000h user name returned in request block
  117646. Desc: Returns the StreetTalk name of the currently logged in user
  117647. SeeAlso: AX=0004h/SF=0004h,#03431 [ID 0004h],AX=0007h/BX=0005h
  117648. SeeAlso: AX=0004h/SF=0004h
  117649. Format of VINES Function 0004h/Subfunction 0005h request block:
  117650. Offset Size Description (Table 03406)
  117651. 00h WORD 0005h (subfunction "Get User Name")
  117652. 02h 64 BYTE buffer for null-terminated user name
  117653. --------N-610004SF0006-----------------------
  117654. INT 61 - Banyan VINES - TEST DRIVE CONNECTION
  117655. AX = 0004h subfn 0006h
  117656. DS:DX -> request block (see #03407)
  117657. Return: AX = status (see also #03400)
  117658. 0000h connection flag returned in request block
  117659. Desc: Returns a flag indicating if the drive is connected to a file service
  117660. SeeAlso: AX=0004h/SF=0007h
  117661. Format of VINES Function 0004h/Subfunction 0006h request block:
  117662. Offset Size Description (Table 03407)
  117663. 00h WORD 0006h (subfunction "Test Drive Connection")
  117664. 02h BYTE buffer for connection flag (1 = not connected, 2 = connected)
  117665. --------N-610004SF0007-----------------------
  117666. INT 61 - Banyan VINES - GET CONNECTION DATA STRUCTURES
  117667. AX = 0004h subfn 0007h
  117668. DS:DX -> request block (see #03408)
  117669. Return: AX = status (see also #03400)
  117670. 0000h pointer returned in request block
  117671. 0033h invalid request ID
  117672. Desc: Returns pointers to various internal data structures
  117673. Format of VINES Function 0004h/Subfunction 0007h request block:
  117674. Offset Size Description (Table 03408)
  117675. 00h WORD 0007h
  117676. 02h BYTE request ID (0..7) (see #03409)
  117677. 03h WORD buffer for pointer segment
  117678. 05h WORD buffer for pointer offset
  117679. SeeAlso: #03410,#03411
  117680. (Table 03409)
  117681. Values for VINES pointer ID:
  117682. 00h job file table ???
  117683. 01h drive handle table
  117684. 02h drive connection table
  117685. 03h IPC port of drive Z:
  117686. 04h end of drive connection table
  117687. 05h ???
  117688. 06h ???
  117689. 07h redirector data segment (offset=0)
  117690. SeeAlso: #03408
  117691. Format of VINES drive handle table:
  117692. Offset Size Description (Table 03410)
  117693. 00h BYTE handle to default drive (0 = not connected)
  117694. 01h BYTE handle to drive A: (0 = not connected)
  117695. ...
  117696. 1Ah BYTE handle to drive Z: (0 = not connected)
  117697. SeeAlso: #03411
  117698. Format of VINES drive connection table:
  117699. Offset Size Description (Table 03411)
  117700. 00h WORD file service type (?) (0001h if drive Z:, 0000h else)
  117701. 02h 16 BYTEs IPC port (contains the server serial number)
  117702. 12h 46 BYTEs ???
  117703. 40h 64 BYTEs null-terminated StreetTalk name of associated file service
  117704. 80h 64 BYTEs null-terminated root directory (/ROOT: parameter of SETDRIVE)
  117705. SeeAlso: #03410
  117706. --------N-610004SF0008-----------------------
  117707. INT 61 - Banyan VINES - GET SERVER SERIAL NUMBER
  117708. AX = 0004h subfn 0008h
  117709. DS:DX -> request block (see #03412)
  117710. Return: AX = status (0000h,000Fh,0015h) (see #03400)
  117711. Notes: The server ID is extracted from the IPC port address of the associated
  117712. file service stored in the drive connection table
  117713. The server serial number and the server subnet number are returned in
  117714. big-endian (Motorola) format (i.e. MSB first)
  117715. SeeAlso: AX=0004h/SF=0005h
  117716. Format of VINES request block for getting server serial number:
  117717. Offset Size Description (Table 03412)
  117718. 00h WORD 0008h
  117719. 02h WORD drive number (0=default, 1=A, ...)
  117720. 04h DWORD buffer for server serial number
  117721. 08h WORD buffer for server subnet number (always 0001h)
  117722. --------N-610004SF0009-----------------------
  117723. INT 61 - Banyan VINES - SET ??? PARAMETER
  117724. AX = 0004h subfn 0009h
  117725. DS:DX -> request block (see #03413)
  117726. Return: AX = status (0000h) (see #03400)
  117727. Notes: The specified WORD parameter is copied to offset 1702h of the
  117728. redirector code segment (revision 5.53)
  117729. SeeAlso: AX=0004h/SF=000Bh
  117730. Format of VINES Function 0004h/Subfunction 0009h request block:
  117731. Offset Size Description (Table 03413)
  117732. 00h WORD 0009h
  117733. 02h WORD parameter
  117734. --------N-610004SF000B-----------------------
  117735. INT 61 - Banyan VINES - GET ??? DRIVE PARAMETER
  117736. AX = 0004h subfn 000Bh
  117737. DS:DX -> request block (see #03414)
  117738. Return: AX = status (0000h,0034h,0037h) (see #03400)
  117739. Notes: This request returns a WORD value from the drive connection table
  117740. read from offset 0012h of the specified drive's entry (usually 0037h)
  117741. SeeAlso: AX=0004h/SF=0009h
  117742. Format of VINES Function 0004h/Subfunction 000Bh request block:
  117743. Offset Size Description (Table 03414)
  117744. 00h WORD 000Bh
  117745. 02h BYTE drive number (0=default, 1=A, ...)
  117746. 03h WORD buffer for parameter
  117747. --------N-610004SF000C-----------------------
  117748. INT 61 - Banyan VINES - LOGOUT FROM VINES
  117749. AX = 0004h subfn 000Ch
  117750. DS:DX -> request block (see #03415)
  117751. Return: AX = status 0000h (see #03400)
  117752. Desc: Terminates a running VINES session and clears all session specific
  117753. buffers
  117754. SeeAlso: AX=0004h/SF=0008h
  117755. Format of VINES Function 0004h/Subfunction 000Ch request block:
  117756. Offset Size Description (Table 03415)
  117757. 00h WORD 000Ch
  117758. --------N-610004SF000E-----------------------
  117759. INT 61 - Banyan VINES - GET ACCESS RIGHTS LIST (ARL)
  117760. AX = 0004h subfn 000Eh
  117761. DS:DX -> request block (see #03416)
  117762. Return: AX = status (see also #03400)
  117763. 0000h request has been processed
  117764. Desc: Returns the owner, group, and extended access rights for the specified
  117765. file or directory
  117766. Note: A status of 0000h does not necessarily indicate a successful request;
  117767. check the status word at offset 000Eh of the request block too
  117768. SeeAlso: AX=0004h/SF=000Fh
  117769. Format of VINES Function 0004h/Subfunction 000Eh request block:
  117770. Offset Size Description (Table 03416)
  117771. 00h WORD 000Eh (subfunction "Get Access Rights List")
  117772. 02h BYTE drive number (0=default, 1=A, ...)
  117773. 03h BYTE reserved
  117774. 04h DWORD pointer to path specification (drive letter ignored)
  117775. 08h DWORD pointer to ARL control block (see #03417)
  117776. 0Ch WORD buffer for number of ARL entries (1..5)
  117777. 0Eh WORD buffer for status (see #03418)
  117778. Format of ARL control block:
  117779. Offset Size Description (Table 03417)
  117780. 00h 64 BYTEs 1st StreetTalk name (user, list, or service)
  117781. 40h WORD 1st ARL
  117782. 42h 64 BYTEs 2nd StreetTalk name (user, list, or service)
  117783. 82h WORD 2nd ARL
  117784. 84h 64 BYTEs 3rd StreetTalk name (user, list, or service)
  117785. C4h WORD 3rd ARL
  117786. C6h 64 BYTEs 4th StreetTalk name (user, list, or service)
  117787. 106h WORD 4th ARL
  117788. 108h 64 BYTEs 5th StreetTalk name (user, list, or service)
  117789. 148h WORD 5th ARL
  117790. (Table 03418)
  117791. Values for VINES Get/Set Access Rights List status:
  117792. 0000h successful
  117793. 0002h file not found
  117794. 0003h path not found
  117795. 003Ah invalid operation
  117796. 0057h invalid number of entries
  117797. --------N-610004SF000F-----------------------
  117798. INT 61 - Banyan VINES - SET ACCESS RIGHTS LIST (ARL)
  117799. AX = 0004h subfn 000Fh
  117800. DS:DX -> request block (see #03419)
  117801. Return: AX = status (see also #03400)
  117802. 0000h request has been processed
  117803. Desc: Sets the owner, group, and extended access rights for the specified
  117804. file or directory
  117805. Note: A status of 0000h does not necessarily indicate a successful request;
  117806. check the status word at offset 000Eh of the request block too
  117807. If the number of ARL entries is less than 1 or greater than 5, error
  117808. 0057h (invalid number of entries) is returned
  117809. SeeAlso: AX=0004h/SF=000Eh
  117810. Format of VINES Function 0004h/Subfunction 000Fh request block:
  117811. Offset Size Description (Table 03419)
  117812. 00h WORD 000Fh
  117813. 02h BYTE drive number (0=default, 1=A, ...)
  117814. 03h BYTE reserved
  117815. 04h DWORD pointer to path specification (drive letter ignored)
  117816. 08h DWORD pointer to ARL control block (see #03417)
  117817. 0Ch WORD number of ARL entries (1..5)
  117818. 0Eh WORD buffer for status (see #03418)
  117819. --------N-610004SF0010-----------------------
  117820. INT 61 - Banyan VINES - FILE SERVICE CONTROL - ???
  117821. AX = 0004h subfn 0010h
  117822. DS:DX -> request block (see #03420)
  117823. Return: AX = status (see also #03400)
  117824. 0000h request has been processed
  117825. SeeAlso: AX=0004h/SF=000Fh
  117826. Format of VINES Function 0004h/Subfunction 0010h request block:
  117827. Offset Size Description (Table 03420)
  117828. 00h WORD 0010h
  117829. 02h BYTE drive number (0=default, 1=A, ...)
  117830. 03h BYTE reserved
  117831. 04h 64 BYTEs ???
  117832. 44h 16 BYTEs IPC port (see #03328 at AX=0001h"Sosock")
  117833. --------N-610004SF0013-----------------------
  117834. INT 61 - Banyan VINES - GET VALUE OF GLOBAL VARIABLE
  117835. AX = 0004h subfn 0013h
  117836. DS:DX -> request block (see #03421)
  117837. Return: AX = status (see also #03400)
  117838. 0000h successful
  117839. 0033h invalid request ID (returned if variable index out of range)
  117840. Desc: Returns the value of the specified global variable
  117841. Note: The data will be truncated if the specified buffer is not large enough.
  117842. Check the length word in the request block to find out how many
  117843. bytes should have been copied.
  117844. SeeAlso: AX=0004h/SF=0014h,AX=0006h
  117845. Format of request block:
  117846. Offset Size Description (Table 03421)
  117847. 00h WORD 0013h
  117848. 02h WORD variable index (0000h-001Fh) (see #03422)
  117849. 04h WORD buffer length (on exit set to # of bytes actually needed)
  117850. 06h DWORD far pointer to result buffer
  117851. SeeAlso: #03423
  117852. (Table 03422)
  117853. Values for variable indices:
  117854. Index Length Description
  117855. 0000h 1 ???
  117856. 0001h 16 StreetTalk port
  117857. 0002h 4 StreetTalk session handle
  117858. 0003h 6 colors
  117859. 0004h 64 StreetTalk name of currently logged in user
  117860. 0005h 0 old clear text password (not applicable)
  117861. 0006h 0 default group (not applicable)
  117862. 0007h 1 number of messages in message queue
  117863. 0008h 1 message flag
  117864. 0009h 16 TalkPort
  117865. 000Ah 2 TalkPort socket
  117866. 000Bh 64 StreetTalk name of mail service
  117867. 000Ch 2 message timeout
  117868. 000Dh 2 next message place
  117869. 000Eh 246 message queue (3 times 80 characters + 2 flag bytes)
  117870. 000Fh 14 system nonce
  117871. 0010h 2 failed login count
  117872. 0011h 1 new mail message received
  117873. 0012h 8 mail service capabilities
  117874. 0013h 3 printer port diverted
  117875. 0014h 32 international location
  117876. 0015h 16 IPC port of drive Z:
  117877. 0016h 1024 pointer to current directory table
  117878. 0017h 2 maximum number of file volume mappings
  117879. 0018h 24 routine to call back for messages (6 far pointers)
  117880. 0019h 4 current virtual machine
  117881. 001Ah 20 DOS redirector message bell tones
  117882. 001Bh 2 various flags used for internal communication
  117883. 001Ch 0 OS/2 client configuration (not applicable)
  117884. 001Dh 8 redirector/IFS file version
  117885. 001Eh 0 reserved (not applicable)
  117886. 001Fh 4 address of VVINESD.386 dispatch
  117887. --------N-610004SF0014-----------------------
  117888. INT 61 - Banyan VINES - SET VALUE OF GLOBAL VARIABLE
  117889. AX = 0004h subfn 0014h
  117890. DS:DX -> request block (see #03423)
  117891. Return: AX = status
  117892. 0000h successful
  117893. 0033h invalid request ID (returned if variable index out of range)
  117894. Desc: Assigns a new value to the specified global variable
  117895. Note: If the specified number of bytes to copy exceeds the size of the
  117896. destination variable, nothing will be copied.
  117897. SeeAlso: AX=0004h/SF=0013h,AX=0006h
  117898. Format of request block:
  117899. Offset Size Description (Table 03423)
  117900. 00h WORD 0014h
  117901. 02h WORD variable index (0000h-001Fh) (see #03422)
  117902. 04h WORD number of bytes to copy
  117903. 06h DWORD far pointer to new value
  117904. SeeAlso: #03421
  117905. --------N-610004SF0016-----------------------
  117906. INT 61 - Banyan VINES - GET NUMBER OF OPEN FILES ON REMOTE DRIVE
  117907. AX = 0004h subfn 0016h
  117908. DS:DX -> request block (see #03424)
  117909. Return: AX = status
  117910. 0000h open file count returned in request block
  117911. Desc: Counts the number of open files on the specified remote drive.
  117912. Note: No error is returned if the specified drive number is invalid or points
  117913. to a local drive. Use AX=0004h/SF=0006h to test if a given drive
  117914. number is assigned to a remote drive.
  117915. SeeAlso: AX=0004h/SF=0006h
  117916. Format of request block:
  117917. Offset Size Description (Table 03424)
  117918. 00h WORD 0016h
  117919. 02h BYTE drive number (0=default, 1=A:, ...)
  117920. 03h BYTE reserved
  117921. 04h WORD buffer for open file count
  117922. SeeAlso: #03426
  117923. --------N-610004SF0018-----------------------
  117924. INT 61 - Banyan VINES - SET UNIDENTIFIED INTERNAL FLAG
  117925. AX = 0004h subfn 0018h
  117926. DS:DX -> request block (see #03425)
  117927. Return: AX = status
  117928. 0000h success
  117929. Desc: Sets an unidentified BYTE variable in the redirector data segment to 1.
  117930. Note: In the VINES 5.53 "REDIR4" redirector, this variable is located at
  117931. DS:0B53.
  117932. Format of request block:
  117933. Offset Size Description (Table 03425)
  117934. 00h WORD 0018h
  117935. SeeAlso: #03426
  117936. --------N-610004SF001B-----------------------
  117937. INT 61 - Banyan VINES - UNIDENTIFIED DRIVE SPECIFIC FUNCTION
  117938. AX = 0004h subfn 001Bh
  117939. DS:DX -> request block (see #03426)
  117940. Return: AX = status
  117941. 0000h success
  117942. 0034h drive not connected
  117943. 0037h drive number out of range
  117944. Desc: The purpose of this function is not known.
  117945. Format of request block:
  117946. Offset Size Description (Table 03426)
  117947. 00h WORD 001Bh
  117948. 02h BYTE drive number (0=default, 1=A:, ...)
  117949. 03h BYTE ???
  117950. 04h WORD ???
  117951. 06h DWORD far pointer to data area
  117952. 0Ah WORD ???
  117953. 0Ch DWORD far pointer to data area
  117954. 10h WORD buffer for result
  117955. SeeAlso: #03424,#03426
  117956. --------N-610004SF001C-----------------------
  117957. INT 61 - Banyan VINES - UNIDENTIFIED FUNCTION
  117958. AX = 0004h subfn 001Ch
  117959. DS:DX -> request block (see #03427)
  117960. Return: AX = status
  117961. 0000h success
  117962. 0057h invalid number of entries
  117963. Desc: The purpose of this function is not known.
  117964. Format of request block:
  117965. Offset Size Description (Table 03427)
  117966. 00h WORD 001Ch
  117967. 02h WORD ???
  117968. 04h WORD ???
  117969. 06h WORD ???
  117970. 08h WORD ???
  117971. 0Ah DWORD far pointer to data area (14 bytes)
  117972. --------V-610004-----------------------------
  117973. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - ENTER SPECIFY MODE
  117974. AX = 0004h
  117975. Range: unknown
  117976. Notes: Specify Mode is enabled by hot key (seeAlso below), and allows
  117977. panning and zooming via the numeric keypad.
  117978. INT 61 is the default interrupt; the actual interrupt number can be
  117979. obtained by calling INT 16/AH=FFh
  117980. not all vendors include the Tseng TSR which supports these functions
  117981. SeeAlso: AX=0000h"OPTIMA",AX=0007h"OPTIMA",INT 16/AH=FFh"OPTIMA"
  117982. --------N-610005-----------------------------
  117983. INT 61 - Banyan VINES - PRINT SERVICE CONTROL
  117984. AX = 0005h
  117985. DS:DX -> request block (see #03428)
  117986. Return: AX = status
  117987. 0000h successful
  117988. 0001h network software not installed or incompatible
  117989. Notes: This service is handled by the redirector
  117990. The size of the request/result block depends on the selected function
  117991. and the value at offset 04h.
  117992. SeeAlso: INT 2F/AX=D702h
  117993. Format of VINES request/result block for printer control:
  117994. Offset Size Description (Table 03428)
  117995. 00h WORD function
  117996. 0201h "endspool" all data for a print job has been sent
  117997. (no bytes returned)
  117998. 0202h "deassign" the virtual printer port
  117999. Before the printer port is deassigned all data sent
  118000. to it is endspooled.
  118001. (no bytes returned)
  118002. 0205h "get_active" get currently active printer port
  118003. (1 byte required for result)
  118004. Returns: - the currently active printer port (1-3) (0 if
  118005. there is none)
  118006. 0207h ??? purpose unknown; called periodically every second
  118007. 020Ch "get_bannertitle" gets the title which is printed on the
  118008. banner page of a print job sent to the virtual port
  118009. (16 bytes required for result)
  118010. Returns: - the null-terminated banner title
  118011. 020Eh "get_servicename" gets the name of the print service
  118012. assigned to the virtual port
  118013. (64 bytes required for result)
  118014. Returns: - the null-terminated print service name assigned
  118015. to the virtual port
  118016. 0210h "set_bannertitle" sets the title which is printed on the
  118017. banner page of a print job sent to the virtual port
  118018. (16 bytes required for input)
  118019. Input: - the null-terminated banner title (max 16 chars)
  118020. 0212h "set_servicename" sets the name of the print service
  118021. assigned to the virtual port
  118022. (64 bytes required for input)
  118023. Input: - the null-terminated print service name
  118024. (max 64 chars)
  118025. 0216h "get_job_paper_format" gets the paper format for
  118026. subsequent print jobs
  118027. (16 bytes required for result)
  118028. Returns: - the null-terminated paper format
  118029. 0217h "set_job_paper_format" sets the paper format for
  118030. subsequent print jobs
  118031. (16 bytes required for input)
  118032. Input: - the null-terminated paper format (max 16 chars)
  118033. 02h WORD number of active virtual port (1-3) (0 for function 0205h)
  118034. 04h WORD Offset into the request block from which additional input
  118035. is to be read and/or at which the result is to be copied
  118036. (if there is any). Therefore the smallest block size for a
  118037. function which returns a result is
  118038. this offset + the maximum number of returned bytes - 1
  118039. 06h WORD 0000h
  118040. --------V-610005-----------------------------
  118041. INT 61 - OPTIMA 1024 VGA-Sync - QUERY ZOOM WINDOW
  118042. AX = 0005h
  118043. BX:CX -> buffer for window parameters (see #03429)
  118044. Range: unknown
  118045. Notes: INT 61 is the default interrupt; the actual interrupt number can be
  118046. obtained by calling INT 16/AH=FFh
  118047. not all vendors include the Tseng TSR which supports these functions
  118048. SeeAlso: AX=0000h"OPTIMA",AX=0003h"OPTIMA",AX=0006h"OPTIMA"
  118049. SeeAlso: INT 16/AH=FFh"OPTIMA"
  118050. Format of Optima 1024 window parameters:
  118051. Offset Size Description (Table 03429)
  118052. 00h WORD X start of zoom window
  118053. 02h WORD Y start of zoom window
  118054. 04h WORD X end of zoom window
  118055. 06h WORD Y end of zoom window
  118056. 08h WORD current zoom factor
  118057. 0Ah WORD zoom offset start X
  118058. 0Ch WORD zoom offset start Y
  118059. --------V-610006-----------------------------
  118060. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - SET ZOOM WINDOW
  118061. AX = 0006h
  118062. BX:CX -> zoom window description (see #03430)
  118063. Range: unknown
  118064. Notes: width of zoom window must be a multiple of the pixel replication (zoom)
  118065. factor
  118066. INT 61 is the default interrupt; the actual interrupt number can be
  118067. obtained by calling INT 16/AH=FFh
  118068. not all vendors include the Tseng TSR which supports these functions
  118069. SeeAlso: AX=0000h"OPTIMA",AX=0001h"OPTIMA",AX=0005h"OPTIMA",AX=0008h"OPTIMA"
  118070. SeeAlso: INT 16/AH=FFh"OPTIMA"
  118071. Format of Optima 1024 zoom window description:
  118072. Offset Size Description (Table 03430)
  118073. 00h WORD X start of zoom window
  118074. 02h WORD Y start of zoom window
  118075. 04h WORD X end of zoom window
  118076. 06h WORD Y end of zoom window
  118077. --------N-610006-----------------------------
  118078. INT 61 - Banyan VINES - GET ADDRESS OF GLOBAL VARIABLE
  118079. AX = 0006h
  118080. BX = bits 14..0: request ID (see #03431)
  118081. bit 15: result destination flag (0 for ES:BX, 1 for AX:BX)
  118082. Return: AX = status
  118083. 0000h successful
  118084. 000Bh invalid request
  118085. ES:BX -> internal variable (bit 15 of BX was not set)
  118086. AX:BX -> internal variable (bit 15 of BX was set)
  118087. Note: This service is handled by the redirector
  118088. SeeAlso: AX=0004h/SF=0013h,AX=0004h/SF=0014h
  118089. (Table 03431)
  118090. Values for request IDs:
  118091. Request Length Description
  118092. 0000h 1 ???
  118093. 0001h 16 StreetTalk port
  118094. 0002h 4 StreetTalk session handle
  118095. 0003h 6 colors
  118096. 0004h 64 StreetTalk name of currently logged in user
  118097. 0005h 0 old clear text password (always returns error code 000Bh)
  118098. 0006h 0 default group (not applicable)
  118099. 0007h 1 message queue count
  118100. 0008h 1 message flag
  118101. 0009h 16 TalkPort
  118102. 000Ah 2 TalkPort socket
  118103. 000Bh 64 StreetTalk name of mail service
  118104. 000Ch 2 message timeout
  118105. 000Dh 2 next message place
  118106. 000Eh 246 message queue
  118107. 000Fh 14 system nonce
  118108. 0010h 2 failed login count
  118109. 0011h 1 new mail message received
  118110. 0012h 8 mail capabilities
  118111. 0013h 3 printer port diverted
  118112. 0014h 32 international location
  118113. 0015h 16 IPC port of drive Z:
  118114. 0016h 1024 pointer to current directory table
  118115. 0017h 2 maximum number of file volume mappings
  118116. 0018h 24 routine to call back for messages
  118117. 0019h 4 current virtual machine
  118118. 001Ah 20 DOS redirector message bell tones
  118119. 001Bh 2 various flags used for internal communication
  118120. 001Ch 0 OS/2 client configuration (always returns error code 000Bh)
  118121. 001Dh 8 redirector/IFS file version
  118122. 001Eh 0 reserved (always returns error code 000Bh)
  118123. 001Fh 4 address of VVINESD.386 dispatch
  118124. --------V-610007-----------------------------
  118125. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY APPLICATION KEY
  118126. AX = 0007h
  118127. Return: AX = current state (0000h/0001h)
  118128. Desc: returns the current toggle state of the application (END) key in
  118129. specify mode. E.g. in the OPTIMA AutoCAD driver, 0 means AutoCAD
  118130. calls INT 61/AX=0001h every time the crosshair cursor moves.
  118131. Notes: In specify mode, the END key has been reserved for applications.
  118132. INT 61 is the default interrupt; the actual interrupt number can be
  118133. obtained by calling INT 16/AH=FFh
  118134. not all vendors include the Tseng TSR which supports these functions
  118135. SeeAlso: AX=0000h"OPTIMA",AX=0001h"OPTIMA",AX=0004h"OPTIMA"
  118136. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 7A/AX=0001h"AutoCAD"
  118137. --------N-610007BX0000-----------------------
  118138. INT 61 - Banyan VINES - RECONNECT TO STREETTALK
  118139. AX = 0007h
  118140. BX = 0000h
  118141. Return: AX = status (see #03432)
  118142. SeeAlso: AX=0007h/BX=0002h
  118143. (Table 03432)
  118144. Values for VINES function status:
  118145. 0000h successful
  118146. 0001h requested handler not installed or incompatible
  118147. 000Bh service busy
  118148. 000Ch invalid request ID
  118149. 03E9h incorrect name syntax
  118150. 03EAh organization name too long
  118151. 03EBh group name too long
  118152. 03ECh item name too long
  118153. 03EDh StreetTalk name too long
  118154. 03F3h organization not found
  118155. 03F4h group not found
  118156. 03F5h StreetTalk name not found
  118157. 03F8h not a StreetTalk name
  118158. 0409h modify access denied
  118159. 040Dh appropriate StreetTalk name unavailable
  118160. 0411h all matching names have been returned
  118161. 0412h some groups unavailable, all available matches returned
  118162. --------N-610007BX0001-----------------------
  118163. INT 61 - Banyan VINES - GET MM PORT FOR A SERVICE
  118164. AX = 0007h
  118165. BX = 0001h
  118166. DS:DX -> StreetTalk service name (64 bytes)
  118167. DS:DI -> 16-byte buffer for IPC port (see #03328 at AX=0001h"Sosock")
  118168. Return: AX = status (see #03432)
  118169. Notes: This function calls AX=0007/BX=0002h with the port count set to 1 and
  118170. the port type set to 00h
  118171. SeeAlso: AX=0007h/BX=0002h,AX=0007h/BX=0004h,AX=0007h/BX=000Ah
  118172. --------N-610007BX0002-----------------------
  118173. INT 61 - Banyan VINES - GET PORTS FOR A SERVICE
  118174. AX = 0007h
  118175. BX = 0002h
  118176. DS:DX -> StreetTalk service name
  118177. DS:DI -> port record block (see #03433)
  118178. Return: AX = status (see #03432)
  118179. Note: if the requested number of ports is greater than five, it will be reset
  118180. to five
  118181. SeeAlso: AX=0007h/BX=0001h,AX=0007h/BX=0003h,AX=0007h/BX=0004h
  118182. SeeAlso: AX=0007h/BX=000Ah
  118183. Format of VINES port record block:
  118184. Offset Size Description (Table 03433)
  118185. 00h WORD (call) number of 17-byte elements (01h-05h) to be filled
  118186. 02h BYTE (call) port type for first port
  118187. 03h 16 BYTEs (ret) port (see #03328)
  118188. 13h BYTE (call) port type for second port
  118189. 14h 16 BYTEs (ret) port (see #03328)
  118190. 24h BYTE (call) port type for third port
  118191. 25h 16 BYTEs (ret) port (see #03328)
  118192. 35h BYTE (call) port type for fourth port
  118193. 36h 16 BYTEs (ret) port (see #03328)
  118194. 46h BYTE (call) port type for fifth port
  118195. 47h 16 BYTEs (ret) port (see #03328)
  118196. 57h BYTE reserved
  118197. SeeAlso: #03435
  118198. --------N-610007BX0003-----------------------
  118199. INT 61 - Banyan VINES - FIND A SERVICE
  118200. AX = 0007h
  118201. BX = 0003h
  118202. DS:DX -> port control block (see #03434)
  118203. Return: AX = status (see AX=0007h/BX=0000h)
  118204. SeeAlso: AX=0007h/BX=0002h,AX=0007h/BX=0004h,AX=0007h/BX=0005h
  118205. Format of port control block:
  118206. Offset Size Description (Table 03434)
  118207. 00h WORD ???
  118208. 02h WORD ???
  118209. 04h 16 BYTEs IPC port (see #03328 at AX=0001h"Sosock")
  118210. 14h 5 WORDs ???
  118211. SeeAlso: #03440
  118212. --------N-610007BX0004-----------------------
  118213. INT 61 - Banyan VINES - SET PORTS FOR A SERVICE
  118214. AX = 0007h
  118215. BX = 0004h
  118216. DS:DX -> StreetTalk name of service (max 64 bytes)
  118217. DS:DI -> port record block (see #03435)
  118218. Return: AX = status (see #03432)
  118219. SeeAlso: AX=0007h/BX=0002h,AX=0007h/BX=0003h,AX=0007h/BX=000Ah
  118220. Format of VINES port record block:
  118221. Offset Size Description (Table 03435)
  118222. 00h WORD number of 17-byte elements
  118223. 02h BYTE port type for first port
  118224. 03h 16 BYTEs first IPC port (see #03328)
  118225. 13h BYTE port type for second port
  118226. 14h 16 BYTEs second IPC port (see #03328)
  118227. 24h BYTE port type for third port
  118228. 25h 16 BYTEs third IPC port (see #03328)
  118229. 35h BYTE port type for fourth port
  118230. 36h 16 BYTEs fourth IPC port (see #03328)
  118231. 46h BYTE port type for fifth port
  118232. 47h 16 BYTEs fifth IPC port (see #03328)
  118233. 57h BYTE reserved
  118234. SeeAlso: #03433
  118235. --------N-610007BX0005-----------------------
  118236. INT 61 - Banyan VINES - GET USER NAME
  118237. AX = 0007h
  118238. BX = 0005h
  118239. DS:DX -> 64-byte buffer for user's StreetTalk name
  118240. Return: AX = status (see also #03432)
  118241. 0000h successful
  118242. 0001h network software not installed or incompatible
  118243. Note: if no user logged in, first byte of returned name will be 00h
  118244. SeeAlso: AX=0007h/BX=0007h
  118245. --------N-610007BX0006-----------------------
  118246. INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING
  118247. AX = 0007h
  118248. BX = 0006h
  118249. SI = error code (>100)
  118250. DS:DX -> 80-byte buffer for error text
  118251. Return: AX = status (see also #03432)
  118252. 0000h successful
  118253. 0001h network software not installed or incompatible
  118254. --------N-610007BX0007-----------------------
  118255. INT 61 - Banyan VINES - VERIFY EXISTENCE OF NAME AND RETURN CANONICAL FORM
  118256. AX = 0007h
  118257. BX = 0007h
  118258. DS:DX -> NiceName block (see #03436)
  118259. Return: AX = status (see #03432)
  118260. SeeAlso: AX=0007h/BX=0005h,AX=0007h/BX=0008h
  118261. Format of VINES NiceName block:
  118262. Offset Size Description (Table 03436)
  118263. 00h WORD type of name
  118264. 0064h (100) organization
  118265. 00C8h (200) group
  118266. 012Ch (300) item
  118267. 02h WORD pointer to ASCIZ input name
  118268. 04h WORD pointer to 64-byte buffer for output name
  118269. SeeAlso: #03437
  118270. --------N-610007BX0008-----------------------
  118271. INT 61 - Banyan VINES - ENUMERATE StreetTalk NAMES
  118272. AX = 0007h
  118273. BX = 0008h
  118274. DS:DX -> enumerate block (see #03437)
  118275. Return: AX = status (see also #03432)
  118276. 0000h successful
  118277. 0411h all matching names have been returned
  118278. 0412h some groups unavailable, all available matches returned
  118279. Note: each program using this call should continue until a nonzero status
  118280. is returned; otherwise, some resources will not be freed for several
  118281. hours
  118282. SeeAlso: AX=0007h/BX=0005h,AX=0007h/BX=0007h,AX=0007h/BX=0009h
  118283. Format of VINES enumerate block:
  118284. Offset Size Description (Table 03437)
  118285. 00h WORD return code
  118286. 02h WORD pointer to pattern string
  118287. 04h WORD enumerate type
  118288. 0064h (100) organization
  118289. 00C8h (200) group
  118290. 012Ch (300) item
  118291. 06h WORD enumerate class
  118292. 0000h unspecified (return all matching items)
  118293. 0001h user names
  118294. 0002h service names
  118295. 0003h list names
  118296. 0004h nicknames
  118297. 08h WORD pointer to category criteria block (see #03438) or 0
  118298. 0Ah WORD pointer to array of 64-byte returned names
  118299. 0Ch WORD number of names returned
  118300. 0Eh 6 BYTEs reserved for subsequent enumerated calls (set to zeros on first
  118301. call)
  118302. SeeAlso: #03436
  118303. Format of category criteria block:
  118304. Offset Size Description (Table 03438)
  118305. 00h WORD exclude flag
  118306. 0000h return only items with the specified categories
  118307. 0001h return all items except those with the given categories
  118308. 02h WORD number of categories (max 5, 0000h = match all categories)
  118309. 04h WORD category 1 value (see #03439)
  118310. 06h WORD category 2 value
  118311. 08h WORD category 3 value
  118312. 0Ah WORD category 4 value
  118313. 0Ch WORD category 5 value
  118314. SeeAlso: #03437
  118315. (Table 03439)
  118316. Values for common VINES service categories:
  118317. 0001h server service
  118318. 0002h file service
  118319. 0003h print service
  118320. 0004h mail service
  118321. 0005h StreetTalk
  118322. 0006h time service
  118323. 0007h FTP service
  118324. 0008h semaphore service
  118325. 0009h 3270/SNA service
  118326. 000Ah terminal emulation service
  118327. 000Bh asynchronous terminal service
  118328. 000Ch NETBIOS service
  118329. 000Dh PC-based service
  118330. 000Eh BSC service
  118331. 000Fh APPC service
  118332. 0010h NM service
  118333. 0011h VS service
  118334. 0012h POP service
  118335. 0013h AFP service
  118336. 0014h VCS service
  118337. 0015h EMS service
  118338. 0016h LN service
  118339. 0017h BS service
  118340. 0023h RIPL service
  118341. 0064h ADM service
  118342. SeeAlso: #03438
  118343. --------N-610007BX0009-----------------------
  118344. INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING (SELECTED PORT)
  118345. AX = 0007h
  118346. BX = 0009h
  118347. SI = error code
  118348. DS:DX -> 80-byte buffer for error text
  118349. DS:DI -> IPC port (16 bytes; see AX=0001h#"Sosock" for port format)
  118350. Return: AX = status (see AX=0007h/BX=0000h)
  118351. Note: Same as AX=0007h/BX=0006h, except IPC port is specified explicitly
  118352. SeeAlso: AX=0007h/BX=0006h
  118353. --------N-610007BX000A-----------------------
  118354. INT 61 - Banyan VINES - internal, OS/2 only - GET MANY PORTS FOR SERVICE
  118355. AX = 0007h
  118356. BX = 000Ah
  118357. DS:DX -> port control block (see #03440)
  118358. Return: AX = status (see AX=0007h/BX=0000h)
  118359. Note: This function cannot be called from applications, as the DS register
  118360. is checked against the redirector data segment address (status code
  118361. 0001h will be returned if DS doesn't match)
  118362. SeeAlso: AX=0007h/BX=0001h,AX=0007h/BX=0002h,AX=0007h/BX=0004h
  118363. Format of port control block:
  118364. Offset Size Description (Table 03440)
  118365. 00h WORD ???
  118366. 02h WORD ???
  118367. 04h 16 BYTEs IPC port (see #03328 at AX=0001h"Sosock")
  118368. 14h 14 WORDs ???
  118369. SeeAlso: #03434
  118370. --------V-610008-----------------------------
  118371. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - SET ZOOM OFFSET
  118372. AX = 0008h
  118373. BX = X start of zoom offset
  118374. CX = Y start of zoom offset
  118375. Desc: specifies the first byte of video memory to appear in the zoom window
  118376. Range: unknown
  118377. Notes: INT 61 is the default interrupt; the actual interrupt number can be
  118378. obtained by calling INT 16/AH=FFh
  118379. not all vendors include the Tseng TSR which supports these functions
  118380. SeeAlso: AX=0000h"OPTIMA",AX=0006h"OPTIMA",INT 16/AH=FFh"OPTIMA"
  118381. --------N-610008BX0000-----------------------
  118382. INT 61 - Banyan VINES - TALKPORT SERVICE - GET HANDLER ADDRESS
  118383. AX = 0008h
  118384. BX = 0000h
  118385. Return: AX = status
  118386. 0000h successful
  118387. ES:DX = far pointer to handler
  118388. Desc: The TalkPort is a facility to display event messages (e.g. mail
  118389. received, printing on a local printer, ...) on the screen
  118390. Note: This service is handled by the redirector
  118391. SeeAlso: AX=0008h/BX=0001h,AX=0008h/BX=0002h
  118392. --------N-610008BX0001-----------------------
  118393. INT 61 - Banyan VINES - TALKPORT SERVICE - SET HANDLER ADDRESS
  118394. AX = 0008h
  118395. BX = 0001h
  118396. ES:DX -> new handler
  118397. Return: AX = status
  118398. 0000h successful
  118399. SeeAlso: AX=0008h/BX=0000h
  118400. --------N-610008BX0002-----------------------
  118401. INT 61 - Banyan VINES - TALKPORT SERVICE - POST MESSAGE ON LOCAL DISPLAY
  118402. AX = 0008h
  118403. BX = 0002h
  118404. CX = message display flags (see #03441)
  118405. DS:DX -> ASCIZ string to display (only first 80 chars used)
  118406. Return: AX = status
  118407. 0000h successful
  118408. 000Bh message display function currently busy
  118409. 000Ch message queue full
  118410. Notes: queues up to three messages to be displayed on the bottom line
  118411. This service is handled by the redirector
  118412. In a DOS session, TalkPort messages are displayed on display line 25;
  118413. in a Windows session, TalkPort messages are displayed in dialog boxes
  118414. SeeAlso: AX=0008h/BX=0000h,AX=0008h/BX=0003h
  118415. Bitfields for VINES message display flags:
  118416. Bit(s) Description (Table 03441)
  118417. 0 message will remain on screen until user presses ^X
  118418. 1 ring bell after displaying message
  118419. 2 blink
  118420. --------N-610008BX0003-----------------------
  118421. INT 61 - Banyan VINES - TALKPORT SERVICE - INTERCEPT VINES 25th-LINE MESSAGES
  118422. AX = 0008h
  118423. BX = 0003h
  118424. DS:DX -> request block (see #03442)
  118425. Return: AX = status
  118426. 0000h successful
  118427. 0001h network software not installed or incompatible
  118428. Notes: message handler should not call BIOS or DOS functions, and should
  118429. either call next handler or simply return
  118430. to stop intercepting messages, set prev and next request blocks to
  118431. point at each other
  118432. SeeAlso: AX=0008h/BX=0002h
  118433. Format of VINES request block for 25-th line messages:
  118434. Offset Size Description (Table 03442)
  118435. 00h DWORD pointer to user-written message handler
  118436. 04h DWORD pointer to next request block (filled in by VINES)
  118437. 08h DWORD pointer to previous request block (filled in by VINES)
  118438. 0Ch DWORD pointer to message storage area (filled by VINES) (see #03443)
  118439. Format of message storage area:
  118440. Offset Size Description (Table 03443)
  118441. 00h 16 BYTEs IPC port of message sender (see #03328)
  118442. 10h BYTE message flags
  118443. 11h WORD reserved
  118444. 13h BYTE length of message
  118445. 14h 80 BYTEs message text
  118446. SeeAlso: #03442
  118447. --------N-610009-----------------------------
  118448. INT 61 - Banyan VINES - NETBIOS CLIENT SERVICE
  118449. AX = 0009h
  118450. other parameters, if any, unknown
  118451. --------N-61000A-----------------------------
  118452. INT 61 - Banyan VINES - SECONDARY 3270 INTERFACE
  118453. AX = 000Ah
  118454. Note: either 3270/SNA or 3270/BSC interface will use AX=000Ah, depending on
  118455. which is loaded second. The first interface loaded will use AX=0002h
  118456. SeeAlso: INT 61/AX=0002h
  118457. --------N-61000B-----------------------------
  118458. INT 61 - Banyan VINES - SEMAPHORE SERVICE
  118459. AX = 000Bh
  118460. other parameters, if any, unknown
  118461. --------N-61000C-----------------------------
  118462. INT 61 - Banyan VINES - 3270 KEYBOARD HANDLER
  118463. AX = 000Ch
  118464. other parameters, if any, unknown
  118465. --------N-61000D-----------------------------
  118466. INT 61 - Banyan VINES - T3270 SERVICE FUNCTION
  118467. AX = 000Dh
  118468. other parameters, if any, unknown
  118469. --------N-61000E-----------------------------
  118470. INT 61 - Banyan VINES - ENHANCED 3270 SERVICE
  118471. AX = 000Eh
  118472. other parameters, if any, unknown
  118473. --------N-61000F-----------------------------
  118474. INT 61 - Banyan VINES - VINES SOCKET API (FAR DATA)
  118475. AX = 000Fh
  118476. CX:BX -> request block (see #03444)
  118477. DX = application's data segment (should be = CX)
  118478. ES = DS
  118479. Return: AX = status
  118480. 0000h successful
  118481. 0099h invalid operation
  118482. 00A5h resource not available
  118483. Desc: StreetTalk access with session handles
  118484. Notes: This service is handled by the adapter driver
  118485. The request dispatch table contains dummy entries for subfunctions
  118486. 06h, 0Dh, 0Eh, 0Fh, 10h, and 11h, which always return error 0099h
  118487. (invalid operation) in the request block's result buffer
  118488. This interface does the same as the corresponding AX=0001h interface,
  118489. but with a slightly modified request block structure (i.e it allows
  118490. FAR parameter block pointers) and without expecting DS=0001h
  118491. Some adapter drivers (e.g. the NDIS2 token ring driver NDTOKBAN for
  118492. VINES 5.53) ignore the value in CX and use the value from DX instead
  118493. SeeAlso: AX=0001h/SF=0001h,AX=000Fh/SF=0001h
  118494. Format of VINES Socket request block:
  118495. Offset Size Description (Table 03444)
  118496. 00h WORD subfunction number (01h-16h)
  118497. 02h WORD magic number (FEFEh)
  118498. 04h WORD buffer for return code (set to 0 before calling)
  118499. 06h WORD reserved (will be set to client DS)
  118500. 08h WORD reserved (obviously not used; set to 0 before calling)
  118501. 0Ah DWORD far pointer to parameter block
  118502. 0Eh WORD StreetTalk handle
  118503. SeeAlso: #03324 at INT 61/AX=0001h
  118504. --------N-61000FSF0001-----------------------
  118505. INT 61 - Banyan VINES - OPEN SOCKET
  118506. AX = 000Fh subfn 0001h
  118507. CX:BX -> request block (see #03445)
  118508. DX = application's data segment (should be = CX)
  118509. ES = DS
  118510. Return: AX = status
  118511. 0000h successful
  118512. 00A5h resource not available
  118513. Desc: Opens a socket and returns a socket handle
  118514. Format of request block:
  118515. Offset Size Description (Table 03445)
  118516. 00h WORD 0001h
  118517. 02h WORD magic number (FEFEh)
  118518. 04h WORD buffer for return code (set to 0 before calling)
  118519. 06h WORD reserved (will be set to client DS)
  118520. 08h WORD reserved (obviously not used; set to 0 before calling)
  118521. 0Ah DWORD far pointer to parameter block (see #03446)
  118522. 0Eh WORD process handle (see AX=000Fh/SF=0008h)
  118523. Format of parameter block:
  118524. Offset Size Description (Table 03446)
  118525. 00h WORD reserved
  118526. 02h WORD address family (0003h = VINES)
  118527. 04h WORD socket type (0001h = IPC, 0002h = SPP)
  118528. 06h WORD protocol number (FFFFh = default protocol)
  118529. 08h WORD reserved
  118530. 0Ah WORD local port number (0 = transient, 1..1FFh = well-known port)
  118531. 0Ch DWORD far pointer to socket handle buffer (2 bytes)
  118532. 10h DWORD far pointer to IPC port buffer (16 bytes)
  118533. SeeAlso: #03445
  118534. --------N-61000FSF0002-----------------------
  118535. INT 61 - Banyan VINES - SEND MESSAGE ON A SOCKET
  118536. AX = 000Fh subfn 0002h
  118537. CX:BX -> request block (see #03447)
  118538. DX = application's data segment (should be = CX)
  118539. ES = DS
  118540. Return: AX = status
  118541. 0000h successful
  118542. 00A5h resource not available
  118543. Desc: send data to a socket identified by its socket handle
  118544. Format of request block:
  118545. Offset Size Description (Table 03447)
  118546. 00h WORD 0002h
  118547. 02h WORD magic number (FEFEh)
  118548. 04h WORD buffer for return code (set to 0 before calling)
  118549. 06h WORD reserved (will be set to client DS)
  118550. 08h WORD reserved (obviously not used; set to 0 before calling)
  118551. 0Ah DWORD far pointer to parameter block (see #03448)
  118552. 0Eh WORD process handle (see AX=000Fh/SF=0008h)
  118553. Format of parameter block:
  118554. Offset Size Description (Table 03448)
  118555. 00h WORD buffer for estimated communication cost in 220 msec ticks
  118556. 02h WORD buffer for return code (set to 0 before calling)
  118557. 04h WORD socket handle
  118558. 06h DWORD far pointer to IPC/SPP message buffer
  118559. 0Ah WORD length of IPC/SPP message buffer
  118560. 0Ch WORD option flags
  118561. bit 0: asynchronous communication
  118562. bit 1: reliable message
  118563. bit 3: end of message
  118564. bit 4: vectored I/O
  118565. 0Eh 16 BYTEs socket address (IPC port of source)
  118566. 1Eh WORD not used (set to 0 before calling)
  118567. 20h WORD SPP connection id (0 for IPC messages)
  118568. 22h WORD request type (1 = data, 2 = connect SPP, 3 = disconnect SPP)
  118569. SeeAlso: #03447
  118570. --------N-61000FSF0004-----------------------
  118571. INT 61 - Banyan VINES - CLOSE SOCKET
  118572. AX = 000Fh subfn 0004h
  118573. CX:BX -> request block (see #03449)
  118574. DX = application's data segment (should be = CX)
  118575. ES = DS
  118576. Return: AX = status
  118577. 0000h successful
  118578. 00A5h resource not available
  118579. Desc: Closes a socket identified by its socket handle
  118580. Format of request block:
  118581. Offset Size Description (Table 03449)
  118582. 00h WORD 0004h
  118583. 02h WORD magic number (FEFEh)
  118584. 04h WORD buffer for return code (set to 0 before calling)
  118585. 06h WORD reserved (will be set to client DS)
  118586. 08h WORD reserved (obviously not used; set to 0 before calling)
  118587. 0Ah DWORD far pointer to socket handle (2 bytes)
  118588. 0Eh WORD process handle (see AX=000Fh/SF=0008h)
  118589. --------N-61000FSF0008-----------------------
  118590. INT 61 - Banyan VINES - GET PROCESS HANDLE
  118591. AX = 000Fh subfn 0008h
  118592. CX:BX -> request block (see #03450)
  118593. DX = application's data segment (should be = CX)
  118594. ES = DS
  118595. Return: AX = status
  118596. 0000h successful
  118597. 00A5h resource not available
  118598. Desc: Returns a process handle to be used in other request blocks
  118599. Notes: This function is a prerequisite to all AX=000Fh subfunctions which
  118600. expect a process handle in the request block
  118601. Although subsequent calls from the same application return different
  118602. process handles, there seem to be no restrictions on how many times
  118603. an application may call this function (in fact, the code in the VINES
  118604. toolkit library always calls it before issueing other AX=000Fh calls)
  118605. Format of request block:
  118606. Offset Size Description (Table 03450)
  118607. 00h WORD 0008h
  118608. 02h WORD magic number (FEFEh)
  118609. 04h WORD buffer for return code (set to 0 before calling)
  118610. 06h WORD reserved
  118611. 08h WORD reserved (obviously not used; set to 0 before calling)
  118612. 0Ah DWORD process type (1 = transient, 2 = resident; destroyed on exit)
  118613. 0Eh WORD buffer for process handle
  118614. --------N-610010-----------------------------
  118615. INT 61 - Banyan VINES - INTERFACE TO NBNS
  118616. AX = 0010h
  118617. other parameters, if any, unknown
  118618. --------N-6101-------------------------------
  118619. INT 61 - Banyan VINES - CHECK SERVICE
  118620. AH = 01h
  118621. AL = service ID (see #03451)
  118622. Return: AX = status
  118623. 0000h installed
  118624. 0001h not installed
  118625. 0002h invalid ID
  118626. 0003h invalid function
  118627. Note: Only the offset part of the service pointer is checked for a nonzero
  118628. value
  118629. SeeAlso: AH=00h,AH=02h"VINES",AH=03h"VINES"
  118630. (Table 03451)
  118631. Values for VINES service ID:
  118632. 01h communications
  118633. 02h primary 3270 emulation
  118634. 03h async terminal emulation
  118635. 04h file deflection
  118636. 05h print service control
  118637. 06h get address of something
  118638. 07h StreetTalk access service
  118639. 08h environment
  118640. 09h NETBIOS client service
  118641. 0Ah secondary 3270 emulation
  118642. 0Bh semaphore service
  118643. 0Ch 3270 emulation active status
  118644. 0Dh T3270 keyboard interrupt simulator
  118645. 0Eh enhanced 3270 service
  118646. 0Fh comm Windows entry point
  118647. 10h interface to NBNS
  118648. --------N-6101--BX0000-----------------------
  118649. INT 61 u - PC/TCP kernel v2.1+ - "net_config" - CONFIGURE RUNNING KERNEL
  118650. AH = 01h
  118651. BX = 0000h
  118652. DH = tag number
  118653. DL = device number
  118654. DS:SI -> buffer to send to kernel
  118655. ES:DI -> integer containing size of buffer
  118656. Return: CF clear if successful
  118657. CF set on error
  118658. AX = error code (see #03319 at INT 61"FTP Software")
  118659. Range: INT 20 to INT E0, selected by configuration
  118660. Notes: there are a large number of tags available; the items returned
  118661. all refer to local kernel configuration, and are not needed in
  118662. normal use.
  118663. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  118664. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=02h"PC/TCP"
  118665. --------N-6102-------------------------------
  118666. INT 61 - Banyan VINES - GET REVISION NUMBER
  118667. AH = 02h
  118668. DS:DX -> 2-byte buffer for result
  118669. Return: AX = 0000h installed
  118670. DS:DX buffer contains revision number as
  118671. 10000d * major_ver + 100d * minor_ver + patch_revision
  118672. SeeAlso: AH=01h"VINES",AH=04h"VINES",AH=07h"VINES"
  118673. --------N-6102--BX0000-----------------------
  118674. INT 61 u - PC/TCP kernel v2.1+ - "get_kernel_info" - GET MISCELLAN LOCAL INFO
  118675. AH = 02h
  118676. BX = 0000h
  118677. DH = tag number
  118678. DL = device number
  118679. DS:SI -> buffer for result (up to 48 bytes for version <= 2.2)
  118680. ES:DI -> integer containing size of buffer
  118681. Return: CF clear if successful
  118682. Data loaded into specified buffer, and size value altered
  118683. CF set on error
  118684. AX = error code (see #03319 at INT 61"FTP Software")
  118685. Range: INT 20 to INT E0, selected by configuration
  118686. Notes: there are a large number of tags available; the items returned
  118687. all refer to local kernel configuration, and are not needed in
  118688. normal use.
  118689. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  118690. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=01h"PC/TCP"
  118691. --------N-6103-------------------------------
  118692. INT 61 - Banyan VINES - INSTALL SERVICE HANDLER
  118693. AH = 03h
  118694. AL = service ID (see #03451)
  118695. DS:DX -> new service handler
  118696. Return: AX = 0000h successful
  118697. SeeAlso: AH=00h,AH=01h"VINES",AH=02h"VINES",AH=05h"VINES"
  118698. --------N-6104-------------------------------
  118699. INT 61 - Banyan VINES - CHECK VINES REVISION NUMBER IN RANGE
  118700. AH = 04h
  118701. DS:DX -> 2-byte buffer containing the VINES revision number
  118702. DS:DX buffer contains revision number as
  118703. 10000d * major_ver + 100d * minor_ver + patch_revision
  118704. Return: AX = status
  118705. 0000h valid version
  118706. 0004h out of range
  118707. Note: For Revision 5.53, the valid range is 4.10(0) to 6.19(99)
  118708. SeeAlso: AH=02h"VINES",AH=07h"VINES",AH=08h"VINES"
  118709. --------N-6105-------------------------------
  118710. INT 61 - PC/TCP kernel v2.05+ - "get_addr" - GET INTERNET ADDRESS OF NET DESCR
  118711. AH = 05h
  118712. BX = network descriptor
  118713. Return: CF clear if successful
  118714. DX:AX = Internet address of ND
  118715. CF set on error
  118716. AX = error code (see #03319 at INT 61"FTP Software")
  118717. InstallCheck: test for the signature "TCPTSR" three bytes beyond the start
  118718. of the interrupt handler
  118719. Range: INT 20 to INT E0, selected by configuration
  118720. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=16h"PC/TCP"
  118721. SeeAlso: INT 63/AH=25h"BW-TCP"
  118722. --------N-6105-------------------------------
  118723. INT 61 - Banyan VINES - READ PCCONFIG BYTES
  118724. AH = 05h
  118725. CX = number of bytes to copy
  118726. (max. 0175h for VINES 4.00, max. 017Fh for VINES 4.10+)
  118727. SI = offset of area to be copied (see #03452,#03453)
  118728. Return: AX = status
  118729. 0000h successful
  118730. 0004h out of range
  118731. Notes: The PCCONFIG area is located in the code segment of the BANV handler
  118732. To find out which PCCONFIG structure applies, call this function first
  118733. with CX=0006h to get the VINES revision number
  118734. SeeAlso: AH=02h"VINES",AH=04h"VINES",AH=06h"VINES",AH=0Bh"VINES"
  118735. Format of PCCONFIG area (VINES 4.00):
  118736. Offset Size Description (Table 03452)
  118737. 00h 6 BYTEs VINES revision (ASCII, zero-padded)
  118738. 06h 2 BYTEs NEWREV-number (ASCII, two digits)
  118739. 08h WORD hardware interrupt level
  118740. 0Ah WORD DMA channel
  118741. 0Ch WORD I/O address
  118742. 0Eh DWORD adapter ROM address (linear)
  118743. 12h DWORD adapter RAM address (linear)
  118744. 16h WORD BANV interrupt
  118745. 18h 32 BYTEs default login group #1
  118746. 38h 32 BYTEs default login group #2
  118747. 58h 32 BYTEs default login group #3
  118748. 78h WORD semaphore locking support flag
  118749. 7Ah WORD extended StreetTalk flag
  118750. 7Ch WORD maximum number of file volumes
  118751. 7Eh WORD NetBIOS flag
  118752. 80h 60 BYTEs default network adapter
  118753. BCh 60 BYTEs default communications driver
  118754. F8h WORD maximum number of SPP connections
  118755. FAh WORD maximum number of open sockets
  118756. FCh WORD communications buffer size (10..60 KB)
  118757. FEh 20 BYTEs location directory on drive Z:
  118758. 112h 33 BYTEs auxiliary configuration area #1 (see #03454)
  118759. 133h 33 BYTEs auxiliary configuration area #2
  118760. 154h 33 BYTEs auxiliary configuration area #3
  118761. SeeAlso: #03453
  118762. Format of PCCONFIG area (VINES 4.10+):
  118763. Offset Size Description (Table 03453)
  118764. 00h 6 BYTEs VINES revision (ASCII, zero-padded)
  118765. 06h 2 BYTEs NEWREV-number (ASCII, two digits)
  118766. 08h WORD hardware interrupt level
  118767. 0Ah WORD DMA channel
  118768. 0Ch WORD I/O address
  118769. 0Eh DWORD adapter ROM address (linear)
  118770. 12h DWORD adapter RAM address (linear)
  118771. 16h WORD BANV interrupt
  118772. 18h 32 BYTEs default login group #1
  118773. 38h 32 BYTEs default login group #2
  118774. 58h 32 BYTEs default login group #3
  118775. 78h WORD semaphore locking support flag
  118776. 7Ah WORD extended StreetTalk flag
  118777. 7Ch WORD named pipes support flag
  118778. 7Eh WORD maximum number of file volumes
  118779. 80h WORD NetBIOS flag
  118780. 82h 60 BYTEs default network adapter
  118781. BEh 60 BYTEs default communications driver
  118782. FAh WORD maximum number of SPP connections
  118783. FCh WORD maximum number of open sockets
  118784. FEh WORD communications buffer size (10..60 KB)
  118785. 100h WORD number of mailslots
  118786. 102h WORD maximum number of open files
  118787. 104h WORD maximum number of NetBIOS sessions
  118788. 106h WORD maximum number of NetBIOS commands
  118789. 108h 20 BYTEs location directory on drive Z:
  118790. 11Ch 33 BYTEs auxiliary configuration area #1 (see #03454)
  118791. 13Dh 33 BYTEs auxiliary configuration area #2
  118792. 15Eh 33 BYTEs auxiliary configuration area #3
  118793. Format of auxiliary configuration area:
  118794. Offset Size Description (Table 03454)
  118795. 00h 16 BYTEs item name (no zero terminator if length = 16)
  118796. 10h BYTE item value type (1=text, else numeric)
  118797. 11h 16 BYTEs item value (string if type 1, else DWORD)
  118798. SeeAlso: #03452,#03453
  118799. --------N-6106-------------------------------
  118800. INT 61 - PC/TCP kernel v2.05 - "net_info" - GET INTERFACE STATISTICS
  118801. AH = 06h
  118802. BX = network descriptor (must be allocated and open)
  118803. DS:SI -> 38-byte buffer for interface statistics (see #03455)
  118804. Return: CF clear if successful
  118805. buffer filled
  118806. CF set on error
  118807. AX = error code (see #03319)
  118808. Desc: returns the statistics relevant to the particular network interface
  118809. used by the specified network descriptor
  118810. Range: INT 20 to INT E0, selected by configuration
  118811. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=05h"PC/TCP"
  118812. Format of PC/TCP interface statistics:
  118813. Offset Size Description (Table 03455)
  118814. 00h WORD interface class (e.g. 802.3)
  118815. 02h WORD type (manufacturer) of interface
  118816. 04h WORD interface number
  118817. 06h DWORD (big-endian) IP address of interface
  118818. 0Ah DWORD subnet mask
  118819. 0Eh WORD 0001h if interface is up
  118820. 10h DWORD total packets received
  118821. 14h DWORD total packets sent
  118822. 18h DWORD receive errors
  118823. 1Ch DWORD send errors
  118824. 20h WORD length of local net address (e.g. 0006h for Ethernet)
  118825. 22h DWORD pointer to local net address
  118826. --------N-6106-------------------------------
  118827. INT 61 - Banyan VINES - GET PCCONFIG BASE ADDRESS
  118828. AH = 06h
  118829. DS:DX -> 4-byte buffer for far pointer to PCCONFIG area
  118830. Return: AX = 0000h successful
  118831. Note: The PCCONFIG area is located in the code segment of the BANV handler
  118832. SeeAlso: AH=05h"VINES",AH=0Bh"VINES"
  118833. --------N-6107-------------------------------
  118834. INT 61 - PC/TCP kernel v2.05+ - "net_globalize" - MAKE NET DESCRIPTOR GLOBAL
  118835. AH = 07h
  118836. BX = local network descriptor
  118837. Return: CF clear if successful
  118838. AX = global network descriptor
  118839. CF set on error
  118840. AX = error code (see #03319)
  118841. Notes: the new network descriptor can be accessed from all processes and is
  118842. independent of DOS
  118843. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  118844. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
  118845. SeeAlso: INT 61/AH=29h
  118846. --------N-6107-------------------------------
  118847. INT 61 - Banyan VINES - GET VINES REVISION NUMBER (LONG)
  118848. AH = 07h
  118849. DS:DX -> 4-byte buffer for result
  118850. Return: AX = 0000h successful
  118851. DS:DX buffer contains revision number as
  118852. 10000d * major_ver + 100d * minor_ver + patch_revision
  118853. SeeAlso: AH=02h"VINES",AH=04h"VINES",AH=08h"VINES"
  118854. --------b-6107-------------------------------
  118855. INT 61 - Atari Portfolio - FORMAT CREDIT CARD MEMORY
  118856. AH = 07h
  118857. AL = drive number (00h = A:,01h = B:)
  118858. Return: CF clear if successful
  118859. CF set on error
  118860. AH = error code (see #00234 at INT 13/AH=01h)
  118861. Note: do not use this function to format the internal disk (drive number 02h)
  118862. SeeAlso: AH=00h"Portfolio",AH=08h"Portfolio",AH=09h"Portfolio"
  118863. --------N-6108-------------------------------
  118864. INT 61 - PC/TCP kernel v2.05+ - "net_release" - CLOSE A NETWORK DESCRIPTOR
  118865. AH = 08h
  118866. BX = network descriptor
  118867. Return: CF clear if successful
  118868. AX = 0000h (BWPCTCP shim)
  118869. CF set on error
  118870. AX = error code (see #03319)
  118871. Range: INT 20 to INT E0, selected by configuration
  118872. Note: the descriptor will be closed and resources released. If a stream
  118873. descriptor, the protocol (FIN etc) is completed unless the
  118874. non-blocking option has been set.
  118875. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=09h"PC/TCP"
  118876. SeeAlso: INT 63/AH=0Eh"BW-TCP"
  118877. --------N-6108-------------------------------
  118878. INT 61 - Banyan VINES - CHECK VINES REVISION NUMBER IN RANGE (LONG)
  118879. AH = 08h
  118880. DS:DX -> 4-byte buffer containing the VINES revision number
  118881. DS:DX buffer contains revision number as
  118882. 10000d * major_ver + 100d * minor_ver + patch_revision
  118883. Return: AX = status
  118884. 0000h valid version
  118885. 0004h out of range
  118886. Note: For Revision 5.53, the valid range is 4.10(0) to 6.19(99)
  118887. SeeAlso: AH=04h"VINES",AH=07h"VINES"
  118888. --------b-6108-------------------------------
  118889. INT 61 - Atari Portfolio - GET SIZE OF INTERNAL DISK
  118890. AH = 08h
  118891. Return: AX = segment address of RAMdisk
  118892. BX = size in KB
  118893. SeeAlso: AH=00h"Portfolio",AH=07h"Portfolio",AH=09h"Portfolio"
  118894. --------N-6109-------------------------------
  118895. INT 61 - PC/TCP kernel v2.05+ - "net_releaseall" - CLOSE ALL NON-GLOBAL DESCRS
  118896. AH = 09h
  118897. Return: CF clear
  118898. Range: INT 20 to INT E0, selected by configuration
  118899. Notes: this call performs function 08h on every non-global network descriptor.
  118900. Global descriptors must be released individually.
  118901. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
  118902. SeeAlso: INT 63/AH=0Eh"BW-TCP"
  118903. --------N-6109-------------------------------
  118904. INT 61 - Banyan VINES - GET VALUE OF AN OS/2 BACKEND VARIABLE
  118905. AH = 09h
  118906. other parameters, if any, unknown
  118907. SeeAlso: AH=0Ah"VINES"
  118908. --------b-6109-------------------------------
  118909. INT 61 - Atari Portfolio - FORMAT INTERNAL DISK
  118910. AH = 09h
  118911. BX = desired size of disk in KB
  118912. Return: CF clear if successful
  118913. CF set on error
  118914. BX = maximum possible size in KB
  118915. Desc: resize and erase the internal RAMdisk, then reboot the system
  118916. SeeAlso: AH=00h"Portfolio",AH=07h"Portfolio",AH=08h"Portfolio"
  118917. SeeAlso: AH=0Bh"Portfolio"
  118918. --------N-610A-------------------------------
  118919. INT 61 - PC/TCP kernel v2.05 - "net_send" - ???
  118920. AH = 0Ah
  118921. ???
  118922. Return: ???
  118923. Notes: this function is described as "unused" in the v2.05 and v2.2
  118924. documentation
  118925. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  118926. SeeAlso: AH=0Bh
  118927. --------N-610A-------------------------------
  118928. INT 61 - Banyan VINES - SET VALUE OF AN OS/2 BACKEND VARIABLE
  118929. AH = 0Ah
  118930. other parameters, if any, unknown
  118931. SeeAlso: AH=09h"VINES"
  118932. --------N-610B-------------------------------
  118933. INT 61 - PC/TCP kernel v2.05 - "net_sendto" - ???
  118934. AH = 0Bh
  118935. ???
  118936. Return: ???
  118937. Range: INT 20 to INT E0, selected by configuration
  118938. Notes: this function is described as "unused" in the v2.05 and v2.2
  118939. documentation
  118940. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  118941. SeeAlso: AH=0Ah
  118942. --------N-610B-------------------------------
  118943. INT 61 - Banyan VINES - SET PCCONFIG IN BACKEND
  118944. AH = 0Bh
  118945. other parameters, if any, unknown
  118946. SeeAlso: AH=05h"VINES",AH=06h"VINES"
  118947. --------b-610B-------------------------------
  118948. INT 61 - Atari Portfolio - DETERMINE CCM VALIDITY
  118949. AH = 0Bh
  118950. AL = drive number (00h = A:,01h = B:)
  118951. Return: CF clear if successful (card present and correct)
  118952. CF set on error
  118953. AH = error code (see #00234 at INT 13/AH=01h)
  118954. SeeAlso: AH=00h"Portfolio",AH=07h"Portfolio",AH=0Dh"Portfolio"
  118955. --------N-610C-------------------------------
  118956. INT 61 u - PC/TCP kernel v2.05+ - "net_stat" - GET CONNECTION STATISTICS
  118957. AH = 0Ch
  118958. BX = network descriptor or one of the following:
  118959. FFFCh for kernel ICMP statistics (see #03459)
  118960. FFFDh for kernel UDP statistics (see #03458)
  118961. FFFEh for kernel IP statistics (see #03457)
  118962. FFFFh for kernel TCP statistics (see #03456)
  118963. DS:DX -> 64-byte buffer
  118964. Return: CF clear if successful
  118965. buffer filled
  118966. CF set on error
  118967. AX = error code (see #03319)
  118968. Notes: the fields filled in for a network descriptor depend on the protocol
  118969. family used by that descriptor's connection
  118970. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  118971. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  118972. Format of PC/TCP kernel TCP statistics:
  118973. Offset Size Description (Table 03456)
  118974. 00h 16 BYTEs unused
  118975. 10h DWORD bytes sent
  118976. 14h DWORD bytes received
  118977. 18h 8 BYTEs unused
  118978. 20h DWORD packets sent
  118979. 24h DWORD packets received
  118980. 28h DWORD bad checksums
  118981. 2Ch DWORD count of window ignored by remote
  118982. 30h DWORD timeouts
  118983. 34h DWORD resets
  118984. 38h DWORD duplicate packets
  118985. 3Ch DWORD retransmits
  118986. SeeAlso: #03457,#03458,#03459
  118987. Format of PC/TCP kernel IP statistics:
  118988. Offset Size Description (Table 03457)
  118989. 00h 8 BYTEs unused
  118990. 08h DWORD invalid IP header length errors
  118991. 0Ch DWORD protocol errors (unwanted packets)
  118992. 10h DWORD duplicate fragments received
  118993. 14h DWORD bad fragments received
  118994. 18h DWORD security errors
  118995. 1Ch DWORD count of bad IP addresses received
  118996. 20h DWORD packets sent
  118997. 24h DWORD packets received
  118998. 28h DWORD bad checksums received
  118999. 2Ch DWORD total IP protocol errors
  119000. 30h DWORD fragmentation errors
  119001. 34h DWORD IP packets discarded + bad security + bad fragments
  119002. 38h DWORD fragments received
  119003. 3Ch 4 BYTEs unused
  119004. SeeAlso: #03456,#03458,#03459
  119005. Format of PC/TCP kernel UDP statistics:
  119006. Offset Size Description (Table 03458)
  119007. 00h 28 BYTEs unused
  119008. 1Ch DWORD packets dropped for lack of buffers
  119009. 20h DWORD packets sent
  119010. 24h DWORD packets received
  119011. 28h DWORD bad checksums
  119012. 2Ch DWORD port not listening errors
  119013. 30h 4 BYTEs unused
  119014. 34h DWORD truncated receives
  119015. 38h 8 BYTEs unused
  119016. SeeAlso: #03456,#03457,#03459
  119017. Format of PC/TCP kernel ICMP statistics:
  119018. Offset Size Description (Table 03459)
  119019. 00h DWORD "TimeEx" sent
  119020. 04h DWORD "TimeEx" received
  119021. 08h DWORD "ParamProb" sent
  119022. 0Ch DWORD "ParamProb" received
  119023. 10h DWORD redirects received
  119024. 14h DWORD source quenches received
  119025. 18h DWORD ICMP Echo Requests ("ping") sent
  119026. 1Ch DWORD ICMP Echo Requests received
  119027. 20h DWORD packets sent
  119028. 24h DWORD packets received
  119029. 28h DWORD bad packets received
  119030. 2Ch DWORD "DestUn" received
  119031. 30h DWORD packet send errors
  119032. 34h DWORD "DestUn" sent
  119033. 38h DWORD ICMP Echo replies received
  119034. 3Ch DWORD ICMP Echo replies sent
  119035. SeeAlso: #03456,#03457,#03458
  119036. --------N-610D-------------------------------
  119037. INT 61 - PC/TCP kernel v2.05+ - "is_netnd" - CHECK IF NETWORK DESCRIPTOR VALID
  119038. AH = 0Dh
  119039. BX = possible network descriptor
  119040. Return: CF clear if valid
  119041. CF set on error
  119042. AX = error code (see #03319 at INT 61"FTP Software")
  119043. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
  119044. SeeAlso: INT 61/AH=22h
  119045. --------b-610D-------------------------------
  119046. INT 61 - Atari Portfolio - GET SCREEN SIZE
  119047. AH = 0Dh
  119048. Return: AX = physical screen size (AH=rows, AL=columns)
  119049. DX = logical screen size (DH=rows, DL=columns)
  119050. SeeAlso: AH=00h"Portfolio",AH=0Bh"Portfolio",AH=0Eh"Portfolio"
  119051. --------N-610E-------------------------------
  119052. INT 61 - PC/TCP kernel v2.05+ - "net_select" - DETECT READINESS OF NETWORK
  119053. AH = 0Eh
  119054. BX = maximum value of network descriptor for which to return info
  119055. DS:DX -> 32-bit (max) array of bit flags for read readiness
  119056. ES:DI -> 32-bit (max) array of bit flags for write readiness
  119057. Return: CF clear
  119058. InstallCheck: test for the signature "TCPTSR" three bytes beyond the start
  119059. of the interrupt handler
  119060. Range: INT 20 to INT E0, selected by configuration
  119061. Notes: bits in the DS:DX buffer are set if the corresponding network
  119062. descriptor may be read without blocking; bits in the ES:DI buffer
  119063. are set if the corresponding network descriptor may be written
  119064. without blocking. This implies that the network descriptor has
  119065. opened correctly and the protocol initialized.
  119066. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  119067. --------b-610E-------------------------------
  119068. INT 61 - Atari Portfolio - GET/SET SCREEN MODE
  119069. AH = 0Eh
  119070. AL = function
  119071. 00h get mode
  119072. 01h set mode
  119073. DL = new mode (see #03460)
  119074. Return: DL = current/old mode
  119075. Note: if changing the mode places the cursor position or virtual screen
  119076. origin outside the displayed area, the screen origin will be reset
  119077. to (0,0), the screen cleared, and the cursor position set to (0,0)
  119078. SeeAlso: AH=00h"Portfolio",AH=0Dh"Portfolio",AH=0Fh"Portfolio",INT 10/AH=00h
  119079. Bitfields for Atari Portfolio screen mode:
  119080. Bit(s) Description (Table 03460)
  119081. 0 40x8 mode instead of 80x25
  119082. 1 tracked mode
  119083. 7 graphics
  119084. Note: the above bits are mutually exclusive
  119085. --------N-610F-------------------------------
  119086. INT 61 - PC/TCP kernel v2.05+ - "get_netversion" - GET SOFTWARE VERSION
  119087. AH = 0Fh
  119088. Return: CF clear
  119089. AX = version (AH = major, AL = minor)
  119090. BX = patch level
  119091. Notes: patch levels are no longer used starting with version 2.10; instead,
  119092. the minor version level is incremented.
  119093. Beame&Whiteside's BWPCTCP v3.0a shim reports version 2.05, but does not
  119094. set BX
  119095. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  119096. --------b-610F-------------------------------
  119097. INT 61 - Atari Portfolio - GET/SET CURSOR MODE
  119098. AH = 0Fh
  119099. AL = function
  119100. 00h get mode
  119101. 01h set mode
  119102. BL = new cursor mode
  119103. 00h cursor off
  119104. 01h underline
  119105. 02h block
  119106. 02h force mode (set size to reflect NumLock state)
  119107. Return: BL = current/old cursor mode
  119108. SeeAlso: AH=00h"Portfolio",AH=0Eh"Portfolio",AH=10h"Portfolio",INT 10/AH=01h
  119109. --------N-6110-------------------------------
  119110. INT 61 - PC/TCP kernel v2.05+ - "net_shutdown" - UNINSTALL
  119111. AH = 10h
  119112. Return: CF clear if successful
  119113. CF set on error
  119114. AX = error code (see #03319 at INT 61"FTP Software")
  119115. Range: INT 20 to INT E0, selected by configuration
  119116. Note: this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  119117. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  119118. --------b-6110-------------------------------
  119119. INT 61 - Atari Portfolio - GET/SET VIRTUAL SCREEN POSITION
  119120. AH = 10h
  119121. AL = function
  119122. 00h get position
  119123. Return: DH,DL = current row,column
  119124. 01h set position
  119125. DH = row
  119126. DL = column
  119127. Desc: get or specify the upper-left corner of the 40x8 window into the
  119128. logical screen
  119129. SeeAlso: AH=00h"Portfolio",AH=0Eh"Portfolio",AH=0Fh"Portfolio"
  119130. SeeAlso: AH=11h"Portfolio"
  119131. --------N-6111-------------------------------
  119132. INT 61 - PC/TCP kernel v2.05+ - "disable_async" - DISABLE ASYNCHRONOUS HANDLERS
  119133. AH = 11h
  119134. Return: CF clear
  119135. AX = previous state
  119136. 0000h async calls were already disabled
  119137. else async calls were enabled
  119138. SeeAlso: INT 61"FTP Software",INT 61/AH=12h
  119139. --------b-6111-------------------------------
  119140. INT 61 - Atari Portfolio - MOVE VIRTUAL SCREEN ORIGIN
  119141. AH = 11h
  119142. AL = number of lines to move
  119143. DL = direction of move (1=up, 2=down, 3=left, 4=right)
  119144. SeeAlso: AH=00h"Portfolio",AH=10h"Portfolio",AH=12h"Portfolio"
  119145. --------N-6112-------------------------------
  119146. INT 61 - PC/TCP kernel v2.05+ - "enable_async" - ENABLE ASYNCHRONOUS HANDLERS
  119147. AH = 12h
  119148. Return: CF clear
  119149. AX = previous state
  119150. 0000h async calls were disabled
  119151. else async calls were already enabled
  119152. SeeAlso: INT 61"FTP Software",INT 61/AH=11h
  119153. --------b-6112-------------------------------
  119154. INT 61 - Atari Portfolio - SCREEN REFRESH
  119155. AH = 12h
  119156. Return: nothing
  119157. Desc: copy contents of video RAM to LCD controller
  119158. SeeAlso: AH=10h"Portfolio",AH=11h"Portfolio",AH=15h"Portfolio"
  119159. --------N-6113-------------------------------
  119160. INT 61 - PC/TCP kernel v2.05 - "net_connect" - OPEN A NETWORK CONNECTION
  119161. AH = 13h
  119162. BX = network descriptor (FFFFh for automatic net_getdesc)
  119163. DX = protocol (see #03461)
  119164. DS:SI -> buffer for "addr" structure (see #03462)
  119165. Return: CF clear if successful
  119166. AX = network descriptor used or allocated
  119167. CF set on error
  119168. AX = error code (see #03319 at INT 61"FTP Software")
  119169. Notes: resets the connection with AH=19h in various cases
  119170. will wait for protocol on stream connections unless non-blocking was
  119171. set with AH=20h
  119172. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=18h,INT 61/AH=23h
  119173. SeeAlso: INT 63/AH=14h"BW-TCP"
  119174. (Table 03461)
  119175. Values for PC/TCP protocol:
  119176. 0001h raw net (undocumented)
  119177. 0002h raw IP
  119178. 0003h datagram (UDP)
  119179. 0004h stream (TCP)
  119180. 0005h raw ICMP
  119181. Format of structure "addr":
  119182. Offset Size Description (Table 03462)
  119183. 00h DWORD Internet address (network order)
  119184. 04h WORD remote socket number (network order)
  119185. 06h WORD local socket number (network order) 0000h means "you choose"
  119186. 08h BYTE protocol (see #03461)
  119187. --------N-6114-------------------------------
  119188. INT 61 Ou - PC/TCP kernel v2.05 - "net_recv" - NO LONGER SUPPORTED
  119189. AH = 14h
  119190. BX = network descriptor
  119191. Return: CF set
  119192. AX = 0018h (see #03319 at INT 61"FTP Software")
  119193. Notes: displays error message "Illegal system call! Please upgrade your
  119194. PCserver software" to standard output
  119195. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  119196. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=0Ah,INT 61/AH=15h
  119197. --------N-6115-------------------------------
  119198. INT 61 - PC/TCP kernel v2.05 - "net_recvfrom" - ???
  119199. AH = 15h
  119200. ???
  119201. Return: ???
  119202. Notes: this function is described as "unused" in the v2.2 documentation
  119203. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  119204. SeeAlso: INT 61/AH=0Bh,INT 61/AH=14h
  119205. --------b-6115-------------------------------
  119206. INT 61 - Atari Portfolio - SOUND GENERATION
  119207. AH = 15h
  119208. AL = function
  119209. 00h key click
  119210. 01h beep
  119211. 02h alarm
  119212. Return: nothing
  119213. SeeAlso: AH=00h"Portfolio",AH=12h"Portfolio",AH=16h"Portfolio"
  119214. --------N-6116-------------------------------
  119215. INT 61 - PC/TCP kernel v2.05+ - "net_peer" - GET DATA ON REMOTE PEER
  119216. AH = 16h
  119217. BX = network descriptor
  119218. DS:DX -> 9-byte buffer for "addr" structure (see #03462)
  119219. Return: CF clear if successful
  119220. buffer filled
  119221. CF set on error
  119222. AX = error code (see #03319 at INT 61"FTP Software")
  119223. Range: INT 20 to INT E0, selected by configuration
  119224. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  119225. --------b-6116-------------------------------
  119226. INT 61 - Atari Portfolio - MELODY TONE GENERATOR
  119227. AH = 16h
  119228. CX = length of tones in 1/100 sec
  119229. DL = tone code (see #03463)
  119230. SeeAlso: AH=15h"Portfolio",AH=17h"Portfolio"
  119231. (Table 03463)
  119232. Values for Atari Portfolio tone code:
  119233. 04h A6#01864.7 Hz
  119234. 05h B6 1975.5 Hz
  119235. 06h D7 2348.3 Hz
  119236. 07h D7# 2489.0 Hz
  119237. 0Eh F6# 1480.0 Hz
  119238. 25h C7 2093.0 Hz
  119239. 29h D6 1174.7 Hz
  119240. 2Ch G6# 1661.2 Hz
  119241. 2Fh C7# 2217.5 Hz
  119242. 30h D5# 622.3 Hz
  119243. 31h E5 659.3 Hz
  119244. 32h F5 698.5 Hz
  119245. 33h F5# 740.0 Hz
  119246. 34h G5 784.0 Hz
  119247. 35h G5# 830.6 Hz
  119248. 36h A5 880.6 Hz
  119249. 37h A5# 932.3 Hz
  119250. 38h B5 987.8 Hz
  119251. 39h C6 1046.5 Hz
  119252. 3Ah C6# 1108.7 Hz
  119253. 3Bh D6# 1244.5 Hz
  119254. 3Ch E6 1318.5 Hz
  119255. 3Dh F6 1396.9 Hz
  119256. 3Eh G6 1568.9 Hz
  119257. 3Fh A6 1760.0 Hz
  119258. --------N-6117-------------------------------
  119259. INT 61 - PC/TCP kernel v2.05+ - "net_reconfig" - RE-READ KERNEL CONFIGURATION
  119260. AH = 17h
  119261. Return: CF clear if successful
  119262. CF set on error
  119263. AX = error code (see #03319 at INT 61"FTP Software")
  119264. Notes: this routine is deprecated in v2.1+ and will eventually be withdrawn;
  119265. in v2.1+, this function calls AH=01h which should be used instead
  119266. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  119267. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=01h"PC/TCP"
  119268. --------b-6117-------------------------------
  119269. INT 61 - Atari Portfolio - DIAL NUMBER
  119270. AH = 17h
  119271. DS:SI -> ASCII string containing number to dial
  119272. CX = length of string
  119273. Note: valid characters for string are "0123456789ABCD*#"
  119274. SeeAlso: AH=00h"Portfolio",AH=15h"Portfolio",AH=16h"Portfolio"
  119275. SeeAlso: AH=18h"Portfolio"
  119276. --------N-6118-------------------------------
  119277. INT 61 - PC/TCP kernel v2.05+ - "net_eof" - CLOSE TRANSMIT SIDE OF CONNECTION
  119278. AH = 18h
  119279. BX = network descriptor
  119280. Return: CF clear if successful
  119281. CF set on error
  119282. AX = error code (see #03319 at INT 61"FTP Software")
  119283. Note: a TCP "FIN" command is sent and no further data may be transmitted,
  119284. although the connection remains open
  119285. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=13h"PC/TCP"
  119286. SeeAlso: INT 63/AH=0Eh"BW-TCP"
  119287. --------b-6118-------------------------------
  119288. INT 61 - Atari Portfolio - MUTE STATES
  119289. AH = 18h
  119290. AL = function
  119291. 00h get mute state
  119292. 01h set mute state
  119293. 02h get key click state
  119294. 03h set key click state
  119295. 04h get beep state
  119296. 05h set beep state
  119297. 06h get alarm state
  119298. 07h set alarm state
  119299. 08h get DTMF duration
  119300. 09h set DTMF duration
  119301. DL = new state ("set" functions) (00h off [muted], 01h on)
  119302. Return: DL = current state ("get" functions) (00h off [muted], 01h on)
  119303. SeeAlso: AH=15h"Portfolio",AH=16h"Portfolio",AH=17h"Portfolio"
  119304. SeeAlso: AH=19h"Portfolio"
  119305. --------N-6119-------------------------------
  119306. INT 61 - PC/TCP kernel v2.05+ - "net_abort" - RESET A NETWORK CONNECTION
  119307. AH = 19h
  119308. BX = network descriptor
  119309. Return: CF clear if successful
  119310. CF set on error
  119311. AX = error code (see #03319 at INT 61"FTP Software")
  119312. Desc: immediately destroys the specified connection
  119313. Note: send a TCP "RST" command if a stream connection is open
  119314. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=24h
  119315. --------b-6119-------------------------------
  119316. INT 61 - Atari Portfolio - GET SERIAL PORT PARAMETERS
  119317. AH = 19h
  119318. DX = serial port number
  119319. Return: AH = status
  119320. 00h successful
  119321. AL = composite parameters (see #00300 at INT 14/AH=00h"SERIAL")
  119322. other error
  119323. SeeAlso: AH=00h"Portfolio",AH=15h"Portfolio",AH=1Ah"Portfolio"
  119324. --------N-611A-------------------------------
  119325. INT 61 - PC/TCP kernel v2.05+ - "net_write" - WRITE TO THE NETWORK
  119326. AH = 1Ah
  119327. BX = network descriptor
  119328. CX = number of bytes to transmit (0000h allowed)
  119329. DX = send options (see #03464)
  119330. DS:SI -> data to be written
  119331. Return: CF clear if successful
  119332. AX = number of bytes actually written
  119333. DX = ???
  119334. CF set on error
  119335. AX = error code (see #03319 at INT 61"FTP Software")
  119336. InstallCheck: test for the signature "TCPTSR" three bytes beyond the start
  119337. of the interrupt handler
  119338. Range: INT 20h to INT E0h, selected by configuration
  119339. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Bh,INT 61/AH=1Ch
  119340. SeeAlso: INT 63/AH=19h"BW-TCP",INT 63/AH=1Bh"BW-TCP"
  119341. Bitfields for PC/TCP send options:
  119342. Bit(s) Description (Table 03464)
  119343. 0 signal "URG"ent data
  119344. 3 attempt rerouting on non-stream calls if first attempt fails
  119345. 4 send data with PUSH flag (no override of Nagle)
  119346. 5 fail rather than truncating datagram
  119347. 6 fail rather than blocking
  119348. 7 broadcast packet
  119349. --------b-611A-------------------------------
  119350. INT 61 - Atari Portfolio - GET PERIPHERAL ID BYTE
  119351. AH = 1Ah
  119352. Return: AH = peripheral ID byte
  119353. AL = 00h if no peripheral installed
  119354. Desc: get the ID code for the current terminating peripheral
  119355. SeeAlso: AH=00h"Portfolio",AH=18h"Portfolio",AH=1Bh"Portfolio"
  119356. --------N-611B-------------------------------
  119357. INT 61 - PC/TCP kernel v2.05+ - "net_read" - READ FROM THE NETWORK
  119358. AH = 1Bh
  119359. BX = network descriptor
  119360. CX = maximum number of bytes to read
  119361. DX = receive options (see #03465)
  119362. DS:SI -> buffer for data
  119363. ES:DI -> "addr" structure (see #03462) for remote from which to read
  119364. 0000h:0000h for any
  119365. Return: CF clear if successful
  119366. AX = number of bytes actually read
  119367. DX = ???
  119368. CF set on error
  119369. AX = error code (see #03319 at INT 61"FTP Software")
  119370. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Ah,INT 61/AH=1Dh
  119371. Bitfields for PC/TCP receive options:
  119372. Bit(s) Description (Table 03465)
  119373. 1 do not remove data from queue, just copy it
  119374. 2 do not copy data, just remove it from queue
  119375. 5 fail if datagram would be truncated
  119376. 6 do not block, return error if no data available
  119377. Note: special case for UDP: if both 1 and 2 set, return number of datagrams
  119378. --------b-611B-------------------------------
  119379. INT 61 - Atari Portfolio - SET PERIPHERAL ID BYTE
  119380. AH = 1Bh
  119381. AL = which peripheral to set
  119382. 00h serial
  119383. 01h parallel
  119384. DL = peripheral ID
  119385. Return: nothing
  119386. Desc: specify that a peripheral is compatible with the BIOS serial or
  119387. parallel services
  119388. SeeAlso: AH=1Ah"Portfolio",AH=1Ch"Portfolio"
  119389. --------N-611C-------------------------------
  119390. INT 61 - PC/TCP kernel v2.05+ - "net_writeto" - WRITE A DATAGRAM
  119391. AH = 1Ch
  119392. BX = network descriptor
  119393. CX = number of bytes to transmit (0000h allowed)
  119394. DX = send options (see #03464)
  119395. DS:SI -> data to be written
  119396. ES:DI -> "addr" structure (see #03462)
  119397. Return: CF clear if successful
  119398. AX = number of bytes actually written
  119399. DX = ???
  119400. CF set on error
  119401. AX = error code (see #03319 at INT 61"FTP Software")
  119402. Note: this function differs from AH=1Ah in that the address and socket
  119403. numbers can be overridden
  119404. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Ah,INT 61/AH=1Dh
  119405. SeeAlso: INT 63/AH=21h"BW-TCP"
  119406. --------b-611C-------------------------------
  119407. INT 61 - Atari Portfolio - PRESET/GET PERIPHERAL DATA
  119408. AH = 1Ch
  119409. AL = function
  119410. 00h preset data values
  119411. BL = data value
  119412. DX = I/O address
  119413. 01h get data values
  119414. BH = table entry number (04h-09h)
  119415. Return: if function 01h
  119416. BL = data value
  119417. DX = I/O address
  119418. Desc: preset peripheral I/O data in a table mapping I/O addresses to data
  119419. values; function 00h additionally outputs the data value to the
  119420. I/O port
  119421. SeeAlso: AH=1Ah"Portfolio",AH=1Bh"Portfolio",AH=1Eh"Portfolio"
  119422. --------N-611D-------------------------------
  119423. INT 61 - PC/TCP kernel v2.05+ - "net_readfrom" - READ A DATAGRAM
  119424. AH = 1Dh
  119425. BX = network descriptor
  119426. CX = maximum number of bytes to read
  119427. DX = receive options (see #03464)
  119428. DS:SI -> buffer for received data
  119429. ES:DI -> 9-byte buffer containing "addr" structure (see #03462)
  119430. Return: CF clear if successful
  119431. AX = number of bytes read
  119432. DX = ???
  119433. CF set on error
  119434. AX = error code (see #03319 at INT 61"FTP Software")
  119435. Notes: this function can read from any host or a designated host depending
  119436. on settings in the "addr" structure
  119437. only for use with datagram or Raw descriptors
  119438. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Bh,INT 61/AH=1Ch
  119439. --------N-611E-------------------------------
  119440. INT 61 - PC/TCP kernel v2.05+ - "net_flush" - FLUSH PENDING DATA
  119441. AH = 1Eh
  119442. BX = network descriptor
  119443. Return: CF clear if successful
  119444. CF set on error
  119445. AX = error code (see #03319 at INT 61"FTP Software")
  119446. Range: INT 20 to INT E0, selected by configuration
  119447. Notes: bufferred data is transmitted immediately, overriding Nagle's algorithm
  119448. if necessary
  119449. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  119450. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  119451. --------b-611E-------------------------------
  119452. INT 61 - Atari Portfolio - GET/SET CLOCK TICK SPEED
  119453. AH = 1Eh
  119454. AL = function
  119455. 00h get speed
  119456. 01h set speed
  119457. BX = clock tick speed
  119458. 0000h tick every 128 seconds
  119459. 0001h tick every second
  119460. Return: if function 00h
  119461. BX = clock tick speed
  119462. Note: the faster tick speed also uses more power
  119463. SeeAlso: AH=00h"Portfolio",AH=1Ch"Portfolio",AH=1Fh"Portfolio"
  119464. --------N-611F-------------------------------
  119465. INT 61 - PC/TCP kernel v2.05+ - "net_asynch" - SET UP ASYNCHRONOUS CALL-BACK
  119466. AH = 1Fh
  119467. BX = network descriptor
  119468. CX = event type (see #03466)
  119469. DS:SI -> event handler routine (see #03467)
  119470. ES:DI = 32-bit hint passed to handler
  119471. Return: CF clear if successful
  119472. DS:DX -> previous handler
  119473. CF set on error
  119474. AX = error code (see #03319 at INT 61"FTP Software")
  119475. Note: ICMP messages do not trigger events on stream connections
  119476. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  119477. (Table 03466)
  119478. Values for PC/TCP event type:
  119479. 00h alarm
  119480. 01h open (successfully opened stream connection)
  119481. 02h receive (data available)
  119482. 03h transmit (ACK received on stream connection)
  119483. 04h transmit flush???
  119484. 05h foreign close (remote host closed data connection)
  119485. 06h close (local host closed connection and protocol is complete)
  119486. 07h error (error code passed to handler as arg)
  119487. (Table 03467)
  119488. Values PC/TCP user event handler is called with:
  119489. BX = network descriptor
  119490. CX = event type (see #03466)
  119491. DS:DX -> arg
  119492. ES:DI = 32-bit hint value
  119493. STACK: small stack, possibly the DOS stack
  119494. --------b-611F-------------------------------
  119495. INT 61 - Atari Portfolio - GET KEY/NMI-INVOKED SCREEN REFRESH
  119496. AH = 1Fh
  119497. AL = function
  119498. 00h get state
  119499. 01h set state
  119500. DH = new refresh-on-NMI state
  119501. (00h disabled, 01h enabled, bit 7 set = don't change)
  119502. DL = new refresh-on-key state
  119503. Return: DH,DL = current/old states
  119504. SeeAlso: AH=00h"Portfolio",AH=1Eh"Portfolio",AH=20h"Portfolio"
  119505. --------N-6120-------------------------------
  119506. INT 61 - PC/TCP kernel v2.05+ - "set_option" - SET AN OPTION ON A DESCRIPTOR
  119507. AH = 20h
  119508. BX = network descriptor
  119509. CX = length of buffer (usually 04h)
  119510. DS:DX -> buffer containing option
  119511. SI = (ignored by v2.2-)
  119512. DI = option to set (see #03468)
  119513. Return: CF clear if successful
  119514. CF set on error
  119515. AX = error code (see #03319 at INT 61"FTP Software")
  119516. Notes: Beame&Whiteside's BWPCTCP shim only supports options 01h and 0Bh; all
  119517. others return CF clear
  119518. v2.11 reportedly stores the actual 32-bit value of an option in DS:DX
  119519. rather than using a buffer in memory
  119520. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=21h
  119521. (Table 03468)
  119522. Values for PC/TCP option to get or set:
  119523. 01h set non-blocking mode if non-zero
  119524. 02h timeout of call in milliseconds
  119525. 03h user-defined 4-byte magic cookie (not used by kernel)
  119526. 04h TCP window or UDP buffer count (WORD, unsigned)
  119527. 06h do TCP keep-alives if non-zero
  119528. 09h (v2.1+) set IP precedence
  119529. 0Ah (v2.1+) set IP type of service
  119530. 0Bh use a privileged port if port = 0
  119531. 0Ch turn off TCP PUSH bit and don't flush buffer every write (see AH=1Ah)
  119532. Note: use "C" true or false values for boolean options
  119533. --------b-6120-------------------------------
  119534. INT 61 - Atari Portfolio - GET/SET INT 09 REVECTORING
  119535. AH = 20h
  119536. AL = function
  119537. 00h get INT 09 revectoring state
  119538. 01h set state
  119539. DL = new state (00h disable, 01h enable)
  119540. Return: if function 00h
  119541. DL = new state (00h disabled, 01h enabled)
  119542. Desc: specify whether INT 09 is automatically revectored to the BIOS,
  119543. preventing applications from using their own INT 09 handler on the
  119544. incompatible keyboard hardware
  119545. SeeAlso: AH=1Eh"Portfolio",AH=1Fh"Portfolio",AH=24h"Portfolio"
  119546. --------N-6121-------------------------------
  119547. INT 61 - PC/TCP kernel v2.05+ - "get_option" - GET OPTIONS APPLIED TO NET DESCR
  119548. AH = 21h
  119549. BX = network descriptor
  119550. CX = length of buffer
  119551. DS:DX -> buffer for return values
  119552. SI = 0004h (ignored by v2.2-)
  119553. DI = option (see #03468)
  119554. Return: CF clear if successful
  119555. DS:DX -> value (usually 32 bits) returned by selected option
  119556. CF set on error
  119557. AX = error code (see #03319 at INT 61"FTP Software")
  119558. Notes: this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  119559. v2.11 reportedly stores the actual 32-bit value of an option in DS:DX
  119560. rather than using a buffer in memory
  119561. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=20h
  119562. --------N-6122-------------------------------
  119563. INT 61 u - PC/TCP kernel v2.05+ - "net_getdesc" - ALLOCATE NETWORK DESCRIPTOR
  119564. AH = 22h
  119565. Return: CF clear if successful
  119566. AX = network descriptor
  119567. CF set on error
  119568. AX = error code (see #03319 at INT 61"FTP Software")
  119569. Note: the descriptor will be an integer in the range 00h-1Fh, and a DOS call
  119570. is made to allocate this as a file descriptor. Hence a number may
  119571. not refer to a PC/TCP network descriptor and a DOS file handle
  119572. simultaneously.
  119573. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=13h,INT 61/AH=29h
  119574. --------N-6123-------------------------------
  119575. INT 61 - PC/TCP kernel v2.05+ - "net_listen" - LISTEN FOR INCOMING CONNECTIONS
  119576. AH = 23h
  119577. BX = network descriptor or FFFFh to allocate descriptor
  119578. DX = type of service
  119579. DS:SI -> "addr" structure (see #03462)
  119580. Return: CF clear if successful
  119581. AX = network descriptor
  119582. CF set on error
  119583. AX = error code (see #03319 at INT 61"FTP Software")
  119584. Notes: type of service and "addr" structure are as for AH=13h
  119585. any of the address structure can be zero; normally local socket number
  119586. is filled in prior to call
  119587. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=13h
  119588. SeeAlso: INT 63/AH=12h"BW-TCP"
  119589. --------N-6124-------------------------------
  119590. INT 61 - PC/TCP kernel v2.05+ - "net_abortall" - RESET ALL NETWORK CONNECTIONS
  119591. AH = 24h
  119592. Return: always successful
  119593. Note: performs "net_abort" (AH=19h) on all open non-global descriptors
  119594. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=19h
  119595. --------b-6124-------------------------------
  119596. INT 61 - Atari Portfolio - GET/SET ROM/CCM SPACE STATE
  119597. AH = 24h
  119598. AL = function
  119599. 00h get state
  119600. 01h set state
  119601. DL = new ROM state (see #03469)
  119602. DH = new CCM state (see #03470)
  119603. Return: CF clear if successful
  119604. DL = current/old ROM state
  119605. DH = current/old CCM state
  119606. CF set on error (invalid option or other error)
  119607. Desc: control whether memory cards or an extension ROM are visible in the
  119608. range 000C0000h to 000DFFFFh
  119609. SeeAlso: AH=00h"Portfolio",AH=20h"Portfolio",AH=26h"Portfolio"
  119610. (Table 03469)
  119611. Values for Atari Portfolio ROM space state:
  119612. 00h normal application ROM
  119613. 01h CCM drive A:
  119614. 02h CCM drive B:
  119615. 03h expansion ROM
  119616. SeeAlso: #03470
  119617. (Table 03470)
  119618. Values for Atari Portfolio CCM space state:
  119619. 00h CCM drives disabled
  119620. 01h CCM drive A: permanently enabled
  119621. 02h CCM drive B: permanently enabled
  119622. SeeAlso: #03469
  119623. --------N-6125-------------------------------
  119624. INT 61 - PC/TCP kernel v2.05+ - "ad_res_name" - GET HOST NAME GIVEN ADDRESS
  119625. AH = 25h
  119626. DX,BX = IP address in network order
  119627. CX = length of buffer for name
  119628. DS:SI -> buffer for host name
  119629. Return: CF clear if successful
  119630. buffer filled with ASCIZ host name
  119631. CF set on error
  119632. AX = error code (see #03319 at INT 61"FTP Software")
  119633. Note: this function will use the host table and or DNS to resolve the
  119634. address, depending on kernel configuration. Use this call for the
  119635. normal gethostbyaddr function.
  119636. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=26h,INT 61/AH=27h
  119637. --------N-6126-------------------------------
  119638. INT 61 - PC/TCP kernel v2.05+ - "ad_htable" - GET HOST NAME FROM LOCAL TABLE
  119639. AH = 26h
  119640. DX,BX = IP address in network order
  119641. CX = length of buffer
  119642. DS:SI -> buffer for host name
  119643. Return: CF clear if successful
  119644. buffer filled with ASCIZ host name
  119645. CF set on error
  119646. AX = error code (see #03319 at INT 61"FTP Software")
  119647. Notes: normally one would use AH=25h instead of this function
  119648. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  119649. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=25h,INT 61/AH=27h
  119650. --------b-6126-------------------------------
  119651. INT 61 - Atari Portfolio - GET/SET POWER CONTROL
  119652. AH = 26h
  119653. AL = function
  119654. 00h get state
  119655. 01h set state
  119656. DL = new state
  119657. 00h normal power-down on low battery
  119658. 01h no power-down, but display warning
  119659. 02h no power-down, no warning on low battery
  119660. Return: AL = current/old state
  119661. SeeAlso: AH=00h"Portfolio",AH=24h"Portfolio",AH=28h"Portfolio"
  119662. --------N-6127-------------------------------
  119663. INT 61 - PC/TCP kernel v2.05+ - "ad_domain" - GET HOST NAME FROM DNS
  119664. AH = 27h
  119665. DX,BX = IP address in network order
  119666. CX = length of buffer
  119667. DS:SI -> buffer for host name
  119668. Return: CF clear if successful
  119669. buffer filled with ASCIZ host name
  119670. CF set on error
  119671. AX = error code (see #03319 at INT 61"FTP Software")
  119672. Note: normally one would use AH=25h instead of this function
  119673. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=25h,INT 61/AH=26h
  119674. --------N-6128-------------------------------
  119675. INT 61 - PC/TCP kernel v2.05+ - "net_swap" - EXCHANGE TWO NETWORK DESCRIPTORS
  119676. AH = 28h
  119677. BX = network descriptor 1
  119678. CX = network descriptor 2
  119679. Return: CF clear if successful
  119680. CF set on error
  119681. AX = error code (see #03319 at INT 61"FTP Software")
  119682. Note: the two descriptors will exchange places; both must be local or both
  119683. global
  119684. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  119685. --------b-6128-------------------------------
  119686. INT 61 - Atari Portfolio - GET/SET TEXT/KEYBOARD LANGUAGE
  119687. AH = 28h
  119688. AL = function
  119689. 00h get languages
  119690. 01h set languages
  119691. DH = new text language (set bit 7 to leave unchanged)
  119692. DL = new keyboard language (set bit 7 to leave unchanged)
  119693. 03h get language table pointers
  119694. Return: if function 00h or 01h:
  119695. DH = current/old text language
  119696. DL = current/old keyboard language
  119697. if function 03h
  119698. ES:CX -> keyboard table (see #03471)
  119699. ES:DX -> language table (see #03471)
  119700. SeeAlso: AH=24h"Portfolio",AH=26h"Portfolio",AH=2Ch"Portfolio"
  119701. Format of Atari Portfolio language table:
  119702. Offset Size Description (Table 03471)
  119703. 00h BYTE number of languages supported
  119704. 01h N BYTEs supported languages
  119705. 00h English
  119706. 01h French
  119707. 02h German
  119708. 03h Spanish
  119709. 04h Italian
  119710. 05h Swedish
  119711. 06h Danish
  119712. --------N-6129-------------------------------
  119713. INT 61 - PC/TCP kernel v2.05+ - "net_getglobdesc" - ALLOCATE GLOBAL DESCRIPTOR
  119714. AH = 29h
  119715. Return: CF clear if successful
  119716. AX = network descriptor
  119717. CF set on error
  119718. AX = error code (see #03319 at INT 61"FTP Software")
  119719. Note: use this function rather than AH=22h to avoid a DOS call by the PC/TCP
  119720. kernel; the returned descriptor will be >= 40h and cannot be used
  119721. with "net_select" (AH=0Eh)
  119722. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=07h"PC/TCP"
  119723. SeeAlso: INT 61/AH=22h
  119724. --------N-612A-------------------------------
  119725. INT 61 - PC/TCP kernel v2.05+ - GET CONFIGURATION INFORMATION
  119726. AH = 2Ah
  119727. DS:SI -> 26-byte buffer for configuration information (see #03472)
  119728. Return: CF clear
  119729. AX = 0000h
  119730. buffer filled
  119731. Notes: size of buffer may vary with kernel version; 26 bytes is the size for
  119732. versions 2.05 through 2.2
  119733. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  119734. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  119735. Format of PC/TCP configuration information:
  119736. Offset Size Description (Table 03472)
  119737. 00h BYTE maximum TCP connections available
  119738. 01h BYTE maximum UDP connections available
  119739. 02h BYTE maximum IP connections available
  119740. 03h BYTE maximum Raw Net connections available
  119741. 04h BYTE number of TCP connections currently in use
  119742. 05h BYTE number of UDP connections currently in use
  119743. 06h BYTE number of IP connections currently in use
  119744. 07h BYTE number of Raw Net connections currently in use
  119745. 08h WORD number of local network descriptors active
  119746. 0Ah WORD number of global network descriptors active
  119747. 0Ch BYTE maximum header size on network
  119748. 0Dh BYTE maximum trailer size on network
  119749. 0Eh WORD size of large packet buffer
  119750. 10h WORD number of network interfaces attached
  119751. 12h DWORD milliseconds since kernel started
  119752. 16h DWORD IP broadcast address
  119753. --------N-612B-------------------------------
  119754. INT 61 - PC/TCP kernel v2.02+ - "net_alarm" - SET TIMED ASYNCHRONOUS EVENT
  119755. AH = 2Bh
  119756. BX = network descriptor
  119757. CX,DX = time before alarm in milliseconds
  119758. DS:SI -> handler which will receive call (see #03467 at INT 61/AH=1Fh)
  119759. ES:DI = 32-bit cookie passed to handler
  119760. Return: CF clear if successful
  119761. CF set on error
  119762. AX = error code (see #03319 at INT 61"FTP Software")
  119763. Notes: this function will cause a NET_AS_ALARM to be generated; it is intended
  119764. for TSRs, etc. to regain control periodically
  119765. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  119766. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  119767. --------b-612C-------------------------------
  119768. INT 61 - Atari Portfolio - GET VERSION
  119769. AH = 2Ch
  119770. Return: DS:BX -> BIOS version string ('$'-terminated)
  119771. SeeAlso: AH=28h"Portfolio",AH=2Dh"Portfolio"
  119772. --------b-612D-------------------------------
  119773. INT 61 - Atari Portfolio - TURN SYSTEM OFF
  119774. AH = 2Dh
  119775. Return: nothing
  119776. SeeAlso: AH=00h"Portfolio",AH=2Ch"Portfolio",AH=2Eh"Portfolio"
  119777. --------b-612E-------------------------------
  119778. INT 61 - Atari Portfolio - ENABLE/DISABLE SYSTEM STATUS LINE
  119779. AH = 2Eh
  119780. AL = new state
  119781. 00h disabled
  119782. 01h enabled
  119783. DH,DL = row,column at which to display
  119784. Return: nothing
  119785. SeeAlso: AH=00h"Portfolio",AH=2Dh"Portfolio",AH=30h"Portfolio"
  119786. --------N-6130-------------------------------
  119787. INT 61 - PC/TCP kernel v2.05+ - "icmp_ping" - SEND ICMP ECHO REQUEST (PING)
  119788. AH = 30h
  119789. BX,DX = IP address of host
  119790. CX = length of data to send
  119791. Return: CF clear if successful (i.e. reply received)
  119792. CF set on error
  119793. AX = error code (see #03319 at INT 61"FTP Software")
  119794. Note: this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  119795. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  119796. --------b-6130-------------------------------
  119797. INT 61 - Atari Portfolio - FILE TRANSFER SERVICES
  119798. AH = 30h
  119799. AL = function
  119800. 00h transmit block
  119801. CX = number of bytes to send
  119802. 01h receive block
  119803. CX = buffer size
  119804. 02h open ports
  119805. 03h close ports
  119806. 04h wait 500ms
  119807. DS:DX -> start of data buffer
  119808. Return: DL = status
  119809. 00h successful
  119810. 01h buffer too small
  119811. 02h transmission timeout
  119812. 03h checksum failure
  119813. 04h invalid subfunction
  119814. 05h peripheral not installed
  119815. if function 01h:
  119816. CX = number of bytes received
  119817. SeeAlso: AH=00h"Portfolio",AH=2Eh"Portfolio"
  119818. --------N-61---------------------------------
  119819. INT 61 u - PC/TCP kernel v2.05 - NOP for SLIP kernel
  119820. AH = function
  119821. 31h "net_add_route"
  119822. 32h "net_del_route"
  119823. 33h "net_dump_routes"
  119824. Notes: these functions are described as "unused" in the v2.2 documentation
  119825. router configuration can be altered using INT 61/AH=01h
  119826. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  119827. --------N-6132-------------------------------
  119828. INT 61 U - PC/TCP kernel v2.3 - GET ???
  119829. AH = 32h
  119830. Return: AX = ???
  119831. Note: this function is fully re-entrant, and may be called even when another
  119832. PC/TCP kernel call is already in progress
  119833. --------N-6134-------------------------------
  119834. INT 61 U - PC/TCP kernel v2.1+ - "icmp_destun" - ???
  119835. AH = 34h
  119836. ???
  119837. Return: ???
  119838. Notes: this function is described as "reserved" in the v2.2 documentation
  119839. this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  119840. --------N-6150-------------------------------
  119841. INT 61 - PC/TCP kernel v2.05+ - "nm_prs_addr" - TRANSLATE NUMERICAL IP ADDRESS
  119842. AH = 50h
  119843. DS:DX -> ASCIZ IP address as "dotted quad" (max 127 chars)
  119844. Return: CF clear if successful
  119845. DX:AX -> IP address
  119846. CF set on error
  119847. AX = error code (see #03319 at INT 61"FTP Software")
  119848. Range: INT 20 to INT E0, selected by configuration
  119849. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  119850. --------N-6151-------------------------------
  119851. INT 61 - PC/TCP kernel v2.05+ - "nm_htable" - RESOLVE NAME USING HOST TABLE
  119852. AH = 51h
  119853. CX = size of destination buffer
  119854. DS:DX -> ASCIZ host name (max 127 chars)
  119855. ES:DI -> destination buffer or 0000h:0000h
  119856. Return: CF clear if successful
  119857. DX:AX -> IP address of host
  119858. destination buffer filled with canonical host name
  119859. CF set on error
  119860. AX = error code (see #03319 at INT 61"FTP Software")
  119861. Note: this function calls DOS, and can fail if the DOS call fails
  119862. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  119863. --------N-6152-------------------------------
  119864. INT 61 - PC/TCP kernel v2.05+ - "nm_domain" - RESOLVE NAME USING DNS
  119865. AH = 52h
  119866. CX = size of destination buffer
  119867. DS:DX -> ASCIZ host name (max 127 chars)
  119868. ES:DI -> destination buffer or 0000h:0000h
  119869. Return: CF clear if successful
  119870. DX:AX -> IP address of host
  119871. destination buffer filled with canonical host name
  119872. CF set on error
  119873. AX = error code (see #03319 at INT 61"FTP Software")
  119874. Note: this function will poll all configured domain name servers if necessary
  119875. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  119876. --------N-6153-------------------------------
  119877. INT 61 - PC/TCP kernel v2.05- - "nm_ien116" - RESOLVE HOST NAME USING IEN116
  119878. AH = 53h
  119879. DS:DX -> ASCIZ name to be resolved (max 127 chars)
  119880. Return: CF clear if successful
  119881. DX:AX -> IP address of host
  119882. CF set on error
  119883. AX = error code (see #03319 at INT 61"FTP Software")
  119884. Range: INT 20 to INT E0, selected by configuration
  119885. Note: this function is not supported by v2.10+
  119886. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  119887. --------N-6154-------------------------------
  119888. INT 61 - PC/TCP kernel v2.05+ - "nm_res_name" - RESOLVE HOST NAME
  119889. AH = 54h
  119890. CX = size of destination buffer
  119891. DS:DX -> ASCIZ host name (max 127 chars)
  119892. ES:DI -> destination buffer or 0000h:0000h
  119893. Return: CF clear if successful
  119894. DX:AX -> IP address of host
  119895. destination buffer filled with canonical host name
  119896. CF set on error
  119897. AX = error code (see #03319 at INT 61"FTP Software")
  119898. Note: this function uses all configured methods in turn to resolve the
  119899. name (numerical, then host table, then DNS, then IEN116)
  119900. BUG: the SLIP kernel for v2.05 bounds-checks the wrong register, so values
  119901. greater than 54h in AH may crash the system. Other kernels may have
  119902. this bug as well; it has been fixed in the v2.2 SLIPDRV kernel.
  119903. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=50h,INT 61/AH=51h
  119904. SeeAlso: INT 61/AH=52h,INT 61/AH=53h
  119905. --------N-6155-------------------------------
  119906. INT 61 U - PC/TCP kernel v2.3 - ???
  119907. AH = 55h
  119908. ???
  119909. Return: ???
  119910. SeeAlso: INT 61"FTP Software"
  119911. --------N-6156-------------------------------
  119912. INT 61 U - PC/TCP kernel v2.3 - ???
  119913. AH = 56h
  119914. ???
  119915. Return: ???
  119916. SeeAlso: INT 61"FTP Software"
  119917. --------N-6157-------------------------------
  119918. INT 61 U - PC/TCP kernel v2.3 - ???
  119919. AH = 57h
  119920. ???
  119921. Return: ???
  119922. SeeAlso: INT 61"FTP Software"
  119923. --------N-6158-------------------------------
  119924. INT 61 U - PC/TCP kernel v2.3 - ???
  119925. AH = 58h
  119926. ???
  119927. Return: ???
  119928. SeeAlso: INT 61"FTP Software"
  119929. --------N-6159-------------------------------
  119930. INT 61 U - PC/TCP kernel v2.3 - ???
  119931. AH = 59h
  119932. ???
  119933. Return: ???
  119934. SeeAlso: INT 61"FTP Software"
  119935. --------N-615A-------------------------------
  119936. INT 61 U - PC/TCP kernel v2.3 - ???
  119937. AH = 5Ah
  119938. ???
  119939. Return: ???
  119940. SeeAlso: INT 61"FTP Software"
  119941. --------N-615B-------------------------------
  119942. INT 61 U - PC/TCP kernel v2.3 - ???
  119943. AH = 5Bh
  119944. ???
  119945. Return: ???
  119946. SeeAlso: INT 61"FTP Software"
  119947. --------N-615C-------------------------------
  119948. INT 61 U - PC/TCP kernel v2.3 - ???
  119949. AH = 5Ch
  119950. ???
  119951. Return: ???
  119952. SeeAlso: INT 61"FTP Software"
  119953. --------N-615D-------------------------------
  119954. INT 61 U - PC/TCP kernel v2.3 - ???
  119955. AH = 5Dh
  119956. ???
  119957. Return: ???
  119958. SeeAlso: INT 61"FTP Software"
  119959. --------N-615E-------------------------------
  119960. INT 61 U - PC/TCP kernel v2.3 - ???
  119961. AH = 5Eh
  119962. ???
  119963. Return: ???
  119964. SeeAlso: INT 61"FTP Software"
  119965. --------N-615F-------------------------------
  119966. INT 61 U - PC/TCP kernel v2.3 - ???
  119967. AH = 5Fh
  119968. ???
  119969. Return: ???
  119970. SeeAlso: INT 61"FTP Software"
  119971. --------!---Section--------------------------
  119972. Interrupt List, part 16 of 18
  119973. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  119974. --------*-62---------------------------------
  119975. INT 62 - reserved for user interrupt
  119976. --------d-62---------------------------------
  119977. INT 62 - Adaptec and OMTI controllers - DRIVE 0 DATA
  119978. Notes: this vector stores the third four bytes of the parameter table for
  119979. hard disk 0
  119980. SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 63"Adaptec"
  119981. --------b-62---------------------------------
  119982. INT 62 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
  119983. Desc: the low word of this vector contains the segment of the RAM data area
  119984. to be used by the expansion ROM at F400h:2000h, and the high word
  119985. contains the length of the data area; this segment and size are
  119986. both set to 0000h if no ROM is installed at F400h:2000h
  119987. SeeAlso: INT 61"TI Professional PC",INT 63"TI Professional"
  119988. SeeAlso: INT 66"TI Professional PC"
  119989. --------b-62---------------------------------
  119990. INT 62 - HP 95LX - USED BY CALCULATOR
  119991. SeeAlso: INT 60/DI=0104h"HP 95LX"
  119992. ----------62---------------------------------
  119993. INT 62 - MS SQL Server/Sybase DBLIBRARY interface - ???
  119994. AH = function (00h to 07h)
  119995. CX = FFFEh
  119996. DX = FFFFh
  119997. ???
  119998. Return: ???
  119999. InstallCheck: test for the string "DBLIBRARY" two bytes past the interrupt
  120000. handler
  120001. SeeAlso: AH=08h"SQL"
  120002. Index: installation check;MS SQL Server|installation check;Sybase DBLIBRARY
  120003. ----------62---------------------------------
  120004. INT 62 - MPAUSE - ???
  120005. details not yet avialable
  120006. Program: MPAUSE is a program by Manfred Michael which appeared in the German
  120007. _EGA-Handbuch_ from m&t-Verlag
  120008. --------N-62---------------------------------
  120009. INT 62 - XFS v1.76 - FILTERED PACKET DRIVER API
  120010. Program: XFS is a shareware Network File System client by Robert Juhasz
  120011. Desc: XFS requires a packet driver to operate. Since it does redirections,
  120012. etc., it provides its own packet driver entry point, changing the
  120013. signature string of the original packet driver to "XKT DRVR" so that
  120014. it will no longer be found by the packet driver installation check
  120015. InstallCheck: scan for the signature string "PKT DRVR" three bytes past the
  120016. interrupt handler (the same as that for the packet driver
  120017. specification)
  120018. Range: INT 61 to INT 66, selected by scanning for two consecutive free
  120019. vectors and hooking the second
  120020. SeeAlso: INT 60"Packet Driver Specification",INT 61"XFS"
  120021. ----------62---------------------------------
  120022. INT 62 - PC-DRAFT - PRIMARY DISPLAY DRIVER
  120023. ???
  120024. Return: ???
  120025. Program: PC-DRAFT is a powerful CAD environment by rhv.
  120026. SeeAlso: INT 64"PC-DRAFT",INT 65"PC-DRAFT",INT 66"PC-DRAFT",INT 67"PC-DRAFT"
  120027. --------N-6200-------------------------------
  120028. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET PHYSICAL HARDWARE ADDRESS
  120029. AH = 00h
  120030. DS:DX -> 6-byte buffer for address
  120031. Return: AX = length of hardware address???
  120032. Range: INT 4C to INT FB, selected by configuration
  120033. Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  120034. interrupts (62h and 63h by default); the BW-NFS client uses a third
  120035. consecutive interrupt (64h by default) if it is loaded
  120036. SeeAlso: AH=01h"ETHDEV",AH=04h"ETHDEV",AH=09h"ETHDEV",AH=0Eh"ETHDEV"
  120037. SeeAlso: AH=14h"ETHDEV",AH=18h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
  120038. SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"
  120039. --------V-620000-----------------------------
  120040. INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCATE" - CREATE VIRTUAL VIDEO PAGE
  120041. AX = 0000h
  120042. BX = page number (0000h-003Fh)
  120043. Return: AX = status (0000h,0001h,0007h,0008h) (see #03473)
  120044. Program: FGDRIVER is the external video driver for the shareware
  120045. Fastgraph/Light by Ted Gruber Software
  120046. InstallCheck: test for the signature "FG" ten bytes beyond the start of the
  120047. interrupt handler
  120048. Notes: the FGDRIVER functions are rearranged with each major release, but
  120049. their parameters do not change (see #03474)
  120050. The amount of memory required by the virtual video page depends on the
  120051. current video mode
  120052. SeeAlso: AX=0001h,AX=0002h,AX=0003h,AX=0038h
  120053. Index: installation check;Fastgraph/Light
  120054. (Table 03473)
  120055. Values for FGDRIVER status:
  120056. 0000h successful
  120057. 0001h specified page is a physical or logical page
  120058. 0007h virtual page created/released, but memory control blocks corrupted
  120059. 0008h not enough memory
  120060. 0009h attempt to free a page which was never created
  120061. FFFCh insufficient memory
  120062. FFFDh page already created, or exists as physical or virtual page
  120063. FFFEh invalid page number
  120064. FFFFh memory manager not initialized
  120065. SeeAlso: #03474
  120066. (Table 03474)
  120067. Values for FGDRIVER functions (by driver version):
  120068. Name v1.10 v3.03 v4.02
  120069. FG_ALLOCATE 0042h 0000h 0000h
  120070. FG_ALLOCCMS 009Dh 0001h 0001h
  120071. FG_ALLOCEMS 009Eh 0002h 0002h
  120072. FG_ALLOCXMS 009Fh 0003h 0003h
  120073. FG_AUTOMODE 0004h 0004h 0004h
  120074. FG_BESTMODE 0003h 0005h 0005h
  120075. FG_BOX 00A2h 0006h 0006h
  120076. FG_BOXDEPTH 00A3h 0007h 0007h
  120077. FG_BOXX -- 0008h 0008h
  120078. FG_BUTTON 0078h 0009h 0009h
  120079. FG_CAPSLOCK 0070h 000Ah 000Ah
  120080. FG_CHGATTR 0035h 000Bh 000Bh
  120081. FG_CHGTEXT 0036h 000Ch 000Ch
  120082. FG_CIRCLE 0030h 000Dh 000Dh
  120083. FG_CIRCLEF -- 000Eh 000Eh
  120084. FG_CLIPMAP -- -- 000Fh
  120085. FG_CLIPMASK 0052h 000Fh 0010h
  120086. FG_CLPIMAGE 004Ah 0010h 0011h
  120087. FG_CLPRECT 002Bh 0011h 0012h
  120088. FG_COLORS -- -- 0013h
  120089. FG_COPYPAGE 005Fh 0012h 0014h
  120090. FG_CURSOR 0007h 0013h 0015h
  120091. FG_DASH 0027h 0014h 0016h
  120092. FG_DASHREL 0028h 0015h 0017h
  120093. FG_DEFCOLOR 0014h 0016h 0018h
  120094. FG_DEFPAGES -- 0017h 0019h
  120095. FG_DISPFILE 004Fh 0018h 001Ah
  120096. FG_DISPLAY 004Dh 0019h 001Bh
  120097. FG_DISPLAYP 004Eh 001Ah 001Ch
  120098. FG_DISPPCX 0060h -- --
  120099. FG_DRAW 0025h 001Bh 001Dh
  120100. FG_DRAWMAP 0047h 001Ch 001Eh
  120101. FG_DRAWMASK 0051h 001Dh 001Fh
  120102. FG_DRAWREL 0026h 001Eh 0020h
  120103. FG_DRAWRELX -- 001Fh 0021h
  120104. FG_DRAWX -- 0020h 0022h
  120105. FG_DRECT 002Ch 0021h 0023h
  120106. FG_DRWIMAGE 0049h 0022h 0024h
  120107. FG_EGACHECK 0005h 0023h 0025h
  120108. FG_ELLIPSE 002Dh 0024h 0026h
  120109. FG_ELLIPSEF -- 0025h 0027h
  120110. FG_ERASE 001Eh 0026h 0028h
  120111. FG_FADEIN 0064h 0027h 0029h
  120112. FG_FADEOUT 0065h 0028h 002Ah
  120113. FG_FILLPAGE -- 0029h 002Bh
  120114. FG_FINDPAGE -- -- 002Ch
  120115. FG_FLICDONE -- -- 002Dh
  120116. FG_FLICHEAD -- -- 002Eh
  120117. FG_FLICMODE -- -- 002Fh
  120118. FG_FLICOPEN -- -- 0030h
  120119. FG_FLICPLAY -- -- 0031h
  120120. FG_FLICSIZE -- -- 0032h
  120121. FG_FLICSKIP -- -- 0033h
  120122. FG_FLIPMASK 0054h 002Ah 0034h
  120123. FG_FLOOD -- 002Bh 0035h
  120124. FG_FLPIMAGE 004Ch 002Ch 0036h
  120125. FG_FONTSIZE -- 002Dh 0037h
  120126. FG_FREEPAGE 0043h 002Eh 0038h
  120127. FG_GETADDR 0044h 002Fh 0039h
  120128. FG_GETATTR 0037h 0030h 003Ah
  120129. FG_GETBANKS -- -- 003Bh
  120130. FG_GETBLOCK -- 0031h 003Ch
  120131. FG_GETCHAR 0038h 0032h 003Dh
  120132. FG_GETCLIP -- -- 003Eh
  120133. FG_GETCLOCK 0099h 0033h 003Fh
  120134. FG_GETCOLOR 0015h 0034h 0040h
  120135. FG_GETDACS 00A4h 0035h 0041h
  120136. FG_GETENTRY -- 0036h 0042h
  120137. FG_GETHPAGE 0040h 0037h 0043h
  120138. FG_GETIMAGE 0048h 0038h 0044h
  120139. FG_GETINDEX 0016h 0039h 0045h
  120140. FG_GETKEY 006Eh 003Ah 0046h
  120141. FG_GETLINES 0010h 003Bh 0047h
  120142. FG_GETMAP 0046h 003Ch 0048h
  120143. FG_GETMAXX 000Ah 003Dh 0049h
  120144. FG_GETMAXY 000Bh 003Eh 004Ah
  120145. FG_GETMODE 0000h 003Fh 004Bh
  120146. FG_GETPAGE 003Ch 0040h 004Ch
  120147. FG_GETPIXEL 0020h 0041h 004Dh
  120148. FG_GETRGB 001Ch 0042h 004Eh
  120149. FG_GETVIEW -- -- 004Fh
  120150. FG_GETVPAGE 003Eh 0043h 0050h
  120151. FG_GETXBOX -- -- 0051h
  120152. FG_GETXJOY 0076h 0044h 0052h
  120153. FG_GETXJUST -- -- 0053h
  120154. FG_GETXPOS 0021h 0045h 0054h
  120155. FG_GETYBOX -- -- 0055h
  120156. FG_GETYJOY 0077h 0046h 0056h
  120157. FG_GETYJUST -- -- 0057h
  120158. FG_GETYPOS 0022h 0047h 0058h
  120159. FG_HUSH 008Eh 0048h 0059h
  120160. FG_HUSHNEXT 008Fh 0049h 005Ah
  120161. FG_IMAGEBUF -- 004Ah 005Bh
  120162. FG_IMAGESIZ 0062h 004Bh 005Ch
  120163. FG_INITEMS 00A0h 004Ch 005Dh
  120164. FG_INITJOY 0075h 004Dh 005Eh
  120165. FG_INITPM -- -- 005Fh??? (NOP in v4.02)
  120166. FG_INITXMS 00A1h 004Eh 0060h
  120167. FG_INSIDE -- 004Fh 0061h
  120168. FG_INTJOY 0079h 0050h 0062h
  120169. FG_INTKEY 006Fh 0051h 0063h
  120170. FG_INVERT -- -- 0064h
  120171. FG_JUSTIFY -- 0052h 0065h
  120172. FG_KBINIT -- 0053h 0066h
  120173. FG_KBLAST -- -- 0067h
  120174. FG_KBRESET -- -- 0068h
  120175. FG_KBTEST -- 0054h 0069h
  120176. FG_LOADPCX -- -- 006Ah
  120177. FG_LOCATE 0033h 0055h 006Bh
  120178. FG_MAKEPCX 0061h 0057h 006Ch
  120179. FG_MAKEPPR -- 0058h 006Dh
  120180. FG_MAKESPR -- 0059h 006Eh
  120181. FG_MAPRGB 001Dh 005Ah 006Fh
  120182. FG_MEASURE 0098h 005Bh 0070h
  120183. FG_MEMAVAIL 009Bh 005Ch 0071h
  120184. FG_MEMORY -- 005Dh 0072h
  120185. FG_MOUSE256 -- -- 0073h
  120186. FG_MOUSEBUT 007Ch 005Eh 0074h
  120187. FG_MOUSECUR 007Eh 005Fh 0075h
  120188. FG_MOUSEFIN -- 0060h 0076h
  120189. FG_MOUSEINI 007Ah 0061h 0077h
  120190. FG_MOUSELIM 0080h 0062h 0078h
  120191. FG_MOUSEMOV 0081h 0063h 0079h
  120192. FG_MOUSEPOS 007Dh 0064h 007Ah
  120193. FG_MOUSEPTR 007Fh 0065h 007Bh
  120194. FG_MOUSESPD 0082h 0066h 007Ch
  120195. FG_MOUSEVIS 007Bh 0067h 007Dh
  120196. FG_MOVE 0023h 0068h 007Eh
  120197. FG_MOVEREL 0024h 0069h 007Fh
  120198. FG_MUSIC 008Ch 006Ah 0080h
  120199. FG_MUSICB 008Dh 006Bh 0081h
  120200. FG_NUMLOCK 0072h 006Ch 0082h
  120201. FG_PACK -- -- 0083h
  120202. FG_PAGESIZE -- 006Dh 0084h
  120203. FG_PAINT 002Fh 006Eh 0085h
  120204. FG_PALETTE 0017h 006Fh 0086h
  120205. FG_PALETTES 0018h 0070h 0087h
  120206. FG_PAN 0066h 0071h 0088h
  120207. FG_PATTERN 0050h 0072h 0089h
  120208. FG_PCXHEAD -- 0073h 008Ah
  120209. FG_PCXMODE -- 0074h 008Bh
  120210. FG_PCXPAL -- -- 008Ch
  120211. FG_PCXRANGE -- -- 008Dh
  120212. FG_PLAYING 0091h 0075h 008Eh
  120213. FG_POINT 001Fh 0076h 008Fh
  120214. FG_POINTX -- 0077h 0090h
  120215. FG_POLYEDGE -- -- 0091h
  120216. FG_POLYFILL -- 0078h 0092h
  120217. FG_POLYGON 002Eh 0079h 0093h
  120218. FG_POLYLINE -- 007Ah 0094h
  120219. FG_POLYOFF -- 007Bh 0095h
  120220. FG_PRINT -- 007Ch 0096h
  120221. FG_PRINTC -- -- 0097h
  120222. FG_PUTBLOCK -- 007Dh 0098h
  120223. FG_PUTIMAGE -- 007Eh 0099h
  120224. FG_QUIET 0090h 007Fh 009Ah
  120225. FG_RECT 002Ah 0080h 009Bh
  120226. FG_RESET 0006h 0081h 009Ch
  120227. FG_RESIZE 0045h 0082h 009Dh
  120228. FG_RESTORE 005Bh 0083h 009Eh
  120229. FG_RESUME 0092h 0084h 009Fh
  120230. FG_REVIMAGE 004Bh 0085h 00A0h
  120231. FG_REVMASK 0053h 0086h 00A1h
  120232. FG_SAVE -- 0087h 00A2h
  120233. FG_SCALE -- -- 00A3h
  120234. FG_SCRLOCK 0074h 0088h 00A4h
  120235. FG_SCROLL 0067h 0089h 00A5h
  120236. FG_SETATTR 0019h 008Ah 00A6h
  120237. FG_SETBANKS -- -- 00A7h
  120238. FG_SETCAPS 0071h 008Bh 00A8h
  120239. FG_SETCLIP 0029h 008Ch 00A9h
  120240. FG_SETCOLOR 001Ah 008Dh 00AAh
  120241. FG_SETDACS 00A5h 008Eh 00ABh
  120242. FG_SETENTRY -- 008Fh 00ACh
  120243. FG_SETFUNC 009Ch 0090h 00ADh
  120244. FG_SETHPAGE 0041h 0091h 00AEh
  120245. FG_SETLINES 0011h 0092h 00AFh
  120246. FG_SETMODE 0001h 0093h 00B0h
  120247. FG_SETNUM 0073h 0094h 00B1h
  120248. FG_SETPAGE 003Dh 0095h 00B2h
  120249. FG_SETRGB 001Bh 0096h 00B3h
  120250. FG_SETVIEW -- -- 00B5h
  120251. FG_SETVPAGE 003Fh 0098h 00B6h
  120252. FG_SHEAR -- -- 00B7h
  120253. FG_SHOWFLIC -- -- 00B8h
  120254. FG_SHOWPCX -- 009Ah 00B9h
  120255. FG_SHOWPPR -- 009Bh 00BAh
  120256. FG_SHOWSPR -- 009Ch 00BBh
  120257. FG_SOUND 0088h 009Dh 00BCh
  120258. FG_SOUNDS 0089h 009Eh 00BDh
  120259. FG_SPLIT -- -- 00BEh
  120260. FG_STALL 0097h 009Fh 00BFh
  120261. FG_SUSPEND 0093h 00A0h 00C0h
  120262. FG_SVGAINIT -- 00A1h 00C1h
  120263. FG_SVGASTAT -- 00A2h 00C2h
  120264. FG_SVGAVER -- 00A3h 00C3h
  120265. FG_TCDEFINE -- 00A4h 00C4h
  120266. FG_TCMASK 005Eh 00A5h 00C5h
  120267. FG_TCXFER 005Dh 00A6h 00C6h
  120268. FG_TESTMODE 0002h 00A7h 00C7h
  120269. FG_TEXT 0032h 00A8h 00C8h
  120270. FG_TEXTC -- -- 00C9h
  120271. FG_TRANSFER 005Ch 00A9h 00CAh
  120272. FG_UNPACK -- -- 00CBh
  120273. FG_VBADDR -- -- 00CCh
  120274. FG_VBALLOC -- -- 00CDh
  120275. FG_VBCLOSE -- -- 00CEh
  120276. FG_VBCOPY -- -- 00CFh
  120277. FG_VBCUT -- -- 00D0h
  120278. FG_VBDEFINE -- -- 00D1h
  120279. FG_VBFREE -- -- 00D2h
  120280. FG_VBHANDLE -- -- 00D3h
  120281. FG_VBINIT -- -- 00D4h
  120282. FG_VBOPEN -- -- 00D5h
  120283. FG_VBPASTE -- -- 00D6h
  120284. FG_VBTCCOPY -- -- 00D7h
  120285. FG_VBTCXFER -- -- 00D8h
  120286. FG_VBUNDEF -- -- 00D9h
  120287. FG_VGASTATE -- -- 00DAh
  120288. FG_VOICE 008Ah 00AAh 00DBh
  120289. FG_VOICES 008Bh 00ABh 00DCh
  120290. FG_WAITFOR 0096h 00ACh 00DDh
  120291. FG_WAITKEY 006Dh 00ADh 00DEh
  120292. FG_WAITVR -- 00AEh 00DFh
  120293. FG_WHERE 0034h 00AFh 00E0h
  120294. FG_XALPHA 000Ch 00B0h 00E1h
  120295. FG_XCONVERT 000Eh 00B1h 00E2h
  120296. FG_XVIEW -- -- 00E3h
  120297. FG_YALPHA 000Dh 00B2h 00E4h
  120298. FG_YCONVERT 000Fh 00B3h 00E5h
  120299. FG_YVIEW -- -- 00E6h
  120300. SeeAlso: #03473
  120301. --------V-620001-----------------------------
  120302. INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCCMS" - CREATE LOGICAL VIDEO PAGE (CONV)
  120303. AX = 0001h
  120304. BX = page number (0001h-003Fh)
  120305. Return: AX = status (0000h,FFFCh,FFFDh,FFFEh) (see #03473)
  120306. Notes: the FGDRIVER functions are rearranged with each major release, but
  120307. their parameters do not change (see #03474)
  120308. The only operation which is allowed on logical pages is "FG_COPYPAGE"
  120309. (see AX=0014h)
  120310. SeeAlso: AX=0000h,AX=0002h,AX=0003h,AX=0014h,AX=0038h
  120311. --------V-620002-----------------------------
  120312. INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCEMS" - CREATE LOGICAL VIDEO PAGE (EMS)
  120313. AX = 0002h
  120314. BX = page number (0001h-003Fh)
  120315. Return: AX = status (0000h,FFFCh,FFFDh,FFFEh) (see #03473)
  120316. Notes: the FGDRIVER functions are rearranged with each major release, but
  120317. their parameters do not change (see #03474)
  120318. You must first call "FG_INITEMS" (see AX=005Dh) before using this
  120319. function
  120320. The only operation which is allowed on logical pages is "FG_COPYPAGE"
  120321. (see AX=0014h)
  120322. SeeAlso: AX=0000h,AX=0001h,AX=0003h,AX=0014h,AX=0038h,AX=005Dh
  120323. --------V-620003-----------------------------
  120324. INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCXMS" - CREATE LOGICAL VIDEO PAGE (XMS)
  120325. AX = 0003h
  120326. BX = page number (0001h-003Fh)
  120327. Return: AX = status (0000h,FFFCh,FFFDh,FFFEh) (see #03473)
  120328. Notes: the FGDRIVER functions are rearranged with each major release, but
  120329. their parameters do not change (see #03474)
  120330. You must first call "FG_INITXMS" (see AX=0060h) before using this
  120331. function
  120332. The only operation which is allowed on logical pages is "FG_COPYPAGE"
  120333. (see AX=0014h)
  120334. SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=0014h,AX=0038h,AX=0060h
  120335. --------V-620004-----------------------------
  120336. INT 62 u - FGDRIVER 1.10,3.03+ - "FG_AUTOMODE" - GET VIDEO MODE W/MOST FEATURES
  120337. AX = 0004h
  120338. Return: AX = proposed video mode number (see #03500 at AX=00B0h)
  120339. Program: FGDRIVER is the external video driver for the shareware
  120340. Fastgraph/Light by Ted Gruber Software
  120341. Note: the FGDRIVER functions are rearranged with each major release, but
  120342. their parameters do not change (see #03474)
  120343. SeeAlso: AX=0005h,AX=004Bh,AX=00B0h,AX=00C1h,AX=00C7h
  120344. --------V-620005-----------------------------
  120345. INT 62 u - FGDRIVER v3.03+ - "FG_BESTMODE" - GET BEST VIDEO MODE GIVEN RESOLUTN
  120346. AX = 0005h
  120347. BX = horizontal resolution
  120348. CX = vertical resolution
  120349. DX = number of video pages required (both physical and virtual)
  120350. Return: AX = proposed video mode number or FFFFh if no matching video mode
  120351. Notes: the FGDRIVER functions are rearranged with each major release, but
  120352. their parameters do not change (see #03474)
  120353. You must first call "FG_SVGAINIT" (see AX=00C1h) to get SVGA video
  120354. modes
  120355. SeeAlso: AX=0004h,AX=004Bh,AX=00B0h,AX=00C1h,AX=00C7h
  120356. --------V-620006-----------------------------
  120357. INT 62 u - FGDRIVER v3.03+ - "FG_BOX" - DRAW UNFILLED RECTANGLE
  120358. AX = 0006h
  120359. BX = left column
  120360. CX = right column
  120361. DX = top row
  120362. SI = bottom row
  120363. Notes: the FGDRIVER functions are rearranged with each major release, but
  120364. their parameters do not change (see #03474)
  120365. The rectangle is drawn in screen space, respecting the clipping region,
  120366. with edges of the width specified with "FG_BOXDEPTH" (see AX=0007h)
  120367. (default = 1 is set by "FG_SETMODE")
  120368. This function has no effect in text modes
  120369. SeeAlso: AX=0007h,AX=0008h,AX=000Ch,AX=0016h,AX=001Dh,AX=0026h,AX=0051h
  120370. SeeAlso: AX=0055h,AX=008Fh
  120371. --------V-620007-----------------------------
  120372. INT 62 u - FGDRIVER v3.03+ - "FG_BOXDEPTH" - SET RECTANGLE BORDER WIDTH
  120373. AX = 0007h
  120374. BX = width of left and right edges in pixels (> 0)
  120375. CX = width of top and bottom edges in pixels (> 0)
  120376. Note: the FGDRIVER functions are rearranged with each major release, but
  120377. their parameters do not change (see #03474)
  120378. SeeAlso: AX=0006h,AX=0008h,AX=0051h,AX=0055h
  120379. --------V-620008-----------------------------
  120380. INT 62 u - FGDRIVER v3.03+ - "FG_BOXX" - XOR HOLLOW RECTANGLE
  120381. AX = 0008h
  120382. BX = left column
  120383. CX = right column
  120384. DX = top row
  120385. SI = bottom row
  120386. Notes: the FGDRIVER functions are rearranged with each major release, but
  120387. their parameters do not change (see #03474)
  120388. The rectangle is XORed into screen space, respecting the clipping
  120389. region, with edges of the width specified with "FG_BOXDEPTH"
  120390. (see AX=0007h) (default = 1 is set by "FG_SETMODE")
  120391. This function has no effect in text modes
  120392. SeeAlso: AX=0006h,AX=0007h,AX=0021h,AX=0022h,AX=0051h,AX=0055h,AX=0090h
  120393. --------V-620009-----------------------------
  120394. INT 62 u - FGDRIVER v3.03+ - "FG_BUTTON" - GET JOYSTICK BUTTON STATE
  120395. AX = 0009h
  120396. BX = joystick number (0001h or 0002h)
  120397. Return: AX = button states
  120398. bit 0: top button pressed
  120399. bit 1: bottom button pressed
  120400. Note: the FGDRIVER functions are rearranged with each major release, but
  120401. their parameters do not change (see #03474)
  120402. SeeAlso: AX=0052h,AX=0056h,AX=005Eh,AX=0062h,AX=0077h
  120403. --------V-62000A-----------------------------
  120404. INT 62 u - FGDRIVER v3.03+ - "FG_CAPSLOCK" - GET STATE OF CAPSLOCK KEY
  120405. AX = 000Ah
  120406. Return: AX = CapsLock state (0000h off, 0001h on)
  120407. Note: the FGDRIVER functions are rearranged with each major release, but
  120408. their parameters do not change (see #03474)
  120409. SeeAlso: AX=0082h,AX=00A4h,AX=00A8h,AX=00B1h
  120410. --------V-62000B-----------------------------
  120411. INT 62 u - FGDRIVER v3.03+ - "FG_CHGATTR" - APPLY CURRENT TEXT ATTRIB TO CHARS
  120412. AX = 000Bh
  120413. BX = number of characters to recolor
  120414. Notes: the FGDRIVER functions are rearranged with each major release, but
  120415. their parameters do not change (see #03474)
  120416. This call is ignored in graphics modes
  120417. Starting at the current text cursor position, the specified number of
  120418. characters have their attributes to the current text attribute
  120419. SeeAlso: AX=000Ch,AX=003Ah,AX=00A6h
  120420. --------V-62000C-----------------------------
  120421. INT 62 u - FGDRIVER v3.03+ - "FG_CHGTEXT" - DISPLAY STRING AT CURSOR POSITION
  120422. AX = 000Ch
  120423. CX = length of string
  120424. ES:BX -> string to be displayed
  120425. Return: text cursor updated
  120426. Notes: the FGDRIVER functions are rearranged with each major release, but
  120427. their parameters do not change (see #03474)
  120428. This call is ignored in graphics modes
  120429. SeeAlso: AX=000Bh,AX=0096h
  120430. --------V-62000D-----------------------------
  120431. INT 62 u - FGDRIVER v3.03+ - "FG_CIRCLE" - DRAW UNFILLED CIRCLE
  120432. AX = 000Dh
  120433. BX = radius in horizontal screen space units (> 0)
  120434. Notes: the FGDRIVER functions are rearranged with each major release, but
  120435. their parameters do not change (see #03474)
  120436. The circle is drawn in screen space, centered at the current graphics
  120437. cursor position
  120438. This call is ignored in text modes
  120439. SeeAlso: AX=0006h,AX=0008h,AX=000Eh,AX=0026h,AX=0093h
  120440. --------V-62000E-----------------------------
  120441. INT 62 u - FGDRIVER v3.03+ - "FG_CIRCLEF" - DRAW FILLED CIRCLE
  120442. AX = 000Eh
  120443. BX = radius in horizontal screen space units (> 0)
  120444. Note: the FGDRIVER functions are rearranged with each major release, but
  120445. their parameters do not change (see #03474)
  120446. SeeAlso: AX=0008h,AX=000Dh,AX=0027h,AX=0092h
  120447. --------V-62000F-----------------------------
  120448. INT 62 u - FGDRIVER v4.02 - "FG_CLIPMAP" - DISPLAY CLIPPED IMAGE (MODE-INDEP)
  120449. AX = 000Fh
  120450. ES:BX -> bitmap
  120451. CX = width
  120452. DX = height
  120453. Desc: display a mode-independent bitmap, showing only the portion within
  120454. the current clipping limits
  120455. Notes: the FGDRIVER functions are rearranged with each major release, but
  120456. their parameters do not change (see #03474)
  120457. This call is ignored in text modes and in native EGA and VGA graphics
  120458. modes
  120459. The image is drawn with its lower left corner at the current graphics
  120460. cursor position
  120461. SeeAlso: AX=0011h,AX=001Fh,AX=0034h,AX=0086h,AX=00A9h,AX=00C5h
  120462. --------V-620010-----------------------------
  120463. INT 62 u - FGDRIVER v4.02 - "FG_CLIPMASK" - DISPLAY CLIPPED IMAGE (MASKING MAP)
  120464. AX = 0010h
  120465. ES:BX -> array containing image stored as a masking map (see #03475)
  120466. CX = number of pixel runs in masking map
  120467. DX = width of masking map in pixels
  120468. Notes: the FGDRIVER functions are rearranged with each major release, but
  120469. their parameters do not change (see #03474)
  120470. This call is ignored in text modes and in native EGA and VGA graphics
  120471. modes
  120472. The image is drawn with its lower left corner at the current graphics
  120473. cursor position
  120474. SeeAlso: AX=0011h,AX=001Fh,AX=0034h,AX=00A1h,AX=00A9h,AX=00C5h
  120475. --------V-620011-----------------------------
  120476. INT 62 u - FGDRIVER v4.02 - "FG_CLPIMAGE" - DISPLAY CLIPPED IMAGE (BITMAP)
  120477. AX = 0011h
  120478. ES:BX -> mode-specific bitmap
  120479. CX = width of bit map in bytes
  120480. DX = height of bit map in pixel rows
  120481. Notes: the FGDRIVER functions are rearranged with each major release, but
  120482. their parameters do not change (see #03474)
  120483. This call is ignored in text modes
  120484. The image is drawn with its lower left corner at the current graphics
  120485. cursor position
  120486. The current clipping region is used, extended to a byte boundary
  120487. SeeAlso: AX=0010h,AX=0024h,AX=0036h,AX=0044h,AX=00A0h,AX=00A9h,AX=00B9h
  120488. --------V-620012-----------------------------
  120489. INT 62 u - FGDRIVER v4.02 - "FG_CLPRECT" - DRAW FILLED RECTANGLE IN SCREEN SPCE
  120490. AX = 0012h
  120491. BX = screen space column of left edge
  120492. CX = screen space column of right edge
  120493. DX = screen space row of top edge
  120494. SI = screen space row of bottom edge
  120495. Notes: the FGDRIVER functions are rearranged with each major release, but
  120496. their parameters do not change (see #03474)
  120497. This call is ignored in text modes
  120498. SeeAlso: AX=0006h,AX=0010h,AX=0011h,AX=0023h,AX=009Bh,AX=00A9h
  120499. --------V-620013-----------------------------
  120500. INT 62 u - FGDRIVER v4.02 - "FG_COLORS" - GET SIMULTANEOUSLY-AVAILABLE COLORS
  120501. AX = 0013h
  120502. Return: AX = number of colors available at one time
  120503. Note: the FGDRIVER functions are rearranged with each major release, but
  120504. their parameters do not change (see #03474)
  120505. --------V-620014-----------------------------
  120506. INT 62 u - FGDRIVER v4.02 - "FG_COPYPAGE" - TRANSFER VIDEO PAGE CONTENTS
  120507. AX = 0014h
  120508. BX = source page number (0000h-003Fh)
  120509. CX = destination page number (0000h-003Fh)
  120510. Notes: the FGDRIVER functions are rearranged with each major release, but
  120511. their parameters do not change (see #03474)
  120512. If both source and destination pages are logical pages, they must both
  120513. be located in the same type (conventional, EMS, XMS) of memory
  120514. SeeAlso: AX=009Eh,AX=00A2h,AX=00C6h,AX=00CAh
  120515. --------V-620015-----------------------------
  120516. INT 62 u - FGDRIVER v4.02 - "FG_CURSOR" - SPECIFY WHETHER TEXT CURSR IS VISIBLE
  120517. AX = 0015h
  120518. BX = new state (0000h invisible, 0001h visible)
  120519. Notes: the FGDRIVER functions are rearranged with each major release, but
  120520. their parameters do not change (see #03474)
  120521. This call is ignored in text modes
  120522. SeeAlso: AX=000Ch,AX=0054h,AX=0058h,AX=006Bh,AX=0075h,AX=0079h,AX=007Eh
  120523. SeeAlso: AX=00E0h
  120524. --------V-620016-----------------------------
  120525. INT 62 u - FGDRIVER v4.02 - "FG_DASH" - DRAW DASHED LINE TO ABSOLUTE POSITION
  120526. AX = 0016h
  120527. BX = endpoint column
  120528. CX = endpoint row
  120529. DX = dash pattern (set bits cause drawn pixels)
  120530. Notes: the FGDRIVER functions are rearranged with each major release, but
  120531. their parameters do not change (see #03474)
  120532. This call is ignored in text modes
  120533. The starting point is the current graphics cursor position; the cursor
  120534. position is updated
  120535. SeeAlso: AX=0017h,AX=001Dh,AX=008Fh
  120536. --------V-620017-----------------------------
  120537. INT 62 u - FGDRIVER v4.02 - "FG_DASHREL" - DRAW DASHED LINE TO RELATVE POSITION
  120538. AX = 0017h
  120539. BX = endpoint column offset
  120540. CX = endpoint row offset
  120541. DX = dash pattern (set bits cause drawn pixels)
  120542. Notes: the FGDRIVER functions are rearranged with each major release, but
  120543. their parameters do not change (see #03474)
  120544. This call is ignored in text modes
  120545. The starting point is the current graphics cursor position; the cursor
  120546. position is updated
  120547. SeeAlso: AX=0016h,AX=001Eh,AX=008Fh
  120548. --------V-620018-----------------------------
  120549. INT 62 u - FGDRIVER v4.02 - "FG_DEFCOLOR" - ASSIGN COLOR VALUE TO COLOR INDEX
  120550. AX = 0018h
  120551. BX = color index (0000h-00FFh)
  120552. CX = new color value (0 to maximum color value for current video mode)
  120553. Notes: the FGDRIVER functions are rearranged with each major release, but
  120554. their parameters do not change (see #03474)
  120555. This call is ignored in text modes and 256-color graphics modes
  120556. SeeAlso: AX=0040h,AX=0045h,AX=00AAh
  120557. --------V-620019-----------------------------
  120558. INT 62 u - FGDRIVER v4.02 - "FG_DEFPAGES" - DEF SRC/DEST PAGES FOR BLOCK XFERS
  120559. AX = 0019h
  120560. BX = source page
  120561. CX = destination page
  120562. Desc: specify the source and destination SVGA banks for block transfers on
  120563. extended video pages
  120564. Notes: the FGDRIVER functions are rearranged with each major release, but
  120565. their parameters do not change (see #03474)
  120566. This function is ignored if the video controller does not support
  120567. extended pages or the current video mode does not allow them
  120568. SeeAlso: AX=0014h,AX=00CAh
  120569. --------V-62001A-----------------------------
  120570. INT 62 u - FGDRIVER v4.02 - "FG_DISPFILE" - DISPLAY STORED IMAGE
  120571. AX = 001Ah
  120572. ES:BX -> ASCIZ filename
  120573. CX = image width in pixels (> 0)
  120574. DX = image format
  120575. 0000h Fastgraph standard pixel run format
  120576. 0001h packed pixel run format
  120577. Notes: the FGDRIVER functions are rearranged with each major release, but
  120578. their parameters do not change (see #03474)
  120579. This call is ignored in text modes
  120580. The image is displayed with its lower left corner at the current
  120581. graphics cursor position
  120582. SeeAlso: AX=001Bh,AX=001Ch,AX=00B9h,AX=00BAh,AX=00BBh
  120583. --------V-62001B-----------------------------
  120584. INT 62 u - FGDRIVER v4.02 - "FG_DISPLAY" - DISPLAY IMAGE (STD PIXEL RUN FORMAT)
  120585. AX = 001Bh
  120586. ES:BX -> pixel run map (pairs of bytes: color index, count)
  120587. CX = number of pixel runs to display
  120588. DX = width of image in pixels (> 0)
  120589. Notes: the FGDRIVER functions are rearranged with each major release, but
  120590. their parameters do not change (see #03474)
  120591. This call is ignored in text modes
  120592. The image is displayed with its lower left corner at the current
  120593. graphics cursor position
  120594. SeeAlso: AX=001Ah,AX=001Ch,AX=00B9h,AX=00BAh,AX=00BBh
  120595. --------V-62001C-----------------------------
  120596. INT 62 u - FGDRIVER v4.02 - "FG_DISPLAYP" - DISPLAY IMAGE (PACKED PIXEL RUNS)
  120597. AX = 001Ch
  120598. ES:BX -> pixel run map (trios of bytes: colors, count1, count2; colors
  120599. contains the color for the first run in its high nybble and
  120600. the color for the second run in its low nybble)
  120601. CX = number of pixel runs to display
  120602. DX = width of image in pixels (> 0)
  120603. Notes: the FGDRIVER functions are rearranged with each major release, but
  120604. their parameters do not change (see #03474)
  120605. This call is ignored in text modes
  120606. The image is displayed with its lower left corner at the current
  120607. graphics cursor position
  120608. SeeAlso: AX=001Ah,AX=001Bh,AX=00B9h,AX=00BAh,AX=00BBh
  120609. --------V-62001D-----------------------------
  120610. INT 62 u - FGDRIVER v4.02 - "FG_DRAW" - DRAW SOLID LINE TO ABSOLUTE POSITION
  120611. AX = 001Dh
  120612. BX = endpoint column
  120613. CX = endpoint row
  120614. Notes: the FGDRIVER functions are rearranged with each major release, but
  120615. their parameters do not change (see #03474)
  120616. This call is ignored in text modes
  120617. The starting point is the current graphics cursor position; the cursor
  120618. position is updated
  120619. SeeAlso: AX=0016h,AX=0020h,AX=0021h,AX=0026h,AX=008Fh,AX=0090h
  120620. --------V-62001E-----------------------------
  120621. INT 62 u - FGDRIVER v4.02 - "FG_DRAWMAP" - DISPLAY MODE-INDEPENDENT BIT MAP
  120622. AX = 001Eh
  120623. ES:BX -> bitmap (each set bit is pixel drawn in current color)
  120624. CX = width of bitmap in bytes
  120625. DX = height of bitmap in pixel rows
  120626. Note: the FGDRIVER functions are rearranged with each major release, but
  120627. their parameters do not change (see #03474)
  120628. SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0044h,AX=0099h,AX=00A0h
  120629. --------V-62001F-----------------------------
  120630. INT 62 u - FGDRIVER v4.02 - "FG_DRAWMASK" - DISPLAY IMAGE (MASKING MAP)
  120631. AX = 001Fh
  120632. ES:BX -> array containing image stored as a masking map (see #03475)
  120633. CX = number of pixel runs in masking map
  120634. DX = width of masking map in pixels
  120635. Notes: the FGDRIVER functions are rearranged with each major release, but
  120636. their parameters do not change (see #03474)
  120637. This call is ignored in text modes and in native EGA and VGA graphics
  120638. modes
  120639. The image is drawn with its lower left corner at the current graphics
  120640. cursor position
  120641. SeeAlso: AX=0010h,AX=001Fh,AX=00A1h,AX=00A9h
  120642. Format of FGDRIVER masking map:
  120643. Offset Size Description (Table 03475)
  120644. 00h BYTE length of first "protect" run (pixels remain unchanged)
  120645. 01h BYTE length of first "zero" run (pixels set to background color)
  120646. 02h BYTE length of second "protect" run
  120647. 03h BYTE length of second "zero" run
  120648. ...
  120649. --------V-620020-----------------------------
  120650. INT 62 u - FGDRIVER v4.02 - "FG_DRAWREL" - DRAW SOLID LINE TO RELATIVE POSITION
  120651. AX = 0020h
  120652. BX = endpoint column offset
  120653. CX = endpoint row offset
  120654. Notes: the FGDRIVER functions are rearranged with each major release, but
  120655. their parameters do not change (see #03474 at AX=0000h)
  120656. This call is ignored in text modes
  120657. The starting point is the current graphics cursor position; the cursor
  120658. position is updated
  120659. SeeAlso: AX=0006h,AX=000Dh,AX=001Dh,AX=0021h,AX=0026h,AX=008Fh
  120660. --------V-620021-----------------------------
  120661. INT 62 u - FGDRIVER v4.02 - "FG_DRAWRELX" - XOR SOLID LINE TO RELATIVE POSITION
  120662. AX = 0021h
  120663. BX = endpoint column offset
  120664. CX = endpoint row offset
  120665. Desc: draw a solid line, XORing each pixel onto the screen
  120666. Notes: the FGDRIVER functions are rearranged with each major release, but
  120667. their parameters do not change (see #03474 at AX=0000h)
  120668. This call is ignored in text modes
  120669. The starting point is the current graphics cursor position; the cursor
  120670. position is updated
  120671. SeeAlso: AX=0006h,AX=000Dh,AX=001Dh,AX=0020h,AX=0026h,AX=0090h
  120672. --------V-620022-----------------------------
  120673. INT 62 u - FGDRIVER v4.02 - "FG_DRAWX" - XOR SOLID LINE TO ABSOLUTE POSITION
  120674. AX = 0022h
  120675. BX = endpoint column
  120676. CX = endpoint row
  120677. Desc: draw a solid line, XORing each pixel onto the screen
  120678. Notes: the FGDRIVER functions are rearranged with each major release, but
  120679. their parameters do not change (see #03474 at AX=0000h)
  120680. This call is ignored in text modes
  120681. The starting point is the current graphics cursor position; the cursor
  120682. position is updated
  120683. SeeAlso: AX=001Dh,AX=0021h,AX=008Fh
  120684. --------V-620023-----------------------------
  120685. INT 62 u - FGDRIVER v4.02 - "FG_DRECT" - DRAW DITHERED RECTANGLE IN SCRN SPACE
  120686. AX = 0023h
  120687. BX = screen space column of left edge
  120688. CX = screen space column of right edge
  120689. DX = screen space row of top edge
  120690. SI = screen space row of bottom edge
  120691. ES:DI -> dithering matrix (video-mode dependent)
  120692. Notes: the FGDRIVER functions are rearranged with each major release, but
  120693. their parameters do not change (see #03474 at AX=0000h)
  120694. This call is ignored in text modes
  120695. SeeAlso: AX=0006h,AX=0008h,AX=0013h,AX=003Ch,AX=0089h,AX=009Bh
  120696. --------V-620024-----------------------------
  120697. INT 62 u - FGDRIVER v4.02 - "FG_DRWIMAGE" - DISPLAY BITMAPPED IMAGE
  120698. AX = 0024h
  120699. ES:BX -> video mode-specific bitmap
  120700. CX = width of bitmap in bytes
  120701. DX = height of bitmap in pixel rows
  120702. Notes: the FGDRIVER functions are rearranged with each major release, but
  120703. their parameters do not change (see #03474 at AX=0000h)
  120704. The image will be drawn with its lower left corner at the current
  120705. cursor position (either text or graphics)
  120706. SeeAlso: AX=0011h,AX=0036h,AX=0044h,AX=0099h,AX=00A0h
  120707. --------V-620025-----------------------------
  120708. INT 62 u - FGDRIVER v4.02 - "FG_EGACHECK" - GET INFO ABOUT ACTIVE EGA DISPLAY
  120709. AX = 0025h
  120710. Return: AX = number of 64K banks of video memory, or 0000h if no EGA or EGA
  120711. without an Enhanced Color Display
  120712. Note: the FGDRIVER functions are rearranged with each major release, but
  120713. their parameters do not change (see #03474 at AX=0000h)
  120714. SeeAlso: AX=00C2h
  120715. --------V-620026-----------------------------
  120716. INT 62 u - FGDRIVER v4.02 - "FG_ELLIPSE" - DRAW UNFILLED ELLIPSE IN SCRN SPACE
  120717. AX = 0026h
  120718. BX = horizontal semi-axis length in screen space units
  120719. CX = vertical semi-axis length in screen space units
  120720. Notes: the FGDRIVER functions are rearranged with each major release, but
  120721. their parameters do not change (see #03474 at AX=0000h)
  120722. This call is ignored in text modes
  120723. The ellipse is centered at the current graphics cursor position
  120724. SeeAlso: AX=0006h,AX=000Dh,AX=0027h,AX=008Fh,AX=0093h
  120725. --------V-620027-----------------------------
  120726. INT 62 u - FGDRIVER v4.02 - "FG_ELLIPSEF" - DRAW FILLED ELLIPSE IN SCREEN SPACE
  120727. AX = 0027h
  120728. BX = horizontal semi-axis length in screen space units
  120729. CX = vertical semi-axis length in screen space units
  120730. Notes: the FGDRIVER functions are rearranged with each major release, but
  120731. their parameters do not change (see #03474 at AX=0000h)
  120732. This call is ignored in text modes
  120733. The ellipse is centered at the current graphics cursor position
  120734. SeeAlso: AX=0006h,AX=000Eh,AX=0026h,AX=008Fh,AX=0092h
  120735. --------V-620028-----------------------------
  120736. INT 62 u - FGDRIVER v4.02 - "FG_ERASE" - CLEAR THE ACTIVE VIDEO PAGE
  120737. AX = 0028h
  120738. Notes: the FGDRIVER functions are rearranged with each major release, but
  120739. their parameters do not change (see #03474 at AX=0000h)
  120740. This function sets each pixel to 0 in graphics modes, each character
  120741. cell to a blank with a gray foreground attribute in text modes
  120742. SeeAlso: AX=0029h,AX=002Bh,AX=0035h
  120743. --------V-620029-----------------------------
  120744. INT 62 u - FGDRIVER v4.02 - "FG_FADEIN" - FADE IN HIDDEN PAGE
  120745. AX = 0029h
  120746. BX = delay (0000h = fastest possible fade-in)
  120747. Notes: the FGDRIVER functions are rearranged with each major release, but
  120748. their parameters do not change (see #03474 at AX=0000h)
  120749. The current hidden page is copied to the current visible page in small
  120750. random sections to produce a fade-in effect
  120751. This call is ignored in text modes
  120752. SeeAlso: AX=0028h,AX=002Ah,AX=002Bh
  120753. --------V-62002A-----------------------------
  120754. INT 62 u - FGDRIVER v4.02 - "FG_FADEOUT" - FADE OUT TO CURRENT COLOR
  120755. AX = 002Ah
  120756. BX = delay (0000h = fastest possible fade-out)
  120757. Notes: the FGDRIVER functions are rearranged with each major release, but
  120758. their parameters do not change (see #03474 at AX=0000h)
  120759. The current visible page is filled with pixels of the current color in
  120760. small random sections to give a fade-out effect
  120761. This call is ignored in text modes
  120762. SeeAlso: AX=0028h,AX=0029h,AX=002Bh
  120763. --------V-62002B-----------------------------
  120764. INT 62 u - FGDRIVER v4.02 - "FG_FILLPAGE" - FILL THE ACTIVE VIDEO PAGE
  120765. AX = 002Bh
  120766. Desc: fill the active video page with pixels of the current color (graphics
  120767. modes) or the block character DBh with the current character
  120768. attributes (text modes)
  120769. Note: the FGDRIVER functions are rearranged with each major release, but
  120770. their parameters do not change (see #03474 at AX=0000h)
  120771. SeeAlso: AX=0028h,AX=0029h,AX=002Ah
  120772. --------V-62002C-----------------------------
  120773. INT 62 u - FGDRIVER v4.02 - "FG_FINDPAGE" - FIND AVAILABLE VIRTUAL/LOGICAL PAGE
  120774. AX = 002Ch
  120775. Return: AX = first available page number (virtual or logical page)
  120776. Note: the FGDRIVER functions are rearranged with each major release, but
  120777. their parameters do not change (see #03474 at AX=0000h)
  120778. SeeAlso: AX=0028h
  120779. --------V-62002D-----------------------------
  120780. INT 62 u - FGDRIVER v4.02 - "FG_FLICDONE" - CLOSE FLIC FILE
  120781. AX = 002Dh
  120782. ES:BX -> context descriptor (see AX=0030h)
  120783. Return: nothing
  120784. Note: the FGDRIVER functions are rearranged with each major release, but
  120785. their parameters do not change (see #03474 at AX=0000h)
  120786. SeeAlso: AX=002Eh,AX=0030h
  120787. --------V-62002E-----------------------------
  120788. INT 62 u - FGDRIVER v4.02 - "FG_FLICHEAD" - READ FLI/FLC FILE HEADER
  120789. AX = 002Eh
  120790. ES:BX -> FLICHEAD variable pointer record (see #03477)
  120791. Return: AX = status (see #03476)
  120792. Note: the FGDRIVER functions are rearranged with each major release, but
  120793. their parameters do not change (see #03474 at AX=0000h)
  120794. SeeAlso: AX=002Dh,AX=002Fh,AX=0030h,AX=0032h
  120795. (Table 03476)
  120796. Values for FGDRIVER FLIC processing status:
  120797. 0000h successful
  120798. FFFEh not an FLI or FLC file
  120799. FFFFh file not found
  120800. Format of FGDRIVER FLICHEAD variable pointer record:
  120801. Offset Size Description (Table 03477)
  120802. 00h WORD segment of ASCIZ FLI/FLC file name
  120803. 02h WORD offset of ASCIZ FLI/FLC file name
  120804. 04h WORD segment of buffer for 128-byte file header
  120805. 06h WORD offset of buffer for 128-byte file header
  120806. --------V-62002F-----------------------------
  120807. INT 62 u - FGDRIVER v4.02 - "FG_FLICMODE" - GET OPTIMAL VIDEO MODE FOR FLI/FLC
  120808. AX = 002Fh
  120809. ES:BX -> 128-byte buffer containing FLI/FLC file header (see AX=002Eh)
  120810. Return: AX = optimal 256-color graphics mode number
  120811. FFFFh if invalid file header
  120812. Note: the FGDRIVER functions are rearranged with each major release, but
  120813. their parameters do not change (see #03474 at AX=0000h)
  120814. SeeAlso: AX=002Eh,AX=0030h
  120815. --------V-620030-----------------------------
  120816. INT 62 u - FGDRIVER v4.02 - "FG_FLICOPEN" - OPEN FLI/FLC FILE
  120817. AX = 0030h
  120818. ES:BX -> FLICOPEN variable pointer record (see #03478)
  120819. Return: AX = status (see #03476)
  120820. Note: the FGDRIVER functions are rearranged with each major release, but
  120821. their parameters do not change (see #03474 at AX=0000h)
  120822. SeeAlso: AX=002Dh,AX=002Eh,AX=002Fh,AX=0030h,AX=0031h,AX=0032h
  120823. Format of FGDRIVER FLICOPEN variable pointer record:
  120824. Offset Size Description (Table 03478)
  120825. 00h WORD segment of ASCIZ FLI/FLC file name
  120826. 02h WORD offset of ASCIZ FLI/FLC file name
  120827. 04h WORD segment of buffer for 16-byte file context descriptor
  120828. 06h WORD offset of buffer for 16-byte file context descriptor
  120829. --------V-620031-----------------------------
  120830. INT 62 u - FGDRIVER v4.02 - "FG_FLICPLAY" - DISPLAY NEXT FRAME(S) IN FLI/FLC
  120831. AX = 0031h
  120832. ES:BX -> context descriptor (see AX=0030h)
  120833. CX = number of frames to display starting at current frame
  120834. DX = control flags (see #03479)
  120835. Return: AX = number of frames displayed
  120836. Note: the FGDRIVER functions are rearranged with each major release, but
  120837. their parameters do not change (see #03474 at AX=0000h)
  120838. SeeAlso: AX=0030h,AX=0033h,AX=00B8h
  120839. Bitfields for FGDRIVER FLI/FLC control flags:
  120840. Bit(s) Description (Table 03479)
  120841. 0 skip inter-frame delay specified in FLI/FLC header
  120842. 1 display relative to current graphics position
  120843. 2 dipslay image from the FG_IMAGEBUF buffer instead of file
  120844. --------V-620032-----------------------------
  120845. INT 62 u - FGDRIVER v4.02 - "FG_FLICSIZE" - GET IMAGE SIZE
  120846. AX = 0032h
  120847. ES:BX -> FLICSIZE variable pointer record (see #03480)
  120848. Return: image height/width buffers updated; height is set to FFFFh on error
  120849. Note: the FGDRIVER functions are rearranged with each major release, but
  120850. their parameters do not change (see #03474 at AX=0000h)
  120851. SeeAlso: AX=002Eh,AX=0030h
  120852. Format of FGDRIVER FLICSIZE variable pointer record:
  120853. Offset Size Description (Table 03480)
  120854. 00h WORD segment of buffer for 128-byte FLI/FLC file header
  120855. 02h WORD offset of buffer for 128-byte FLI/FLC file header
  120856. 04h WORD segment of WORD buffer for image width in pixels
  120857. 06h WORD offset of WORD buffer for image width in pixels
  120858. 08h WORD segment of WORD buffer for image height in pixels
  120859. 0Ah WORD offset of WORD buffer for image height in pixels
  120860. --------V-620033-----------------------------
  120861. INT 62 u - FGDRIVER v4.02 - "FG_FLICSKIP" - SKIP FRAME(S) IN FLI/FLC FILE
  120862. AX = 0033h
  120863. ES:BX -> context descriptor (see AX=0030h)
  120864. CX = number of frames to skip
  120865. reset to first frame if skip count is negative
  120866. Return: AX = number of frames skipped (may be less than requested if EOF)
  120867. 0000h if resetting to first frame
  120868. Note: the FGDRIVER functions are rearranged with each major release, but
  120869. their parameters do not change (see #03474 at AX=0000h)
  120870. SeeAlso: AX=0030h,AX=0031h
  120871. --------V-620034-----------------------------
  120872. INT 62 u - FGDRIVER v4.02 - "FG_FLIPMASK" - DISPLAY INV CLIPPED IMAGE (MASKMAP)
  120873. AX = 0034h
  120874. ES:BX -> array containing image stored as a masking map (see #03475)
  120875. CX = number of pixel runs in masking map
  120876. DX = width of masking map in pixels
  120877. Notes: the FGDRIVER functions are rearranged with each major release, but
  120878. their parameters do not change (see #03474 at AX=0000h)
  120879. This call is ignored in text modes and in native EGA and VGA graphics
  120880. modes
  120881. The image is drawn with its lower left corner at the current graphics
  120882. cursor position
  120883. SeeAlso: AX=000Fh,AX=001Fh,AX=0036h,AX=00A1h,AX=00A5h,AX=00C5h
  120884. --------V-620035-----------------------------
  120885. INT 62 u - FGDRIVER v4.02 - "FG_FLOOD" - FLOOD FILL ARBITRARY CLOSED REGION
  120886. AX = 0035h
  120887. BX = starting column
  120888. CX = starting row
  120889. Desc: fill the bounded region around the specified point (respecting clipping
  120890. region) with the currrent color
  120891. Notes: the FGDRIVER functions are rearranged with each major release, but
  120892. their parameters do not change (see #03474 at AX=0000h)
  120893. This function is ignored in text modes
  120894. SeeAlso: AX=0028h,AX=0085h
  120895. --------V-620036-----------------------------
  120896. INT 62 u - FGDRIVER v4.02 - "FG_FLPIMAGE" - DISPLAY INV CLIPPED IMAGE (BITMAP)
  120897. AX = 0036h
  120898. ES:BX -> mode-specific bitmap
  120899. CX = width of bit map in bytes
  120900. DX = height of bit map in pixel rows
  120901. Notes: the FGDRIVER functions are rearranged with each major release, but
  120902. their parameters do not change (see #03474 at AX=0000h)
  120903. This call is ignored in text modes
  120904. The image is drawn with its lower left corner at the current graphics
  120905. cursor position
  120906. The current clipping region is used, extended to a byte boundary
  120907. SeeAlso: AX=0011h,AX=0024h,AX=0034h,AX=0044h,AX=00A0h,AX=00A9h,AX=00B9h
  120908. --------V-620037-----------------------------
  120909. INT 62 u - FGDRIVER v4.02 - "FG_FONTSIZE" - SPECIFY FONT SIZE FOR TEXT OUTPUT
  120910. AX = 0037h
  120911. BX = desired character height in scan lines (8, 14, 16)
  120912. Notes: the FGDRIVER functions are rearranged with each major release, but
  120913. their parameters do not change (see #03474 at AX=0000h)
  120914. This call is ignored if the current mode is not a VGA or SVGA graphics
  120915. mode, or the specified character height is not 8, 14, or 16
  120916. SeeAlso: AX=0096h
  120917. --------V-620038-----------------------------
  120918. INT 62 u - FGDRIVER v4.02 - "FG_FREEPAGE" - FREE VIRTUAL OR LOGICAL VIDEO PAGE
  120919. AX = 0038h
  120920. BX = page number (0000h-003Fh)
  120921. Return: AX = status (0000h,0001h,0007h,0009h) (see #03473)
  120922. Note: the FGDRIVER functions are rearranged with each major release, but
  120923. their parameters do not change (see #03474 at AX=0000h)
  120924. SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=0003h
  120925. --------V-620039-----------------------------
  120926. INT 62 u - FGDRIVER v4.02 - "FG_GETADDR" - GET SEGMENT OF ACTIVE VIDEO PAGE
  120927. AX = 0039h
  120928. Return: AX = segment of active video page
  120929. Note: the FGDRIVER functions are rearranged with each major release, but
  120930. their parameters do not change (see #03474 at AX=0000h)
  120931. SeeAlso: AX=0042h,AX=00ACh
  120932. --------V-62003A-----------------------------
  120933. INT 62 u - FGDRIVER v4.02 - "FG_GETATTR" - GET CHARACTER ATTRIB FOR POSITION
  120934. AX = 003Ah
  120935. BX = row
  120936. CX = column
  120937. Return: AX = character attribute at specified location on active video page
  120938. Notes: the FGDRIVER functions are rearranged with each major release, but
  120939. their parameters do not change (see #03474 at AX=0000h)
  120940. This call is ignored in graphics modes
  120941. SeeAlso: AX=000Bh,AX=003Dh,AX=0040h,AX=00A6h
  120942. --------V-62003B-----------------------------
  120943. INT 62 u - FGDRIVER v4.02 - "FG_GETBANKS" - GET SVGA READ AND WRITE BANKS
  120944. AX = 003Bh
  120945. ES:BX -> GETBANKS variable pointer record (see #03481)
  120946. Return: nothing
  120947. Note: the FGDRIVER functions are rearranged with each major release, but
  120948. their parameters do not change (see #03474 at AX=0000h)
  120949. SeeAlso: AX=00A7h
  120950. Format of FGDRIVER GETBANKS variable pointer record:
  120951. Offset Size Description (Table 03481)
  120952. 00h WORD segment of WORD buffer for read bank number
  120953. 02h WORD offset of WORD buffer for read bank number
  120954. 04h WORD segment of WORD buffer for write bank number
  120955. 06h WORD offset of WORD buffer for write bank number
  120956. --------V-62003C-----------------------------
  120957. INT 62 u - FGDRIVER v4.02 - "FG_GETBLOCK" - GRAB RECTANGLE OF DISPLAY
  120958. AX = 003Ch
  120959. ES:BX -> buffer for screen contents
  120960. CX = leftmost column
  120961. DX = rightmost column
  120962. SI = top row
  120963. DI = bottom row
  120964. Notes: the FGDRIVER functions are rearranged with each major release, but
  120965. their parameters do not change (see #03474 at AX=0000h)
  120966. In text modes, coordinates are character positions; in graphics modes,
  120967. they are defined in screen space, and the left and right edges are
  120968. adjusted to a byte boundary if necessary
  120969. Use "FG_IMAGESIZ" (see AX=005Ch) to determine the required buffer size
  120970. SeeAlso: AX=0044h,AX=005Ch,AX=0098h
  120971. --------V-62003D-----------------------------
  120972. INT 62 u - FGDRIVER v4.02 - "FG_GETCHAR" - GET CHARACTER FOR SCREEN POSITION
  120973. AX = 003Dh
  120974. BX = row
  120975. CX = column
  120976. Return: AX = character at specified location on active video page
  120977. Notes: the FGDRIVER functions are rearranged with each major release, but
  120978. their parameters do not change (see #03474 at AX=0000h)
  120979. This call is ignored in graphics modes
  120980. SeeAlso: AX=000Bh,AX=003Ah,AX=0096h,AX=00A6h,AX=00C8h
  120981. --------V-62003E-----------------------------
  120982. INT 62 u - FGDRIVER v4.02 - "FG_GETCLIP" - GET CLIPPING REGION IN SCREEN SPACE
  120983. AX = 003Eh
  120984. ES:BX -> GETCLIP variable pointer record (see #03482)
  120985. Return: variables specifed by GETCLIP structure updated
  120986. Note: the FGDRIVER functions are rearranged with each major release, but
  120987. their parameters do not change (see #03474 at AX=0000h)
  120988. SeeAlso: AX=00CAh
  120989. Format of FGDRIVER GETCLIP variable pointer record:
  120990. Offset Size Description (Table 03482)
  120991. 00h WORD segment of WORD buffer for minimum X coordinate (left edge)
  120992. 02h WORD offset of WORD buffer for minimum X coordinate (left edge)
  120993. 04h WORD segment of WORD buffer for maximum X coordinate (right edge)
  120994. 06h WORD offset of WORD buffer for maximum X coordinate (right edge)
  120995. 08h WORD segment of WORD buffer for minimum Y coordinate (top edge)
  120996. 0Ah WORD offset of WORD buffer for minimum Y coordinate (top edge)
  120997. 0Ch WORD segment of WORD buffer for maximum Y coordinate (bottom edge)
  120998. 0Eh WORD offset of WORD buffer for maximum Y coordinate (bottom edge)
  120999. --------V-62003F-----------------------------
  121000. INT 62 u - FGDRIVER v4.02 - "FG_GETCLOCK" - GET CLOCK TICKS SINCE MIDNIGHT
  121001. AX = 003Fh
  121002. Return: DX:AX = number of clock ticks since midnight
  121003. Note: the FGDRIVER functions are rearranged with each major release, but
  121004. their parameters do not change (see #03474 at AX=0000h)
  121005. SeeAlso: INT 1A/AH=00h
  121006. --------V-620040-----------------------------
  121007. INT 62 u - FGDRIVER v4.02 - "FG_GETCOLOR" - GET CURRENT TEXT ATTRIBUTE
  121008. AX = 0040h
  121009. Return: AX = current text attribute or color index (graphics modes)
  121010. Note: the FGDRIVER functions are rearranged with each major release, but
  121011. their parameters do not change (see #03474 at AX=0000h)
  121012. SeeAlso: AX=000Bh,AX=003Ah,AX=00A6h
  121013. --------V-620041-----------------------------
  121014. INT 62 u - FGDRIVER v4.02 - "FG_GETDACS" - GET VIDEO DAC CONTENTS
  121015. AX = 0041h
  121016. CX = number of DAC registers to return (0001h to 0100h)
  121017. DX = starting DAC register number (0000h to 00FFh)
  121018. ES:BX -> buffer for DAC red/green/blue triples
  121019. Notes: the FGDRIVER functions are rearranged with each major release, but
  121020. their parameters do not change (see #03474 at AX=0000h)
  121021. The register number wraps back to zero after FFh
  121022. SeeAlso: AX=004Eh,AX=0086h,AX=00ABh
  121023. --------V-620042-----------------------------
  121024. INT 62 u - FGDRIVER v4.02 - "FG_GETENTRY" - GET PAGE TYPE AND ADDRESS
  121025. AX = 0042h
  121026. ES:BX -> variable pointer record (see #03483)
  121027. CX = page number (00h-3Fh)
  121028. Notes: the FGDRIVER functions are rearranged with each major release, but
  121029. their parameters do not change (see #03474 at AX=0000h)
  121030. Page addresses are segments for pages stored in conventional memory
  121031. (including physical and virtual pages), and EMS or XMS handles for
  121032. pages stored in EMS or XMS
  121033. SeeAlso: AX=0000h,AX=00ACh
  121034. Format of FGDRIVER GETENTRY variable pointer record:
  121035. Offset Size Description (Table 03483)
  121036. 00h WORD segment of WORD buffer for page address
  121037. 02h WORD offset of WORD buffer for page address
  121038. 04h WORD segment of WORD buffer for page type (se #03484)
  121039. 06h WORD offset of WORD buffer for page type
  121040. (Table 03484)
  121041. Values for FGDRIVER page type:
  121042. 0000h unallocated
  121043. 0001h physical
  121044. 0002h virtual
  121045. 0003h logical page, stored in expanded memory (EMS)
  121046. 0004h logical page, stored in extended memory (XMS)
  121047. 0005h logical page, stored in conventional memory
  121048. --------V-620043-----------------------------
  121049. INT 62 u - FGDRIVER v4.02 - "FG_GETHPAGE" - GET CURRENT HIDDEN VIDEO PAGE NUM
  121050. AX = 0043h
  121051. Return: AX = current hidden video page number (0000h-003Fh)
  121052. Note: the FGDRIVER functions are rearranged with each major release, but
  121053. their parameters do not change (see #03474 at AX=0000h)
  121054. SeeAlso: AX=004Ch,AX=0050h,AX=00AEh
  121055. --------V-620044-----------------------------
  121056. INT 62 u - FGDRIVER v4.02 - "FG_GETIMAGE" - STORE IMAGE AS BITMAP
  121057. AX = 0044h
  121058. ES:BX -> buffer for video mode-specific bitmap
  121059. CX = width of bitmap in bytes
  121060. DX = height of bitmap in pixel rows
  121061. Note: the FGDRIVER functions are rearranged with each major release, but
  121062. their parameters do not change (see #03474 at AX=0000h)
  121063. SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0099h,AX=00A0h
  121064. --------V-620045-----------------------------
  121065. INT 62 u - FGDRIVER v4.02 - "FG_GETINDEX" - GET COLOR VALUE FOR COLOR INDEX
  121066. AX = 0045h
  121067. BX = color index (0000h to 00FFh)
  121068. Return: AX = color value for specified color index
  121069. Notes: the FGDRIVER functions are rearranged with each major release, but
  121070. their parameters do not change (see #03474 at AX=0000h)
  121071. This call returns the value passed to it in text and 256-color
  121072. graphics modes
  121073. SeeAlso: AX=0018h,AX=0040h
  121074. --------V-620046-----------------------------
  121075. INT 62 u - FGDRIVER v4.02 - "FG_GETKEY" - GET NEXT KEYSTROKE
  121076. AX = 0046h
  121077. ES:BX -> variable pointer record (see #03485)
  121078. Return: (after next keystroke if no typeahead) variables updated
  121079. Note: the FGDRIVER functions are rearranged with each major release, but
  121080. their parameters do not change (see #03474 at AX=0000h)
  121081. SeeAlso: AX=000Ah,AX=0063h,AX=0069h,AX=00DEh,INT 16/AH=00h
  121082. Format of FGDRIVER GETKEY variable pointer record:
  121083. Offset Size Description (Table 03485)
  121084. 00h WORD segment of BYTE buffer for ASCII keycode
  121085. 02h WORD offset of BYTE buffer for ASCII keycode
  121086. 04h WORD segment of BYTE buffer for extended keycode
  121087. 06h WORD offset of BYTE buffer for extended keycode
  121088. --------V-620047-----------------------------
  121089. INT 62 u - FGDRIVER v4.02 - "FG_GETLINES" - GET TEXT ROWS FOR CURR VIDEO MODE
  121090. AX = 0047h
  121091. Return: AX = number of text rows on screen in current video mode
  121092. Note: the FGDRIVER functions are rearranged with each major release, but
  121093. their parameters do not change (see #03474 at AX=0000h)
  121094. SeeAlso: AX=00AFh,AX=00C2h
  121095. --------V-620048-----------------------------
  121096. INT 62 u - FGDRIVER v4.02 - "FG_GETMAP" - STORE IMAGE AS MODE-INDEPENDNT BITMAP
  121097. AX = 0048h
  121098. ES:BX -> buffer for video mode-independent bitmap
  121099. CX = width of bitmap in bytes
  121100. DX = height of bitmap in pixel rows
  121101. Return: each bit in bitmap is set if corresponding pixel is of the current
  121102. color, cleared otherwise
  121103. Notes: the FGDRIVER functions are rearranged with each major release, but
  121104. their parameters do not change (see #03474 at AX=0000h)
  121105. This call is ignored in text modes
  121106. SeeAlso: AX=0011h,AX=001Eh,AX=0024h
  121107. --------V-620049-----------------------------
  121108. INT 62 u - FGDRIVER v4.02 - "FG_GETMAXX" - GET MAXIMUM COLUMN IN SCREEN SPACE
  121109. AX = 0049h
  121110. Return: AX = maximum X coordinate in screen space
  121111. (or character space if in text mode)
  121112. Note: the FGDRIVER functions are rearranged with each major release, but
  121113. their parameters do not change (see #03474 at AX=0000h)
  121114. SeeAlso: AX=004Ah,AX=00C1h
  121115. --------V-62004A-----------------------------
  121116. INT 62 u - FGDRIVER v4.02 - "FG_GETMAXY" - GET MAXIMUM ROW IN SCREEN SPACE
  121117. AX = 004Ah
  121118. Return: AX = maximum Y coordinate in screen space
  121119. (or character space if in text mode)
  121120. Note: the FGDRIVER functions are rearranged with each major release, but
  121121. their parameters do not change (see #03474 at AX=0000h)
  121122. SeeAlso: AX=0049h,AX=00C1h
  121123. --------V-62004B-----------------------------
  121124. INT 62 u - FGDRIVER v4.02 - "FG_GETMODE" - GET CURRENT VIDEO MODE NUMBER
  121125. AX = 004Bh
  121126. ES:BX -> WORD ???
  121127. Return: AX = current video mode number
  121128. Note: the FGDRIVER functions are rearranged with each major release, but
  121129. their parameters do not change (see #03474 at AX=0000h)
  121130. SeeAlso: AX=00B0h
  121131. --------V-62004C-----------------------------
  121132. INT 62 u - FGDRIVER v4.02 - "FG_GETPAGE" - GET ACTIVE VIDEO PAGE NUMBER
  121133. AX = 004Ch
  121134. Return: AX = active video page (0000h-003Fh)
  121135. Note: the FGDRIVER functions are rearranged with each major release, but
  121136. their parameters do not change (see #03474 at AX=0000h)
  121137. SeeAlso: AX=0039h,AX=0042h,AX=0043h,AX=0050h,AX=00B2h
  121138. --------V-62004D-----------------------------
  121139. INT 62 u - FGDRIVER v4.02 - "FG_GETPIXEL" - GET COLOR OF SPECIFIED PIXEL
  121140. AX = 004Dh
  121141. BX = column in screen space
  121142. CX = row in screen space
  121143. Return: AX = color value of pixel (0 to num_colors-1)
  121144. 0000h in text modes
  121145. Note: the FGDRIVER functions are rearranged with each major release, but
  121146. their parameters do not change (see #03474 at AX=0000h)
  121147. SeeAlso: AX=003Ah,AX=003Dh,AX=008Fh,AX=0090h
  121148. --------V-62004E-----------------------------
  121149. INT 62 u - FGDRIVER v4.02 - "FG_GETRGB" - GET VIDEO DAC REGISTER CONTENTS
  121150. AX = 004Eh
  121151. ES:BX -> variable pointer record (see #03486)
  121152. CX = DAC register number
  121153. Return: variables updated
  121154. Notes: the FGDRIVER functions are rearranged with each major release, but
  121155. their parameters do not change (see #03474 at AX=0000h)
  121156. This call is ignored in text modes and CGA/EGA video modes (since
  121157. they do not use DAC registers)
  121158. SeeAlso: AX=0041h,AX=0086h,AX=00ABh
  121159. Format of FGDRIVER GETRGB variable pointer record:
  121160. Offset Size Description (Table 03486)
  121161. 00h WORD segment of WORD buffer for red component of DAC register
  121162. 02h WORD offset of WORD buffer for red component
  121163. 04h WORD segment of WORD buffer for green component of DAC register
  121164. 06h WORD offset of WORD buffer for green component
  121165. 08h WORD segment of WORD buffer for blue component of DAC register
  121166. 0Ah WORD offset of WORD buffer for blue component
  121167. --------V-62004F-----------------------------
  121168. INT 62 u - FGDRIVER v4.02 - "FG_GETVIEW" - GET VIEWPORT EXTREME LIMITS
  121169. AX = 004Fh
  121170. ES:BX -> variable pointer record (see #03487)
  121171. Return: indicated variables updated
  121172. Note: the FGDRIVER functions are rearranged with each major release, but
  121173. their parameters do not change (see #03474 at AX=0000h)
  121174. SeeAlso: AX=00B5h
  121175. Format of FGDRIVER GETVIEW variable pointer record:
  121176. Offset Size Description (Table 03487)
  121177. 00h WORD segment of WORD buffer for viewport left edge (viewport units)
  121178. 02h WORD offset of WORD buffer for viewport left edge (viewport units)
  121179. 04h WORD segment of WORD buffer for viewport right edge (viewport units)
  121180. 06h WORD offset of WORD buffer for viewport right edge (viewport units)
  121181. 08h WORD segment of WORD buffer for viewport top edge (viewport units)
  121182. 0Ah WORD offset of WORD buffer for viewport top edge (viewport units)
  121183. 0Ch WORD segment of WORD buffer for viewport bottom edge (viewp. units)
  121184. 0Eh WORD offset of WORD buffer for viewport bottom edge (viewp. units)
  121185. 10h WORD segment of WORD buffer for viewport left edge (screen space)
  121186. 12h WORD offset of WORD buffer for viewport left edge (screen space)
  121187. 14h WORD segment of WORD buffer for viewport right edge (screen space)
  121188. 16h WORD offset of WORD buffer for viewport right edge (screen space)
  121189. 18h WORD segment of WORD buffer for viewport top edge (screen space)
  121190. 1Ah WORD offset of WORD buffer for viewport top edge (screen space)
  121191. 1Ch WORD segment of WORD buffer for viewport bottom edge (screen space)
  121192. 1Eh WORD offset of WORD buffer for viewport bottom edge (screen space)
  121193. --------V-620050-----------------------------
  121194. INT 62 u - FGDRIVER v4.02 - "FG_GETVPAGE" - GET VISIBLE VIDEO PAGE NUMBER
  121195. AX = 0050h
  121196. Return: AX = visible video page (0000h-003Fh)
  121197. Note: the FGDRIVER functions are rearranged with each major release, but
  121198. their parameters do not change (see #03474 at AX=0000h)
  121199. SeeAlso: AX=0043h,AX=004Ch,AX=00B6h
  121200. --------V-620051-----------------------------
  121201. INT 62 u - FGDRIVER v4.02 - "FG_GETXBOX" - GET WIDTH OF VERTICAL BOX LINES
  121202. AX = 0051h
  121203. Return: AX = width (in pixels) of left and right edges of rectangles
  121204. Note: the FGDRIVER functions are rearranged with each major release, but
  121205. their parameters do not change (see #03474 at AX=0000h)
  121206. SeeAlso: AX=0006h,AX=0007h,AX=0008h,AX=006Bh
  121207. --------V-620052-----------------------------
  121208. INT 62 u - FGDRIVER v4.02 - "FG_GETXJOY" - GET HORIZONTAL POSITION OF JOYSTICK
  121209. AX = 0052h
  121210. BX = joystick number (0001h or 0002h)
  121211. Return: AX = horizontal position of joystick
  121212. FFFFh if joystick uninitialized or not present
  121213. Notes: the FGDRIVER functions are rearranged with each major release, but
  121214. their parameters do not change (see #03474 at AX=0000h)
  121215. The actual coordinates are processor- and joystick-dependent
  121216. You must call "FG_INITJOY" (AX=005Eh) before using this function
  121217. SeeAlso: AX=0009h,AX=0056h,AX=005Eh,AX=0062h,AX=0077h
  121218. --------V-620053-----------------------------
  121219. INT 62 u - FGDRIVER v4.02 - "FG_GETXJUST" - GET HORIZONTAL JUSTIFICATION
  121220. AX = 0053h
  121221. Return: AX = string justification
  121222. 0000h strings are centered around current graphics X position
  121223. 0001h strings are right-justified at current graphics X position
  121224. FFFFh strings are left-justified at current graphics X position
  121225. Note: the FGDRIVER functions are rearranged with each major release, but
  121226. their parameters do not change (see #03474 at AX=0000h)
  121227. SeeAlso: AX=006Ch,AX=007Bh
  121228. --------V-620054-----------------------------
  121229. INT 62 u - FGDRIVER v4.02 - "FG_GETXPOS" - GET GRAPHICS CURSOR COLUMN
  121230. AX = 0054h
  121231. Return: AX = screen space X coordinate of graphics cursor position
  121232. Note: the FGDRIVER functions are rearranged with each major release, but
  121233. their parameters do not change (see #03474 at AX=0000h)
  121234. SeeAlso: AX=0058h,AX=007Eh,AX=007Fh
  121235. --------V-620055-----------------------------
  121236. INT 62 u - FGDRIVER v4.02 - "FG_GETYBOX" - GET WIDTH OF HORIZONTAL BOX LINES
  121237. AX = 0055h
  121238. Return: AX = width (in pixels) of top and bottom edges of rectangles
  121239. Note: the FGDRIVER functions are rearranged with each major release, but
  121240. their parameters do not change (see #03474 at AX=0000h)
  121241. SeeAlso: AX=0006h,AX=0007h,AX=0008h,AX=0063h
  121242. --------V-620056-----------------------------
  121243. INT 62 u - FGDRIVER v4.02 - "FG_GETYJOY" - GET VERTICAL POSITION OF JOYSTICK
  121244. AX = 0056h
  121245. BX = joystick number (0001h or 0002h)
  121246. Return: AX = vertical position of joystick
  121247. FFFFh if joystick uninitialized or not present
  121248. Notes: the FGDRIVER functions are rearranged with each major release, but
  121249. their parameters do not change (see #03474 at AX=0000h)
  121250. The actual coordinates are processor- and joystick-dependent
  121251. You must call "FG_INITJOY" (AX=005Eh) before using this function
  121252. SeeAlso: AX=0009h,AX=0052h,AX=005Eh,AX=0062h,AX=0077h
  121253. --------V-620057-----------------------------
  121254. INT 62 u - FGDRIVER v4.02 - "FG_GETYJUST" - GET VERTICAL JUSTIFICATION
  121255. AX = 0057h
  121256. Return: AX = string justification
  121257. 0000h strings are centered around current graphics Y position
  121258. 0001h strings have top edge at current graphics Y position
  121259. FFFFh strings have bottom edge at current graphics Y position
  121260. Note: the FGDRIVER functions are rearranged with each major release, but
  121261. their parameters do not change (see #03474 at AX=0000h)
  121262. SeeAlso: AX=0053h,AX=0065h
  121263. --------V-620058-----------------------------
  121264. INT 62 u - FGDRIVER v4.02 - "FG_GETYPOS" - GET GRAPHICS CURSOR ROW
  121265. AX = 0058h
  121266. Return: AX = screen space Y coordinate of graphics cursor position
  121267. Note: the FGDRIVER functions are rearranged with each major release, but
  121268. their parameters do not change (see #03474 at AX=0000h)
  121269. SeeAlso: AX=0054h,AX=007Eh,AX=007Fh
  121270. --------V-620059-----------------------------
  121271. INT 62 u - FGDRIVER v4.02 - "FG_HUSH" - STOP ASYNCHRONOUS SOUND IMMEDIATELY
  121272. AX = 0059h
  121273. Notes: the FGDRIVER functions are rearranged with each major release, but
  121274. their parameters do not change (see #03474 at AX=0000h)
  121275. This function immediately stops any sounds started with "FG_MUSICB",
  121276. "FG_SOUNDS", or "FG_VOICES"; it is ignored if no asynchronous sound
  121277. is playing
  121278. SeeAlso: AX=005Ah,AX=0081h,AX=00BDh,AX=00DCh
  121279. --------V-62005A-----------------------------
  121280. INT 62 u - FGDRIVER v4.02 - "FG_HUSHNEXT" - STOP ASYNCHRONOUS SOUND
  121281. AX = 005Ah
  121282. Program: FGDRIVER is the external video driver for the shareware
  121283. Fastgraph/Light by Ted Gruber Software
  121284. Notes: the FGDRIVER functions are rearranged with each major release, but
  121285. their parameters do not change (see #03474 at AX=0000h)
  121286. This function stops any sounds started with "FG_MUSICB", "FG_SOUNDS",
  121287. or "FG_VOICES" after the current repetition completes; it is ignored
  121288. unless asynchronous sound is continuous
  121289. SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DCh
  121290. --------V-62005B-----------------------------
  121291. INT 62 u - FGDRIVER v4.02 - "FG_IMAGEBUF" - SPECIFY TEMPORARY IMAGE BUFFER
  121292. AX = 005Bh
  121293. ES:BX -> buffer to be used when creating or displaying GIF/PCX/PPR/SPR
  121294. images
  121295. CX = size of buffer in bytes or 0000h to use internal buffer
  121296. Notes: the FGDRIVER functions are rearranged with each major release, but
  121297. their parameters do not change (see #03474 at AX=0000h)
  121298. Fastgraph's internal buffer is 4096 bytes; this function allows the
  121299. application to define a larger buffer which will typically speed
  121300. processing
  121301. SeeAlso: AX=006Ch,AX=006Dh,AX=006Eh,AX=00B9h,AX=00BAh,AX=00BBh
  121302. --------V-62005C-----------------------------
  121303. INT 62 u - FGDRIVER v4.02 - "FG_IMAGESIZ" - DETERMINE IMAGE STORAGE REQUIREMENT
  121304. AX = 005Ch
  121305. BX = image width in pixels
  121306. CX = image height in pixels
  121307. Note: the FGDRIVER functions are rearranged with each major release, but
  121308. their parameters do not change (see #03474 at AX=0000h)
  121309. Return: DX:AX = size in bytes of mode-specific bitmap for current video mode
  121310. SeeAlso: AX=003Ch,AX=0098h
  121311. --------V-62005D-----------------------------
  121312. INT 62 u - FGDRIVER v4.02 - "FG_INITEMS" - INITIALIZE EXPANDED MEMORY USE
  121313. AX = 005Dh
  121314. Return: AX = status
  121315. 0000h successful
  121316. FFFFh expanded memory manager inaccessible or not installed
  121317. Note: the FGDRIVER functions are rearranged with each major release, but
  121318. their parameters do not change (see #03474 at AX=0000h)
  121319. SeeAlso: AX=0002h,AX=0060h"v4.02"
  121320. --------V-62005E-----------------------------
  121321. INT 62 u - FGDRIVER v4.02 - "FG_INITJOY" - INITIALIZE JOYSTICK USE
  121322. AX = 005Eh
  121323. BX = joystick number (0001h or 0002h)
  121324. Return: AX = status
  121325. 0000h successful
  121326. FFFFh joystick not connected or no game port
  121327. Notes: the FGDRIVER functions are rearranged with each major release, but
  121328. their parameters do not change (see #03474 at AX=0000h)
  121329. Fastgraph assumes that the requested joystick is centered at the time
  121330. this function is called
  121331. SeeAlso: AX=0009h,AX=0052h,AX=0056h,AX=0062h,AX=0077h
  121332. --------V-62005F-----------------------------
  121333. INT 62 u - FGDRIVER v4.02 - "FG_INITPM"??? - (NOT IMPLEMENTED)
  121334. AX = 005Fh
  121335. ???
  121336. Return: ???
  121337. Note: the FGDRIVER functions are rearranged with each major release, but
  121338. their parameters do not change (see #03474 at AX=0000h)
  121339. --------V-620060-----------------------------
  121340. INT 62 u - FGDRIVER v1.10 only - "FG_DISPPCX" - DISPLAY PCX FILE
  121341. AX = 0060h
  121342. ES:BX -> ASCIZ filename
  121343. CX = flags
  121344. bit 0: use current palette rather than PCX file's palette
  121345. bits 1-15 reserved (0)
  121346. Return: AX = status
  121347. 0000h success
  121348. 0001h file not found
  121349. 0002h file is not a valid PCX file
  121350. Notes: the FGDRIVER functions are rearranged with each major release, but
  121351. their parameters do not change (see #03474 at AX=0000h)
  121352. This call is ignored in text modes and Hercules low-resolution graphics
  121353. The image is displayed with its upper left corner at the current
  121354. graphics cursor position
  121355. SeeAlso: AX=00B9h
  121356. --------V-620060-----------------------------
  121357. INT 62 u - FGDRIVER v4.02 - "FG_INITXMS" - INITIALIZE EXTENDED MEMORY USE
  121358. AX = 0060h
  121359. Return: AX = status
  121360. 0000h successful
  121361. FFFFh extended memory manager inaccessible or not installed
  121362. Note: the FGDRIVER functions are rearranged with each major release, but
  121363. their parameters do not change (see #03474 at AX=0000h)
  121364. SeeAlso: AX=0003h,AX=005Dh
  121365. --------V-620061-----------------------------
  121366. INT 62 u - FGDRIVER v4.02 - "FG_INSIDE" - CHECK IF POINT INSIDE CONVEX POLYGON
  121367. AX = 0061h
  121368. ES:BX -> vertex array
  121369. CX = number of vertices
  121370. DX = screen space column of point to test
  121371. SI = screen space row of point to test
  121372. Return: AX = result
  121373. 0000h point is outside polygon
  121374. 0001h point is inside polygon
  121375. undefined if not a convex polygon
  121376. Note: the FGDRIVER functions are rearranged with each major release, but
  121377. their parameters do not change (see #03474 at AX=0000h)
  121378. SeeAlso: AX=0092h,AX=0093h,AX=0094h
  121379. --------V-620062-----------------------------
  121380. INT 62 u - FGDRIVER v4.02 - "FG_INTJOY" - GET KEYCODES CORRESP TO JOYSTICK POS
  121381. AX = 0062h
  121382. CX = joystick number (0001h or 0002h)
  121383. ES:BX -> variable pointer record (see #03488)
  121384. Notes: the FGDRIVER functions are rearranged with each major release, but
  121385. their parameters do not change (see #03474 at AX=0000h)
  121386. If the indicated joystick has not been initialized with AX=008Eh, both
  121387. the button code and joystick position will be set to 00h
  121388. If either button is pressed, a button code of 0Dh is returned;
  121389. otherwise, a button code of 00h is returned
  121390. SeeAlso: AX=0009h,AX=0052h,AX=0046h,AX=005Eh,AX=0077h
  121391. Format of FGDRIVER INTJOY variable pointer record:
  121392. Offset Size Description (Table 03488)
  121393. 00h WORD segment of BYTE buffer for button code
  121394. 02h WORD offset of BYTE buffer for button code
  121395. 04h WORD segment of BYTE buffer for joystick position
  121396. 06h WORD offset of BYTE buffer for joystick position
  121397. --------V-620063-----------------------------
  121398. INT 62 u - FGDRIVER v4.02 - "FG_INTKEY" - GET KEYSTROKE, NO WAIT
  121399. AX = 0063h
  121400. ES:BX -> variable pointer record (see #03489)
  121401. Return: variables updated
  121402. Notes: the FGDRIVER functions are rearranged with each major release, but
  121403. their parameters do not change (see #03474 at AX=0000h)
  121404. If the keyboard buffer is empty, both the ASCII and extended keycodes
  121405. are set to 00h
  121406. SeeAlso: AX=000Ah,AX=0046h,AX=0069h,AX=00DEh,INT 16/AH=01h
  121407. Format of FGDRIVER INTKEY variable pointer record:
  121408. Offset Size Description (Table 03489)
  121409. 00h WORD segment of BYTE buffer for ASCII keycode
  121410. 02h WORD offset of BYTE buffer for ASCII keycode
  121411. 04h WORD segment of BYTE buffer for extended keycode
  121412. 06h WORD offset of BYTE buffer for extended keycode
  121413. --------V-620064-----------------------------
  121414. INT 62 u - FGDRIVER v4.02 - "FG_INVERT" - INVERT ORIENTATION OF BITMAP
  121415. AX = 0064h
  121416. ES:BX -> bitmap
  121417. CX = width of bitmap in bytes
  121418. DX = height of bitmap in pixel rows
  121419. Return: nothing
  121420. Note: the FGDRIVER functions are rearranged with each major release, but
  121421. their parameters do not change (see #03474 at AX=0000h)
  121422. --------V-620065-----------------------------
  121423. INT 62 u - FGDRIVER v4.02 - "FG_JUSTIFY" - SET TEXT OUTPUT JUSTIFICATION
  121424. AX = 0065h
  121425. BX = horizontal justification
  121426. (00h centered, 01h right-justified, FFh left-justified)
  121427. CX = vertical justification
  121428. (00h centered, 01h top of characters, FFh bottom of chars)
  121429. Note: the FGDRIVER functions are rearranged with each major release, but
  121430. their parameters do not change (see #03474 at AX=0000h)
  121431. SeeAlso: AX=000Ch,AX=0037h,AX=0053h,AX=0057h,AX=0096h
  121432. --------V-620066-----------------------------
  121433. INT 62 u - FGDRIVER v4.02 - "FG_KBINIT" - ENABLE/DISABLE LOW-LEVEL KBD HANDLER
  121434. AX = 0066h
  121435. BX = new state (0000h disabled, 0001h enabled)
  121436. Notes: the FGDRIVER functions are rearranged with each major release, but
  121437. their parameters do not change (see #03474 at AX=0000h)
  121438. When the low-level handler is enabled, "FG_GETKEY", "FG_INTKEY",
  121439. "FG_WAITKEY", and all other functions calling DOS or BIOS keyboard
  121440. services become unavailable
  121441. SeeAlso: AX=0067h,AX=0068h,AX=0069h
  121442. --------V-620067-----------------------------
  121443. INT 62 u - FGDRIVER v4.02 - "FG_KBLAST" - GET MOST RECENT SCANCODE PROCESSED
  121444. AX = 0067h
  121445. Return: AX = scancode for keypress most recently processed by FastGraph's
  121446. low-level keyboard handler, or 0000h if no keys since FG_KBINIT
  121447. Note: the FGDRIVER functions are rearranged with each major release, but
  121448. their parameters do not change (see #03474 at AX=0000h)
  121449. SeeAlso: AX=0066h,AX=0068h,AX=0069h
  121450. --------V-620068-----------------------------
  121451. INT 62 u - FGDRIVER v4.02 - "FG_KBRESET" - RESET LOW-LEVEL KEYBOARD HANDLER
  121452. AX = 0068h
  121453. Note: the FGDRIVER functions are rearranged with each major release, but
  121454. their parameters do not change (see #03474 at AX=0000h)
  121455. SeeAlso: AX=0066h,AX=0067h,AX=0069h
  121456. --------V-620069-----------------------------
  121457. INT 62 u - FGDRIVER v4.02 - "FG_KBTEST" - CHECK WHETHER SPECIFIED KEY PRESSED
  121458. AX = 0069h
  121459. BX = scan code of desired key
  121460. Return: AX = state
  121461. 0000h key is not pressed
  121462. 0001h key is currently pressed
  121463. Notes: the FGDRIVER functions are rearranged with each major release, but
  121464. their parameters do not change (see #03474 at AX=0000h)
  121465. The low-level keyboard handler must have been enabled with AX=0066h
  121466. SeeAlso: AX=0066h,AX=0067h,INT 16/AH=01h
  121467. --------V-62006A-----------------------------
  121468. INT 62 u - FGDRIVER v4.02 - "FG_LOADPCX" - LOAD .PCX INTO ACTIVE VIRTUAL BUFFER
  121469. AX = 006Ah
  121470. ES:BX -> ASCIZ filename for PCX image
  121471. CX = control flags
  121472. bit 0: use current palette, overriding stored .PCX palette
  121473. bit 1: load at current graphics position, not stored position
  121474. bit 2: load image from FG_IMAGEBUF buffer instead of .PCX file
  121475. Return: AX = status
  121476. 0000h successful
  121477. 0001h file not found
  121478. 0002h not a .PCX file
  121479. Note: the FGDRIVER functions are rearranged with each major release, but
  121480. their parameters do not change (see #03474 at AX=0000h)
  121481. SeeAlso: AX=006Ch,AX=00B9h,AX=00D5h
  121482. --------V-62006B-----------------------------
  121483. INT 62 u - FGDRIVER v4.02 - "FG_LOCATE" - SET TEXT-MODE CURSOR POSITION
  121484. AX = 006Bh
  121485. BX = row
  121486. CX = column
  121487. Notes: the FGDRIVER functions are rearranged with each major release, but
  121488. their parameters do not change (see #03474 at AX=0000h)
  121489. There are only eight text cursors shared by successive groups of
  121490. eight video pages (pages 0, 8, 16, ... share one cursor, 1, 9, ...
  121491. share the second, etc)
  121492. SeeAlso: AX=0054h,AX=0058h,AX=007Eh,AX=00E0h
  121493. --------V-62006C-----------------------------
  121494. INT 62 u - FGDRIVER v4.02 - "FG_MAKEPCX" - CREATE PCX FILE FROM SCREEN WINDOW
  121495. AX = 006Ch
  121496. BX = left edge in screen space units
  121497. CX = right edge in screen space units
  121498. DX = top edge in screen space units
  121499. SI = bottom edge in screen space units
  121500. ES:DI -> ASCIZ filename of PCX file to create
  121501. Return: AX = status
  121502. 0000h successful
  121503. 0001h file not created
  121504. Notes: the FGDRIVER functions are rearranged with each major release, but
  121505. their parameters do not change (see #03474 at AX=0000h)
  121506. The PCX file is created from the specified region of the active video
  121507. page; the left and right edges are adjusted to a byte boundary if
  121508. necessary
  121509. If the specified file already exists, it is overwritten
  121510. This call is ignored in text and Hercules low-resolution graphics modes
  121511. SeeAlso: AX=005Bh,AX=006Dh,AX=006Ah,AX=006Eh,AX=00B9h,AX=00BAh,AX=00BBh
  121512. --------V-62006D-----------------------------
  121513. INT 62 u - FGDRIVER v4.02 - "FG_MAKEPPR" - CREATE PACKED PIXEL RUN FILE
  121514. AX = 006Dh
  121515. BX = left edge in screen space units
  121516. CX = right edge in screen space units
  121517. DX = top edge in screen space units
  121518. SI = bottom edge in screen space units
  121519. ES:DI -> ASCIZ filename of PPR file to create
  121520. Return: AX = status
  121521. 0000h successful
  121522. 0001h file not created
  121523. Notes: the FGDRIVER functions are rearranged with each major release, but
  121524. their parameters do not change (see #03474 at AX=0000h)
  121525. The PPR file is created from the specified region of the active video
  121526. page; the left and right edges are adjusted to byte boundaries if
  121527. necessary
  121528. If the specified file already exists, it is overwritten
  121529. This call is ignored in text modes
  121530. SeeAlso: AX=005Bh,AX=006Ch,AX=006Eh,AX=00B9h,AX=00BAh,AX=00BBh
  121531. --------V-62006E-----------------------------
  121532. INT 62 u - FGDRIVER v4.02 - "FG_MAKESPR" - CREATE STANDARD PIXEL RUN FILE
  121533. AX = 006Eh
  121534. BX = left edge in screen space units
  121535. CX = right edge in screen space units
  121536. DX = top edge in screen space units
  121537. SI = bottom edge in screen space units
  121538. ES:DI -> ASCIZ filename of SPR file to create
  121539. Return: AX = status
  121540. 0000h successful
  121541. 0001h file not created
  121542. Notes: the FGDRIVER functions are rearranged with each major release, but
  121543. their parameters do not change (see #03474 at AX=0000h)
  121544. The SPR file is created from the specified region of the active video
  121545. page; the left and right edges are adjusted to byte boundaries if
  121546. necessary
  121547. If the specified file already exists, it is overwritten
  121548. This call is ignored in text modes
  121549. SeeAlso: AX=005Bh,AX=006Ch,AX=006Dh,AX=00B9h,AX=00BAh,AX=00BBh
  121550. --------V-62006F-----------------------------
  121551. INT 62 u - FGDRIVER v4.02 - "FG_MAPRGB" - MAP COLOR COMPONENTS INTO PALETTE VAL
  121552. AX = 006Fh
  121553. BX = red component
  121554. CX = green component
  121555. DX = blue component
  121556. Return: AX = mode-specific palette value corresponding to specified components
  121557. Notes: the FGDRIVER functions are rearranged with each major release, but
  121558. their parameters do not change (see #03474 at AX=0000h)
  121559. This function is only meaningful in 16-color graphics modes
  121560. SeeAlso: AX=004Eh,AX=00B3h
  121561. --------V-620070-----------------------------
  121562. INT 62 u - FGDRIVER v4.02 - "FG_MEASURE" - GET DELAY UNITS PER CLOCK TICK
  121563. AX = 0070h
  121564. Return: AX = delay units per clock tick (processor-dependent)
  121565. Notes: the FGDRIVER functions are rearranged with each major release, but
  121566. their parameters do not change (see #03474 at AX=0000h)
  121567. These delay units are used by "FG_STALL" (see AX=00BFh)
  121568. SeeAlso: AX=00BFh
  121569. --------V-620071-----------------------------
  121570. INT 62 u - FGDRIVER v4.02 - "FG_MEMAVAIL" - QUERY AMOUNT OF FREE MEMORY
  121571. AX = 0071h
  121572. Return: DX:AX = number of bytes of conventional memory available
  121573. Note: the FGDRIVER functions are rearranged with each major release, but
  121574. their parameters do not change (see #03474 at AX=0000h)
  121575. SeeAlso: AX=005Dh,AX=0072h
  121576. --------V-620072-----------------------------
  121577. INT 62 u - FGDRIVER v4.02 - "FG_MEMORY" - GET SIZE OF VIDEO MEMORY
  121578. AX = 0072h
  121579. Return: AX = size of video memory in KB
  121580. Notes: the FGDRIVER functions are rearranged with each major release, but
  121581. their parameters do not change (see #03474 at AX=0000h)
  121582. You must first call "FG_SVGAINIT" (see AX=00C1h) before using this
  121583. function
  121584. SeeAlso: AX=0071h
  121585. --------V-620073-----------------------------
  121586. INT 62 u - FGDRIVER v4.02 - "FG_MOUSE256" - DEFINE 256-COLOR MOUSE CURSOR
  121587. AX = 0073h
  121588. ES:BX -> 512-byte cursor definition
  121589. CX = X offset of hot-spot within mouse cursor
  121590. DX = Y offset of hot-spot within mouse cursor
  121591. Return: nothing
  121592. Notes: the FGDRIVER functions are rearranged with each major release, but
  121593. their parameters do not change (see #03474 at AX=0000h)
  121594. the cursor definition array consists of 256 bytes defining the 16x16
  121595. screen mask, followed by another 256 bytes definining the 16x16
  121596. cursor mask
  121597. SeeAlso: AX=0074h,AX=0075h,AX=007Bh
  121598. --------V-620074-----------------------------
  121599. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEBUT" - GET MOUSE BUTTON PRESS/RELEASE CNTS
  121600. AX = 0074h
  121601. CX = mouse button (1 = left press, 2 = right press, 3 = middle press,
  121602. -1=left release, -2=right release, -3=middle release)
  121603. ES:BX -> variable pointer record (see #03490)
  121604. Return: variables updated
  121605. Notes: the FGDRIVER functions are rearranged with each major release, but
  121606. their parameters do not change (see #03474 at AX=0000h)
  121607. This function returns the count of presses or releases since the last
  121608. call to this function; if the count is zero, row and column will
  121609. also be zero
  121610. SeeAlso: AX=0075h,AX=0077h,AX=007Ah
  121611. Format of FGDRIVER MOUSEBUT variable pointer record:
  121612. Offset Size Description (Table 03490)
  121613. 00h WORD segment of WORD buffer for press/release count
  121614. 02h WORD offset of WORD buffer for press/release count
  121615. 04h WORD segment of WORD buffer for screen space col of last press/rls
  121616. 06h WORD offset of WORD buffer for screen space col of last press/rels
  121617. 08h WORD segment of WORD buffer for screen space row of last press/rls
  121618. 0Ah WORD offset of WORD buffer for screen space row of last press/rls
  121619. --------V-620075-----------------------------
  121620. INT 62 u - FGDRIVER v4.02 - "FG_MOUSECUR" - SPECIFY TEXT-MODE MOUSE CURSOR
  121621. AX = 0075h
  121622. BX = screen mask
  121623. CX = cursor mask
  121624. Notes: the FGDRIVER functions are rearranged with each major release, but
  121625. their parameters do not change (see #03474 at AX=0000h)
  121626. This call is ignored in graphics modes
  121627. SeeAlso: AX=007Bh,AX=007Dh
  121628. --------V-620076-----------------------------
  121629. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEFIN" - UNHOOK FASTGRAPH MOUSE HANDLER
  121630. AX = 0076h
  121631. Notes: the FGDRIVER functions are rearranged with each major release, but
  121632. their parameters do not change (see #03474 at AX=0000h)
  121633. This function should be called before switching back to text mode if
  121634. "FG_MOUSEINI" was called while in an SVGA graphics mode
  121635. SeeAlso: AX=0077h
  121636. --------V-620077-----------------------------
  121637. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEINI" - INITIALIZE MOUSE SUPPORT
  121638. AX = 0077h
  121639. Return: AX = status
  121640. 0002h two-button mouse
  121641. 0003h three-button mouse
  121642. FFFFh initialization failed
  121643. Notes: the FGDRIVER functions are rearranged with each major release, but
  121644. their parameters do not change (see #03474 at AX=0000h)
  121645. After this call, the mouse cursor is invisible
  121646. SeeAlso: AX=0076h,AX=0078h,AX=007Ch
  121647. --------V-620078-----------------------------
  121648. INT 62 u - FGDRIVER v4.02 - "FG_MOUSELIM" - SPECIFY MOUSE CURSOR LIMITS
  121649. AX = 0078h
  121650. BX = left-most position allowed for mouse cursor
  121651. CX = right-most position allowed
  121652. DX = top-most position allowed
  121653. SI = bottom-most position allowed
  121654. Note: the FGDRIVER functions are rearranged with each major release, but
  121655. their parameters do not change (see #03474 at AX=0000h)
  121656. SeeAlso: AX=0077h,AX=0079h,INT 33/AX=0007h,INT 33/AX=0008h
  121657. --------V-620079-----------------------------
  121658. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEMOV" - SET MOUSE CURSOR POSITION
  121659. AX = 0079h
  121660. BX = new column
  121661. CX = new row
  121662. Notes: the FGDRIVER functions are rearranged with each major release, but
  121663. their parameters do not change (see #03474 at AX=0000h)
  121664. This function will not move the mouse cursor outside the bounding box
  121665. specified with AX=009Bh
  121666. SeeAlso: AX=0078h,AX=007Ah,INT 33/AX=0004h
  121667. --------V-62007A-----------------------------
  121668. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEPOS" - GET CURRENT MOUSE POSITION
  121669. AX = 007Ah
  121670. ES:BX -> variable pointer record (see #03491)
  121671. Note: the FGDRIVER functions are rearranged with each major release, but
  121672. their parameters do not change (see #03474 at AX=0000h)
  121673. SeeAlso: AX=0079h
  121674. Format of FGDRIVER MOUSEPOS variable pointer record:
  121675. Offset Size Description (Table 03491)
  121676. 00h WORD segment of WORD buffer for mouse column
  121677. 02h WORD offset of WORD buffer for mouse column
  121678. 04h WORD segment of WORD buffer for mouse row
  121679. 06h WORD offset of WORD buffer for mouse row
  121680. 08h WORD segment of WORD buffer for button status
  121681. 0Ah WORD offset of WORD buffer for button status
  121682. Note: button status: bit 0 = left button, bit 1 = right, bit 2 = middle
  121683. --------V-62007B-----------------------------
  121684. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEPTR" - SPECIFY GRAPH-MODE MOUSE CURSOR
  121685. AX = 007Bh
  121686. ES:BX -> masks (16-byte screen mask followed by 16-byte cursor mask)
  121687. CX = X offset of hot spot from upper left corner
  121688. DX = Y offset of hot spot from upper left corner
  121689. Notes: the FGDRIVER functions are rearranged with each major release, but
  121690. their parameters do not change (see #03474 at AX=0000h)
  121691. This call is ignored in text modes
  121692. SeeAlso: AX=0073h,AX=0075h,INT 33/AX=0009h
  121693. --------V-62007C-----------------------------
  121694. INT 62 u - FGDRIVER v4.02 - "FG_MOUSESPD" - SET MOUSE CURSOR SPEED
  121695. AX = 007Ch
  121696. BX = horizontal mickeys per eight pixels of movement (default 16)
  121697. CX = vertical mickeys per eight pixels of movement (default 16)
  121698. Note: the FGDRIVER functions are rearranged with each major release, but
  121699. their parameters do not change (see #03474 at AX=0000h)
  121700. SeeAlso: INT 33/AX=000Fh,INT 33/AX=001Ah
  121701. --------V-62007D-----------------------------
  121702. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEVIS" - SET MOUSE CURSOR VISIBILITY
  121703. AX = 007Dh
  121704. BX = new state (0000h invisible, 0001h visible)
  121705. Note: the FGDRIVER functions are rearranged with each major release, but
  121706. their parameters do not change (see #03474 at AX=0000h)
  121707. SeeAlso: AX=0077h,INT 33/AX=0001h,INT 33/AX=0002h
  121708. --------V-62007E-----------------------------
  121709. INT 62 u - FGDRIVER v4.02 - "FG_MOVE" - SET GRAPHICS CURSOR POSITION
  121710. AX = 007Eh
  121711. BX = new column
  121712. CX = new row
  121713. Notes: the FGDRIVER functions are rearranged with each major release, but
  121714. their parameters do not change (see #03474 at AX=0000h)
  121715. This call is ignored in text modes
  121716. SeeAlso: AX=0054h,AX=0058h,AX=006Bh,AX=0079h,AX=007Fh,AX=00E0h
  121717. --------V-62007F-----------------------------
  121718. INT 62 u - FGDRIVER v4.02 - "FG_MOVEREL" - ADJUST GRAPHICS CURSOR POSITION
  121719. AX = 007Fh
  121720. BX = column offset
  121721. CX = row offset
  121722. Notes: the FGDRIVER functions are rearranged with each major release, but
  121723. their parameters do not change (see #03474 at AX=0000h)
  121724. This call is ignored in text modes
  121725. SeeAlso: AX=0054h,AX=0058h,AX=007Eh
  121726. --------V-620080-----------------------------
  121727. INT 62 u - FGDRIVER v4.02 - "FG_MUSIC" - PLAY SERIES OF NOTES
  121728. AX = 0080h
  121729. ES:BX -> '$'-terminated music string in BASIC PLAY format
  121730. Return: after music completed
  121731. Notes: the FGDRIVER functions are rearranged with each major release, but
  121732. their parameters do not change (see #03474 at AX=0000h)
  121733. This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
  121734. AX=00AAh) is already in progress
  121735. SeeAlso: AX=0081h,AX=00BCh,AX=00DBh
  121736. --------V-620081-----------------------------
  121737. INT 62 u - FGDRIVER v4.02 - "FG_MUSICB" - PLAY SERIES OF NOTES IN BACKGROUND
  121738. AX = 0081h
  121739. CX = number of repetitions (negative = continuous play)
  121740. ES:BX -> '$'-terminated music string in BASIC PLAY format
  121741. Notes: the FGDRIVER functions are rearranged with each major release, but
  121742. their parameters do not change (see #03474 at AX=0000h)
  121743. This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
  121744. AX=00AAh) is already in progress
  121745. SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DCh
  121746. --------V-620082-----------------------------
  121747. INT 62 u - FGDRIVER v4.02 - "FG_NUMLOCK" - GET STATE OF NUMLOCK KEY
  121748. AX = 0082h
  121749. Return: AX = NumLock state (0000h off, 0001h on)
  121750. Note: the FGDRIVER functions are rearranged with each major release, but
  121751. their parameters do not change (see #03474 at AX=0000h)
  121752. SeeAlso: AX=000Ah,AX=00A4h,AX=00A8h,AX=00B1h
  121753. --------V-620083-----------------------------
  121754. INT 62 u - FGDRIVER v4.02 - "FG_PACK" - CONVERT PIXEL-PER-BYTE TO PACKED BITMAP
  121755. AX = 0083h
  121756. ES:BX -> variable pointer record (see #03492)
  121757. CX = width of bitmap in pixels
  121758. DX = height of bitmap in pixels
  121759. Return: result bitmap buffer updated
  121760. SeeAlso: AX=00CBh
  121761. Format of FGDRIVER PACK variable pointer record:
  121762. Offset Size Description (Table 03492)
  121763. 00h WORD segment of source (mode-independent) bitmap
  121764. 02h WORD offset of source (mode-independent) bitmap
  121765. 04h WORD segment of buffer for result (mode-specific) bitmap
  121766. 06h WORD offset of buffer for result (mode-specific) bitmap
  121767. --------V-620084-----------------------------
  121768. INT 62 u - FGDRIVER v4.02 - "FG_PAGESIZE" - GET VIDEO PAGE SIZE FOR CURR MODE
  121769. AX = 0084h
  121770. Return: DX:AX = page size in bytes
  121771. Note: the FGDRIVER functions are rearranged with each major release, but
  121772. their parameters do not change (see #03474 at AX=0000h)
  121773. SeeAlso: AX=0072h
  121774. --------V-620085-----------------------------
  121775. INT 62 u - FGDRIVER v4.02 - "FG_PAINT" - FLOOD CLOSED REGION WITH COLOR
  121776. AX = 0085h
  121777. BX = column
  121778. CX = row
  121779. Notes: the FGDRIVER functions are rearranged with each major release, but
  121780. their parameters do not change (see #03474 at AX=0000h)
  121781. This function fills an arbitrary closed region around the specified
  121782. point with the current color; the screen edges are not considered
  121783. region boundaries
  121784. This call is ignored in text modes
  121785. SeeAlso: AX=0035h
  121786. --------V-620086-----------------------------
  121787. INT 62 u - FGDRIVER v4.02 - "FG_PALETTE" - SET PALETTE / SET VIDEO DAC REGISTER
  121788. AX = 0086h
  121789. ---CGA 4-color graphics---
  121790. BX = CGA paletee number
  121791. CX = background color
  121792. ---CGA 2-color graphics---
  121793. BX ignored
  121794. CX = foreground color
  121795. ---16-color graphics---
  121796. BX = palette register number
  121797. CX = palette value
  121798. ---256-color graphics---
  121799. BX = DAC register number
  121800. CX = DAC value
  121801. Notes: the FGDRIVER functions are rearranged with each major release, but
  121802. their parameters do not change (see #03474 at AX=0000h)
  121803. This function is ignored in text modes and Hercules graphics modes
  121804. Few EGA/VGA adapters correctly set the foreground color in CGA mode 6
  121805. SeeAlso: AX=0041h,AX=004Eh,AX=0087h,AX=00ABh
  121806. --------V-620087-----------------------------
  121807. INT 62 u - FGDRIVER v4.02 - "FG_PALETTES" - SET ALL PALETTE REGISTERS
  121808. AX = 0087h
  121809. ES:BX -> array of 16 WORDs containing values for palette registers
  121810. (or first 16 DAC registers in 256-color modes)
  121811. Notes: the FGDRIVER functions are rearranged with each major release, but
  121812. their parameters do not change (see #03474 at AX=0000h)
  121813. This function is ignored in text modes, CGA and Hercules graphics modes
  121814. SeeAlso: AX=0041h,AX=004Eh,AX=0086h,AX=00ABh
  121815. --------V-620088-----------------------------
  121816. INT 62 u - FGDRIVER v4.02 - "FG_PAN" - SET SCREEN ORIGIN
  121817. AX = 0088h
  121818. BX = new column for screen origin
  121819. CX = new row for screen origin
  121820. Note: the FGDRIVER functions are rearranged with each major release, but
  121821. their parameters do not change (see #03474 at AX=0000h)
  121822. SeeAlso: AX=00B2h
  121823. --------V-620089-----------------------------
  121824. INT 62 u - FGDRIVER v4.02 - "FG_PATTERN" - SPECIFY DISPLAY PATTERN FOR COLOR
  121825. AX = 0089h
  121826. BX = index of pattern to define
  121827. CX = number of predefined display pattern
  121828. Notes: the FGDRIVER functions are rearranged with each major release, but
  121829. their parameters do not change (see #03474 at AX=0000h)
  121830. When displaying a pixel run map, Fastgraph uses the pattern associated
  121831. with each color index rather than displaying the actual color
  121832. This call has no effect in text and 256-color graphics modes
  121833. SeeAlso: AX=0023h,AX=0045h
  121834. --------V-62008A-----------------------------
  121835. INT 62 u - FGDRIVER v4.02 - "FG_PCXHEAD" - GET PCX FILE HEADER
  121836. AX = 008Ah
  121837. ES:BX -> variable pointer record (see #03493)
  121838. Return: AX = status
  121839. 0000h successful
  121840. FFFEh not a PCX file
  121841. FFFFh file does not exist
  121842. Note: the FGDRIVER functions are rearranged with each major release, but
  121843. their parameters do not change (see #03474 at AX=0000h)
  121844. SeeAlso: AX=008Bh,AX=00B9h
  121845. Format of FGDRIVER PCXHEAD variable pointer record:
  121846. Offset Size Description (Table 03493)
  121847. 00h WORD segment of ASCIZ filename
  121848. 02h WORD offset of ASCIZ filename
  121849. 04h WORD segment of 128-byte buffer for PCX header
  121850. 06h WORD offset of 128-byte buffer for PCX header
  121851. --------V-62008B-----------------------------
  121852. INT 62 u - FGDRIVER v4.02 - "FG_PCXMODE" - GET OPTIMAL VIDEO MODE FOR DISPLAY
  121853. AX = 008Bh
  121854. ES:BX -> PCX header (see AX=008Ah)
  121855. Return: AX = optimal video mode for PCX file
  121856. FFFEh not a valid PCX header
  121857. FFFFh unable to determine compatible video mode
  121858. Note: the FGDRIVER functions are rearranged with each major release, but
  121859. their parameters do not change (see #03474 at AX=0000h)
  121860. SeeAlso: AX=008Ah,AX=00B9h
  121861. --------V-62008C-----------------------------
  121862. INT 62 u - FGDRIVER v4.02 - "FG_PCXPAL" - GET PALETTE STORED IN PCX FILE
  121863. AX = 008Ch
  121864. ES:BX -> variable pointer record (see #03494)
  121865. Return: AX = number of colors in palette (16 or 256) or
  121866. FFFEh not a valid PCX file
  121867. FFFFh file not found
  121868. Note: the FGDRIVER functions are rearranged with each major release, but
  121869. their parameters do not change (see #03474 at AX=0000h)
  121870. SeeAlso: AX=008Dh
  121871. Format of FGDRIVER PCXPAL variable pointer record:
  121872. Offset Size Description (Table 03494)
  121873. 00h WORD segment of ASCIZ .PCX filename
  121874. 02h WORD offset of ASCIZ .PCX filename
  121875. 04h WORD segment of buffer for .PCX palette RGB triples
  121876. 06h WORD offset of buffer for .PCX palette RGB triples
  121877. Note: the buffer for the palette must hold at least three times as many bytes
  121878. as there are colors in the palette
  121879. SeeAlso: #03495
  121880. --------V-62008D-----------------------------
  121881. INT 62 u - FGDRIVER v4.02 - "FG_PCXRANGE" - GET EXTENT OF PCX IMAGE
  121882. AX = 008Dh
  121883. ES:BX -> variable pointer record (see #03495)
  121884. Return: indicated variables updated; if the indicated header is not valid,
  121885. all of the coordinate variables are set to FFFFh
  121886. Note: the FGDRIVER functions are rearranged with each major release, but
  121887. their parameters do not change (see #03474 at AX=0000h)
  121888. SeeAlso: AX=008Ch
  121889. Format of FGDRIVER PCXRANGE variable pointer record:
  121890. Offset Size Description (Table 03495)
  121891. 00h WORD segment of 128-byte PCX file header
  121892. 02h WORD offset of 128-byte PCX file header
  121893. 04h WORD segment of WORD buffer for X coordinate of image's left edge
  121894. 04h WORD offset of WORD buffer for X coordinate of image's left edge
  121895. 08h WORD segment of WORD buffer for X coordinate of image's right edge
  121896. 0Ah WORD offset of WORD buffer for X coordinate of image's right edge
  121897. 0Ch WORD segment of WORD buffer for Y coordinate of image's top edge
  121898. 0Eh WORD offset of WORD buffer for Y coordinate of image's top edge
  121899. 10h WORD segment of WORD buffer for X coordinate of image's bottom edge
  121900. 12h WORD offset of WORD buffer for X coordinate of image's bottom edge
  121901. SeeAlso: #03494
  121902. --------V-62008E-----------------------------
  121903. INT 62 u - FGDRIVER v4.02 - "FG_PLAYING" - DETERMINE WHETHER ASYNC SOUND ACTIVE
  121904. AX = 008Eh
  121905. Return: AX = sound state (0 = no asynchronous sound, 1 = async sound playing)
  121906. Note: the FGDRIVER functions are rearranged with each major release, but
  121907. their parameters do not change (see #03474 at AX=0000h)
  121908. SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DCh
  121909. --------V-62008F-----------------------------
  121910. INT 62 u - FGDRIVER v4.02 - "FG_POINT" - DISPLAY A PIXEL
  121911. AX = 008Fh
  121912. BX = column
  121913. CX = row
  121914. Notes: the FGDRIVER functions are rearranged with each major release, but
  121915. their parameters do not change (see #03474 at AX=0000h)
  121916. This call is ignored in text modes
  121917. SeeAlso: AX=0006h,AX=001Dh,AX=004Dh,AX=0090h
  121918. --------V-620090-----------------------------
  121919. INT 62 u - FGDRIVER v4.02 - "FG_POINTX" - DISPLAY A PIXEL IN XOR MODE
  121920. AX = 0090h
  121921. BX = column
  121922. CX = row
  121923. Notes: the FGDRIVER functions are rearranged with each major release, but
  121924. their parameters do not change (see #03474 at AX=0000h)
  121925. This call is ignored in text modes
  121926. SeeAlso: AX=004Dh,AX=008Fh
  121927. --------V-620091-----------------------------
  121928. INT 62 u - FGDRIVER v4.02 - "FG_POLYEDGE" - SPECIFY INCLUSION OF FINAL PIXELS
  121929. AX = 0091h
  121930. BX = edge flag
  121931. 0000h include right- and bottom-edge pixels when drawing polygons
  121932. with FG_POLYFILL
  121933. 0001h (default) exclue right- and bottom-edge pixels
  121934. SeeAlso: AX=0092h
  121935. --------V-620092-----------------------------
  121936. INT 62 u - FGDRIVER v4.02 - "FG_POLYFILL" - DRAW A FILLED CONVEX POLYGON
  121937. AX = 0092h
  121938. CX = number of vertices
  121939. ES:BX -> variable pointer record (see #03496)
  121940. Notes: the FGDRIVER functions are rearranged with each major release, but
  121941. their parameters do not change (see #03474 at AX=0000h)
  121942. The vertex array consists of pairs of words specifying the X and Y
  121943. coordinates of each vertex; the work array is used internally and
  121944. must contain at least four times as many bytes as the polygon is
  121945. high in pixels
  121946. This function is ignored in text modes
  121947. If the polygon is non-convex, only a portion of it may be filled
  121948. SeeAlso: AX=000Eh,AX=0027h,AX=0091h,AX=0093h,AX=0094h,AX=0095h
  121949. Format of FGDRIVER POLYFILL variable pointer record:
  121950. Offset Size Description (Table 03496)
  121951. 00h WORD segment of vertex array (see #03498)
  121952. 02h WORD offset of vertex array
  121953. 04h WORD segment of work array
  121954. 06h WORD offset of work array
  121955. SeeAlso: #03497
  121956. --------V-620093-----------------------------
  121957. INT 62 u - FGDRIVER v4.02 - "FG_POLYGON" - DRAW AN UNFILLED POLYGON
  121958. AX = 0093h
  121959. CX = number of vertices in polygon
  121960. ES:BX -> variable pointer record (see #03497)
  121961. Notes: the FGDRIVER functions are rearranged with each major release, but
  121962. their parameters do not change (see #03474 at AX=0000h)
  121963. This call is ignored in text modes
  121964. SeeAlso: AX=0091h,AX=0092h,AX=0094h,AX=0095h
  121965. Format of FGDRIVER POLYGON variable pointer record:
  121966. Offset Size Description (Table 03497)
  121967. 00h WORD segment of WORD array containing vertex columns
  121968. 02h WORD offset of WORD array containing vertex columns
  121969. 04h WORD segment of WORD array containing vertex rows
  121970. 06h WORD offset of WORD array containing vertex rows
  121971. SeeAlso: #03496
  121972. --------V-620094-----------------------------
  121973. INT 62 u - FGDRIVER v4.02 - "FG_POLYLINE" - DRAW AN UNFILLED POLYGON
  121974. AX = 0094h
  121975. CX = number of vertices in polygon
  121976. ES:BX -> vertex array (see #03498)
  121977. Notes: the FGDRIVER functions are rearranged with each major release, but
  121978. their parameters do not change (see #03474 at AX=0000h)
  121979. This function is equivalent to "FG_POLYGON", but uses only a single
  121980. array to define the vertices
  121981. This call is ignored in text modes
  121982. SeeAlso: AX=008Fh,AX=0092h,AX=0093h,AX=0095h
  121983. Format of FGDRIVER POLYFILL/POLYLINE vertex array element:
  121984. Offset Size Description (Table 03498)
  121985. 00h WORD column
  121986. 02h WORD row
  121987. SeeAlso: #03497
  121988. --------V-620095-----------------------------
  121989. INT 62 u - FGDRIVER v4.02 - "FG_POLYOFF" - DEFINE POLYGON DRAWING OFFSET
  121990. AX = 0095h
  121991. BX = horizontal offset (default 0)
  121992. CX = vertical offset (default 0)
  121993. Desc: define the offsets applied to all vertices of polygons drawn with
  121994. "FG_POLYFILL" or "FG_POLYLINE"
  121995. Note: the FGDRIVER functions are rearranged with each major release, but
  121996. their parameters do not change (see #03474 at AX=0000h)
  121997. SeeAlso: AX=0092h,AX=0094h
  121998. --------V-620096-----------------------------
  121999. INT 62 u - FGDRIVER v4.02 - "FG_PRINT" - DISPLAY STRING OF HARDWARE CHARACTERS
  122000. AX = 0096h
  122001. CX = length of string
  122002. ES:BX -> string to display
  122003. Notes: the FGDRIVER functions are rearranged with each major release, but
  122004. their parameters do not change (see #03474 at AX=0000h)
  122005. The string is displayed in the current color, and the graphics cursor
  122006. is updated to be just to the right of the last displayed character
  122007. This function is ignored in text modes
  122008. SeeAlso: AX=000Ch,AX=0037h,AX=0065h,AX=0097h
  122009. --------V-620097-----------------------------
  122010. INT 62 u - FGDRIVER v4.02 - "FG_PRINTC" - DISPLAY STRING OF HW CHARS (CLIPPED)
  122011. AX = 0097h
  122012. CX = length of string
  122013. ES:BX -> string to display
  122014. Notes: the FGDRIVER functions are rearranged with each major release, but
  122015. their parameters do not change (see #03474 at AX=0000h)
  122016. The string is displayed in the current color, and the graphics cursor
  122017. is updated to be just to the right of the last displayed character;
  122018. only the portion of the string that lies within the current clipping
  122019. area is displayed
  122020. This function is ignored in text modes
  122021. SeeAlso: AX=0096h
  122022. --------V-620098-----------------------------
  122023. INT 62 u - FGDRIVER v4.02 - "FG_PUTBLOCK" - RESTORE RECTANGLE OF DISPLAY
  122024. AX = 0098h
  122025. ES:BX -> buffer containing previously-saved image
  122026. CX = left edge
  122027. DX = right edge
  122028. SI = top edge
  122029. DI = bottom edge
  122030. Notes: the FGDRIVER functions are rearranged with each major release, but
  122031. their parameters do not change (see #03474 at AX=0000h)
  122032. In text modes, coordinates are character positions; in graphics modes,
  122033. they are defined in screen space, and the left and right edges are
  122034. adjusted to a byte boundary if necessary
  122035. SeeAlso: AX=003Ch,AX=0099h
  122036. --------V-620099-----------------------------
  122037. INT 62 u - FGDRIVER v4.02 - "FG_PUTIMAGE" - DISPLAY MODE-SPECIFIC BITMAP IMAGE
  122038. AX = 0099h
  122039. ES:BX -> buffer containing mode-specific bitmap
  122040. CX = width in bytes
  122041. DX = height in pixel rows
  122042. Notes: the FGDRIVER functions are rearranged with each major release, but
  122043. their parameters do not change (see #03474 at AX=0000h)
  122044. The bitmap is displayed with its lower left corner at the graphics
  122045. cursor position; color 0 is NOT treated as transparent
  122046. SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0044h,AX=0098h
  122047. --------V-62009A-----------------------------
  122048. INT 62 u - FGDRIVER v4.02 - "FG_QUIET" - STOP CONTINUOUS SYNCHRONOUS SOUND
  122049. AX = 009Ah
  122050. Notes: the FGDRIVER functions are rearranged with each major release, but
  122051. their parameters do not change (see #03474 at AX=0000h)
  122052. This call has no effect if there is no continuous sound playing
  122053. SeeAlso: AX=0059h,AX=0080h,AX=00BDh,AX=00DCh
  122054. --------V-62009B-----------------------------
  122055. INT 62 u - FGDRIVER v4.02 - "FG_RECT" - DRAW UNFILLED RECTANGLE IN SCREEN SPACE
  122056. AX = 009Bh
  122057. BX = left edge column
  122058. CX = right edge column
  122059. DX = top edge row
  122060. SI = bottom edge row
  122061. Note: the FGDRIVER functions are rearranged with each major release, but
  122062. their parameters do not change (see #03474 at AX=0000h)
  122063. SeeAlso: AX=0006h,AX=0012h,AX=0023h,AX=003Ch
  122064. --------V-62009C-----------------------------
  122065. INT 62 u - FGDRIVER v4.02 - "FG_RESET" - ERASE SCREEN AND RESTORE SCREEN ATTR
  122066. AX = 009Ch
  122067. Notes: the FGDRIVER functions are rearranged with each major release, but
  122068. their parameters do not change (see #03474 at AX=0000h)
  122069. This call is ignored in graphics modes
  122070. The screen attributes are only restored if ANSI.SYS is loaded
  122071. SeeAlso: AX=0028h,AX=00B0h
  122072. --------V-62009D-----------------------------
  122073. INT 62 u - FGDRIVER v4.02 - "FG_RESIZE" - SET GRAPHICS MODE VIDEO PAGE SIZE
  122074. AX = 009Dh
  122075. BX = new page width in pixels
  122076. CX = new page height in pixels
  122077. Notes: the FGDRIVER functions are rearranged with each major release, but
  122078. their parameters do not change (see #03474 at AX=0000h)
  122079. The visible page must be set to 0000h before making this call
  122080. The mouse, joysticks, expanded memory, and extended memory must be
  122081. reinitialized after this call
  122082. SeeAlso: AX=0084h,AX=00ACh
  122083. --------V-62009E-----------------------------
  122084. INT 62 u - FGDRIVER v4.02 - "FG_RESTORE" - COPY REGION FROM HIDDEN TO VIS PAGE
  122085. AX = 009Eh
  122086. BX = left edge column
  122087. CX = right edge column
  122088. DX = top edge row
  122089. SI = bottom edge row
  122090. Notes: the FGDRIVER functions are rearranged with each major release, but
  122091. their parameters do not change (see #03474 at AX=0000h)
  122092. The left and right edges are adjusted to byte boundaries if necessary
  122093. SeeAlso: AX=00A2h,AX=00C6h
  122094. --------V-62009F-----------------------------
  122095. INT 62 u - FGDRIVER v4.02 - "FG_RESUME" - RESTART ASYNCHRONOUS SOUND
  122096. AX = 009Fh
  122097. Note: the FGDRIVER functions are rearranged with each major release, but
  122098. their parameters do not change (see #03474 at AX=0000h)
  122099. SeeAlso: AX=00BDh,AX=00C0h
  122100. --------V-6200A0-----------------------------
  122101. INT 62 u - FGDRIVER v4.02 - "FG_REVIMAGE" - DISPLAY REVERSED IMAGE (BITMAP)
  122102. AX = 00A0h
  122103. ES:BX -> mode-specific bitmap
  122104. CX = width of bitmap in bytes
  122105. DX = height of bitmap in pixel rows
  122106. Notes: the FGDRIVER functions are rearranged with each major release, but
  122107. their parameters do not change (see #03474 at AX=0000h)
  122108. This call is ignored in text modes
  122109. The image is drawn with its lower left corner at the current graphics
  122110. cursor position
  122111. SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0044h,AX=00A1h,AX=00A9h,AX=00B9h
  122112. --------V-6200A1-----------------------------
  122113. INT 62 u - FGDRIVER v4.02 - "FG_REVMASK" - DISPLAY REVERSED IMAGE (MASKING MAP)
  122114. AX = 00A1h
  122115. ES:BX -> array containing image stored as a masking map (see #03475)
  122116. CX = number of pixel runs in masking map
  122117. DX = width of masking map in pixels
  122118. Notes: the FGDRIVER functions are rearranged with each major release, but
  122119. their parameters do not change (see #03474 at AX=0000h)
  122120. This call is ignored in text modes and in native EGA and VGA graphics
  122121. modes
  122122. The image is drawn with its lower left corner at the current graphics
  122123. cursor position
  122124. SeeAlso: AX=0010h,AX=001Fh,AX=0034h,AX=00A0h,AX=00A9h,AX=00C5h
  122125. --------V-6200A2-----------------------------
  122126. INT 62 u - FGDRIVER v4.02 - "FG_SAVE" - COPY REGION FROM VISIBLE TO HIDDEN PAGE
  122127. AX = 00A2h
  122128. BX = left edge column
  122129. CX = right edge column
  122130. DX = top edge row
  122131. SI = bottom edge row
  122132. Notes: the FGDRIVER functions are rearranged with each major release, but
  122133. their parameters do not change (see #03474 at AX=0000h)
  122134. The left and right edges are adjusted to byte boundaries if necessary
  122135. SeeAlso: AX=009Eh,AX=00C6h
  122136. --------V-6200A3-----------------------------
  122137. INT 62 u - FGDRIVER v4.02 - "FG_SCALE" - SCALE BITMAP
  122138. AX = 00A3h
  122139. ES:BX -> variable pointer record (see #03499)
  122140. CX = width of source bitmap in pixels (0 < width <= 1024)
  122141. DX = height of source bitmap in pixels (0 < height <= 1024)
  122142. SI = desired width of scaled bitmap (0 < width <= 1024)
  122143. DI = desired height of scaled bitmap (0 < height <= 1024)
  122144. Return: nothing
  122145. SeeAlso: AX=00B7h
  122146. Format of FGDRIVER SCALE variable pointer record:
  122147. Offset Size Description (Table 03499)
  122148. 00h WORD segment of source bitmap (one pixel per byte)
  122149. 02h WORD offset of source bitmap
  122150. 04h WORD segment of buffer for resulting scaled bitmap
  122151. 06h WORD offset of buffer for resulting scaled bitmap
  122152. --------V-6200A4-----------------------------
  122153. INT 62 u - FGDRIVER v4.02 - "FG_SCRLOCK" - GET STATE OF SCROLL LOCK KEY
  122154. AX = 00A4h
  122155. Return: AX = ScrollLock state (0000h off, 0001h on)
  122156. Program: FGDRIVER is the external video driver for the shareware
  122157. Fastgraph/Light by Ted Gruber Software
  122158. Note: the FGDRIVER functions are rearranged with each major release, but
  122159. their parameters do not change (see #03474 at AX=0000h)
  122160. SeeAlso: AX=000Ah,AX=0082h,AX=00A8h,AX=00B1h
  122161. --------V-6200A5-----------------------------
  122162. INT 62 u - FGDRIVER v4.02 - "FG_SCROLL" - VERTICALLY SCROLL SCREEN REGION
  122163. AX = 00A5h
  122164. BX = left edge column
  122165. CX = right edge column
  122166. DX = top edge row
  122167. SI = bottom edge row
  122168. DI = number of pixels by which to scroll (positive scrolls up,
  122169. negative scrolls down)
  122170. ES = type of scroll
  122171. 0000h circular (rows scrolled off are copied to vacated rows)
  122172. else vacated rows are filled with the current color
  122173. Notes: the FGDRIVER functions are rearranged with each major release, but
  122174. their parameters do not change (see #03474 at AX=0000h)
  122175. In graphics modes, the left and right edges are adjusted to byte
  122176. boundaries if necessary
  122177. Circular scrolling uses part of the hidden page as a workspace
  122178. SeeAlso: AX=0088h,AX=00B2h
  122179. --------V-6200A6-----------------------------
  122180. INT 62 u - FGDRIVER v4.02 - "FG_SETATTR" - SET TEXT-MODE CHARACTER ATTRIBUTE
  122181. AX = 00A6h
  122182. BX = foreground
  122183. CX = background
  122184. DX = blink (0000h nonblinking, 0001h blink)
  122185. Notes: the FGDRIVER functions are rearranged with each major release, but
  122186. their parameters do not change (see #03474 at AX=0000h)
  122187. This call is ignored in graphics modes
  122188. SeeAlso: AX=000Bh,AX=003Ah,AX=0048h
  122189. --------V-6200A7-----------------------------
  122190. INT 62 u - FGDRIVER v4.02 - "FG_SETBANKS" - SET SVGA READ AND WRITE BANKS
  122191. AX = 00A7h
  122192. BX = memory bank from which to read (FFFFh leave unchanged)
  122193. CX = memory bank to which to write (FFFFh leave unchanged)
  122194. Note: the FGDRIVER functions are rearranged with each major release, but
  122195. their parameters do not change (see #03474 at AX=0000h)
  122196. SeeAlso: AX=003Bh
  122197. --------V-6200A8-----------------------------
  122198. INT 62 u - FGDRIVER v4.02 - "FG_SETCAPS" - SET STATE OF CAPSLOCK KEY
  122199. AX = 00A8h
  122200. BX = new state (0000h off, 0001h on)
  122201. Note: the FGDRIVER functions are rearranged with each major release, but
  122202. their parameters do not change (see #03474 at AX=0000h)
  122203. SeeAlso: AX=000Ah,AX=0082h,AX=00A4h,AX=00B1h
  122204. --------V-6200A9-----------------------------
  122205. INT 62 u - FGDRIVER v4.02 - "FG_SETCLIP" - SET CLIPPING REGION
  122206. AX = 00A9h
  122207. BX = left edge of clipping region
  122208. CX = right edge of clipping region
  122209. DX = top edge of clipping region
  122210. SI = bottom edge of clipping region
  122211. Note: the FGDRIVER functions are rearranged with each major release, but
  122212. their parameters do not change (see #03474 at AX=0000h)
  122213. SeeAlso: AX=0010h,AX=001Fh,AX=0034h,AX=003Eh,AX=00A1h,AX=00C5h
  122214. --------V-6200AA-----------------------------
  122215. INT 62 u - FGDRIVER v4.02 - "FG_SETCOLOR" - SET CURRENT COLOR
  122216. AX = 00AAh
  122217. BX = new color index (or text attribute in text modes)
  122218. Note: the FGDRIVER functions are rearranged with each major release, but
  122219. their parameters do not change (see #03474 at AX=0000h)
  122220. SeeAlso: AX=0018h,AX=0040h,AX=0045h
  122221. --------V-6200AB-----------------------------
  122222. INT 62 u - FGDRIVER v4.02 - "FG_SETDACS" - SET VIDEO DAC CONTENTS
  122223. AX = 00ABh
  122224. CX = number of DAC registers to set (0001h to 0100h)
  122225. DX = starting DAC register number (0000h to 00FFh)
  122226. ES:BX -> buffer containing DAC red/green/blue triples
  122227. Notes: the FGDRIVER functions are rearranged with each major release, but
  122228. their parameters do not change (see #03474 at AX=0000h)
  122229. The register number wraps back to zero after reaching FFh
  122230. This call has no effect in text modes or graphics modes below 11h
  122231. SeeAlso: AX=0041h,AX=004Eh,AX=0086h,INT 10/AX=1012h
  122232. --------V-6200AC-----------------------------
  122233. INT 62 u - FGDRIVER v4.02 - "FG_SETENTRY" - SET TYPE AND ADDRESS OF VIDEO PAGE
  122234. AX = 00ACh
  122235. BX = page number (00h-3Fh)
  122236. CX = page address
  122237. DX = page type (see #03484 at AX=0042h)
  122238. Note: the FGDRIVER functions are rearranged with each major release, but
  122239. their parameters do not change (see #03474 at AX=0000h)
  122240. SeeAlso: AX=0038h,AX=0042h,AX=00B0h
  122241. --------V-6200AD-----------------------------
  122242. INT 62 u - FGDRIVER v4.02 - "FG_SETFUNC" - SET LOGICAL OPERATION FOR VIDEO OPS
  122243. AX = 00ADh
  122244. BX = operation
  122245. 0000h replacement
  122246. 0001h AND
  122247. 0002h OR
  122248. 0003h XOR
  122249. Notes: the FGDRIVER functions are rearranged with each major release, but
  122250. their parameters do not change (see #03474 at AX=0000h)
  122251. This function is only available in native EGA/VGA graphics modes
  122252. (0Dh to 12h)
  122253. SeeAlso: AX=001Eh,AX=008Fh
  122254. --------V-6200AE-----------------------------
  122255. INT 62 u - FGDRIVER v4.02 - "FG_SETHPAGE" - SET HIDDEN VIDEO PAGE
  122256. AX = 00AEh
  122257. BX = new hidden page (0000h to 003Fh)
  122258. Notes: the FGDRIVER functions are rearranged with each major release, but
  122259. their parameters do not change (see #03474 at AX=0000h)
  122260. The specified page must be a physical page or a virtual page
  122261. SeeAlso: AX=0043h,AX=00B2h,AX=00B6h
  122262. --------V-6200AF-----------------------------
  122263. INT 62 u - FGDRIVER v4.02 - "FG_SETLINES" - SET TEXT ROWS ON SCREEN
  122264. AX = 00AFh
  122265. BX = new screen size (25, 43, 50)
  122266. Note: the FGDRIVER functions are rearranged with each major release, but
  122267. their parameters do not change (see #03474 at AX=0000h)
  122268. SeeAlso: AX=0047h
  122269. --------V-6200B0-----------------------------
  122270. INT 62 u - FGDRIVER v4.02 - "FG_SETMODE" - SELECT VIDEO MODE AND INITIALIZE
  122271. AX = 00B0h
  122272. BX = new video mode or FFFFh for current mode (see #03500)
  122273. ES:DX -> WORD shareware splash screen flag
  122274. Notes: the FGDRIVER functions are rearranged with each major release, but
  122275. their parameters do not change (see #03474 at AX=0000h)
  122276. This call resets the active video page to page 0000h, the clipping
  122277. region to the entire screen, text rows to 25, etc.
  122278. in the shareware version, FGDRIVER sets the word pointed at by ES:DX
  122279. to 9090h after it shows the shareware announcement to the user
  122280. SeeAlso: AX=004Bh,INT 10/AH=00h
  122281. (Table 03500)
  122282. Values for FGDRIVER video mode:
  122283. 00h-07h standard BIOS modes
  122284. 09h PCjr/Tandy1000 320x200x16
  122285. 0Bh Hercules graphics 720x348
  122286. 0Ch Hercules graphics 320x200
  122287. 0Dh-13h standard BIOS modes
  122288. 14h VGA graphics 320x200x256
  122289. 15h VGA graphics 320x400x256
  122290. 16h VGA graphics 320x240x256
  122291. 17h VGA graphics 320x480x256
  122292. 18h SVGA graphics 640x400x256
  122293. 19h SVGA graphics 640x480x256
  122294. 1Ah SVGA graphics 800x600x256
  122295. 1Bh SVGA graphics 1024x768x256
  122296. 1Ch SVGA graphics 800x600x16
  122297. 1Dh SVGA graphics 1024x768x16
  122298. --------V-6200B1-----------------------------
  122299. INT 62 u - FGDRIVER v4.02 - "FG_SETNUM" - SET STATE OF NUMLOCK KEY
  122300. AX = 00B1h
  122301. BX = new state (0000h off, 0001h on)
  122302. Note: the FGDRIVER functions are rearranged with each major release, but
  122303. their parameters do not change (see #03474 at AX=0000h)
  122304. SeeAlso: AX=000Ah,AX=0082h,AX=00A4h,AX=00A8h
  122305. --------V-6200B2-----------------------------
  122306. INT 62 u - FGDRIVER v4.02 - "FG_SETPAGE" - SET ACTIVE VIDEO PAGE
  122307. AX = 00B2h
  122308. BX = new video page (0000h to 003Fh)
  122309. Notes: the FGDRIVER functions are rearranged with each major release, but
  122310. their parameters do not change (see #03474 at AX=0000h)
  122311. The specified page must be a physical or virtual page
  122312. SeeAlso: AX=0039h,AX=0042h,AX=0043h,AX=0050h,AX=0088h
  122313. --------V-6200B3-----------------------------
  122314. INT 62 u - FGDRIVER v4.02 - "FG_SETRGB" - SET VIDEO DAC REGISTER CONTENTS
  122315. AX = 00B3h
  122316. BX = palette or DAC register number
  122317. CX = red color component
  122318. DX = green component
  122319. SI = blue component
  122320. Notes: the FGDRIVER functions are rearranged with each major release, but
  122321. their parameters do not change (see #03474 at AX=0000h)
  122322. The register number may be negative for Tandy, PCjr, and 200-line
  122323. EGA graphics modes to specify an intense color
  122324. This call has no effect in text, CGA graphics, and Hercules graphics
  122325. modes
  122326. SeeAlso: AX=004Eh
  122327. --------V-6200B4-----------------------------
  122328. INT 62 u - FGDRIVER v4.02 - UNUSED
  122329. AX = 00B4h
  122330. Return: AX = 0000h
  122331. Note: the FGDRIVER functions are rearranged with each major release, but
  122332. their parameters do not change (see #03474 at AX=0000h)
  122333. --------V-6200B5-----------------------------
  122334. INT 62 u - FGDRIVER v4.02 - "FG_SETVIEW" - DEFINE VIEWPORT
  122335. AX = 00B5h
  122336. ES:BX -> variable record (see #03501)
  122337. CX = viewport's top edge in screen space
  122338. DX = viewport's bottom edge in screen space
  122339. Return: nothing
  122340. Note: the FGDRIVER functions are rearranged with each major release, but
  122341. their parameters do not change (see #03474)
  122342. SeeAlso: AX=004Fh
  122343. Format of FGDRIVER SETVIEW variable record:
  122344. Offset Size Description (Table 03501)
  122345. 00h WORD viewport's left edge in viewport units
  122346. 02h WORD viewport's right edge in viewport units
  122347. 04h WORD viewport's top edge in viewport units
  122348. 06h WORD viewport's bottom edge in viewport units
  122349. 08h WORD viewport's left edge in screen space
  122350. 0Ah WORD viewport's right edge in screen space
  122351. --------V-6200B6-----------------------------
  122352. INT 62 u - FGDRIVER v4.02 - "FG_SETVPAGE" - SET VISIBLE VIDEO PAGE
  122353. AX = 00B6h
  122354. BX = new video page (0000h to 003Fh)
  122355. Notes: the FGDRIVER functions are rearranged with each major release, but
  122356. their parameters do not change (see #03474 at AX=0000h)
  122357. The specified page must be a physical or virtual page
  122358. SeeAlso: AX=0043h,AX=00AEh,AX=00B2h
  122359. --------V-6200B7-----------------------------
  122360. INT 62 u - FGDRIVER v4.02 - "FG_SHEAR" - SHEAR UNPACKED BITMAP
  122361. AX = 00B7h
  122362. ES:BX -> variable pointer record (see #03502)
  122363. CX = bitmap width (0 < width <= 1024)
  122364. DX = bitmap height (0 < height <= 1024)
  122365. SI = size of resulting image (width for horiz. shear, height for vert.)
  122366. DI = shear type
  122367. 0000h horizontal shear to left
  122368. 0001h horizontal shear to right
  122369. 0002h vertical shear to left (left edge stretched up)
  122370. 0003h vertical shear to right (right edge stretched up)
  122371. Return: nothing
  122372. Note: the FGDRIVER functions are rearranged with each major release, but
  122373. their parameters do not change (see #03474)
  122374. SeeAlso: AX=00A3h
  122375. Format of FGDRIVER SHEAR variable pointer record:
  122376. Offset Size Description (Table 03502)
  122377. 00h WORD segment of source bitmap
  122378. 02h WORD offset of source bitmap
  122379. 04h WORD segment of buffer for resulting bitmap
  122380. 06h WORD offset of buffer for resulting bitmap
  122381. --------V-6200B8-----------------------------
  122382. INT 62 u - FGDRIVER v4.02 - "FG_SHOWFLIC" - DISPLAY IMAGE FROM FLI/FLC FILE
  122383. AX = 00B8h
  122384. ES:BX -> ASCIZ filename for FLI/FLC file
  122385. CX = number of times to display image file (0000h = continuously)
  122386. DX = control flags (see #03479 at AX=0031h)
  122387. Return: AX = status
  122388. 0000h successful
  122389. 0001h file not found
  122390. 0002h not a valid FLI/FLC file
  122391. Notes: the FGDRIVER functions are rearranged with each major release, but
  122392. their parameters do not change (see #03474)
  122393. the FLI/FLC display may be stopped by the user by pressing Esc
  122394. SeeAlso: AX=0030h,AX=0031h,AX=00B9h
  122395. --------V-6200B9-----------------------------
  122396. INT 62 u - FGDRIVER v4.02 - "FG_SHOWPCX" - DISPLAY IMAGE FROM PCX FILE
  122397. AX = 00B9h
  122398. ES:BX -> ASCIZ filename of PCX image
  122399. CX = flags (see #03503)
  122400. Return: AX = status
  122401. 0000h success
  122402. 0001h file not found
  122403. 0002h not a PCX file
  122404. Notes: the FGDRIVER functions are rearranged with each major release, but
  122405. their parameters do not change (see #03474 at AX=0000h)
  122406. This function is ignored in text modes and Hercules low-res graphics
  122407. SeeAlso: AX=005Bh,AX=0060h"1.10",AX=006Ch,AX=006Dh,AX=006Eh,AX=00B8h,AX=00BAh
  122408. SeeAlso: AX=00BBh
  122409. Bitfields for FGDRIVER flags:
  122410. Bit(s) Description (Table 03503)
  122411. 0 use current palette rather than PCX file's palette
  122412. 1 display image at cursor position instead of position in PCX header
  122413. 2-15 reserved
  122414. --------V-6200BA-----------------------------
  122415. INT 62 u - FGDRIVER v4.02 - "FG_SHOWPPR" - DISPLAY IMAGE FROM PPR FILE
  122416. AX = 00BAh
  122417. ES:BX -> ASCIZ filename of packed pixel run image
  122418. CX = width in pixels (nonzero)
  122419. Return: AX = status
  122420. 0000h successful
  122421. 0001h file not found
  122422. Notes: the FGDRIVER functions are rearranged with each major release, but
  122423. their parameters do not change (see #03474 at AX=0000h)
  122424. The image is displayed with its lower left corner at the current
  122425. graphics cursor position
  122426. This function is ignored in text modes and 256-color graphics modes
  122427. SeeAlso: AX=005Bh,AX=006Ch,AX=006Dh,AX=006Eh,AX=00B9h,AX=00BBh
  122428. --------V-6200BB-----------------------------
  122429. INT 62 u - FGDRIVER v4.02 - "FG_SHOWSPR" - DISPLAY IMAGE FROM SPR FILE
  122430. AX = 00BBh
  122431. ES:BX -> ASCIZ filename of standard pixel run image
  122432. CX = width in pixels (nonzero)
  122433. Return: AX = status
  122434. 0000h successful
  122435. 0001h file not found
  122436. Notes: the FGDRIVER functions are rearranged with each major release, but
  122437. their parameters do not change (see #03474 at AX=0000h)
  122438. The image is displayed with its lower left corner at the current
  122439. graphics cursor position
  122440. This function is ignored in text modes
  122441. SeeAlso: AX=005Bh,AX=006Ch,AX=006Dh,AX=006Eh,AX=00B9h,AX=00BAh
  122442. --------V-6200BC-----------------------------
  122443. INT 62 u - FGDRIVER v4.02 - "FG_SOUND" - MAKE SOUND FOR SPECIFIED DURATION
  122444. AX = 00BCh
  122445. BX = frequency in Hertz (18-32767)
  122446. CX = duration in clock ticks (0000h or negative for continuous sound)
  122447. Notes: the FGDRIVER functions are rearranged with each major release, but
  122448. their parameters do not change (see #03474 at AX=0000h)
  122449. This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
  122450. AX=00AAh) is already in progress
  122451. SeeAlso: AX=0059h,AX=0080h,AX=00BDh,AX=00C0h,AX=00DBh
  122452. --------V-6200BD-----------------------------
  122453. INT 62 u - FGDRIVER v4.02 - "FG_SOUNDS" - PLAY SOUNDS IN BACKGROUND
  122454. AX = 00BDh
  122455. CX = number of times to cycle through sound list
  122456. ES:BX -> sounds array (see #03504)
  122457. Notes: the FGDRIVER functions are rearranged with each major release, but
  122458. their parameters do not change (see #03474 at AX=0000h)
  122459. This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
  122460. AX=00AAh) is already in progress
  122461. SeeAlso: AX=0059h,AX=0081h,AX=00BCh,AX=00C0h,AX=00DCh
  122462. Format of FGDRIVER sounds array element:
  122463. Offset Size Description (Table 03504)
  122464. 00h WORD frequency of sound in Hertz (0000h ends array)
  122465. 02h WORD duration of sound in clock ticks
  122466. --------V-6200BE-----------------------------
  122467. INT 62 u - FGDRIVER v4.02 - "FG_SPLIT" - ENABLE/DISABLE SPLIT SCREEN ENVIRONMNT
  122468. AX = 00BEh
  122469. BX = beginning row for bottom half of split-screen
  122470. Note: the FGDRIVER functions are rearranged with each major release, but
  122471. their parameters do not change (see #03474)
  122472. --------V-6200BF-----------------------------
  122473. INT 62 u - FGDRIVER v4.02 - "FG_STALL" - PAUSE FOR SPECIFIED DURATION
  122474. AX = 00BFh
  122475. BX = duration in processor-dependent delay units (see AX=0070h)
  122476. Return: after delay elapses
  122477. Note: the FGDRIVER functions are rearranged with each major release, but
  122478. their parameters do not change (see #03474 at AX=0000h)
  122479. SeeAlso: AX=0070h,INT 2F/AX=1224h
  122480. --------V-6200C0-----------------------------
  122481. INT 62 u - FGDRIVER v4.02 - "FG_SUSPEND" - TEMPORARILY STOP ASYNCHRONOUS SOUND
  122482. AX = 00C0h
  122483. Notes: the FGDRIVER functions are rearranged with each major release, but
  122484. their parameters do not change (see #03474 at AX=0000h)
  122485. This call has no effect if there is no asynchronous sound in progress
  122486. The program must not exit while sound is suspended
  122487. SeeAlso: AX=0059h,AX=0080h,AX=00BDh,AX=00C0h,AX=00DBh
  122488. --------V-6200C1-----------------------------
  122489. INT 62 u - FGDRIVER v4.02 - "FG_SVGAINIT" - INITIALIZE FASTGRAPH SVGA KERNEL
  122490. AX = 00C1h
  122491. BX = method (see #03505)
  122492. Return: AX = status
  122493. 0000h no VESA BIOS or supported SVGA chipset
  122494. 0001h using VESA BIOS
  122495. 0002h-0016h specific chipset being used (same as "method" below)
  122496. Notes: the FGDRIVER functions are rearranged with each major release, but
  122497. their parameters do not change (see #03474 at AX=0000h)
  122498. This function must be called before attempting to set SVGA graphics
  122499. modes (18h to 1Dh) or using "FG_BESTMODE", "FG_TESTMODE", or
  122500. "FG_MEMORY"
  122501. SeeAlso: AX=0025h,AX=00C2h,AX=00C3h
  122502. (Table 03505)
  122503. Values for FGDRIVER SVGA method:
  122504. 0000h autodetect, give chipset-specific code priority over VESA
  122505. 0001h autodetect, give VESA priority over chipset-specific code
  122506. 0002h Ahead type "A"
  122507. 0003h Ahead type "B"
  122508. 0004h ATI 18800
  122509. 0005h ATI 18800-1
  122510. 0006h ATI 28800
  122511. 0007h Chips & Technologies 82c451/455/456
  122512. 0008h C&T 82c452
  122513. 0009h C&T 82c453
  122514. 000Ah Genoa 6000 series
  122515. 000Bh Oak OTI-067
  122516. 000Ch Paradise PVGA1a
  122517. 000Dh Paradise WD90C00/WD90C10
  122518. 000Eh Paradise WD90C11/WD90C30/WD90C31
  122519. 000Fh Trident 8800
  122520. 0010h Trident 8900
  122521. 0011h Tseng ET3000
  122522. 0012h Tseng ET4000
  122523. 0013h Video7
  122524. 0014h Cirrus Logic 5400 series
  122525. 0015h S3
  122526. 0016h Trident 8900B/8900C/9000
  122527. --------V-6200C2-----------------------------
  122528. INT 62 u - FGDRIVER v4.02 - "FG_SVGASTAT" - GET SVGA CHIPSET INFORMATION
  122529. AX = 00C2h
  122530. Return: AX = chipset information (see #03506)
  122531. Note: the FGDRIVER functions are rearranged with each major release, but
  122532. their parameters do not change (see #03474 at AX=0000h)
  122533. SeeAlso: AX=0025h,AX=00C1h,AX=00C3h
  122534. Bitfields for FGDRIVER chipset information:
  122535. Bit(s) Description (Table 03506)
  122536. 0 SVGA kernel initialized
  122537. 1 VESA support enabled
  122538. 2 extended video pages available in modes 13-23
  122539. 3 SVGA chipset has separate read and write banks
  122540. 4-15 reserved (0)
  122541. --------V-6200C3-----------------------------
  122542. INT 62 u - FGDRIVER v4.02 - "FG_SVGAVER" - GET FASTGRAPH SVGA KERNEL VERSION
  122543. AX = 00C3h
  122544. ES:BX -> variable pointer record (see #03507)
  122545. Note: the FGDRIVER functions are rearranged with each major release, but
  122546. their parameters do not change (see #03474 at AX=0000h)
  122547. SeeAlso: AX=00C1h,AX=00C2h
  122548. Format of FGDRIVER variable pointer record:
  122549. Offset Size Description (Table 03507)
  122550. 00h WORD segment of WORD buffer for major version
  122551. 02h WORD offset of WORD buffer for major version
  122552. 04h WORD segment of WORD buffer for minor version (hundredths)
  122553. 06h WORD offset of WORD buffer for minor version
  122554. --------V-6200C4-----------------------------
  122555. INT 62 u - FGDRIVER v4.02 - "FG_TCDEFINE" - DEFINE TRANSPARENCY OF COLOR INDEX
  122556. AX = 00C4h
  122557. BX = color index
  122558. CX = transparency (00h opaque, other transparent)
  122559. Notes: the FGDRIVER functions are rearranged with each major release, but
  122560. their parameters do not change (see #03474 at AX=0000h)
  122561. This function is ignored in text modes
  122562. SeeAlso: AX=00C5h,AX=00C6h
  122563. --------V-6200C5-----------------------------
  122564. INT 62 u - FGDRIVER v4.02 - "FG_TCMASK" - SET TRANSPARENT COLORS
  122565. AX = 00C5h
  122566. BX = colors to consider transparent (bit 0 = color 0, etc)
  122567. Notes: the FGDRIVER functions are rearranged with each major release, but
  122568. their parameters do not change (see #03474 at AX=0000h)
  122569. This call is ignored in text modes
  122570. The specified colors are considered transparent by "FG_TCXFER"
  122571. SeeAlso: AX=00C4h,AX=00C6h
  122572. --------V-6200C6-----------------------------
  122573. INT 62 u - FGDRIVER v4.02 - "FG_TCXFER" - COPY REGION EXCLUDING TRANSPARENT
  122574. AX = 00C6h
  122575. CX = source video page
  122576. DX = destination video page
  122577. ES:BX -> copy record (see #03508)
  122578. Notes: the FGDRIVER functions are rearranged with each major release, but
  122579. their parameters do not change (see #03474 at AX=0000h)
  122580. Pixels which are in any of the colors defined as transparent with
  122581. "FG_TCMASK" (see AX=00C5h) are left unchanged in the destination
  122582. region
  122583. The source and destination regions must not overlap if they are located
  122584. on the same page
  122585. This call is ignored in text modes
  122586. SeeAlso: AX=00C4h,AX=00C5h,AX=00CAh
  122587. --------V-6200C7-----------------------------
  122588. INT 62 u - FGDRIVER v4.02 - "FG_TESTMODE" - CHECK IF VIDEO MODE AVAILABLE
  122589. AX = 00C7h
  122590. BX = desired video mode (00h-17h, also 18h-1Dh after "FG_SVGAINIT")
  122591. CX = required number of video pages (ignore memory size if <= 0)
  122592. Return: AX = status
  122593. 0000h mode not available with requested number of pages
  122594. 0001h mode is available
  122595. Note: the FGDRIVER functions are rearranged with each major release, but
  122596. their parameters do not change (see #03474 at AX=0000h)
  122597. SeeAlso: AX=0005h,AX=00B0h
  122598. --------V-6200C8-----------------------------
  122599. INT 62 u - FGDRIVER v4.02 - "FG_TEXT" - DISPLAY STRING OF CHARACTERS
  122600. AX = 00C8h
  122601. CX = length of string
  122602. ES:BX -> string
  122603. Notes: the FGDRIVER functions are rearranged with each major release, but
  122604. their parameters do not change (see #03474 at AX=0000h)
  122605. The string is displayed starting at the text cursor position using the
  122606. current text attribute (text modes) or color index (graphics modes)
  122607. The text cursor position is updated after this call
  122608. SeeAlso: AX=000Ch,AX=0096h,AX=00C9h
  122609. --------V-6200C9-----------------------------
  122610. INT 62 u - FGDRIVER v4.02 - "FG_TEXTC" - DISPLAY STRING OF CHARACTERS (CLIPPED)
  122611. AX = 00C9h
  122612. CX = length of string
  122613. ES:BX -> string
  122614. Notes: the FGDRIVER functions are rearranged with each major release, but
  122615. their parameters do not change (see #03474)
  122616. The string is displayed starting at the text cursor position using the
  122617. current text attribute (text modes) or color index (graphics modes),
  122618. showing only the portion within the current clipping window
  122619. The text cursor position is updated after this call
  122620. SeeAlso: AX=00C8h
  122621. --------V-6200CA-----------------------------
  122622. INT 62 u - FGDRIVER v4.02 - "FG_TRANSFER" - COPY REGION
  122623. AX = 00CAh
  122624. CX = source video page
  122625. DX = destination video page
  122626. ES:BX -> copy record (see #03508)
  122627. Notes: the FGDRIVER functions are rearranged with each major release, but
  122628. their parameters do not change (see #03474 at AX=0000h)
  122629. The source and destination regions must not overlap if they are located
  122630. on the same page
  122631. SeeAlso: AX=009Eh,AX=00A2h,AX=00A5h,AX=00C6h
  122632. Format of FGDRIVER copy record:
  122633. Offset Size Description (Table 03508)
  122634. 00h WORD left edge column of source region
  122635. 02h WORD right edge column of source region
  122636. 04h WORD top edge row of source region
  122637. 06h WORD bottom edge row of source region
  122638. 08h WORD left edge of destination
  122639. 0Ah WORD bottom edge of destination
  122640. --------V-6200CB-----------------------------
  122641. INT 62 u - FGDRIVER v4.02 - "FG_UNPACK" - EXPAND MODE-SPECIFIC BITMAP
  122642. AX = 00CBh
  122643. ES:BX -> variable pointer record (see #03509)
  122644. CX = size of source bitmap in bytes
  122645. Return: result buffer filled
  122646. Note: the FGDRIVER functions are rearranged with each major release, but
  122647. their parameters do not change (see #03474)
  122648. SeeAlso: AX=0083h
  122649. Format of FGDRIVER UNPACK variable pointer record:
  122650. Offset Size Description (Table 03509)
  122651. 00h WORD segment of source bitmap
  122652. 02h WORD offset of source bitmap
  122653. 04h WORD segment of buffer for resulting bitmap
  122654. 06h WORD offset of buffer for resulting bitmap
  122655. --------V-6200CC-----------------------------
  122656. INT 62 u - FGDRIVER v4.02 - "FG_VBADDR" - GET ADDRESS OF VIRTUAL BUFFER
  122657. AX = 00CCh
  122658. BX = virtual buffer handle (0000h-001Fh)
  122659. Return: DX:AX -> virtual buffer
  122660. Note: the FGDRIVER functions are rearranged with each major release, but
  122661. their parameters do not change (see #03474)
  122662. SeeAlso: AX=00CDh,AX=00CEh,AX=00CFh,AX=00D3h
  122663. --------V-6200CD-----------------------------
  122664. INT 62 u - FGDRIVER v4.02 - "FG_VBALLOC" - CREATE VIRTUAL BUFFER
  122665. AX = 00CDh
  122666. BX = width of virtual buffer in pixels
  122667. CX = height in pixels
  122668. Return: AX = handle for virtual buffer, or
  122669. FFFEh out of memory
  122670. FFFFh virtual buffer table full
  122671. Note: the FGDRIVER functions are rearranged with each major release, but
  122672. their parameters do not change (see #03474)
  122673. SeeAlso: AX=00CCh,AX=00CEh,AX=00D0h,AX=00D1h,AX=00D2h,AX=00D4h
  122674. --------V-6200CE-----------------------------
  122675. INT 62 u - FGDRIVER v4.02 - "FG_VBCLOSE" - CLOSE ACTIVE VIRTUAL BUFFER
  122676. AX = 00CEh
  122677. Desc: close the active virtual buffer and direct further graphics to the
  122678. active video page
  122679. Note: the FGDRIVER functions are rearranged with each major release, but
  122680. their parameters do not change (see #03474)
  122681. SeeAlso: AX=00CCh,AX=00D1h,AX=00D4h,AX=00D5h,AX=00D9h
  122682. --------V-6200CF-----------------------------
  122683. INT 62 u - FGDRIVER v4.02 - "FG_VBCOPY" - COPY RECT BETWEEN VIRTUAL BUFFERS
  122684. AX = 00CFh
  122685. ES:BX -> variable record (see #03510)
  122686. CX = handle for source virtual buffer
  122687. DX = handle for destination virtual buffer
  122688. Notes: the FGDRIVER functions are rearranged with each major release, but
  122689. their parameters do not change (see #03474)
  122690. if the destination buffer is the same as the source buffer, the regions
  122691. must not overlap
  122692. SeeAlso: AX=00D0h,AX=00D1h,AX=00D4h,AX=00D6h,AX=00D7h
  122693. Format of FGDRIVER VBCOPY variable record:
  122694. Offset Size Description (Table 03510)
  122695. 00h WORD source region's left edge
  122696. 02h WORD source region's right edge
  122697. 04h WORD source region's top edge
  122698. 06h WORD source region's bottom edge
  122699. 08h WORD X coordinate of destination's upper left corner
  122700. 0Ah WORD Y coordinate of destination's upper left corner
  122701. --------V-6200D0-----------------------------
  122702. INT 62 u - FGDRIVER v4.02 - "FG_VBCUT" - COPY RECT FROM VIDEO TO VIRTUAL BUFFER
  122703. AX = 00D0h
  122704. BX = source region's left edge
  122705. CX = source region's right edge
  122706. DX = source region's top edge
  122707. SI = source region's bottom edge
  122708. DI = X coordinate of destination's upper left corner
  122709. ES = Y coordinate of destination's upper left corner
  122710. Desc: copy a rectangle from the active video page to the active virtual
  122711. buffer
  122712. Note: the FGDRIVER functions are rearranged with each major release, but
  122713. their parameters do not change (see #03474)
  122714. SeeAlso: AX=00CDh,AX=00CFh,AX=00D4h,AX=00D6h
  122715. --------V-6200D1-----------------------------
  122716. INT 62 u - FGDRIVER v4.02 - "FG_VBDEFINE" - CREATE VIRTUAL BUFFER
  122717. AX = 00D1h
  122718. ES:BX -> memory block for virtual buffer
  122719. CX = buffer width in pixels
  122720. DX = buffer height in pixels
  122721. Return: AX = virtual buffer handle
  122722. FFFFh on error
  122723. Notes: the FGDRIVER functions are rearranged with each major release, but
  122724. their parameters do not change (see #03474)
  122725. the application-provided buffer must be large enough to hold CX*DX
  122726. bytes
  122727. SeeAlso: AX=00CCh,AX=00CDh,AX=00CEh,AX=00D2h,AX=00D4h,AX=00D5h
  122728. --------V-6200D2-----------------------------
  122729. INT 62 u - FGDRIVER v4.02 - "FG_VBFREE" - RELEASE VIRTUAL BUFFER
  122730. AX = 00D2h
  122731. BX = virtual buffer handle
  122732. Notes: the FGDRIVER functions are rearranged with each major release, but
  122733. their parameters do not change (see #03474)
  122734. this function should be used only for buffers created with FG_VBALLOC
  122735. SeeAlso: AX=00CDh,AX=00D4h,AX=00D5h
  122736. --------V-6200D3-----------------------------
  122737. INT 62 u - FGDRIVER v4.02 - "FG_VBHANDLE" - GET ACTIVE VIRTUAL BUFFER'S HANDLE
  122738. AX = 00D3h
  122739. Return: AX = handle for active virtual buffer
  122740. Note: the FGDRIVER functions are rearranged with each major release, but
  122741. their parameters do not change (see #03474)
  122742. SeeAlso: AX=00CCh,AX=00D4h
  122743. --------V-6200D4-----------------------------
  122744. INT 62 u - FGDRIVER v4.02 - "FG_VBINIT" - INITIALIZE VIRTUAL BUFFER ENVIRONMENT
  122745. AX = 00D4h
  122746. Return: nothing
  122747. Notes: the FGDRIVER functions are rearranged with each major release, but
  122748. their parameters do not change (see #03474)
  122749. this function must be called before any other virtual buffer functions
  122750. are used
  122751. SeeAlso: AX=00CDh,AX=00D5h
  122752. --------V-6200D5-----------------------------
  122753. INT 62 u - FGDRIVER v4.02 - "FG_VBOPEN" - MAKE VIRTUAL BUFFER ACTIVE
  122754. AX = 00D5h
  122755. BX = virtual buffer handle
  122756. Return: AX = status
  122757. 0000h successful
  122758. FFFEh no buffer defined for specified handle
  122759. FFFFh invalid buffer handle
  122760. Note: the FGDRIVER functions are rearranged with each major release, but
  122761. their parameters do not change (see #03474)
  122762. SeeAlso: AX=00CDh,AX=00CEh,AX=00D1h,AX=00D4h,AX=00D9h
  122763. --------V-6200D6-----------------------------
  122764. INT 62 u - FGDRIVER v4.02 - "FG_VBPASTE" - COPY RECT FROM VIRTUAL BUF TO VIDEO
  122765. AX = 00D6h
  122766. BX = source region's left edge
  122767. CX = source region's right edge
  122768. DX = source region's top edge
  122769. SI = source region's bottom edge
  122770. DI = X coordinate of destination's upper left corner
  122771. ES = Y coordinate of destination's upper left corner
  122772. Desc: copy a rectangle from the active virtual buffer to the active video
  122773. page
  122774. Note: the FGDRIVER functions are rearranged with each major release, but
  122775. their parameters do not change (see #03474)
  122776. SeeAlso: AX=00CFh,AX=00D0h,AX=00D4h,AX=00D7h
  122777. --------V-6200D7-----------------------------
  122778. INT 62 u - FGDRIVER v4.02 - "FG_VBTCCOPY" - COPY RECTANGLE BETWEEN VIRTUAL BUFS
  122779. AX = 00D7h
  122780. ES:BX -> variable record (see #03511)
  122781. CX = source virtual buffer's handle
  122782. DX = destination virtual buffer's handle
  122783. Desc: copy rectangle from one virtual buffer to another with transparent
  122784. colors
  122785. Notes: the FGDRIVER functions are rearranged with each major release, but
  122786. their parameters do not change (see #03474)
  122787. if the destination buffer is the same as the source buffer, the regions
  122788. must not overlap
  122789. SeeAlso: AX=00CFh,AX=00D0h,AX=00D6h,AX=00D8h
  122790. Format of FGDRIVER VBTCCOPY variable record:
  122791. Offset Size Description (Table 03511)
  122792. 00h WORD source region's left edge
  122793. 02h WORD source region's right edge
  122794. 04h WORD source region's top edge
  122795. 06h WORD source region's bottom edge
  122796. 08h WORD X coordinate of destination region's upper left corner
  122797. 0Ah WORD Y coordinate of destination region's upper left corner
  122798. --------V-6200D8-----------------------------
  122799. INT 62 u - FGDRIVER v4.02 - "FG_VBTCXFER" - COPY RECTANGLE TO ACTIVE VIDEO PAGE
  122800. AX = 00D8h
  122801. BX = source region's left edge
  122802. CX = source region's right edge
  122803. DX = source region's top edge
  122804. SI = source region's bottom edge
  122805. DI = X coordinate of destination's upper left corner
  122806. ES = Y coordinate of destination's upper left corner
  122807. Desc: copy a rectangle from the active virtual buffer to the active video
  122808. page, with transparent colors
  122809. Note: the FGDRIVER functions are rearranged with each major release, but
  122810. their parameters do not change (see #03474)
  122811. SeeAlso: AX=00D6h,AX=00D7h
  122812. --------V-6200D9-----------------------------
  122813. INT 62 u - FGDRIVER v4.02 - "FG_VBUNDEF" - RELEASE HANDLE FOR VIRTUAL BUFFER
  122814. AX = 00D9h
  122815. BX = virtual buffer handle
  122816. Notes: the FGDRIVER functions are rearranged with each major release, but
  122817. their parameters do not change (see #03474)
  122818. the specified handle must not reference the currently-active virtual
  122819. buffer
  122820. SeeAlso: AX=00D1h,AX=00D5h
  122821. --------V-6200DA-----------------------------
  122822. INT 62 u - FGDRIVER v4.02 - "FG_VGASTATE" - SAVE/RESTORE VGA CONTROLLER STATE
  122823. AX = 00DAh
  122824. BX = direction (0000h save, else restore)
  122825. Notes: the FGDRIVER functions are rearranged with each major release, but
  122826. their parameters do not change (see #03474)
  122827. this function is only meaningful in modes 0Dh and above
  122828. --------V-6200DB-----------------------------
  122829. INT 62 u - FGDRIVER v4.02 - "FG_VOICE" - START SOUND
  122830. AX = 00DBh
  122831. BX = channel on TI sound chip
  122832. 1-3 = channels 1-3, 4 = channel 4 with periodic noise,
  122833. 5 = channel 4 with white noise
  122834. CX = frequency in Hz (18-32767 for channels 1-3; 0=512 Hz, 1=1024 Hz,
  122835. 2=2048 Hz for channels 4 and 5)
  122836. DX = volume
  122837. SI = duration in clock ticks (continuous if <= 0)
  122838. Program: FGDRIVER is the external video driver for the shareware
  122839. Fastgraph/Light by Ted Gruber Software
  122840. Notes: the FGDRIVER functions are rearranged with each major release, but
  122841. their parameters do not change (see #03474 at AX=0000h)
  122842. This function is only available on the PCjr and Tandy 1000 machines
  122843. SeeAlso: AX=0080h,AX=00BCh,AX=00DCh
  122844. --------V-6200DC-----------------------------
  122845. INT 62 u - FGDRIVER v4.02 - "FG_VOICES" - PLAY SOUNDS IN BACKGROUND
  122846. AX = 00DCh
  122847. ES:BX -> tone array (see #03512)
  122848. CX = number of times to repeat tone array
  122849. Notes: the FGDRIVER functions are rearranged with each major release, but
  122850. their parameters do not change (see #03474 at AX=0000h)
  122851. This function is only available on the PCjr and Tandy 1000 machines
  122852. SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DBh
  122853. Format of FGDRIVER tone array element:
  122854. Offset Size Description (Table 03512)
  122855. 00h WORD channel number (0000h terminates array)
  122856. 02h WORD frequency
  122857. 04h WORD volume
  122858. 06h WORD duration in 1/72.8 seconds
  122859. --------V-6200DD-----------------------------
  122860. INT 62 u - FGDRIVER v4.02 - "FG_WAITFOR" - DELAY FOR SPECIFIED DURATION
  122861. AX = 00DDh
  122862. BX = duration in clock ticks
  122863. Return: after delay elapses
  122864. Note: the FGDRIVER functions are rearranged with each major release, but
  122865. their parameters do not change (see #03474 at AX=0000h)
  122866. SeeAlso: AX=00BFh,INT 1A/AX=FF01h
  122867. --------V-6200DE-----------------------------
  122868. INT 62 u - FGDRIVER v4.02 - "FG_WAITKEY" - FLUSH KEYBOARD BUFFER AND AWAIT KEY
  122869. AX = 00DEh
  122870. Return: after next key pressed
  122871. Note: the FGDRIVER functions are rearranged with each major release, but
  122872. their parameters do not change (see #03474 at AX=0000h)
  122873. SeeAlso: AX=000Ah,AX=0046h,AX=0063h,AX=0069h,INT 16/AH=00h
  122874. --------V-6200DF-----------------------------
  122875. INT 62 u - FGDRIVER v4.02 - "FG_WAITVR" - ENABLE/DISABLE VERTICAL RETRACE WAIT
  122876. AX = 00DFh
  122877. BX = new state (0000h disabled, 0001h enabled)
  122878. Note: the FGDRIVER functions are rearranged with each major release, but
  122879. their parameters do not change (see #03474 at AX=0000h)
  122880. --------V-6200E0-----------------------------
  122881. INT 62 u - FGDRIVER v4.02 - "FG_WHERE" - GET CURRENT CURSOR POSITION
  122882. AX = 00E0h
  122883. ES:BX -> variable pointers (see #03513)
  122884. Return: indicated variables filled with cursor row and column for active
  122885. display
  122886. Note: the FGDRIVER functions are rearranged with each major release, but
  122887. their parameters do not change (see #03474 at AX=0000h)
  122888. SeeAlso: AX=0054h,AX=0058h,AX=006Bh,AX=007Eh
  122889. Format of FGDRIVER variable pointers:
  122890. Offset Size Description (Table 03513)
  122891. 00h WORD segment of WORD buffer for cursor row
  122892. 02h WORD offset of WORD buffer for cursor row
  122893. 04h WORD segment WORD buffer for cursor column
  122894. 06h WORD offset WORD buffer for cursor column
  122895. --------V-6200E1-----------------------------
  122896. INT 62 u - FGDRIVER v4.02 - "FG_XALPHA" - CONVERT SCREEN COLUMN TO CHAR COLUMN
  122897. AX = 00E1h
  122898. BX = screen space column
  122899. Return: AX = character space column containing specified coordinate
  122900. Note: the FGDRIVER functions are rearranged with each major release, but
  122901. their parameters do not change (see #03474 at AX=0000h)
  122902. SeeAlso: AX=00E2h,AX=00E4h
  122903. --------V-6200E2-----------------------------
  122904. INT 62 u - FGDRIVER v4.02 - "FG_XCONVERT" - CONVERT CHAR COLUMN TO SCREEN COL
  122905. AX = 00E2h
  122906. BX = character space column
  122907. Return: AX = screen space column of leftmost pixel in specified character col
  122908. Note: the FGDRIVER functions are rearranged with each major release, but
  122909. their parameters do not change (see #03474 at AX=0000h)
  122910. SeeAlso: AX=00E2h,AX=00E5h
  122911. --------V-6200E3-----------------------------
  122912. INT 62 u - FGDRIVER v4.02 - "FG_XVIEW" - CONVERT VIEWPORT COORDINATE
  122913. AX = 00E3h
  122914. BX = horizontal viewport coordinate
  122915. Return: AX = screen space X coordinate corresponding to supplied coordinate
  122916. Notes: the FGDRIVER functions are rearranged with each major release, but
  122917. their parameters do not change (see #03474 at AX=0000h)
  122918. if no viewport has been defined, the returned coordinate will be the
  122919. same as the viewport coordinate
  122920. SeeAlso: AX=00E2h,AX=00E6h
  122921. --------V-6200E4-----------------------------
  122922. INT 62 u - FGDRIVER v4.02 - "FG_YALPHA" - CONVERT SCREEN ROW TO CHARACTER ROW
  122923. AX = 00E4h
  122924. BX = screen space row
  122925. Return: AX = character space row containing specified coordinate
  122926. Note: the FGDRIVER functions are rearranged with each major release, but
  122927. their parameters do not change (see #03474 at AX=0000h)
  122928. SeeAlso: AX=00E1h,AX=00E5h
  122929. --------V-6200E5-----------------------------
  122930. INT 62 u - FGDRIVER v4.02 - "FG_YCONVERT" - CONVERT CHARACTER ROW TO SCREEN ROW
  122931. AX = 00E5h
  122932. BX = character space row
  122933. Return: AX = screen space row of topmost pixel in specified character row
  122934. Note: the FGDRIVER functions are rearranged with each major release, but
  122935. their parameters do not change (see #03474 at AX=0000h)
  122936. SeeAlso: AX=00E2h,AX=00E4h,AX=00E6h
  122937. --------V-6200E6-----------------------------
  122938. INT 62 u - FGDRIVER v4.02 - "FG_YVIEW" - TRANSLATE VERTICAL VIEWPORT COORDINATE
  122939. AX = 00E6h
  122940. BX = viewport Y coordinate
  122941. Return: AX = screen space row for viewport coordinate
  122942. Program: FGDRIVER is the external video driver for the shareware
  122943. Fastgraph/Light by Ted Gruber Software
  122944. Notes: the FGDRIVER functions are rearranged with each major release, but
  122945. their parameters do not change (see #03474 at AX=0000h)
  122946. if no viewport has been defined, the returned coordinate will be the
  122947. same as the viewport coordinate
  122948. SeeAlso: AX=00E3h,AX=00E5h
  122949. --------T-6201-------------------------------
  122950. INT 62 - Cswitch - GIVE UP REST OF TIME-SLICE
  122951. AH = 01h
  122952. Program: Cswitch is a set of multitasking functions by Herb Rose
  122953. SeeAlso: AH=05h"Cswitch",AH=06h"Cswitch",INT 15/AX=1000h,INT 2F/AX=1680h
  122954. --------N-6201-------------------------------
  122955. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - NOP for ETHDEV.ODI
  122956. AH = 01h
  122957. Return: CF clear if successful
  122958. CF set on error
  122959. AL = error code
  122960. Range: INT 4C to INT FB, selected by configuration
  122961. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  122962. SeeAlso: INT 64/AH=01h"BW-NFS"
  122963. --------T-6202-------------------------------
  122964. INT 62 - Cswitch - WAIT FOR SEMAPHORE
  122965. AH = 02h
  122966. DX = semaphore number (0-63)
  122967. Return: AX = FFFFh bad semaphore number
  122968. else success
  122969. SeeAlso: AH=03h"Cswitch",AH=04h"Cswitch"
  122970. --------N-6202-------------------------------
  122971. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - INITIALIZE
  122972. AH = 02h
  122973. Return: CF clear if successful
  122974. CF set on error
  122975. AL = error code
  122976. SeeAlso: AH=00h"ETHDEV",AH=03h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
  122977. SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"
  122978. --------T-6203-------------------------------
  122979. INT 62 - Cswitch - CHECK SEMAPHORE
  122980. AH = 03h
  122981. DX = semaphore number (0-63)
  122982. Return: AX = status
  122983. FFFFh not owned
  122984. else owned
  122985. SeeAlso: AH=02h,AH=04h
  122986. --------N-6203-------------------------------
  122987. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET REAL IP ADDRESS
  122988. AH = 03h
  122989. DS:SI -> DWORD buffer for IP address
  122990. Return: CF clear if successful
  122991. CF set on error
  122992. AL = error code
  122993. Range: INT 4C to INT FB, selected by configuration
  122994. Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  122995. interrupts (62h and 63h by default); the BW-NFS client uses a third
  122996. consecutive interrupt (64h by default) if it is loaded
  122997. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  122998. SeeAlso: INT 64/AH=01h"BW-NFS"
  122999. --------T-6204-------------------------------
  123000. INT 62 - Cswitch - TRIGGER SEMAPHORE
  123001. AH = 04h
  123002. DX = semaphore number (0-63)
  123003. Return: AX = status
  123004. FFFFh bad semaphore number
  123005. else success
  123006. SeeAlso: AH=02h"Cswitch",AH=03h"Cswitch"
  123007. --------N-6204-------------------------------
  123008. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - SET ???
  123009. AH = 04h
  123010. BX = ???
  123011. ES:SI -> FAR routine for ???
  123012. Return: CF clear if successful
  123013. CF set on error
  123014. AL = error code
  123015. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  123016. SeeAlso: INT 64/AH=01h"BW-NFS"
  123017. --------T-6205-------------------------------
  123018. INT 62 - Cswitch - SLEEP
  123019. AH = 05h
  123020. BX = seconds to sleep
  123021. SeeAlso: AH=01h"Cswitch",AH=06h"Cswitch",AH=08h"Cswitch"
  123022. --------N-6205-------------------------------
  123023. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  123024. AH = 05h
  123025. ???
  123026. Return: CF clear if successful
  123027. CF set on error
  123028. AL = error code
  123029. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  123030. SeeAlso: INT 64/AH=01h"BW-NFS"
  123031. --------T-6206-------------------------------
  123032. INT 62 - Cswitch - SUSPEND
  123033. AH = 06h
  123034. SeeAlso: AH=05h"Cswitch",AH=08h"Cswitch"
  123035. --------N-6206-------------------------------
  123036. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  123037. AH = 06h
  123038. ???
  123039. Return: CF clear if successful
  123040. CF set on error
  123041. AL = error code
  123042. Range: INT 4C to INT FB, selected by configuration
  123043. Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  123044. interrupts (62h and 63h by default); the BW-NFS client uses a third
  123045. consecutive interrupt (64h by default) if it is loaded
  123046. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  123047. SeeAlso: INT 64/AH=01h"BW-NFS"
  123048. --------T-6207-------------------------------
  123049. INT 62 - Cswitch - SPAWN
  123050. AH = 07h
  123051. ES:BX -> function address to start executing at
  123052. CX = priority (1-10)
  123053. Return: AX = result/status
  123054. FFFDh no free memory control blocks
  123055. FFFEh no free task control blocks
  123056. FFFFh not enough memory to create new task stack
  123057. >0 the tcb number of the new task, indicating no error
  123058. SeeAlso: AH=0Fh"Cswitch",AH=10h"Cswitch"
  123059. --------N-6207-------------------------------
  123060. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  123061. AH = 07h
  123062. DS:SI -> ???
  123063. Return: CF clear if successful
  123064. CF set on error
  123065. AL = error code
  123066. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  123067. SeeAlso: INT 64/AH=01h"BW-NFS"
  123068. --------T-6208-------------------------------
  123069. INT 62 - Cswitch - WAKE UP TASK
  123070. AH = 08h
  123071. BX = tcb identifier
  123072. SeeAlso: AH=05h,AH=06h
  123073. --------N-6208-------------------------------
  123074. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  123075. AH = 08h
  123076. CX = ???
  123077. ES:SI -> ??? buffer (see #03514)
  123078. Return: CF clear if successful
  123079. CF set on error
  123080. AL = error code
  123081. Range: INT 4C to INT FB, selected by configuration
  123082. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  123083. SeeAlso: INT 64/AH=01h"BW-NFS"
  123084. Format of BW-TCP ??? buffer:
  123085. Offset Size Description (Table 03514)
  123086. 00h 6 BYTEs hardware address???
  123087. 06h 6 BYTEs ???
  123088. 0Ch WORD ???
  123089. 0Eh WORD ???
  123090. ----------6208--CXFFFE-----------------------
  123091. INT 62 - MS SQL Server/Sybase DBLIBRARY interface - UNINSTALL/GET PSP ADDR
  123092. AH = 08h
  123093. CX = FFFEh
  123094. DX = FFFFh
  123095. Return: AX = PSP address of resident DBLIBRARY
  123096. Note: this call does not free the memory allocated to the TSR; the calling
  123097. code must do the deallocation.
  123098. SeeAlso: INT 62"DBLIBRARY"
  123099. --------T-6209-------------------------------
  123100. INT 62 - Cswitch - SET PRIORITY
  123101. AH = 09h
  123102. BX = new base priority (1-10)
  123103. Note: the lower the priority is numerically, the more often the task will run
  123104. --------N-6209-------------------------------
  123105. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - HOOK TIMER INTERRUPT
  123106. AH = 09h
  123107. Return: CF clear if successful
  123108. AX = handler ID
  123109. CF set on error
  123110. AL = error code
  123111. Range: INT 4C to INT FB, selected by configuration
  123112. Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  123113. interrupts (62h and 63h by default); the BW-NFS client uses a third
  123114. consecutive interrupt (64h by default) if it is loaded
  123115. SeeAlso: AH=0Ah"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  123116. SeeAlso: INT 64/AH=01h"BW-NFS"
  123117. --------T-620A-------------------------------
  123118. INT 62 - Cswitch - TEST MESSAGE QUEUE
  123119. AH = 0Ah
  123120. DX = queue number (0-63)
  123121. Return: AX = result/message size
  123122. 0000h nothing on queue
  123123. FFFFh bad queue number
  123124. else number of bytes in first message in queue
  123125. SeeAlso: AH=0Bh"Cswitch",AH=0Ch"Cswitch"
  123126. --------N-620A-------------------------------
  123127. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - UNHOOK TIMER INTERRUPT
  123128. AH = 0Ah
  123129. DX = handler ID
  123130. Return: CF clear if successful
  123131. CF set on error
  123132. AL = error code
  123133. SeeAlso: AH=09h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  123134. SeeAlso: INT 64/AH=01h"BW-NFS"
  123135. --------T-620B-------------------------------
  123136. INT 62 - Cswitch - SEND MESSAGE
  123137. AH = 0Bh
  123138. CX = number of bytes to write
  123139. DS:SI -> buffer
  123140. DX = queue number (0-63)
  123141. Return: AX = result/message size
  123142. 0000h no message was on queue
  123143. FFFEh triggered by something arriving, redo the call
  123144. FFFFh bad queue number
  123145. else number of bytes in message
  123146. SeeAlso: AH=0Ah"Cswitch",AH=0Ch"Cswitch"
  123147. --------N-620B-------------------------------
  123148. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ADD ???
  123149. AH = 0Bh
  123150. AL = ???
  123151. DX = ???
  123152. BP = ???
  123153. ES:SI -> ???
  123154. Return: CF clear if successful
  123155. CF set on error
  123156. AL = error code
  123157. SeeAlso: AH=0Ch"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  123158. SeeAlso: INT 64/AH=01h"BW-NFS"
  123159. --------T-620C-------------------------------
  123160. INT 62 - Cswitch - READ MESSAGE
  123161. AH = 0Ch
  123162. CX = number of bytes to read
  123163. DS:SI -> buffer
  123164. DX = queue number (0-63)
  123165. Return: AX = status
  123166. FFFFh bad queue number
  123167. else number of bytes transferred
  123168. SeeAlso: AH=0Ah,AH=0Bh
  123169. --------N-620C-------------------------------
  123170. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - REMOVE ???
  123171. AH = 0Ch
  123172. DX = ???
  123173. BP = ???
  123174. Return: CF clear if successful
  123175. CF set on error
  123176. AL = error code
  123177. Range: INT 4C to INT FB, selected by configuration
  123178. Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  123179. interrupts (62h and 63h by default); the BW-NFS client uses a third
  123180. consecutive interrupt (64h by default) if it is loaded
  123181. SeeAlso: AH=0Bh"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  123182. SeeAlso: INT 64/AH=01h"BW-NFS"
  123183. --------T-620D-------------------------------
  123184. INT 62 - Cswitch - DON'T ALLOW TASK TO BE SWAPPED OUT
  123185. AH = 0Dh
  123186. SeeAlso: AH=0Eh"Cswitch"
  123187. --------N-620D-------------------------------
  123188. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - NOP for ETHDEV.ODI
  123189. AH = 0Dh
  123190. Return: CF clear if successful
  123191. CF set on error
  123192. AL = error code
  123193. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  123194. SeeAlso: INT 64/AH=01h"BW-NFS"
  123195. --------T-620E-------------------------------
  123196. INT 62 - Cswitch - ALLOW TASK TO BE SWAPPED OUT
  123197. AH = 0Eh
  123198. SeeAlso: AH=0Dh"Cswitch"
  123199. --------N-620E-------------------------------
  123200. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - BEGIN CRITICAL SECTION
  123201. AH = 0Eh
  123202. Return: CF clear if successful
  123203. CF set on error
  123204. AL = error code
  123205. SeeAlso: AH=0Fh"ETHDEV",AH=10h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
  123206. SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"
  123207. --------T-620F-------------------------------
  123208. INT 62 - Cswitch - LOAD AND RUN PROGRAM FROM DISK
  123209. AH = 0Fh
  123210. ES:BX -> command line
  123211. CX = priority (1-10)
  123212. DX = background flag (nonzero allows loading to EMS)
  123213. Return: AX = status
  123214. 0000h task loader queue is full
  123215. 0001h no error
  123216. SeeAlso: AH=07h"Cswitch",AH=10h"Cswitch",AH=13h"Cswitch"
  123217. --------N-620F-------------------------------
  123218. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - END CRITICAL SECTION
  123219. AH = 0Fh
  123220. Return: CF clear if successful
  123221. CF set on error
  123222. AL = error code
  123223. Range: INT 4C to INT FB, selected by configuration
  123224. Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  123225. interrupts (62h and 63h by default); the BW-NFS client uses a third
  123226. consecutive interrupt (64h by default) if it is loaded
  123227. SeeAlso: AH=0Eh"ETHDEV",AH=10h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
  123228. SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"
  123229. --------T-6210-------------------------------
  123230. INT 62 - Cswitch - TERMINATE SPAWNED PROGRAM
  123231. AH = 10h
  123232. SeeAlso: AH=07h"Cswitch",AH=0Fh"Cswitch"
  123233. --------N-6210-------------------------------
  123234. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - QUERY CRITICAL SECTION
  123235. AH = 10h
  123236. Return: CF clear if no critical section active
  123237. CF set if in critical section
  123238. SeeAlso: AH=0Eh"ETHDEV",AH=0Fh"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
  123239. SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"
  123240. --------T-6211-------------------------------
  123241. INT 62 - Cswitch - GET TCB INFORMATION
  123242. AH = 11h
  123243. ES:BX -> a pointer which will be set to the tcb address
  123244. Return: AX = tcb indentifier
  123245. SeeAlso: AH=12h
  123246. --------N-6211-------------------------------
  123247. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - SET ???
  123248. AH = 11h
  123249. ES:SI -> ???
  123250. Return: CF clear
  123251. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  123252. SeeAlso: INT 64/AH=01h"BW-NFS"
  123253. --------T-6212-------------------------------
  123254. INT 62 - Cswitch - GET TCB ADDRESS
  123255. AH = 12h
  123256. ES:BX -> a pointer which will be set to the tcb table address
  123257. Return: AX = tcb indentifier
  123258. SeeAlso: AH=11h"Cswitch"
  123259. --------N-6212-------------------------------
  123260. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET SOCKET NUMBER???
  123261. AH = 12h
  123262. Return: CF clear if successful
  123263. AX = socket number??? (memory variable incremented after reading)
  123264. CF set on error
  123265. AL = error code
  123266. Range: INT 4C to INT FB, selected by configuration
  123267. Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  123268. interrupts (62h and 63h by default); the BW-NFS client uses a third
  123269. consecutive interrupt (64h by default) if it is loaded
  123270. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  123271. SeeAlso: INT 64/AH=01h"BW-NFS"
  123272. --------T-6213-------------------------------
  123273. INT 62 - Cswitch - CHECK STATUS OF PREVIOUS LOAD_TASK
  123274. AH = 13h
  123275. Return: AX = result
  123276. FFFCh no Memory Control Blocks available
  123277. FFFDh no TCBs available
  123278. FFFEh insufficient memory
  123279. FFFFh cannot open file
  123280. 0000h load in progress (not done yet)
  123281. else tcb indentifier
  123282. SeeAlso: AH=0Fh
  123283. --------N-6213-------------------------------
  123284. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  123285. AH = 13h
  123286. CX = ???
  123287. Return: CF clear if successful
  123288. AL = 00h
  123289. CF set on error
  123290. AL = error code
  123291. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  123292. SeeAlso: INT 64/AH=01h"BW-NFS"
  123293. --------N-6214-------------------------------
  123294. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  123295. AH = 14h
  123296. ES:SI -> ???
  123297. Return: CF clear if successful
  123298. AL = 00h
  123299. CF set on error
  123300. AL = error code
  123301. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  123302. SeeAlso: INT 64/AH=01h"BW-NFS"
  123303. --------N-6215-------------------------------
  123304. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET ???
  123305. AH = 15h
  123306. Return: CF clear if successful
  123307. AX = ??? (destroyed???)
  123308. CF set on error
  123309. AL = error code
  123310. Range: INT 4C to INT FB, selected by configuration
  123311. Notes: call this function after reading the "ETHDEV27" device
  123312. the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  123313. interrupts (62h and 63h by default); the BW-NFS client uses a third
  123314. consecutive interrupt (64h by default) if it is loaded
  123315. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  123316. INT 64/AH=01h"BW-NFS"
  123317. --------N-6216-------------------------------
  123318. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  123319. AH = 16h
  123320. ???
  123321. Return: CF clear if successful
  123322. CF set on error
  123323. AL = error code
  123324. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  123325. SeeAlso: INT 64/AH=01h"BW-NFS"
  123326. --------N-6217-------------------------------
  123327. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  123328. AH = 17h
  123329. DX = segment of ???
  123330. Return: CF clear
  123331. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  123332. SeeAlso: INT 64/AH=01h"BW-NFS"
  123333. --------N-6218-------------------------------
  123334. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ALLOCATE AND MAP EMS FOR DRIVER
  123335. AH = 18h
  123336. Return: CF clear if successful
  123337. CF set on error
  123338. AL = error code
  123339. Range: INT 4C to INT FB, selected by configuration
  123340. Notes: calls function 17h after EMS allocated and mapped
  123341. the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  123342. interrupts (62h and 63h by default); the BW-NFS client uses a third
  123343. consecutive interrupt (64h by default) if it is loaded
  123344. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=03h"BW-TCP",INT 63/AH=24h
  123345. SeeAlso: INT 64/AH=01h"BW-NFS"
  123346. --------R-6247-------------------------------
  123347. INT 62 - PC Tools v7 COMMUTE - ???
  123348. AH = 47h
  123349. AL = subfunction (00h-31h)
  123350. ???
  123351. CF set
  123352. Return: ???
  123353. Program: COMMUTE is a remote-control program bundled with Central Point
  123354. Software's PC Tools
  123355. --------R-6248-------------------------------
  123356. INT 62 - PC Tools v7 COMMUTE - ???
  123357. AH = 48h
  123358. AL = ???
  123359. ???
  123360. CF set
  123361. Return: ???
  123362. --------R-6249-------------------------------
  123363. INT 62 - PC Tools v7 COMMUTE - ???
  123364. AH = 49h
  123365. ???
  123366. CF set
  123367. Return: ???
  123368. Note: may be the same as AH=4Ch
  123369. --------R-624A-------------------------------
  123370. INT 62 - PC Tools v7 COMMUTE - ???
  123371. AH = 4Ah
  123372. AL = subfunction (00h-46h)
  123373. ???
  123374. CF set
  123375. Return: ???
  123376. --------R-624B--BX1234-----------------------
  123377. INT 62 - PC Tools v7 COMMUTE - ???
  123378. AH = 4Bh
  123379. BX = 1234h
  123380. CX = 1234h
  123381. ES = ???
  123382. CF set
  123383. Return: ???
  123384. Program: COMMUTE is a remote-control program bundled with Central Point
  123385. Software's PC Tools
  123386. --------R-624C-------------------------------
  123387. INT 62 - PC Tools v7 COMMUTE - ???
  123388. AH = 4Ch
  123389. BL = subfunction
  123390. 00h ???
  123391. 02h ???
  123392. Return: CF clear if successful
  123393. CF set on error
  123394. --------R-626262-----------------------------
  123395. INT 62 - PC Tools v7 COMMUTE - INSTALLATION CHECK
  123396. AX = 6262h
  123397. CF set
  123398. Return: AX = 0000h
  123399. BX = segment of resident code's PSP
  123400. Program: COMMUTE is a remote-control program bundled with Central Point
  123401. Software's PC Tools
  123402. --------s-62C0-------------------------------
  123403. INT 62 U - GWBTSR - API
  123404. AH = C0h
  123405. AL = function
  123406. 00h installation check
  123407. Return: AX = 00FFh if installed
  123408. 01h ???
  123409. Program: GWBTSR is a huge (48K) resident mixer controller for the Gateway 2000
  123410. sound card (OEM version of Aztech Sound Galaxy)
  123411. Index: installation check;GWBTSR
  123412. --------N-62FE-------------------------------
  123413. INT 62 - BW-TCP - ETHDRV.SYS - MAP EMS PAGE FRAME
  123414. AH = FEh
  123415. AL = direction
  123416. 00h map in driver's memory block
  123417. 01h map out driver's memory block
  123418. Return: CF clear if successful
  123419. CF set on error
  123420. AL = error code
  123421. Range: INT 4C to INT FB, selected by configuration
  123422. Notes: this function is supported by at least the SLIP and ODI versions of
  123423. ETHDEV.SYS
  123424. the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  123425. interrupts (62h and 63h by default); the BW-NFS client uses a third
  123426. consecutive interrupt (64h by default) if it is loaded
  123427. SeeAlso: INT 21/AH=3Fh"BW-TCP",INT 62/AH=00h"ETHDEV",INT 62/AH=18h"ETHDEV"
  123428. SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h,INT 64/AH=FEh
  123429. --------*-63---------------------------------
  123430. INT 63 - reserved for user interrupt
  123431. --------d-63---------------------------------
  123432. INT 63 - Adaptec and OMTI controllers - DRIVE 0 DATA
  123433. Desc: this vector stores the last four bytes of the parameter table for
  123434. hard disk 0
  123435. SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 62"Adaptec",INT 64"Adaptec"
  123436. --------b-63---------------------------------
  123437. INT 63 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
  123438. Desc: the low word of this vector contains the segment of the RAM data area
  123439. to be used by the expansion ROM at F400h:4000h, and the high word
  123440. contains the length of the data area; this segment and size are
  123441. both set to 0000h if no ROM is installed at F400h:4000h
  123442. SeeAlso: INT 60"TI Professional PC",INT 62"TI Professional"
  123443. SeeAlso: INT 64"TI Professional PC"
  123444. ----------63---------------------------------
  123445. INT 63 - Oracle SQL Protected Mode Executive - ???
  123446. --------d-63---------------------------------
  123447. INT 63 - 4+Power FLOPPY CONTROLLER - ORIGINAL INT 13/40
  123448. Desc: the "4+Power" quad floppy controller BIOS hooks INT 13 (or INT 40 if
  123449. INT 13 has been moved there) and places the old value here
  123450. ----------63---------------------------------
  123451. INT 63 - Kofax KF9X00 image manipulation card interface
  123452. --------Q-63---------------------------------
  123453. INT 63 - DESQview/X - SOCKET API
  123454. InstallCheck: test for the string "dvxunix" (yes, lowercase) at offset 9
  123455. from the interrupt handler start (see #03515)
  123456. Notes: parameters are passed by patching (!) data field immediately following
  123457. the entry point, as detailed below (see #03515); the preferred
  123458. method for calling the socket API is via INT 15/AX=DE2Eh
  123459. SeeAlso: INT 15/AX=DE2Eh,INT BE"DESQview"
  123460. Index: installation check;DESQview/X socket interface
  123461. Format of DESQview/X socket interrupt handler entry:
  123462. Offset Size Description (Table 03515)
  123463. 00h 3 BYTEs near jump or short jump + NOP to actual interrupt handler
  123464. 03h WORD offset from following pointer for initial top of local stack
  123465. 05h DWORD pointer to argument/stack block (see INT 15/AX=DE2Eh)
  123466. 09h 7 BYTEs signature "dvxunix"
  123467. --------b-6300-------------------------------
  123468. INT 63 - HP 100LX - MAP HIGH MEMORY
  123469. AH = 00h
  123470. AL = physical page (00h seg C000, 01h seg C400h, ...)
  123471. BX = zero-based logical page
  123472. CX = page number
  123473. DX = device ID (00h system ROM, 05h plugin, etc.)
  123474. Return: ???
  123475. SeeAlso: AH=01h
  123476. --------N-6300-------------------------------
  123477. INT 63 - BW-TCP - TCPIP.SYS - SET IP ADDRESS???
  123478. AH = 00h
  123479. DS:BX -> DWORD containing IP address (big-endian)
  123480. Return: CF clear if successful
  123481. CF set on error
  123482. AX destroyed
  123483. Range: INT 4D to INT FC, selected by configuration
  123484. Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  123485. interrupts (62h and 63h by default); the BW-NFS client uses a third
  123486. consecutive interrupt (64h by default) if it is loaded
  123487. SeeAlso: AH=01h"BW-TCP",AH=02h"BW-TCP"
  123488. --------b-6301-------------------------------
  123489. INT 63 - HP 100LX - SAVE/RESTORE MEMORY MAP
  123490. AH = 01h
  123491. AL = function (00h save, 01h restore)
  123492. ???
  123493. Return: ???
  123494. --------N-6301-------------------------------
  123495. INT 63 - BW-TCP - TCPIP.SYS - ???
  123496. AH = 01h
  123497. ES:BX -> ???
  123498. ???
  123499. Return: ???
  123500. Range: INT 4D to INT FC, selected by configuration
  123501. Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  123502. interrupts (62h and 63h by default); the BW-NFS client uses a third
  123503. consecutive interrupt (64h by default) if it is loaded
  123504. SeeAlso: AH=00h"BW-TCP",AH=02h"BW-TCP"
  123505. --------N-6302-------------------------------
  123506. INT 63 - BW-TCP - TCPIP.SYS - ???
  123507. AH = 02h
  123508. ???
  123509. Return: ???
  123510. SeeAlso: AH=00h"BW-TCP",AH=01h"BW-TCP"
  123511. --------N-6303-------------------------------
  123512. INT 63 - BW-TCP - TCPIP.SYS - GET IP ADDRESS
  123513. AH = 03h
  123514. DS:SI -> buffer for DWORD IP address (big-endian)
  123515. Return: AX destroyed
  123516. CF clear if successful
  123517. CF set on error
  123518. Note: this call may use ARP or RARP to determine the address
  123519. --------N-6304-------------------------------
  123520. INT 63 - BW-TCP - TCPIP.SYS - ???
  123521. AH = 04h
  123522. ???
  123523. Return: ???
  123524. --------N-6305-------------------------------
  123525. INT 63 - BW-TCP - TCPIP.SYS - ???
  123526. AH = 05h
  123527. DS:BX -> ???
  123528. ES:SI -> ???
  123529. Return: ???
  123530. Range: INT 4D to INT FC, selected by configuration
  123531. --------N-6306-------------------------------
  123532. INT 63 - BW-TCP - TCPIP.SYS - ???
  123533. AH = 06h
  123534. ???
  123535. Return: ???
  123536. --------N-6307-------------------------------
  123537. INT 63 - BW-TCP - TCPIP.SYS - ???
  123538. AH = 07h
  123539. ???
  123540. Return: ???
  123541. --------N-6308-------------------------------
  123542. INT 63 - BW-TCP - TCPIP.SYS - SET DEFAULT ??? HANDLER
  123543. AH = 08h
  123544. DS:BX -> DWORD containing IP address
  123545. Return: CF clear if successful
  123546. CF set on error
  123547. ???
  123548. --------N-6309-------------------------------
  123549. INT 63 - BW-TCP - TCPIP.SYS - INSTALL ??? HANDLERS
  123550. AH = 09h
  123551. BL = handler type
  123552. ES:SI -> FAR handler of specified type
  123553. Return: ???
  123554. SeeAlso: AH=0Ah,AH=0Dh
  123555. --------N-630A-------------------------------
  123556. INT 63 - BW-TCP - TCPIP.SYS - DELETE ??? HANDLERS
  123557. AH = 0Ah
  123558. BL = handler type
  123559. Return: CF clear if successful
  123560. CF set on error (no handler of specified type installed)
  123561. SeeAlso: AH=09h
  123562. --------N-630B-------------------------------
  123563. INT 63 - BW-TCP - TCPIP.SYS - ???
  123564. AH = 0Bh
  123565. AL = ???
  123566. DL = ???
  123567. DS:BX -> ???
  123568. ES:SI -> ???
  123569. Return: ???
  123570. --------N-630C-------------------------------
  123571. INT 63 - BW-TCP - TCPIP.SYS - ???
  123572. AH = 0Ch
  123573. ???
  123574. Return: ???
  123575. Range: INT 4D to INT FC, selected by configuration
  123576. --------N-630D-------------------------------
  123577. INT 63 - BW-TCP - TCPIP.SYS - INSTALL DEFAULT ??? HANDLER
  123578. AH = 0Dh
  123579. ???
  123580. Return: ???
  123581. Note: if not already installed, installs a type 06h handler with AH=09h
  123582. SeeAlso: AH=09h
  123583. --------N-630E-------------------------------
  123584. INT 63 - BW-TCP - TCPIP.SYS - CLOSE NETWORK DESCRIPTOR
  123585. AH = 0Eh
  123586. ???
  123587. Return: ???
  123588. SeeAlso: INT 61/AH=08h"PC/TCP",INT 61/AH=09h"PC/TCP",INT 61/AH=18h
  123589. --------N-630F-------------------------------
  123590. INT 63 - BW-TCP - TCPIP.SYS - ???
  123591. AH = 0Fh
  123592. AL = ???
  123593. SI = ???
  123594. DS:DI -> ???
  123595. ???
  123596. Return: ???
  123597. Range: INT 4D to INT FC, selected by configuration
  123598. --------N-6310-------------------------------
  123599. INT 63 - BW-TCP - TCPIP.SYS - ???
  123600. AH = 10h
  123601. DS:DI -> ???
  123602. ???
  123603. Return: ???
  123604. --------N-6311-------------------------------
  123605. INT 63 - BW-TCP - TCPIP.SYS - ???
  123606. AH = 11h
  123607. ???
  123608. Return: ???
  123609. --------N-6312-------------------------------
  123610. INT 63 - BW-TCP - TCPIP.SYS - LISTEN FOR INCOMING CONNECTIONS
  123611. AH = 12h
  123612. DS:SI -> ???
  123613. ES:BP -> ???
  123614. Return: ???
  123615. SeeAlso: AH=14h,INT 61/AH=23h
  123616. --------N-6313-------------------------------
  123617. INT 63 - BW-TCP - TCPIP.SYS - NOP
  123618. AH = 13h
  123619. Return: nothing
  123620. Range: INT 4D to INT FC, selected by configuration
  123621. --------N-6314-------------------------------
  123622. INT 63 - BW-TCP - TCPIP.SYS - OPEN NETWORK CONNECTION
  123623. AH = 14h
  123624. BX = network descriptor???
  123625. DS:SI -> ???
  123626. ES:BP -> ???
  123627. Return: ???
  123628. SeeAlso: AH=12h,AH=16h,AH=19h,INT 61/AH=13h"PC/TCP",INT 62/AH=13h"ETHDEV"
  123629. --------N-6315-------------------------------
  123630. INT 63 - BW-TCP - TCPIP.SYS - ???
  123631. AH = 15h
  123632. DS:DI -> ???
  123633. ???
  123634. Return: ???
  123635. Range: INT 4D to INT FC, selected by configuration
  123636. --------N-6316-------------------------------
  123637. INT 63 - BW-TCP - TCPIP.SYS - RESET NETWORK CONNECTION
  123638. AH = 16h
  123639. DS:DI -> ???
  123640. Return: ???
  123641. Note: calls AH=17h after preprocessing
  123642. SeeAlso: AH=17h,INT 61/AH=19h"PC/TCP"
  123643. --------N-6317-------------------------------
  123644. INT 63 - BW-TCP - TCPIP.SYS - ???
  123645. AH = 17h
  123646. DS:DI -> ???
  123647. ???
  123648. Return: ???
  123649. Range: INT 4D to INT FC, selected by configuration
  123650. SeeAlso: AH=18h
  123651. --------N-6318-------------------------------
  123652. INT 63 - BW-TCP - TCPIP.SYS - ???
  123653. AH = 18h
  123654. DS:DI -> ???
  123655. ???
  123656. Return: ???
  123657. Note: same as AH=17h, except performed with interrupts disabled
  123658. SeeAlso: AH=17h
  123659. --------N-6319-------------------------------
  123660. INT 63 - BW-TCP - TCPIP.SYS - WRITE TO THE NETWORK
  123661. AH = 19h
  123662. DS:DI -> ???
  123663. ???
  123664. Return: BX = number of bytes NOT written
  123665. ???
  123666. Range: INT 4D to INT FC, selected by configuration
  123667. Note: calls AH=17h with interrupts disabled and ??? set to 01h
  123668. SeeAlso: AH=14h,AH=1Ah,AH=1Bh,INT 61/AH=1Ah"PC/TCP"
  123669. --------N-631A-------------------------------
  123670. INT 63 - BW-TCP - TCPIP.SYS - READ FROM THE NETWORK
  123671. AH = 1Ah
  123672. CX = maximum number of bytes to read
  123673. ES:BP -> ???
  123674. ???
  123675. Return: CX = number of bytes actually read
  123676. ???
  123677. SeeAlso: AH=12h,AH=14h,AH=19h,INT 61/AH=1Bh"PC/TCP"
  123678. --------N-631B-------------------------------
  123679. INT 63 - BW-TCP - TCPIP.SYS - ???
  123680. AH = 1Bh
  123681. CX = ???
  123682. ES:BP -> ???
  123683. Return: DX = ???
  123684. ???
  123685. Range: INT 4D to INT FC, selected by configuration
  123686. --------N-631C-------------------------------
  123687. INT 63 - BW-TCP - TCPIP.SYS - ???
  123688. AH = 1Ch
  123689. DS:DI -> ???
  123690. ???
  123691. Return: ???
  123692. Note: calls AH=17h with ???
  123693. SeeAlso: AH=17h
  123694. --------N-631D-------------------------------
  123695. INT 63 - BW-TCP - TCPIP.SYS - ???
  123696. AH = 1Dh
  123697. ???
  123698. Return: ???
  123699. Range: INT 4D to INT FC, selected by configuration
  123700. --------N-631E-------------------------------
  123701. INT 63 - BW-TCP - TCPIP.SYS - ???
  123702. AH = 1Eh
  123703. DS:BX -> DWORD containing IP address (big-endian)
  123704. ???
  123705. Return: CF clear if successful
  123706. CF set on error
  123707. ???
  123708. --------N-631F-------------------------------
  123709. INT 63 - BW-TCP - TCPIP.SYS - SET SOCKET ??? HANDLER
  123710. AH = 1Fh
  123711. BX = socket number
  123712. ES:SI -> FAR function for ???
  123713. Return: CF clear if successful
  123714. CF set on error (out of slots)
  123715. SeeAlso: AH=20h
  123716. --------N-6320-------------------------------
  123717. INT 63 - BW-TCP - TCPIP.SYS - REMOVE SOCKET ??? HANDLER
  123718. AH = 20h
  123719. BX = socket number
  123720. Return: CF clear if successful
  123721. CF set on error (not set)
  123722. Range: INT 4D to INT FC, selected by configuration
  123723. SeeAlso: AH=1Fh
  123724. --------N-6321-------------------------------
  123725. INT 63 - BW-TCP - TCPIP.SYS - ???
  123726. AH = 21h
  123727. ES:SI -> ???
  123728. Return: ???
  123729. SeeAlso: INT 61/AH=1Ch"PC/TCP"
  123730. --------N-6322-------------------------------
  123731. INT 63 - BW-TCP - TCPIP.SYS - REMOVE ??? HANDLER
  123732. AH = 22h
  123733. Return: CF clear
  123734. Range: INT 4D to INT FC, selected by configuration
  123735. Note: decrements a counter if not already zero, and calls AH=0Ah with BL=11h
  123736. if the counter reaches zero
  123737. --------N-6323-------------------------------
  123738. INT 63 - BW-TCP - TCPIP.SYS - ???
  123739. AH = 23h
  123740. DS:BX -> ???
  123741. ES:SI -> 6-byte buffer for ???
  123742. Return: CF clear if successful
  123743. CF set on error
  123744. --------N-6324-------------------------------
  123745. INT 63 - BW-TCP - TCPIP.SYS - GET SOCKET
  123746. AH = 24h
  123747. Return: AX = socket number (0400h-FFFFh)
  123748. Range: INT 4D to INT FC, selected by configuration
  123749. Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  123750. interrupts (62h and 63h by default); the BW-NFS client uses a third
  123751. consecutive interrupt (64h by default) if it is loaded
  123752. SeeAlso: AH=12h,AH=14h,INT 62/AH=12h"ETHDEV",INT 64/AH=01h"BW-NFS"
  123753. --------N-6325-------------------------------
  123754. INT 63 - BW-TCP - TCPIP.SYS - GET INTERNET ADDRESS
  123755. AH = 25h
  123756. Return: CL:CH:DL:DH = caller's Internet address
  123757. SeeAlso: AH=03h,AH=26h,INT 61/AH=05h"PC/TCP"
  123758. --------N-6326-------------------------------
  123759. INT 63 - BW-TCP - TCPIP.SYS - SET INTERNET ADDRESS???
  123760. AH = 26h
  123761. CL:CH:DL:DH = Internet address
  123762. Return: nothing
  123763. Range: INT 4D to INT FC, selected by configuration
  123764. Note: this function sets a different variable than AH=25h returns
  123765. SeeAlso: AH=03h,AH=25h
  123766. --------N-6327-------------------------------
  123767. INT 63 - BW-TCP - TCPIP.SYS - SET ???
  123768. AH = 27h
  123769. BX = ???
  123770. ES:SI -> ???
  123771. Return: ???
  123772. --------N-6328-------------------------------
  123773. INT 63 - BW-TCP - TCPIP.SYS - ???
  123774. AH = 28h
  123775. ???
  123776. Return: ???
  123777. --------N-6329-------------------------------
  123778. INT 63 - BW-TCP - TCPIP.SYS - ???
  123779. AH = 29h
  123780. ???
  123781. Return: ???
  123782. Range: INT 4D to INT FC, selected by configuration
  123783. Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  123784. interrupts (62h and 63h by default); the BW-NFS client uses a third
  123785. consecutive interrupt (64h by default) if it is loaded
  123786. --------*-64---------------------------------
  123787. INT 64 - reserved for user interrupt
  123788. --------d-64---------------------------------
  123789. INT 64 - Adaptec controllers - DRIVE 1 DATA
  123790. Desc: this vector stores the first four bytes of the parameter table for
  123791. hard disk 1
  123792. Notes: these vectors are used by the following Adaptec controllers:
  123793. ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16
  123794. these vectors are NOT used by the following Adaptec controllers:
  123795. ACB 2310, ACB 2312, ACB 2320D, ACB 2322D
  123796. SeeAlso: INT 60"Adaptec",INT 65"Adaptec",INT 66"Adaptec",INT 67"Adaptec"
  123797. --------b-64---------------------------------
  123798. INT 64 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
  123799. Desc: the low word of this vector contains the segment of the RAM data area
  123800. to be used by the expansion ROM at F400h:6000h, and the high word
  123801. contains the length of the data area; this segment and size are
  123802. both set to 0000h if no ROM is installed at F400h:6000h
  123803. SeeAlso: INT 60"TI Professional PC",INT 63"TI Professional"
  123804. SeeAlso: INT 65"TI Professional PC"
  123805. ----------64---------------------------------
  123806. INT 64 - Oracle SQL Protected Mode Executive - ???
  123807. --------N-64---------------------------------
  123808. INT 64 - Novell NetWare to v2.0a - LOW-LEVEL API
  123809. Note: equivalent to INT 7A for NetWare versions through 2.0a only; later
  123810. versions do not use this interrupt for IPX/SPX access, instead
  123811. getting an entry point from INT 2F/AX=7A00h
  123812. SeeAlso: INT 2F/AX=7A00h,INT 7A"LOW-LEVEL API"
  123813. --------h-64---------------------------------
  123814. INT 64 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
  123815. SeeAlso: INT 65"DG10",INT 66"DG10"
  123816. --------r-64---------------------------------
  123817. INT 64 - Extended Batch Language v3.14+
  123818. AH = function
  123819. 00h to 5Fh chained to previous handler
  123820. 60h to 6Ch reserved, return immediately
  123821. 80h to FFh chained to previous handler
  123822. 6Dh (v4.01+) insert tone in queue
  123823. AL = ???
  123824. CX = frequency in Hertz
  123825. DL = duration in clock ticks
  123826. Return: AL = 00h if note stored
  123827. = 01h if no room to store
  123828. 6Eh clear ??? counter/flag
  123829. 6Fh return counter/flag that AH=6Eh clears
  123830. 70h ???
  123831. AL = ???
  123832. 71h ???
  123833. AL = ???
  123834. 72h ???
  123835. 73h insert byte at end of keyboard buffer
  123836. AL = byte to insert
  123837. Return: AL = 00h if byte inserted
  123838. = 01h if no room to store
  123839. 74h insert byte at front of keyboard buffer
  123840. AL = byte to insert
  123841. Return: AL = 00h if byte inserted
  123842. = 01h if no room to store
  123843. 75h ???
  123844. 76h get keyboard "stack" status
  123845. AL = 'K' if kbd read will read physical keyboard
  123846. 'S' if it will read EBL internal keyboard buffer
  123847. AH = ???
  123848. 77h clear internal keyboard buffer
  123849. 78h ???
  123850. AL = ???
  123851. 79h ???
  123852. 7Ah ???
  123853. AL = ???
  123854. 7Bh ???
  123855. AL = ???
  123856. 7Ch ???
  123857. AL = ???
  123858. 7Dh ???
  123859. AL = ???
  123860. 7Eh clear buffer for ???
  123861. 7Fh installation check
  123862. Return: CX = version in BCD
  123863. DI = segment of ???
  123864. BX = segment of next program's PSP???
  123865. Program: Extended Batch Language is a batch-file enhancer by Seaware
  123866. Notes: the chaining does not check whether the interrupt had been hooked
  123867. before, so if you try to chain when the previous vector was
  123868. 0000h:0000h, you'll be in trouble
  123869. functions 72h and 7Ah-7Dh appear to be interfaces to the optional
  123870. floating-point and extended function packages
  123871. Index: installation check;EBL|installation check;Extended Batch Language
  123872. --------d-64---------------------------------
  123873. INT 64 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
  123874. Note: This vector is overwritten by Pdisk to install custom harddrive types.
  123875. It can either destroy 4 vectors and take no memory or TSR and take
  123876. up some memory.
  123877. SeeAlso: INT 65"Pdisk"
  123878. ----------64---------------------------------
  123879. INT 64 - PC-DRAFT - ASYNCHRONOUS DRIVER
  123880. ???
  123881. Return: ???
  123882. Program: PC-DRAFT is a powerful CAD environment by rhv.
  123883. SeeAlso: INT 62"PC-DRAFT",INT 65"PC-DRAFT",INT 66"PC-DRAFT",INT 67"PC-DRAFT"
  123884. --------N-6401-------------------------------
  123885. INT 64 U - BW-NFS - BWRPC - ???
  123886. AH = 01h
  123887. ES:BX -> ??? (at least 8 bytes)
  123888. ES:BP -> DWORD ???
  123889. ???
  123890. Return: CF clear if successful
  123891. ???
  123892. CF set on error
  123893. CX = 0000h
  123894. Range: INT 4E to INT FD, selected by configuration
  123895. Notes: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  123896. interrupts (62h and 63h by default); the BW-NFS client uses a third
  123897. consecutive interrupt (64h by default) if it is loaded
  123898. the BWRPC installation check consists of determining the interrupt
  123899. vector assigned to it (two more than the value returned by reading
  123900. the ETHDEV27 device), and testing whether the word immediately
  123901. preceding the interrupt handler is 4257h ('BW')
  123902. SeeAlso: INT 62/AH=00h"ETHDEV",INT 63/AH=03h"BW-TCP",INT 63/AH=24h
  123903. Index: installation checks;BWRPC
  123904. --------N-6402-------------------------------
  123905. INT 64 U - BW-NFS - BWRPC - ???
  123906. AH = 02h
  123907. DS:DI -> ???
  123908. Return: ???
  123909. Note: this call is passed directly through to INT 62/AH=07h
  123910. SeeAlso: INT 62/AH=07h"ETHDEV"
  123911. --------N-6403-------------------------------
  123912. INT 64 U - BW-NFS - BWRPC - ADD ???
  123913. AH = 03h
  123914. AL = ???
  123915. BP = ???
  123916. ES:SI -> ???
  123917. Return: ???
  123918. Note: this call is passed directly through to INT 62/AH=0Bh
  123919. SeeAlso: AH=04h,INT 62/AH=0Bh"ETHDEV"
  123920. --------N-6404-------------------------------
  123921. INT 64 U - BW-NFS - BWRPC - REMOVE ???
  123922. AH = 04h
  123923. BP = ???
  123924. Return: ???
  123925. Range: INT 4E to INT FD, selected by configuration
  123926. Note: this call is passed directly through to INT 62/AH=0Ch
  123927. SeeAlso: AH=03h,INT 62/AH=0Ch"ETHDEV"
  123928. --------N-6405-------------------------------
  123929. INT 64 U - BW-NFS - BWRPC - ???
  123930. AH = 05h
  123931. CX = ???
  123932. Return: ???
  123933. Note: this call is passed directly through to INT 62/AH=13h
  123934. SeeAlso: INT 62/AH=13h"ETHDEV"
  123935. --------N-6406-------------------------------
  123936. INT 64 U - BW-NFS - BWRPC - ???
  123937. AH = 06h
  123938. ES:SI -> ???
  123939. Return: AL = 00h if CF clear
  123940. Range: INT 4E to INT FD, selected by configuration
  123941. Note: this call is passed directly through to INT 62/AH=14h
  123942. SeeAlso: INT 62/AH=14h"ETHDEV"
  123943. --------N-6407-------------------------------
  123944. INT 64 U - BW-NFS - BWRPC - GET IP ADDRESS
  123945. AH = 07h
  123946. Return: CX:DX = IP address
  123947. --------N-6410-------------------------------
  123948. INT 64 U - BW-NFS - BWRPC - CALL ETHDEV.SYS
  123949. AH = 10h
  123950. AL = ETHDEV function number
  123951. other registers as appropriate for ETHDEV call
  123952. Return: as returned by ETHDEV
  123953. Note: this call is passed directly through to INT 62
  123954. SeeAlso: INT 62/AH=00h"ETHDEV"
  123955. --------N-6411-------------------------------
  123956. INT 64 U - BW-NFS - BWRPC - NOP???
  123957. AH = 11h
  123958. Return: CF clear
  123959. Range: INT 4E to INT FD, selected by configuration
  123960. --------N-64FE-------------------------------
  123961. INT 64 - BW-NFS - BWRPC - MAP EMS PAGE FRAME
  123962. AH = FEh
  123963. AL = direction
  123964. 00h map in driver's memory block
  123965. 01h map out driver's memory block
  123966. Return: CF clear if successful
  123967. CF set on error
  123968. AL = error code
  123969. Range: INT 4E to INT FD, selected by configuration
  123970. Note: this call is passed through directly to ETHDEV.SYS (see INT 62/AH=FEh)
  123971. SeeAlso: INT 21/AH=3Fh"BW-TCP",INT 62/AH=FEh,INT 63/AH=03h"BW-TCP"
  123972. SeeAlso: INT 63/AH=24h
  123973. --------*-65---------------------------------
  123974. INT 65 - reserved for user interrupt
  123975. --------d-65---------------------------------
  123976. INT 65 - Adaptec controllers - DRIVE 1 DATA
  123977. Desc: this vector stores the second four bytes of the parameter table for
  123978. hard disk 1
  123979. SeeAlso: INT 64"Adaptec",INT 66"Adaptec",INT 67"Adaptec"
  123980. --------b-65---------------------------------
  123981. INT 65 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
  123982. Desc: the low word of this vector contains the segment of the RAM data area
  123983. to be used by the expansion ROM at F400h:8000h, and the high word
  123984. contains the length of the data area; this segment and size are
  123985. both set to 0000h if no ROM is installed at F400h:8000h
  123986. SeeAlso: INT 60"TI Professional PC",INT 64"TI Professional"
  123987. SeeAlso: INT 66"TI Professional PC"
  123988. --------h-65---------------------------------
  123989. INT 65 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
  123990. SeeAlso: INT 64"DG10",INT 66"DG10"
  123991. --------N-65---------------------------------
  123992. INT 65 - FTP Software NDIS-Packet Driver adapter - POST PROCESSING INTERRUPT
  123993. --------U-65---------------------------------
  123994. INT 65 - SD.COM v6.2
  123995. Desc: The unregistered version of SD62.COM uses the low byte of this vector
  123996. to count the number of invocations, displaying a registration
  123997. reminder each time after the 20th use.
  123998. --------d-65---------------------------------
  123999. INT 65 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
  124000. SeeAlso: INT 64"Pdisk",INT 66"Pdisk"
  124001. ----------65---------------------------------
  124002. INT 65 - PC-DRAFT - SECONDARY DISPLAY DRIVER
  124003. ???
  124004. Return: ???
  124005. Program: PC-DRAFT is a powerful CAD environment by rhv.
  124006. SeeAlso: INT 62"PC-DRAFT",INT 64"PC-DRAFT",INT 66"PC-DRAFT",INT 67"PC-DRAFT"
  124007. --------s-65---------------------------------
  124008. INT 65 - Ad Lib SOUND.COM - INTERFACE
  124009. SI = function number (also see separate entries below)
  124010. 0000h Init
  124011. 0002h RelTimeStart
  124012. 0003h SetState
  124013. 0004h GetState
  124014. 0005h Flush
  124015. 0006h SetMode
  124016. 0007h GetMode
  124017. 0008h SetRelVolume
  124018. 0009h SetTempo
  124019. 000Ah SetTranspose
  124020. 000Bh GetTranspose
  124021. 000Ch SetActVoice
  124022. 000Dh GetActVoice
  124023. 000Eh PlayNoteDel
  124024. 000Fh PlayNote
  124025. 0010h SetTimbre
  124026. 0011h SetPitch
  124027. 0012h SetTickBeat
  124028. 0013h NoteOn
  124029. 0014h NoteOff
  124030. 0015h Timbre
  124031. 0016h SetPitchBend
  124032. 0017h WaveForm
  124033. ES:BX -> arguments
  124034. InstallCheck: test for the signature block immediately preceding the
  124035. interrupt handler (see #03516)
  124036. SeeAlso: SI=8000h
  124037. Index: installation check;Ad Lib SOUND.COM
  124038. Format of AdLib signature block:
  124039. Offset Size Description (Table 03516)
  124040. 00h WORD version number
  124041. 02h 19 BYTEs "SOUND-DRIVER-AD-LIB"
  124042. 15h BYTE 01h
  124043. 16h BYTE 01h
  124044. 17h BYTE 00h
  124045. --------N-65----DX4147-----------------------
  124046. INT 65 U - NetSoft DOS-NET v1.20+ - ??? API
  124047. DX = 4147h
  124048. BH = 01h
  124049. BL = function number (00h-2Ah)
  124050. ???
  124051. Return: CF clear if successful
  124052. AX = ???
  124053. CF set on error
  124054. AX = error code (0001h=invalid function/subfunction)
  124055. Range: INT ?? to INT ??, selected by configuration option; actual interrupt
  124056. number and function number may be retrieved via INT 2A/AX=4147h
  124057. Note: this API is supported by CLIENT.COM, SERVER.COM, DOSNET.COM, and
  124058. ROUTER.COM
  124059. SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
  124060. --------N-65----DX4147-----------------------
  124061. INT 65 U - NetSoft DOS-NET v1.20+ - ??? API
  124062. DX = 4147h
  124063. BH = 02h
  124064. BL = function number (00h-05h)
  124065. ???
  124066. Return: CF clear if successful
  124067. AX = ???
  124068. CF set on error
  124069. AX = error code (0001h=invalid function/subfunction)
  124070. Range: INT ?? to INT ??, selected by configuration option; actual interrupt
  124071. number and function number may be retrieved via INT 2A/AX=4147h
  124072. Note: this API is supported by CLIENT.COM, SERVER.COM, DOSNET.COM, and
  124073. ROUTER.COM
  124074. SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
  124075. --------N-65----DX4147-----------------------
  124076. INT 65 U - NetSoft DOS-NET v1.20+ - ??? API
  124077. DX = 4147h
  124078. BH = 03h
  124079. BL = function number (00h-03h) (00h-04h for ROUTER.COM)
  124080. ???
  124081. Return: CF clear if successful
  124082. AX = ???
  124083. CF set on error
  124084. AX = error code
  124085. Range: INT ?? to INT ??, selected by configuration option; actual interrupt
  124086. number and function number may be retrieved via INT 2A/AX=4147h
  124087. Note: this API is supported by CLIENT.COM, SERVER.COM, DOSNET.COM, and
  124088. ROUTER.COM
  124089. SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
  124090. --------N-65----DX4147-----------------------
  124091. INT 65 U - NetSoft DOS-NET v1.20+ - ??? API
  124092. DX = 4147h
  124093. BH = 04h
  124094. BL = function number (00h-07h)
  124095. ???
  124096. Return: CF clear if successful
  124097. AX = ???
  124098. CF set on error
  124099. AX = error code
  124100. Range: INT ?? to INT ??, selected by configuration option; actual interrupt
  124101. number and function number may be retrieved via INT 2A/AX=4147h
  124102. Note: this API is supported by CLIENT.COM, SERVER.COM, and DOSNET.COM
  124103. SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
  124104. --------N-65----DX4147-----------------------
  124105. INT 65 U - NetSoft DOS-NET v1.20+ - ??? API
  124106. DX = 4147h
  124107. BH = 07h
  124108. BL = function number (00h-08h)
  124109. ???
  124110. Return: CF clear if successful
  124111. AX = ???
  124112. CF set on error
  124113. AX = error code (0001h=invalid function/subfunction)
  124114. Range: INT ?? to INT ??, selected by configuration option; actual interrupt
  124115. number and function number may be retrieved via INT 2A/AX=4147h
  124116. Note: this API is supported by CLIENT.COM, SERVER.COM, and DOSNET.COM
  124117. SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
  124118. --------N-65----DX4147-----------------------
  124119. INT 65 U - NetSoft DOS-NET v1.20+ - INSTALLATION CHECK???
  124120. DX = 4147h
  124121. BH = 80h
  124122. Return: CF set
  124123. AX = 0001h
  124124. Range: INT ?? to INT ??, selected by configuration option; actual interrupt
  124125. number and function number may be retrieved via INT 2A/AX=4147h
  124126. Note: this call is supported by CLIENT.COM, SERVER.COM, and ROUTER.COM
  124127. SeeAlso: DX=4147h,INT 2A/AX=4147h
  124128. --------N-65----DX4741-----------------------
  124129. INT 65 U - NetSoft DOS-NET v1.20+ - SPOOLER - ???
  124130. DX = 4741h
  124131. BH = 01h
  124132. AL = 02h
  124133. BL = function number (0Eh,0Fh)
  124134. AH = subfunction number
  124135. ???
  124136. Return: ???
  124137. Range: INT ?? to INT ??, selected by configuration option; actual interrupt
  124138. number may be retrieved via INT 2A/AX=4147h
  124139. SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
  124140. --------N-65----DX4741-----------------------
  124141. INT 65 U - NetSoft DOS-NET v1.20+ - PRNREDIR - ???
  124142. DX = 4741h
  124143. BH = 01h
  124144. AL = 03h
  124145. BL = function number (0Eh,0Fh)
  124146. AH = subfunction number
  124147. ???
  124148. Return: ???
  124149. Range: INT ?? to INT ??, selected by configuration option; actual interrupt
  124150. number may be retrieved via INT 2A/AX=4147h
  124151. SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
  124152. --------N-65----DX4741-----------------------
  124153. INT 65 U - NetSoft DOS-NET v1.20+ - PRNREDIR - ???
  124154. DX = 4741h
  124155. BH = 01h
  124156. AL = 04h
  124157. BL = function number (0Eh,0Fh)
  124158. AH = subfunction number
  124159. ???
  124160. Return: ???
  124161. Range: INT ?? to INT ??, selected by configuration option; actual interrupt
  124162. number may be retrieved via INT 2A/AX=4147h
  124163. SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
  124164. --------N-65----DX4741-----------------------
  124165. INT 65 U - NetSoft DOS-NET v1.20+ - NETBIOS - ???
  124166. DX = 4741h
  124167. BH = 01h
  124168. AL = 07h
  124169. BL = function number (0Eh,0Fh)
  124170. AH = subfunction number
  124171. ???
  124172. Return: ???
  124173. Range: INT ?? to INT ??, selected by configuration option; actual interrupt
  124174. number may be retrieved via INT 2A/AX=4147h
  124175. SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
  124176. --------N-65----DX4741-----------------------
  124177. INT 65 U - NetSoft DOS-NET v1.20+ - MACTEST - ???
  124178. DX = 4741h
  124179. BH = 01h
  124180. AL = 08h
  124181. BL = function number (0Eh,0Fh)
  124182. AH = subfunction number
  124183. ???
  124184. Return: ???
  124185. Range: INT ?? to INT ??, selected by configuration option; actual interrupt
  124186. number may be retrieved via INT 2A/AX=4147h
  124187. SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
  124188. --------N-65----DX4741-----------------------
  124189. INT 65 U - NetSoft DOS-NET v1.20+ - Physical Layer - ???
  124190. DX = 4741h
  124191. BH = 02h
  124192. BL = function number (01h-04h)
  124193. ???
  124194. Return: ???
  124195. ---function 02h---
  124196. DS:SI -> ??? data area
  124197. Range: INT ?? to INT ??, selected by configuration option; actual interrupt
  124198. number may be retrieved via INT 2A/AX=4147h
  124199. Note: this API is supported by PARALLEL.COM, SERIAL.COM, ARCNET.COM,
  124200. ETHERNET.COM, NDIS.COM, ODI.COM, SMC.COM, and FTP.COM
  124201. SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
  124202. --------N-65----DX4741-----------------------
  124203. INT 65 U - NetSoft DOS-NET v1.20+ - SPOOLER.COM - ???
  124204. DX = 4741h
  124205. BH = 05h
  124206. BL = function number (00h,01h)
  124207. Return: CF clear
  124208. AL = status code (00h=successful)
  124209. Range: INT ?? to INT ??, selected by configuration option; actual interrupt
  124210. number may be retrieved via INT 2A/AX=4147h
  124211. SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
  124212. --------N-65----DX4741-----------------------
  124213. INT 65 U - NetSoft DOS-NET v1.20+ - PRNREDIR.COM - ???
  124214. DX = 4741h
  124215. BH = 06h
  124216. BL = function number (00h-04h)
  124217. ???
  124218. Return: ???
  124219. Range: INT ?? to INT ??, selected by configuration option; actual interrupt
  124220. number may be retrieved via INT 2A/AX=4147h
  124221. SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
  124222. --------N-65----DX4741-----------------------
  124223. INT 65 U - NetSoft DOS-NET v1.20+ - COMREDIR.COM - ???
  124224. DX = 4741h
  124225. BH = 08h
  124226. BL = function number (00h-01h)
  124227. ???
  124228. Return: ???
  124229. Range: INT ?? to INT ??, selected by configuration option; actual interrupt
  124230. number may be retrieved via INT 2A/AX=4147h
  124231. SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
  124232. --------N-65----DX4741-----------------------
  124233. INT 65 U - NetSoft DOS-NET v1.20+ - FTP.COM - ???
  124234. DX = 4741h
  124235. BX = 8010h
  124236. AL = instance number???
  124237. Return: AX = 0008h if AL matches internal variable (call chained otherwise)
  124238. Range: INT ?? to INT ??, selected by configuration option; actual interrupt
  124239. number may be retrieved via INT 2A/AX=4147h
  124240. SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
  124241. --------s-65----SI0000-----------------------
  124242. INT 65 - Ad Lib SOUND.COM - INITIALIZE (RESET)
  124243. SI = 0000h
  124244. --------s-65----SI0003-----------------------
  124245. INT 65 - Ad Lib SOUND.COM - SET STATE
  124246. SI = 0003h
  124247. ES:BX -> WORD new state (0000h disabled, 0001h enabled)
  124248. SeeAlso: SI=0004h
  124249. --------s-65----SI0004-----------------------
  124250. INT 65 - Ad Lib SOUND.COM - GET STATE
  124251. SI = 0004h
  124252. Return: AX = status
  124253. 0000h all done playing sounds
  124254. else still playing sounds
  124255. SeeAlso: SI=0003h
  124256. --------s-65----SI0006-----------------------
  124257. INT 65 - Ad Lib SOUND.COM - SET MODE
  124258. SI = 0006h
  124259. ES:BX -> WORD new mode (0000h melodic, 0001h percussive)
  124260. SeeAlso: SI=0007h
  124261. --------s-65----SI0007-----------------------
  124262. INT 65 - Ad Lib SOUND.COM - GET MODE
  124263. SI = 0007h
  124264. Return: AX = mode
  124265. 0000h melodic
  124266. 0001h percussive
  124267. SeeAlso: SI=0006h
  124268. --------s-65----SI000C-----------------------
  124269. INT 65 - Ad Lib SOUND.COM - SET ACTIVE VOICE
  124270. SI = 000Ch
  124271. ES:BX -> WORD voice = 0000h to 0008h
  124272. SeeAlso: SI=000Dh
  124273. --------s-65----SI000D-----------------------
  124274. INT 65 - Ad Lib SOUND.COM - GET ACTIVE VOICE
  124275. SI = 000Dh
  124276. Return: AX = voice (0000h to 0008h)
  124277. SeeAlso: SI=000Ch
  124278. --------s-65----SI8000-----------------------
  124279. INT 65 u - Media Vision FM.COM v4.1a+ - GET INTERNAL DATA STRUCTURES
  124280. SI = 8000h
  124281. Return: DX:AX -> internal data structures
  124282. Program: FM.COM is an Ad Lib SOUND.COM-compatible driver for Media Vision's
  124283. Pro Audio Spectrum sound boards
  124284. SeeAlso: SI=8001h
  124285. --------s-65----SI8001-----------------------
  124286. INT 65 u - Media Vision FM.COM v4.1a+ - GET VOICE COUNT
  124287. SI = 8001h
  124288. Return: AX = ???
  124289. DX = number of voices??? (09h or 0Bh)
  124290. SeeAlso: SI=8000h
  124291. --------s-65----SI8002-----------------------
  124292. INT 65 - Media Vision FM.COM v4.1a+ - START BACKGROUND FM SOUNDS
  124293. SI = 8002h
  124294. SeeAlso: SI=8003h
  124295. --------s-65----SI8003-----------------------
  124296. INT 65 - Media Vision FM.COM v4.1a+ - STOP BACKGROUND FM SOUNDS
  124297. SI = 8003h
  124298. SeeAlso: SI=8002h
  124299. --------s-65----SI8004-----------------------
  124300. INT 65 U - Media Vision FM.COM v4.1a+ - GET ???
  124301. SI = 8004h
  124302. Return: AX = ??? (0280h)
  124303. DX = ??? (01A0h)
  124304. --------s-65----SI8005-----------------------
  124305. INT 65 U - Media Vision FM.COM v4.1a+ - ???
  124306. SI = 8005h
  124307. ???
  124308. Return: ???
  124309. SeeAlso: SI=8000h
  124310. --------S-65---------------------------------
  124311. INT 65 U - EZRECV v1.0 - API
  124312. AX = function
  124313. 0000h ???
  124314. Return: AX = ??? or FFFFh
  124315. 0001h ???
  124316. Return: AX = status (0000h or 0001h)
  124317. 0002h ???
  124318. Return: AX = status (0000h or 0001h)
  124319. 0003h set ??? to 0001h
  124320. Return: AX = 0000h
  124321. 0004h ???
  124322. Return: AX = ???
  124323. Return: BH = COM port being used
  124324. BL = speed???
  124325. CH = ???
  124326. CL = ???
  124327. DX = ???
  124328. DS = ???
  124329. ES = EZRECV data segment
  124330. Program: EZRECV is a background Zmodem file receiver by Express Consulting
  124331. --------*-66---------------------------------
  124332. INT 66 - reserved for user interrupt
  124333. --------d-66---------------------------------
  124334. INT 66 - Adaptec controllers - DRIVE 1 DATA
  124335. Desc: this vector stores the third four bytes of the parameter table for
  124336. hard disk 1
  124337. SeeAlso: INT 64"Adaptec",INT 65"Adaptec",INT 67"Adaptec"
  124338. --------b-66---------------------------------
  124339. INT 66 - TI Professional PC - SYSTEM INFORMATION (NOT A VECTOR!)
  124340. Desc: the low word of this vector contains the system memory size in
  124341. paragraphs; the third byte contains the number of outstanding
  124342. interrupt requests, and the fourth byte contains a description
  124343. of the installed drive types (see #03517)
  124344. SeeAlso: INT 60"TI Professional PC",INT 67"TI Professional"
  124345. Bitfields for TI Professional drive type information:
  124346. Bit(s) Description (Table 03517)
  124347. 7 floppy drive D: has 80 tracks
  124348. 6 floppy drive D: is double-sided
  124349. 5 floppy drive C: has 80 tracks
  124350. 4 floppy drive C: is double-sided
  124351. 3 floppy drive B: has 80 tracks
  124352. 2 floppy drive B: is double-sided
  124353. 1 floppy drive A: has 80 tracks
  124354. 0 floppy drive A: is double-sided
  124355. --------h-66---------------------------------
  124356. INT 66 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
  124357. SeeAlso: INT 64"DG10"
  124358. --------N-66---------------------------------
  124359. INT 66 C - Nanosoft, Inc. TurboNET - NETWORK PROCESSING ???
  124360. Program: TurboNET is a NetBIOS-based file redirector and server
  124361. Note: hooked but not used (IRET) by both redirector and server; called from
  124362. server's INT 28 handler
  124363. SeeAlso: INT 2F/AX=8100h
  124364. --------d-66---------------------------------
  124365. INT 66 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
  124366. SeeAlso: INT 64"Pdisk",INT 67"Pdisk"
  124367. --------W-66---------------------------------
  124368. INT 66 - Microsoft Windows VITD.386 Virtual Interval Timer
  124369. Note: This Windows 3.x Virtual Device Driver implements a virtual timer
  124370. which will expire and call INT 66. This timer can be used to
  124371. calculate elapsed execution time etc.
  124372. --------K-66---------------------------------
  124373. INT 66 - Newkey v5.4 - INSTALLATION VECTOR
  124374. Return: immediately (IRET)
  124375. Program: Newkey is a shareware keyboard macro program by Frank A. Bell
  124376. InstallCheck: test for the signature bytes FDh FCh FFh FEh at offset 03h in
  124377. the interrupt handlers segment
  124378. Range: INT 60h to INT 67h, selected by scanning for highest unused vector
  124379. BUG: the code obviously intends to use INT F0-FE, INT 70-77, and INT 68-6F
  124380. before falling back to INT 60-67, but only uses the last of these
  124381. ranges in v5.4
  124382. SeeAlso: INT 2F/AX=E300h
  124383. Index: installation checks;Newkey|Newkey;installation check
  124384. ----------66---------------------------------
  124385. INT 66 - PC-DRAFT - TABLET/DIGITIZER DRIVER
  124386. ???
  124387. Return: ???
  124388. Program: PC-DRAFT is a powerful CAD environment by rhv.
  124389. SeeAlso: INT 62"PC-DRAFT",INT 64"PC-DRAFT",INT 65"PC-DRAFT",INT 67"PC-DRAFT"
  124390. --------U-66---------------------------------
  124391. INT 66 - PC-Magazin - INCA
  124392. details not yet availble
  124393. Program: INCA is a utility from PC-Magazin (the German edition of PC Magazine)
  124394. issue 51-52/85.
  124395. SeeAlso: INT 61"SWAPx"
  124396. --------F-6601-------------------------------
  124397. INT 66 - BitFax Scheduler - SET MODE???
  124398. AH = 01h
  124399. SeeAlso: AH=02h
  124400. --------F-6602-------------------------------
  124401. INT 66 - BitFax Scheduler - SET MODE???
  124402. AH = 02h
  124403. SeeAlso: AH=01h
  124404. --------F-6603-------------------------------
  124405. INT 66 - BitFax Scheduler - SCHEDULE FAX TRANSMISSIONS
  124406. AH = 03h
  124407. ???
  124408. Return: ???
  124409. SeeAlso: AH=05h
  124410. --------F-6604-------------------------------
  124411. INT 66 - BitFax Scheduler - GET STATUS???
  124412. AH = 04h
  124413. Return: AX = ??? (0000h or 0001h)
  124414. DX = BitSched version??? (for versions >= 3.00)
  124415. 9796h (ver. 3.00)
  124416. 97E6h (ver. 3.02)
  124417. 92D0h (ver. 3.04.06)
  124418. 9510h (ver. 3.06.02)
  124419. SeeAlso: AH=06h,AX=3345h,INT 2F/AX=8000h"FaxBIOS"
  124420. --------F-6605-------------------------------
  124421. INT 66 - BitFax Scheduler - CONVERT FILE AND SEND FAX
  124422. AH = 05h
  124423. BX:CX -> command block (see #03518)
  124424. ???
  124425. Return: ???
  124426. SeeAlso: AH=03h
  124427. Format of BitFax command block:
  124428. Offset Size Description (Table 03518)
  124429. 00h 18 BYTEs configuration bytes???
  124430. 12h BYTEs ASCIZ temporary file name to place converted fax
  124431. 52h BYTEs ASCIZ directory containing BitFax executables
  124432. 92h BYTEs ASCIZ telephone number
  124433. C2h BYTE cover page control (00h don't send, 01h do send cover page)
  124434. C3h 15 BYTEs configuration bytes???
  124435. E2h BYTEs ASCIZ path of BITFAX.TRA file (containing additional
  124436. configuration information???)
  124437. 122h BYTEs configuration bytes???
  124438. 12Ch BYTE 00h don't send cover page
  124439. 01h send cover page
  124440. 12Dh 7 BYTEs configuration bytes???
  124441. 134h BYTEs ASCIZ path of file to send
  124442. 174h BYTEs more configuration bytes???
  124443. ???
  124444. --------F-6606-------------------------------
  124445. INT 66 - BitFax Scheduler - SET MODE???
  124446. AH = 06h
  124447. Return: DX = BitSched version??? (same as AH=04h)
  124448. SeeAlso: AH=04h
  124449. --------s-660688-----------------------------
  124450. INT 66 - IBMSND driver, DIGPAK - PLAY 8-BIT DIGITIZED SOUND
  124451. AX = 0688h
  124452. DS:SI -> SNDSTRUC (see #03519)
  124453. Return: ???
  124454. Program: The IBMSND driver is part of John W. Ratcliff's
  124455. The IBM Digitized Sound Package
  124456. DIGPAK is a set of digitized sound drivers written by
  124457. John W. Ratcliff, The Audio Solution, Inc.
  124458. InstallCheck: test for a valid signature string six bytes prior to the
  124459. interrupt handler; this string may be either "KERN" or "MIDI" (in
  124460. the latter case, call AX=0701h to determine whether IBMSND is
  124461. installed)
  124462. SeeAlso: AX=068Bh,AX=068Fh,AX=0701h
  124463. Format of IBMSND driver SNDSTRUC:
  124464. Offset Size Description (Table 03519)
  124465. 00h DWORD -> audio data
  124466. 04h WORD length of audio data in bytes
  124467. 06h DWORD -> playback status flag
  124468. 0Ah WORD playback frequency
  124469. --------s-660689-----------------------------
  124470. INT 66 - IBMSND driver, DIGPAK - REPORT SOUND DRIVER STATUS
  124471. AX = 0689h
  124472. Return: AX = status
  124473. 0000h no sound playing
  124474. 0001h sound effect is currently playing
  124475. ---DIGPAK---
  124476. BX = version number (v3.1+)
  124477. DX = looping status
  124478. 0000h no sound looping
  124479. 0001h sound effect is currently looping
  124480. SeeAlso: AX=0688h,AX=068Bh,AX=068Ch
  124481. Index: version check;DIGPAK
  124482. --------s-66068A-----------------------------
  124483. INT 66 - IBMSND driver, DIGPAK - PREFORMAT SOUND
  124484. AX = 068Ah
  124485. DS:SI -> SNDSTRUC (see #03519)
  124486. Desc: convert audio data into output hardware format
  124487. SeeAlso: AX=068Bh
  124488. --------s-66068B-----------------------------
  124489. INT 66 - IBMSND driver, DIGPAK - PLAY PREFORMATTED SOUND
  124490. AX = 068Bh
  124491. DS:SI -> SNDSTRUC (see #03519)
  124492. Return: AX = ???
  124493. SeeAlso: AX=0688h,AX=068Ah,AX=068Fh
  124494. --------s-66068C-----------------------------
  124495. INT 66 - IBMSND driver, DIGPAK - REPORT AUDIO DRIVER CAPABILITIES
  124496. AX = 068Ch
  124497. Return: AX = capabilities (see #03520)
  124498. DX = playback rate if fixed-frequency playback
  124499. ---DIGPAK---
  124500. BX:CX -> ASCIZ ID string
  124501. SeeAlso: AX=0689h,AX=068Dh
  124502. Bitfields for IBMSND driver capabilities:
  124503. Bit(s) Description (Table 03520)
  124504. 0 can play audio in background
  124505. 1 data is massaged for output device
  124506. 2 driver plays at fixed frequency, resampling input data to fit
  124507. 3 driver uses timer interrupt
  124508. ---DIGPAK---
  124509. 4 device supports timer sharing
  124510. 5 supports looped sounds and pending
  124511. 6 supports stereo panning
  124512. 7 supports 8-bit PCM stereo playback
  124513. 8 supports audio recording
  124514. 9 supports DMA bakcfilling
  124515. --------s-66068D-----------------------------
  124516. INT 66 - IBMSND driver, DIGPAK - REPORT CURRENT SAMPLE ADDRESS
  124517. AX = 068Dh
  124518. Return: AX = current playback address
  124519. Desc: determine what point in the audio data the playback has reached, for
  124520. synchronization with video or animation effects
  124521. Notes: this function applies to background playback only
  124522. the reported address may be an approximation rather than the exact
  124523. address
  124524. SeeAlso: AX=068Ch,AX=0691h
  124525. --------s-66068E-----------------------------
  124526. INT 66 - IBMSND driver, DIGPAK - SET CALLBACK ADDRESS
  124527. AX = 068Eh
  124528. BX:DX -> callback function
  124529. 0000h:0000h to disable callback
  124530. DS = value to load into DS when calling the callback function
  124531. Desc: specify the function to be called when playback of a sound effect is
  124532. completed
  124533. Note: the callback function will typically be called during a hardware
  124534. interrupt, so all the usual precautions should be taken except for
  124535. preserving registers
  124536. SeeAlso: AX=0691h
  124537. --------s-66068F-----------------------------
  124538. INT 66 - IBMSND driver, DIGPAK - STOP CURRENT SOUND
  124539. AX = 068Fh
  124540. Desc: cause any currently-playing sound effect to be terminated
  124541. SeeAlso: AX=0688h,AX=068Bh
  124542. --------s-660690-----------------------------
  124543. INT 66 - IBMSND driver, DIGPAK - "SetAudioHardware" - SET UP HARDWARE INFO
  124544. AX = 0690h
  124545. BX = IRQ
  124546. CX = base address
  124547. DX = other setup value (device-dependent???)
  124548. --------s-660691-----------------------------
  124549. INT 66 - IBMSND driver, DIGPAK - REPORT CALLBACK ADDRESS
  124550. AX = 0691h
  124551. Return: AX:DX -> current callback function
  124552. BX = original caller's DS register
  124553. Program: The IBMSND driver is part of John W. Ratcliff's
  124554. The IBM Digitized Sound Package
  124555. DIGPAK is a set of digitized sound drivers written by
  124556. John W. Ratcliff, The Audio Solution, Inc.
  124557. SeeAlso: AX=068Eh
  124558. --------s-660693-----------------------------
  124559. INT 66 - DIGPAK - SET TIMER DIVISOR RATE
  124560. AX = 0693h
  124561. DX = rate
  124562. Program: DIGPAK is a set of digitized sound drivers written by
  124563. John W. Ratcliff, The Audio Solution, Inc.
  124564. --------s-660694-----------------------------
  124565. INT 66 - DIGPAK - PLAY PREFORMATTED DATA
  124566. AX = 0694h
  124567. DS:SI -> Sound Data structure (see #03519)
  124568. Return: AX = status???
  124569. --------s-660695-----------------------------
  124570. INT 66 - DIGPAK - POST AUDIO PENDING
  124571. AX = 0695h
  124572. DS:SI -> Sound Data structure (***)
  124573. Return: AX = status
  124574. 0000h sound started playing
  124575. 0001h sound was posted as pending to play
  124576. 0002h sound effect already pending, this one not posted
  124577. SeeAlso: AX=0696h
  124578. --------s-660696-----------------------------
  124579. INT 66 - DIGPAK - GET AUDIO PENDING STATUS
  124580. AX = 0696h
  124581. Return: AX = status
  124582. 0000h no sound is playing
  124583. 0001h sound playing, and a sound is pending
  124584. 0002h sound playing, no sound pending
  124585. SeeAlso: AX=0695h
  124586. --------s-660697-----------------------------
  124587. INT 66 - DIGPAK - SET STEREO PANNING
  124588. AX = 0697h
  124589. DX = panning position (0 = right, 127 = left)
  124590. Return: AX = status
  124591. 0000h command ignored (not supported)
  124592. 0001h panning set
  124593. --------s-660698-----------------------------
  124594. INT 66 - DIGPAK - SET PLAY MODE
  124595. AX = 0698h
  124596. DX = playback mode
  124597. 0000h 8-bit PCM
  124598. 0001h 8-bit stereo PCM
  124599. 0002h 16-bit PCM
  124600. 0003h 16-bit stereo PCM
  124601. Return: AX = status
  124602. 0000h command ignored
  124603. 0001h mode set
  124604. --------s-660699-----------------------------
  124605. INT 66 - DIGPAK - GET ADDRESSES
  124606. AX = 0699h
  124607. Return: AX = pending address
  124608. BX = semaphore address
  124609. --------s-66069A-----------------------------
  124610. INT 66 - DIGPAK - SET RECORD MODE
  124611. AX = 069Ah
  124612. DX = recording mode
  124613. 0000h turn audio recording on
  124614. 0001h turn audio recording off
  124615. Return: AX = status
  124616. 0000h command ignored
  124617. 0001h audio recording mode set
  124618. --------s-66069B-----------------------------
  124619. INT 66 - DIGPAK - STOP NEXT LOOP
  124620. AX = 069Bh
  124621. --------s-66069C-----------------------------
  124622. INT 66 - DIGPAK - SET DMA BACKFILL MODE
  124623. AX = 069Ch
  124624. DX = mode
  124625. 0000h turn backfill mode on
  124626. 0001h turn backfill mode off
  124627. Return: AX = status
  124628. 0000h command ignored
  124629. 0001h backfill mode set
  124630. SeeAlso: AX=069Dh,AX=069Eh
  124631. --------s-66069D-----------------------------
  124632. INT 66 - DIGPAK - REPORT DMA COUNTER
  124633. AX = 069Dh
  124634. Return: AX = DMA counter
  124635. SeeAlso: AX=069Eh
  124636. --------s-66069E-----------------------------
  124637. INT 66 - DIGPAK - VERIFY DMA BLOCK
  124638. AX = 069Eh
  124639. CX = length of buffer
  124640. ES:BX -> buffer containing sound data
  124641. Return: AX = status
  124642. 0000h block crosses 64K bounadary
  124643. 0001h block is OK
  124644. SeeAlso: AX=069Dh
  124645. --------s-66069F-----------------------------
  124646. INT 66 - DIGPAK - SET PCM VOLUME
  124647. AX = 069Fh
  124648. BX = left channel volume (0-100)
  124649. CX = right channel volume (0-100)
  124650. Return: AX = status
  124651. 0000h command ignored
  124652. 0001h volume set
  124653. --------s-6606A0-----------------------------
  124654. INT 66 - DIGPAK - SET DPMI MODE
  124655. AX = 06A0h
  124656. DX = mode
  124657. 0000h 32-bit register addressing on
  124658. 0001h 32-bit register addressing off
  124659. SeeAlso: INT 31/AX=0400h
  124660. --------s-660700-----------------------------
  124661. INT 66 - MIDPAK - UNINSTALL
  124662. AX = 0700h
  124663. Note: this function should NOT be called by applications
  124664. Program: MIDPAK is a set of MIDI sound drivers developed by Miles Design
  124665. Incorporated.
  124666. --------s-660701-----------------------------
  124667. INT 66 - IBM Digitized Sound Package MIDI driver - GET DIGITIZED SOUND CAPABIL
  124668. AX = 0701h
  124669. Return: AX = digitized sound capabilities
  124670. 0000h if digitized sound driver (functions 06xxh) not available
  124671. InstallCheck: test for the signature "MIDI" six bytes before the interrupt
  124672. handler
  124673. Note: also supported by MIDPAK, the successor to the Digitized Sound
  124674. Package's MIDI driver
  124675. SeeAlso: AX=0688h
  124676. --------s-660702-----------------------------
  124677. INT 66 - MIDPAK - PLAY SEQUENCE
  124678. AX = 0702h
  124679. BX = Sequence number
  124680. Return: AX = status
  124681. 0000h Sequence is being played
  124682. 0001h Sequence not available
  124683. SeeAlso: AX=0703h,AX=0705h
  124684. --------s-660703-----------------------------
  124685. INT 66 - MIDPAK - SEGUE SEQUENCE
  124686. AX = 0703h
  124687. BX = sequence number
  124688. CX = activation code (FFFFh is next trigger)
  124689. Return: ???
  124690. --------s-660704-----------------------------
  124691. INT 66 - MIDPAK - REGISTER XMIDI
  124692. AX = 0704h
  124693. CX:BX -> XMIDI sequence data
  124694. DI:SI = length of XMIDI data
  124695. Return: AX = status
  124696. 0000h unable to register XMIDI data
  124697. 0001h XMIDI file registered resident
  124698. 0002h XMIDI file was registered to the application
  124699. --------s-660705-----------------------------
  124700. INT 66 - MIDPAK - STOP MIDI
  124701. AX = 0705h
  124702. SeeAlso: AX=0702h,AX=0709h
  124703. --------s-660706-----------------------------
  124704. INT 66 O - MIDPAK - REMAP CHANNEL
  124705. AX = 0706h
  124706. BX = sequence
  124707. CX = physical
  124708. --------s-660707-----------------------------
  124709. INT 66 - MIDPAK - REPORT TRIGGER EVENT COUNTER
  124710. AX = 0707h
  124711. Return: AX = count of number of callbacks since last reset
  124712. DX = ID
  124713. SeeAlso: AX=0708h,AX=0713h
  124714. --------s-660708-----------------------------
  124715. INT 66 - MIDPAK - RESET EVENT TRIGGER COUNTER
  124716. AX = 0708h
  124717. SeeAlso: AX=0707h,AX=0713h
  124718. --------s-660709-----------------------------
  124719. INT 66 O - MIDPAK - MIDI SLEEP
  124720. AX = 0709h
  124721. SeeAlso: AX=070Ah
  124722. --------s-66070A-----------------------------
  124723. INT 66 O - MIDPAK - MIDI AWAKE
  124724. AX = 070Ah
  124725. SeeAlso: AX=0709h
  124726. --------s-66070B-----------------------------
  124727. INT 66 - MIDPAK - RESUME PLAYING
  124728. AX = 070Bh
  124729. SeeAlso: AX=070Ch
  124730. --------s-66070C-----------------------------
  124731. INT 66 - MIDPAK - GET SEQUENCE STATUS
  124732. AX = 070Ch
  124733. Return: AX = status
  124734. 0000h sequence stopped
  124735. 0001h sequence playing
  124736. 0002h sequence done
  124737. SeeAlso: AX=070Bh
  124738. --------s-66070D-----------------------------
  124739. INT 66 - MIDPAK - REGISTER XMIDI FILE
  124740. AX = 070Dh
  124741. CX:BX -> ASCII filename
  124742. SeeAlso: AX=0704h,AX=0710h
  124743. --------s-66070E-----------------------------
  124744. INT 66 - MIDPAK - GET RELATIVE VOLUME
  124745. AX = 070Eh
  124746. Return: AX = current volume
  124747. SeeAlso: AX=070Fh
  124748. --------s-66070F-----------------------------
  124749. INT 66 - MIDPAK - SET RELATIVE VOLUME
  124750. AX = 070Fh
  124751. BX = new volume
  124752. CX = time
  124753. SeeAlso: AX=070Eh
  124754. --------s-660710-----------------------------
  124755. INT 66 - MIDPAK - LOAD MIDPAK DRIVER
  124756. AX = 0710h
  124757. BX = segment of .ADV driver
  124758. CX = 0000h (offset must be zero)
  124759. DX:SI -> .AD driver
  124760. SeeAlso: AX=070Dh
  124761. --------s-660711-----------------------------
  124762. INT 66 - MIDPAK - POLL MIDPAK
  124763. AX = 0711h
  124764. Return: AX = ???
  124765. ???
  124766. SeeAlso: AX=0712h
  124767. --------s-660712-----------------------------
  124768. INT 66 - MIDPAK - GET MIDI CLOCK
  124769. AX = 0712h
  124770. Return: AX:DX = clock counter
  124771. CX:BX = clock address
  124772. SeeAlso: AX=0711h,AX=0713h
  124773. --------s-660713-----------------------------
  124774. INT 66 - MIDPAK - GET TRIGGER COUNT ADDRESS
  124775. AX = 0713h
  124776. Return: AX:DX -> trigger counter address
  124777. SeeAlso: AX=0707h,AX=0712h,AX=0714h
  124778. --------s-660714-----------------------------
  124779. INT 66 - MIDPAK - GET EVENT ID ADDRESS
  124780. AX = 0714h
  124781. Return: AX:DX -> event ID
  124782. SeeAlso: AX=0713h,AX=0716h
  124783. --------s-660716-----------------------------
  124784. INT 66 - MIDPAK - REPORT SEQUENCE NUMBER
  124785. AX = 0716h
  124786. Return: AX = current sequence number
  124787. SeeAlso: AX=0702h
  124788. Program: MIDPAK is a set of MIDI sound drivers developed by Miles Design
  124789. Incorporated.
  124790. --------n-6610-------------------------------
  124791. INT 66 - PenDOS - TDMOUSE.EXE - GET ???
  124792. AH = 10h
  124793. Return: CF clear
  124794. AX = 0000h
  124795. BX = ??? (0012h)
  124796. DX:CX -> TDMOUSE INT 33 handler (IRET to hide mouse from other apps)
  124797. Program: TDMOUSE is a PenDOS hardware driver which allows a mouse to emulate
  124798. a touchpad; PenDOS is a set of programs by Communication Intelligence
  124799. Corporation which makes applications pen-aware
  124800. --------n-6611-------------------------------
  124801. INT 66 - PenDOS - TDMOUSE.EXE - SET ??? HANDLER
  124802. AH = 11h
  124803. DX:BX -> new handler for ???
  124804. Return: CF clear
  124805. AX = 0000h
  124806. DX:BX -> old handler for ??? (points at RETF by default)
  124807. --------n-6612-------------------------------
  124808. INT 66 - PenDOS - TDMOUSE.EXE - INITIALIZE
  124809. AH = 12h
  124810. Return: CF clear
  124811. AX = 0000h
  124812. Note: this function calls the old mouse handler with functions 0000h, 0002h,
  124813. 0007h, 0008h, 000Fh, 0004h, and 000Ch (in that order)
  124814. SeeAlso: AH=13h
  124815. --------n-6613-------------------------------
  124816. INT 66 - PenDOS - TDMOUSE.EXE - SHUTDOWN???
  124817. AH = 13h
  124818. Return: CF clear
  124819. other register as returned by INT 33/AX=0000h
  124820. SeeAlso: AH=12h
  124821. --------n-6614-------------------------------
  124822. INT 66 - PenDOS - TDMOUSE.EXE - ???
  124823. AH = 14h
  124824. BX = ???
  124825. CX = ???
  124826. Return: CF clear
  124827. AX = 0000h
  124828. --------n-6615-------------------------------
  124829. INT 66 - PenDOS - TDMOUSE.EXE - SET ??? HANDLER
  124830. AH = 15h
  124831. DX:BX -> new handler for ???
  124832. Return: CF clear
  124833. AX = 0000h
  124834. DX:BX -> old handler (points at RETF by default)
  124835. --------n-6616-------------------------------
  124836. INT 66 - PenDOS - TDMOUSE.EXE - UNUSED FUNCTIONS
  124837. AH = 16h to 1Fh
  124838. Return: CF set
  124839. Program: TDMOUSE is a PenDOS hardware driver which allows a mouse to emulate
  124840. a touchpad; PenDOS is a set of programs by Communication Intelligence
  124841. Corporation which makes applications pen-aware
  124842. --------n-6621-------------------------------
  124843. INT 66 - PenDOS - PINK - ???
  124844. AH = 21h
  124845. Return: CF clear if successful
  124846. CF set on error
  124847. Note: this function sets ??? flag or counter (also set by AH=2Fh) to FFFFh
  124848. --------n-6622-------------------------------
  124849. INT 66 - PenDOS - PINK - ???
  124850. AH = 22h
  124851. DX:BX -> ???
  124852. CL = ???
  124853. Return: CF clear if successful
  124854. CF set on error
  124855. ???
  124856. SeeAlso: AH=24h
  124857. --------n-6623-------------------------------
  124858. INT 66 - PenDOS - PINK - ???
  124859. AH = 23h
  124860. ???
  124861. Return: CF clear if successful
  124862. CF set on error
  124863. ???
  124864. --------n-6624-------------------------------
  124865. INT 66 - PenDOS - PINK - ???
  124866. AH = 24h
  124867. DX:BX -> ???
  124868. CL = ???
  124869. Return: CF clear if successful
  124870. CF set on error
  124871. ???
  124872. SeeAlso: AH=22h
  124873. --------n-6625-------------------------------
  124874. INT 66 - PenDOS - PINK - ???
  124875. AH = 25h
  124876. CL = ??? (NOP if 00h)
  124877. ???
  124878. Return: CF clear if successful
  124879. CF set on error
  124880. ???
  124881. --------n-6627-------------------------------
  124882. INT 66 - PenDOS - PINK - ???
  124883. AH = 27h
  124884. BL = ???
  124885. BH = ???
  124886. CL = ??? (0-3)
  124887. DL = ??? (> BL)
  124888. DH = ??? (> BH)
  124889. Return: ???
  124890. --------n-6628-------------------------------
  124891. INT 66 - PenDOS - PINK - ???
  124892. AH = 28h
  124893. ???
  124894. Return: CF clear if successful
  124895. CF set on error
  124896. ???
  124897. Note: this function sets ??? flag or counter (also set by AH=2Fh) to FFFFh
  124898. --------n-6629-------------------------------
  124899. INT 66 - PenDOS - PINK - ???
  124900. AH = 29h
  124901. ???
  124902. Return: ???
  124903. Note: this function sets ??? flag or counter (also set by AH=2Fh) to FFFFh
  124904. --------n-662A-------------------------------
  124905. INT 66 - PenDOS - PINK - ???
  124906. AH = 2Ah
  124907. DL = ??? (nonzero)
  124908. DH = ??? (nonzero)
  124909. Return: CF clear if successful
  124910. CF set on error
  124911. ???
  124912. --------n-662B-------------------------------
  124913. INT 66 - PenDOS - PINK - ???
  124914. AH = 2Bh
  124915. ???
  124916. Return: CF clear if successful
  124917. CF set on error
  124918. ???
  124919. --------n-662F-------------------------------
  124920. INT 66 - PenDOS - PINK - INITIALIZE
  124921. AH = 2Fh
  124922. ???
  124923. Return: AX = status
  124924. 0000h failed
  124925. FFFFh successful
  124926. ???
  124927. Note: this function sets ??? flag or counter to FFFFh and hooks INT 1Ch
  124928. --------F-663345-----------------------------
  124929. INT 66 - BitFax Scheduler - REMOVE TSR FROM MEMORY
  124930. AX = 3345h
  124931. Return: AX = FFFFh error removing TSR
  124932. InstallCheck: test for the signature "BitFax Scheduler" beginning two bytes
  124933. past the interrupt handler
  124934. SeeAlso: AH=04h,INT 2F/AH=2Ah,INT 2F/AX=CB00h
  124935. Index: installation check;BitFax Scheduler
  124936. --------n-6640-------------------------------
  124937. INT 66 - PenDOS - PKEYUS - GET VERSION
  124938. AH = 40h
  124939. Return: CF clear
  124940. AX = 0000h
  124941. BH = major version (02h for version bundled with IBM DOS 6.1)
  124942. BL = minor version (00h for version bundled with IBM DOS 6.1)
  124943. DL = ??? (4Eh)
  124944. DH = ??? (0Eh)
  124945. --------n-6641-------------------------------
  124946. INT 66 - PenDOS - PKEYUS - SET ???
  124947. AH = 41h
  124948. BX = ???
  124949. CL = ??? (08h-20h)
  124950. DL = screen column??? (<= 50h)
  124951. DH = screen row??? (<= 3Ch)
  124952. Return: AX = status (0000h successful, 0001h error)
  124953. Note: this function also sets an internal flag
  124954. SeeAlso: AH=42h,AH=43h
  124955. --------n-6642-------------------------------
  124956. INT 66 - PenDOS - PKEYUS - ???
  124957. AH = 42h
  124958. Return: CF clear
  124959. AX = 0000h
  124960. Note: this function also clears the flag set by AH=41h
  124961. SeeAlso: AH=41h
  124962. --------n-6643-------------------------------
  124963. INT 66 - PenDOS - PKEYUS - ???
  124964. AH = 43h
  124965. BX = ???
  124966. DX = ???
  124967. Return: AX = status
  124968. 0000h if AH=41h flag set
  124969. else
  124970. AH = ???
  124971. AL = ???
  124972. BX = ???
  124973. DX = ???
  124974. SeeAlso: AH=41h
  124975. --------n-6644-------------------------------
  124976. INT 66 - PenDOS - PKEYUS - UNUSED FUNCTIONS
  124977. AH = 44h to 4Fh
  124978. Return: CF set
  124979. --------n-6650-------------------------------
  124980. INT 66 - PenDOS - PMOUSE - SET ???
  124981. AH = 50h
  124982. BX = ???
  124983. CH = ???
  124984. DX = ???
  124985. Return: CF clear
  124986. AX = 0000h
  124987. --------n-6651-------------------------------
  124988. INT 66 - PenDOS - PMOUSE - NOP
  124989. AH = 51h
  124990. Return: CF set
  124991. --------n-6652-------------------------------
  124992. INT 66 - PenDOS - PMOUSE - ???
  124993. AH = 52h
  124994. BX = ???
  124995. CL = ???
  124996. DX = ???
  124997. Return: ???
  124998. --------n-6653-------------------------------
  124999. INT 66 - PenDOS - PMOUSE - UNUSED FUNCTIONS
  125000. AH = 53h to 57h
  125001. Return: CF set
  125002. --------n-66---------------------------------
  125003. INT 66 - PenDOS - PMOUSE - ALTERNATE API
  125004. AH = function (58h-5Fh)
  125005. Note: these functions exactly duplicate AH=50h-57h
  125006. --------U-66AA02-----------------------------
  125007. INT 66 - HelpTSR v2.10 - INSTALLATION CHECK
  125008. AX = AA02h
  125009. Return: ES:DI -> 7 byte signature "HelpTSR" if resident
  125010. Program: HelpTSR is a resident viewer by David Jurgens for HelpPC
  125011. --------n-66C5-------------------------------
  125012. INT 66 - PenDOS - VLOAD - API
  125013. AH = C5h
  125014. ???
  125015. Return: ???
  125016. --------t-66FFFBBXFFFB-----------------------
  125017. INT 66 - MicroHelp Stay-Res Plus - ???
  125018. AX = FFFBh
  125019. BX = FFFBh
  125020. ???
  125021. Return: ???
  125022. SeeAlso: AX=FFFEh,INT 2D"AMIS"
  125023. --------t-66FFFEBXFFFE-----------------------
  125024. INT 66 - MicroHelp Stay-Res/Stay-Res Plus - UNINSTALL
  125025. AX = FFFEh
  125026. BX = FFFEh
  125027. Return: only if unsuccessful
  125028. InstallCheck: test whether the interrupt handler begins with the bytes
  125029. FBh 9Ch or 9Ch FAh, and the program name (not case-sensitive) appears
  125030. at offset 0005h (older versions) or the offset returned by
  125031. AX=FFFFh/BX=FFF0h in the interrupt handler segment
  125032. Note: Programs which use Stay-Res include ThesPlus (program name "THESPLUS")
  125033. and Personal Calendar (program name "CAL") by Paul Mun~oz-Colman.
  125034. SeeAlso: AX=FFFBh,AX=FFFFh,INT 2D"AMIS"
  125035. Index: installation check;MicroHelp Stay-Res|installation check;ThesPlus
  125036. Index: installation check;Personal Calendar|installation check;CAL
  125037. --------t-66FFFFBXFFF0-----------------------
  125038. INT 66 - MicroHelp Stay-Res Plus - FIND PROGRAM NAME
  125039. AX = FFFFh
  125040. BX = FFF0h
  125041. Return: DI = offset of program name in interrupt handler segment
  125042. SeeAlso: AX=FFFBh,AX=FFFEh,INT 2D"AMIS"
  125043. --------d-67---------------------------------
  125044. INT 67 - Adaptec controllers - DRIVE 1 DATA
  125045. Desc: this vector stores the last four bytes of the parameter table for
  125046. hard disk 1
  125047. SeeAlso: INT 64"Adaptec",INT 65"Adaptec",INT 66"Adaptec"
  125048. --------b-67---------------------------------
  125049. INT 67 - TI Professional PC - SYSTEM DATA (NOT A VECTOR!)
  125050. Desc: this vector contains the TI Pro's system configuration words
  125051. (see #03521)
  125052. SeeAlso: INT 66"TI Professional PC"
  125053. Bitfields for TI Professional PC System Configuration doubleword:
  125054. Bit(s) Description (Table 03521)
  125055. 0 8087 present
  125056. 31-1 reserved (0)
  125057. --------d-67---------------------------------
  125058. INT 67 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
  125059. SeeAlso: INT 64"Pdisk",INT 66"Pdisk"
  125060. --------I-67---------------------------------
  125061. INT 67 - Sangoma CCPOP 3270 resident module
  125062. SeeAlso: INT 61"Sangoma",INT 68"Sangoma"
  125063. --------U-67---------------------------------
  125064. INT 67 - CUCKOO.COM - INSTALLATION CHECK
  125065. Program: CUCKOO is a resident on-screen clock with optional hourly chime or
  125066. cuckoo by an unknown author with revisions by Thomas A. Lundin
  125067. Note: this is not a vector; when loaded for the first time, CUCKOO.COM uses
  125068. the last unused (0000h:0000h) vector in the range 60h-67h to store
  125069. the signature value 434Ch:4F4Bh ('CLOK')
  125070. ----------67---------------------------------
  125071. INT 67 - PC-DRAFT - KEYBOARD DRIVER
  125072. ???
  125073. Return: ???
  125074. Program: PC-DRAFT is a powerful CAD environment by rhv.
  125075. SeeAlso: INT 62"PC-DRAFT",INT 64"PC-DRAFT",INT 65"PC-DRAFT",INT 66"PC-DRAFT"
  125076. --------N-6700-------------------------------
  125077. INT 67 - PC-NET, Alloy NTNX - LOCK SEMAPHORE AND WAIT
  125078. AH = 00h
  125079. DS:DX -> ASCIZ semaphore name (max 64 bytes)
  125080. Return: AL = status (see #03522)
  125081. AH = semaphore owner if status=02h
  125082. SeeAlso: AH=01h,AH=02h"PC-NET",INT 7F/AH=00h
  125083. (Table 03522)
  125084. Values for PC-NET semaphore function status:
  125085. 00h successful
  125086. 01h invalid function
  125087. 02h semaphore already locked
  125088. 03h unable to lock semaphore
  125089. 04h semaphore space exhausted
  125090. --------N-6701-------------------------------
  125091. INT 67 - PC-NET, Alloy NTNX - LOCK SEMAPHORE
  125092. AH = 01h
  125093. DS:DX -> ASCIZ semaphore name (max 64 bytes)
  125094. Return: AL = status (see #03522)
  125095. AH = semaphore owner if status=02h
  125096. SeeAlso: AH=00h,AH=02h"PC-NET",INT 7F/AH=01h"Alloy"
  125097. --------N-6702-------------------------------
  125098. INT 67 - PC-NET, Alloy NTNX - UNLOCK SEMAPHORE
  125099. AH = 02h
  125100. DS:DX -> ASCIZ semaphore name (max 64 bytes)
  125101. Return: AL = status (see #03522)
  125102. AH = semaphore owner if status=02h
  125103. SeeAlso: AH=00h,AH=01h"PC-NET",INT 7F/AH=02h
  125104. --------m-671E-------------------------------
  125105. INT 67 U - Qualitas 386MAX v7.00 - MEMLIMIT - INSTALLATION CHECK
  125106. AH = 1Eh
  125107. Return: AH = 00h if installed
  125108. AL destroyed
  125109. ES:DI -> ASCII signature "MemLimit"
  125110. SeeAlso: AH=1Fh,INT 21/AX=4402h"386MAX"
  125111. --------m-671F-------------------------------
  125112. INT 67 U - Qualitas 386MAX v7.00 - MEMLIMIT - API
  125113. AH = 1Fh
  125114. DS:SI -> request packet (see #03523)
  125115. Return: AH = status (00h successful, 84h invalid function code, etc.)
  125116. SeeAlso: AH=1Eh
  125117. Format of 386MAX MEMLIMIT request packet:
  125118. Offset Size Description (Table 03523)
  125119. 00h WORD function code (00h-0Fh)
  125120. 02h WORD return code (see #03524)
  125121. 04h 4 BYTEs ???
  125122. 08h WORD ???
  125123. ???
  125124. (Table 03524)
  125125. Values for 386MAX MEMLIMIT return code:
  125126. 00h unknown request
  125127. 01h invalid parameter for VCPI limit
  125128. 02h VCPI limit set
  125129. 03h invalid parameter for EMS limit
  125130. 04h EMS limit set
  125131. 05h DPMI disabled
  125132. 06h XMS disabled
  125133. 07h XMS limit set
  125134. 08h unable to uninstall
  125135. 09h unloaded
  125136. --------m-672763CL01-------------------------
  125137. INT 67 - VIDEMS.SYS v1.31+ - INSTALLATION CHECK
  125138. AX = 2763h
  125139. CL = 01h
  125140. BX = signature AAFFh
  125141. Return: AH = 00h if VIDEMS is installed
  125142. CH = 00h if optimization for 80286 is used, 01h otherwise
  125143. CL = internal revision number (typically 00h to 03h)
  125144. DX = driver version (DH=major, DL=minor; not a BCD!)
  125145. AH = 84h if not installed but EMS manager is present
  125146. Program: VIDEMS is an expanded memory manager from Conea Software Corp. It
  125147. converts video adapter RAM to LIM 3.2 EMS.
  125148. SeeAlso: AX=2763h/CL=02h,AX=2763h/CL=03h
  125149. --------m-672763CL02-------------------------
  125150. INT 67 - VIDEMS.SYS v1.31+ - FLUSH EMS TO VIDEO RAM
  125151. AX = 2763h
  125152. CL = 02h
  125153. BX = signature AAFFh
  125154. Return: AH = 00h if successful
  125155. Notes: This call is normally used by Conea products only.
  125156. SeeAlso: AX=2763h/CL=01h,AX=2763h/CL=03h
  125157. --------m-672763CL03-------------------------
  125158. INT 67 - VIDEMS.SYS v1.31+ - RELOAD EMS FROM VIDEO RAM
  125159. AX = 2763h
  125160. CL = 03h
  125161. BX = signature AAFFh
  125162. Return: AH = 00h if successful
  125163. Notes: This call is normally used by Conea products only.
  125164. SeeAlso: AX=2763h/CL=01h,AX=2763h/CL=03h
  125165. --------m-672763CL04-------------------------
  125166. INT 67 - VIDEMS.SYS v1.31+ - RETURN HIDDEN BLOCK SIZE
  125167. AX = 2763h
  125168. CL = 04h
  125169. BX = signature AAFFh
  125170. Return: AH = 00h if successful
  125171. DX = block size in kilobytes
  125172. Desc: Returns the amount of EMS which can be safely used at any time, and
  125173. can't be destroyed by writing anything to the B800:0000 buffer.
  125174. Note: this function normally returns 184K, while the driver provides up to
  125175. 240K of EMS.
  125176. SeeAlso: AX=2763h/CL=01h,AX=2763h/CL=02h
  125177. --------m-672763CL05-------------------------
  125178. INT 67 - VIDEMS.SYS v1.31+ - RETURN PHYSICAL PAGE SIZE
  125179. AX = 2763h
  125180. CL = 05h
  125181. BX = signature AAFFh
  125182. Return: AH = 00h
  125183. DX = size in bytes
  125184. Desc: Used by Conea products to determine if addressing mode has changed.
  125185. Normally, all VIDEMS versions beginning from 1.15 use 4K "physical"
  125186. pages.
  125187. Notes: this function will probably become raw page size in future releases of
  125188. VIDEMS, which will support the LIM 4.0 standard.
  125189. SeeAlso: AX=2763h/CL=01h,AX=2763h/CL=02h
  125190. --------m-672763CL06-------------------------
  125191. INT 67 - VIDEMS.SYS v1.50+ - RETURN VIDEO RAM SIZE
  125192. AX = 2763h
  125193. CL = 06h
  125194. BX = signature AAFFh
  125195. Return: AH = 00h
  125196. DX = total amount of video RAM
  125197. Desc: beginning with version 1.50, VIDEMS can use more adapter memory on
  125198. some chipsets, and is no longer limited to the first 240K.
  125199. Notes: this call is not officially documented, and Conea programmers use it
  125200. mainly for debugging purposes.
  125201. --------u-672833-----------------------------
  125202. INT 67 - Q87 v4+ - PREPARE TO UNLOAD AND GET XMS HANDLE FOR Q87 MEMORY
  125203. AX = 2833h
  125204. EAX = 29482833h (entire EAX value required)
  125205. Return: EAX = XMS handle for memory allocated when Q87 was installed
  125206. EBX = status
  125207. 00000000h Q87 is in demo mode (countdown running);
  125208. Q87 remains active
  125209. 00000001h Q87 is in registered mode; memory manager's IDT, GDT,
  125210. and optionally CR0 (if BL <> 5Fh on entry) have
  125211. been restored
  125212. 00000002h Q87 is in demo mode (demo time has expired);
  125213. Q87 remains active
  125214. Note: this call is used by UNLOAD87 to release the memory used by Q87
  125215. BUG: v4.00-v4.03 will hang on most machines when run under bare DOS with
  125216. no memory manager, because neither Q87 nor UNLOAD87 checks whether
  125217. there is a valid INT 67 handler before performing an installation
  125218. check via INT 67
  125219. SeeAlso: AX=4321h,INT 21/AX=4321h/BX=0000h
  125220. --------m-673F--CX5145-----------------------
  125221. INT 67 U - QEMM-386 v4.23+ - INSTALLATION CHECK
  125222. AH = 3Fh
  125223. CX = 5145h ("QE")
  125224. DX = 4D4Dh ("MM")
  125225. Return: AH = 00h if installed
  125226. ES:DI -> QEMM API entry point (see #03525,#03528,#03640)
  125227. Notes: if no other program has hooked INT 67, an alternate installation
  125228. check is to test for the string
  125229. "QUARTERDECK EXPANDED MEMORY MANAGER 386" at offset 14h in the INT 67
  125230. handler's segment; the word at offset 12h contains the offset in
  125231. the handler's segment of the API entry point
  125232. although this function is still undocumented, Quarterdeck has recently
  125233. documented two alternate methods for determining the QEMM API entry
  125234. point, as well as several of the API functions
  125235. MICEMM (Micronics Expanded Memory Manager) versions 2.0C and 4D support
  125236. the alternate QEMM installation check and entry point functions 00h,
  125237. 02h, and 03h; version 4D only provides the signature string if the
  125238. commandline argument "DV" is provided
  125239. 386MAX v6.01 responds to this call, but DESQview 2.42 does not
  125240. recognize the returned entry point as providing QEMM's capabilities
  125241. because a) only functions 0Ch (different from QEMM 0Ch) and
  125242. 1000h-1009h are supported,
  125243. b) status is returned as for EMS functions, not QEMM funcs
  125244. c) the protected-mode entry point returned by function 1000h
  125245. only supports functions 0Ch, 1004h, 1005h, and 100Ah
  125246. the string check mentioned above is not supported by 386MAX
  125247. SeeAlso: AX=5BF0h,AH=DDh,AX=FFA5h,INT 15/AX=11DEh,INT 21/AX=4402h/SF=01h
  125248. SeeAlso: INT 21/AX=4402h"QEMM",INT 21/AX=4402h"386MAX",INT 2F/AX=D201h/BX=5145h
  125249. (Table 03525)
  125250. Values for calling QEMM "QPI_GetStatus" function:
  125251. AH = 00h get QEMM state
  125252. Return: CF clear
  125253. AL = QEMM state
  125254. bit 0 set if QEMM turned OFF
  125255. bit 1 set if in "Auto" mode
  125256. Note: this function is officially documented
  125257. SeeAlso: #03526,#03527,#03528,#03640
  125258. (Table 03526)
  125259. Values for calling QEMM "QPI_SetStatus" function:
  125260. AH = 01h set QEMM state
  125261. AL = new state
  125262. bit 0 set: place QEMM in OFF state
  125263. Return: CF clear if successful
  125264. CF set on error
  125265. Note: this function is officially documented
  125266. SeeAlso: #03525
  125267. (Table 03527)
  125268. Values for calling QEMM QPI function 02h:
  125269. AH = 02h get ???
  125270. Return: CF clear
  125271. AX = segment of ??? data structure
  125272. Data Structure
  125273. Offset Size Description
  125274. 00h DWORD page table entry for ???
  125275. ???
  125276. SeeAlso: #03528
  125277. (Table 03528)
  125278. Values for calling QEMM "QPI_GetVersion" function:
  125279. AH = 03h get QEMM version
  125280. Return: CF clear
  125281. AX = BX = version in BCD
  125282. Notes: this function is officially documented. The most recent official docs
  125283. state that the version is returned in both AX and BX; older
  125284. documentation only mentions BX
  125285. MICEMM returns AX=0001h, BX unchanged
  125286. SeeAlso: #03525,#03529
  125287. (Table 03529)
  125288. Values for calling QEMM QPI function 04h:
  125289. AH = 04h allocate 4K page and set AUTO/ON mode
  125290. Return: CF clear if successful
  125291. DX = page number of a 4K page
  125292. CF set if unable to allocate page
  125293. Note: QEMM mode unchanged if not AUTO/OFF
  125294. SeeAlso: #03530
  125295. (Table 03530)
  125296. Values for calling QEMM QPI function 05h:
  125297. AH = 05h free 4K page and turn QEMM off
  125298. DX = page number returned by function 04h
  125299. Return: CF clear
  125300. Note: QEMM mode unchanged if not AUTO/ON
  125301. SeeAlso: #03529,#03531
  125302. (Table 03531)
  125303. Values for calling QEMM QPI function 06h:
  125304. AH = 06h make new mapping context???
  125305. DX = page number of 4K page to hold page table
  125306. Return: CF clear
  125307. Note: copies page table into given page and then sets ??? page table entry
  125308. to point at copy
  125309. SeeAlso: #03532,#03533
  125310. (Table 03532)
  125311. Values for calling QEMM QPI function 07h:
  125312. AH = 07h get mapping context
  125313. Return: CF clear
  125314. DX = page number of page table for current mapping context
  125315. SeeAlso: #03528,#03531,#03533
  125316. (Table 03533)
  125317. Values for calling QEMM QPI function 08h:
  125318. AH = 08h set mapping context???
  125319. DX = linear page number of page table
  125320. Return: CF clear
  125321. SeeAlso: #03528,#03531,#03532,#03534,#03536
  125322. (Table 03534)
  125323. Values for calling QEMM QPI function 09h:
  125324. AH = 09h get linear page number for page table entry
  125325. CX = page table index
  125326. Return: CF clear
  125327. DX = linear page number
  125328. SeeAlso: #03535
  125329. (Table 03535)
  125330. Values for calling QEMM QPI function 0Ah:
  125331. AH = 0Ah set linear page number for page table entry
  125332. CX = page table index
  125333. DX = linear page number
  125334. Return: CF clear
  125335. SeeAlso: #03534
  125336. (Table 03536)
  125337. Values for calling QEMM QPI function 0Bh:
  125338. AH = 0Bh map 4K pages
  125339. BX = number of pages
  125340. CX = first page number (must be 0100h to allocate HMA)
  125341. DX = EMS handle (memory belonging to EMS handle will be mapped
  125342. into the address space beginning with the first page
  125343. allocated to the handle)
  125344. Return: AH = 00h
  125345. SeeAlso: #03533,#03537
  125346. (Table 03537)
  125347. Values for calling QEMM QPI function 0Ch:
  125348. AH = 0Ch get available memory
  125349. Return: CF clear
  125350. BX = 0001h
  125351. CX = total 4K pages???
  125352. DX = number of 4K pages free
  125353. SeeAlso: #03536,#03538
  125354. (Table 03538)
  125355. Values for calling QEMM QPI function 0Dh:
  125356. AH = 0Dh CRT controller I/O port trapping
  125357. AL = mode
  125358. 00h only trap on I/O ports 03C0h-03C5h, 03C7h, 03CAh-03CFh
  125359. 01h trap on ports 03B4h, 03B5h, 03B8h, 03C6h, 03C8h, 03C9h,
  125360. 03D4h, and 03D5h
  125361. 02h only trap on I/O ports 03C6h, 03C8h, and 03C9h
  125362. Return: CF clear
  125363. (Table 03539)
  125364. Values for calling QEMM QPI function 0Eh:
  125365. AH = 0Eh set cursor virtualization callbacks
  125366. DS:BX -> FAR routine for getting hardware cursor address
  125367. ES:DX -> FAR routine for setting hardware cursor address
  125368. Return: CF clear
  125369. Note: both callbacks are invoked with CL indicating which
  125370. CRT controller register to access (0Eh for high
  125371. byte of cursor address, 0Fh for low byte)
  125372. the DS:BX callback should return BX=cursor address;
  125373. ES:DX is called with BL or BH (depending on CL)
  125374. set to the appropriate half of the cursor's address
  125375. (Table 03540)
  125376. Values for calling QEMM QPI function 0Fh:
  125377. AH = 0Fh unmap 4K pages
  125378. CX = first page number
  125379. DX = number of pages
  125380. Return: CF clear
  125381. AL = 00h/01h if ???
  125382. Note: if CX=0100h and DX=0010h, the HMA is remapped to
  125383. simulate a disabled A20
  125384. (Table 03541)
  125385. Values for calling QEMM QPI function 1000h:
  125386. AX = 1000h get protected-mode interface
  125387. DS:SI -> 16-byte buffer for two GDT entries
  125388. ES:DI -> buffer for 4K page table
  125389. Return: CF clear
  125390. EAX = offset of protected-mode API entry point
  125391. DS:SI buffer filled with two GDT descriptors
  125392. first is QEMM code segment, second is data???
  125393. ES:DI buffer filled with 4K page table
  125394. DI points to first unused page table entry
  125395. SeeAlso: INT 67/AX=DE01h
  125396. (Table 03542)
  125397. Values for calling QEMM QPI function 1001h:
  125398. AX = 1001h get CPU debug registers
  125399. ES:DI -> buffer for debug registers (8 DWORDs)
  125400. Return: CF clear
  125401. BL = INT01 handling (see #03543)
  125402. ES:DI buffer filled
  125403. (Table 03543)
  125404. Values for calling QEMM QPI function 1002h:
  125405. AX = 1002h set CPU debug registers
  125406. BL = INT01 handling
  125407. 00h reflect all debugging exceptions as V86-mode INT 01's
  125408. else convert debugging exceptions other than single-step
  125409. into V86-mode INT 03's, single-step to INT 01's
  125410. ES:DI -> buffer containing debug registers (8 DWORDs)
  125411. Return: CF clear
  125412. Notes: identical to INT 67/AX=DE09h if BL=01h
  125413. the INT01 handling flag is set to 01h by the general-protection
  125414. violation handler for certain privileged instructions
  125415. SeeAlso: #03542
  125416. (Table 03544)
  125417. Values for calling QEMM QPI function 1003h:
  125418. AX = 1003h get machine status word CR0
  125419. Return: CF clear
  125420. EAX = contents of CR0
  125421. SeeAlso: INT 67/AX=DE07h
  125422. (Table 03545)
  125423. Values for calling QEMM QPI function 1004h:
  125424. AX = 1004h allocate a 4K page
  125425. Return: CF clear if successful
  125426. EDX = linear address of allocated page
  125427. CF set on error
  125428. SeeAlso: INT 67/AX=DE04h
  125429. (Table 03546)
  125430. Values for calling QEMM QPI function 1005h:
  125431. AX = 1005h free 4K page
  125432. EDX = linear address of page to free
  125433. Return: CF clear
  125434. SeeAlso: INT 67/AX=DE05h
  125435. (Table 03547)
  125436. Values for calling QEMM QPI function 1006h:
  125437. AX = 1006h NOP
  125438. Return: CF set
  125439. (Table 03548)
  125440. Values for calling QEMM QPI function 1007h:
  125441. AX = 1007h get maximum physical memory address
  125442. Return: CF clear
  125443. EDX = physical address of highest 4K memory page
  125444. SeeAlso: INT 67/AX=DE02h
  125445. (Table 03549)
  125446. Values for calling QEMM QPI function 1008h:
  125447. AX = 1008h get physical address of page in first megabyte
  125448. CX = page number (linear address shifted right 12 bits)
  125449. Return: CF clear
  125450. EDX = linear address of page
  125451. SeeAlso: #03548,#03624,#03625
  125452. (Table 03550)
  125453. Values for calling QEMM QPI function 1009h:
  125454. AX = 1009h switch to protected mode
  125455. ESI = linear address in first megabyte of system reg values
  125456. (see INT 67/AX=DE0Ch)
  125457. interrupts disabled
  125458. Return: interrupts disabled
  125459. GDTR, IDTR, LDTR, TR loaded
  125460. SS:ESP must have at least 16 bytes space, and the
  125461. entry point is required to set up a new stack
  125462. before enabling interrupts
  125463. EAX, ESI, DS, ES, FS, GS destroyed
  125464. (Table 03551)
  125465. Values for calling QEMM QPI function 100Ah:
  125466. AX = 100Ah switch back to virtual-86 mode
  125467. DS = selector for data segment from function 1000h
  125468. SS:ESP in first megabyte of linear memory
  125469. interrupts disabled
  125470. STACK: QWORD return address from FAR call to 32-bit segment
  125471. DWORD EIP
  125472. DWORD CS
  125473. DWORD reserved for EFLAGS
  125474. DWORD ESP
  125475. DWORD SS
  125476. DWORD ES
  125477. DWORD DS
  125478. DWORD FS
  125479. DWORD GS
  125480. will switch to virtual86 mode with interrupts disabled, all
  125481. segment registers loaded, and EAX destroyed.
  125482. (Table 03552)
  125483. Values for calling QEMM QPI function 11h:
  125484. AH = 11h get memory type map
  125485. AL = zero/nonzero ??? (set by QEMM.COM but apparently ignored
  125486. by QEMM 6.00)
  125487. ES:DI -> 256-byte buffer for memory types
  125488. Return: CF clear
  125489. BL = ???
  125490. ES:DI buffer filled
  125491. Note: each byte of the buffer corresponds to a 4K page, and
  125492. contains the type of that page: 00h = mappable,
  125493. 02h = mapped ROM, 03h = high RAM, 04h = excluded,
  125494. 05h = video, 06h = ROM, 07h = adapter ROM,
  125495. 08h = split ROM, 09h = page frame, 0Ah = RAMmable,
  125496. 0Bh = conventional, 83h = high RAM under MS Windows
  125497. (Table 03553)
  125498. Values for calling QEMM QPI function 12h:
  125499. AH = 12h get HIRAM chain
  125500. Return: CF clear
  125501. BX = segment of first MCB in high memory
  125502. 0000h if no high memory
  125503. (Table 03554)
  125504. Values for calling QEMM QPI function 1300h:
  125505. AX = 1300h VIDRAMEGA???
  125506. BL = 00h copy ???
  125507. nonzero copy ??? (reverse)
  125508. Return: CF clear
  125509. AL = status
  125510. 00h if all pages clean
  125511. 01h if any page dirty
  125512. (Table 03555)
  125513. Values for calling QEMM QPI function 1301h:
  125514. AX = 1301h check if pages modified
  125515. DX:DI = start address of range to check
  125516. CX = length of range in paragraphs
  125517. Return: CF clear
  125518. CX = status
  125519. 0000h none of the indicated pages is dirty
  125520. DI destroyed
  125521. 1000h one or more pages is dirty
  125522. DI = low word of first dirty page's linear addr
  125523. (Table 03556)
  125524. Values for calling QEMM QPI function 1302h:
  125525. AX = 1302h ???
  125526. BL = ???
  125527. BH = ???
  125528. CX = ???
  125529. SI = offset of ???
  125530. DI = offset of ???
  125531. ???
  125532. Return: CF clear
  125533. ???
  125534. Note: disables certain interrupts at the two 8259 PICs during
  125535. execution; also modifies CRT controller during
  125536. execution under certain circumstances
  125537. (Table 03557)
  125538. Values for calling QEMM QPI function 1303h:
  125539. AX = 1303h initialize EGA graphics virtualization
  125540. BX = number of pages (less 1) of EMS to allocate
  125541. Return: CF clear if successful
  125542. DX = EMS handle
  125543. CF set on error
  125544. (Table 03558)
  125545. Values for calling QEMM QPI function 1304h:
  125546. AX = 1304h shutdown EGA graphics virtualization
  125547. DX = EMS handle being used for virtualization
  125548. Return: CF clear
  125549. (Table 03559)
  125550. Values for calling QEMM QPI function 1305h:
  125551. AX = 1305h select portion of EGA graphics to virtualize???
  125552. (related to graphics virtualization, changes memory mappings)
  125553. CX = start offset within A000h segment of virtualized mem???
  125554. Return: CF clear
  125555. Note: disables certain interrupts at the two 8259 PICs during
  125556. execution (see #03566) and runs inside a QEMM
  125557. critical section
  125558. (Table 03560)
  125559. Values for calling QEMM QPI function 1306h:
  125560. AX = 1306h set DESQview critical section counter address
  125561. ES:BX -> WORD DESQview critical section counter or 0000h:0000h
  125562. Return: CF clear
  125563. Note: also sets a pointer in the low-memory part of QEMM to
  125564. the current value of INT 15 if ES:BX not 0000h:0000h
  125565. (Table 03561)
  125566. Values for calling QEMM QPI function 1307h:
  125567. AX = 1307h ??? (changes memory mappings for entire A000h segment)
  125568. Return: CF clear
  125569. Note: disables certain interrupts at the two 8259 PICs during
  125570. execution (see #03566) and runs inside a QEMM
  125571. critical section
  125572. (Table 03562)
  125573. Values for calling QEMM QPI function 1308h:
  125574. AX = 1308h start/reset CRT controller I/O trapping
  125575. BL = subfunction
  125576. 00h restore CRTC I/O port trapping to previous state
  125577. else start trapping all accesses to I/O ports 03B0-03DF
  125578. Return: CF clear
  125579. Note: if called more than once in a row with BL nonzero, the
  125580. original state of the I/O port trapping will be lost
  125581. (Table 03563)
  125582. Values for calling QEMM QPI function 1309h:
  125583. AX = 1309h Hercules mode-change support
  125584. ES:BX -> new address for Hercules mode-change callback
  125585. Return: CF clear
  125586. Note: the callback function is called whenever the CRTC mode
  125587. register is written, with AL set to the value written
  125588. (Table 03564)
  125589. Values for calling QEMM QPI function 130Ah:
  125590. AX = 130Ah virtualize EGA/VGA DAC registers (I/O ports 03C8h/03C9h)
  125591. CX:DX -> DAC register virtualization buffer (see #03647)
  125592. or 0000h:0000h to disable
  125593. Return: CF clear
  125594. (Table 03565)
  125595. Values for calling QEMM QPI function 130Bh:
  125596. AX = 130Bh ???
  125597. BL = ??? (??? or 00h)
  125598. Return: CF clear
  125599. ???
  125600. Note: calls AX=130Eh in some cases
  125601. (Table 03566)
  125602. Values for calling QEMM QPI function 130Ch:
  125603. AX = 130Ch set interrupts to mask
  125604. BX = interrupts to mask out during AX=1302h,AX=1307h,AX=1308h,
  125605. AX=130Dh,AX=1310h (BL = master PIC, BH = slave PIC)
  125606. Return: CF clear
  125607. (Table 03567)
  125608. Values for calling QEMM QPI function 130Dh:
  125609. AX = 130Dh map EGA memory at A0000h
  125610. ???
  125611. Return: CF clear
  125612. Note: disables certain interrupts at the two 8259 PICs during execution
  125613. (see #03566) and runs inside a QEMM critical section
  125614. calls AX=1307h (see #03561)
  125615. (Table 03568)
  125616. Values for calling QEMM QPI function 130Eh:
  125617. AX = 130Eh ??? (modifies CRT controller setup)
  125618. ???
  125619. Return: CF clear
  125620. (Table 03569)
  125621. Values for calling QEMM QPI function 130Fh:
  125622. AX = 130Fh reset ???
  125623. Return: CF clear
  125624. (Table 03570)
  125625. Values for calling QEMM QPI function 1310h:
  125626. AX = 1310h copy modified pages to physical video RAM???
  125627. ???
  125628. Return: CF clear
  125629. Note: disables certain interrupts at the two 8259 PICs during execution
  125630. (see #03566) and runs inside a QEMM critical section
  125631. also calls AX=130Dh (see #03567)
  125632. (Table 03571)
  125633. Values for calling QEMM QPI function 1311h:
  125634. AX = 1311h set ???
  125635. BL = zero/nonzero???
  125636. Return: CF clear
  125637. Note: certain operations will be performed with interrupts
  125638. (as set by AX=130Ch) enabled rather than disabled if
  125639. called with BL nonzero
  125640. (Table 03572)
  125641. Values for calling QEMM QPI function 1312h:
  125642. AX = 1312h (v6.02) NOP???
  125643. Note: called by DV 2.42, but appears to be a NOP in QEMM 6.02
  125644. (Table 03573)
  125645. Values for calling QEMM QPI function 1400h:
  125646. AX = 1400h initialize DESQview "protection level" support
  125647. ES:DI -> protection level configuration (at least 24 bytes)
  125648. (see #03641)
  125649. BL = highest ??? to return (one less than number of words)
  125650. Return: CF clear
  125651. AX = ??? (4204h for v6.00)
  125652. Note: QEMM also sets the protected mode INT 02 and INT 06
  125653. vectors to alternate handlers in certain cases
  125654. (Table 03574)
  125655. Values for calling QEMM QPI function 1401h:
  125656. AX = 1401h turn off DESQview protection level support
  125657. Return: CF clear
  125658. ???
  125659. Notes: clears the DV critical-section flag address set with
  125660. function 1306h
  125661. QEMM also sets the protected mode INT 02 and INT 06
  125662. vectors to the default handlers if they had been
  125663. revectored by function 1400h
  125664. (Table 03575)
  125665. Values for calling QEMM QPI function 1402h:
  125666. AX = 1402h set protection level???
  125667. BL = protection level???
  125668. 00h NOP
  125669. 01h ???
  125670. 02h ???
  125671. other (03h) ???
  125672. ES:DI -> ???
  125673. Return: CF clear
  125674. ???
  125675. Format of Data structure:
  125676. Offset Size Description
  125677. 00h WORD segment of ??? (X, word at X:0136h set to X)
  125678. 02h WORD segment of ??? (word at X:0124h set to this)
  125679. 04h WORD number of paragraphs of ???
  125680. 06h 3 WORDs ??? (copied to X:0000h)
  125681. 0Ch WORD ???
  125682. (Table 03576)
  125683. Values for calling QEMM QPI function 1403h:
  125684. AX = 1403h add ??? to end of list and ??? (execute func 1406h)
  125685. ES:DI -> ??? structure added to end of ??? list
  125686. (at least 31 bytes, DWORD at offset 06h used for
  125687. storing pointer to next struc, WORD at offset 00h
  125688. seems to be a key or index)
  125689. Return: CF clear
  125690. (Table 03577)
  125691. Values for calling QEMM QPI function 1404h:
  125692. AX = 1404h NOP
  125693. Return: CF clear
  125694. (Table 03578)
  125695. Values for calling QEMM QPI function 1405h:
  125696. AX = 1405h remove ??? from ??? list
  125697. BX = key???
  125698. Return: CF clear
  125699. (Table 03579)
  125700. Values for calling QEMM QPI function 1406h:
  125701. AX = 1406h ???
  125702. ???
  125703. Return: CF clear
  125704. ???
  125705. Notes: this function is a NOP unless protection level 2 or 3
  125706. is active
  125707. when not a NOP, one of the actions is to write-protect
  125708. certain memory pages
  125709. (Table 03580)
  125710. Values for calling QEMM QPI function 1407h:
  125711. AX = 1407h ???
  125712. ???
  125713. Return: CF clear
  125714. ???
  125715. Note: same as function 1406h, but only does anything if
  125716. protection level 2 is active
  125717. (Table 03581)
  125718. Values for calling QEMM QPI function 1408h:
  125719. AX = 1408h unprotect???
  125720. ???
  125721. Return: CF clear
  125722. ???
  125723. (Table 03582)
  125724. Values for calling QEMM QPI function 1409h:
  125725. AX = 1409h abort program causing protection violation???
  125726. ???
  125727. Return: CF clear
  125728. ???
  125729. (Table 03583)
  125730. Values for calling QEMM QPI function 140Ah:
  125731. AX = 140Ah set ???
  125732. BX = index of ???
  125733. Return: CF clear
  125734. ???
  125735. Notes: no range checking is performed on BX
  125736. this function is a NOP unless protection level 3 active
  125737. (Table 03584)
  125738. Values for calling QEMM QPI function 140Bh:
  125739. AX = 140Bh get ???
  125740. BX = index of ???
  125741. SI = 0000h
  125742. Return: CF clear
  125743. SI = segment of 256-byte buffer??? or 0000h
  125744. Notes: no range checking is performed on BX
  125745. this function is a NOP unless protection level 3 active
  125746. (Table 03585)
  125747. Values for calling QEMM QPI function 15h:
  125748. AH = 15h set timer channel 0 virtualization buffer
  125749. ES:BX -> WORD buffer for timer channel 0 divisor
  125750. 0000h:0000h to disable virtualization
  125751. Return: CF clear
  125752. (Table 03586)
  125753. Values for calling QEMM v5.00+ QPI function 1600h:
  125754. AX = 1600h get memory access status
  125755. ES:DI -> 256-byte buffer
  125756. Return: ES:DI buffer filled
  125757. Note: each byte of the buffer indicates the status of a 4K
  125758. page (bit 0 set if read, bit 1 set if written)
  125759. (Table 03587)
  125760. Values for calling QEMM v5.00+ QPI function 1601h:
  125761. AX = 1601h set memory access status
  125762. ES:DI -> 256-byte buffer containing access statuses (see #03586)
  125763. (Table 03588)
  125764. Values for calling QEMM v5.00+ QPI function 17h:
  125765. AH = 17h get memory usage statistics
  125766. ES:DI -> 81-byte buffer for memory statistics (see #03645)
  125767. Return: CF clear
  125768. (Table 03589)
  125769. Values for calling QEMM v5.11+ QPI function 18h:
  125770. AH = 18h check whether conventional memory mapped into address range
  125771. ES:BX = starting address
  125772. CX = number of 4K pages
  125773. Return: CF clear
  125774. AL = 00h one or more pages is remapped
  125775. 01h all pages in range are conventional memory
  125776. (physical address == virtual address)
  125777. (Table 03590)
  125778. Values for calling QEMM v5.11+ QPI function 19h:
  125779. AH = 19h NOP
  125780. Return: CF set
  125781. (Table 03591)
  125782. Values for calling QEMM v5.11+ "QPI_UntrappedIORead" function:
  125783. AX = 1A00h get byte from I/O port
  125784. DX = port number
  125785. Return: CF clear
  125786. BL = port value
  125787. Note: this function was officially documented with the release of QEMM 7.50
  125788. (Table 03592)
  125789. Values for calling QEMM v5.11+ "QPI_UntrappedIOWrite" function:
  125790. AX = 1A01h send byte to I/O port
  125791. BL = value to send
  125792. DX = port number
  125793. Return: CF clear
  125794. Note: this function was officially documented with the release of QEMM 7.50
  125795. (Table 03593)
  125796. Values for calling QEMM v5.11+ "QPI_UntrappedIOReadIndexed" function:
  125797. AX = 1A02h
  125798. BH = index value to send
  125799. DX = base port number
  125800. Return: CF clear
  125801. BL = value read from I/O port (DX+1)
  125802. Note: this function was officially documented with the release of QEMM 7.50
  125803. (Table 03594)
  125804. Values for calling QEMM v5.11+ "QPI_UntrappedIOWriteIndexed" function:
  125805. AX = 1A03h send bytes to two consecutive I/O ports
  125806. BH = value for first I/O port (DX)
  125807. BL = value for second I/O port (DX+1)
  125808. DX = base port number
  125809. Return: CF clear
  125810. Note: this function was officially documented with the release of QEMM 7.50
  125811. (Table 03595)
  125812. Values for calling QEMM v7.03+ "QPI_UntrappedIO" function:
  125813. AX = 1A04h
  125814. BX = value to write to port
  125815. CX = direction and size
  125816. bit 2: output instead of input
  125817. bit 3: word instead of byte
  125818. DX = I/O port to be accessed
  125819. Return: CF clear
  125820. BX = value read (if CX indicates read)
  125821. Note: this function was officially documented with the release of QEMM 7.50
  125822. (Table 03596)
  125823. Values for calling QEMM v7.03+ function 1A05h
  125824. AX = 1A05h
  125825. ???
  125826. Return: ???
  125827. (Table 03597)
  125828. Values for calling QEMM v7.03+ "QPI_GetIOCallback" function:
  125829. AX = 1A06h
  125830. Return: CF clear
  125831. ES:DI -> current I/O callback function (see #03599)
  125832. Note: this function was officially documented with the release of QEMM 7.50
  125833. (Table 03598)
  125834. Values for calling QEMM v7.03+ "QPI_SetIOCallback" function:
  125835. AX = 1A07h
  125836. ES:DI -> new I/O callback function (see #03599)
  125837. Return: CF clear
  125838. Note: this function was officially documented with the release of QEMM 7.50
  125839. (Table 03599)
  125840. Values QEMM v7.03+ I/O callback function is called with:
  125841. AL/AX = data to/from trapped port
  125842. CL = I/O direction (00h = IN instruction, else OUT instruction)
  125843. DX = I/O port address
  125844. Return: CF clear if port handled by callback function
  125845. CF set if not handled
  125846. all other registers returned to application executing the IN or OUT
  125847. instruction (allowing arbitrary changes to port address, data value,
  125848. etc.)
  125849. SeeAlso: #03597,#03598
  125850. (Table 03600)
  125851. Values for calling QEMM v7.03+ "QPI_GetPortTrap" function:
  125852. AX = 1A08h
  125853. DX = I/O port number
  125854. Return: CF clear
  125855. BL = trapping state (00h not being trapped, 01h trap installed)
  125856. Note: this function was officially documented with the release of QEMM 7.50
  125857. (Table 03601)
  125858. Values for calling QEMM v7.03+ "QPI_SetPortTrap" function:
  125859. AX = 1A09h
  125860. DX = I/O port number
  125861. Return: CF clear
  125862. Note: this function was officially documented with the release of QEMM 7.50
  125863. (Table 03602)
  125864. Values for calling QEMM v7.03+ "QPI_ClearPortTrap" function:
  125865. AX = 1A0Ah
  125866. DX = I/O port number
  125867. Return: CF clear
  125868. Note: this function was officially documented with the release of QEMM 7.50
  125869. (Table 03603)
  125870. Values for calling QEMM v5.11+ QPI function 1B00h:
  125871. AX = 1B00h get EMM Import Structure address
  125872. ES:DI -> buffer for EMM import data structure (see #03643)
  125873. Return: CF set on error
  125874. CF clear if successful
  125875. SeeAlso: INT 21/AX=4402h/SF=01h
  125876. (Table 03604)
  125877. Values for calling QEMM v5.11+ QPI function 1B01h:
  125878. AX = 1B01h disable V86 mode
  125879. Return: CF set on error
  125880. (i.e. no Global EMM Import rec. allocated)
  125881. CF clear if successful
  125882. Note: shuts down EMS and initializes Global EMM Import record; this function
  125883. is invoked from the callback supplied by INT 2F/AX=1605h
  125884. (Table 03605)
  125885. Values for calling QEMM v5.11+ QPI function 1B02h:
  125886. AX = 1B02h enable V86 mode
  125887. Return: CF set on error
  125888. CF clear if successful
  125889. Note: restarts EMS and frees Global EMM Import record; this function is
  125890. invoked from the callback supplied by INT 2F/AX=1605h
  125891. (Table 03606)
  125892. Values for calling QEMM v5.11+ QPI function 1B03h:
  125893. AX = 1B03h MS Windows initializing
  125894. CX = segment from which Windows init broadcast made???
  125895. DX = Windows startup flags
  125896. DI = Windows version number (major in upper byte)
  125897. Return: CF clear if successful
  125898. DS:SI -> V86 mode enable/disable callback
  125899. (see #02634 at INT 2F/AX=1605h)
  125900. ES:BX -> startup info structure (see #02631 at INT 2F/AX=1605h)
  125901. CF set on error (unable to start Windows)
  125902. SeeAlso: INT 2F/AX=1605h
  125903. (Table 03607)
  125904. Values for calling QEMM v5.11+ QPI function 1B04h:
  125905. AX = 1B04h MS Windows terminating
  125906. Return: CF clear
  125907. (Table 03608)
  125908. Values for calling QEMM v5.11+ QPI function 1B05h:
  125909. AX = 1B05h determine whether program is driver
  125910. DS:DX -> ASCIZ filename
  125911. Return: CF clear
  125912. AL = status
  125913. 01h if string ends in ".DRV"
  125914. FFh if string ends in "GDI.EXE"
  125915. 00h otherwise
  125916. Note: when MS Windows 3.0 standard mode starts, QEMM patches all drivers
  125917. until GDI.EXE is loaded
  125918. (Table 03609)
  125919. Values for calling QEMM v5.11+ QPI function 1B06h:
  125920. AX = 1B06h patch protected-mode check in Windows driver
  125921. CX = length of data pointed at by DS:DX
  125922. DS:DX -> buffer containing Windows driver code
  125923. Return: CF clear
  125924. Note: patches all SMSW x/TEST x,1 instruction sequences into MOV x,CS/VERW x
  125925. sequences, which has the effect that the protected-mode check will
  125926. only indicate protected mode in native protected mode and not in V86
  125927. mode
  125928. (Table 03610)
  125929. Values for calling QEMM v5.11+ QPI function 1B07h:
  125930. AX = 1B07h
  125931. BUG: QEMM 6.00-7.01 accept this and branch randomly
  125932. (Table 03611)
  125933. Values for calling QEMM v5.11+ QPI function 1Bxxh:
  125934. AX = 1B08h to 1BFFh
  125935. Return: CF set
  125936. (Table 03612)
  125937. Values for calling QEMM v5.11+ QPI function 1C00h:
  125938. AX = 1C00h disable IRQ0-7 calldowns
  125939. Return: CF clear
  125940. (Table 03613)
  125941. Values for calling QEMM v5.11+ QPI function 1C01h:
  125942. AX = 1C01h set V86-mode IRQ0-7 handlers
  125943. ES:DI -> 8 DWORDs containing V86-mode handler addresses
  125944. Return: CF clear
  125945. (Table 03614)
  125946. Values for calling QEMM v5.11+ QPI function 1C02h:
  125947. AX = 1C02h disable IRQ8-15 handlers
  125948. Return: CF clear
  125949. (Table 03615)
  125950. Values for calling QEMM v5.11+ QPI function 1C03h:
  125951. AX = 1C03h set V86-mode IRQ8-15 handlers
  125952. ES:DI -> 8 DWORDs containing V86-mode handler addresses
  125953. BUG: although the jump table only contains four entries, QEMM 6.00 will
  125954. attempt to use it for any value of AL between 00h and 2Ah, thus
  125955. branching unpredictably for AL=04h-2Ah; QEMM v7.01 behaves
  125956. similarly for AL=04h-1Bh
  125957. Note: when enabled, the appropriate IRQs are reflected back to the specified
  125958. handlers in virtual-86 mode after the CPU automatically invokes the
  125959. protected-mode handler inside QEMM
  125960. (Table 03616)
  125961. Values for calling QEMM v7.03+ "QPI_SimulateHWInt" function:
  125962. AX = 1C04h
  125963. BX = number of interrupt to simulate
  125964. Return: ???
  125965. Notes: this function will allow proper simulation of a hardware interrupt
  125966. under DESQview and DESQview/X, where the correct interrupt handler
  125967. may be in a different process with a completely different address
  125968. space
  125969. this function was officially documented with the release of QEMM v7.50
  125970. (Table 03617)
  125971. Values for calling QEMM v6.0x only QPI function 1D00h:
  125972. AX = 1D00h switch to pre-Stealth interrupt vector table
  125973. Return: CF clear if supported (QEMM v6.x)
  125974. CF set if not supported (QEMM v7+)
  125975. Notes: also switches VGA Save table pointer (0040h:00A8h) and overwrites the
  125976. vectors currently assigned for use by the two interrupt controllers
  125977. (see INT 67/AX=DE0Ah) with the vectors for INT 08-0F and 70-77 (to
  125978. avoid crashing the system).
  125979. functions 1Dxxh are not supported by QEMM v7.01, and always return CF
  125980. set
  125981. (Table 03618)
  125982. Values for calling QEMM v6.0x only QPI function 1D01h:
  125983. AX = 1D01h restore user interrupt vector table
  125984. Return: CF clear if supported (QEMM v6.x)
  125985. CF set if not supported (QEMM v7+)
  125986. Notes: interrupts should be disabled around the AX=1D00h and AX=1D01h calls
  125987. because QEMM does not modify the memory maps to map in ROM, so
  125988. an interrupt could be disastrous
  125989. clears any pending IRQ7 at end of function
  125990. functions 1Dxxh are not supported by QEMM v7.01, and always return CF
  125991. set
  125992. (Table 03619)
  125993. Values for calling QEMM v6.00+ QPI function 1Dxxh:
  125994. AX = 1D02h to 1DFFh
  125995. Return: CF set
  125996. (Table 03620)
  125997. Values for calling QEMM v6.00+ "QEMM_GET_INFO"/"QPI_GetInfo" function:
  125998. AX = 1E00h get Stealth configuration
  125999. Return: CF clear
  126000. BL = memory configuration flags (documented as "reserved") (see #03644)
  126001. BH = (v7.00+) disk buffer flags
  126002. bit 0: DISKBUFFRAME buffer instead of DISKBUF buffer
  126003. bit 1: buffer has already been used
  126004. CL = stealth type (00h none, 46h Frame, 4Dh Map, 50h Protect)
  126005. CH = suspend/resume interrupt (00h none)
  126006. DL = (v7.00+) size of QEMM disk buffer in KB (00h none)
  126007. DH = reserved (always 00h for v6.00)
  126008. SI = reserved (always 0000h for v6.00)
  126009. DI = reserved (always 0000h for v6.00)
  126010. Note: this function is officially documented
  126011. (Table 03621)
  126012. Values for calling QEMM v6.00+ "QPI_GetStealthCount" function:
  126013. AX = 1E01h get number of Stealth'ed ROMs
  126014. Return: CF clear
  126015. BX = number of Stealth'ed ROMs
  126016. Note: this function is officially documented
  126017. (Table 03622)
  126018. Values for calling QEMM v6.00+ "QPI_GetStealthList" function:
  126019. AX = 1E02h
  126020. ES:DI -> buffer for Stealth ROM info (see #03646)
  126021. Return: CF clear
  126022. BX = number of Stealth'ed ROMs
  126023. ES:DI buffer filled
  126024. Note: this function is officially documented
  126025. (Table 03623)
  126026. Values for unimplemented Stealth information functions:
  126027. AX = 1E03h to 1EFFh
  126028. Return: CF set
  126029. (Table 03624)
  126030. Values for calling QEMM v6.00+ "QEMM_GET_PTE"/"QPI_GetPTE" function:
  126031. AX = 1F00h get page table entry
  126032. CX = page number (0000h-010Fh)
  126033. Return: CF clear
  126034. EDX = page table entry
  126035. Note: this function is officially documented
  126036. (Table 03625)
  126037. Values for calling QEMM v6.00+ "QEMM_SET_PTE"/"QPI_SetPTE" function:
  126038. AX = 1F01h set page table entry
  126039. CX = page number (0000h-010Fh)
  126040. EDX = new page table entry
  126041. Return: CF clear
  126042. Note: this function is officially documented
  126043. SeeAlso: #03549
  126044. (Table 03626)
  126045. Values for calling QEMM v6.00+ QPI function 1Fxxh:
  126046. AX = 1F02h to 1FFFh
  126047. Return: CF set
  126048. (Table 03627)
  126049. Values for calling QEMM v6.00+ "QEMM_GET_VHI_INFO"/"QPI_GetVHIInfo" function:
  126050. AX = 2000h "QEMM_GET_VHI_INFO" get VirtualHDIRQ information
  126051. Return: CF clear
  126052. BL = flags
  126053. bit 7: VirtualHDIRQ setting respected
  126054. (set if Stealth active)
  126055. bits 6-1 reserved
  126056. bit 0: VirtualHDIRQ currently enabled
  126057. (INT 15/AH=90h suppressed when enabled)
  126058. Note: this function is officially documented
  126059. SeeAlso: #03628
  126060. (Table 03628)
  126061. Values for calling QEMM v6.00+ "QEMM_SET_VHI_INFO"/"QPI_SetVHIInfo" function:
  126062. AX = 2001h set VirtualHDIRQ state
  126063. BL bit 0 = new VirtualHDIRQ state
  126064. Return: CF clear
  126065. BL = old VHI setting (bits 0 and 7, see #03627)
  126066. Note: this function is officially documented
  126067. SeeAlso: #03627
  126068. (Table 03629)
  126069. Values for calling QEMM v6.00+ QPI function 20xxh:
  126070. AX = 2002h to 20FFh
  126071. Return: CF set
  126072. (Table 03630)
  126073. Values for calling QEMM v6.00+ "QEMM_COPY_STEALTH_ROMS"/"QPI_CopyStealthRoms":
  126074. AX = 2100h copy data from Stealthed address space
  126075. DS:SI -> start address of hidden memory to copy
  126076. ES:DI -> buffer for copied data
  126077. ECX = number of bytes to copy
  126078. Return: CF clear if successful
  126079. CF set on error (no Stealth or DS:SI < C000h:0000h or DS:SI + ECX > 1M)
  126080. Note: this function was officially documented with the release of QEMM 7.50
  126081. (Table 03631)
  126082. Values for calling QEMM v6.00+ QPI function 21xxh:
  126083. AX = 2101h to 21FFh
  126084. Return: CF set
  126085. (Table 03632)
  126086. Values for calling QEMM v6.03+ QPI function 2200h:
  126087. AX = 2200h DESQview/X support -- get ???
  126088. Return: CF clear
  126089. ES:DI -> ???
  126090. (Table 03633)
  126091. Values for calling QEMM v6.03+ QPI function 2201h:
  126092. AX = 2201h DESQview/X support -- set ???
  126093. ES:DI -> ??? or 0000h:0000h
  126094. Return: CF clear if successful
  126095. CF set on error
  126096. (Table 03634)
  126097. Values for calling QEMM v6.04+ QPI function 2300h:
  126098. AX = 2300h get ???
  126099. BX = which ??? to get (must be 0000h for v6.04)
  126100. Return: CF clear if successful
  126101. ES:DI -> ???
  126102. CF set on error
  126103. (Table 03635)
  126104. Values for calling QEMM v6.04+ QPI function 2301h:
  126105. AX = 2301h set ???
  126106. BX = which ??? to set (must be 0000h for v6.04)
  126107. ES:DI -> ???
  126108. Return: CF clear if successful
  126109. CF set on error
  126110. (Table 03636)
  126111. Values for calling QEMM v6.04+ QPI function 2302h:
  126112. AX = 2302h clear specified ???
  126113. BX = which ??? to clear (must be 0000h for v6.04)
  126114. Return: CF clear if successful
  126115. CF set on error
  126116. (Table 03637)
  126117. Values for calling QEMM v6.04+ QPI function 23FFh:
  126118. AX = 23FFh clear all ???
  126119. Return: CF clear if successful
  126120. CF set on error
  126121. (Table 03638)
  126122. Values for calling QEMM v6.04+ QPI function 23xxh:
  126123. AX = 2303h to 23FEh
  126124. Return: CF set
  126125. (Table 03639)
  126126. Values for calling QEMM v7.01+ QPI function 24h:
  126127. AH = 24h ST-DBL support
  126128. AL = subfunction
  126129. 00h set ???
  126130. EDX -> information table (EDX = segment SHL 16 + offset)
  126131. 01h ???
  126132. Return: CF clear if successful
  126133. CF set on error
  126134. (Table 03640)
  126135. Values for calling QEMM unimplemented QPI functions:
  126136. AH = 25h to FFh
  126137. Return: CF set
  126138. Format of QEMM protection level configuration:
  126139. Offset Size Description (Table 03641)
  126140. 00h WORD segment of 128 breakpoint (INT 3) instructions for use in
  126141. DESQview protection level 3 interrupt vector checking, or
  126142. 0000h to disable; in pl3, INTs 00-7F are pointed at these
  126143. breakpoints
  126144. 02h DWORD -> array of actual interrupt handler addresses for INT 00-7F
  126145. when interrupt vectors are pointed at protection level 3
  126146. breakpoints
  126147. 06h DWORD far pointer to ??? region list (see #03642)
  126148. 0Ah DWORD far pointer to buffer for returned ???
  126149. 0Eh DWORD seg:ofs of function to call on protection violation???
  126150. 12h WORD segment of ???
  126151. 14h DWORD far pointer to DWORD containing number of paragraphs of
  126152. ??? for segment at offset 12h
  126153. ???
  126154. Format of protection level Region List:
  126155. Offset Size Description (Table 03642)
  126156. 00h WORD number of PAIRS of pointers to follow
  126157. 02h 2N DWORDs start/end seg:ofs addresses of ??? regions
  126158. Note: QEMM converts the segmented addresses into linear addresses in place
  126159. Format of EMM Import structure:
  126160. Offset Size Description (Table 03643)
  126161. 00h DWORD physical address of EMM import struct
  126162. 04h BYTE major version (v6.00 sets to 01h)
  126163. 05h BYTE minor version (v6.00 sets to 00h/0Bh)
  126164. SeeAlso: INT 21/AX=4402h/SF=01h
  126165. Bitfields for memory configuration flags:
  126166. Bit(s) Description (Table 03644)
  126167. 0 conventional memory sorted
  126168. 1 conventional memory filled
  126169. 2 ???
  126170. 3 ???
  126171. 4 expanded memory is in use
  126172. 5 ???
  126173. Format of QEMM 6.0 memory statistics:
  126174. Offset Size Description (Table 03645)
  126175. 00h BYTE 01h if Shadow RAM found, 00h otherwise
  126176. 01h DWORD initial conventional memory in bytes
  126177. 05h DWORD initial extended memory in bytes
  126178. 09h DWORD initial expanded memory in bytes
  126179. 0Dh DWORD initial "top" or "shadow" memory in bytes
  126180. 11h DWORD Unavailable conventional memory in bytes
  126181. 15h DWORD Unavailable extended memory in bytes
  126182. 19h DWORD Unavailable expanded memory in bytes
  126183. 1Dh DWORD Unavailable "top" or "shadow" memory in bytes
  126184. Add to offset 49h for Total unavailable top/shadow.
  126185. 21h DWORD QEMM code size in bytes
  126186. 25h DWORD QEMM data size in bytes
  126187. 29h DWORD bytes used for TASKS=
  126188. 2Dh DWORD DMA buffer size
  126189. 31h DWORD bytes used for MAPS=
  126190. 35h DWORD bytes of high RAM
  126191. 39h DWORD bytes used by mapped ROMs
  126192. 3Dh DWORD bytes of conventional memory provided by QEMM
  126193. 41h DWORD bytes of extended memory NOT converted by QEMM (EXT=xxx)
  126194. 45h DWORD bytes of EMS/XMS pool memory provided by QEMM
  126195. 49h DWORD Unavailable "top" or "shadow" memory in bytes
  126196. Add to offset 1Dh for Total unavailable top/shadow.
  126197. 4Dh DWORD conventional memory overhead in bytes
  126198. (set to 0 by QEMM.COM prior to call)
  126199. Format of Stealth ROM info [array]:
  126200. Offset Size Description (Table 03646)
  126201. 00h WORD starting segment of ROM
  126202. 02h WORD length of ROM in paragraphs
  126203. Format of QEMM EGA/VGA DAC register virtualization buffer:
  126204. Offset Size Description (Table 03647)
  126205. 00h BYTE (temp) current color register number
  126206. 01h BYTE (temp) number of bytes written so far for current color reg
  126207. 02h 768 BYTEs three bytes per color register
  126208. --------m-6740-------------------------------
  126209. INT 67 - LIM EMS - GET MANAGER STATUS
  126210. AH = 40h
  126211. Return: AH = status (00h,80h,81h,84h) (see #03648)
  126212. Note: this call can be used only after establishing that the EMS driver is in
  126213. fact present
  126214. SeeAlso: AH=3Fh,AX=FFA5h,@xxxxh:xxxxh"PMM"
  126215. (Table 03648)
  126216. Values for EMS function status:
  126217. 00h successful
  126218. 80h internal error
  126219. 81h hardware malfunction
  126220. 82h busy -- retry later
  126221. 83h invalid handle
  126222. 84h undefined function requested by application
  126223. 85h no more handles available
  126224. 86h error in save or restore of mapping context
  126225. 87h insufficient memory pages in system
  126226. 88h insufficient memory pages available
  126227. 89h zero pages requested
  126228. 8Ah invalid logical page number encountered
  126229. 8Bh invalid physical page number encountered
  126230. 8Ch page-mapping hardware state save area is full
  126231. 8Dh save of mapping context failed
  126232. 8Eh restore of mapping context failed
  126233. 8Fh undefined subfunction
  126234. 90h undefined attribute type
  126235. 91h feature not supported
  126236. 92h successful, but a portion of the source region has been overwritten
  126237. 93h length of source or destination region exceeds length of region
  126238. allocated to either source or destination handle
  126239. 94h conventional and expanded memory regions overlap
  126240. 95h offset within logical page exceeds size of logical page
  126241. 96h region length exceeds 1M
  126242. 97h source and destination EMS regions have same handle and overlap
  126243. 98h memory source or destination type undefined
  126244. 9Ah specified alternate map register or DMA register set not supported
  126245. 9Bh all alternate map register or DMA register sets currently allocated
  126246. 9Ch alternate map register or DMA register sets not supported
  126247. 9Dh undefined or unallocated alternate map register or DMA register set
  126248. 9Eh dedicated DMA channels not supported
  126249. 9Fh specified dedicated DMA channel not supported
  126250. A0h no such handle name
  126251. A1h a handle found had no name, or duplicate handle name
  126252. A2h attempted to wrap around 1M conventional address space
  126253. A3h source array corrupted
  126254. A4h operating system denied access
  126255. --------m-6741-------------------------------
  126256. INT 67 - LIM EMS - GET PAGE FRAME SEGMENT
  126257. AH = 41h
  126258. Return: AH = status (see also AH=40h)
  126259. 00h function successful
  126260. BX = segment of page frame
  126261. SeeAlso: AH=58h,AH=68h
  126262. --------m-6742-------------------------------
  126263. INT 67 - LIM EMS - GET NUMBER OF PAGES
  126264. AH = 42h
  126265. Return: AH = status (see also AH=40h)
  126266. 00h function successful
  126267. BX = number of unallocated pages
  126268. DX = total number of pages
  126269. BUG: DOS 6.0 EMM386.EXE causes a system lock-up or reboot if in AUTO mode
  126270. when this call is made; use AH=46h to ensure that EMM386 is ON
  126271. before making this call
  126272. SeeAlso: INT 2F/AX=2702h
  126273. --------m-6743-------------------------------
  126274. INT 67 - LIM EMS - GET HANDLE AND ALLOCATE MEMORY
  126275. AH = 43h
  126276. BX = number of logical pages to allocate
  126277. Return: AH = status (00h,80h,81h,84h,85h,87h,88h,89h) (see #03648)
  126278. DX = handle if AH=00h
  126279. SeeAlso: AH=45h
  126280. --------u-674321-----------------------------
  126281. INT 67 - Q87 v4+ - INSTALLATION CHECK
  126282. AX = 4321h
  126283. EAX = 87654321h (entire EAX value required)
  126284. Return: EAX = 12345678h if Q87 is installed
  126285. Note: this call requires that VCPI services be available; if they are not,
  126286. this call will not be recognized
  126287. BUG: v4.00-v4.03 will hang on most machines when run under bare DOS with
  126288. no memory manager, because neither Q87 nor UNLOAD87 checks whether
  126289. there is a valid INT 67 handler before performing an installation
  126290. check via INT 67
  126291. SeeAlso: AX=2833h,INT 21/AX=4321h
  126292. --------m-6744-------------------------------
  126293. INT 67 - LIM EMS - MAP MEMORY
  126294. AH = 44h
  126295. AL = physical page number (0-3)
  126296. BX = logical page number
  126297. or FFFFh to unmap (QEMM)
  126298. DX = handle
  126299. Return: AH = status (00h,80h,81h,83h,84h,8Ah,8Bh) (see #03648)
  126300. SeeAlso: AH=69h
  126301. --------m-6745-------------------------------
  126302. INT 67 - LIM EMS - RELEASE HANDLE AND MEMORY
  126303. AH = 45h
  126304. DX = EMM handle
  126305. Return: AH = status (00h,80h,81h,83h,84h,86h) (see #03648)
  126306. SeeAlso: AH=43h
  126307. --------m-6746-------------------------------
  126308. INT 67 - LIM EMS - GET EMM VERSION
  126309. AH = 46h
  126310. Return: AH = status (00h,80h,81h,84h) (see #03648)
  126311. AL = EMM version number if AH=00h
  126312. --------m-6747-------------------------------
  126313. INT 67 - LIM EMS - SAVE MAPPING CONTEXT
  126314. AH = 47h
  126315. DX = handle
  126316. Return: AH = status (00h,80h,81h,83h,84h,8Ch-8Eh) (see #03648)
  126317. SeeAlso: AH=48h
  126318. --------m-6748-------------------------------
  126319. INT 67 - LIM EMS - RESTORE MAPPING CONTEXT
  126320. AH = 48h
  126321. DX = handle
  126322. Return: AH = status (00h,80h,81h,83h,84h,8Eh) (see #03648)
  126323. SeeAlso: AH=47h
  126324. --------m-6749-------------------------------
  126325. INT 67 - LIM EMS - reserved - GET I/O PORT ADDRESSES
  126326. AH = 49h
  126327. Note: defined in EMS 3.0, but undocumented in EMS 3.2
  126328. --------m-674A-------------------------------
  126329. INT 67 - LIM EMS - reserved - GET TRANSLATION ARRAY
  126330. AH = 4Ah
  126331. Note: defined in EMS 3.0, but undocumented in EMS 3.2
  126332. --------m-674B-------------------------------
  126333. INT 67 - LIM EMS - GET NUMBER OF EMM HANDLES
  126334. AH = 4Bh
  126335. Return: AH = status (00h,80h,81h,83h,84h) (see #03648)
  126336. BX = number of EMM handles if AH=00h
  126337. --------m-674C-------------------------------
  126338. INT 67 - LIM EMS - GET PAGES OWNED BY HANDLE
  126339. AH = 4Ch
  126340. DX = EMM handle
  126341. Return: AH = status (see #02785)
  126342. BX = number of logical pages if AH=00h
  126343. SeeAlso: AH=4Dh
  126344. --------m-674D-------------------------------
  126345. INT 67 - LIM EMS - GET PAGES FOR ALL HANDLES
  126346. AH = 4Dh
  126347. ES:DI -> array to receive information
  126348. Return: AH = status (00h,80h,81h,84h) (see #03648)
  126349. ---if AH=00h---
  126350. BX = number of active EMM handles
  126351. array filled with 2-word entries, consisting of a handle and the
  126352. number of pages allocated to that handle
  126353. SeeAlso: AH=4Ch
  126354. --------m-674E-------------------------------
  126355. INT 67 - LIM EMS - GET OR SET PAGE MAP
  126356. AH = 4Eh
  126357. AL = subfunction
  126358. 00h get mapping registers
  126359. 01h set mapping registers
  126360. 02h get and set mapping registers at once
  126361. 03h get size of page-mapping array
  126362. DS:SI -> array holding information (AL=01h/02h)
  126363. ES:DI -> array to receive information (AL=00h/02h)
  126364. Return: AH = status (00h,80h,81h,84h,8Fh,A3h) (see also AH=40h)
  126365. 00h successful
  126366. AL = bytes in page-mapping array (AL=03h only)
  126367. array pointed to by ES:DI receives mapping info (AL=00h/02h)
  126368. Notes: this function was designed to be used by multitasking operating systems
  126369. and should not ordinarily be used by appplication software.
  126370. MD386 returns the size of the page-mapping array in AX instead of AL
  126371. SeeAlso: AH=4Fh
  126372. --------m-674F-------------------------------
  126373. INT 67 - LIM EMS 4.0 - GET/SET PARTIAL PAGE MAP
  126374. AH = 4Fh
  126375. AL = subfunction
  126376. 00h get partial page map
  126377. DS:SI -> structure containing list of segments whose mapping
  126378. contexts are to be saved
  126379. ES:DI -> array to receive page map
  126380. 01h set partial page map
  126381. DS:SI -> structure containing saved partial page map
  126382. 02h get size of partial page map
  126383. BX = number of mappable segments in the partial map to be saved
  126384. Return: AH = status (00h,80h,81h,84h,8Bh,8Fh,A3h) (see also AH=40h)
  126385. 8Bh one of the specified segments is not mappable
  126386. A3h contents of partial page map corrupted or count of mappable
  126387. segments exceeds total number of mappable segments in system
  126388. AL = size of partial page map for subfunction 02h
  126389. SeeAlso: AH=4Eh
  126390. --------m-6750-------------------------------
  126391. INT 67 - LIM EMS 4.0 - MAP/UNMAP MULTIPLE HANDLE PAGES
  126392. AH = 50h
  126393. AL = subfunction
  126394. 00h use physical page numbers
  126395. 01h use segment addresses
  126396. DX = handle
  126397. CX = number of entries in array
  126398. DS:SI -> mapping array (see #03649)
  126399. Return: AH = status (00h,80h,81h,83h,84h,8Ah,8Bh,8Fh) (see #03648)
  126400. SeeAlso: AH=40h
  126401. Format of EMS mapping array entry:
  126402. Offset Size Description (Table 03649)
  126403. 00h WORD logical page number or FFFFh to unmap physical page
  126404. 02h WORD physical page number or segment address
  126405. --------m-6751-------------------------------
  126406. INT 67 - LIM EMS 4.0 - REALLOCATE PAGES
  126407. AH = 51h
  126408. DX = handle
  126409. BX = number of pages to be allocated to handle
  126410. Return: AH = status (00h,80h,81h,83h,84h,87h,88h) (see #03650)
  126411. BX = actual number of pages allocated to handle
  126412. (Table 03650)
  126413. Values for EMS function status:
  126414. 00h successful
  126415. 80h internal error
  126416. 81h hardware malfunction
  126417. 83h invalid handle
  126418. 84h undefined function requested
  126419. 87h more pages requested than present in system
  126420. 88h more pages requested than currently available
  126421. 8Ah invalid logical page number encountered
  126422. 8Bh invalid physical page number encountered
  126423. 8Fh undefined subfunction
  126424. 90h undefined attribute type
  126425. 91h feature not supported
  126426. A0h no such handle name
  126427. A1h duplicate handle name
  126428. --------m-6752-------------------------------
  126429. INT 67 - LIM EMS 4.0 - GET/SET HANDLE ATTRIBUTES
  126430. AH = 52h
  126431. AL = subfunction
  126432. 00h get handle attributes
  126433. Return: AL = attribute
  126434. 00h handle is volatile
  126435. 01h handle is nonvolatile
  126436. 01h set handle attributes
  126437. BL = new attribute
  126438. 00h handle is volatile
  126439. 01h handle is nonvolatile
  126440. 02h get attribute capability
  126441. Return: AL = attribute capability
  126442. 00h only volatile handles supported
  126443. 01h both volatile and non-volatile supported
  126444. DX = handle
  126445. Return: AH = status (00h,80h,81h,83h,84h,8Fh-91h) (see #03648)
  126446. SeeAlso: AH=53h
  126447. --------m-6753-------------------------------
  126448. INT 67 - LIM EMS 4.0 - GET/SET HANDLE NAME
  126449. AH = 53h
  126450. AL = subfunction
  126451. 00h get handle name
  126452. ES:DI -> 8-byte buffer for handle name
  126453. 01h set handle name
  126454. DS:SI -> 8-byte handle name
  126455. DX = handle
  126456. Return: AH = status (00h,80h,81h,83h,84h,8Fh,A1h) (see #03648)
  126457. SeeAlso: AH=52h
  126458. --------m-6754-------------------------------
  126459. INT 67 - LIM EMS 4.0 - GET HANDLE DIRECTORY
  126460. AH = 54h
  126461. AL = subfunction
  126462. 00h get handle directory
  126463. ES:DI -> buffer for handle directory (see #03651)
  126464. 01h search for named handle
  126465. DS:SI -> 8-byte name
  126466. 02h get total number of handles
  126467. Return: AL = number of entries in handle directory (subfunction 00h)
  126468. DX = value of named handle (subfunction 01h)
  126469. BX = total number of handles (subfunction 02h)
  126470. AH = status (00h,80h,81h,84h,8Fh,A0h,A1h) (see also #03650)
  126471. A1h a handle found had no name
  126472. Format of EMS handle directory entry:
  126473. Offset Size Description (Table 03651)
  126474. 00h WORD handle
  126475. 02h 8 BYTEs handle's name
  126476. --------m-6755-------------------------------
  126477. INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND JUMP
  126478. AH = 55h
  126479. AL = subfunction
  126480. 00h physical page numbers provided by caller
  126481. 01h segment addresses provided by caller
  126482. DX = handle
  126483. DS:SI -> structure containing map and jump address
  126484. Return: (at target address unless error)
  126485. AH = status (00h,80h,81h,83h,84h,8Ah,8Bh,8Fh) (see #03648)
  126486. SeeAlso: AH=56h
  126487. --------m-6756-------------------------------
  126488. INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND CALL
  126489. AH = 56h
  126490. AL = subfunction
  126491. 00h physical page numbers provided by caller
  126492. DX = handle
  126493. DS:SI -> structure containing page map and call address
  126494. 01h segment addresses provided by caller
  126495. DX = handle
  126496. DS:SI -> structure containing page map and call address
  126497. 02h get page map stack space required
  126498. Return: BX = stack space required
  126499. Return: (if successful, the target address is called. Use a RETF to return
  126500. and restore mapping context)
  126501. AH = status (00h,80h,81h,83h,84h,8Ah,8Bh,8Fh) (see #03648)
  126502. SeeAlso: AH=55h
  126503. --------m-6756FF-----------------------------
  126504. INT 67 - RM386 v6.00 - ???
  126505. AX = 56FFh
  126506. DS:SI -> ???
  126507. ???
  126508. Return: ???
  126509. --------m-6757-------------------------------
  126510. INT 67 - LIM EMS 4.0 - MOVE/EXCHANGE MEMORY REGION
  126511. AH = 57h
  126512. AL = subfunction
  126513. 00h move memory region
  126514. 01h exchange memory region
  126515. DS:SI -> structure describing source and destination (see #03653)
  126516. Return: AH = status (see #03652)
  126517. Note: source and destination may overlap for a move, in which case the copy
  126518. direction is chosen such that the destination receives an intact copy
  126519. of the source region
  126520. (Table 03652)
  126521. Values for EMS function status:
  126522. 00h successful
  126523. 80h internal error
  126524. 81h hardware failure
  126525. 83h invalid handle
  126526. 84h undefined function requested
  126527. 8Ah invalid logical page number encountered
  126528. 8Fh undefined subfunction
  126529. 92h successful, but a portion of the source region has been overwritten
  126530. 93h length of source or destination region exceeds length of region
  126531. allocated to either source or destination handle
  126532. 94h conventional and expanded memory regions overlap
  126533. 95h offset within logical page exceeds size of logical page
  126534. 96h region length exceeds 1M
  126535. 97h source and destination EMS regions have same handle and overlap
  126536. 98h memory source or destination type undefined
  126537. A2h attempted to wrap around 1M conventional address space
  126538. Format of EMS copy data:
  126539. Offset Size Description (Table 03653)
  126540. 00h DWORD region length in bytes
  126541. 04h BYTE source memory type
  126542. 00h conventional
  126543. 01h expanded
  126544. 05h WORD source handle (0000h if conventional memory)
  126545. 07h WORD source initial offset (within page if EMS, segment if convent)
  126546. 09h WORD source initial segment (conv mem) or logical page (EMS)
  126547. 0Bh BYTE destination memory type
  126548. 00h conventional
  126549. 01h expanded
  126550. 0Ch WORD destination handle
  126551. 0Eh WORD destination initial offset
  126552. 10h WORD destination initial segment or page
  126553. --------m-6758-------------------------------
  126554. INT 67 - LIM EMS 4.0 - GET MAPPABLE PHYSICAL ADDRESS ARRAY
  126555. AH = 58h
  126556. AL = subfunction
  126557. 00h get mappable physical address array
  126558. ES:DI -> buffer to be filled with array (see #03654)
  126559. 01h get number of entries in m.p.a. array
  126560. Return: CX = number of entries in array
  126561. AH = status (00h,80h,81h,84h,8Fh) (see #03652)
  126562. Note: the returned array for subfunction 00h is filled in physical segment
  126563. address order
  126564. Format of EMS mappable physical address entry:
  126565. Offset Size Description (Table 03654)
  126566. 00h WORD physical page segment
  126567. 02h WORD physical page number
  126568. --------m-675857-----------------------------
  126569. INT 67 U - NETROOM??? - ???
  126570. AX = 5857h
  126571. BX = function??? (0057h,0059h,0159h seen)
  126572. ???
  126573. Return: ???
  126574. Note: BX=0059h appears to be analogous to AX=5800h and BX=0159h appears to
  126575. be analogous to AX=5801h; BX=0057h appears to indicate whether
  126576. AX=580xh or AX=5857h/BX=0x59h should be used
  126577. SeeAlso: AX=5BF0h
  126578. --------m-6759-------------------------------
  126579. INT 67 - LIM EMS 4.0 - GET EXPANDED MEMORY HARDWARE INFORMATION
  126580. AH = 59h
  126581. AL = subfunction
  126582. 00h get hardware configuration array
  126583. ES:DI -> buffer to be filled with array (see #03655)
  126584. 01h get unallocated raw page count
  126585. Return: BX = unallocated raw pages
  126586. DX = total raw pages
  126587. Return: AH = status (see also AH=58h"EMS 4.0")
  126588. A4h access denied by operating system
  126589. Note: subfunction 00h is for use by operating systems only, and can be
  126590. enabled or disabled at any time by the operating system
  126591. Format of EMS hardware configuration array:
  126592. Offset Size Description (Table 03655)
  126593. 00h WORD size of raw EMM pages in paragraphs
  126594. 02h WORD number of alternate register sets
  126595. 04h WORD size of mapping-context save area in bytes
  126596. 06h WORD number of register sets assignable to DMA
  126597. 08h WORD DMA operation type
  126598. 0000h DMA with alternate register sets
  126599. 0001h only one DMA register set
  126600. --------m-675A-------------------------------
  126601. INT 67 - LIM EMS 4.0 - ALLOCATE STANDARD/RAW PAGES
  126602. AH = 5Ah
  126603. AL = subfunction
  126604. 00h allocate standard pages
  126605. 01h allocate raw pages
  126606. BX = number of pages to allocate
  126607. Return: DX = handle
  126608. AH = status (00h,80h,81h,84h,85h,87h,88h,8Fh) (see #03648)
  126609. --------m-675B-------------------------------
  126610. INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET
  126611. AH = 5Bh
  126612. AL = subfunction
  126613. 00h get alternate map register set
  126614. Return: BL = current active alternate map register set number
  126615. ES:DI -> map register context save area if BL=00h
  126616. 01h set alternate map register set
  126617. BL = new alternate map register set number
  126618. ES:DI -> map register context save area if BL=0
  126619. 02h get alternate map save array size
  126620. Return: DX = array size in bytes
  126621. 03h allocate alternate map register set
  126622. Return: BL = number of map register set; 00h = not supported
  126623. 04h deallocate alternate map register set
  126624. BL = number of alternate map register set
  126625. Return: AH = status (00h,80h,81h,84h,8Fh,9Ah-9Dh,A3h,A4h) (see #03656)
  126626. Note: this function is for use by operating systems only, and can be
  126627. enabled or disabled at any time by the operating system
  126628. (Table 03656)
  126629. Values for EMS function status:
  126630. 00h successful
  126631. 80h internal error
  126632. 81h hardware malfunction
  126633. 84h undefined function requested
  126634. 8Fh undefined subfunction
  126635. 9Ah specified alternate map register or DMA register set not supported
  126636. 9Bh all alternate map register or DMA register sets currently allocated
  126637. 9Ch alternate map register or DMA register sets not supported
  126638. 9Dh undefined or unallocated alternate map register/DMA register set
  126639. 9Eh dedicated DMA channels not supported
  126640. 9Fh specified dedicated DMA channel not supported
  126641. A3h source array corrupted
  126642. A4h operating system denied access
  126643. --------m-675B-------------------------------
  126644. INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET - DMA REGISTERS
  126645. AH = 5Bh
  126646. AL = subfunction
  126647. 05h allocate DMA register set
  126648. Return: BL = DMA register set number, 00h if not supported
  126649. 06h enable DMA on alternate map register set
  126650. BL = DMA register set number
  126651. DL = DMA channel number
  126652. 07h disable DMA on alternate map register set
  126653. BL = DMA register set number
  126654. 08h deallocate DMA register set
  126655. BL = DMA register set number
  126656. Return: AH = status (00h,80h,81h,84h,8Fh,9Ah-9Fh,A3h,A4h) (see #03656)
  126657. Note: this function is for use by operating systems only, and can be
  126658. enabled or disabled at any time by the operating system
  126659. --------m-675BE0-----------------------------
  126660. INT 67 - MICEMM v4D, RM386 - GET LINEAR ADDRESS OF MEMORY
  126661. AX = 5BE0h
  126662. ES:BX -> memory for which to get linear address
  126663. Return: AH = 00h
  126664. CX:DX = linear address of physical memory corresponding to ES:BX
  126665. Program: RAM-MAN/386 is the memory manager included with Helix's Netroom;
  126666. MICEMM is a memory manager for some Micronics motherboards
  126667. Note: this has been superceded by AX=DE06h, which should be used instead
  126668. SeeAlso: AX=5BF0h,AX=5BF1h,AX=DE06h
  126669. --------m-675BE1-----------------------------
  126670. INT 67 - RM386 v6.00+ - GET MEMORY MANAGER SIZE
  126671. AX = 5BE1h
  126672. Return: AH = 00h
  126673. CX = code and data size in bytes
  126674. DX:BX = physical address of RM386 code
  126675. DI:SI = total size of RM386 area including handle tables
  126676. BP = number of additional pages (high DOS, etc.)
  126677. SeeAlso: AX=5BE0h,AX=5BE2h
  126678. --------m-675BE2-----------------------------
  126679. INT 67 - RM386 v6.00+ - GET INTERRUPT VECTORS
  126680. AX = 5BE2h
  126681. Return: DS:SI -> V86-mode table (see #03657)
  126682. ES:BX -> ??? (undoc, middle of device driver interrupt routine!)
  126683. SeeAlso: AX=5BE0h,AX=5BE1h
  126684. Format of RM386 V86-mode table:
  126685. Offset Size Description (Table 03657)
  126686. 00h DWORD original INT 13 vector
  126687. 04h DWORD original INT 15 vector
  126688. 08h DWORD original INT 19 vector
  126689. 0Ch DWORD original INT 21 vector
  126690. 10h DWORD original INT 4B vector
  126691. 14h DWORD original INT 67 vector
  126692. --------m-675BF0-----------------------------
  126693. INT 67 - MICEMM v4D, RM386 - INSTALLATION CHECK
  126694. AX = 5BF0h
  126695. Return: AH = 00h if MICEMM or RM386 present
  126696. BX = code segment of driver
  126697. Program: MICEMM is the Micronics Expanded Memory Manager; RM386 is the memory
  126698. manager included in Helix Software's Netroom
  126699. SeeAlso: AH=3Fh,AX=5BE0h,AX=5BF1h
  126700. --------m-675BF1-----------------------------
  126701. INT 67 - MICEMM v4D, RM386 - GET ADDRESS MAP
  126702. AX = 5BF1h
  126703. ES:BX -> 256-byte (MICEMM) or 512-byte (RM386) buffer for memory types
  126704. Return: AH = 00h
  126705. ES:BX buffer filled (see #03658)
  126706. Note: each byte in the buffer specifies the type of a 4K page of memory
  126707. SeeAlso: AX=5BE0h,AX=5BF0h
  126708. (Table 03658)
  126709. Values for MICEMM/RM386 memory type:
  126710. 00h unused (MICEMM), RAM/available (RM386)
  126711. 02h DOS extension (XMS UMB)
  126712. 04h shadowed ROM
  126713. 08h mappable EMS
  126714. 10h page frame
  126715. 20h ROM
  126716. 40h reserved (video memory, etc)
  126717. 80h RAM (MICEMM), Windows UMB (RM386)
  126718. --------m-675BF2-----------------------------
  126719. INT 67 - RM386 - GET RM386 INTERNAL DATA
  126720. AX = 5BF2h
  126721. CX = size of buffer
  126722. DS:SI -> buffer for internal data
  126723. (documentation says ES:BX -> buffer, SI = offset within RM386)
  126724. Return: buffer filled
  126725. Note: the data returned by this function is release-specific
  126726. SeeAlso: AX=5BF0h
  126727. --------m-675BF3-----------------------------
  126728. INT 67 - RM386 - RETURN TO REAL MODE
  126729. AX = 5BF3h
  126730. Return: nothing
  126731. Note: use AX=5DE0h instead of this functin
  126732. SeeAlso: AX=5BF0h,AX=5DE0h
  126733. --------m-675BF4-----------------------------
  126734. INT 67 - RM386 v6.00 - GET RM386 GLOBAL FLAGS
  126735. AX = 5BF4h
  126736. Return: AH = 00h
  126737. BX = global flags 1 (see #03659)
  126738. CX = global flags 2 (see #03660)
  126739. DX = global flags 3 (see #03661)
  126740. SI = global flags 4 (see #03662)
  126741. SeeAlso: AX=5BF0h
  126742. Bitfields for RM386 global flags 1:
  126743. Bit(s) Description (Table 03659)
  126744. 0-3 reserved
  126745. 4 V86 mode
  126746. 5 reserved
  126747. 6 80386 or higher CPU
  126748. 7,8 reserved
  126749. 9 A20 enabled at startup
  126750. 10 "HIGH_IO"
  126751. 11 ROM
  126752. 12 large frame
  126753. 13,14 reserved
  126754. 15 PS/2-style A20 control
  126755. Bitfields for RM386 global flags 2:
  126756. Bit(s) Description (Table 03660)
  126757. 0 HMA in use
  126758. 1 XMS present
  126759. 2 using XMS driver memory
  126760. 3 HIGH (NEAT only)
  126761. 4-7 reserved
  126762. 8 NOBKTRAP
  126763. 9 NORESET
  126764. 10 ALTMAP
  126765. 11 NOFRAME
  126766. 12-15 reserved
  126767. Bitfields for RM386 global flags 3:
  126768. Bit(s) Description (Table 03661)
  126769. 0 NOTEST
  126770. 1 NOEBDA
  126771. 2 Windows3 support
  126772. 3 system board mouse
  126773. 4 DISKBUF
  126774. 5 EBDALOW
  126775. 6 A20 global enable flag
  126776. 7 A20 flag
  126777. 8 EBDA moved to stub
  126778. 9 VXD file was found
  126779. 10 reserved
  126780. 11 NOBOOTMAP
  126781. 12 AUTO
  126782. 13 PS/2 machine
  126783. 14 Compaq ROM merge active
  126784. 15 NOHMA set
  126785. Bitfields for RM386 global flags 4:
  126786. Bit(s) Description (Table 03662)
  126787. 0 "NOV8259" don't virtualize interrupt controller
  126788. 1 NOSCSI
  126789. 2 NOSCAN
  126790. 3 NOTR
  126791. 4 ALTBOOT
  126792. 5 NOCOMPQ
  126793. 6 KB2TRAP
  126794. 7 DESHADOW
  126795. 8 Video 7 VGA detected
  126796. 9 reserved
  126797. 10 NOVGA
  126798. 11 NOPS2
  126799. 12 DEBUG
  126800. 13 NOVKB
  126801. 14,15 reserved
  126802. --------m-675BF5-----------------------------
  126803. INT 67 - RM386 v6.00 - GET RM386 EMS HANDLE COUNT
  126804. AX = 5BF5h
  126805. Return: AH = status
  126806. 00h successful
  126807. BX = current number of allocated EMS handles
  126808. 84h function not available
  126809. SeeAlso: AX=5BF0h
  126810. --------m-675C-------------------------------
  126811. INT 67 - LIM EMS 4.0 - PREPARE EXPANDED MEMORY HARDWARE FOR WARM BOOT
  126812. AH = 5Ch
  126813. Return: AH = status (see #03663)
  126814. Note: when MS-DOS v6.xx EMM386 is loaded and the keyboard driver supports
  126815. INT 15/AH=4Fh (keyboard intercept) calls, the system may hang
  126816. instead of booting if this function is called just prior to a jump
  126817. to F000h:FFF0h
  126818. (Table 03663)
  126819. Values for EMS function status:
  126820. 00h successful
  126821. 80h internal error
  126822. 81h hardware malfunction
  126823. 84h undefined function requested
  126824. --------m-675D-------------------------------
  126825. INT 67 - LIM EMS 4.0 - ENABLE/DISABLE OS FUNCTION SET FUNCTIONS
  126826. AH = 5Dh
  126827. AL = subfunction
  126828. 00h enable OS Function Set
  126829. 01h disable OS Function Set
  126830. 02h return access key (resets memory manager, returns access key at
  126831. next invocation)
  126832. BX,CX = access key returned by first invocation
  126833. Return: BX,CX = access key, returned only on first invocation of function
  126834. AH = status (see also AH=5Ch)
  126835. 8Fh undefined subfunction
  126836. A4h operating system denied access
  126837. --------m-675D03-----------------------------
  126838. INT 67 u - Nanosoft MD386 - INTERNAL INITIALIZATION
  126839. AX = 5D03h
  126840. ???
  126841. Return: ???
  126842. Program: MD386 is a subset EMS memory manager by Nanosoft specifically
  126843. designed for use with the MultiDOS Plus multitasker
  126844. SeeAlso: AX=5D04h,AX=5E00h
  126845. --------m-675D04-----------------------------
  126846. INT 67 - Nanosoft MD386 - GET ALTERNATE MAP STRUCTURE
  126847. AX = 5D04h
  126848. BX = alternate register set number
  126849. ES:DI -> 1024-byte buffer for map structure
  126850. Return: AH = status (see #03648)
  126851. buffer filled if AH=00h
  126852. Note: used for debugging purposes
  126853. SeeAlso: AX=5D05h
  126854. --------m-675D05-----------------------------
  126855. INT 67 - Nanosoft MD386 - GET INTERNAL HANDLE TABLE
  126856. AX = 5D05h
  126857. BX = handle number
  126858. ES:DI -> 1024-byte buffer for handle table
  126859. Return: AH = status (see #03648)
  126860. buffer filled if AH=00h
  126861. Note: used for debugging purposes
  126862. SeeAlso: AX=5D04h
  126863. --------m-675DE0-----------------------------
  126864. INT 67 - RM386 - DISABLE RM386
  126865. AX = 5DE0h
  126866. Note: RM386 traps this function on the initial transition to protected
  126867. mode caused by the INT instruction, which means it can not be
  126868. overridden simply by hooking the interrupt
  126869. SeeAlso: AX=5DE1h
  126870. --------m-675DE1-----------------------------
  126871. INT 67 - RM386 - ENABLE RM386
  126872. AX = 5DE1h
  126873. Note: RM386 traps this function on the initial transition to protected
  126874. mode caused by the INT instruction, which means it can not be
  126875. overridden simply by hooking the interrupt
  126876. SeeAlso: AX=5DE0h
  126877. --------m-675DE2-----------------------------
  126878. INT 67 - RM386 - GET PAGE TABLE
  126879. AX = 5DE2h
  126880. ES:DI -> 1088-byte buffer for page table
  126881. Return: ES:DI buffer filled
  126882. Note: RM386 traps this function on the initial transition to protected
  126883. mode caused by the INT instruction, which means it can not be
  126884. overridden simply by hooking the interrupt
  126885. SeeAlso: AX=5DE3h
  126886. --------m-675DE3-----------------------------
  126887. INT 67 - RM386 - SET PAGE TABLE
  126888. AX = 5DE3h
  126889. ES:DI -> 1088-byte buffer containing page table
  126890. Notes: only the access bits of the page table are used, the remainder is
  126891. ignored
  126892. RM386 traps this function on the initial transition to protected
  126893. mode caused by the INT instruction, which means it can not be
  126894. overridden simply by hooking the interrupt
  126895. SeeAlso: AX=5DE2h
  126896. --------m-675DE4-----------------------------
  126897. INT 67 - RM386 - SET WRITE-PROTECTION FOR PAGE IN FIRST MEGABYTE
  126898. AX = 5DE4h
  126899. BL = page number
  126900. BH = access (00h read-only, 01h read-write)
  126901. Note: RM386 traps this function on the initial transition to protected
  126902. mode caused by the INT instruction, which means it can not be
  126903. overridden simply by hooking the interrupt
  126904. --------m-675DE5-----------------------------
  126905. INT 67 - RM386 - MAP PHYSICAL PAGE TO PHYSICAL SEGMENT
  126906. AX = 5DE5h
  126907. EBX = physical page number
  126908. DX = page number in first megabyte to be remapped (linear-addr SHR 12)
  126909. Return: AH = status
  126910. 00h successful
  126911. 8Bh invalid destination page (not in first megabyte)
  126912. Note: RM386 traps this function on the initial transition to protected
  126913. mode caused by the INT instruction, which means it can not be
  126914. overridden simply by hooking the interrupt
  126915. SeeAlso: AX=5DE6h
  126916. --------m-675DE6-----------------------------
  126917. INT 67 - RM386 - MAP LOGICAL 4K PAGE TO PHYSICAL SEGMENT
  126918. AX = 5DE6h
  126919. BX = logical page number in 4K pages from beginning of memory for EMS
  126920. handle
  126921. CX = segment in first megabyte to be remapped
  126922. DX = previously-allocated EMS handle
  126923. Return: AH = status
  126924. 00h successful
  126925. 83h invalid handle
  126926. 8Ah invalid logical page (out of handle's range)
  126927. 8Bh invalid destination page (not in first megabyte)
  126928. Note: RM386 traps this function on the initial transition to protected
  126929. mode caused by the INT instruction, which means it can not be
  126930. overridden simply by hooking the interrupt
  126931. SeeAlso: AX=5DE5h
  126932. --------m-675DE7-----------------------------
  126933. INT 67 - RM386 - SET PAGE TABLE BITS FOR RANGE OF PAGES
  126934. AX = 5DE7h
  126935. BL = page table bits to be set (bits 2-0 = U/S, R/W, P)
  126936. CX = number of pages to set
  126937. DX = first page number to set (in first megabyte)
  126938. Return: AH = status
  126939. 00h successful
  126940. 8Bh invalid destination page (not in first megabyte)
  126941. A5h invalid page bits
  126942. A6h invalid page count (overflows first megabyte)
  126943. Note: RM386 traps this function on the initial transition to protected
  126944. mode caused by the INT instruction, which means it can not be
  126945. overridden simply by hooking the interrupt
  126946. --------m-675DE8-----------------------------
  126947. INT 67 - RM386 - GET PARTIAL PAGE TABLE
  126948. AX = 5DE8h
  126949. BX = starting page number in first megabyte+HMA (0000h-010Fh)
  126950. CX = number of page table entries to get
  126951. ES:DI -> buffer for DWORD page table entries
  126952. Return: AH = status (00h successful, 8Bh invalid page)
  126953. Note: RM386 traps this function on the initial transition to protected
  126954. mode caused by the INT instruction, which means it can not be
  126955. overridden simply by hooking the interrupt
  126956. SeeAlso: AX=5DE9h
  126957. --------m-675DE9-----------------------------
  126958. INT 67 - RM386 - SET PARTIAL PAGE TABLE
  126959. AX = 5DE9h
  126960. BX = starting page number in first megabyte+HMA (0000h-010Fh)
  126961. CX = number of page table entries to get
  126962. DS:SI -> buffer of DWORD page table entries
  126963. Return: AH = status (00h successful, 8Bh invalid destination page)
  126964. Note: RM386 traps this function on the initial transition to protected
  126965. mode caused by the INT instruction, which means it can not be
  126966. overridden simply by hooking the interrupt
  126967. SeeAlso: AX=5DE8h
  126968. --------m-675DEA-----------------------------
  126969. INT 67 - RM386 - V86-MODE I/O PORT TRAPPING CONTROL
  126970. AX = 5DEAh
  126971. BX = function
  126972. 00h globally disable V86-mode trapping
  126973. 01h globally enable V86-mode trapping
  126974. CL = interrupt to use for trapping
  126975. 02h get I/O trapping state
  126976. Return: AH = status
  126977. 00h successful
  126978. BX = current trapping state (function 02h)
  126979. 0000h disabled, 0001h enabled
  126980. CX = interrupt used as trap interrupt (functions 00h and 02h)
  126981. Notes: RM386 traps this function on the initial transition to protected
  126982. mode caused by the INT instruction, which means it can not be
  126983. overridden simply by hooking the interrupt
  126984. when I/O trapping is enabled and I/O port access occurs, RM386
  126985. simulates an INT instruction for the specified interrupt; the
  126986. interrupt handler is responsible for decoding the trapped instruction
  126987. and performing the appropriate action. INT 2C/AX=002Dh provides a
  126988. similar but more-easily used interface.
  126989. SeeAlso: AX=5DEBh,AH=EFh"RM386",INT 2C/AX=002Dh
  126990. --------m-675DEB-----------------------------
  126991. INT 67 - RM386 - V86-MODE I/O TRAPPING PORT CONTROL
  126992. AX = 5DEBh
  126993. BX = function
  126994. 00h disable V86-mode trapping for specified port
  126995. 01h enable V86-mode trapping for specified port
  126996. 02h get V86-mode trapping state for specified port
  126997. DX = port for which to enable/disable/query trapping
  126998. Return: AH = status
  126999. 00h successful
  127000. BX = current trapping state (00h off, 01h on) (function 02)
  127001. A7h invalid port ID
  127002. A8h reserved port--cannot trap/untrap (DMA/INT/KBD controllers)
  127003. Notes: RM386 traps this function on the initial transition to protected
  127004. mode caused by the INT instruction, which means it can not be
  127005. overridden simply by hooking the interrupt
  127006. SeeAlso: AX=5DEAh
  127007. --------m-675DFD-----------------------------
  127008. INT 67 U - RM386 v6.00 - ???
  127009. AX = 5DFDh
  127010. ???
  127011. Return: ???
  127012. Note: RM386 traps this function on the initial transition to protected
  127013. mode caused by the INT instruction, which means it can not be
  127014. overridden simply by hooking the interrupt
  127015. SeeAlso: AX=5DFEh
  127016. --------m-675DFE-----------------------------
  127017. INT 67 U - RM386 v6.00 - ???
  127018. AX = 5DFEh
  127019. ???
  127020. Return: ???
  127021. Note: RM386 traps this function on the initial transition to protected
  127022. mode caused by the INT instruction, which means it can not be
  127023. overridden simply by hooking the interrupt
  127024. SeeAlso: AX=5DFDh
  127025. --------m-675DFF-----------------------------
  127026. INT 67 U - RM386 v6.00 - ???
  127027. AX = 5DFFh
  127028. ???
  127029. Return: ???
  127030. Note: RM386 traps this function on the initial transition to protected
  127031. mode caused by the INT instruction, which means it can not be
  127032. overridden simply by hooking the interrupt
  127033. SeeAlso: AX=5DFDh,AX=5DFEh
  127034. --------m-675E00-----------------------------
  127035. INT 67 - Nanosoft MD386 - SET HARDWARE BREAKPOINT
  127036. AX = 5E00h
  127037. DH = breakpoint number (0-3)
  127038. DL = breakpoint attributes (used to set DR7)
  127039. CX:BX = linear address of breakpoint
  127040. SeeAlso: AX=5D03h,AX=5E01h
  127041. --------m-675E01-----------------------------
  127042. INT 67 - Nanosoft MD386 - GET HARDWARE DEBUG REGISTER
  127043. AX = 5E01h
  127044. BL = register number (0-3,7)
  127045. Return: CX:BX = value of specified DRx register
  127046. SeeAlso: AX=5E00h
  127047. --------m-675E02-----------------------------
  127048. INT 67 - Nanosoft MD386 - SET DEBUG EXCEPTION HANDLER
  127049. AX = 5E02h
  127050. CX:BX -> exception handler
  127051. Note: the specified exception handler is called with a simulated interrupt
  127052. whenever a debug exception occurs which was caused by a hardware
  127053. breakpoint set with the debug registers
  127054. SeeAlso: AX=5E04h,AX=5E05h
  127055. --------m-675E03-----------------------------
  127056. INT 67 - Nanosoft MD386 - ENABLE/DISABLE MEMORY WRITE PROTECTION
  127057. AX = 5E03h
  127058. BL = register map set number
  127059. BH = new state (00h read-only, else read-write)
  127060. CX = linear page number (linear address SHR 12)
  127061. Note: setting write protection in map set 0 will cause the setting to become
  127062. the default for newly-allocated map sets
  127063. --------m-675E04-----------------------------
  127064. INT 67 - Nanosoft MD386 - GET DEBUG EXCEPTION
  127065. AX = 5E04h
  127066. Return: BL = debug exception (low byte of DR6 register)
  127067. SeeAlso: AX=5E02h,AX=5E05h
  127068. --------m-675E05-----------------------------
  127069. INT 67 - Nanosoft MD386 - IGNORE NEXT DEBUG EXCEPTION
  127070. AX = 5E05h
  127071. Note: may be required when using AX=5E02h for handling instruction
  127072. breakpoints
  127073. SeeAlso: AX=5E02h,AX=5E04h
  127074. --------m-6760-------------------------------
  127075. INT 67 - EEMS - GET PHYSICAL WINDOW ARRAY
  127076. AH = 60h
  127077. ES:DI -> buffer
  127078. Return: AH = status (see also AH=40h)
  127079. AL = number of entries
  127080. buffer at ES:DI filled
  127081. --------m-6761-------------------------------
  127082. INT 67 - EEMS - GENERIC ACCELERATOR CARD SUPPORT
  127083. AH = 61h
  127084. ???
  127085. Return: ???
  127086. Note: can be used by accelerator card manufacturer to flush RAM cache,
  127087. ensuring that the cache accurately reflects what the processor would
  127088. see without the cache.
  127089. --------m-676100-----------------------------
  127090. INT 67 - EEMS - STB GENERIC ACCELERATOR CARD SUPPORT - INSTALLATION CHECK???
  127091. AX = 6100h
  127092. Return: AH = status (00h if installed???)
  127093. Note: STB's RAPIDMAP.SYS EMS driver calls this function and AX=6101h if
  127094. the signature "GACXXX" is found at offset 0Ah in the INT 67 handler's
  127095. segment (i.e. a device driver named GACXXX?? has hooked INT 67)
  127096. SeeAlso: AX=6101h,INT 02/SI=0714h
  127097. --------m-676101-----------------------------
  127098. INT 67 - EEMS - STB GENERIC ACCELERATOR CARD SUPPORT - GET ??? ENTRY POINT
  127099. AX = 6101h
  127100. Return: AH = status
  127101. ---if AH=00h---
  127102. ES:BX -> ??? entry point
  127103. SeeAlso: AX=6100h
  127104. --------m-6768-------------------------------
  127105. INT 67 - EEMS - GET ADDRESSES OF ALL PAGE FRAMES IN SYSTEM
  127106. AH = 68h
  127107. ES:DI -> buffer
  127108. Return: AH = status (see also AH=40h)
  127109. AL = number of entries
  127110. buffer at ES:DI filled
  127111. Note: equivalent to LIM 4.0 function 58h
  127112. --------m-6769-------------------------------
  127113. INT 67 - EEMS - MAP PAGE INTO FRAME
  127114. AH = 69h
  127115. AL = frame number
  127116. BX = page number
  127117. DX = handle
  127118. Return: AH = status (see also AH=40h)
  127119. Note: similar to EMS function 44h
  127120. SeeAlso: AH=44h,AH=50h,AH=6Ah
  127121. --------m-676A-------------------------------
  127122. INT 67 - EEMS - PAGE MAPPING
  127123. AH = 6Ah
  127124. AL = subfunction
  127125. 00h save partial page map
  127126. CH = first page frame
  127127. CL = number of frames
  127128. ES:DI -> buffer which is to be filled
  127129. 01h restore partial page map
  127130. CH = first page frame
  127131. CL = number of frames
  127132. DI:SI -> previously saved page map
  127133. 02h save and restore partial page map
  127134. CH = first page frame
  127135. CL = number of frames
  127136. ES:DI = buffer for current page map
  127137. DI:SI = new page map
  127138. 03h get size of save array
  127139. CH = first page frame
  127140. CL = number of frames
  127141. Return: AL = size of array in bytes
  127142. 04h switch to standard map register setting
  127143. 05h switch to alternate map register setting
  127144. 06h deallocate pages mapped to frames in conventional memory
  127145. CH = first page frame
  127146. CL = number of frames
  127147. Return: AH = status (see #03648)
  127148. Note: similar to EMS function 4Eh, except that a subrange of pages can be
  127149. specified
  127150. SeeAlso: AH=69h
  127151. --------m-676B-------------------------------
  127152. INT 67 - DESQview 2.42-2.53 - BUG
  127153. AH = 6Bh
  127154. Note: the EMM.DVR portion of DESQview branches to a random location on this
  127155. function due to a fencepost error
  127156. --------m-67DD-------------------------------
  127157. INT 67 - Quadtel QMAPS - API
  127158. AH = DDh
  127159. AL = function
  127160. ???
  127161. Return: ???
  127162. Notes: details are not yet available
  127163. Hewlett-Packard's HPMM.SYS is a licensed version of QMAPS, and thus
  127164. supports this API
  127165. SeeAlso: AH=3Fh,AX=FFA5h
  127166. --------E-67DE00-----------------------------
  127167. INT 67 - Virtual Control Program Interface - INSTALLATION CHECK
  127168. AX = DE00h
  127169. Return: AH = status
  127170. 00h VCPI is present
  127171. BH = major version number
  127172. BL = minor version number
  127173. nonzero VCPI not present
  127174. BUG: MS Windows 3.00 is reported to "object violently" to this call.
  127175. SeeAlso: INT 2F/AX=1687h
  127176. --------E-67DE01-----------------------------
  127177. INT 67 - Virtual Control Program Interface - GET PROTECTED MODE INTERFACE
  127178. AX = DE01h
  127179. ES:DI -> 4K page table buffer
  127180. DS:SI -> three descriptor table entries in GDT
  127181. first becomes code segment descriptor, other two for use by
  127182. main control program
  127183. Return: AH = 00h successful
  127184. DI -> first unused page table entry in buffer
  127185. EBX -> protected mode entry point in code segment (see #03664)
  127186. AH = nonzero failed
  127187. Note: protected mode entry point may be called with AX=DE00h-DE05h and
  127188. AX=DE0Ch (in each case, all other registers as appropriate for
  127189. the function)
  127190. SeeAlso: INT 2F/AX=1687h,INT 67/AH=3Fh
  127191. (Table 03664)
  127192. Call QEMM v6.03 protected mode entry point additionally with:
  127193. AX = DF00h ???
  127194. ???
  127195. Return: ???
  127196. AX = DF01h ???
  127197. ???
  127198. Return: ???
  127199. --------E-67DE02-----------------------------
  127200. INT 67 - Virtual Control Program Interface - GET MAX PHYSICAL MEMORY ADDRESS
  127201. AX = DE02h
  127202. Return: AH = 00h successful
  127203. EDX = physical address of highest 4K memory page
  127204. AH nonzero: failed
  127205. SeeAlso: AH=3Fh
  127206. --------E-67DE03-----------------------------
  127207. INT 67 - Virtual Control Program Interface - GET NUMBER OF FREE 4K PAGES
  127208. AX = DE03h
  127209. Return: AH = 00h successful
  127210. EDX = number of free 4K pages
  127211. AH nonzero: failed
  127212. Notes: returns total number of pages available to ALL tasks in system
  127213. also available in protected mode by calling the protected-mode VCPI
  127214. entry point (see AX=DE01h,#03664)
  127215. SeeAlso: AX=DE04h
  127216. --------E-67DE04-----------------------------
  127217. INT 67 - Virtual Control Program Interface - ALLOCATE A 4K PAGE
  127218. AX = DE04h
  127219. Return: AH = 00h successful
  127220. EDX = physical address of allocated page
  127221. AH nonzero: failed
  127222. Notes: the client program is responsible for freeing all memory allocated
  127223. with this call before terminating
  127224. also available in protected mode by calling the protected-mode VCPI
  127225. entry point (see AX=DE01h,#03664)
  127226. SeeAlso: AH=3Fh,AX=DE03h,AX=DE05h
  127227. --------E-67DE05-----------------------------
  127228. INT 67 - Virtual Control Program Interface - FREE 4K PAGE
  127229. AX = DE05h
  127230. EDX = physical address of 4K page
  127231. Return: AH = status
  127232. 00h successful
  127233. nonzero failed
  127234. Note: also available in protected mode by calling the protected-mode VCPI
  127235. entry point (see AX=DE01h,#03664)
  127236. SeeAlso: AH=3Fh,AX=DE04h
  127237. --------E-67DE06-----------------------------
  127238. INT 67 - Virtual Control Program Interface - GET PHYS ADDR OF PAGE IN FIRST MB
  127239. AX = DE06h
  127240. CX = page number (linear address shifted right 12 bits)
  127241. Return: AH = status
  127242. 00h successful
  127243. EDX = physical address of page
  127244. nonzero invalid page number (AH = 8Bh recommended)
  127245. SeeAlso: AX=5BE0h
  127246. --------E-67DE07-----------------------------
  127247. INT 67 - Virtual Control Program Interface - READ CR0
  127248. AX = DE07h
  127249. Return: AH = 00h
  127250. EBX = value of Control Register 0
  127251. SeeAlso: AH=3Fh,AX=DE07h
  127252. --------E-67DE08-----------------------------
  127253. INT 67 - Virtual Control Program Interface - READ DEBUG REGISTERS
  127254. AX = DE08h
  127255. ES:DI -> array of 8 DWORDs
  127256. Return: AH = 00h
  127257. buffer filled with DR0 first, DR7 last, DR4 and DR5 unused
  127258. SeeAlso: AH=3Fh,AX=DE09h
  127259. --------E-67DE09-----------------------------
  127260. INT 67 - Virtual Control Program Interface - SET DEBUG REGISTERS
  127261. AX = DE09h
  127262. ES:DI -> array of 8 DWORDs holding new values of debug registers
  127263. Return: AH = 00h
  127264. Note: values for DR4 and DR5 ignored
  127265. SeeAlso: AH=3Fh,AX=DE08h
  127266. --------E-67DE0A-----------------------------
  127267. INT 67 - Virtual Control Program Interface - GET 8259 INTERRUPT VECTOR MAPPINGS
  127268. AX = DE0Ah
  127269. Return: AH = 00h successful
  127270. BX = first vector used by master 8259 (IRQ0)
  127271. CX = first vector used by slave 8259 (IRQ8)
  127272. AH nonzero: failed
  127273. Note: CX is undefined in systems without a slave 8259
  127274. SeeAlso: AX=DE0Bh,INT 21/AX=250Ch,INT 31/AX=0400h
  127275. --------E-67DE0B-----------------------------
  127276. INT 67 - Virtual Control Program Interface - SET 8259 INTERRUPT VECTOR MAPPINGS
  127277. AX = DE0Bh
  127278. BX = first vector used by master 8259
  127279. CX = first vector used by slave 8259
  127280. interrupts disabled
  127281. Return: AH = 00h successful
  127282. AH nonzero: failed
  127283. Notes: This call merely informs the server that the client has changed the
  127284. interrupt mappings. The client may not change the mappings if they
  127285. have already been changed by the server or another client, and is
  127286. responsible for restoring the original mappings before terminating.
  127287. SeeAlso: AX=DE0Ah,INT 2C/AX=002Ah
  127288. --------E-67DE0C-----------------------------
  127289. INT 67 - Virtual Control Program Interface - SWITCH TO PROTECTED MODE
  127290. AX = DE0Ch
  127291. ESI = linear address in first megabyte of values for system
  127292. registers (see #03665)
  127293. interrupts disabled
  127294. Return: interrupts disabled
  127295. GDTR, IDTR, LDTR, TR loaded
  127296. SS:ESP must have at least 16 bytes space, and the entry point is
  127297. required to set up a new stack before enabling interrupts
  127298. EAX, ESI, DS, ES, FS, GS destroyed
  127299. Note: in protected mode, calling the protected-mode VCPI entry point with
  127300. AX = DE0Ch
  127301. DS = segment selector mapping entire linear address space obtained
  127302. via AX=DE01h
  127303. SS:ESP in first megabyte of linear memory
  127304. STACK:QWORD return address from FAR call to 32-bit segment
  127305. DWORD EIP
  127306. DWORD CS
  127307. DWORD reserved for EFLAGS
  127308. DWORD ESP
  127309. DWORD SS
  127310. DWORD ES
  127311. DWORD DS
  127312. DWORD FS
  127313. DWORD GS
  127314. and interrupts disabled, will switch to virtual86 mode with
  127315. interrupts disabled, all segment registers loaded, and EAX
  127316. destroyed.
  127317. SeeAlso: AH=3Fh,INT 15/AH=89h,INT D4/AH=10h
  127318. Format of system register values for switch to protected mode:
  127319. Offset Size Description (Table 03665)
  127320. 00h DWORD value for CR3
  127321. 04h DWORD linear address in first megabyte of value for GDTR
  127322. 08h DWORD linear address in first megabyte of value for IDTR
  127323. 0Ch WORD value for LDTR
  127324. 0Eh WORD value for TR
  127325. 10h PWORD CS:EIP of protected mode entry-point
  127326. --------m-67DE0F-----------------------------
  127327. INT 67 - Netroom3 - ???
  127328. AX = DE0Fh
  127329. ???
  127330. Return: ???
  127331. Note: called by Netroom's DPMI.EXE
  127332. --------m-67EF-------------------------------
  127333. INT 67 - RM386 v6.00+ - EXECUTE XMS FUNCTION
  127334. AH = EFh
  127335. AL = function (00h-12h,80h-8Fh)
  127336. other register as appropriate for XMS function
  127337. Return: varies by function (see INT 2F/AX=4310h"XMS")
  127338. Note: these functions appear to be equivalent to the XMS functions with the
  127339. same numbers
  127340. SeeAlso: AX=5DFFh"RM386",INT 2F/AX=4310h"XMS"
  127341. --------m-67FFA5-----------------------------
  127342. INT 67 - Microsoft EMM386.EXE v4.20+ - INSTALLATION CHECK
  127343. AX = FFA5h
  127344. Return: AX = 845Ah/84A5h if loaded
  127345. BX:CX -> API entry point (see #03666)
  127346. Notes: this call is available even if EMM386 is not providing EMS
  127347. the returned AX is 845Ah inside of MSWindows, 84A5h under bare DOS
  127348. if no other program has hooked INT 67, an alternate installation
  127349. check is to test for the string
  127350. "MICROSOFT EXPANDED MEMORY MANAGER 386" at offset 14h in the INT 67
  127351. handler's segment; the word immediately preceding this string
  127352. contains the offset of the API entry point
  127353. SeeAlso: AH=3Fh,AX=FFA5h/BX=4345h,INT 21/AX=4402h"EMM386.EXE"
  127354. (Table 03666)
  127355. Call EMM386.EXE API entry point with:
  127356. AH = 00h get memory manager's status
  127357. Return: AH = status
  127358. bit 0: not active (OFF)
  127359. bit 1: in "Auto" mode
  127360. AH = 01h set memory manager's state
  127361. AL = new state (00h ON, 01h OFF, 02h AUTO)
  127362. AH = 02h Weitek coprocessor support
  127363. AL = subfunction
  127364. 00h get Weitek support state
  127365. Return: AL = status
  127366. bit 0: Weitek coprocessor is present
  127367. bit 1: Weitek support is enabled
  127368. 01h turn on Weitek support
  127369. 02h turn off Weitek support
  127370. --- v4.20-4.41 only ---
  127371. AH = 03h Windows support???
  127372. AL = subfunction (00h, 01h)
  127373. AH = 04h print copyright notice to standard output
  127374. (using INT 21/AH=09h)
  127375. AH = 05h print available report
  127376. (the one shown when running EMM386 from the DOS prompt)
  127377. SeeAlso: #01513 at INT 21/AX=4402h/SF=02h,#02617 at INT 2F/AX=12FFh/BX=0106h
  127378. --------m-67FFA5BX4345-----------------------
  127379. INT 67 U - Compaq CEMM v5.10+ - PRIVATE API
  127380. AX = FFA5h
  127381. BX = 4345h ("CE")
  127382. DX = subfunction
  127383. 0000h unshadow video ROM???
  127384. 0001h shadow video ROM???
  127385. 0002h map pages
  127386. CX = number of pages (00h=one)
  127387. ESI = linear address of first page to map into address space
  127388. EDI = linear starting address at which pages are to be visible
  127389. 0003h get ???
  127390. Return: DX = ??? (0-2)
  127391. 0004h BUG: crashes system due to fencepost error
  127392. Return: AH = 84h
  127393. AL = status (84h = error, FFh = success)
  127394. Note: if BX <> 4345h or DX > 0004h on entry, CEMM behaves identically to
  127395. Microsoft's EMM386 (see AX=FFA5h"EMM386")
  127396. SeeAlso: AX=FFA5h"EMM386",#01513 at INT 21/AX=4402h/SF=02h,#03666
  127397. --------I-68---------------------------------
  127398. INT 68 - Sangoma CCPOP 3270 resident module
  127399. SeeAlso: INT 67"Sangoma",INT 92"Sangoma"
  127400. --------N-68---------------------------------
  127401. INT 68 - Novell NetWare LU6.2
  127402. InstallCheck: test for the signature string "APPC/PC" nine bytes before the
  127403. interrupt handler
  127404. SeeAlso: AH=01h/SF=1B00h,AH=FAh
  127405. --------h-68---------------------------------
  127406. INT 68 C - HP Vectra AT - IRQ16 - 8041 SERVICE REQUEST
  127407. SeeAlso: INT 08"IRQ0",INT 69"HP Vectra",INT 6F/AH=00h"HP"
  127408. --------N-6801--SF1B00-----------------------
  127409. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DISPLAY
  127410. AH = 01h subfn 1B00h
  127411. DS:DX -> control block (see #03667)
  127412. Return: control block updated
  127413. SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2B00h,INT 68"Novell"
  127414. Format of APPC/PC "DISPLAY" control block:
  127415. Offset Size Description (Table 03667)
  127416. 00h 12 BYTEs reserved
  127417. 0Ch WORD 1B00h (verb "DISPLAY")
  127418. 0Eh 6 BYTEs 00h
  127419. 14h DWORD (big-endian) return code (see #03668)
  127420. 18h WORD 00h
  127421. 1Ah 8 BYTEs (big-endian) logical unit ID
  127422. 22h 8 BYTEs (big-endian) partner logical unit name
  127423. 2Ah 8 BYTEs (big-endian) mode name
  127424. 32h BYTE logical unit session limit
  127425. 33h BYTE partner logical unit session limit
  127426. 34h BYTE node maximum negotiable session limit
  127427. 35h BYTE current session limit
  127428. 36h BYTE minimum negotiated winner limit
  127429. 37h BYTE maximum negotiated loser limit
  127430. 38h BYTE active session count
  127431. 39h BYTE active CONWINNER session count
  127432. 3Ah BYTE active CONLOSER session count
  127433. 3Bh BYTE session termination count
  127434. 3Ch BYTE bit 7: SESSION_TERMINATION_TARGET_DRAIN
  127435. bit 6: SESSION_TERMINATION_SOURCE_DRAIN
  127436. (Table 03668)
  127437. Values for APPC/PC return code:
  127438. 0000h successful
  127439. 0001h BAD_TP_ID
  127440. 0002h BAD_CONV_ID
  127441. 0003h bad logical unit ID
  127442. 0008h no physical unit attached
  127443. 0110h bad state
  127444. 01B1h BAD_PART_LUNAME
  127445. 01B2h bad mode name
  127446. 0201h physical unit already active
  127447. 0211h logical unit already active
  127448. 0212h BAD_PART_SESS
  127449. 0213h BAD_RU_SIZES
  127450. 0214h BAD_MODE_SESS
  127451. 0216h BAD_PACING_CNT
  127452. 0219h EXTREME_RUS
  127453. 021Ah SNASVCMG_1
  127454. 0223h SSCP_CONNECTED_LU
  127455. 0230h invalid change
  127456. 0243h too many TPs
  127457. 0272h adapter close failure
  127458. 0281h GET_ALLOC_BAD_TYPE
  127459. 0282h unsuccessful
  127460. 0283h DLC failure
  127461. 0284h unrecognized DLC
  127462. 0286h duplicate DLC
  127463. 0301h SSCP_PU_SESSION_NOT_ACTIVE
  127464. 0302h data exceeds RU size
  127465. 0401h invalid direction
  127466. 0402h invalid type
  127467. 0403h segment overlap
  127468. 0404h invalid first character
  127469. 0405h table error
  127470. 0406h conversion error
  127471. F0010000h APPC disabled
  127472. F0020000h APPC busy
  127473. F0030000h APPC abended
  127474. F0040000h incomplete
  127475. --------N-6801--SF2000-----------------------
  127476. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ATTACH PHYSICAL UNIT
  127477. AH = 01h subfn 2000h
  127478. DS:DX -> control block (see #03669)
  127479. Return: control block updated
  127480. SeeAlso: AH=01h/SF=2100h,AH=01h/SF=2B00h
  127481. Format of APPC/PC "Attach Physical Unit" control block:
  127482. Offset Size Description (Table 03669)
  127483. 00h 12 BYTEs reserved
  127484. 0Ch WORD 2000h (verb "Attach Physical Unit")
  127485. 0Eh 6 BYTEs 00h
  127486. 14h DWORD (big-endian) return code (see #03668)
  127487. 18h WORD 00h
  127488. 1Ah BYTE version
  127489. 1Bh BYTE release
  127490. 1Ch 8 BYTEs (big-endian) net name
  127491. 24h 8 BYTEs (big-endian) physical unit name
  127492. 2Ch 8 BYTEs 00h
  127493. 34h DWORD pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors
  127494. (see also AH=01h/SF=2100h)
  127495. 38h DWORD 00h
  127496. 3Ch BYTE 00h RETURN_CONTROL: COMPLETE
  127497. 01h RETURN_CONTROL: INCOMPLETE
  127498. --------N-6801--SF2100-----------------------
  127499. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ATTACH LOGICAL UNIT
  127500. AH = 01h subfn 2100h
  127501. DS:DX -> control block (see #03670)
  127502. Return: control block updated
  127503. SeeAlso: #03673,#03674,#03676,AH=01h/SF=2000h,AH=01h/SF=2200h,AH=01h/SF=2B00h
  127504. Format of APPC/PC "Attach Logical Unit" control block:
  127505. Offset Size Description (Table 03670)
  127506. 00h 12 BYTEs reserved
  127507. 0Ch WORD 2100h (verb "Attach Logical Unit")
  127508. 0Eh 6 BYTEs 00h
  127509. 14h DWORD (big-endian) return code (see #03668)
  127510. 18h WORD 70 offset to partner logical unit record
  127511. 1Ah 8 BYTEs (big-endian) logical unit name
  127512. 22h 8 BYTEs (big-endian) logical unit ID
  127513. 2Ah BYTE logical unit local address
  127514. 2Bh BYTE logical unit session limit
  127515. 2Ch DWORD pointer to CREATE_TP_EXIT routine,
  127516. FFFFFFFFh = reject incoming ALLOCATEs
  127517. 00000000h = queue ALLOCATEs
  127518. 30h DWORD 00h
  127519. 34h DWORD pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors
  127520. 38h DWORD 00h
  127521. 3Ch BYTE maximum TPs
  127522. 3Dh BYTE queue depth
  127523. 3Eh DWORD pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh=no pswd exit
  127524. 42h DWORD 00h
  127525. 46h WORD total length of partner records
  127526. 48h var array of partner logical unit records (see #03671)
  127527. SeeAlso: #03673,#03674,#03676
  127528. Format of APPC/PC partner logical unit record:
  127529. Offset Size Description (Table 03671)
  127530. 00h WORD length of this partner logical unit record
  127531. 02h WORD 42 offset to mode records
  127532. 04h 8 BYTEs (big-endian) partner logical unit name
  127533. 0Ch BYTE partner logical unit security capabilities
  127534. bit 7: already verified
  127535. bit 6: conversation level security
  127536. bit 5: session level security
  127537. 0Dh BYTE partner logical unit session limit
  127538. 0Eh WORD partner logical unit maximum MC_SEND_LL
  127539. 10h 8 BYTEs (big-endian) partner logical unit DLC name
  127540. 18h BYTE partner logical unit adapter number
  127541. 19h 17 BYTEs (counted string) partner logical unit adapter address
  127542. 2Ah WORD total length of mode records
  127543. 2Ch 16N BYTEs array of mode records (see #03672)
  127544. Format of mode record:
  127545. Offset Size Description (Table 03672)
  127546. 00h WORD 16 length of this mode record
  127547. 02h 8 BYTEs (big-endian) mode name
  127548. 0Ah WORD RU_SIZE high bound
  127549. 0Ch WORD RU_SIZE low bound
  127550. 0Eh BYTE mode maximum negotiable session limit
  127551. 0Fh BYTE pacing size for receive
  127552. Routines defined by LU_LU_PASSWORD_EXIT, CREATE_TP_EXIT, and SYSTEM_LOG_EXIT
  127553. pointers are called by pushing the DWORD pointer to the verb on the stack and
  127554. then performing a FAR call.
  127555. Format of ACCESS_LU_LU_PW verb:
  127556. Offset Size Description (Table 03673)
  127557. 00h 12 BYTEs reserved
  127558. 0Ch WORD 1900h (verb "ACCESS_LU_LU_PW")
  127559. 0Eh 8 BYTEs (big-endian) logical unit ID
  127560. 16h 8 BYTEs (big-endian) logical unit name
  127561. 1Eh 8 BYTEs (big-endian) partner logical unit name
  127562. 26h 17 BYTEs (counted string) partner fully qualified logical unit name
  127563. 37h BYTE password available (0=no, 1=yes)
  127564. 38h 8 BYTEs password
  127565. SeeAlso: #03670,#03674,#03676
  127566. Format of CREATE_TP verb:
  127567. Offset Size Description (Table 03674)
  127568. 00h 12 BYTEs reserved
  127569. 0Ch WORD 2300h (verb "CREATE_TP")
  127570. 0Eh 6 BYTEs 00h
  127571. 14h DWORD (big-endian) sense code (see #03675)
  127572. 18h 8 BYTEs (big-endian) TP ID
  127573. 20h 8 BYTEs (big-endian) logical unit ID
  127574. 28h DWORD (big-endian) conversation ID
  127575. 2Ch BYTE 0 basic conversation, 1 mapped conversation
  127576. 2Dh BYTE 0 no sync level, 1 confirm
  127577. 2Eh BYTE reserved
  127578. 2Fh 65 BYTEs (counted string) transaction program name
  127579. 70h 6 BYTEs 00h
  127580. 76h WORD length of ERROR_LOG_DATA to return
  127581. 78h DWORD pointer to ERROR_LOG_DATA buffer
  127582. 7Ch 8 BYTEs (big-endian) partner logical unit name
  127583. 84h 18 BYTEs (counted string) partner fully qualified logical unit name
  127584. 96h 8 BYTEs (big-endian) mode name
  127585. 9Eh 12 BYTEs 00h
  127586. AAh 11 BYTEs (counted string) password
  127587. B5h 11 BYTEs (counted string) user ID
  127588. C0h BYTE 0 verification should be performed
  127589. 1 already verified
  127590. SeeAlso: #03673,#03676
  127591. (Table 03675)
  127592. Values for APPC/PC sense code:
  127593. 00000000h Ok
  127594. 080F6051h SECURITY_NOT_VALID
  127595. 084B6031h TP_NOT_AVAIL_RETRY
  127596. 084C0000h TP_NOT_AVAIL_NO_RETRY
  127597. 10086021h TP_NAME_NOT_RECOGNIZED
  127598. 10086034h CONVERSATION_TYPE_MISMATCH
  127599. 10086041h SYNC_LEVEL_NOT_SUPPORTED
  127600. Format of SYSLOG verb:
  127601. Offset Size Description (Table 03676)
  127602. 00h 12 BYTEs reserved
  127603. 0Ch WORD 2600h (verb "SYSLOG")
  127604. 0Eh 10 BYTEs 00h
  127605. 18h WORD (big-endian) type
  127606. 1Ah DWORD (big-endian) subtype
  127607. 1Eh DWORD pointer to ADDITIONAL_INFO
  127608. 22h DWORD (big-endian) conversation ID
  127609. 26h 8 BYTEs (big-endian) TP ID
  127610. 2Eh 8 BYTEs (big-endian) physical unit or logical unit name
  127611. 36h WORD length of data
  127612. 38h DWORD pointer to data
  127613. 3Ch BYTE 00h
  127614. SeeAlso: #03673,#03674
  127615. --------N-6801--SF2200-----------------------
  127616. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DETACH LOGICAL UNIT
  127617. AH = 01h subfn 2200h
  127618. DS:DX -> control block (see #03677)
  127619. Return: control block updated
  127620. SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2100h,AH=01h/SF=2700h
  127621. Format of APPC/PC "Detach Logical Unit" control block:
  127622. Offset Size Description (Table 03677)
  127623. 00h 12 BYTEs reserved
  127624. 0Ch WORD 2200h (verb "Detach Logical Unit")
  127625. 0Eh 6 BYTEs 00h
  127626. 14h DWORD (big-endian) return code (see #03668)
  127627. 18h 8 BYTEs (big-endian) logical unit ID
  127628. 20h BYTE 00h
  127629. --------N-6801--SF2700-----------------------
  127630. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DETACH PHYSICAL UNIT
  127631. AH = 01h subfn 2700h
  127632. DS:DX -> control block (see #03678)
  127633. Return: control block updated
  127634. SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2100h,AH=01h/SF=2200h
  127635. Format of APPC/PC "Detach Physical Unit" control block:
  127636. Offset Size Description (Table 03678)
  127637. 00h 12 BYTEs reserved
  127638. 0Ch WORD 2700h (verb "Detach Physical Unit")
  127639. 0Eh 6 BYTEs 00h
  127640. 14h DWORD (big-endian) return code (see #03668)
  127641. 18h BYTE 00h type: hard
  127642. 01h type: soft
  127643. --------N-6801--SF2B00-----------------------
  127644. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ACTIVATE DLC
  127645. AH = 01h subfn 2B00h
  127646. DS:DX -> control block (see #03679)
  127647. Return: control block updated
  127648. SeeAlso: AH=01h/SF=1B00h,AH=01h/SF=2000h
  127649. Format of APPC/PC "Activate DLC" control block:
  127650. Offset Size Description (Table 03679)
  127651. 00h 12 BYTEs reserved
  127652. 0Ch WORD 2B00h (verb "Activate DLC")
  127653. 0Eh 6 BYTEs 00h
  127654. 14h DWORD (big-endian) return code (see #03668)
  127655. 18h 8 BYTEs (big-endian) DLC name
  127656. 20h BYTE adapter number
  127657. --------N-6802--SF0100-----------------------
  127658. INT 68 - APPC/PC - CONNECTION CONTROL - ALLOCATE
  127659. AH = 02h subfn 0100h
  127660. DS:DX -> control block (see #03680)
  127661. Return: control block updated
  127662. SeeAlso: AH=02h/SF=0500h
  127663. Format of APPC/PC "Allocate" control block:
  127664. Offset Size Description (Table 03680)
  127665. 00h 12 BYTEs reserved
  127666. 0Ch WORD 0100h (verb "Allocate" or "MC_Allocate")
  127667. 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
  127668. 0 if basic verb
  127669. 0Fh 5 BYTEs reserved (0)
  127670. 14h WORD (big-endian) primary return code (see #03681)
  127671. 16h DWORD (big-endian) error code (see #03682)
  127672. 1Ah 8 BYTEs (big-endian) TP_ID
  127673. 22h DWORD (big-endian) conversation ID
  127674. 26h BYTE (MC_Allocate only) conversation type
  127675. 0 basic conversation
  127676. 1 mapped conversation
  127677. 27h BYTE SYNC_LEVEL (00h none, 01h confirm)
  127678. 28h WORD 0000h
  127679. 2Ah BYTE RETURN_CONTROL
  127680. 00h when session allocated
  127681. 01h immediate
  127682. 02h when session free
  127683. 2Bh 8 BYTEs 00h
  127684. 33h 8 BYTEs (big-endian) partner logical unit name
  127685. 3Bh 8 BYTEs (big-endian) mode name
  127686. 43h 65 BYTEs (counted string) TP name
  127687. 84h BYTE security (00h none, 01h same, 02h pgm)
  127688. 85h 11 BYTEs 00h
  127689. 90h 11 BYTEs (counted string) password
  127690. 9Bh 11 BYTEs (counted string) user ID
  127691. A6h WORD PIP_DATA length
  127692. A8h DWORD pointer to PIP_DATA
  127693. (Table 03681)
  127694. Values for APPC/PC primary return code:
  127695. 0000h successful
  127696. 0001h parameter check
  127697. 0002h state check
  127698. 0003h allocation error
  127699. 0005h deallocate abended
  127700. 0006h deallocate abended program
  127701. 0007h deallocate abended SVC
  127702. 0008h deallocate abended timer
  127703. 0009h deallocate normal return
  127704. 000Ah data posting blocked
  127705. 000Bh posting not active
  127706. 000Ch PROG_ERROR_NO_TRUNC
  127707. 000Dh PROG_ERROR_TRUNC
  127708. 000Eh PROG_ERROR_PURGING
  127709. 000Fh CONV_FAILURE_RETRY
  127710. 0010h CONV_FAILURE_NO_RETRY
  127711. 0011h SVC_ERROR_NO_TRUNC
  127712. 0012h SVC_ERROR_TRUNC
  127713. 0013h SVC_ERROR_PURGING
  127714. 0014h unsuccessful
  127715. 0018h CNOS partner logical unit reject
  127716. 0019h conversation type mixed
  127717. F001h APPC disabled
  127718. F002h APPC busy
  127719. F003h APPC abended
  127720. F004h incomplete
  127721. (Table 03682)
  127722. Values for APPC/PC error code:
  127723. 0001h bad TP ID
  127724. 0002h bad conversation ID
  127725. 0004h allocation error, no retry
  127726. 0005h allocation error, retry
  127727. 0006h data area crosses segment boundary
  127728. 0010h bad TPN length
  127729. 0011h bad CONV length
  127730. 0012h bad SYNC level
  127731. 0013h bad security selection
  127732. 0014h bad return control
  127733. 0015h SEC_TOKENS too big
  127734. 0016h PIP_LEN incorrect
  127735. 0017h no use of SNASVCMG
  127736. 0018h unknown partner mode
  127737. 0031h confirm: SYNC_NONE
  127738. 0032h confirm: bad state
  127739. 0033h confirm: NOT_LL_BDY
  127740. 0041h confirmed: bad state
  127741. 0051h deallocate: bad type
  127742. 0052h deallocate: flush bad state
  127743. 0053h deallocate: confirm bad state
  127744. 0055h deallocate: NOT_LL_BDY
  127745. 0057h deallocate: log LL_WRONG
  127746. 0061h flush: not send state
  127747. 0091h post on receipt: invalid length
  127748. 0092h post on receipt: not in receive state
  127749. 0093h post on receipt: bad fill
  127750. 00A1h prepare to receive:invalid type
  127751. 00A2h prepare to receive: unfinished LL
  127752. 00A3h prepare to receive: not in send state
  127753. 00B1h receive and wait: bad state
  127754. 00B2h receive and wait: NOT_LL_BDY
  127755. 00B5h receive and wait: bad fill
  127756. 00C1h receive immediate: not in receive state
  127757. 00C4h receive immediate: bad fill
  127758. 00E1h request to send: not in receive state
  127759. 00F1h send data: bad LL
  127760. 00F2h send data: not in send state
  127761. 0102h send error: log LL wrong
  127762. 0103h send error: bad type
  127763. 0121h test: invalid type
  127764. 0122h test: not in receive state
  127765. --------N-6802--SF0300-----------------------
  127766. INT 68 - APPC/PC - CONNECTION CONTROL - CONFIRM
  127767. AH = 02h subfn 0300h
  127768. DS:DX -> control block (see #03683)
  127769. Return: control block updated
  127770. SeeAlso: AH=02h/SF=0400h
  127771. Format of APPC/PC "Confirm" control block:
  127772. Offset Size Description (Table 03683)
  127773. 00h 12 BYTEs reserved
  127774. 0Ch WORD 0300h (verb "Confirm" or "MC_Confirm")
  127775. 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
  127776. 0 if basic verb
  127777. 0Fh 5 BYTEs reserved (0)
  127778. 14h WORD (big-endian) primary return code (see #03681)
  127779. 16h DWORD (big-endian) error code (see #03682)
  127780. 1Ah 8 BYTEs (big-endian) TP_ID
  127781. 22h DWORD (big-endian) conversation ID
  127782. 26h BYTE request to send received (0=no, 1=yes)
  127783. --------N-6802--SF0400-----------------------
  127784. INT 68 - APPC/PC - CONNECTION CONTROL - CONFIRMED
  127785. AH = 02h subfn 0400h
  127786. DS:DX -> control block (see #03684)
  127787. Return: control block updated
  127788. SeeAlso: AH=02h/SF=0300h
  127789. Format of APPC/PC "Confirmed" control block:
  127790. Offset Size Description (Table 03684)
  127791. 00h 12 BYTEs reserved
  127792. 0Ch WORD 0400h (verb "Confirmed" or "MC_Confirmed")
  127793. 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
  127794. 0 if basic verb
  127795. 0Fh 5 BYTEs reserved (0)
  127796. 14h WORD (big-endian) primary return code (see #03681)
  127797. 16h DWORD (big-endian) error code (see #03682)
  127798. 1Ah 8 BYTEs (big-endian) TP_ID
  127799. 22h DWORD (big-endian) conversation ID
  127800. --------N-6802--SF0500-----------------------
  127801. INT 68 - APPC/PC - CONNECTION CONTROL - DEALLOCATE
  127802. AH = 02h subfn 0500h
  127803. DS:DX -> control block (see #03685)
  127804. Return: control block updated
  127805. SeeAlso: AH=02h/SF=0100h,AH=02h/SF=0300h
  127806. Format of APPC/PC "Deallocate" control block:
  127807. Offset Size Description (Table 03685)
  127808. 00h 12 BYTEs reserved
  127809. 0Ch WORD 0500h (verb "Deallocate" or "MC_Deallocate")
  127810. 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
  127811. 0 if basic verb
  127812. 0Fh 5 BYTEs reserved (0)
  127813. 14h WORD (big-endian) primary return code (see #03681)
  127814. 16h DWORD (big-endian) error code (see #03682)
  127815. 1Ah 8 BYTEs (big-endian) TP_ID
  127816. 22h DWORD (big-endian) conversation ID
  127817. 26h BYTE 00h
  127818. 27h BYTE type
  127819. 00h SYNC_LEVEL
  127820. 01h FLUSH
  127821. 02h ABEND_PROC
  127822. 03h ABEND_SVC
  127823. 04h ABEND_TIMER
  127824. 05h ABEND
  127825. 28h WORD (MC_Deallocate only) length of error log data
  127826. 2Ah DWORD (MC_Deallocate only) pointer to error log data
  127827. --------N-6802--SF0600-----------------------
  127828. INT 68 - APPC/PC - CONNECTION CONTROL - FLUSH
  127829. AH = 02h subfn 0600h
  127830. DS:DX -> control block (see #03686)
  127831. Return: control block updated
  127832. SeeAlso: AH=02h/SF=0300h
  127833. Format of APPC/PC "Flush" control block:
  127834. Offset Size Description (Table 03686)
  127835. 00h 12 BYTEs reserved
  127836. 0Ch WORD 0600h (verb "Flush" or "MC_Flush")
  127837. 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
  127838. 0 if basic verb
  127839. 0Fh 5 BYTEs reserved (0)
  127840. 14h WORD (big-endian) primary return code (see #03681)
  127841. 16h DWORD (big-endian) error code (see #03682)
  127842. 1Ah 8 BYTEs (big-endian) TP_ID
  127843. 22h DWORD (big-endian) conversation ID
  127844. --------N-6802--SF0700-----------------------
  127845. INT 68 - APPC/PC - CONNECTION CONTROL - GET ATTRIBUTES
  127846. AH = 02h subfn 0700h
  127847. DS:DX -> control block (see #03687)
  127848. Return: control block updated
  127849. SeeAlso: AH=02h/SF=0300h
  127850. Format of APPC/PC "Get_Attributes" control block:
  127851. Offset Size Description (Table 03687)
  127852. 00h 12 BYTEs reserved
  127853. 0Ch WORD 0700h (verb "Get_Attributes" or "MC_Get_Attributes")
  127854. 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
  127855. 0 if basic verb
  127856. 0Fh 5 BYTEs reserved (0)
  127857. 14h WORD (big-endian) primary return code (see #03681)
  127858. 16h DWORD (big-endian) error code (see #03682)
  127859. 1Ah 8 BYTEs (big-endian) TP_ID
  127860. 22h DWORD (big-endian) conversation ID
  127861. 26h 8 BYTEs (big-endian) logical unit ID
  127862. 2Eh BYTE 00h
  127863. 2Fh BYTE SYNC_LEVEL (0=none, 1=confirm)
  127864. 30h 8 BYTEs (big-endian) mode name
  127865. 38h 8 BYTEs (big-endian) own net name
  127866. 40h 8 BYTEs (big-endian) own logical unit name
  127867. 48h 8 BYTEs (big-endian) partner logical unit name
  127868. 50h 18 BYTEs (counted string) partner's fully qualified logical unit name
  127869. 62h BYTE 00h
  127870. 63h 11 BYTEs (counted string) user ID
  127871. --------N-6802--SF0800-----------------------
  127872. INT 68 - APPC/PC - CONNECTION CONTROL - GET CONVERSATION TYPE
  127873. AH = 02h subfn 0800h
  127874. DS:DX -> control block (see #03688)
  127875. Return: control block updated
  127876. SeeAlso: AH=02h/SF=0300h
  127877. Format of APPC/PC "Get_Type" control block:
  127878. Offset Size Description (Table 03688)
  127879. 00h 12 BYTEs reserved
  127880. 0Ch WORD 0800h (verb "Get_Type")
  127881. 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
  127882. 0 if basic verb
  127883. 0Fh 5 BYTEs reserved (0)
  127884. 14h WORD (big-endian) primary return code (see #03681)
  127885. 16h DWORD (big-endian) error code (see #03682)
  127886. 1Ah 8 BYTEs (big-endian) TP_ID
  127887. 22h DWORD (big-endian) conversation ID
  127888. 26h BYTE (ret) type (0=basic conversation, 1=mapped conversation)
  127889. --------N-6802--SF0900-----------------------
  127890. INT 68 - APPC/PC - CONNECTION CONTROL - POST ON RECEIPT
  127891. AH = 02h subfn 0900h
  127892. DS:DX -> control block (see #03689)
  127893. Return: control block updated
  127894. SeeAlso: AH=02h/SF=0A00h
  127895. Format of APPC/PC "Post_on_Receipt" control block:
  127896. Offset Size Description (Table 03689)
  127897. 00h 12 BYTEs reserved
  127898. 0Ch WORD 0900h (verb "Post_on_Receipt")
  127899. 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
  127900. 0 if basic verb
  127901. 0Fh 5 BYTEs reserved (0)
  127902. 14h WORD (big-endian) primary return code (see #03681)
  127903. 16h DWORD (big-endian) error code (see #03682)
  127904. 1Ah 8 BYTEs (big-endian) TP_ID
  127905. 22h DWORD (big-endian) conversation ID
  127906. 26h WORD maximum length
  127907. 28h BYTE fill (0=buffer, 1=LL)
  127908. --------N-6802--SF0A00-----------------------
  127909. INT 68 - APPC/PC - CONNECTION CONTROL - PREPARE TO RECEIVE
  127910. AH = 02h subfn 0A00h
  127911. DS:DX -> control block (see #03690)
  127912. Return: control block updated
  127913. SeeAlso: AH=02h/SF=0900h,AH=02h/SF=0B00h
  127914. Format of APPC/PC "Prepare_to_Receive" control block:
  127915. Offset Size Description (Table 03690)
  127916. 00h 12 BYTEs reserved
  127917. 0Ch WORD 0A00h (verb "Prepare_to_Receive" or "MC_Prepare_to_Receive")
  127918. 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
  127919. 0 if basic verb
  127920. 0Fh 5 BYTEs reserved (0)
  127921. 14h WORD (big-endian) primary return code (see #03681)
  127922. 16h DWORD (big-endian) error code (see #03682)
  127923. 1Ah 8 BYTEs (big-endian) TP_ID
  127924. 22h DWORD (big-endian) conversation ID
  127925. 26h BYTE type (0=SYNC_LEVEL, 1=FLUSH)
  127926. 27h BYTE locks (0=short, 1=long)
  127927. --------N-6802--SF0B00-----------------------
  127928. INT 68 - APPC/PC - CONNECTION CONTROL - RECEIVE AND WAIT
  127929. AH = 02h subfn 0B00h
  127930. DS:DX -> control block (see #03691)
  127931. Return: control block updated
  127932. SeeAlso: AH=02h/SF=0C00h,AH=02h/SF=0F00h
  127933. Format of APPC/PC "Receive_and_Wait" control block:
  127934. Offset Size Description (Table 03691)
  127935. 00h 12 BYTEs reserved
  127936. 0Ch WORD 0B00h (verb "Receive_and_Wait" or "MC_Receive_and_Wait")
  127937. 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
  127938. 0 if basic verb
  127939. 0Fh 5 BYTEs reserved (0)
  127940. 14h WORD (big-endian) primary return code (see #03681)
  127941. 16h DWORD (big-endian) error code (see #03682)
  127942. 1Ah 8 BYTEs (big-endian) TP_ID
  127943. 22h DWORD (big-endian) conversation ID
  127944. 26h BYTE type of information received (see #03692)
  127945. 27h BYTE (MC_Receive_and_Wait only) fill (0=buffer, 1=LL)
  127946. 28h BYTE Request_to_Send_Received (0=no, 1=yes)
  127947. 29h WORD maximum length
  127948. 2Bh WORD data length
  127949. 2Dh DWORD pointer to data
  127950. (Table 03692)
  127951. Values for type of information received:
  127952. 00h data
  127953. 01h data complete
  127954. 02h data incomplete
  127955. 03h confirm
  127956. 04h confirm send
  127957. 05h confirm deallocate
  127958. 06h send
  127959. --------N-6802--SF0C00-----------------------
  127960. INT 68 - APPC/PC - CONNECTION CONTROL - RECEIVE IMMEDIATE
  127961. AH = 02h subfn 0C00h
  127962. DS:DX -> control block (see #03693)
  127963. Return: control block updated
  127964. SeeAlso: AH=02h/SF=0B00h,AH=02h/SF=0F00h
  127965. Format of APPC/PC "Receive_Immediate" control block:
  127966. Offset Size Description (Table 03693)
  127967. 00h 12 BYTEs reserved
  127968. 0Ch WORD 0C00h (verb "Receive_Immediate" or "MC_Receive_Immediate")
  127969. 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
  127970. 0 if basic verb
  127971. 0Fh 5 BYTEs reserved (0)
  127972. 14h WORD (big-endian) primary return code (see #03681)
  127973. 16h DWORD (big-endian) error code (see #03682)
  127974. 1Ah 8 BYTEs (big-endian) TP_ID
  127975. 22h DWORD (big-endian) conversation ID
  127976. 26h BYTE type of information received (see #03692)
  127977. 27h BYTE (MC_Receive_Immediate only) fill (0=buffer, 1=LL)
  127978. 28h BYTE Request_to_Send_Received (0=no, 1=yes)
  127979. 29h WORD maximum length
  127980. 2Bh WORD data length
  127981. 2Dh DWORD pointer to data
  127982. --------N-6802--SF0E00-----------------------
  127983. INT 68 - APPC/PC - CONNECTION CONTROL - REQUEST TO SEND
  127984. AH = 02h subfn 0E00h
  127985. DS:DX -> control block (see #03694)
  127986. Return: control block updated
  127987. SeeAlso: AH=02h/SF=0F00h,AH=02h/SF=1000h
  127988. Format of APPC/PC "Request_to_Send" control block:
  127989. Offset Size Description (Table 03694)
  127990. 00h 12 BYTEs reserved
  127991. 0Ch WORD 0E00h (verb "Request_to_Send" or "MC_Request_to_Send")
  127992. 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
  127993. 0 if basic verb
  127994. 0Fh 5 BYTEs reserved (0)
  127995. 14h WORD (big-endian) primary return code (see #03681)
  127996. 16h DWORD (big-endian) error code (see #03682)
  127997. 1Ah 8 BYTEs (big-endian) TP_ID
  127998. 22h DWORD (big-endian) conversation ID
  127999. --------N-6802--SF0F00-----------------------
  128000. INT 68 - APPC/PC - CONNECTION CONTROL - SEND DATA
  128001. AH = 02h subfn 0F00h
  128002. DS:DX -> control block (see #03695)
  128003. Return: control block updated
  128004. SeeAlso: AH=02h/SF=0E00h,AH=02h/SF=1000h
  128005. Format of APPC/PC "Send_Data" control block:
  128006. Offset Size Description (Table 03695)
  128007. 00h 12 BYTEs reserved
  128008. 0Ch WORD 0F00h (verb "Send_Data" or "MC_Send_Data")
  128009. 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
  128010. 0 if basic verb
  128011. 0Fh 5 BYTEs reserved (0)
  128012. 14h WORD (big-endian) primary return code (see #03681)
  128013. 16h DWORD (big-endian) error code (see #03682)
  128014. 1Ah 8 BYTEs (big-endian) TP_ID
  128015. 22h DWORD (big-endian) conversation ID
  128016. 26h BYTE request to send received (0=no, 1=yes)
  128017. 27h BYTE 00h
  128018. 28h WORD data length
  128019. 2Ah DWORD pointer to data
  128020. --------N-6802--SF1000-----------------------
  128021. INT 68 - APPC/PC - CONNECTION CONTROL - SEND ERROR
  128022. AH = 02h subfn 1000h
  128023. DS:DX -> control block (see #03696)
  128024. Return: control block updated
  128025. SeeAlso: AH=02h/SF=0F00h
  128026. Format of APPC/PC "Send_Error" control block:
  128027. Offset Size Description (Table 03696)
  128028. 00h 12 BYTEs reserved
  128029. 0Ch WORD 1000h (verb "Send_Error" or "MC_Send_Error")
  128030. 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
  128031. 0 if basic verb
  128032. 0Fh 5 BYTEs reserved (0)
  128033. 14h WORD (big-endian) primary return code (see #03681)
  128034. 16h DWORD (big-endian) error code (see #03682)
  128035. 1Ah 8 BYTEs (big-endian) TP_ID
  128036. 22h DWORD (big-endian) conversation ID
  128037. 26h BYTE request to send received (0=no, 1=yes)
  128038. 27h BYTE type (0=program, 1=SVC)
  128039. 28h DWORD 00h
  128040. 2Ch WORD (MC_Send_Error only) LOG_DATA length
  128041. 2Eh DWORD (MC_Send_Error only) pointer to LOG_DATA
  128042. --------N-6802--SF1200-----------------------
  128043. INT 68 - APPC/PC - CONNECTION CONTROL - TEST
  128044. AH = 02h subfn 1200h
  128045. DS:DX -> control block (see #03697)
  128046. Return: control block updated
  128047. SeeAlso: AH=02h/SF=1300h
  128048. Format of APPC/PC "Test" control block:
  128049. Offset Size Description (Table 03697)
  128050. 00h 12 BYTEs reserved
  128051. 0Ch WORD 1200h (verb "Test" or "MC_Test")
  128052. 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
  128053. 0 if basic verb
  128054. 0Fh 5 BYTEs reserved (0)
  128055. 14h WORD (big-endian) primary return code (see #03681)
  128056. 16h DWORD (big-endian) error code (see #03682)
  128057. 1Ah 8 BYTEs (big-endian) TP_ID
  128058. 22h DWORD (big-endian) conversation ID
  128059. 26h BYTE (MC_Test only) test (0=posted, 1=request_to_send received)
  128060. Note: error code has different interpretations for:
  128061. 0 posted data
  128062. 1 posted not data (primary return code = 0)
  128063. 1 bad TP_ID (primary return code = 1)
  128064. --------N-6802--SF1300-----------------------
  128065. INT 68 - APPC/PC - CONNECTION CONTROL - WAIT
  128066. AH = 02h subfn 1300h
  128067. DS:DX -> control block (see #03698)
  128068. Return: control block updated
  128069. SeeAlso: AH=02h/SF=1200h
  128070. Format of APPC/PC "Wait" control block:
  128071. Offset Size Description (Table 03698)
  128072. 00h 12 BYTEs reserved
  128073. 0Ch WORD 1300h (verb "Wait")
  128074. 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
  128075. 0 if basic verb
  128076. 0Fh 5 BYTEs reserved (0)
  128077. 14h WORD (big-endian) primary return code (see #03681)
  128078. 16h DWORD (big-endian) error code (see #03682,#03697)
  128079. 1Ah 8 BYTEs (big-endian) TP_ID
  128080. 22h DWORD (big-endian) conversation ID
  128081. 26h BYTE number of conversations to wait on
  128082. Note: error codes have interpretations as for AH=02h/SF=1200h
  128083. --------N-6803--SF2400-----------------------
  128084. INT 68 - APPC/PC - TP STARTED
  128085. AH = 03h subfn 2400h
  128086. DS:DX -> control block (see #03699)
  128087. Return: control block updated
  128088. Format of APPC/PC "TP Started" control block:
  128089. Offset Size Description (Table 03699)
  128090. 00h 12 BYTEs reserved
  128091. 0Ch WORD 2400h (verb "TP Started")
  128092. 0Eh 6 BYTEs 00h
  128093. 14h DWORD (big-endian) return code (see #03668)
  128094. 18h WORD 00h
  128095. 1Ah 8 BYTEs (big-endian) logical unit ID
  128096. 22h 8 BYTEs (big-endian) TP ID
  128097. --------N-6803--SF2800-----------------------
  128098. INT 68 - APPC/PC - GET ALLOCATE
  128099. AH = 03h subfn 2800h
  128100. DS:DX -> control block (see #03700)
  128101. Return: control block updated
  128102. Format of APPC/PC "Get ALLOCATE" control block:
  128103. Offset Size Description (Table 03700)
  128104. 00h 12 BYTEs reserved
  128105. 0Ch WORD 2800h (verb "Get ALLOCATE")
  128106. 0Eh 6 BYTEs 00h
  128107. 14h DWORD (big-endian) return code (see #03668)
  128108. 18h WORD 00h
  128109. 1Ah 8 BYTEs (big-endian) logical unit ID
  128110. 22h BYTE type (00h dequeue, 01h test)
  128111. 23h DWORD pointer to CREATE_TP record
  128112. --------N-6803--SF2A00-----------------------
  128113. INT 68 - APPC/PC - CHANGE LOGICAL UNIT
  128114. AH = 03h subfn 2A00h
  128115. DS:DX -> control block (see #03701)
  128116. Return: control block updated
  128117. Format of APPC/PC "Change Logical Unit" control block:
  128118. Offset Size Description (Table 03701)
  128119. 00h 12 BYTEs reserved
  128120. 0Ch WORD 2A00h (verb "Change Logical Unit")
  128121. 0Eh 6 BYTEs 00h
  128122. 14h DWORD (big-endian) return code (see #03668)
  128123. 18h WORD 00h
  128124. 1Ah 8 BYTEs (big-endian) logical unit ID
  128125. 22h DWORD pointer to CREATE_TP_EXIT routine
  128126. 00000000h queue ALLOCATEs
  128127. FFFFFFFFh reject incoming ALLOCATEs
  128128. 26h DWORD 00000000h
  128129. 2Ah DWORD pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh= don't log errors
  128130. 2Eh DWORD 00000000h
  128131. 32h BYTE maximum TPs
  128132. 33h BYTE 00h stop QUEUE_ALLOCATEs
  128133. 01h resume QUEUE_ALLOCATEs
  128134. 34h DWORD pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh = no exit
  128135. 38h DWORD 00000000h
  128136. --------N-6804-------------------------------
  128137. INT 68 - APPC/PC - TRANSACTION PROCESSING
  128138. AH = 04h
  128139. DS:DX -> control block (see #03702)
  128140. Return: control block updated
  128141. Format of APPC/PC control block:
  128142. Offset Size Description (Table 03702)
  128143. 00h 12 BYTEs reserved
  128144. 0Ch WORD verb (action)
  128145. 2500h TP_ENDED
  128146. 2900h TP_VALID
  128147. 0Eh 6 BYTEs 00h
  128148. 14h DWORD (big-endian) return code (see #03668)
  128149. 18h WORD 00h
  128150. 1Ah 8 BYTEs (big-endian) TP_ID
  128151. 22h DWORD -> CREATE_TP record (only if verb = 2900h)
  128152. --------N-6805-------------------------------
  128153. INT 68 - APPC/PC - TRANSFER MESSAGE DATA
  128154. AH = 05h
  128155. DS:DX -> control block (see #03703)
  128156. Return: control block updated
  128157. Format of APPC/PC "Transfer Message Data" control block:
  128158. Offset Size Description (Table 03703)
  128159. 00h 12 BYTEs reserved
  128160. 0Ch WORD 1C00h (verb "Transfer Message Data")
  128161. 0Eh BYTE data type
  128162. 00h user defined
  128163. 01h NMVT
  128164. 02h alert subvectors
  128165. 03h PDSTATS subvectors
  128166. 0Fh 5 BYTEs 00h
  128167. 14h DWORD (big-endian) return code (see #03668)
  128168. 18h 12 BYTEs 00h
  128169. 24h BYTE flags (see #03704)
  128170. 25h BYTE 00h
  128171. 26h WORD length of data
  128172. 28h N BYTEs data
  128173. Bitfields for APPC/PC message transfer flags:
  128174. Bit(s) Description (Table 03704)
  128175. 0 don't add correlation subvector
  128176. 1 don't add product set ID subvector
  128177. 2 don't do SYSLOG
  128178. 3 don't send SSCP_PU_SESSION
  128179. SeeAlso: #03703
  128180. --------N-6806-------------------------------
  128181. INT 68 - APPC/PC - CHANGE NUMBER OF SESSIONS
  128182. AH = 06h
  128183. DS:DX -> control block (see #03705)
  128184. Return: control block updated
  128185. Format of APPC/PC "Change Number of Sessions" control block:
  128186. Offset Size Description (Table 03705)
  128187. 00h 12 BYTEs reserved
  128188. 0Ch WORD 1500h (verb "Change Number of Sessions")
  128189. 0Eh 6 BYTEs 00h
  128190. 14h WORD (big-endian) primary return code (see #03681)
  128191. 16h DWORD (big-endian) secondary return code (see #03668,#03706)
  128192. 1Ah 8 BYTEs (big-endian) logical unit ID
  128193. 22h 8 BYTEs blanks
  128194. 2Ah 8 BYTEs (big-endian) partner logical unit name
  128195. 32h 8 BYTEs (big-endian) mode name
  128196. 3Ah BYTE bit 7: use MODE_NAME_SELECT_ALL rather than MODE_NAME
  128197. bit 6: set negotiable values
  128198. 3Bh BYTE partner logical unit mode session limit
  128199. 3Ch BYTE minimum CONWINNERS_SOURCE
  128200. 3Dh BYTE maximum CONWINNERS_TARGET
  128201. 3Eh BYTE automatic activation
  128202. 3Fh BYTE 00h
  128203. 40h BYTE flags
  128204. bit 7: drain target
  128205. bit 6: drain source
  128206. bit 5: target responsible, not source
  128207. (Table 03706)
  128208. Values for secondary return code (see also AH=01h/SF=1B00h):
  128209. 0000h accepted
  128210. 0001h negotiated
  128211. 0003h bad logical unit ID
  128212. 0004h allocation failure, no retry
  128213. 0005h allocation failure, retry
  128214. 0151h can't raise limits
  128215. 0153h all modes must reset
  128216. 0154h bad SNASVCMG limits
  128217. 0155h minimum greater than total
  128218. 0156h mode closed (primary return code = 1)
  128219. CNOS mode closed (primary return code = 18h)
  128220. 0157h bad mode name (primary return code = 1)
  128221. CNOS bad mode name (primary return code = 18h)
  128222. 0159h reset SNA drains
  128223. 015Ah single not SRC response
  128224. 015Bh bad partner logical unit
  128225. 015Ch exceeds maximum allowed
  128226. 015Dh change SRC drains
  128227. 015Eh logical unit detached
  128228. 015Fh CNOS command race reject
  128229. --------N-6807-------------------------------
  128230. INT 68 - APPC/PC - PASSTHROUGH
  128231. AH = 07h
  128232. DS:DX -> control block (format depends on application subsystem)
  128233. Return: control block updated
  128234. SeeAlso: AH=FFh
  128235. ----------684300-----------------------------
  128236. INT 68 U - ??? - INSTALLATION CHECK???
  128237. AX = 4300h
  128238. Return: AX = F386h if ???
  128239. ???
  128240. Note: called by Novell DOS 7.0 EMM386.EXE
  128241. SeeAlso: AX=4400h,INT 41/AX=004Fh
  128242. ----------684400-----------------------------
  128243. INT 68 U - ???
  128244. AX = 4400h
  128245. BX = ???
  128246. CX = ???
  128247. DX = ???
  128248. DS:SI = real-mode address of protected-mode GDT
  128249. ES:DI = real-mode address of protected-mode IDT
  128250. Return: ???
  128251. Note: called by Novell DOS 7.0 EMM386.EXE if AX=4300h returns AX=F386h
  128252. SeeAlso: AX=4300h
  128253. --------W-6847-------------------------------
  128254. INT 68 - MS Windows debugging kernel - OUTPUT STRING
  128255. AH = 47h
  128256. ES:SI -> string
  128257. Notes: output a string (to inform a debugger of some events)
  128258. KERNEL outputs "Windows Kernel Entry\r\n" on startup
  128259. SeeAlso: INT 41/AX=0012h
  128260. --------N-68FA-------------------------------
  128261. INT 68 - APPC/PC - ENABLE/DISABLE APPC
  128262. AH = FAh
  128263. AL bit 0 = new state (0 enable, 1 disable)
  128264. SeeAlso: AH=FDh,INT 68"Novell"
  128265. --------N-68FB-------------------------------
  128266. INT 68 - APPC/PC - CONVERT
  128267. AH = FBh
  128268. DS:DX -> control block (see #03707)
  128269. Return: control block updated
  128270. Format of APPC/PC "CONVERT" control block:
  128271. Offset Size Description (Table 03707)
  128272. 00h 12 BYTEs reserved
  128273. 0Ch WORD 1A00h (verb "CONVERT")
  128274. 0Eh 6 BYTEs 00h
  128275. 14h DWORD (big-endian) return code
  128276. 18h BYTE conversion
  128277. 00h ASCII to EBCDIC
  128278. 01h EBCDIC to ASCII
  128279. 19h BYTE character set
  128280. 00h AE
  128281. 01h A
  128282. 02h G
  128283. 1Ah WORD length of string to convert
  128284. 1Ch DWORD pointer to source
  128285. 20h DWORD pointer to target
  128286. --------N-68FC-------------------------------
  128287. INT 68 - APPC/PC - ENABLE/DISABLE MESSAGE TRACING
  128288. AH = FCh
  128289. AL = new state
  128290. 00h disable tracing
  128291. 01h enable tracing
  128292. DX = number of bytes to keep (0=all)
  128293. SeeAlso: AH=FDh,AH=FEh
  128294. --------N-68FD-------------------------------
  128295. INT 68 - APPC/PC - ENABLE/DISABLE API VERB TRACING
  128296. AH = FDh
  128297. AL = new tracing state (00h disabled, 01h enabled)
  128298. SeeAlso: AH=FAh,AH=FCh,AH=FEh
  128299. --------N-68FE-------------------------------
  128300. INT 68 - APPC/PC - SET TRACE DESTINATION
  128301. AH = FEh
  128302. AL = trace destinations (see #03708)
  128303. DS:DX -> trace stats record if AL bit 0 set (see #03709)
  128304. SeeAlso: AH=FCh,AH=FDh
  128305. Bitfields for trace destinations:
  128306. Bit(s) Description (Table 03708)
  128307. 0 storage (DS:DX -> trace stats record)
  128308. 1 display
  128309. 2 file (trace written to file OUTPUT.PC)
  128310. 3 printer
  128311. Format of APPC/PC Trace Statistics Record:
  128312. Offset Size Description (Table 03709)
  128313. 00h DWORD pointer to storage trace buffer
  128314. 04h WORD max number of 80-byte records in trace
  128315. 06h WORD (high-order byte first!) current record number (must init to 0)
  128316. 08h DWORD (high-order byte first!) number of records written (init to 0)
  128317. 0Ch DWORD reserved
  128318. Note: do not move record while trace is active
  128319. --------N-68FF-------------------------------
  128320. INT 68 - APPC/PC - SET PASSTHROUGH
  128321. AH = FFh
  128322. DS:DX -> passthrough exit routine
  128323. SeeAlso: AH=07h,INT 68"Novell"
  128324. --------b-69---------------------------------
  128325. INT 69 - Zenith AT BIOS - ???
  128326. Note: called by INT 09 handler
  128327. --------h-69---------------------------------
  128328. INT 69 C - HP Vectra AT - IRQ17 - KEYBOARD OUTPUT-BUFFER-FULL SERVICE ROUTINE
  128329. SeeAlso: INT 09"IRQ1",INT 68"HP Vectra",INT 6A"HP Vectra"
  128330. --------N-690100-----------------------------
  128331. INT 69 - DECnet DOS CTERM - INSTALLATION CHECK
  128332. AX = 0100h
  128333. Return: AL = FFh if present
  128334. SeeAlso: AX=010Fh
  128335. --------N-690101-----------------------------
  128336. INT 69 - DECnet DOS CTERM - SEND BYTE
  128337. AX = 0101h
  128338. BL = character
  128339. DX = session handle
  128340. Return: AH >= 80h on error
  128341. SeeAlso: AX=0102h
  128342. --------N-690102-----------------------------
  128343. INT 69 - DECnet DOS CTERM - READ BYTE
  128344. AX = 0102h
  128345. DX = session handle
  128346. Return: AH >= 80h on error
  128347. AH < 80h if successful
  128348. AL = character
  128349. SeeAlso: AX=0101h
  128350. --------N-690103-----------------------------
  128351. INT 69 - DECnet DOS CTERM - STATUS
  128352. AX = 0103h
  128353. DX = session handle
  128354. Return: AH status flags (see #03710)
  128355. AL = reason code if DECnet error (see #03711)
  128356. SeeAlso: AX=0104h
  128357. Bitfields for DECnet DOS CTERM status flags:
  128358. Bit(s) Description (Table 03710)
  128359. 7 session has been aborted
  128360. 6 DECnet error
  128361. 1 trace data available
  128362. 0 receive data available
  128363. (Table 03711)
  128364. Values for reason code:
  128365. 00h normal disconnect
  128366. 01h unknown message from host
  128367. 02h protocol violation from host
  128368. 03h could not process the initiate message
  128369. 04h error receiving message from host
  128370. 05h error sending message to host
  128371. 06h error checking for message from host
  128372. 07h remote system does not support CTERM
  128373. 08h remote system does not support correct protocol version
  128374. 09h did not receive BIND message from host
  128375. 0Ah could not send BIND message to host
  128376. 0Bh no more sessions available
  128377. 0Ch session does not exist
  128378. 0Dh not enough memory to complete operation
  128379. 0Eh connection has broken
  128380. Index: error codes;DECnet DOS CTERM|DECnet DOS CTERM;error codes
  128381. --------N-690104-----------------------------
  128382. INT 69 - DECnet DOS CTERM - DECnet STATUS
  128383. AX = 0104h
  128384. DX = session handle
  128385. Return: AX = reason code (see #03711)
  128386. Note: use this call when AX=0103h returns a DECnet error
  128387. SeeAlso: AX=0103h
  128388. --------N-690105-----------------------------
  128389. INT 69 - DECnet DOS CTERM - OPEN SESSION
  128390. AX = 0105h
  128391. DS:BX -> ASCIZ node name
  128392. ES:DX -> buffer for session control block (see #03727 at INT 6A/AH=D0h)
  128393. Return: AX <= 0 on error
  128394. AX > 0 session handle
  128395. SeeAlso: AX=0103h,AX=0106h,AX=010Ah
  128396. --------N-690106-----------------------------
  128397. INT 69 - DECnet DOS CTERM - CLOSE SESSION
  128398. AX = 0106h
  128399. DX = session handle
  128400. Return: AH = status
  128401. 00h good close
  128402. other error code (see #03711)
  128403. SeeAlso: AX=0103h,AX=0105h
  128404. --------N-69010A-----------------------------
  128405. INT 69 - DECnet DOS CTERM - GET SESSION CONTROL BLOCK SIZE
  128406. AX = 010Ah
  128407. Return: AX = length of session control block in bytes
  128408. SeeAlso: AX=0105h
  128409. --------N-69010B-----------------------------
  128410. INT 69 - DECnet DOS CTERM - GET DECnet SOCKET
  128411. AX = 010Bh
  128412. DX = session handle
  128413. Return: AX > 0 DECnet socket for the session
  128414. AX = 0 no match for handle
  128415. --------N-69010F-----------------------------
  128416. INT 69 - DECnet DOS CTERM - DEINSTALL CTERM
  128417. AX = 010Fh
  128418. Return: AH = status
  128419. 00h successful uninstall
  128420. other error code (see #03711)
  128421. Note: CTERM must have been the last TSR loaded in order to deinstall it
  128422. SeeAlso: AX=0100h
  128423. Index: uninstall;DECnet DOS CTERM
  128424. --------N-690A-------------------------------
  128425. INT 69 - DECnet DOS 2.1+ - DATA LINK LAYER
  128426. AH = 0Ah
  128427. AL = function number (see #03712)
  128428. ES:BX -> Datalink Communication Block (see #03714)
  128429. Return: AX = status (see #03713)
  128430. SeeAlso: INT 6D"DECnet"
  128431. (Table 03712)
  128432. Values for DECnet DOS Data Link Layer function:
  128433. 00h initialize
  128434. 01h open portal
  128435. 02h close portal
  128436. 03h enable multicast address
  128437. 04h disable multicast address
  128438. 05h transmit
  128439. 06h request transmit buffer
  128440. 07h deallocate transmit buffer
  128441. 08h read channel status
  128442. 09h read datalink portal list
  128443. 0Ah read information about a datalink portal
  128444. 0Bh read and/or clear counters
  128445. 0Ch request to boot from a network server
  128446. 0Dh enable Ethernet channel
  128447. 0Eh disable Ethernet channel
  128448. 0Fh start MOP/send a System ID message
  128449. 10h stop MOP
  128450. 11h get DECPARM
  128451. 12h set DECPARM
  128452. 13h external loopback
  128453. (Table 03713)
  128454. Values for DECnet DOS Data Link Layer status:
  128455. 00h successful
  128456. 01h hardware failed to initialize
  128457. 02h channel state was not off (must be off to execute that command)
  128458. 03h channel state is off (must be on to execute that command)
  128459. 04h address not set
  128460. 05h hardware missing
  128461. 06h buffer too small
  128462. 07h no more buffers available
  128463. 08h no more resources available
  128464. 09h promiscuous receiver active
  128465. 0Ah non exclusive
  128466. 0Bh unrecognized portal
  128467. 0Ch protocol type in use
  128468. 0Dh not a valid Multicast address
  128469. 0Eh outstanding calls
  128470. 0Fh hardware doesn't support receiving bad frames
  128471. 10h none outstanding
  128472. 11h no events
  128473. 12h broken
  128474. 13h buffer quota exceeded
  128475. 14h already initialized
  128476. 15h loopback failure
  128477. Index: error codes;DECnet DOS|DECnet DOS;error codes
  128478. Format of Datalink Communication Block:
  128479. Offset Size Description (Table 03714)
  128480. 00h WORD portal ID
  128481. 02h 6 BYTEs source address
  128482. 08h 6 BYTEs destination address
  128483. 0Eh DWORD buffer pointer
  128484. 12h WORD buffer length
  128485. 14h WORD operation
  128486. 16h BYTE pad flag (used on open)
  128487. 00h no pad
  128488. 01h pad
  128489. 17h BYTE mode flag (used on open)
  128490. 00h 802.3
  128491. 01h Ethernet
  128492. 02h promiscuous
  128493. 18h DWORD line status change function
  128494. 1Ch DWORD received data function
  128495. 20h DWORD transmitted data function
  128496. 24h BYTE maximum outstanding transmits/receives
  128497. 25h 2 BYTEs protocol type
  128498. 27h WORD buffers lost
  128499. --------N-694001-----------------------------
  128500. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  128501. AX = 4001h
  128502. Return: CF clear
  128503. AX = 0000h
  128504. ES:SI -> ???
  128505. InstallCheck: test for the signature "SYSV" immediately before the interrupt
  128506. handler
  128507. Range: INT 60 to INT 7F, selected by configuration
  128508. SeeAlso: AX=4002h
  128509. Index: installation check;10NET SYSSVC
  128510. --------N-694002-----------------------------
  128511. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  128512. AX = 4002h
  128513. ???
  128514. Return: ???
  128515. InstallCheck: test for the signature "SYSV" immediately before the interrupt
  128516. handler
  128517. Range: INT 60 to INT 7F, selected by configuration
  128518. --------N-694101-----------------------------
  128519. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  128520. AX = 4101h
  128521. Return: CF clear
  128522. ES:SI -> ???
  128523. Range: INT 60 to INT 7F, selected by configuration
  128524. SeeAlso: AX=4102h,AX=4103h,AX=4104h
  128525. --------N-694102-----------------------------
  128526. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  128527. AX = 4102h
  128528. ???
  128529. Return: ???
  128530. --------N-694103-----------------------------
  128531. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  128532. AX = 4103h
  128533. ???
  128534. Return: ???
  128535. --------N-694104-----------------------------
  128536. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  128537. AX = 4104h
  128538. ???
  128539. Return: ???
  128540. --------N-6942-------------------------------
  128541. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  128542. AH = 42h
  128543. AL = function (01h-14h)
  128544. ???
  128545. Return: ???
  128546. Range: INT 60 to INT 7F, selected by configuration
  128547. --------N-6943-------------------------------
  128548. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  128549. AH = 43h
  128550. AL = function (01h-05h)
  128551. ???
  128552. Return: ???
  128553. --------N-6944-------------------------------
  128554. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  128555. AH = 44h
  128556. AL = function (01h-03h)
  128557. ???
  128558. Return: ???
  128559. Range: INT 60 to INT 7F, selected by configuration
  128560. --------N-6949-------------------------------
  128561. INT 69 - 10NET v5.0 - SYSSVC.COM - BUG
  128562. AH = 49h
  128563. Note: due to a fencepost error, this function branches to hyperspace
  128564. SeeAlso: AX=4001h,AH=FFh
  128565. --------G-696996-----------------------------
  128566. INT 69 - ISR.COM v1.00 - SPECIFY INTERRUPT HANDLER
  128567. AX = 6996h
  128568. DS:DX -> interrupt handler or 0000h:0000h to disable
  128569. Return: AX = 9669h
  128570. Program: ISR (Interrupt Service Reflector) is a TSR by Rich Bono which permits
  128571. a program to provide hardware interrupt handlers even while being
  128572. debugged with a debugger that swaps interrupt vectors during
  128573. debugging.
  128574. Note: the interrupt vector which is to be reflected is set at installation
  128575. time and cannot be changed
  128576. --------N-69FF-------------------------------
  128577. INT 69 - 10NET v5.0 - SYSSVC.COM - SIGNAL SYSTEM ERROR
  128578. AH = FFh
  128579. Return: never???
  128580. Desc: displays "System Error" message and register dump, then halts system
  128581. InstallCheck: test for the signature "SYSV" immediately before the interrupt
  128582. handler
  128583. Range: INT 60 to INT 7F, selected by configuration
  128584. SeeAlso: AX=4001h,AH=49h
  128585. --------U-6A---------------------------------
  128586. INT 6A - OPTHELP.COM
  128587. Program: OPTHELP is an optionally-resident help system for SLR Systems's OPTASM
  128588. assembler
  128589. Range: INT 60h to INT 7Fh, selected by configuration
  128590. --------N-6A---------------------------------
  128591. INT 6A - DECnet DOS - LOCAL AREA TRANSPORT PROGRAM - INSTALLATION CHECK
  128592. InstallCheck: test for a signature area immediately preceding the interrupt
  128593. handler (see #03715)
  128594. SeeAlso: AH=01h/DH=FFh,INT 6B"DECnet",INT 6D"DECnet"
  128595. Index: installation check;DECnet DOS Local Area Transport
  128596. Format of DECnet DOS signature area:
  128597. Offset Size Description (Table 03715)
  128598. -5 BYTE major version number
  128599. -4 BYTE minor version number
  128600. -3 3 BYTEs signature (ASCII "LAT")
  128601. --------h-6A---------------------------------
  128602. INT 6A C - HP Vectra AT - IRQ18 - RESERVED HARDWARE INTERRUPT
  128603. SeeAlso: INT 0A"IRQ2",INT 69"HP Vectra",INT 6B"HP Vectra"
  128604. --------N-6A0000-----------------------------
  128605. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - INSTALLATION CHECK
  128606. AX = 0000h
  128607. Return: AX = 4357h ('CW')
  128608. Program: Super-TCP is a TCP/IP protocol stack by Frontier Technologies Corp.
  128609. Note: an alternate installation check is to test for the ASCIZ signature
  128610. "FTC Super-TCP" three bytes past the interrupt handler
  128611. SeeAlso: AX=0001h,AX=0002h,AX=000Fh,AX=0010h,INT 21/AH=3Fh"BW-TCP"
  128612. SeeAlso: INT 61"FTP Software",INT 62/AH=00h"ETHDEV"
  128613. --------N-6A0001-----------------------------
  128614. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ???
  128615. AX = 0001h
  128616. BH = function number
  128617. 01h ???
  128618. DS:SI -> ??? 24-byte record1 (see #03717)
  128619. ES:DI -> buffer containing ???
  128620. 02h ???
  128621. DS:SI -> ??? 18-byte record2 (see #03718)
  128622. ES:DI -> buffer containing ???
  128623. 04h ???
  128624. BL = subfunction
  128625. 01h
  128626. DS:SI -> ??? 28-byte record3 (see #03719)
  128627. ES:DI -> buffer containing ???
  128628. 02h
  128629. DS:SI -> ??? 28-byte record3 (see #03719)
  128630. ES:DI -> buffer containing ???
  128631. 03h
  128632. DS:SI -> ??? 28-byte record3 (see #03719)
  128633. else Return: AX = 0005h
  128634. 05h ???
  128635. DS:SI -> ??? 20-byte record4 (see #03720)
  128636. ES:DI -> buffer containing ???
  128637. 06h ???
  128638. BL = subfunction
  128639. 01h
  128640. DS:SI -> ??? 40-byte record5 (see #03721)
  128641. 02h
  128642. DS:SI -> ??? 20-byte record6 (see #03722)
  128643. ES:DI -> ???
  128644. 03h
  128645. DS:SI -> ??? 20-byte record6 (see #03722)
  128646. 04h
  128647. DS:SI -> ??? 46-byte record7 (see #03723)
  128648. else Return: AX = 0005h
  128649. 11h ???
  128650. DS:SI -> ??? 28-byte record8 (see #03724)
  128651. ES:DI -> ???
  128652. Return: AX = function status (see #03716)
  128653. SeeAlso: AX=0000h
  128654. (Table 03716)
  128655. Values for Super-TCP function status:
  128656. 0000h successful
  128657. 0005h unsupported function
  128658. 000Ah out of memory
  128659. Format of record1:
  128660. Offset Size Description (Table 03717)
  128661. 00h 4 BYTEs ???
  128662. 04h WORD size of ES:DI buffer
  128663. 06h 18 BYTEs ???
  128664. Format of record2:
  128665. Offset Size Description (Table 03718)
  128666. 00h 4 BYTEs ???
  128667. 04h WORD size of ES:DI buffer
  128668. 06h 12 BYTEs ???
  128669. Format of record3:
  128670. Offset Size Description (Table 03719)
  128671. 00h 2 BYTEs ???
  128672. 02h WORD ???
  128673. 04h WORD size of ES:DI buffer
  128674. 06h WORD ???
  128675. 08h WORD operation number (for function 0401h)
  128676. 0Ah DWORD -> ???
  128677. 0Eh WORD (ret) ???
  128678. 10h 12 BYTEs ???
  128679. Format of record4:
  128680. Offset Size Description (Table 03720)
  128681. 00h 4 BYTEs ???
  128682. 04h WORD size of ES:DI buffer
  128683. 06h 14 BYTEs ???
  128684. Format of record5:
  128685. Offset Size Description (Table 03721)
  128686. 00h BYTE operation??? (00h-07h)
  128687. 01h BYTE ???
  128688. 02h WORD (ret) ???
  128689. 04h DWORD -> ???
  128690. 08h 4 BYTEs ???
  128691. 0Ch DWORD -> ??? or 0000h:0000h
  128692. 10h 16 BYTEs ???
  128693. 20h DWORD ???
  128694. 24h 4 BYTEs ???
  128695. Format of record6:
  128696. Offset Size Description (Table 03722)
  128697. 00h 4 BYTEs ???
  128698. 04h WORD size of ES:DI buffer
  128699. 06h 14 BYTEs ???
  128700. Format of record7:
  128701. Offset Size Description (Table 03723)
  128702. 00h WORD ???
  128703. 02h WORD ???
  128704. 04h WORD ???
  128705. 06h 40 BYTEs ???
  128706. Format of record8:
  128707. Offset Size Description (Table 03724)
  128708. 00h 4 BYTEs ???
  128709. 04h WORD size of ES:DI buffer
  128710. 06h 6 BYTEs ???
  128711. 0Ch WORD (ret) ???
  128712. 0Eh WORD operation??? (01h-03h)
  128713. 10h 12 BYTEs ???
  128714. --------N-6A0002-----------------------------
  128715. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ???
  128716. AX = 0002h
  128717. BX = ??? (zero/nonzero)
  128718. CX = ??? identifier (see AX=0004h)
  128719. DS:SI -> 40-byte buffer for ??? or 0000h:0000h
  128720. ES:DI -> buffer for ??? or 0000h:0000h
  128721. Return: AX = 0000h (successful) ???
  128722. BL = ???
  128723. BH = ???
  128724. CX = ???
  128725. DX = ???
  128726. --------N-6A0003-----------------------------
  128727. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - GET ??? DATA AREA
  128728. AX = 0003h
  128729. Return: CX:DX -> data area (see #03725)
  128730. Format of Super-TCP data area:
  128731. Offset Size Description (Table 03725)
  128732. 00h 2 BYTEs ???
  128733. 02h DWORD original INT 6A vector
  128734. 06h 2 BYTEs ???
  128735. 08h 96 BYTEs array of 16 6-byte ???
  128736. 68h WORD number of elements of above array in use
  128737. 6Ah WORD ???
  128738. ???
  128739. --------N-6A0004-----------------------------
  128740. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ALLOCATE ???
  128741. AX = 0004h
  128742. CX = size in ???
  128743. Return: AX = 0000h (successful)
  128744. CX = DX = ???
  128745. SeeAlso: AX=0005h,AX=000Fh
  128746. --------N-6A0005-----------------------------
  128747. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - FREE/CLOSE ???
  128748. AX = 0005h
  128749. CX = ??? identifier (from AX=0004h)
  128750. Return: AX = status (0000h successful, FFFFh failed)
  128751. SeeAlso: AX=0004h,AX=000Fh
  128752. --------N-6A000F-----------------------------
  128753. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - FREE/CLOSE ALL ???
  128754. AX = 000Fh
  128755. Return: AX = 0000h (successful)
  128756. SeeAlso: AX=0000h,AX=0004h,AX=0005h
  128757. --------N-6A0010-----------------------------
  128758. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - UNINSTALL
  128759. AX = 0010h
  128760. Return: AX = status
  128761. 0000h successful
  128762. 0002h can't uninstall, interrupt vector hooked by another program
  128763. Program: Super-TCP is a TCP/IP protocol stack by Frontier Technologies Corp.
  128764. Note: if AX is not one of the values listed here on entry, Super-TCP
  128765. returns AX=FFFEh
  128766. SeeAlso: AX=0000h
  128767. --------N-6A01--DHFF-------------------------
  128768. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BYTE
  128769. AH = 01h
  128770. DH = FFh
  128771. AL = character
  128772. DL = handle
  128773. Return: AH >= 80h on error
  128774. SeeAlso: AH=02h
  128775. --------N-6A02--DHFF-------------------------
  128776. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - READ BYTE
  128777. AH = 02h
  128778. DH = FFh
  128779. DL = handle
  128780. Return: AH < 80h if successful
  128781. AL = character
  128782. AH >= 80h on error
  128783. SeeAlso: AH=01h
  128784. --------N-6A03--DHFF-------------------------
  128785. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - STATUS
  128786. AH = 03h
  128787. DH = FFh
  128788. DL = handle
  128789. Return: AH = status flags (see #03726)
  128790. Bitfields for DECnet DOS LAT status flags:
  128791. Bit(s) Description (Table 03726)
  128792. 5 transmit buffer empty
  128793. 3 session in start state
  128794. 2 session not active
  128795. 1 unable to queue transmit data
  128796. 0 receive data available
  128797. --------N-6AD0--DHFF-------------------------
  128798. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - OPEN SESSION
  128799. AH = D0h
  128800. DH = FFh
  128801. AL = password flag
  128802. FFh no password
  128803. 0Fh password at ES:DI
  128804. ES:BX -> LAT session control block (see #03727)
  128805. ES:DI -> 16-byte blank-padded password (optional)
  128806. Return: AH = 00h success
  128807. DL = handle
  128808. SeeAlso: AX=D000h
  128809. Format of LAT Session Control Block:
  128810. Offset Size Description (Table 03727)
  128811. 00h 18 BYTEs service name
  128812. 12h 18 BYTEs node name (future use)
  128813. 24h 18 BYTEs port name (future use)
  128814. 36h DWORD -> session stopped post routine
  128815. 3Ah DWORD -> service table overflow post routine
  128816. 3Eh DWORD -> transmit post routine
  128817. 42h DWORD -> receive post routine
  128818. 46h WORD session status
  128819. 04h circuit failure
  128820. 08h stop slot received
  128821. ---LAT v???---
  128822. 48h WORD slot state (LAT driver use)
  128823. 4Ah WORD local credits (LAT driver use)
  128824. 4Ch DWORD -> VCB (LAT driver use)
  128825. 50h WORD backward slot (LAT driver use)
  128826. 52h WORD forward slot (LAT driver use)
  128827. 54h WORD remote slot ID (LAT driver use)
  128828. 56h WORD local slot ID (LAT driver use)
  128829. 58h WORD slot byte count (LAT driver use)
  128830. 5Ah BYTE remote credits (LAT driver use)
  128831. 5Bh 255 BYTEs transmitted data slot
  128832. 15Ah BYTE number of receive data slots (4 recommended)
  128833. 15Bh BYTE number of occupied slots
  128834. 15Ch BYTE index of next receive slot to use
  128835. 15Dh BYTE index of current receive slot
  128836. 15Eh WORD pointer to first received character
  128837. 160h N WORDs pointers to receive slots (buffers); each is 259 bytes
  128838. 259N BYTEs buffers
  128839. Note: set post routines to 0000h:0000h if polled operation will be used
  128840. ---LAT v4.1.17---
  128841. 48h WORD session state (LAT driver use)
  128842. 4Ah BYTE local credits (LAT driver use)
  128843. 4Bh DWORD -> VCB (LAT driver use)
  128844. 4Fh WORD backward slot (LAT driver use)
  128845. 51h WORD forward slot (LAT driver use)
  128846. 53h BYTE remote slot ID (LAT driver use)
  128847. 54h BYTE local slot ID (LAT driver use)
  128848. 55h BYTE slot byte count (LAT driver use)
  128849. 56h BYTE remote credits (LAT driver use)
  128850. 57h 255 BYTEs transmitted data slot
  128851. 156h BYTE number of receive data slots (4 recommended)
  128852. 157h BYTE number of occupied slots
  128853. 158h BYTE index of next receive slot to use
  128854. 159h BYTE index of current receive slot
  128855. 15Ah WORD pointer to first received character
  128856. 15Ch N WORDs pointers to receive slots (buffers); each is 259 bytes
  128857. 259N BYTEs buffers
  128858. Note: set post routines to 0000h:0000h if polled operation will be used
  128859. --------N-6AD000DHFF-------------------------
  128860. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - CLOSE SESSION
  128861. AX = D000h
  128862. DH = FFh
  128863. DL = handle
  128864. Return: AX = status (see #03728)
  128865. SeeAlso: AH=D0h
  128866. (Table 03728)
  128867. Values for DECnet DOS LAT function status:
  128868. 0000h successful
  128869. 0001h no such session
  128870. 0002h session not running, try again later
  128871. --------N-6AD100DHFF-------------------------
  128872. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BREAK
  128873. AX = D100h
  128874. DH = FFh
  128875. DL = handle
  128876. Return: AX = 0000h if successful
  128877. AH bit 7 set if unable to send break
  128878. --------N-6AD300DHFF-------------------------
  128879. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - RESET LAT COUNTERS
  128880. AX = D300h
  128881. DH = FFh
  128882. SeeAlso: AX=D400h
  128883. --------N-6AD400DHFF-------------------------
  128884. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - COPY LAT COUNTERS
  128885. AX = D400h
  128886. DH = FFh
  128887. CX = buffer size
  128888. ES:BX -> buffer for LAT counters
  128889. Return: AX = status
  128890. 0000h counters copied into buffer
  128891. FFFFh buffer too small
  128892. SeeAlso: AX=D300h
  128893. --------N-6AD500DHFF-------------------------
  128894. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - GET NEXT LAT SERVICE NAME
  128895. AX = D500h
  128896. DH = FFh
  128897. ES:BX -> 17-byte buffer for name
  128898. Return: AH = 00h if successful
  128899. ES:BX buffer filled
  128900. AX = FFFFh if end of table or no name available
  128901. Notes: use this function to get the names of the hosts on the network
  128902. successive calls are necessary to get all names
  128903. SeeAlso: AX=D600h/DH=FFh
  128904. --------N-6AD600DHFF-------------------------
  128905. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - LAT SERVICE TABLE RESET
  128906. AX = D600h
  128907. DH = FFh
  128908. Return: AX = number of service table entries
  128909. BX = status
  128910. 0000h service table has not overflowed
  128911. FFFFh service table has overflowed
  128912. SeeAlso: AX=D500h
  128913. --------!---Section--------------------------
  128914. Interrupt List, part 17 of 18
  128915. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  128916. --------N-6B---------------------------------
  128917. INT 6B - DECnet DOS - PORT DRIVER
  128918. InstallCheck: test for a signature area (see #03729) immediately preceding
  128919. the interrupt handler
  128920. SeeAlso: INT 6A"DECnet",INT 6C"DECnet"
  128921. Index: installation check;DECnet DOS Port Driver
  128922. Format of DECnet DOS signature area:
  128923. Offset Size Description (Table 03729)
  128924. -5 BYTE major version number
  128925. -4 BYTE minor version number
  128926. -3 3 BYTEs signature (ASCII "PDV")
  128927. --------v-6B---------------------------------
  128928. INT 6B - VIRUS - "Saddam" - ORIGINAL INT 21h VECTOR
  128929. SeeAlso: INT 21/AX=FFFFh,INT 61"VIRUS",INT 70"VIRUS"
  128930. --------h-6B---------------------------------
  128931. INT 6B C - HP Vectra AT - IRQ19 - RESERVED HARDWARE INTERRUPT
  128932. SeeAlso: INT 0B"IRQ3",INT 6A"HP Vectra",INT 6C"HP Vectra"
  128933. --------S-6B0000-----------------------------
  128934. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED WRITE
  128935. AX = 0000h
  128936. CX = length
  128937. ES:BX -> buffer
  128938. Return: CX = number of bytes written
  128939. Program: NASI is Novell's NetWare Asynchronous Services Interface (purchased
  128940. from Network Products Corp, who call it NCSI) which runs on
  128941. workstations; NACS is the NetWare Asynchronous Communications
  128942. Services module which runs on servers
  128943. InstallCheck: test for the signature string "NCSI" three bytes past the
  128944. interrupt handler; see also AH=02h.
  128945. As of version 3.0, Novell's NASI can be distinguished from NPC's
  128946. NCSI by the presence of an 'A' immediately following the signature
  128947. Notes: this function is also supported by TelAPI, NPC NCSI, and Connection
  128948. Manager CLIENT.EXE; for TelAPI, nonzero values in AL specify a
  128949. connection ID
  128950. Connection Manager returns CF set/AL=FFh if called while an INT 6B
  128951. call is already in progress
  128952. SeeAlso: AX=0100h,AH=18h,INT 14/AH=19h,INT 14/AH=E3h
  128953. --------S-6B0100-----------------------------
  128954. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED READ
  128955. AX = 0100h
  128956. CX = length of buffer
  128957. ES:BX -> buffer
  128958. Return: CX = number of bytes read
  128959. Note: also supported by TelAPI and NPC NCSI; for TelAPI, nonzero values in
  128960. AL specify a connection ID
  128961. SeeAlso: AX=0000h,AH=19h,INT 14/AH=18h,INT 14/AH=E2h,INT 14/AX=FF02h
  128962. --------S-6B02-------------------------------
  128963. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - INSTALL CHECK
  128964. AH = 02h
  128965. AL nonzero
  128966. Return: AL = 00h if present and OK
  128967. Note: this function is also supported by TelAPI and NPC NCSI
  128968. SeeAlso: AX=0700h
  128969. --------S-6B0600-----------------------------
  128970. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - CONTROL
  128971. AX = 0600h
  128972. CX = command
  128973. 02h send break
  128974. 04h disconnect
  128975. 06h hold
  128976. Return: CF clear if successful
  128977. AL = 00h
  128978. CF set on error
  128979. AX < 0
  128980. Note: this function is also supported by TelAPI and NPC NCSI
  128981. --------S-6B0700-----------------------------
  128982. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - GET STATUS
  128983. AX = 0700h
  128984. Return: CH <> 00h if connection active
  128985. Notes: this function is also supported by TelAPI and NPC NCSI
  128986. Novell TelAPI returns CX=FF01h and CF clear
  128987. SeeAlso: AH=02h,AH=10h
  128988. --------N-6B08-------------------------------
  128989. INT 6B - TelAPI - CHECK FOR BREAK SIGNAL
  128990. AH = 08h
  128991. AL = circuit number
  128992. Return: CF clear if no breaks
  128993. AL = 00h
  128994. CX = 0000h
  128995. CF set if one or more breaks received
  128996. Note: this function also clears ??? flag
  128997. SeeAlso: INT 14/AX=FF00h
  128998. --------S-6B10-------------------------------
  128999. INT 6B - NPC NCSI EXTENDED SERIAL I/O - GET STATUS
  129000. AH = 10h
  129001. AL = connection ID (Novell TELAPI.EXE)
  129002. CX = ???
  129003. ES:BX -> buffer for status (see #03730)
  129004. Return: CF clear if successful
  129005. CL = ???
  129006. CH = ???
  129007. CF set on error
  129008. ???
  129009. Notes: this function is also supported by TelAPI
  129010. when shelled out to an external protocol from Novell NASI, the circuit
  129011. whose status indicates that it is connected is the currently active
  129012. circuit
  129013. SeeAlso: AX=0700h,AH=12h,AH=1Fh
  129014. Format of NASI status:
  129015. Offset Size Description (Table 03730)
  129016. 00h BYTE number of allocated virtual circuits
  129017. 01h BYTE reserved
  129018. 02h 9 BYTEs states of emulated circuits 0-8
  129019. 00h idle
  129020. 01h attached Telnet session, in command state
  129021. 02h attached Telnet session, connected with host
  129022. 03h-06h ??? (not returned by TelAPI)
  129023. Note: this description is derived from the Novell TelAPI emulation of NASI
  129024. --------S-6B11--DX0001-----------------------
  129025. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ALLOCATE A VIRTUAL CIRCUIT
  129026. AH = 11h
  129027. DX = 0001h
  129028. AL = 00h
  129029. ES:BX -> service name string (8 characters, blank-padded)
  129030. Return: CF clear if successful
  129031. AL = virtual circuit number allocated (01h for Novell TELAPI.EXE)
  129032. CL = ??? (01h for Novell TELAPI.EXE)
  129033. CH = ??? (01h for Novell TELAPI.EXE)
  129034. CF set on error
  129035. ???
  129036. Note: this function is also supported by TelAPI
  129037. SeeAlso: AH=12h,AH=15h,AH=16h,AH=17h,AH=18h
  129038. --------S-6B12-------------------------------
  129039. INT 6B - NPC NCSI EXTENDED SERIAL I/O - VIRTUAL CIRCUIT STATUS
  129040. AH = 12h
  129041. AL = virtual circuit number (0-8)
  129042. Return: CF clear if successful
  129043. AL = virtual circuit number
  129044. CL = virtual circuit's state
  129045. 00h idle
  129046. 01h Telnet session, in command state
  129047. 02h Telnet session, connected to host
  129048. 03h-06h ??? (not returned by TelAPI)
  129049. CF set on error
  129050. AL = error code
  129051. E2h invalid virtual circuit number
  129052. E4h specified virtual circuit not allocated
  129053. Note: this function is also supported by TelAPI
  129054. SeeAlso: AH=10h,AH=15h,AH=1Ah,AH=1Bh,AH=1Fh
  129055. --------S-6B13-------------------------------
  129056. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE REQUEST/REPLY SERVICE NAME
  129057. AH = 13h
  129058. AL = virtual circuit number
  129059. CL = direction (00h get, nonzero set)
  129060. ES:BX -> buffer for/containing service name
  129061. Return: ???
  129062. Note: this function is also supported by TelAPI
  129063. SeeAlso: AH=14h,AH=15h
  129064. --------S-6B14-------------------------------
  129065. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE SERVICE ADDRESS
  129066. AH = 14h
  129067. AL = virtual circuit number
  129068. ES:BX -> buffer for/containing service address
  129069. Return: ???
  129070. Note: this function is also supported by TelAPI, which only supports
  129071. retrieving the address
  129072. SeeAlso: AH=13h,AH=15h,AH=21h
  129073. --------S-6B15-------------------------------
  129074. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE VIRTUAL CIRCUIT CONFIG
  129075. AH = 15h
  129076. AL = virtual circuit number
  129077. CL = direction (00h get, nonzero set)
  129078. ES:BX -> buffer for/containing virtual circuit config (see #03731)
  129079. Return: ES:BX buffer filled
  129080. Note: this function is also supported by TelAPI
  129081. SeeAlso: AH=13h"NCSI",AH=14h"NCSI"
  129082. Format of virtual circuit configuration:
  129083. Offset Size Description (Table 03731)
  129084. 00h WORD buffer length
  129085. 02h WORD port ID
  129086. 04h WORD receive rate
  129087. 06h WORD receive word length
  129088. 08h WORD receive stop bits
  129089. 0Ah WORD receive parity
  129090. 0Ch WORD transmit rate
  129091. 0Eh WORD transmit word length
  129092. 10h WORD transmit stop bits
  129093. 12h WORD transmit parity
  129094. 14h WORD DTR
  129095. 16h WORD RTS
  129096. --------S-6B16-------------------------------
  129097. INT 6B - NPC NCSI EXTENDED SERIAL I/O - LOG AND/OR INITIALIZE VIRTUAL CIRCUIT
  129098. AH = 16h
  129099. AL = virtual circuit number
  129100. CL = ??? switch (00h, ???)
  129101. Return: CF clear if successful
  129102. AL = virtual circuit number
  129103. CF set on error
  129104. ???
  129105. Note: this function is also supported by TelAPI, which always returns CF
  129106. clear and AL=00h
  129107. SeeAlso: AH=11h,AH=12h,AH=17h
  129108. --------S-6B17-------------------------------
  129109. INT 6B - NPC NCSI EXTENDED SERIAL I/O - DISCONNECT A VIRTUAL CIRCUIT
  129110. AH = 17h
  129111. AL = virtual circuit number
  129112. Return: CF clear if successful
  129113. CF set on error
  129114. ???
  129115. Note: this function is also supported by TelAPI, which always returns CF
  129116. clear and AL=00h
  129117. SeeAlso: AH=11h,AH=16h
  129118. --------S-6B18-------------------------------
  129119. INT 6B - NPC NCSI EXTENDED SERIAL I/O - WRITE DATA ON A VIRTUAL CIRCUIT
  129120. AH = 18h
  129121. AL = virtual circuit number
  129122. CX = number of characters to send
  129123. ES:BX -> buffer containing characters to be sent
  129124. Return: CF clear if successful
  129125. CF set on error
  129126. ???
  129127. Note: this function is also supported by TelAPI, which always returns CF
  129128. clear and AL=30h
  129129. SeeAlso: AX=0000h,AH=12h,AH=19h
  129130. --------S-6B19-------------------------------
  129131. INT 6B - NPC NCSI EXTENDED SERIAL I/O - READ DATA ON A VIRTUAL CIRCUIT
  129132. AH = 19h
  129133. AL = virtual circuit number
  129134. CX = number of characters to read
  129135. ES:BX -> buffer for received characters
  129136. Return: CX = 0000h if failed
  129137. CX = nonzero (possibly number of characters received) if successful
  129138. Note: this function is also supported by TelAPI
  129139. SeeAlso: AX=0100h,AH=12h,AH=18h
  129140. --------S-6B1A-------------------------------
  129141. INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE STATUS
  129142. AH = 1Ah
  129143. ???
  129144. Return: ???
  129145. SeeAlso: AH=12h,AH=1Bh
  129146. --------S-6B1B-------------------------------
  129147. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT STATUS
  129148. AH = 1Bh
  129149. ???
  129150. Return: ???
  129151. SeeAlso: AH=12h,AH=1Ah
  129152. --------S-6B1C-------------------------------
  129153. INT 6B - NPC NCSI EXTENDED SERIAL I/O - CLEAR RECEIVE BUFFER
  129154. AH = 1Ch
  129155. AL = circuit number
  129156. Return: nothing
  129157. SeeAlso: AH=1Dh"NCSI",AH=1Eh"NCSI"
  129158. --------S-6B1D-------------------------------
  129159. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT BUFFER CONTROL
  129160. AH = 1Dh
  129161. ???
  129162. Return: ???
  129163. SeeAlso: AH=1Ch,AH=1Eh
  129164. --------S-6B1E-------------------------------
  129165. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ISSUE CONTROL REQUEST
  129166. AH = 1Eh
  129167. ???
  129168. Return: ???
  129169. SeeAlso: AH=1Ch,AH=1Dh
  129170. --------S-6B1F-------------------------------
  129171. INT 6B - NPC NCSI EXTENDED SERIAL I/O - EXTERNAL STATUS
  129172. AH = 1Fh
  129173. ???
  129174. Return: ???
  129175. SeeAlso: AH=10h,AH=12h
  129176. --------S-6B20-------------------------------
  129177. INT 6B - Connection Manager CLIENT.EXE - ???
  129178. AH = 20h
  129179. ???
  129180. Return: ???
  129181. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  129182. serial ports over an IPX or NetBIOS-based network
  129183. Note: CLIENT.EXE returns CF set/AL=F9h if AH is not 00h to 21h on entry
  129184. --------S-6B21-------------------------------
  129185. INT 6B - NPC NCSI EXTENDED SERIAL I/O - QUERY NAME SERVICE
  129186. AH = 21h
  129187. AL = virtual circuit number
  129188. CL = ??? (00h or 01h)
  129189. ES:BX -> buffer for service name structure (see #03732)
  129190. Return: CF clear if successful
  129191. ES:BX buffer filled
  129192. CF set on error
  129193. Notes: a program should call this function after allocating a virtual circuit
  129194. and check that the general name matches the requested service
  129195. prior to version 3.0, Novell's NASI returned the first available port;
  129196. v3.0+ returns the first port found--check the returned status to
  129197. determine whether the port is available
  129198. SeeAlso: AH=14h"NCSI"
  129199. Format of NCSI service name structure:
  129200. Offset Size Description (Table 03732)
  129201. 00h WORD buffer length
  129202. 02h 8 BYTEs service name
  129203. 0Ah 8 BYTEs general name
  129204. 12h 8 BYTEs specific name
  129205. 1Ah 4 BYTEs ???
  129206. ---Novell NASI v3.0+ ---
  129207. 1Eh BYTE port number
  129208. 1Fh BYTE port status
  129209. 00h idle (available)
  129210. 01h allocated (available)
  129211. 02h connected
  129212. 03h on hold
  129213. ----------6B6B-------------------------------
  129214. INT 6B - Tandy SCHOOLMATE PLUS - API
  129215. AH = 6Bh
  129216. AL = E0h to FFh
  129217. Note: details not yet available
  129218. ----------6C---------------------------------
  129219. INT 6C - system resume vector (CONVERTIBLE)
  129220. ----------6C---------------------------------
  129221. INT 6C - DOS 3.2 Realtime Clock update
  129222. --------N-6C---------------------------------
  129223. INT 6C - DECnet DOS network scheduler
  129224. InstallCheck: test for a signature area immediately preceding the interrupt
  129225. handler (see #03733)
  129226. Note: this function is also supported by DEC Pathworks for DOS
  129227. SeeAlso: INT 6B"DECnet",INT 6D"DECnet",INT 6E"DECnet"
  129228. Index: installation check;DECnet DOS scheduler
  129229. Format of DECnet DOS signature area:
  129230. Offset Size Description (Table 03733)
  129231. -5 BYTE major version number
  129232. -4 BYTE minor version number
  129233. -3 3 BYTEs signature (ASCII "SCH")
  129234. --------h-6C---------------------------------
  129235. INT 6C C - HP Vectra AT - IRQ20 - HP-HIL CONTROLLER INTERRUPT
  129236. SeeAlso: INT 0C"IRQ4",INT 6B"HP Vectra",INT 6D"HP Vectra"
  129237. --------V-6D---------------------------------
  129238. INT 6D - VIDEO - many VGA - VIDEO BIOS ENTRY POINT
  129239. Desc: points at the original INT 10 entry point set up by the VGA BIOS
  129240. Notes: used by IBM, ATI VGA Wonder, Paradise, Video7, and NCR, and many others
  129241. the Diamond Stealth64 BIOS uses this vector to store the INT 42 vector
  129242. of the inactive video (see INT 10/AH=12h/BL=35h)
  129243. SeeAlso: INT 10/AH=00h,INT 10/AH=0Eh,INT 10/AH=12h/BL=10h
  129244. --------V-6D---------------------------------
  129245. INT 6D - Trident SVGA - VIDEO BIOS HANDLER
  129246. Note: the BIOS INT 10 handler on various Trident VGA cards consists merely
  129247. of a call to INT 6D followed by an IRET.
  129248. --------N-6D---------------------------------
  129249. INT 6D - DECnet DOS (before 2.1) - DATA LINK LAYER PROGRAM
  129250. AH = function
  129251. ???
  129252. Return: ???
  129253. InstallCheck: test for a signature area immediately preceding the interrupt
  129254. handler (see #03734)
  129255. SeeAlso: INT 69/AH=0Ah,INT 6C"DECnet",INT 6E"DECnet"
  129256. Index: installation check;DECnet DOS Data Link Layer
  129257. Format of DECnet DOS signature area:
  129258. Offset Size Description (Table 03734)
  129259. -5 BYTE major version number
  129260. -4 BYTE minor version number
  129261. -3 3 BYTEs signature (ASCII "DLL")
  129262. --------h-6D---------------------------------
  129263. INT 6D C - HP Vectra AT - IRQ21 - RESERVED HARDWARE INTERRUPT
  129264. SeeAlso: INT 0D"IRQ5",INT 6C"HP Vectra",INT 6E"HP Vectra"
  129265. --------V-6DBD60-----------------------------
  129266. INT 6D U - Matrox Multiple Monitor Support v1.0 - ???
  129267. AX = BD60h
  129268. DS:SI -> buffer containing ??? (see #03735)
  129269. ???
  129270. Return: AX = 00BDh if function executed
  129271. ???:SI -> 22-byte buffer (inside TSR) filled with ??? (see #03735)
  129272. AX unchanged if function disabled
  129273. Note: this function is a NOP if AX=BD6Fh/BL=01h was called
  129274. SeeAlso: AX=BD61h,AX=BD6Fh,AX=BDFFh
  129275. Format of Matrox ??? buffer:
  129276. Offset Size Description (Table 03735)
  129277. 00h 4 BYTEs ???
  129278. 04h WORD video mode width in pixels
  129279. 06h WORD video mode height in pixels
  129280. 08h BYTE ???
  129281. 09h BYTE ???
  129282. 0Ah BYTE ???
  129283. 0Bh BYTE flags
  129284. bit 1: ???
  129285. bit 4: ??? (corresponds to bit 14 for AX=BD61h)
  129286. bit 5: ??? (corresponds to bit 15 for AX=BD61h)
  129287. 0Ch DWORD -> ??? buffer
  129288. 10h WORD ???
  129289. bit 4: ??? (corresponds to bit 14 for AX=BD61h)
  129290. bit 5: ??? (corresponds to bit 15 for AX=BD61h)
  129291. 12h 4 BYTEs ???
  129292. SeeAlso: #03736
  129293. --------V-6DBD61-----------------------------
  129294. INT 6D U - Matrox Multiple Monitor Support v1.0 - GET VIDEO MODE INFORMATION
  129295. AX = BD61h
  129296. BX = width in pixels (bits 13-0)
  129297. bit 14: ???
  129298. bit 15: ???
  129299. CX = height in pixels
  129300. Return: AL = BDh if function supported
  129301. AH = status
  129302. 00h successful
  129303. 01h failed (resolution/flags not supported)
  129304. CX:BX -> video mode data structure (see #03736)
  129305. (first word is FFFFh if unsupported resolution)
  129306. EAX high word cleared
  129307. SeeAlso: AX=BD60h,AX=BD6Fh,AX=BDFFh
  129308. Format of Matrox video mode information (VCE structure):
  129309. Offset Size Description (Table 03736)
  129310. 00h WORD width in pixels
  129311. 02h WORD height in pixels
  129312. 04h WORD ???
  129313. 06h DWORD dot clock frequency
  129314. 0Ah 25 BYTEs ???
  129315. SeeAlso: #03735
  129316. --------V-6DBD6F-----------------------------
  129317. INT 6D U - Matrox Multiple Monitor Support v1.0 - INSTALLATION CHECK
  129318. AX = BD6Fh
  129319. BL = subfunction
  129320. 00h installation check
  129321. 01h disable TSR
  129322. 02h enable TSR (see AX=BD60h)
  129323. Return: AX = 00BDh if installed
  129324. SeeAlso: AX=BD60h,AX=BD61h,AX=BDFFh
  129325. --------V-6DBDFF-----------------------------
  129326. INT 6D U - Matrox Multiple Monitor Support v1.0 - UNHOOK INTERRUPT (UNINSTALL)
  129327. AX = BDFFh
  129328. Return: AX = 00BDh if supported
  129329. Note: this function revectors INT 6D without checking that it points at the
  129330. TSR, and does not release the memory occupied by the TSR
  129331. SeeAlso: AX=BD60h,AX=BD61h,AX=BD6Fh
  129332. --------N-6E---------------------------------
  129333. INT 6E - DECnet DOS - DECnet NETWORK PROCESS API
  129334. InstallCheck: test for the signature/data area (see #03737) immediately prior
  129335. to the interrupt handler
  129336. Note: this is the main DECnet DOS access, and is described in Digital manual
  129337. AA-EB46B-TV ("DECnet-DOS Programmer's Reference Manual")
  129338. Index: installation check;DECnet DOS
  129339. Format of DECnet DOS signature area:
  129340. Offset Size Description (Table 03737)
  129341. -5 BYTE major version number
  129342. -4 BYTE minor version number
  129343. -3 3 BYTEs signature (ASCII "DNP")
  129344. --------h-6E---------------------------------
  129345. INT 6E C - HP Vectra AT - IRQ22 - RESERVED HARDWARE INTERRUPT
  129346. SeeAlso: INT 0E"IRQ6",INT 6D"HP Vectra",INT 6F/AH=00h"HP Vectra"
  129347. --------N-6F---------------------------------
  129348. INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface)
  129349. AX = function
  129350. 0000h enter terminal mode
  129351. Return: AX = status
  129352. 0000h no action requested
  129353. 0001h screen save
  129354. 0001h reset interface and set configuration parameters
  129355. DX = bitfields
  129356. bits 2-0: model number
  129357. bits 4-3: I/O address
  129358. bits 6-5: DMA channel
  129359. Return: nothing
  129360. 0002h set display parameters
  129361. DX = bitfields
  129362. bits 1-0: OIA mode
  129363. bits 4-2: monitor support
  129364. Return: nothing
  129365. 0003h read status
  129366. Return: AX = status word (see #03738)
  129367. 0004h read cursor position
  129368. Return: AX = cursor position
  129369. 0005h get character from device buffer
  129370. DX = cursor position
  129371. Return: AH = type (00h data, 01h attribute)
  129372. AL = data or attribute character
  129373. 0006h send character
  129374. DH = type (00h ASCII, 01h extended code)
  129375. DL = ASCII character or extended code
  129376. Return: nothing
  129377. 0007h set timeout
  129378. DX = timeout in seconds
  129379. Return: nothing
  129380. 0008h wait for location to be modified
  129381. DX = cursor position
  129382. Return: AX = status (0000h modified, nonzero timeout)
  129383. 0009h NOP
  129384. 000Ah restore display
  129385. Return: nothing
  129386. 000Bh update device buffer
  129387. Return: AX = cursor positoin
  129388. 000Ch write string to add information area
  129389. DS:DX -> string
  129390. Return: nothing
  129391. 000Dh maintenance operations
  129392. DX = maintenance operation code
  129393. Return: AX = operation status
  129394. 000Eh get control program version
  129395. Return: AH = release number (major version)
  129396. AL = level number (minor version)
  129397. 000Fh get microcode version
  129398. Return: AH = release number (major version)
  129399. AL = level number (minor version)
  129400. 0010h save or display graphics
  129401. BX = length of data buffer
  129402. CX = subfunction request code
  129403. DS:DX -> data buffer
  129404. Return: AX = return code
  129405. CX = length of PIF data
  129406. 0011h perform structured field operation
  129407. CX = request number
  129408. DS:DX -> parameter list
  129409. Return: AX = status word (see #03738)
  129410. CX = error number
  129411. 0012h set cursor position for direct write buffer
  129412. DX = new cursor position
  129413. Return: AX = status word (see #03738)
  129414. 0013h write direct to buffer
  129415. DL = character to be written
  129416. DH = translation option
  129417. Return: AX = status word (see #03738)
  129418. 0014h write direct to buffer without echo
  129419. DL = character to be written
  129420. DH = translation option
  129421. Return: AX = status word (see #03738)
  129422. 0015h set direct write string length
  129423. DX = string value
  129424. Return: nothing
  129425. 0016h write string direct to buffer
  129426. DS:DX -> string
  129427. Return: AX = status word (see #03738)
  129428. 0017h write string direct to buffer, untranslated
  129429. DS:DX -> string
  129430. Return: AX = status word (see #03738)
  129431. 0018h get direct-write cursor position
  129432. Return: AX = cursor position
  129433. 0019h convert row/column to cursor position
  129434. DH = display row (1-43)
  129435. DL = display column (1-132)
  129436. Return: AX = cursor position
  129437. 001Ah convert cursor position to row/column
  129438. DX = cursor position
  129439. Return: AH = display row
  129440. AL = display column
  129441. 001Bh find next field
  129442. DX = initial cursor position
  129443. Return: AX = field cursor position
  129444. 001Ch find previous field
  129445. DX = initial cursor position
  129446. Return: AX = field cursor position
  129447. 001Dh find next unprotected field
  129448. DX = initial cursor position
  129449. Return: AX = field cursor position
  129450. 001Eh find previous unprotected field
  129451. DX = initial cursor position
  129452. Return: AX = field cursor position
  129453. 001Fh find next protected field
  129454. DX = initial cursor position
  129455. Return: AX = field cursor position
  129456. 0020h find previous protected field
  129457. DX = initial cursor position
  129458. Return: AX = field cursor position
  129459. 0021h masked search forward
  129460. DH = mask
  129461. DL = search pattern
  129462. Return: AX = cursor position or 0000h
  129463. 0022h masked search backward
  129464. DH = mask
  129465. DL = search pattern
  129466. Return: AX = cursor position or 0FFFh
  129467. 0023h find field length
  129468. DX = cursor position
  129469. Return: AX = field length
  129470. 0024h read field
  129471. DS:DX -> buffer for field contents
  129472. Return: AX = status word (see #03738)
  129473. 0025h read screen
  129474. DS:DX -> buffer for screen contents
  129475. Return: AX = status word (see #03738)
  129476. 0026h read buffer untranslated
  129477. DX = cursor position
  129478. Return: AX = buffer code
  129479. CX:BX -> 3278/79 device buffer image
  129480. 0027h enable/disable keyboard
  129481. DL = new state of keyboard breaks (00h enabled, 01h disabled)
  129482. Return: nothing
  129483. 0028h select host session
  129484. DL = session short name
  129485. Return: AX = session information
  129486. 0029h retrieve host session name
  129487. AX = short name (DFT) or 0000h (not available, CUT mode)
  129488. 002Ah get current device buffer size
  129489. Return: AX = device buffer size
  129490. CX = segment of EAB
  129491. 002Bh arm modified location trigger
  129492. DX = cursor position
  129493. Return: AX = status (0000h not available, 0001h successful)
  129494. Bitfields for PCOX status word:
  129495. Bit(s) Description (Table 03738)
  129496. 0,1 cursor type
  129497. 2 cursor inhibited
  129498. 3 display inhibited
  129499. 4 feature step inhibited
  129500. 5 480-character format code
  129501. 6,7 unused
  129502. 8-10 model number (2-5)
  129503. 11 unit has been reset by controller (cleared after status returned)
  129504. 12 buffer has been written into (cleared after status returned)
  129505. 13 alarm has been sounded (cleared after status returned)
  129506. 14-15 monitor type (01 mono, 10 color, 11 hybrid)
  129507. --------N-6F00-------------------------------
  129508. INT 6F - 10NET - LOGIN
  129509. AH = 00h
  129510. DS:DX -> login record (see #03739)
  129511. Return: CL = security level
  129512. AX = status (see #03740)
  129513. SeeAlso: AH=01h,AH=80h,INT 21/AX=4402h"10MEMMGR"
  129514. Format of 10NET login record:
  129515. Offset Size Description (Table 03739)
  129516. 00h 8 BYTEs user name
  129517. 08h 8 BYTEs password
  129518. 10h 12 BYTEs name of SuperStation
  129519. (Table 03740)
  129520. Values for 10NET status:
  129521. 0000h successful
  129522. 01FFh "RTO_NERR" transmit interrupt lost (time out on response)
  129523. 02FFh "NET_NERR" network (hardware) error
  129524. 03FFh "PAS_NERR" invalid password
  129525. 04FFh "LRN_NERR" local resource not available
  129526. 05FFh "SRN_NERR" server resource not available
  129527. 06FFh "LNM_NERR" already logged in under different name
  129528. 07FFh "LSF_NERR" login security failure (node)
  129529. 08FFh "NLI_NERR" not logged in
  129530. 09FFh "DIVZ_NERR" position calc error
  129531. 0AFFh "NT1_NERR" receive subfunction not = send subfunction (i.e. read,write)
  129532. 0BFFh "RFNC_NERR" request function not in range
  129533. 0CFFh "NSFH_NERR" no more server file handle entries left
  129534. 0DFFh "NFTAB_NERR" no more shared file table entries left
  129535. 0EFFh "NUFH_NERR" no more user file handle entries left
  129536. 0FFFh "CHAT_NERR" chat permit not on
  129537. 10FFh "NSRV_NERR" not a server on request
  129538. 11FFh "NOBD_NERR" no transporter board error
  129539. 12FFh "STO_NERR" time out on send
  129540. 13FFh "INF_NERR" item not found (spool item not on queue)
  129541. 14FFh "DACS_NERR" DOS access incompatible
  129542. 15FFh "RLOCK_NERR" record already locked
  129543. 16FFh "IVP_NERR" invalid parameter
  129544. 17FFh "RLTO_NERR" record lock time out error
  129545. 18FFh "CSPL_NERR" currently spooling to named device
  129546. 19FFh "DRP_NERR" dropped receive message (throttle)
  129547. 1AFFh "SOPV_NERR" open sharing violation
  129548. 1BFFh "NTUF_NERR" no more tuf entries left
  129549. 1CFFh "NOWN_NERR" not file owner on open
  129550. 1DFFh "RSEC_NERR" read security not passed
  129551. 1EFFh "WSEC_NERR" write security not passed
  129552. 1FFFh "GSEC_NERR" group security not passed
  129553. 20FFh "SEC1_NERR" security file failure
  129554. 21FFh "ACT1_NERR" activity file failure
  129555. 22FFh "SPL1_NERR" spool control file failure
  129556. 23FFh "NMT_NERR" device not mounted (spooling)
  129557. 24FFh "RSPL_NERR" spool file has not been terminated
  129558. 25FFh "DNSH_NERR" device not mounted or is not being shared
  129559. 26FFh "DUP_NERR" duplicate node ID
  129560. 27FFh "FNF_NERR" file not found error
  129561. 28FFh "NMF_NERR" no more files
  129562. 29FFh "UN_NERR" unknown internal system error
  129563. 2AFFh "QCP_NERR" print queue is full or corrupted
  129564. 2BFFh "IFNC_NERR" invalid function
  129565. 2CFFh "IVH_NERR" invalid handle
  129566. 2DFFh "TOF_NERR" too many files opened
  129567. 2EFFh "PNF_NERR" path not found
  129568. 2FFFh "SACT_NERR" named file is active
  129569. ---10NET v5.0+ ---
  129570. 30FFh "NAK_NERR" received NAK on send (destination out of buffers)
  129571. 31FFh "RENT_NERR" reentrancy in driver F_SEND
  129572. 32FFh "RECV_NERR" driver could not be put in receive mode
  129573. 33FFh "NRLT_NERR" no more RLTAB entries left
  129574. 34FFh "DIAL_NERR" function requires an unsupported dialect
  129575. 35FFh "IVD_NERR" invalid device
  129576. 36FFh "NALV_NERR" netname access level violated
  129577. 37FFh "NPIDNF_NERR" network path not found
  129578. 38FFh "SP_NERR" server is paused
  129579. 39FFh "TMNM_NERR" too many remote user names
  129580. 3AFFh "DUPD_NERR" duplicate network device
  129581. 3BFFh "DIU_NERR" shared device in use, can't delete
  129582. 3CFFh "NNWD_NERR" network name was deleted
  129583. 3DFFh "NPFS_NERR" not enough space for print file
  129584. 3EFFh "NNNF_NERR" network name not found (can't find the call name)
  129585. 3FFFh "NB_NERR" network busy
  129586. 40FFh "NDNLE_NERR" network device no longer exists
  129587. 41FFh "NBCLE_NERR" NetBIOS command limit exceeded
  129588. 42FFh "FINT24_NERR" Fail on INT 24h
  129589. 43FFh "PEXP_NERR" password expired
  129590. 44FFh "NPUP_NERR" new password error
  129591. 45FFh "MAXS_NERR" maximum allowed disk space exceeded
  129592. 46FFh "TDOW_NERR" time-of-day/day-of-week error
  129593. SeeAlso: #03767
  129594. Index: error codes;10Net|10Net;error codes
  129595. --------b-6F00-------------------------------
  129596. INT 6F - HP Vectra EX-BIOS - "F_ISR" (internal) - RESPOND TO LOGICAL ISR
  129597. AH = 00h
  129598. BP = ID for driver (see #03741)
  129599. DH = data type (see #03742)
  129600. DL = physical device driver's index (driver ID / 6)
  129601. BX,CX = data
  129602. ES:0000h -> physical device's Describe Record (see #03749)
  129603. ---keypress event data---
  129604. BH = keyboard state (only if bit 5 of DH set) (see #03743)
  129605. BL = scancode (if bit 4 of DH clear)
  129606. CX = number of scancodes in list (if bit 4 of DH set)
  129607. ES:SI -> scancode list (if bit 4 of DH set)
  129608. ---motion event data---
  129609. BX = new X position (abs device) or X increment (relative device)
  129610. CX = new Y position (abs device) or Y increment (relative device)
  129611. ---button event data
  129612. BL = button information
  129613. bits 15-8 reserved
  129614. bit 7: button state (0 = down, 1 = up)
  129615. bits 6-0: button number (0-7)
  129616. BH = reserved
  129617. Return: AH = status (see #03744)
  129618. BP,DS destroyed
  129619. ---if device is keyboard translator---
  129620. BL = translated scancode
  129621. BH = new keyboard state (if DH bit 5 set) (see #03743)
  129622. DH = new scancode type (see #03742)
  129623. Notes: INT 6F corresponds to IRQ23 on the original HP Vectra AT, which is
  129624. unavailable because of its use as a BIOS extension software interrupt
  129625. the INT 6F handler consists of an instruction to load DS with the
  129626. driver's data segment followed by an indexed far jump using BP to
  129627. select the destination vector; since the interrupt handler is
  129628. located immediately following the dispatch table, the HP_VECTOR_TABLE
  129629. may be found by looking at offset 0000h in the INT 6F segment, and
  129630. its size is equal to the offset of the interrupt handler
  129631. each entry in the HP_VECTOR table consists of a DWORD for the driver's
  129632. entry point address and a WORD for the driver's data segment
  129633. this function is not user-callable, as it is a response to a physical
  129634. event, and assumes that the caller has already handled the physical
  129635. interrupt and updated the Describe Record (see #03749) to reflect
  129636. the event
  129637. SeeAlso: INT 6C"HP Vectra",INT 6F/AX=0200h"HP Vectra"
  129638. (Table 03741)
  129639. Values for HP Vectra EX-BIOS driver ID:
  129640. 0000h V_SCOPY (null driver, but DS value points at system copyright string)
  129641. 0006h V_DOLITTLE (null driver)
  129642. 000Ch V_PNULL (null driver)
  129643. 0012h V_SYSTEM
  129644. 0018h reserved
  129645. 001Eh V_S8259
  129646. 0024h reserved
  129647. 002Ah V_SINPUT
  129648. 0030h reserved
  129649. 0036h V_QWERTY (keyboard translator)
  129650. 003Ch V_SOFTKEY (keyboard translator)
  129651. 0042h V_FUNCTION (keyboard translator)
  129652. 0048h V_NUMPAD (keyboard translator)
  129653. 004Eh V_CCP (keyboard translator)
  129654. 0054h V_SVIDEO
  129655. 005Ah V_STRACK
  129656. 0060h V_EVENT_TOUCH
  129657. 0066h V_EVENT_TABLET
  129658. 006Ch V_EVENT_POINTER
  129659. 0072h reserved
  129660. 0078h reserved
  129661. 007Eh reserved
  129662. 0084h reserved
  129663. 008Ah V_CCPCUR (keyboard translator)
  129664. 0090h V_RAW (keyboard translator)
  129665. 0096h V_CCPNUM (keyboard translator)
  129666. 009Ch V_OFF (keyboard translator)
  129667. 00A2h V_CCPGID (translator: cursor control pad keys to GID data)
  129668. 00A8h V_SKEY2FKEY (keyboard translator)
  129669. 00AEh V_8041
  129670. 00B4h V_PGID_CCP
  129671. 00BAh C_LTABLET
  129672. 00C0h V_LPOINTER (pointing device: mouse, etc.)
  129673. 00C6h V_LTOUCH (touch screen)
  129674. 00CCh V_LHPMOUSE
  129675. 00D2h ???
  129676. ...
  129677. 0102h ???
  129678. 0108h V_LNULL
  129679. 010Eh reserved
  129680. 0114h V_HPHIL
  129681. 011Ah-01C2h reserved
  129682. 016Eh V_SCANDOOR (scancode management chip driver) (ES/QS/RS only)
  129683. 01C8h-0228h available
  129684. (Table 03742)
  129685. Values for HP Vectra EX-BIOS ISR data type:
  129686. 00h reserved "T_KC_R0"
  129687. 01h reserved "T_KC_R1"
  129688. 02h ASCII data
  129689. 03h reserved "T_KC_R3"
  129690. 04h HP150 keyboard (ITF) scancode
  129691. 05h reserved "T_KC_R5"
  129692. 06h device-definable type
  129693. 07h HP Vectra keyboard set
  129694. 08h IBM AT scancode set
  129695. 09h button data
  129696. 0Ah IBM PC scancode set
  129697. 0Bh Softkey keypad (F1-F8)
  129698. 0Ch function key keypad (F1-F10)
  129699. 0Dh HP Cursor Control Pad keypad
  129700. 0Eh Qwerty keypad
  129701. 0Fh Numeric keypad
  129702. 1xh bit 4 set: string of CX scancode of type 0xh at ES:SI
  129703. 2xh bit 5 set: BH contains current keyboard state
  129704. 40h signed 8-bit relative data
  129705. 41h signed 16-bit relative data
  129706. 42h unsigned 8-bit absolute data
  129707. 43h unsigned 16-bit absolute data
  129708. 45h specially-formed data (80x25) generated by V_LTOUCH
  129709. 46h specially-formed data (640x200) generated by V_LTABLET
  129710. 47h specially-formed data (640x200) generated by V_LPOINTER
  129711. Bitfields for HP Vectra EX-BIOS keyboard state:
  129712. Bit(s) Description (Table 03743)
  129713. 0 Alt pressed
  129714. 1 Left Shift pressed
  129715. 2 Right Shift pressed
  129716. 3 Ctrl pressed
  129717. 4 CapsLock active
  129718. 5 NumLock active
  129719. 6 Right unlabeled key pressed (some international keyboards)
  129720. 7 Left unlabeled key pressed (some international keyboards)
  129721. SeeAlso: #00582
  129722. (Table 03744)
  129723. Values for HP Vectra EX-BIOS status:
  129724. 00h successful
  129725. 02h unsupported function
  129726. 04h not serviced
  129727. 06h done (no further processing should be performed on the ISR event)
  129728. F2h device is out of paper
  129729. F4h device is offline
  129730. F6h no more space for more drivers
  129731. F8h driver is busy
  129732. FAh bad parameter
  129733. FEh operation failed
  129734. Note: status codes are always even; negative values (>= 80h) indicate errors
  129735. while positive values indicate exceptional conditions
  129736. Format of HP EX-BIOS driver header data:
  129737. Offset Size Description (Table 03745)
  129738. 00h WORD driver attributes (see #03746)
  129739. 02h WORD string index of driver's name
  129740. 04h WORD driver's default logical device vector (see #03741)
  129741. 06h WORD driver's parent class (bitset) (see #03747)
  129742. 08h WORD driver's child class (bitset)
  129743. 0Ah WORD driver's parent vector
  129744. 0Ch WORD driver's child vector
  129745. 0Eh BYTE major subaddress
  129746. 0Fh BYTE minor subaddress
  129747. Notes: this structure is located at offset 0 in the driver's data segment,
  129748. which in turn may be read from the HP_VECTOR_TABLE (refer to note in
  129749. main entry)
  129750. only the first WORD is required, and everything from offset 6 onward
  129751. is only required if the device wishes to perform device mapping
  129752. SeeAlso: #03748,#03749
  129753. Bitfields for HP EX-BIOS driver header attributes:
  129754. Bit(s) Description (Table 03746)
  129755. 15 this is a complete driver header
  129756. 14 "ATR_DEVCFG" reserved
  129757. 13 driver can be mapped with the parent vector at offset 0Ah
  129758. 12 driver can be mapped with the child vector at offset 0Ch
  129759. 11-9 driver type
  129760. 000 reserved vector
  129761. 001 free vector
  129762. 010 EX-BIOS service
  129763. 011 logical driver (mapped from parent to child)
  129764. 100 mappable driver (cannot be last in driver chain)
  129765. 101 mappable driver that is last in driver chain
  129766. 110 input driver (mappable)
  129767. 111 reserved
  129768. 8 "ATR_STRING" reserved
  129769. 7 call SF_START whenever driver is remapped
  129770. 6-5 addressing requirements
  129771. 00 no subaddresses required
  129772. 01 requires major address be stored at offset 0Eh
  129773. 10 requires minor address be stored at offset 0Fh
  129774. 11 required major,minor, and mid addresses (minor in low nybble of
  129775. offset 0Fh, mid address in high nybble of 0Fh)
  129776. 4 driver can be shared between several parent drivers
  129777. 3 driver can be shared between several child drivers
  129778. 2 this driver header is in ROM
  129779. 1 "ATR_YIELD" reserved
  129780. 0 reserved
  129781. SeeAlso: #03745,#03747
  129782. Bitfields for HP EX-BIOS driver class:
  129783. Bit(s) Description (Table 03747)
  129784. 15 maps F1 to F8 softkeys
  129785. 14 keyboard
  129786. 13 cursor pad
  129787. 12 console device
  129788. 11 serial output device (may be capable of limited input)
  129789. 10 "CL_COMM" reserved
  129790. 9 interfaces multiple resources transparent to operating system
  129791. 8 serial output device filter (can be mapped between logical and physical
  129792. driver to perform translations)
  129793. 7 addressed block device
  129794. 6 priority boot device
  129795. 5 logical graphics input device
  129796. 4 physical graphics input device (can map to child of another driver)
  129797. 3 "CL_GID" can map to an event
  129798. 2 physical touch device
  129799. 1 reserved
  129800. 0 class extension bit
  129801. Note: special values: FFFFh maps to all other devices (V_PNULL), and 0000h
  129802. maps to no other driver
  129803. SeeAlso: #03745
  129804. Format of HP EX-BIOS global data area:
  129805. Offset Size Description (Table 03748)
  129806. 00h 20 BYTEs reserved
  129807. 14h BYTE sound driver status
  129808. 15h BYTE number of pending key clicks (max 4) (see AH=34h/BP=0012h)
  129809. 16h BYTE current tick duration scaling factor
  129810. 17h BYTE current key click volume
  129811. 18h WORD current beep period (10 us increments) (see AH=3Ch/BP=0012h)
  129812. 1Ah WORD current beep duration (10 us increments)
  129813. 1Ch BYTE number of pending beep functions (max 4) (see AH=3Ah/BP=0012h)
  129814. 1Dh BYTE reserved
  129815. 1Eh WORD next unused string index number
  129816. 20h ... reserved
  129817. SeeAlso: #03745
  129818. Format of HP EX-BIOS Driver Describe Record:
  129819. Offset Size Description (Table 03749)
  129820. 00h 16 BYTEs EX-BIOS driver header data (see #03745)
  129821. 10h BYTE device GID type
  129822. bits 7-4: device type
  129823. bits 3-0: physical device link address
  129824. 11h BYTE physical device ID (see #03751)
  129825. 12h WORD logical device status bits (see #03750)
  129826. 14h BYTE physical device vector number (driver ID / 6)
  129827. 15h BYTE maximum number of axes reported (0-2)
  129828. 16h BYTE device class
  129829. bits 7-4: current class
  129830. bits 3-0: default class
  129831. 17h BYTE number of buttons/prompts
  129832. bits 7-4: number of prompts
  129833. bits 3-0: number of buttons
  129834. 18h BYTE reserved
  129835. 19h BYTE (physical devices only) maximum output burst length
  129836. 1Ah BYTE (physical devices only) number of write registers
  129837. 1Bh BYTE (physical devices only) number of read registers
  129838. 1Ch BYTE button transition flags (bit 0 = button0, etc.)
  129839. 1Dh BYTE current button states (bit 0 = button0, etc.)
  129840. 1Eh WORD device resolution
  129841. 20h WORD maximum x-axis count
  129842. 22h WORD maximum y-axis count
  129843. 24h WORD X position data for absolute devices
  129844. 26h WORD Y position data for absolute devices
  129845. 28h WORD X delta for relative devices
  129846. 2Ah WORD Y delta for relative devices
  129847. 2Ch WORD (logical devices only) X-axis scaling accumulator
  129848. (fraction of one logical unit)
  129849. 2Eh WORD (logical devices only) Y-axis scaling accumulator
  129850. (fraction of one logical unit)
  129851. Bitfields for HP logical device status flags:
  129852. Bit(s) Description (Table 03750)
  129853. 15-5 reserved
  129854. 4 event enabled
  129855. 3 tracking enabled
  129856. 2 clipping enabled
  129857. 1 button error occurred
  129858. 0 interrupt in progress
  129859. SeeAlso: #03749
  129860. (Table 03751)
  129861. Values for HP-HIL device ID:
  129862. 00h-02h reserved
  129863. 03h Swiss-French keyboard
  129864. 04h-06h reserved
  129865. 07h Canadian-English keyboard
  129866. 08h-0Ah reserved
  129867. 0Bh Italian keyboard
  129868. 0Ch reserved
  129869. 0Dh Dutch keyboard
  129870. 0Eh Swedish keyboard
  129871. 0Fh German keyboard
  129872. 10h-12h reserved
  129873. 13h Spanish keyboard
  129874. 14h reserved
  129875. 15h Belgian (Flemish) keyboard
  129876. 16h Finnish keyboard
  129877. 17h UK keyboard
  129878. 18h French-Canadian keyboard
  129879. 19h Swiss-German keyboard
  129880. 1Ah Nerwegian keyboard
  129881. 1Bh Frensh keyboard
  129882. 1Ch Danish keyboard
  129883. 1Dh Katakana keyboard
  129884. 1Eh Latin American-Spanish keyboard
  129885. 1Fh US-American keyboard
  129886. 20h-2Bh reserved
  129887. 2Ch-2Fh tone generator
  129888. 30h-3Fh reserved
  129889. 40h-5Bh reserved (character entry)
  129890. 5Ch-5Fh barcode reader
  129891. 60h-67h reserved (relative positions)
  129892. 68h-6Bh mouse
  129893. 6Ch-6Fh trackball
  129894. 70h-7Fh reserved (relative positions)
  129895. 80h-87h reserved (absolute positions)
  129896. 88h-8Bh touchpad
  129897. 8Ch-8Fh touch screen
  129898. 90h-97h graphics tablet
  129899. 98h-9Fh reserved (absolute positions)
  129900. A0h-BFh compressed keyboard (91-93 keys)
  129901. C0h-DFh extended keyboard (107-109 keys)
  129902. E0h-FFh standard keyboard (85-87 keys)
  129903. --------N-6F01-------------------------------
  129904. INT 6F - 10NET - LOGOFF
  129905. AH = 01h
  129906. DS:DX -> superstation ID or nulls (12 bytes)
  129907. Return: CX = number of files closed
  129908. AX = status (see also #03740)
  129909. 08FFh superstation ID not already logged in
  129910. SeeAlso: AH=00h"10NET",AH=81h
  129911. --------N-6F02-------------------------------
  129912. INT 6F - 10NET - STATUS OF NODE
  129913. AH = 02h
  129914. DS:DX -> 512-byte status record (see #03753)
  129915. Return: CF clear if successful
  129916. CF set on error
  129917. AX = error code (see #03740)
  129918. SeeAlso: INT 21/AX=5E01h"10NET"
  129919. (Table 03752)
  129920. Values for 10NET station type:
  129921. 00h workstation
  129922. 01h superstation
  129923. 02h gateway station
  129924. 03h gateway active
  129925. 04h logged into multiple superstations
  129926. 05h reserved
  129927. Format of 10NET node status record:
  129928. Offset Size Description (Table 03753)
  129929. 00h 8 BYTEs user name (0 if none)
  129930. 08h BYTE station type (see #03752)
  129931. 09h 24 BYTEs list of superstations logged into more than one superstation
  129932. 21h 12 BYTEs node ID
  129933. 2Dh WORD message count for this station (send for user node, receive for
  129934. superstations)
  129935. ---for superstations only---
  129936. 2Fh WORD drives allocated (bit 0=A:, bit 1=B:,...)
  129937. 31h BYTE user service flags (see #03754)
  129938. 32h BYTE printers allocated (bit 0=LPT1,...)
  129939. 33h BYTE number of unprinted spool files
  129940. 34h BYTE number of opened files
  129941. 35h BYTE number of logged on nodes
  129942. 36h BYTE primary drive (1=A:)
  129943. 37h BYTE reserved
  129944. 38h N BYTEs list of logged on node IDs (each 12 bytes, max 37 IDs)
  129945. 1F4h 3 BYTEs time: sec/min/hrs
  129946. 1F7h 3 BYTEs date: day/mon/year-1980
  129947. Bitfields for 10NET user service flags:
  129948. Bit(s) Description (Table 03754)
  129949. 7 gate
  129950. 6 print permit on
  129951. 4 SUBMIT is on
  129952. 3 mail waiting for node
  129953. 2 calendar waiting for you
  129954. 1 news waiting for you
  129955. 0 mail waiting for you
  129956. --------b-6F0200-----------------------------
  129957. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_INIT" - START INITIALIZING DRIVER
  129958. AX = 0200h
  129959. BP = driver ID (see #03741)
  129960. BX = "last-used DS" value from HP global data area (see #03748)
  129961. Return: AH = status (see #03744)
  129962. BX = new "last-used DS" value
  129963. BP,DS destroyed
  129964. SeeAlso: AH=00h"HP Vectra",AX=0202h,AH=0Ch"F_INS_FIXOWNDS"
  129965. --------b-6F0202-----------------------------
  129966. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_START" - COMPLETE DRIVER INITIALIZ.
  129967. AX = 0202h
  129968. BP = driver ID (see #03741)
  129969. Return: AH = status (see #03744)
  129970. BP,DS destroyed
  129971. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0204h"HP Vectra"
  129972. --------W-6F0204-----------------------------
  129973. INT 6F C - MS Windows 3.0 - DOS APPLICATION SWITCH HOOK
  129974. AX = 0204h
  129975. Return: AX = status
  129976. 0000h switch is allowed
  129977. other switch not allowed
  129978. Note: intercepting this call will allow a DOS application to ensure that
  129979. Windows will not switch away from it.
  129980. --------b-6F0204-----------------------------
  129981. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_REPORT_STATE" - GET DRIVER STATE
  129982. AX = 0204h
  129983. BP = driver ID (see #03741)
  129984. Return: AH = status (see #03744)
  129985. DX = device state from Logical Describe Record (see #03749,#03755)
  129986. BP,DS destroyed
  129987. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0206h"HP Vectra"
  129988. Bitfields for HP Vectra V_HPHIL driver state:
  129989. Bit(s) Description (Table 03755)
  129990. 0 link configuration in progress
  129991. 1 reserved
  129992. 2 no devices attached
  129993. 3 general failure
  129994. 4,5 reserved
  129995. 6 HP-HIL driver open
  129996. 7 reserved
  129997. 8 link has been reconfigured
  129998. 9 error during output request
  129999. 10 reserved
  130000. 11 output request complete
  130001. 12 timeout
  130002. 13-15 reserved
  130003. --------b-6F0206-----------------------------
  130004. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_VERSION_DESC" - GET DRIVER VERSION
  130005. AX = 0206h
  130006. BP = driver ID (see #03741)
  130007. Return: AH = status (see #03744)
  130008. BX = driver release date code
  130009. (BL = BCD years since 1960, BH = BCD week number within year)
  130010. CX = length of version string
  130011. ES:DI -> version string
  130012. BP,DS destroyed
  130013. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0204h"HP Vectra",AX=0208h
  130014. --------b-6F0208-----------------------------
  130015. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_DEF_ATTR" - RESET TO DEFAULT ATTR
  130016. AX = 0208h
  130017. BP = driver ID (see #03741)
  130018. Return: AH = status (see #03744)
  130019. BP,DS destroyed
  130020. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=020Ah,AX=020Ch
  130021. --------b-6F020A-----------------------------
  130022. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_GET_ATTR" - GET CURRENT ATTRIBUTES
  130023. AX = 020Ah
  130024. BP = driver ID (see #03741)
  130025. Return: AH = status (see #03744)
  130026. BX,CX = current attributes
  130027. BP,DS destroyed
  130028. ---for V_LTOUCH, V_LPOINTER---
  130029. BX = logical width
  130030. CX = logical height
  130031. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Ch
  130032. --------b-6F020C-----------------------------
  130033. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_SET_ATTR" - SET DEVICE ATTRIBUTES
  130034. AX = 020Ch
  130035. BP = driver ID (see #03741)
  130036. BX,CX = new attributes
  130037. ---for V_LTOUCH, V_LPOINTER---
  130038. BX = new logical width
  130039. CX = new logical height
  130040. Return: AH = status (see #03744)
  130041. BP,DS destroyed
  130042. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Ah
  130043. --------b-6F020E-----------------------------
  130044. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_OPEN" - RESERVE DRIVER FOR ACCESS
  130045. AX = 020Eh
  130046. BP = driver ID (see #03741) for V_HPHIL, others
  130047. Return: AH = status (see #03744)
  130048. BP,DS destroyed
  130049. Desc: place device in open state, which allows output to the device
  130050. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=0210h
  130051. --------b-6F0210-----------------------------
  130052. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_CLOSE" - RELEASE DRIVER
  130053. AX = 0210h
  130054. BP = driver ID (see #03741) for V_HPHIL, others
  130055. Return: AH = status (see #03744)
  130056. BP,DS destroyed
  130057. Desc: place device in closed state, which disallows output to the device
  130058. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh
  130059. --------b-6F0212-----------------------------
  130060. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_TIMEOUT" - REPORT REQUESTED TIMEOUT
  130061. AX = 0212h
  130062. BP = driver ID (see #03741)
  130063. Return: AH = status (see #03744)
  130064. BP,DS destroyed
  130065. Desc: report to driver that a previously-requested timeout interval has
  130066. expired
  130067. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0214h,AX=0216h
  130068. --------b-6F0214-----------------------------
  130069. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_INTERVAL" - 60 HZ INTERVAL EXPIRED
  130070. AX = 0214h
  130071. BP = driver ID (see #03741)
  130072. Return: AH = status (see #03744)
  130073. BP,DS destroyed
  130074. Desc: report to driver that a previously-requested 60 Hz interval has
  130075. expired
  130076. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0212h,AX=0216h
  130077. --------b-6F0216-----------------------------
  130078. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_TEST" - PERFORM HARDWARE TEST
  130079. AX = 0216h
  130080. BP = driver ID (see #03741)
  130081. Return: AH = status (see #03744)
  130082. BP,DS destroyed
  130083. ---on failure---
  130084. CX = length of reason string
  130085. ES:DI -> string describing error
  130086. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0212h,AX=0214h
  130087. --------N-6F03-------------------------------
  130088. INT 6F - 10NET - GET ADDRESS OF CONFIGURATION TABLE
  130089. AH = 03h
  130090. DS:DI -> node ID (optional)
  130091. Return: ES:BX -> configuration table (see #03756)
  130092. SeeAlso: AH=13h,INT 21/AX=5E01h"10NET"
  130093. Format of 10NET configuration table:
  130094. Offset Size Description (Table 03756)
  130095. -41 WORD local device table address
  130096. -39 WORD extended network error mapping table address
  130097. -37 WORD shared device table address
  130098. -35 WORD mounted device table address
  130099. -33 BYTE receive buffer counter
  130100. -32 BYTE collect buffer counter
  130101. -31 WORD TUF address
  130102. -29 BYTE enable flag
  130103. -28 BYTE FCB keep flag
  130104. -27 WORD reserved
  130105. ---up to here, 10NET v3.3---
  130106. -25 WORD count of dropped Send6F
  130107. -23 WORD buffer start address
  130108. -21 WORD comm driver base address
  130109. -19 WORD send/receive retry count
  130110. -17 BYTE number of 550ms loops before timeout
  130111. -16 WORD UFH address
  130112. -14 WORD CDIR address
  130113. -12 WORD LTAB address
  130114. -10 WORD SFH address
  130115. -8 WORD FTAB address
  130116. -6 WORD RLTAB address
  130117. -4 WORD SMI address
  130118. -2 WORD NTAB address
  130119. 00h WORD address of first CT_DRV
  130120. 02h BYTE number of DRV entries
  130121. 03h 8 BYTEs login name
  130122. 0Bh 12 BYTEs node ID (blank-padded)
  130123. 17h 6 BYTEs node address
  130124. 1Dh BYTE flag
  130125. 1Eh BYTE CT_CFLG (chat permit)
  130126. bit 1: sound bell
  130127. bit 0: CHAT permit
  130128. 1Fh BYTE CT_PSFLG (see #03757)
  130129. 20h BYTE in 10Net flag
  130130. 21h WORD receive message count
  130131. 23h WORD send message count
  130132. 25h WORD retry count
  130133. 27h WORD failed count
  130134. 29h WORD driver errors
  130135. 2Bh WORD dropped responses/CHATs
  130136. 2Dh 9 BYTEs LIST ID/NTAB address (3 entries--LPT1-3)
  130137. 36h 6 BYTEs AUX ID/NTAB address (2 entries--COM1-2)
  130138. 3Ch BYTE active CB channel
  130139. 3Dh BYTE received 6F messages on queue
  130140. 3Eh 9 BYTEs activity counters for channels 1-9
  130141. ---beyond here, 10NET v3.3---
  130142. 47h BYTE bit 0: RS232 gate
  130143. bit 1: Send6F gate (user set)
  130144. 48h DWORD pointer into gate (user set)
  130145. 4Ch DWORD pointer into 10Net send
  130146. 50h N WORDs addresses of timer blocks
  130147. Bitfields for CT_PSFLG:
  130148. Bit(s) Description (Table 03757)
  130149. 5 PRINT permit
  130150. 4 KB initiated
  130151. 3 CHAT called FOXPTRM
  130152. 2 SUBMIT active
  130153. 1 SUBMIT received
  130154. 0 SUBMIT permit
  130155. --------N-6F04-------------------------------
  130156. INT 6F - 10NET - SEND
  130157. AH = 04h
  130158. DS:BX -> send record (see #03758)
  130159. DS:DX -> data (max 1024 bytes)
  130160. Return: CF clear if successful
  130161. CF set on error
  130162. AX = error code (see #03740)
  130163. SeeAlso: AH=05h"10NET",AH=09h"10NET",AH=0Ah"10NET"
  130164. Format of 10NET send record:
  130165. Offset Size Description (Table 03758)
  130166. 00h 12 BYTEs receiving node's ID
  130167. if first byte has high-order bit set, message is directed to
  130168. the CT_RGATE vector at the receiver
  130169. if second byte is 00h, first byte is taken as a CB
  130170. channel number and delivered to all nodes on same channel
  130171. 0Ch WORD length of data at DX
  130172. --------b-6F04--BP0012-----------------------
  130173. INT 6F - HP Vectra EX-BIOS - "F_INS_BASEHPVT" - GET HP_VECTOR_TABLE ADDRESS
  130174. AH = 04h
  130175. BP = 0012h (driver ID for V_SYSTEM)
  130176. Return: AH = status (see #03744)
  130177. ES = segment of HP_VECTOR_TABLE (see also AH=00h"HP Vectra")
  130178. BP,DS destroyed
  130179. SeeAlso: AH=00h"HP Vectra",AH=06h"F_INS_XCHGFIX",AH=08h"F_INS_XCHGRSVD"
  130180. --------b-6F04--BP005A-----------------------
  130181. INT 6F - HP Vectra EX-BIOS - "F_TRACK_INIT" - RESET TRACKING DRIVER TO DEFAULTS
  130182. AH = 04h
  130183. BP = 005Ah (driver ID for V_STRACK)
  130184. Return: AH = status (see #03744)
  130185. BP,DS destroyed
  130186. SeeAlso: AH=00h"HP Vectra",AH=06h"F_TRACK_ON",AH=08h"F_TRACK_OFF"
  130187. SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X"
  130188. --------b-6F0400-----------------------------
  130189. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_LOCK" - RESERVE SUB-ADDRESSES
  130190. AX = 0400h
  130191. BP = driver ID (see #03741)
  130192. DH,DL = major,minor address (optional)
  130193. Return: AH = status (see #03744)
  130194. BP,DS destroyed
  130195. Desc: reserve specified sub-addresses on an already-allocated driver for
  130196. exclusive access
  130197. Note: this function is documented as present but unsupported in the drivers
  130198. V_LTABLET, V_LPOINTER, and V_LTOUCH
  130199. SeeAlso: AX=0200h"HP Vectra",AX=0402h"SF_UNLOCK"
  130200. --------b-6F0400BP001E-----------------------
  130201. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_SVC" - UNMASK 8041 SVC INT
  130202. AX = 0400h
  130203. BP = 001Eh (driver ID for V_S8259)
  130204. Return: AH = status (see #03744)
  130205. BP,DS destroyed
  130206. SeeAlso: AH=00h"HP Vectra",AX=0402h"SF_DISABLE_SVC",AX=0404h"SF_ENABLE_KBD"
  130207. SeeAlso: AX=0408h"SF_ENABLE_HPHIL"
  130208. --------b-6F0400BP002A-----------------------
  130209. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DEF_LINKS" - SET DEFAULT PARENTS
  130210. AX = 0400h
  130211. BP = 002Ah (driver ID for V_SINPUT)
  130212. Return: AH = status (see #03744)
  130213. BP,DS destroyed
  130214. Desc: set the parent vectors in the physical device driver headers to their
  130215. system defaults
  130216. SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=002Ah,AX=0404h/BP=002Ah
  130217. SeeAlso: AH=06h"F_INQUIRE"
  130218. --------b-6F0400BP0054-----------------------
  130219. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_ID_HP" - INSTALLATION CHECK
  130220. AX = 0400h
  130221. BP = 0054h (driver ID for V_SVIDEO)
  130222. ???
  130223. Return: AH = status (see #03744)
  130224. BX = 4850h ('BP')
  130225. BP,DS destroyed
  130226. ???
  130227. Note: only partially documented
  130228. SeeAlso: AX=0402h/BP=0054h,AX=0404h/BP=0054h,AX=0406h/BP=0054h
  130229. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  130230. --------b-6F0400BP00CC-----------------------
  130231. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_MOUSE_COM" - INIT INT 33 HANDLER
  130232. AX = 0400h
  130233. BP = 00CCh (driver ID for V_LHPMOUSE)
  130234. Return: AH = status (see #03744)
  130235. BP,DS destroyed
  130236. SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=00CCh
  130237. --------b-6F0402-----------------------------
  130238. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_UNLOCK" - RELEASE SUB-ADDRESSES
  130239. AX = 0402h
  130240. BP = driver ID (see #03741)
  130241. DH,DL = major,minor address (optional)
  130242. Return: AH = status (see #03744)
  130243. BP,DS destroyed
  130244. Desc: release specified sub-addresses from exclusive access
  130245. Note: this function is documented as present but unsupported in the drivers
  130246. V_LTABLET, V_LPOINTER, and VLTOUCH
  130247. SeeAlso: AX=0200h"HP Vectra",AX=0400h"SF_LOCK"
  130248. --------b-6F0402BP001E-----------------------
  130249. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_SVC" - MASK 8041 SVC INT
  130250. AX = 0402h
  130251. BP = 001Eh (driver ID for V_S8259)
  130252. Return: AH = status (see #03744)
  130253. BP,DS destroyed
  130254. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=001Eh,AX=0406h/BP=001Eh
  130255. SeeAlso: AX=040Ah/BP=001Eh
  130256. --------b-6F0402BP002A-----------------------
  130257. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_GET_LINKS" - GET DRIVER LINK FIELDS
  130258. AX = 0402h
  130259. BP = 002Ah (driver ID for V_SINPUT)
  130260. ES:SI -> buffer for link table (see #03759)
  130261. Return: AH = status (see #03744)
  130262. ES:SI buffer filled
  130263. BP,DS destroyed
  130264. Desc: get the parent and child vectors for the seven supported physical
  130265. device drivers
  130266. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_DEF_LINKS",AX=0404h"SF_SET_LINKS"
  130267. SeeAlso: AH=06h"F_INQUIRE"
  130268. Format of HP Vectra EX-BIOS driver link table:
  130269. Offset Size Description (Table 03759)
  130270. 00h BYTE vector number of HP-HIL device #1's child
  130271. 01h BYTE vector number of HP-HIL device #1's parent
  130272. ...
  130273. 0Ch BYTE vector number of HP-HIL device #7's child
  130274. 0Dh BYTE vector number of HP-HIL device #7's parent
  130275. --------b-6F0402BP0054-----------------------
  130276. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_GET_INFO" - GET DISPLAY INFO
  130277. AX = 0402h
  130278. BP = 0054h (driver ID for V_SVIDEO)
  130279. ???
  130280. Return: AH = status (see #03744)
  130281. BP,DS destroyed
  130282. ???
  130283. Note: only partially documented
  130284. SeeAlso: AX=0400h/BP=0054h,AX=0404h/BP=0054h,AX=0406h/BP=0054h
  130285. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  130286. --------b-6F0402BP00CC-----------------------
  130287. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_MOUSE_COM" - FORCE INT 33 INIT
  130288. AX = 0402h
  130289. BP = 00CCh (driver ID for V_LHPMOUSE)
  130290. Return: AH = status (see #03744)
  130291. BP,DS destroyed
  130292. Desc: set up INT 33 even if no mouse is installed
  130293. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=00CCh
  130294. --------b-6F0404-----------------------------
  130295. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_TRACK_ON" - GRAPHICS CURSOR ON
  130296. AX = 0404h
  130297. BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET
  130298. Return: AH = status (see #03744)
  130299. BP,DS destroyed
  130300. Desc: enables graphics cursor tracking of the logical device's movement
  130301. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_LOCK",AX=0406h"SF_TRACK_OFF"
  130302. --------b-6F0404BP001E-----------------------
  130303. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_KBD" - UNMASK 8041 OBF INT
  130304. AX = 0404h
  130305. BP = 001Eh (driver ID for V_S8259)
  130306. Return: AH = status (see #03744)
  130307. BP,DS destroyed
  130308. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_ENABLE_SVC",AX=0406h"SF_DISABLE_KBD"
  130309. SeeAlso: AX=0408h"SF_ENABLE_HPHIL"
  130310. --------b-6F0404BP002A-----------------------
  130311. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_LINKS" - SET DRIVER LINK FIELDS
  130312. AX = 0404h
  130313. BP = 002Ah (driver ID for V_SINPUT)
  130314. ES:SI -> buffer containing link table (see #03759)
  130315. Return: AH = status (see #03744)
  130316. BP,DS destroyed
  130317. Desc: specify the parent and child vectors for the seven supported physical
  130318. device drivers
  130319. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_DEF_LINKS",AX=0402h"SF_GET_LINKS"
  130320. SeeAlso: AH=06h"F_INQUIRE"
  130321. --------b-6F0404BP0054-----------------------
  130322. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_SET_INFO" - SET EXT-CTRL INFO
  130323. AX = 0404h
  130324. BP = 0054h (driver ID for V_SVIDEO)
  130325. ???
  130326. Return: AH = status (see #03744)
  130327. BP,DS destroyed
  130328. ???
  130329. Note: only partially documented
  130330. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0406h/BP=0054h
  130331. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  130332. --------b-6F0406-----------------------------
  130333. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_TRACK_OFF" - GRAPHICS CURSOR OFF
  130334. AX = 0406h
  130335. BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET
  130336. Return: AH = status (see #03744)
  130337. BP,DS destroyed
  130338. Desc: disables graphics cursor tracking of the logical device's movement
  130339. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_LOCK",AX=0404h"SF_TRACK_ON"
  130340. SeeAlso: AX=0408h"SF_CREATE_EVENT"
  130341. --------b-6F0406BP001E-----------------------
  130342. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_KBD" - MASK 8041 OBF INT
  130343. AX = 0406h
  130344. BP = 001Eh (driver ID for V_S8259)
  130345. Return: AH = status (see #03744)
  130346. BP,DS destroyed
  130347. SeeAlso: AH=00h"HP Vectra",AX=0402h"SF_DISABLE_SVC",AX=0404h"SF_ENABLE_KBD"
  130348. SeeAlso: AX=040Ah"SF_DISABLE_HPHIL"
  130349. --------b-6F0406BP0054-----------------------
  130350. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_MOD_INFO" - SET EXT-CTRL REG
  130351. AX = 0406h
  130352. BP = 0054h (driver ID for V_SVIDEO)
  130353. ???
  130354. Return: AH = status (see #03744)
  130355. BP,DS destroyed
  130356. ???
  130357. Note: only partially documented
  130358. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h
  130359. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  130360. --------b-6F0406BP0114-----------------------
  130361. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_RECONFIGURE" - RECONFIG LINK
  130362. AX = 0406h
  130363. BP = 0114h (driver ID for V_HPHIL)
  130364. Return: AH = status (see #03744)
  130365. BP,DS destroyed
  130366. SeeAlso: AH=00h"HP Vectra",AX=020Eh,AX=0408h"SF_CRV_WR_PROMPTS"
  130367. SeeAlso: AX=0410h"SF_CRV_SELF_TEST"
  130368. --------b-6F0408-----------------------------
  130369. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CREATE_EVENT" - SET EVENT HANDLER
  130370. AX = 0408h
  130371. BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET
  130372. ES:SI -> new event handler (see AH=00h"HP Vectra")
  130373. DX = new handler's DS
  130374. Return: AH = status (see #03744)
  130375. ES:SI -> old event handler
  130376. DX = old handler's DS
  130377. BP,DS destroyed
  130378. Desc: specify routine to be called on logical device events
  130379. Note: when events occur, the event handler is called with the same registers
  130380. as the "F_ISR" function on AH=00h"HP Vectra"
  130381. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_LOCK",AX=0406h"SF_TRACK_OFF"
  130382. SeeAlso: AX=040Ah"SF_EVENT_ON",AX=040Ch"SF_EVENT_OFF",AH=06h"F_SAMPLE"
  130383. --------b-6F0408BP001E-----------------------
  130384. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_HPHIL" - UNMASK HP-HIL INT
  130385. AX = 0408h
  130386. BP = 001Eh (driver ID for V_S8259)
  130387. Return: AH = status (see #03744)
  130388. BP,DS destroyed
  130389. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=001Eh,AX=0404h/BP=001Eh
  130390. SeeAlso: AX=040Ah/BP=001Eh
  130391. --------b-6F0408BP0054-----------------------
  130392. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_GET_RES" - GET VIDMODE RESOLUTN
  130393. AX = 0408h
  130394. BP = 0054h (driver ID for V_SVIDEO)
  130395. ???
  130396. Return: AH = status (see #03744)
  130397. BP,DS destroyed
  130398. ???
  130399. Note: only partially documented
  130400. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h
  130401. SeeAlso: AX=0406h/BP=0054h,AX=040Ah/BP=0054h
  130402. --------b-6F0408BP0114-----------------------
  130403. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_WR_PROMPTS" - WRITE PROMPT
  130404. AX = 0408h
  130405. BP = 0114h (driver ID for V_HPHIL)
  130406. BX = device address indicator (see #03760)
  130407. DH = HP HIL device major address
  130408. DL = prompt number
  130409. Return: AH = status (see #03744)
  130410. BP,DS destroyed
  130411. SeeAlso: AH=00h"HP Vectra",AX=020Eh,AX=0406h/BP=0114h,AX=040Ah/BP=0114h
  130412. Bitfields for HP Vectra V_HPHIL device address indicator:
  130413. Bit(s) Description (Table 03760)
  130414. 15-14 reserved
  130415. 13 address in DH is valid (must be set, clear is reserved)
  130416. 12 valid value in DL
  130417. 11-0 reserved
  130418. --------b-6F040A-----------------------------
  130419. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_EVENT_ON" - ENABLE EVENT HANDLER
  130420. AX = 040Ah
  130421. BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET
  130422. Return: AH = status (see #03744)
  130423. BP,DS destroyed
  130424. SeeAlso: AH=00h"HP Vectra",AX=0408h"SF_CREATE_EVENT",AX=040Ch"SF_EVENT_OFF"
  130425. SeeAlso: AX=040Eh"SF_CLIPPING_ON"
  130426. --------b-6F040ABP001E-----------------------
  130427. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_HPHIL" - MASK HP-HIL INT
  130428. AX = 040Ah
  130429. BP = 001Eh (driver ID for V_S8259)
  130430. Return: AH = status (see #03744)
  130431. BP,DS destroyed
  130432. SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=001Eh,AX=0406h/BP=001Eh
  130433. SeeAlso: AX=0408h/BP=001Eh
  130434. --------b-6F040ABP0054-----------------------
  130435. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_SET_MODE" - SET VIDEO MODE
  130436. AX = 040Ah
  130437. BP = 0054h (driver ID for V_SVIDEO)
  130438. ???
  130439. Return: AH = status (see #03744)
  130440. BP,DS destroyed
  130441. ???
  130442. Note: only partially documented
  130443. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h
  130444. SeeAlso: AX=0406h/BP=0054h,AX=0408h/BP=0054h
  130445. --------b-6F040ABP00AE-----------------------
  130446. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CREATE_INTR" - CREATE INTERVAL ENTRY
  130447. AX = 040Ah
  130448. BP = 00AEh (driver ID for V_8041)
  130449. BH = vector number of driver to be called regularly (vector addr / 6)
  130450. Return: AH = status (see #03744)
  130451. BP,DS destroyed
  130452. Desc: add a driver to the list (max eight) of drivers which will be called
  130453. by the HP's 8041 at 60 Hz
  130454. Note: the newly added entry will not be called until enabled with
  130455. AX=040Eh/BP=00AEh
  130456. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  130457. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  130458. --------b-6F040ABP0114-----------------------
  130459. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_WR_ACK" - ACKNOWLEDGE DEVICE
  130460. AX = 040Ah
  130461. BP = 0114h (driver ID for V_HPHIL)
  130462. BX = device address indicator (see #03760)
  130463. DH = HP HIL device major address
  130464. DL = acknowledge number (specific if 01h-07h, generic otherwise)
  130465. Return: AH = status (see #03744)
  130466. BP,DS destroyed
  130467. SeeAlso: AH=00h"HP Vectra",AX=0406h/BP=0114h,AX=040Ch/BP=0114h
  130468. --------b-6F040C-----------------------------
  130469. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_EVENT_OFF" - DISABLE EVENT HANDLER
  130470. AX = 040Ch
  130471. BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET
  130472. Return: AH = status (see #03744)
  130473. BP,DS destroyed
  130474. SeeAlso: AH=00h"HP Vectra",AX=0408h"SF_CREATE_EVENT",AX=040Ah"SF_EVENT_ON"
  130475. --------b-6F040CBP00AE-----------------------
  130476. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DELET_INTR" - DELETE INTERVAL ENTRY
  130477. AX = 040Ch
  130478. BP = 00AEh (driver ID for V_8041)
  130479. BH = vector number of driver to be removed (vector addr / 6)
  130480. Return: AH = status (see #03744)
  130481. BP,DS destroyed
  130482. Desc: remove a driver to the list (max eight) of drivers which will be called
  130483. by the HP's 8041 at 60 Hz
  130484. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=0410h/BP=00AEh
  130485. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  130486. --------b-6F040CBP0114-----------------------
  130487. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPEAT" - SET KEY REPEAT RATE
  130488. AX = 040Ch
  130489. BP = 0114h (driver ID for V_HPHIL)
  130490. BX = device address indicator (see #03760)
  130491. DH = HP HIL device major address
  130492. DL = repeat rate (00h = 30 Hz, 01h = 60 Hz)
  130493. Return: AH = status (see #03744)
  130494. BP,DS destroyed
  130495. Note: this function is only available if the driver is in the open state
  130496. (see AX=020Eh"SF_OPEN")
  130497. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=0114h,AX=040Eh/BP=0114h
  130498. --------b-6F040E-----------------------------
  130499. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLIPPING_ON" - ENABLE CLIPPING
  130500. AX = 040Eh
  130501. BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET
  130502. Return: AH = status (see #03744)
  130503. BP,DS destroyed
  130504. Desc: causes the physical device's motion to be clipped to prevent overflow
  130505. or underflow of the logical position
  130506. SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=0410h"SF_CLIPPING_OFF"
  130507. --------b-6F040EBP00AE-----------------------
  130508. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABL_INTR" - START INTERRUPT SRVICE
  130509. AX = 040Eh
  130510. BP = 00AEh (driver ID for V_8041)
  130511. BH = vector number of driver to be called regularly (vector addr / 6)
  130512. Return: AH = status (see #03744)
  130513. BP,DS destroyed
  130514. Desc: enable 60 Hz calling of a driver previously added to the list of
  130515. drivers to be called by the HP's 8041
  130516. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=0410h/BP=00AEh
  130517. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  130518. --------b-6F040EBP0114-----------------------
  130519. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_DISABLE_REPEAT" - KEY REPT OFF
  130520. AX = 040Eh
  130521. BP = 0114h (driver ID for V_HPHIL)
  130522. BX = device address indicator (see #03760)
  130523. DH = HP HIL device major address
  130524. Return: AH = status (see #03744)
  130525. BP,DS destroyed
  130526. Note: this function is only available if the driver is in the open state
  130527. (see AX=020Eh"SF_OPEN")
  130528. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=0114h,AX=0410h/BP=0114h
  130529. SeeAlso: AX=0416h/BP=0114h
  130530. --------b-6F0410-----------------------------
  130531. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLIPPING_OFF" - DISABLE CLIPPING
  130532. AX = 0410h
  130533. BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET
  130534. Return: AH = status (see #03744)
  130535. BP,DS destroyed
  130536. Desc: disables clipping of the physical device's motion, which may cause
  130537. overflow or underflow of the logical position
  130538. SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=040Eh"SF_CLIPPING_ON"
  130539. --------b-6F0410BP00AE-----------------------
  130540. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISBL_INTR" - END INTERRUPT SERVICE
  130541. AX = 0410h
  130542. BP = 00AEh (driver ID for V_8041)
  130543. BH = vector number of driver (vector addr / 6)
  130544. Return: AH = status (see #03744)
  130545. BP,DS destroyed
  130546. Desc: disable 60 Hz interval calls to the specified driver
  130547. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  130548. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  130549. --------b-6F0410BP0114-----------------------
  130550. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_SELF_TEST" - PERFORM SELFTEST
  130551. AX = 0410h
  130552. BP = 0114h (driver ID for V_HPHIL)
  130553. BX = device address indicator (see #03760)
  130554. DH = HP HIL device major address
  130555. ES:SI -> buffer for result
  130556. Return: AH = status (see #03744)
  130557. CX = number of bytes in buffer
  130558. BP,DS destroyed
  130559. Note: this function is only available if the driver is in the open state
  130560. (see AX=020Eh"SF_OPEN")
  130561. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=0114h,AX=0412h/BP=0114h
  130562. --------b-6F0412BP00AE-----------------------
  130563. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_RAMSW" - SET RAM SWITCH IN 8041
  130564. AX = 0412h
  130565. BP = 00AEh (driver ID for V_8041)
  130566. Return: AH = status (see #03744)
  130567. BP,DS destroyed
  130568. Desc: sets a flag in the 8041 indicating that a second 256K bank of RAM
  130569. on the motherboard is enabled
  130570. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  130571. SeeAlso: AX=0414h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  130572. --------b-6F0412BP0114-----------------------
  130573. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPORT_STATUS" - GET DEVSTATUS
  130574. AX = 0412h
  130575. BP = 0114h (driver ID for V_HPHIL)
  130576. BX = device address indicator (see #03760)
  130577. DH = HP HIL device major address
  130578. ES:SI -> 15-byte buffer for status
  130579. Return: AH = status (see #03744)
  130580. CX = number of bytes returned in buffer
  130581. BP,DS destroyed
  130582. Note: this function is only available if the driver is in the open state
  130583. (see AX=020Eh"SF_OPEN")
  130584. SeeAlso: AH=00h"HP Vectra",AX=0410h/BP=0114h,AX=0414h/BP=0114h
  130585. --------b-6F0414BP00AE-----------------------
  130586. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLR_RAMSW" - CLEAR 8041 RAM SWITCH
  130587. AX = 0414h
  130588. BP = 00AEh (driver ID for V_8041)
  130589. Return: AH = status (see #03744)
  130590. BP,DS destroyed
  130591. Desc: clears a flag in the 8041 indicating that a second 256K bank of RAM
  130592. on the motherboard is enabled, causing the second bank to be disabled
  130593. Note: this function should normally never be called
  130594. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  130595. SeeAlso: AX=0412h/BP=00AEh,AX=0418h/BP=00AEh,AX=041Ah/BP=00AEh
  130596. --------b-6F0414BP0114-----------------------
  130597. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPORT_NAME" - GET DEV NAME
  130598. AX = 0414h
  130599. BP = 0114h (driver ID for V_HPHIL)
  130600. BX = device address indicator (see #03760)
  130601. DH = HP HIL device major address
  130602. ES:SI -> 15-byte buffer for name
  130603. Return: AH = status (see #03744)
  130604. CX = number of bytes returned in buffer
  130605. BP,DS destroyed
  130606. Note: this function is only available if the driver is in the open state
  130607. (see AX=020Eh"SF_OPEN")
  130608. SeeAlso: AH=00h"HP Vectra",AX=0412h/BP=0114h
  130609. --------b-6F0416BP00AE-----------------------
  130610. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_CRTSW" - SET CRT TO MULTIMODE
  130611. AX = 0416h
  130612. BP = 00AEh (driver ID for V_8041)
  130613. Return: AH = status (see #03744)
  130614. BP,DS destroyed
  130615. Desc: sets a flag in the 8041 indicating that the primary display is the
  130616. Multimode graphics adapter (default)
  130617. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  130618. SeeAlso: AX=0412h/BP=00AEh,AX=0418h/BP=00AEh,AX=041Ah/BP=00AEh
  130619. --------b-6F0416BP0114-----------------------
  130620. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_KEYBOARD_REPEAT" - SET TYPEMATIC
  130621. AX = 0416h
  130622. BP = 0114h (driver ID for V_HPHIL)
  130623. BH = what to set (00h typematic rate, 01h delay, 02h both)
  130624. BL = flag (00h = non-CCP keypad, 01h = Cursor Control Pad only)
  130625. DL = rate
  130626. bits 7-4: delay value
  130627. bits 3-0: typematic rate
  130628. Return: AH = status (see #03744)
  130629. BP,DS destroyed
  130630. SeeAlso: AH=00h"HP Vectra",AX=040Eh/BP=0114h,AX=0418h/BP=0114h
  130631. --------b-6F0418BP00AE-----------------------
  130632. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLR_CRTSW" - SET CRT TO MONOCHROME
  130633. AX = 0418h
  130634. BP = 00AEh (driver ID for V_8041)
  130635. Return: AH = status (see #03744)
  130636. BP,DS destroyed
  130637. Desc: clears a flag in the 8041, indicating that the primary display is the
  130638. monochrome adapter
  130639. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  130640. SeeAlso: AX=0414h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  130641. --------b-6F0418BP0114-----------------------
  130642. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_KEYBOARD_LED" - SET KEYBOARD LEDS
  130643. AX = 0418h
  130644. BP = 0114h (driver ID for V_HPHIL)
  130645. BL = new LED states
  130646. bit 0: scroll lock
  130647. bit 1: NumLock
  130648. bit 2: CapsLock
  130649. Return: AH = status (see #03744)
  130650. BP,DS destroyed
  130651. SeeAlso: AH=00h"HP Vectra",AX=040Eh/BP=0114h,AX=0416h/BP=0114h
  130652. --------b-6F041ABP00AE-----------------------
  130653. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_PASS_THRU" - SEND DATA BYTE TO 8041
  130654. AX = 041Ah
  130655. BP = 00AEh (driver ID for V_8041)
  130656. BL = byte to send to 8041
  130657. Return: AH = status (see #03744)
  130658. BP,DS destroyed
  130659. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=040Eh/BP=00AEh
  130660. --------N-6F05-------------------------------
  130661. INT 6F - 10NET - RECEIVE
  130662. AH = 05h
  130663. CX = number of seconds before timeout
  130664. DS:DX -> receive buffer (see #03761)
  130665. Return: CF clear if successful
  130666. AH = FEh if dequeued message is a CB message
  130667. CF set on error
  130668. AX = error code (see #03740)
  130669. SeeAlso: AH=04h"10NET"
  130670. Format of 10NET receive buffer:
  130671. Offset Size Description (Table 03761)
  130672. 00h 12 BYTEs sending node's ID
  130673. 0Ch WORD length of message
  130674. 0Eh N BYTEs message (maximum 1024 bytes)
  130675. --------b-6F06-------------------------------
  130676. INT 6F - HP Vectra EX-BIOS - "F_PUT_BYTE" - WRITE A BYTE OF DATA TO DEVICE
  130677. AH = 06h
  130678. BP = driver ID (see #03741) for V_HPHIL, others
  130679. AL = value to output
  130680. ---if driver is V_HPHIL---
  130681. BX = device address indicator (see #03760)
  130682. DH = HP HIL device major address
  130683. DL = HP-HIL device register (00h-7Fh)
  130684. Return: AH = status (see #03744)
  130685. BP,DS destroyed
  130686. Desc: output a byte to a specific HP-HIL device register
  130687. Note: this function is only available if the driver is in the open state
  130688. (see AX=020Eh"SF_OPEN")
  130689. SeeAlso: AH=04h"HP Vectra",AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BUFFER"
  130690. --------b-6F06-------------------------------
  130691. INT 6F - HP Vectra EX-BIOS - "F_SAMPLE" - POLL CURRENT ABSOLUTE POSITION
  130692. AH = 06h
  130693. BP = driver ID (see #03741) for V_LTOUCH, V_LPOINTER, V_LTABLET, etc.
  130694. Return: AH = status (see #03744)
  130695. BX = current logical X position
  130696. CX = current logical Y position
  130697. DL = button transitions (bit N = button N state has changed)
  130698. DH = current button states (bit N = current button N state)
  130699. ES:0000h -> logical device's Describe Record (see #03749)
  130700. BP,DS destroyed
  130701. SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=040Eh"SF_CLIPPING_ON"
  130702. --------b-6F06--BP0012-----------------------
  130703. INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGFIX" - EXCH VALUES WITH FIXED VECTOR
  130704. AH = 06h
  130705. BP = 0012h (driver ID for V_SYSTEM)
  130706. BX = vector address
  130707. DX = new value for DS
  130708. ES:DI -> new CS:IP entry point
  130709. Return: AH = status (see #03744)
  130710. DX = old value for DS
  130711. ES:DI -> old CS:IP entry point
  130712. BP,DS destroyed
  130713. Desc: replace an existing EX-BIOS driver at a fixed HPVT location without
  130714. initialization
  130715. SeeAlso: AH=00h"HP Vectra",AH=04h"F_INS_BASEHPVT",AH=08h"F_INS_XCHGRSVD"
  130716. SeeAlso: AH=0Ah"F_INS_XCHGFREE",AH=0Ch"F_INS_FIXOWNDS"
  130717. --------b-6F06--BP002A-----------------------
  130718. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE" - GET DRIVER PHYSICAL DESCRIBE RECORD
  130719. AH = 06h
  130720. BP = 002Ah (driver ID for V_SINPUT)
  130721. AL = HP-HIL physical device number (01h-07h)
  130722. Return: AH = status (see #03744)
  130723. ES:SI -> physical describe record for driver
  130724. BP,DS destroyed
  130725. Note: the returned physical describe record must not be modified
  130726. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=08h/BP=002Ah,AH=0Ah/BP=002Ah
  130727. SeeAlso: AH=0Ch/BP=002Ah
  130728. --------b-6F06--BP005A-----------------------
  130729. INT 6F - HP Vectra EX-BIOS - "F_TRACK_ON" - ENABLE CURSOR TRACKING
  130730. AH = 06h
  130731. BP = 005Ah (driver ID for V_STRACK)
  130732. Return: AH = status (see #03744)
  130733. BP,DS destroyed
  130734. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF"
  130735. SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X"
  130736. --------N-6F07-------------------------------
  130737. INT 6F - 10NET - LOCK HANDLE
  130738. AH = 07h
  130739. BX = file handle
  130740. CX:DX = starting offset in file
  130741. SI = record length
  130742. Return: CF clear if successful
  130743. CF set on error
  130744. AX = error code (see also AH=00h)
  130745. 0002h file not found
  130746. SeeAlso: AH=08h"10NET",AH=0Fh,INT 21/AH=5Ch
  130747. --------N-6F08-------------------------------
  130748. INT 6F - 10NET - UNLOCK HANDLE
  130749. AH = 08h
  130750. BX = file handle
  130751. AL = mode
  130752. 00h unlock all
  130753. 01h unlock record at CX:DX
  130754. Return: CF clear if successful
  130755. CF set on error
  130756. AX = error code (see also AH=00h)
  130757. 0002h file not found
  130758. SeeAlso: AH=07h,AH=0Fh,INT 21/AH=5Ch
  130759. --------b-6F08-------------------------------
  130760. INT 6F - HP Vectra EX-BIOS - "F_GET_BYTE" - READ A BYTE OF DATA FROM DEVICE
  130761. AH = 08h
  130762. BP = driver ID (see #03741) for V_HPHIL (0114h), others
  130763. ---if device is V_HPHIL---
  130764. BX = device address indicator (see #03760)
  130765. DH = HP HIL device major address
  130766. DL = HP-HIL device register (00h-7Fh)
  130767. Return: AH = status (see #03744)
  130768. AL = value read from device
  130769. BP,DS destroyed
  130770. Desc: generic read-byte function; for driver V_HPHIL, retrieves the value
  130771. of a specific HP-HIL device register
  130772. Note: this function is only available if the driver is in the open state
  130773. (see AX=020Eh"SF_OPEN")
  130774. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BUFFER"
  130775. --------b-6F08--BP0012-----------------------
  130776. INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGRSVD" - EXCH VALUES WITH RESRVED VECTOR
  130777. AH = 08h
  130778. BP = 0012h (driver ID for V_SYSTEM)
  130779. DX = new value for DS
  130780. ES:DI -> new CS:IP entry point
  130781. Return: AH = status (00h,F6h) (see also #03744)
  130782. 00h successful
  130783. BX = vector address used
  130784. DX = old value for DS
  130785. ES:DI -> old CS:IP entry point
  130786. BP,DS destroyed
  130787. Desc: exchange the supplied entry point and DS with the values in the next
  130788. reserved entry in the HP_VECTOR_TABLE
  130789. Note: returns AH=F6h if no more reserved vectors are available
  130790. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=0Ah/BP=0012h
  130791. SeeAlso: AH=0Ch/BP=0012h
  130792. --------b-6F08--BP002A-----------------------
  130793. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_ALL" - GET DRIVER STATUS TABLE
  130794. AH = 08h
  130795. BP = 002Ah (driver ID for V_SINPUT)
  130796. ES:SI -> buffer for device status table (see #03762)
  130797. Return: AH = status (see #03744)
  130798. ES:SI buffer filled
  130799. BP,DS destroyed
  130800. Note: the returned physical describe record must not be modified
  130801. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=0Ah/BP=002Ah
  130802. SeeAlso: AH=0Ch/BP=002Ah
  130803. Format of HP Vectra HP-HIL physical device status table:
  130804. Offset Size Description (Table 03762)
  130805. 00h BYTE status for HP-HIL device #1
  130806. bit 0: device present
  130807. bits 7-2 reserved
  130808. 01h BYTE device ID for HP-HIL device #1
  130809. ...
  130810. 0Ch BYTE status for HP-HIL device #7
  130811. 0Dh BYTE device ID for HP-HIL device #7
  130812. --------b-6F08--BP005A-----------------------
  130813. INT 6F - HP Vectra EX-BIOS - "F_TRACK_OFF" - DISABLE CURSOR TRACKING
  130814. AH = 08h
  130815. BP = 005Ah (driver ID for V_STRACK)
  130816. Return: AH = status (see #03744)
  130817. BP,DS destroyed
  130818. Note: also removes the graphics cursor sprite from the screen
  130819. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=06h"F_TRACK_ON"
  130820. SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X"
  130821. --------N-6F09-------------------------------
  130822. INT 6F - 10NET - SUBMIT
  130823. AH = 09h
  130824. DS:BX -> submit record (see #03763)
  130825. SeeAlso: AH=04h"10NET"
  130826. Format of 10NET submit record:
  130827. Offset Size Description (Table 03763)
  130828. 00h 12 BYTEs destination node ID (must be logged in)
  130829. 0Ch WORD length+2 of following 'command line' text
  130830. 0Eh N BYTEs command line text (<=100 bytes), system adds CR
  130831. --------N-6F0A-------------------------------
  130832. INT 6F - 10NET - CHAT
  130833. AH = 0Ah
  130834. DS:BX -> control parameters (see #03764)
  130835. DS:DX -> chat message (see #03765)
  130836. SeeAlso: AH=04h"10NET",AH=8Ah
  130837. Format of 10NET chat control parameters:
  130838. Offset Size Description (Table 03764)
  130839. 00h 8 BYTEs sender ID, defaults to node's userID if nulls
  130840. 08h 8 BYTEs destination user ID, 'EVERYONE' may be used
  130841. 10h 12 BYTEs destination node ID
  130842. Format of 10NET chat message:
  130843. Offset Size Description (Table 03765)
  130844. 00h WORD length+2 of following text
  130845. 02h N BYTEs text, max 101 bytes
  130846. --------b-6F0A-------------------------------
  130847. INT 6F - HP Vectra EX-BIOS - "F_PUT_BUFFER" - WRITE A BUFFER TO DEVICE
  130848. AH = 0Ah
  130849. BP = driver ID (see #03741) for V_HPHIL (0114h), others
  130850. CX = number of bytes to write
  130851. ES:DI -> buffer containing data
  130852. ---if driver is V_HPHIL---
  130853. BX = device address indicator (see #03760)
  130854. DH = HP HIL device major address
  130855. DL = HP-HIL device register (00h-7Fh)
  130856. Return: AH = status (see #03744)
  130857. CX = number of unwritten bytes left in buffer
  130858. BP,DS destroyed
  130859. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BLOCK",AH=0Ch"F_GET_BUFFER"
  130860. SeeAlso: AH=0Eh"F_PUT_WORD"
  130861. --------b-6F0A-------------------------------
  130862. INT 6F - HP Vectra EX-BIOS - "F_PUT_BLOCK" - WRITE BLOCKS TO DEVICE
  130863. AH = 0Ah
  130864. BP = driver ID (see #03741) for block device
  130865. DH = device major number
  130866. DL = device minor number
  130867. ES:DI -> command block (see #03766)
  130868. Return: AH = status (see #03744)
  130869. BX = operation status
  130870. BP,DS destroyed
  130871. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BUFFER"
  130872. SeeAlso: AH=0Eh"F_PUT_WORD"
  130873. Format of HP Vectra F_PUT_BLOCK/F_GET_BLOCK command block:
  130874. Offset Size Description (Table 03766)
  130875. 00h DWORD data transfer address
  130876. 04h WORD number of blocks
  130877. 06h DWORD block address (some devices only use low word)
  130878. --------b-6F0A--BP0012-----------------------
  130879. INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGFREE" - EXCH VALUES WITH FREE VECTOR
  130880. AH = 0Ah
  130881. BP = 0012h (driver ID for V_SYSTEM)
  130882. DX = new value for DS
  130883. ES:DI -> new CS:IP entry point
  130884. Return: AH = status (00h,F6h) (see also #03744)
  130885. 00h successful
  130886. BX = vector address used
  130887. DX = old value for DS
  130888. ES:DI -> old CS:IP entry point
  130889. BP,DS destroyed
  130890. Desc: exchange the supplied entry point and DS with the values in the next
  130891. free entry in the HP_VECTOR_TABLE
  130892. Note: returns AH=F6h if no more reserved vectors are available
  130893. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=08h/BP=0012h
  130894. SeeAlso: AH=0Ch/BP=0012h
  130895. --------b-6F0A--BP002A-----------------------
  130896. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_FIRST" - GET PHYSICAL DRIVER VECTOR
  130897. AH = 0Ah
  130898. BP = 002Ah (driver ID for V_SINPUT)
  130899. Return: AH = status (see #03744)
  130900. BX = vector address for first HP-HIL device
  130901. BP,DS destroyed
  130902. Note: all seven HP-HIL devices use consecutive vectors in the
  130903. HP_VECTOR_TABLE
  130904. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=08h/BP=002Ah
  130905. SeeAlso: AH=0Ch/BP=002Ah
  130906. --------b-6F0A--BP005A-----------------------
  130907. INT 6F - HP Vectra EX-BIOS - "F_DEF_MASKS" - DEFINE GRAPHICS CURSOR MASKS
  130908. AH = 0Ah
  130909. BP = 005Ah (driver ID for V_STRACK)
  130910. BH = width of save area in bytes
  130911. BL = hot-spot X coordinate
  130912. CH = height in scan lines
  130913. CL = hot-spot Y coordinate
  130914. ES:SI -> sprite mask (screen mask followed by XOR sprite mask)
  130915. Return: AH = status (see #03744)
  130916. BP,DS destroyed
  130917. Note: the save area is one byte wider than the actual sprite mask; the total
  130918. size of the sprite is at most 144 bytes
  130919. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF"
  130920. SeeAlso: AH=0Ch"F_SET_LIMITS_X",AH=10h"F_PUT_SPRITE",AH=12h"F_REMOVE_SPRITE"
  130921. --------N-6F0B-------------------------------
  130922. INT 6F - 10NET - LOCK SEMAPHORE, RETURN IMMEDIATELY
  130923. AH = 0Bh
  130924. AL = drive number or 0
  130925. ES:SI = Ethernet address or 0
  130926. DS:BX -> 31-byte ASCIZ semaphore name
  130927. Return: AL = status (see #03767)
  130928. Note: same as INT 60/AH=12h
  130929. SeeAlso: AH=0Ch"10NET",INT 60/AH=12h
  130930. (Table 03767)
  130931. Values for 10NET status:
  130932. 00h successful
  130933. 01h semaphore currently locked
  130934. 02h server not responding
  130935. 03h invalid semaphore name
  130936. 04h semaphore list is full
  130937. 05h invalid drive ID
  130938. 06h invalid Ethernet address
  130939. 07h not logged in
  130940. 08h write to network failed
  130941. 09h semaphore already logged in this CPU
  130942. SeeAlso: #03740
  130943. Index: error codes;10-Net|10-Net;error codes
  130944. --------N-6F0C-------------------------------
  130945. INT 6F - 10NET - UNLOCK SEMAPHORE
  130946. AH = 0Ch
  130947. AL = drive number or 0
  130948. ES:SI = Ethernet address or 0
  130949. DS:BX -> 31-byte ASCIZ semaphore name
  130950. Return: AL = status (see also #03767)
  130951. 01h semaphore not locked
  130952. Note: same as INT 60/AH=13h
  130953. SeeAlso: AH=0Bh,INT 60/AH=13h
  130954. --------b-6F0C-------------------------------
  130955. INT 6F - HP Vectra EX-BIOS - "F_GET_BUFFER" - READ A BUFFER OF DATA FROM DEVICE
  130956. AH = 0Ch
  130957. BP = driver ID (see #03741) for V_HPHIL (0114h), others
  130958. CX = number of bytes or blocks to read
  130959. DS:SI -> buffer for received data
  130960. Return: AH = status (see #03744 at AH=00h"HP Vectra")
  130961. BP,DS destroyed
  130962. SeeAlso: AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BLOCK"
  130963. SeeAlso: AH=10h"F_GET_WORD"
  130964. --------b-6F0C-------------------------------
  130965. INT 6F - HP Vectra EX-BIOS - "F_GET_BLOCK" - READ BLOCKS OF DATA FROM DEVICE
  130966. AH = 0Ch
  130967. BP = driver ID (see #03741)
  130968. DH = device major number
  130969. DL = device minor number
  130970. ES:DI -> command block (see #03766)
  130971. Return: AH = status (see #03744 at AH=00h"HP Vectra")
  130972. BX = operation status
  130973. BP,DS destroyed
  130974. SeeAlso: AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BLOCK",AH=0Ch"F_GET_BUFFER"
  130975. SeeAlso: AH=10h"F_GET_WORD"
  130976. --------b-6F0C--BP0012-----------------------
  130977. INT 6F - HP Vectra EX-BIOS - "F_INS_FIXOWNDS" - INSTALL VALUES IN FIXED VECTOR
  130978. AH = 0Ch
  130979. BP = 0012h (driver ID for V_SYSTEM)
  130980. BX = vector address used
  130981. ES:DI -> new CS:IP entry point
  130982. Return: AH = status (00h) (see #03744)
  130983. BP,DS destroyed
  130984. Note: on installation, the given entry point will be invoked with an SF_INIT
  130985. call (see AX=0200h"SF_INIT"), which should return the routine's DS
  130986. in BX. If the SF_INIT call returns with error code FEh, the power-on
  130987. self-test sequence will be called.
  130988. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=08h/BP=0012h
  130989. SeeAlso: AH=0Eh/BP=0012h,AH=12h/BP=0012h
  130990. --------b-6F0C--BP002A-----------------------
  130991. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_ENTRY" - GET GID DRIVER ENTRY POINT
  130992. AH = 0Ch
  130993. BP = 002Ah (driver ID for V_SINPUT)
  130994. Return: AH = status (see #03744)
  130995. ES:BX -> physical GID driver CS:IP
  130996. BP,DS destroyed
  130997. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=08h/BP=002Ah
  130998. SeeAlso: AH=0Ah/BP=002Ah
  130999. --------b-6F0C--BP005A-----------------------
  131000. INT 6F - HP Vectra EX-BIOS - "F_SET_LIMITS_X" - SET HORIZONTAL TRACKING LIMITS
  131001. AH = 0Ch
  131002. BP = 005Ah (driver ID for V_STRACK)
  131003. CX = minimum X coordinate
  131004. DX = maximum X coordinate
  131005. Return: AH = status (see #03744)
  131006. BP,DS destroyed
  131007. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=005Ah,AH=08h/BP=005Ah,AH=0Eh/BP=005Ah
  131008. SeeAlso: AH=10h/BP=005Ah,AH=12h/BP=005Ah,INT 33/AX=0007h
  131009. --------N-6F0D-------------------------------
  131010. INT 6F - 10NET - "WHO" - ENUMERATE USERS ON NETWORK
  131011. AH = 0Dh
  131012. AL = type code
  131013. 01h return superstations only
  131014. 02h return non-superstations only
  131015. otherwise return all
  131016. CX = length of data buffer
  131017. DS:DX -> array of records to be filled (see #03768)
  131018. Return: CL = number of records returned (responding stations)
  131019. SeeAlso: AH=16h,AH=8Dh
  131020. Format of station record:
  131021. Offset Size Description (Table 03768)
  131022. 00h 12 BYTEs node ID
  131023. 0Ch BYTE station flags (see #03769)
  131024. ---if AL = 01h---
  131025. 0Dh BYTE version number
  131026. 0Eh WORD level number of 10Net software in responding node
  131027. ---if AL = 02h---
  131028. 0Dh 8 BYTEs user ID
  131029. 15h BYTE version number
  131030. 16h WORD level number
  131031. Bitfields for station flags:
  131032. Bit(s) Description (Table 03769)
  131033. 1 workstation
  131034. 2 superstation
  131035. 3 xgate
  131036. 4 active gate
  131037. --------N-6F0E-------------------------------
  131038. INT 6F - 10NET - SPOOL/PRINT
  131039. AH = 0Eh
  131040. DS:DX -> spool/print record (see #03771)
  131041. Return: CF clear if successful
  131042. CF set on error
  131043. AX = error code (see also #03740)
  131044. 17FFh device not mounted
  131045. 18FFh already spooling to named device
  131046. (Table 03770)
  131047. Values for 10NET spooler operation code:
  131048. 0000h initiate spool
  131049. 0001h abort print
  131050. 0002h close spool
  131051. 0003h delete spool
  131052. 0004h print
  131053. 0005h get report info
  131054. 0006h set chat template
  131055. 0007h queue
  131056. 0008h return queue
  131057. 0009h queue non-spooled file for printing
  131058. Format of 10NET Spool/Print record:
  131059. Offset Size Description (Table 03771)
  131060. 00h WORD operation code (see #03770)
  131061. 02h 11 BYTEs file name in FCB format
  131062. ---if operation code = 00h or 06h---
  131063. 0Dh BYTE notification flags (see #03772)
  131064. 0Eh BYTE days to keep (FFh=forever)
  131065. 0Fh BYTE bits 0,1: device (1=LPT1)
  131066. bits 4-7: remote drive to store spool file (1=A,...)
  131067. 10h WORD length of following data area
  131068. 12h N BYTEs up to 64 bytes of description
  131069. ---if operation code = 03h---
  131070. 0Dh 8 BYTEs user ID to associate with filename
  131071. ---if operation code = 04h---
  131072. 0Dh WORD block number
  131073. 0Fh 8 BYTEs user ID to associate with filename
  131074. ---if operation code = 05h---
  131075. 0Dh BYTE RRN to start retrieve
  131076. 0Eh BYTE bits 0,1: local print device (LPTx)
  131077. bit 3: if set, return entries for all users
  131078. 0Fh WORD length of following area
  131079. 11h N BYTEs up to 1500 bytes to receive $SCNTL records returned
  131080. ---if operation code = 07h---
  131081. 0Dh BYTE queue number
  131082. 0Eh BYTE bits 0,1: local print device (LPTx)
  131083. 0Fh WORD number of bytes of test print to be done
  131084. 11h BYTE code:
  131085. 01h print device
  131086. 02h test print count
  131087. 03h prn
  131088. ---if operation code = 08h---
  131089. 0Dh BYTE queue location or $SCNTL location to start access
  131090. returns next item for access:
  131091. 00h-7Fh queued items
  131092. 80h-FEh non-queued, non-printed items
  131093. FFh no more items
  131094. 0Eh WORD unused
  131095. 10h WORD length of following area
  131096. 12h N BYTEs up to 64 bytes to receive $SCNTL records (see #03773)
  131097. ---if operation code = 09h---
  131098. 0Dh 3 BYTEs unused
  131099. 10h N BYTEs path to non-spooled file to be queued for printing
  131100. Bitfields for notification flags:
  131101. Bit(s) Description (Table 03772)
  131102. 7 queue to top
  131103. 6 do ID page
  131104. 5 no form feed
  131105. 4 reserved
  131106. 3 explicit queuing only
  131107. 2 notify at print completion
  131108. 1 notify server operator, with reply
  131109. 0 notify at print start
  131110. Format of 10NET $SCNTL record:
  131111. Offset Size Description (Table 03773)
  131112. 00h 8 BYTEs user ID
  131113. 08h 11 BYTEs filename in FCB format
  131114. 13h 6 BYTEs node ID
  131115. 19h 3 BYTEs creation date
  131116. 1Ch BYTE notification flags (see #03772)
  131117. 1Dh BYTE retention time in days
  131118. 1Eh BYTE printing device (LPTx)
  131119. 1Fh 3 BYTEs date last printed (0 = never)
  131120. 22h BYTE device containing spoolfile
  131121. 23h WORD bytes to print for test print
  131122. 25h WORD block number to start print
  131123. 27h BYTE reserved
  131124. --------b-6F0E-------------------------------
  131125. INT 6F - HP Vectra EX-BIOS - "F_PUT_WORD" - WRITE WORD OF DATA TO DEVICE
  131126. AH = 0Eh
  131127. BP = driver ID (see #03741)
  131128. DX = data word
  131129. Return: AH = status (see #03744 at AH=00h"HP Vectra")
  131130. BP,DS destroyed
  131131. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=10h"F_GET_WORD"
  131132. --------b-6F0E-------------------------------
  131133. INT 6F - HP Vectra EX-BIOS - "F_PUT_WORD" - WRITE A WORD OF DATA
  131134. AH = 0Eh
  131135. BP = driver ID (see #03741)
  131136. ??? details not yet available
  131137. Return: ???
  131138. SeeAlso: AH=06h"HP Vectra",AH=0Ah"HP Vectra",AH=10h"HP Vectra"
  131139. --------b-6F0E--BP0012-----------------------
  131140. INT 6F - HP Vectra EX-BIOS - "F_INS_FIXGETDS" - INSTALL VALUES IN FIXED VECTOR
  131141. AH = 0Eh
  131142. BP = 0012h (driver ID for V_SYSTEM)
  131143. BX = vector address used
  131144. ES:DI -> new CS:IP entry point
  131145. Return: AH = status (00h) (see #03744)
  131146. BP,DS destroyed
  131147. Note: on installation, the given entry point will be invoked with an SF_INIT
  131148. call (see AX=0200h"SF_INIT"), with the "last used DS" value in BX;
  131149. the routine should adjust BX and return the new value. If the
  131150. SF_INIT call returns with error code FEh, the power-on self-test
  131151. sequence will be called.
  131152. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=0Ch/BP=0012h
  131153. SeeAlso: AH=10h/BP=0012h,AH=14h/BP=0012h
  131154. --------b-6F0E--BP005A-----------------------
  131155. INT 6F - HP Vectra EX-BIOS - "F_SET_LIMITS_Y" - SET VERTICAL TRACKING LIMITS
  131156. AH = 0Eh
  131157. BP = 005Ah (driver ID for V_STRACK)
  131158. CX = minimum Y coordinate
  131159. DX = maximum Y coordinate
  131160. Return: AH = status (see #03744)
  131161. BP,DS destroyed
  131162. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=005Ah,AH=08h/BP=005Ah,AH=0Ch/BP=005Ah
  131163. SeeAlso: AH=10h/BP=005Ah,AH=12h/BP=005Ah,INT 33/AX=0008h
  131164. --------N-6F0F-------------------------------
  131165. INT 6F - 10NET v5.0 - "RM LOCK" - ???
  131166. AH = 0Fh
  131167. ???
  131168. Return: ???
  131169. SeeAlso: AH=07h,AH=08h"10NET"
  131170. --------N-6F10-------------------------------
  131171. INT 6F - 10NET - ATTACH/DETACH PRINTER
  131172. AH = 10h
  131173. AL = subfunction
  131174. 00h initiate spooling if LPT1 is mounted
  131175. 01h terminate spooling if LPT1 is mounted
  131176. SeeAlso: INT 21/AX=5D08h
  131177. --------b-6F10-------------------------------
  131178. INT 6F - HP Vectra EX-BIOS - "F_GET_WORD" - READ WORD OF DATA FROM DEVICE
  131179. AH = 10h
  131180. BP = driver ID (see #03741)
  131181. Return: AH = status (see #03744 at AH=00h"HP Vectra")
  131182. DX = data word
  131183. BP,DS destroyed
  131184. SeeAlso: AH=08h"F_GET_BYTE",AH=0Ch"F_GET_BUFFER",AH=0Eh"F_PUT_WORD"
  131185. --------b-6F10--BP0012-----------------------
  131186. INT 6F - HP Vectra EX-BIOS - "F_INS_FIXGLBDS" - INSTALL VALUES IN FIXED VECTOR
  131187. AH = 10h
  131188. BP = 0012h (driver ID for V_SYSTEM)
  131189. BX = vector address used
  131190. ES:DI -> new CS:IP entry point
  131191. Return: AH = status (00h) (see #03744)
  131192. BP,DS destroyed
  131193. Note: on installation, the given entry point will be invoked with an SF_INIT
  131194. call (see AX=0200h"SF_INIT"), with BX set to the EX-BIOS global
  131195. data area. If the SF_INIT call returns with error code FEh, the
  131196. power-on self-test sequence will be called.
  131197. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h
  131198. SeeAlso: AH=0Ch/BP=0012h,AH=0Eh/BP=0012h,AH=12h/BP=0012h,AH=16h/BP=0012h
  131199. --------b-6F10--BP005A-----------------------
  131200. INT 6F - HP Vectra EX-BIOS - "F_PUT_SPRITE" - DISPLAY GRAPHICS CURSOR SPRITE
  131201. AH = 10h
  131202. BP = 005Ah (driver ID for V_STRACK)
  131203. BX = X coordinate
  131204. CX = Y coordinate
  131205. Return: AH = status (see #03744)
  131206. BP,DS destroyed
  131207. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF"
  131208. SeeAlso: AH=12h"F_REMOVE_SPRITE",INT 33/AX=0004h
  131209. --------N-6F11-------------------------------
  131210. INT 6F - 10NET - LOCK FCB
  131211. AH = 11h
  131212. AL = mode
  131213. 01h sequential
  131214. 02h random
  131215. 03h random block
  131216. CX = number of records
  131217. DS:DX -> FCB (see #01345 at INT 21/AH=0Fh)
  131218. Return: CF clear if successful
  131219. CF set on error
  131220. AX = error code (see also #03740)
  131221. 0002h file not found
  131222. SeeAlso: AH=12h,INT 21/AH=0Fh
  131223. --------N-6F12-------------------------------
  131224. INT 6F - 10NET - UNLOCK FCB
  131225. AH = 12h
  131226. AL = mode
  131227. 00h sequential
  131228. 01h random
  131229. 02h random block
  131230. CX = number of records
  131231. DS:DX -> FCB (see #01345 at INT 21/AH=0Fh)
  131232. Return: CF clear if successful
  131233. CF set on error
  131234. AX = error code (see also #03740)
  131235. 0002h file not found
  131236. SeeAlso: AH=11h
  131237. --------b-6F12--BP0012-----------------------
  131238. INT 6F - HP Vectra EX-BIOS - "F_INS_FREEOWNDS" - INSTALL VALUES IN FREE VECTOR
  131239. AH = 12h
  131240. BP = 0012h (driver ID for V_SYSTEM)
  131241. ES:DI -> new CS:IP entry point
  131242. Return: AH = status (00h) (see #03744)
  131243. BP,DS destroyed
  131244. Note: on installation, the given entry point will be invoked with an SF_INIT
  131245. call (see AX=0200h"SF_INIT"), which should return the routine's DS
  131246. in BX. If the SF_INIT call returns with error code FEh, the power-on
  131247. self-test sequence will be called.
  131248. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Ch/BP=0012h,AH=14h/BP=0012h
  131249. SeeAlso: AH=16h/BP=0012h,AH=18h/BP=0012h
  131250. --------b-6F12--BP005A-----------------------
  131251. INT 6F - HP Vectra EX-BIOS - "F_REMOVE_SPRITE" - REMOVE GRAPHICS CURSOR SPRITE
  131252. AH = 12h
  131253. BP = 005Ah (driver ID for V_STRACK)
  131254. Return: AH = status (see #03744)
  131255. BP,DS destroyed
  131256. SeeAlso: AH=00h"HP Vectra",AH=06h"F_TRACK_ON",AH=10h"F_PUT_SPRITE"
  131257. --------N-6F13-------------------------------
  131258. INT 6F - 10NET v3.3+ - GET REMOTE CONFIGURATION TABLE ADDRESS
  131259. AH = 13h
  131260. DS:DX -> node ID, 12 bytes blank-padded
  131261. Return: CF clear if successful
  131262. ES:BX = configuration table address on given machine
  131263. CF set on error
  131264. AX = error code (see #03740)
  131265. SeeAlso: AH=03h
  131266. --------N-6F14-------------------------------
  131267. INT 6F - 10NET v3.3+ - GET REMOTE MEMORY
  131268. AH = 14h
  131269. BX:SI = address of remote memory
  131270. CX = length (<=1024 bytes)
  131271. DS:DX -> node ID, 12 bytes blank-padded
  131272. DS:DI -> area to receive remote memory image
  131273. Return: CF clear if successful
  131274. CX = amount of memory copied to DS:SI
  131275. CF set on error
  131276. AX = error code (see #03740)
  131277. --------b-6F14--BP0012-----------------------
  131278. INT 6F - HP Vectra EX-BIOS - "F_INS_FREEGETDS" - INSTALL VALUES IN FREE VECTOR
  131279. AH = 14h
  131280. BP = 0012h (driver ID for V_SYSTEM)
  131281. ES:DI -> new CS:IP entry point
  131282. Return: AH = status (00h) (see #03744)
  131283. BP,DS destroyed
  131284. Note: on installation, the given entry point will be invoked with an SF_INIT
  131285. call (see AX=0200h"SF_INIT"), with the "last used DS" value in BX;
  131286. the routine should adjust BX and return the new value. If the
  131287. SF_INIT call returns with error code FEh, the power-on self-test
  131288. sequence will be called.
  131289. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Eh/BP=0012h,AH=12h/BP=0012h
  131290. SeeAlso: AH=16h/BP=0012h
  131291. --------N-6F1501-----------------------------
  131292. INT 6F - 10NET v3.3+ - GET SHARED DEVICE ENTRY
  131293. AX = 1501h
  131294. BX = zero-based index
  131295. DS:SI -> node ID, 12 bytes blank-padded
  131296. ES:DI -> 85-byte buffer for shared device table entry (see #03774)
  131297. Return: CF clear if successful
  131298. ES:DI buffer contains shared device table entry of BXth device
  131299. CF set on error
  131300. AX = error code (see #03740)
  131301. SeeAlso: AX=1502h,AX=1503h,AX=9501h
  131302. Format of 10NET shared device table entry:
  131303. Offset Size Description (Table 03774)
  131304. 00h 8 BYTEs device
  131305. 08h 8 BYTEs alias
  131306. 10h 64 BYTEs path
  131307. 50h 8 BYTEs password
  131308. 58h BYTE access
  131309. 59h 4 BYTEs mask
  131310. --------N-6F1502-----------------------------
  131311. INT 6F - 10NET v3.3+ - SET SHARED DEVICE ENTRY
  131312. AX = 1502h
  131313. DS:SI -> node ID, 12 bytes blank-padded
  131314. ES:DI -> valid shared device table entry
  131315. Return: CF clear if successful
  131316. CF set on error
  131317. AX = error code (see #03740)
  131318. SeeAlso: AX=1501h,AX=1503h,AX=9502h
  131319. --------N-6F1503-----------------------------
  131320. INT 6F - 10NET v3.3+ - DELETE SHARED DEVICE ENTRY
  131321. AX = 1503h
  131322. BX = zero-based index
  131323. DS:SI -> node ID, 12 bytes blank-padded
  131324. Return: CF clear if successful
  131325. CF set on error
  131326. AX = error code (see #03740)
  131327. SeeAlso: AX=1501h,AX=1502h,AX=9503h
  131328. --------N-6F16-------------------------------
  131329. INT 6F - 10NET v5.0 - "GL WHO" - ???
  131330. AH = 16h
  131331. ???
  131332. Return: ???
  131333. SeeAlso: AH=0Dh
  131334. --------b-6F16--BP0012-----------------------
  131335. INT 6F - HP Vectra EX-BIOS - "F_INS_FREEGLBDS" - INSTALL VALUES IN FREE VECTOR
  131336. AH = 16h
  131337. BP = 0012h (driver ID for V_SYSTEM)
  131338. ES:DI -> new CS:IP entry point
  131339. Return: AH = status (00h) (see #03744 at INT 6F/AH=00h"HP Vectra")
  131340. BP,DS destroyed
  131341. Note: on installation, the given entry point will be invoked with an SF_INIT
  131342. call (see AX=0200h"SF_INIT"), with BX set to the EX-BIOS global
  131343. data area. If the SF_INIT call returns with error code FEh, the
  131344. power-on self-test sequence will be called.
  131345. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=10h/BP=0012h,AH=12h/BP=0012h
  131346. SeeAlso: AH=14h/BP=0012h,AH=18h/BP=0012h
  131347. --------N-6F17-------------------------------
  131348. INT 6F - 10NET v3.3+ - MOUNT
  131349. AH = 17h
  131350. AL = local drive number (0=A:)
  131351. BL = remote drive letter or '1'..'3' for LPTn or '4' or '5' for COMx
  131352. DS:DX -> node ID, 12 bytes blank-padded
  131353. Return: CF clear if successful
  131354. CF set on error
  131355. AX = error code (see #03740)
  131356. SeeAlso: AH=18h
  131357. --------N-6F18-------------------------------
  131358. INT 6F - 10NET v3.3+ - UNMOUNT
  131359. AH = 18h
  131360. AL = local drive number (0=A:)
  131361. BL = type
  131362. 00h disk
  131363. 01h-03h LPTn
  131364. 04h,05h COMx
  131365. Return: CF clear if successful
  131366. CF set on error
  131367. AX = error code (see #03740)
  131368. SeeAlso: AH=17h
  131369. --------b-6F18--BP0012-----------------------
  131370. INT 6F - HP Vectra EX-BIOS - "F_INS_FIND" - FIND DRIVER BY ATTRIBUTES
  131371. AH = 18h
  131372. BP = 0012h (driver ID for V_SYSTEM)
  131373. AL = sense of test (00h equal, 02h non-equal)
  131374. BX = AND mask
  131375. DX = pattern
  131376. SI = first vector address to search
  131377. DI = offset in HP header of field to test
  131378. Return: AH = status (00h,FEh) (see #03744 at INT 6F/AH=00h"HP Vectra")
  131379. BP,DS destroyed
  131380. ---if AH=00h---
  131381. SI = first matching vector address
  131382. Desc: compare successive drivers' header fields starting at address SI
  131383. until the header field AND BX is either equal or non-equal to DX
  131384. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Ch/BP=0012h,AH=10h/BP=0012h
  131385. SeeAlso: AH=12h/BP=0012h,AH=16h/BP=0012h
  131386. --------N-6F19-------------------------------
  131387. INT 6F U - 10NET v5.0 - AUDIT
  131388. AH = 19h
  131389. ???
  131390. Return: ???
  131391. SeeAlso: AH=99h
  131392. --------N-6F1A-------------------------------
  131393. INT 6F U - 10NET v5.0 - "BULL" - ???
  131394. AH = 1Ah
  131395. ???
  131396. Return: ???
  131397. --------N-6F1B-------------------------------
  131398. INT 6F U - 10NET v5.0 - "GMOUNT" - ???
  131399. AH = 1Bh
  131400. ???
  131401. Return: ???
  131402. --------N-6F1C-------------------------------
  131403. INT 6F U - 10NET v5.0 - "GLOGIN" - GET LOGIN LIST
  131404. AH = 1Ch
  131405. ???
  131406. Return: ???
  131407. --------N-6F1D-------------------------------
  131408. INT 6F U - 10NET v5.0 - "TABDATA" - ???
  131409. AH = 1Dh
  131410. ???
  131411. Return: ???
  131412. --------N-6F1E-------------------------------
  131413. INT 6F U - 10NET v5.0 - "SCHED" - ???
  131414. AH = 1Eh
  131415. ???
  131416. Return: ???
  131417. --------b-6F1E--BP0012-----------------------
  131418. INT 6F - HP Vectra EX-BIOS - "F_RAM_GET" - GET EX-BIOS FREE RAM AREA
  131419. AH = 1Eh
  131420. BP = 0012h (driver ID for V_SYSTEM)
  131421. Return: AH = status (00h) (see #03744 at INT 6F/AH=00h"HP Vectra")
  131422. BX = last-used DS
  131423. DX = maximum DS
  131424. BP,DS destroyed
  131425. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=20h/BP=0012h,AH=22h/BP=0012h
  131426. --------N-6F1F-------------------------------
  131427. INT 6F U - 10NET v5.0 - "WHOAMI" - ???
  131428. AH = 1Fh
  131429. ???
  131430. Return: ???
  131431. --------N-6F20-------------------------------
  131432. INT 6F U - 10NET v5.0 - ???
  131433. AH = 20h
  131434. ???
  131435. Return: ???
  131436. --------b-6F20--BP0012-----------------------
  131437. INT 6F - HP Vectra EX-BIOS - "F_RAM_RET" - RESERVE EX-BIOS MEMORY
  131438. AH = 20h
  131439. BP = 0012h (driver ID for V_SYSTEM)
  131440. BX = new value for "last-used DS"
  131441. DX = new value for "maximum DS"
  131442. Return: AH = status (00h) (see #03744 at INT 6F/AH=00h"HP Vectra")
  131443. BP,DS destroyed
  131444. Note: the F_INS_FIXGETDS and F_INS_FREEGETDS functions
  131445. (see AH=0Eh/BP=0012h,AH=14h/BP=0012h) also modify the values returned
  131446. by this call, requiring care if both methods are used to allocate
  131447. memory
  131448. SeeAlso: AH=00h"HP Vectra",AH=0Eh/BP=0012h,AH=14h/BP=0012h,AH=1Eh/BP=0012h
  131449. --------N-6F21-------------------------------
  131450. INT 6F U - 10NET v5.0 - ???
  131451. AH = 21h
  131452. ???
  131453. Return: ???
  131454. --------N-6F22-------------------------------
  131455. INT 6F U - 10NET v5.0 - ???
  131456. AH = 22h
  131457. ???
  131458. Return: ???
  131459. --------b-6F22--BP0012-----------------------
  131460. INT 6F - HP Vectra EX-BIOS - "F_CMOS_GET" - READ CMOS MEMORY
  131461. AH = 22h
  131462. BP = 0012h (driver ID of V_SYSTEM)
  131463. BL = address of CMOS byte to read
  131464. Return: AH = status (see #03744 at AH=00h"HP Vectra")
  131465. AL = byte read
  131466. BP,DS destroyed
  131467. Note: supported by ES, QS, and RS series HP Vectras
  131468. SeeAlso: AH=00h"HP Vectra",AH=1Eh/BP=0012h,AH=24h/BP=0012h
  131469. --------b-6F24--BP0012-----------------------
  131470. INT 6F - HP Vectra EX-BIOS - "F_CMOS_RET" - WRITE CMOS MEMORY
  131471. AH = 24h
  131472. BP = 0012h (driver ID of V_SYSTEM)
  131473. BL = address of CMOS byte to write
  131474. AL = new value
  131475. Return: AH = status (see #03744)
  131476. BP,DS destroyed
  131477. Note: updates the CMOS checksum fields (both IBM-standard and HP checksums)
  131478. SeeAlso: AH=00h"HP Vectra",AH=22h/BP=0012h
  131479. --------b-6F2A--BP0012-----------------------
  131480. INT 6F - HP Vectra EX-BIOS - "F_YIELD" - GIVE UP CPU TO OTHER TASKS
  131481. AH = 2Ah
  131482. BP = 0012h (driver ID of V_SYSTEM)
  131483. Return: AH = status (see #03744)
  131484. BP,DS destroyed
  131485. Note: this is a hook for multitasking systems
  131486. SeeAlso: AH=00h"HP Vectra",INT 15/AX=1000h,INT 2F/AX=1680h
  131487. --------b-6F30--BP0012-----------------------
  131488. INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK_ENABLE" - TURN ON KEYCLICKS
  131489. AH = 30h
  131490. BP = 0012h (driver ID of V_SYSTEM)
  131491. Return: AH = status (see #03744 at AH=00h"HP Vectra")
  131492. BP,DS destroyed
  131493. Desc: enables keyclicks and flushes any pending keyclicks
  131494. SeeAlso: AH=32h/BP=0012h,AH=34h/BP=0012h,AH=36h/BP=0012h
  131495. --------b-6F32--BP0012-----------------------
  131496. INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK_DISABLE" - TURN OFF KEYCLICKS
  131497. AH = 32h
  131498. BP = 0012h (driver ID of V_SYSTEM)
  131499. Return: AH = status (see #03744)
  131500. BP,DS destroyed
  131501. Desc: disables keyclicks and flushes any pending keyclicks
  131502. SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=38h/BP=0012h
  131503. --------b-6F34--BP0012-----------------------
  131504. INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK" - GENERATE KEYCLICK
  131505. AH = 34h
  131506. BP = 0012h (driver ID of V_SYSTEM)
  131507. Return: AH = status (see #03744)
  131508. BP,DS destroyed
  131509. Desc: generate a keyclick if fewer than four clicks are already pending
  131510. Note: if keyclicks are already pending, the remaining click count is
  131511. incremented and the function returns immediately
  131512. SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=36h/BP=0012h,AH=3Ah/BP=0012h
  131513. --------b-6F36--BP0012-----------------------
  131514. INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP_ENABLE" - ENABLE BEEPS
  131515. AH = 36h
  131516. BP = 0012h (driver ID of V_SYSTEM)
  131517. Return: AH = status (see #03744 at AH=00h"HP Vectra")
  131518. BP,DS destroyed
  131519. SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=34h/BP=0012h,AH=38h/BP=0012h
  131520. --------b-6F38--BP0012-----------------------
  131521. INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP_DISABLE" - DISABLE BEEPS
  131522. AH = 38h
  131523. BP = 0012h (driver ID of V_SYSTEM)
  131524. Return: AH = status (see #03744)
  131525. BP,DS destroyed
  131526. SeeAlso: AH=00h"HP Vectra",AH=32h/BP=0012h,AH=36h/BP=0012h
  131527. --------b-6F3A--BP0012-----------------------
  131528. INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP" - SOUND BEEP WITH CURRENT VALUES
  131529. AH = 3Ah
  131530. BP = 0012h (driver ID of V_SYSTEM)
  131531. Return: AH = status (see #03744 at AH=00h"HP Vectra")
  131532. BP,DS destroyed
  131533. Desc: make a sound of the frequency and duration defined in the EX-BIOS
  131534. global data area (see #03748)
  131535. SeeAlso: AH=00h"HP Vectra",AH=34h/BP=0012h,AH=36h/BP=0012h,AH=38h/BP=0012h
  131536. SeeAlso: AH=3Ch/BP=0012h,AH=3Eh/BP=0012h
  131537. --------b-6F3C--BP0012-----------------------
  131538. INT 6F - HP Vectra EX-BIOS - "F_SND_SET_BEEP" - SET BEEP FREQUENCY AND DURATION
  131539. AH = 3Ch
  131540. BP = 0012h (driver ID of V_SYSTEM)
  131541. BX = frequency in Hz (1-25000, 0 = off)
  131542. DX = duration in 10-microsecond increments
  131543. Return: AH = status (see #03744)
  131544. BP,DS destroyed
  131545. SeeAlso: AH=00h"HP Vectra",AH=3Ah/BP=0012h,AH=3Eh/BP=0012h,#03748
  131546. --------b-6F3E--BP0012-----------------------
  131547. INT 6F - HP Vectra EX-BIOS - "F_SND_TONE" - SOUND TONE WITH FREQ AND DURATION
  131548. AH = 3Eh
  131549. BP = 0012h (driver ID of V_SYSTEM)
  131550. BX = frequency in Hz (1-25000, 0 = off)
  131551. DX = duration in 10-microsecond increments
  131552. Return: AH = status (see #03744)
  131553. BP,DS destroyed
  131554. SeeAlso: AH=00h"HP Vectra",AH=3Ah/BP=0012h,AH=3Ch/BP=0012h,AH=40h/BP=0012h
  131555. --------b-6F40--BP0012-----------------------
  131556. INT 6F - HP Vectra EX-BIOS - "F_STR_GET_FREE_INDEX" - FIND FREE STRING INDEX
  131557. AH = 40h
  131558. BP = 0012h (driver ID of V_SYSTEM)
  131559. Return: AH = status (see #03744)
  131560. BX = next free string index
  131561. BP,DS destroyed
  131562. Desc: get the next string index available to user programs
  131563. SeeAlso: AH=00h"HP Vectra",AH=42h/BP=0012h,AH=44h/BP=0012h,AH=46h/BP=0012h
  131564. --------b-6F42--BP0012-----------------------
  131565. INT 6F - HP Vectra EX-BIOS - "F_STR_DEL_BUCKET" - DEL HEADER FROM BUCKET LIST
  131566. AH = 42h
  131567. BP = 0012h (driver ID of V_SYSTEM)
  131568. ES:DI -> bucket header (see #03775)
  131569. Return: AH = status (00h,FEh) (see #03744 at AH=00h"HP Vectra")
  131570. BP,DS destroyed
  131571. SeeAlso: AH=00h"HP Vectra",AH=40h/BP=0012h,AH=44h/BP=0012h
  131572. Format of HP Vectra EX-BIOS bucket header:
  131573. Offset Size Description (Table 03775)
  131574. 00h DWORD pointer to next bucket header (FFFFh:FFFFh if last)
  131575. 04h WORD upper bound on string index
  131576. 06h WORD lower bound on string index
  131577. 08h DWORD pointer to array of string offset pointers
  131578. 0Ch WORD segment of strings
  131579. Note: the strings pointed at by the offset pointers are byte-counted ASCIZ
  131580. strings
  131581. --------b-6F44--BP0012-----------------------
  131582. INT 6F - HP Vectra EX-BIOS - "F_STR_PUT_BUCKET" - ADD HEADER TO BUCKET HDR LIST
  131583. AH = 44h
  131584. BP = 0012h (driver ID of V_SYSTEM)
  131585. ES:DI -> bucket header (see #03775)
  131586. Return: AH = status (00h) (see #03744)
  131587. BP,DS destroyed
  131588. SeeAlso: AH=00h"HP Vectra",AH=42h/BP=0012h,AH=46h/BP=0012h
  131589. --------b-6F46--BP0012-----------------------
  131590. INT 6F - HP Vectra EX-BIOS - "F_STR_GET_STRING" - FIND STRING IN BUCKET LIST
  131591. AH = 46h
  131592. BP = 0012h (driver ID of V_SYSTEM)
  131593. BX = string index
  131594. Return: AH = status (00h,other) (see #03744)
  131595. BP,DS destroyed
  131596. ---if successful---
  131597. CX = length of string (excluding count byte and terminating NUL)
  131598. DS:SI -> header for string
  131599. ES:DI -> found string
  131600. SeeAlso: AH=00h"HP Vectra",AH=44h/BP=0012h,AH=48h/BP=0012h
  131601. --------b-6F48--BP0012-----------------------
  131602. INT 6F - HP Vectra EX-BIOS - "F_STR_GET_INDEX" - GET INDEX FOR STRING
  131603. AH = 48h
  131604. BP = 0012h (driver ID of V_SYSTEM)
  131605. ES:DI -> ASCIZ string
  131606. Return: AH = status (00h,other) (see #03744 at AH=00h"HP Vectra")
  131607. BP,DS destroyed
  131608. ---if successful---
  131609. BX = index for the given string
  131610. SeeAlso: AH=00h"HP Vectra",AH=40h/BP=0012h,AH=46h/BP=0012h
  131611. --------A-6F636FBX6D70-----------------------
  131612. INT 6F - Clara Empricost - TSR Version - INSTALLATION CHECK
  131613. AX = 636Fh ('co')
  131614. BX = 6D70h ('mp')
  131615. CX = 696Eh ('in')
  131616. SS:DX -> WORD to set if installed
  131617. Return: SS:DX word set to 636Fh if installed
  131618. Program: Condition List Action Rejection Algorithm for the Evaluation
  131619. of Music at Pseudo-Random Idea COnstruction STage
  131620. (CLARA EMPRICOST) is an experimental program by Silas Brown
  131621. SeeAlso: AX=636Fh/BX=6D70h"UNINSTALL"
  131622. --------A-6F636FBX6D70-----------------------
  131623. INT 6F - Clara Empricost - TSR Version - UNINSTALL
  131624. AX = 636Fh ('co')
  131625. BX = 6D70h ('mp')
  131626. CX = 6F73h ('os')
  131627. Return: nothing -- call installation check to determine whether successful
  131628. Program: Condition List Action Rejection Algorithm for the Evaluation
  131629. of Music at Pseudo-Random Idea COnstruction STage
  131630. (CLARA EMPRICOST) is an experimental program by Silas Brown
  131631. Notes: Saves any unfinished task and prevents processing of
  131632. new tasks, even if can't uninstall
  131633. If INT 28h or INT 6Fh have been chained since installation,
  131634. returns without changing interrupts or freeing memory
  131635. do not call while DOS is active (i.e. InDOS flag is nonzero or INT 28
  131636. is active and InDOS > 1)
  131637. SeeAlso: AX=636Fh/BX=6D70h"INSTALLATION CHECK"
  131638. --------N-6F80-------------------------------
  131639. INT 6F - 10NET v5.0 - LOGIN
  131640. AH = 80h
  131641. DS:DX -> login record (see #03776)
  131642. Return: CF clear if successful
  131643. BL = number of days until password expires (00h = never)
  131644. CL = security level
  131645. CF set on error
  131646. AX = status (see #03740)
  131647. SeeAlso: AH=00h,AH=81h
  131648. Format of 10NET login record:
  131649. Offset Size Description (Table 03776)
  131650. 00h 8 BYTEs user name
  131651. 08h 8 BYTEs password
  131652. 10h 15 BYTEs server node ID
  131653. 1Fh 8 BYTEs new password
  131654. 27h BYTE invoke mode (00h command line, 01h interactive)
  131655. --------N-6F81-------------------------------
  131656. INT 6F - 10NET v5.0 - LOGOUT
  131657. AH = 81h
  131658. DS:DX -> server node ID (DX=0000h for universal logout)
  131659. Return: AX = status (see #03740)
  131660. SeeAlso: AH=01h,AH=80h
  131661. --------N-6F8A-------------------------------
  131662. INT 6F - 10NET v5.0 - CHAT
  131663. AH = 8Ah
  131664. DS:BX -> chat parameters (see #03777)
  131665. DS:DX -> chat message (see #03778)
  131666. Return: CF clear if successful
  131667. CF set on error
  131668. AX = status (see #03740)
  131669. SeeAlso: AH=0Ah"10NET"
  131670. Format of 10NET chat parameters:
  131671. Offset Size Description (Table 03777)
  131672. 00h 8 BYTEs sender's user name
  131673. 08h 8 BYTEs destination user name
  131674. 10h 15 BYTEs destination node (0 if broadcast-style chat)
  131675. Format of 10NET chat message:
  131676. Offset Size Description (Table 03778)
  131677. 00h WORD message length
  131678. 02h N BYTEs chat message contents
  131679. --------N-6F8D-------------------------------
  131680. INT 6F - 10NET v5.0 - "WHO" - ENUMERATE USERS ON NETWORK
  131681. AH = 8Dh
  131682. BX = service mask (see #03779)
  131683. CX = length of buffer
  131684. DS:DX -> buffer for array of Who data structures (see #03780)
  131685. Return: CF clear if successful
  131686. CX = number of nodes matching service mask
  131687. DS:DX buffer filled
  131688. CF set on error
  131689. AX = status (see #03740)
  131690. SeeAlso: AH=0Dh
  131691. Bitfields for 10NET service mask:
  131692. Bit(s) Description (Table 03779)
  131693. 0 workstation
  131694. 1 file server
  131695. 2 print server
  131696. 3 de-spool server
  131697. Format of 10NET Who data structure:
  131698. Offset Size Description (Table 03780)
  131699. 00h 8 BYTEs user name
  131700. 08h 15 BYTEs node ID
  131701. 17h 3 BYTEs unique portion of Ethernet address
  131702. 1Ah BYTE Who group number
  131703. 1Bh WORD service mask (see #03779)
  131704. 1Dh DWORD serial number
  131705. 21h BYTE maximum concurrent users with same serial number allowed on net
  131706. 22h BYTE chat mask (see #03781)
  131707. 23h BYTE internal system bits (see #03782)
  131708. 24h 9 BYTEs version number in format MM.mm.xxx
  131709. 2Dh BYTE number of shared directories
  131710. 2Eh BYTE number of shared printer queues
  131711. Bitfields for 10NET chat mask:
  131712. Bit(s) Description (Table 03781)
  131713. 0 chat permitted
  131714. 1 bell enabled
  131715. 2 chat keyboard initiated
  131716. 3 in INT 16 handler
  131717. 4 in Get Input
  131718. 5 display has timed out
  131719. 6 chat is idle
  131720. Bitfields for 10NET internal system bits:
  131721. Bit(s) Description (Table 03782)
  131722. 0 submit permitted
  131723. 1 submit initiated
  131724. 2 submit executing
  131725. 3 internal client call/chat/spool/autospool
  131726. 4 in spool termination
  131727. 5 print permitted
  131728. 6 waiting for keyboard input
  131729. --------N-6F9501-----------------------------
  131730. INT 6F - 10NET v5.0 - GET SHARED DEVICE ENTRY
  131731. AX = 9501h
  131732. BX = zero-based index
  131733. DS:SI -> server's node ID
  131734. ES:DI -> buffer for shared device structure (see #03783)
  131735. Return: CF clear if successful
  131736. CF set on error
  131737. AX = status (see #03740)
  131738. SeeAlso: AX=1501h,AX=9502h,AX=9503h,AX=9504h
  131739. Format of 10NET shared device structure:
  131740. Offset Size Description (Table 03783)
  131741. 00h 8 BYTEs alias
  131742. 08h BYTE type (02h modem, 03h print queue, 04h directory)
  131743. 09h BYTE access rights
  131744. bit 0: read
  131745. bit 1: write
  131746. bit 2: create
  131747. 0Ah 8 BYTEs password
  131748. 12h 32 BYTEs comment
  131749. ---directory---
  131750. 32h 64 BYTEs pathname of shared directory
  131751. ---print queue---
  131752. 32h BYTE notification bit mask (see #03784)
  131753. 33h BYTE job control bit mask (see #03785)
  131754. 34h WORD number of days to retain file
  131755. 36h WORD test print length
  131756. 38h BYTE number of copies to print
  131757. 39h BYTE compression algorithm
  131758. 3Ah BYTE tab width (00h = don't expand)
  131759. 3Bh BYTE priority
  131760. 3Ch WORD time to open queue (FFFFh = always)
  131761. 3Eh WORD time to close queue
  131762. 40h WORD pause following queue switch, in clock ticks
  131763. 42h WORD pause between print jobs, in clock ticks
  131764. 44h BYTE associate queue file existence mask
  131765. bit 0: queue switch file exists
  131766. bit 1: initiate file exists
  131767. bit 2: abort file exists
  131768. 45h 6 BYTEs character sequence for page eject
  131769. 4Bh BYTE status of print queue
  131770. bit 0: queue is closed
  131771. 4Ch WORD number of jobs on queue
  131772. 4Eh WORD offset of next print job to be dispatched (FFFFh = none)
  131773. 50h BYTE number of print devices in printer pool
  131774. 51h WORD offset of first print device structure (FFFFh if empty)
  131775. Bitfields for notification flags:
  131776. Bit(s) Description (Table 03784)
  131777. 0 user at print start
  131778. 1 operator at start, with reply
  131779. 2 user at print completion
  131780. 3 operator at completion, with reply
  131781. 4 user on queue switch
  131782. 5 operator on queue switch, with reply
  131783. 6 user on print error
  131784. Bitfields for 10NET job control mask:
  131785. Bit(s) Description (Table 03785)
  131786. 0 print banner page
  131787. 1 eject page at end of job
  131788. 2 mark as "held" (queue but don't print)
  131789. 3 rush job (queue at top)
  131790. 4 overwrite file with zeros before deletion
  131791. 5 hyperspool if possible
  131792. --------N-6F9502-----------------------------
  131793. INT 6F - 10NET v5.0 - SET SHARED DEVICE ENTRY
  131794. AX = 9502h
  131795. DS:SI -> server's node ID
  131796. ES:DI -> shared device structure (see #03783)
  131797. Return: CF clear if successful
  131798. CF set on error
  131799. AX = status (see #03740)
  131800. SeeAlso: AX=1502h,AX=9501h,AX=9503h,AX=9504h
  131801. --------N-6F9503-----------------------------
  131802. INT 6F - 10NET v5.0 - DELETE SHARED DEVICE
  131803. AX = 9503h
  131804. BX = zero-based index
  131805. DS:SI -> server's node ID
  131806. Return: CF clear if successful
  131807. CF set on error
  131808. AX = status (see #03740)
  131809. SeeAlso: AX=1503h,AX=9501h,AX=9502h,AX=9504h
  131810. --------N-6F9504-----------------------------
  131811. INT 6F - 10NET v5.0 - ENUMERATE USERS OF SHARED DEVICE
  131812. AX = 9504h
  131813. BX = zero-based shared device index
  131814. CX = zero-based user index
  131815. DS:SI -> server's node ID
  131816. Return: CF clear if successful
  131817. ES:DI -> node ID of the CX'th user of the BX'th device
  131818. CF set on error
  131819. AX = status (see #03740)
  131820. SeeAlso: AX=9501h,AX=9502h,AX=9503h
  131821. --------N-6F99-------------------------------
  131822. INT 6F - 10NET v5.0 - AUDIT
  131823. AH = 99h
  131824. DS:SI -> server's node ID
  131825. ES:DI -> data to be appended to audit trail file (max 106 bytes)
  131826. Return: CF clear if successful
  131827. CF set on error
  131828. AX = status (see #03740)
  131829. SeeAlso: AH=19h,AH=9Ch
  131830. --------N-6F9C-------------------------------
  131831. INT 6F - 10NET v5.0 - GET LOGIN LIST
  131832. AH = 9Ch
  131833. BX = zero-based index
  131834. Return: CF clear if successful
  131835. DS:DI -> BX'th node ID that caller's machine is logged into
  131836. CF set on error
  131837. AX = status (see #03740)
  131838. --------H-70---------------------------------
  131839. INT 70 C - IRQ8 - CMOS REAL-TIME CLOCK
  131840. Desc: this interrupt is called when the real-time clock chip generates an
  131841. alarm or periodic interrupt, among others. The periodic interrupt
  131842. occurs 1024 times per second.
  131843. Notes: many BIOSes turn off the periodic interrupt in the INT 70h handler
  131844. unless in an event wait (see INT 15/AH=83h,INT 15/AH=86h).
  131845. may be masked by setting bit 0 on I/O port A1h
  131846. SeeAlso: INT 08,INT 0F"HP 95LX",INT 15/AH=01h"Amstrad",INT 15/AH=83h
  131847. SeeAlso: INT 15/AH=86h,INT 1A/AH=02h,INT 58"DESQview",MEM FEE00320h
  131848. SeeAlso: MEM 0040h:006Bh
  131849. --------v-70---------------------------------
  131850. INT 70 - VIRUS - "Stupid" - ORIGINAL INT 21h VECTOR
  131851. Note: the virus sets this interrupt to be the same as INT 21, and then
  131852. performs only INT 70 calls; since INT 70 is also generated by the
  131853. real-time clock on the PC/AT and higher, this could cause random
  131854. actions on an infected system
  131855. SeeAlso: INT 6B"VIRUS",INT 9E"VIRUS",INT E0"VIRUS"
  131856. --------H-71---------------------------------
  131857. INT 71 C - IRQ9 - REDIRECTED TO INT 0A BY BIOS
  131858. Notes: may be masked by setting bit 1 on I/O port A1h
  131859. the default BIOS handler invokes INT 0A for compatibility, since the
  131860. pin for IRQ2 on the PC expansion bus became the pin for IRQ9 on the
  131861. AT expansion bus.
  131862. under DESQview, only the INT 15h vector and BASIC segment address (the
  131863. word at 0000h:0510h) may be assumed to be valid for the handler's
  131864. process
  131865. SeeAlso: INT 0A"IRQ2",INT 59"IRQ9",MEM 0040h:006Bh
  131866. --------H-72---------------------------------
  131867. INT 72 C - IRQ10 - RESERVED
  131868. Note: may be masked by setting bit 2 on I/O port A1h
  131869. SeeAlso: INT 5A"IRQ10",MEM 0040h:006Bh
  131870. --------H-73---------------------------------
  131871. INT 73 C - IRQ11 - RESERVED
  131872. Note: may be masked by setting bit 3 on I/O port A1h
  131873. SeeAlso: INT 5B"IRQ11",MEM 0040h:006Bh
  131874. --------H-74---------------------------------
  131875. INT 74 C - IRQ12 - POINTING DEVICE (PS)
  131876. Notes: may be masked by setting bit 4 on I/O port A1h
  131877. under DESQview, only the INT 15h vector and BASIC segment address (the
  131878. word at 0000h:0510h) may be assumed to be valid for the handler's
  131879. process
  131880. SeeAlso: INT 33/AX=0000h,INT 33/AX=0024h,INT 5C"NetBIOS",MEM 0040h:006Bh
  131881. --------H-75---------------------------------
  131882. INT 75 C - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up)
  131883. Desc: redirected to INT 02 by the BIOS, for compatibility with the PC
  131884. Notes: may be masked by setting bit 5 on I/O port A1h
  131885. not all clones wire the coprocessor to generate this IRQ; some systems
  131886. generate an NMI (see INT 02) or assert the -ERROR pin on the CPU
  131887. (see INT 10"COPROCESSOR")
  131888. under DESQview, only the INT 15h vector and BASIC segment address (the
  131889. word at 0000h:0510h) may be assumed to be valid for the handler's
  131890. process
  131891. SeeAlso: INT 10"COPROCESSOR",INT 5D"IRQ13",MEM 0040h:006Bh
  131892. --------H-76---------------------------------
  131893. INT 76 C - IRQ14 - HARD DISK CONTROLLER OPERATION COMPLETE (AT and later)
  131894. Notes: may be masked by setting bit 6 on I/O port A1h
  131895. on the PS/2, this interrupt is designed to be shared with other
  131896. devices that produce an operation-complete interrupt, though
  131897. the only current user is the hard disk
  131898. SeeAlso: INT 0E"IRQ6",INT 15/AH=91h,INT 5E"IRQ14",MEM 0040h:006Bh
  131899. --------H-77---------------------------------
  131900. INT 77 C - IRQ15 - RESERVED (AT,PS)
  131901. Note: may be masked by setting bit 7 on I/O port A1h
  131902. SeeAlso: INT 5F"IRQ15",MEM 0040h:006Bh
  131903. --------H-77---------------------------------
  131904. INT 77 C - IRQ15 - SECONDARY IDE CONTROLLER - OPERATION COMPLETE
  131905. Note: may be masked by setting bit 7 on I/O port A1h
  131906. SeeAlso: INT 5F"IRQ15",MEM 0040h:006Bh
  131907. --------H-77---------------------------------
  131908. INT 77 C - IRQ15 - POWER CONSERVATION (Compaq SLT/286)
  131909. Note: may be masked by setting bit 7 on I/O port A1h
  131910. SeeAlso: INT 15/AX=4600h,INT 5F"IRQ15"
  131911. --------E-78---------------------------------
  131912. INT 78 - UofSalford DBOS DOS extender - API
  131913. AH = function
  131914. 00h (PB) display 32-bit memory specified by command argument
  131915. 01h (PT) display 32-bit instruction(s) specified by command arg
  131916. 02h specify offset to subsequent PB and PT commands
  131917. 03h switch to protected mode
  131918. DWORD following INT instruction point to map; protected-mode
  131919. entry point is immediately following the DWORD
  131920. Return: never
  131921. Note: if bit 31 of the map address is set, only a stub was
  131922. loaded by DOS and DBOS will load the entire program
  131923. 04h specify that subsequent load (AH=03h) should leave program in
  131924. memory
  131925. 05h release program from memory
  131926. 06h set break point at address and option count from commandline
  131927. 07h resume program execution
  131928. 08h single-step program
  131929. 09h set read/write breakpoint using 386 debug registers
  131930. 0Ah set write breakpoint using 386 debug register
  131931. 0Bh set memory byte to new value
  131932. 0Ch display CPU registers
  131933. 0Dh run until specified program address reached
  131934. 0Fh print trace from program map
  131935. 10h specify an offset using a map symbol
  131936. 14h print memory without any offset
  131937. 18h switch DBOS into/out of test mode (ON/OFF commandline args)
  131938. 1Dh get address of real/protected-mode communication buffer
  131939. Return: ES:BP -> comm buffer
  131940. 1Eh set real-mode memory size (specify how much real-mode memory
  131941. to leave free when running FTN77 programs)
  131942. 22h uninstall DBOS
  131943. 24h force DBOS to emulate coprocessor instructions
  131944. 26h set named DBOS switches from commandline
  131945. 27h reset named DBOS switched from commandline
  131946. 2Ah set list of dynamic link libraries to contents of commandline
  131947. file
  131948. 35h specify that subsequent load (AH=03h) should stop at first
  131949. instruction
  131950. Return: ???
  131951. Notes: DBOS supports functions 00h through 50h; many of these functions
  131952. provide a low-level debugging interface
  131953. command arguments are read from the calling program's PSP
  131954. SeeAlso: INT 79"DBOS"
  131955. Index: uninstall;DBOS DOS extender
  131956. --------E-78---------------------------------
  131957. INT 78 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ0
  131958. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  131959. GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  131960. Notes: this vector is overwritten when GO32 starts but is not restored by
  131961. early versions of the extender
  131962. the newest versions of GO32 dynamically allocate the vectors used
  131963. for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  131964. SeeAlso: INT 08,INT 10/AH=FFh"GO32",INT 79"GO32"
  131965. --------A-78---------------------------------
  131966. INT 78 R - AutoCAD Device Interface - PLOTTER - SEND COMMAND
  131967. AX = function
  131968. 0001h begin plot
  131969. BX = file level
  131970. 0000h ASCII file
  131971. 0001h binary file
  131972. 0002h AutoCAD DXB file
  131973. 0003h installed ADI driver
  131974. 0002h end plot (close plotter)
  131975. 0003h move (pen up)
  131976. BX = new X position
  131977. CX = new Y position
  131978. 0004h move (pen down)
  131979. BX = new X position
  131980. CX = new Y position
  131981. 0005h select pen
  131982. BX = pen number
  131983. 0006h select drawing speed
  131984. BX = drawing speed N
  131985. 0007h select line style
  131986. BX = line style N
  131987. 0008h raise pen
  131988. 0009h abort plot
  131989. Return: AX = 0000h (may be used for driver status in future releases)
  131990. SeeAlso: INT 79"AutoCAD",INT 7A/AX=0001h"AutoCAD",INT 7B/AX=8001h"AutoCAD"
  131991. --------d-78---------------------------------
  131992. INT 78 - ADP-60 IDE controller - ORIGINAL INT 13
  131993. SeeAlso: INT 79"ADP-60"
  131994. --------s-78-------------------------------
  131995. INT 78 - ULTRAMID - API
  131996. AX = function
  131997. --- digital functions ---
  131998. 0000h start digital
  131999. ES:DI -> Sound Structure
  132000. Return: AX = voice used
  132001. 0001h play next buffer
  132002. ES:DI -> Sound Structure
  132003. 0002h set panning
  132004. BX = pan
  132005. CX = voice
  132006. 0003h set volume
  132007. BX = volume
  132008. CX = voice
  132009. 0004h set rate (not yet implemented)
  132010. 0005h pause digital
  132011. CX = voice
  132012. 0006h restart digital
  132013. CX = voice
  132014. 0007h stop digital
  132015. CX = voice
  132016. 0008h get digital position
  132017. CX = voice
  132018. Return: AX:DX -> position in PC buffer
  132019. 0009h get voice status (not yet implemented)
  132020. --- MIDI functions ---
  132021. 000Ah load MIDI patches
  132022. ES:DI -> MIDI track just after the Mtrk header
  132023. BX:DX = length of MIDI track
  132024. 000Bh load XMIDI patches
  132025. ES:DI -> event buffer including the EVNT header
  132026. 000Ch load patch
  132027. CX = MIDI number of patch
  132028. 000Dh unload patch
  132029. CX = MIDI number of patch
  132030. 000Eh start sequence
  132031. 000Fh unload all patches
  132032. 0010h MIDI out byte
  132033. CX = MIDI byte
  132034. 0011h MIDI out string
  132035. CX = length
  132036. ES:DI -> string of MIDI data
  132037. 0012h all notes off
  132038. --- resource functions ---
  132039. 0013h allocate memory
  132040. BX:DX = size of GUS memory needed
  132041. Return: AX:DX = address of memory, or 0000:0000 if not avaiable
  132042. 0014h free memory
  132043. BX:DX = address of memory to be freed
  132044. 0015h uninstall
  132045. 0016h sem enter
  132046. 0017h sem leave
  132047. 0018h add external semaphore
  132048. BX:DX -> external semaphore
  132049. 0019h clear external semaphore
  132050. BX:DX -> external semaphore
  132051. 001Ah application start
  132052. 001Bh application end
  132053. --- v1.12 ---
  132054. 001Ch ???
  132055. 001Dh ???
  132056. 001Eh ???
  132057. 001Fh ???
  132058. Program: UltraMid is a TSR from Advanced Gravis to play MIDI and digital data
  132059. through the Gravis UltraSound (GUS)
  132060. InstallCheck: test for the signature "ULTRAMID" at offset 0103h in the
  132061. interrupt handler's segment
  132062. Range: INT 78 to INT 7F
  132063. SeeAlso: INT 2F/AX=CD00h"ULTRAMID",INT 7E/AH=00h"SBOS",INT 7E/AX=00FEh"SBOS"
  132064. Index: uninstall;UltraMID
  132065. --------d-7800-------------------------------
  132066. INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT
  132067. AH = 00h
  132068. DX = interface board I/O port
  132069. Return: CF set on error
  132070. AL = error code (see #03786)
  132071. InstallCheck: (used by TARGA.DEV) test for the string "SCSI" at offset 03h
  132072. into the interrupt handler
  132073. Note: if this routine is not called, the port is the driver's default
  132074. (usually 0280h or 0300h)
  132075. SeeAlso: AH=01h,AH=02h
  132076. Index: installation check;TARGA.DEV
  132077. (Table 03786)
  132078. Values for TARGA.DEV error code:
  132079. 00h illegal command given to SCSI code
  132080. 01h invalid I/O port specified (must be from 100H to 3F8H, and must be on
  132081. an 8-port boundary)
  132082. 02h invalid DMA channel specified (must be from 1 to 3)
  132083. 03h invalid SCSI board number specified (must be from 0 to 7)
  132084. 04h error from data register test during self-test
  132085. 05h SCSI input signals not all 0 when SCSI RST activated
  132086. 06h SCSI input signals not all 0 before selecting a SCSI device
  132087. 07h BSY signal is active; SCSI bus is busy
  132088. 08h SCSI board not selected, BSY signal did not come on in response to
  132089. raising SEL
  132090. 09h time-out waiting for status state, signifying end of DMA transfer
  132091. --------E-780000-----------------------------
  132092. INT 78 - HugeRealMode Driver - INSTALLATION CHECK
  132093. AX = 0000h
  132094. Return: AX = DBCAh if installed
  132095. Program: the HugeRealMode driver was published in the German DOS Extra Nr. 20
  132096. (1992), and makes a 4G flat address space (for both data and code)
  132097. available to real-mode DOS programs
  132098. SeeAlso: AX=0001h
  132099. --------E-780001-----------------------------
  132100. INT 78 - HugeRealMode Driver - GET ENTRY POINT
  132101. AX = 0001h
  132102. Return: ES:BX -> far call entry point (see #03788,#03803)
  132103. SeeAlso: AX=0000h
  132104. (Table 03787)
  132105. Values for HugeRealMode Server error code:
  132106. 00h successful
  132107. 01h unknown function
  132108. 02h A20 disabled
  132109. 03h A20 enabled
  132110. 04h memory allocation error
  132111. 05h memory not fixeable (LOCK)
  132112. 06h memory not deallocaable
  132113. 07h memory not moveable (UNLOCK)
  132114. 08h change in memory allocation size not possible
  132115. 09h file error (with .XMF-file)
  132116. 0Ah memory error (with .XMF-file)
  132117. 0Bh unknown procedure (currently Turbo Pascal unit only)
  132118. (Table 03788)
  132119. Call HugeRealMode Server "Enable A20" function with:
  132120. AL = 00h
  132121. Return: AX = error code (see #03787)
  132122. Note: The HugeRealMode Server requires an XMS-driver like HIMEM.SYS loaded
  132123. before HUGEREAL (for XMS-memory allocation and A20 control). It
  132124. utilizes some undocumented 386+ features to enable 4G code and data
  132125. segments (flat memory model) in the CPUs real-mode. It is not
  132126. compatible with V86-mode (as with most EMM386). For maximum speed
  132127. and compatibility with DOS it uses a two stage interrupt model
  132128. (see #03791)
  132129. SeeAlso: #03789,#03790,#03791
  132130. (Table 03789)
  132131. Call HugeRealMode Server "Disable A20" function with:
  132132. AL = 01h
  132133. Return: AX = error code (see #03787)
  132134. SeeAlso: #03788,#03790
  132135. (Table 03790)
  132136. Call HugeRealMode Server "Query A20 State" function with:
  132137. AL = 02h
  132138. Return: AX = A20 state (0000h disabled, 0001h enabled)
  132139. SeeAlso: #03788,#03789
  132140. (Table 03791)
  132141. Call HugeRealMode Server "Enable Two-Stage Interrupt Model" function with:
  132142. AL = 03h
  132143. Return: AX = error code (see #03787)
  132144. Notes: If the two stage interrupt model is disabled, the IP must stay below
  132145. 1MB, because the high word of EIP is not saved correctly by the
  132146. standard interrupt management in real mode. Routines in extended
  132147. memory may only be called with interrupts disabled (only usable for
  132148. very short routines).
  132149. If the two stage interupt model is enabled, these conventions are not
  132150. required. The outer (transparent) ISRs save the higher word of EIP
  132151. in the high word of CR3 (possible modification: in memory, if this
  132152. is not safe) and then invoke the standard ISRs.
  132153. Because of this handling, one should use pseudo segmented code even in
  132154. extended memory (64K blocks located on 64K boundaries) to avoid the
  132155. misalignment of the saved EIP (in CR3). Another way is to track and
  132156. realign CR3 each time when jumping over a 64K boundary in extended
  132157. memory
  132158. SeeAlso: #03788,#03792
  132159. (Table 03792)
  132160. Call HugeRealMode Server "Disable Two-Stage Interrupt Model" function with:
  132161. AL = 04h
  132162. Return: AX = error code (see #03787)
  132163. SeeAlso: #03788,#03791
  132164. (Table 03793)
  132165. Call HugeRealMode Server "Get Segment Address Of Server-Management Range" with:
  132166. AL = 05h
  132167. Return: AX = error code (see #03787)
  132168. ES = segment address
  132169. SeeAlso: #03803
  132170. (Table 03794)
  132171. Call HugeRealMode Server "Allocate Memory" function with:
  132172. AL = 06h
  132173. DX = length in KB
  132174. Return: AX = error code (see #03787)
  132175. DX = handle
  132176. EBX = start address of allocated block
  132177. SeeAlso: #03795,#03796
  132178. (Table 03795)
  132179. Call HugeRealMode Server "Deallocate Memory" function with:
  132180. AL = 07h
  132181. DX = handle
  132182. Return: AX = error code (see #03787)
  132183. SeeAlso: #03794,#03796
  132184. (Table 03796)
  132185. Call HugeRealMode Server "Modify Allocated Memory Size" function with:
  132186. AL = 08h
  132187. DX = handle
  132188. BX = new size in KB
  132189. Return: AX = error code (see #03787)
  132190. EBX = new address
  132191. SeeAlso: #03794,#03795
  132192. (Table 03797)
  132193. Call HugeRealMode Server "Load .XMF-file" function with:
  132194. AL = 09h
  132195. ES:BX -> filename (see #03798)
  132196. Return: AX = error code (see #03787)
  132197. ECX = target address
  132198. Notes: memory must be allocated before loading
  132199. .XMF file format (eXtended Memory executable File format) is supported
  132200. by the HugeRealMode server for easier handling of XMS-code.
  132201. The utility CONFXMF converts .OBJ-files (.COM 'tiny' model) to
  132202. .XMF-format
  132203. SeeAlso: #03794
  132204. Format of .XMF program file header:
  132205. Offset Size Description (Table 03798)
  132206. 00h DWORD signature "XMF_"
  132207. 04h WORD length of programs code
  132208. 06h WORD count of 32bit addresses to relocate
  132209. 08h WORD offset to code start (releative to file start) (see #03799)
  132210. 0Ah WORD relocation table
  132211. Note: each word contains a 16bit address, where a relocation has to be
  132212. performed
  132213. SeeAlso: #03797,#03799
  132214. Format of .XMF-file code header:
  132215. Offset Size Description (Table 03799)
  132216. 00h WORD count of exported functions
  132217. 02h N PWORDs 48bit pointers (16bit segment+32bit offset) to each function
  132218. (16bit segment is always zero)
  132219. var start of program's code
  132220. SeeAlso: #03797,#03798
  132221. (Table 03800)
  132222. Call HugeRealMode Server "Set Segment Limits" function with:
  132223. AL = 0Ah
  132224. BL = segment limits (see #03801)
  132225. Return: AX = error code (see #03787)
  132226. SeeAlso: #03793
  132227. Bitfields for HugeRealMode Server segment limits:
  132228. Bit(s) Description (Table 03801)
  132229. 7 CS size: 1=4GB, 0=64KB
  132230. 6-5 not used
  132231. 4 SS size: 1=4GB, 0=64KB
  132232. 3 GS size
  132233. 2 FS size
  132234. 1 ES size
  132235. 0 DS size
  132236. SeeAlso: #03800
  132237. (Table 03802)
  132238. Call HugeRealMode Server "Transfer Memory From DOS To XMS" function with:
  132239. AL = 0Bh
  132240. ES:SI = source address
  132241. EDI = target address
  132242. ECX = length
  132243. Return: AX = error code
  132244. SeeAlso: #03803
  132245. (Table 03803)
  132246. Call HugeRealMode Server "Transfer Memory From XMS To DOS" function with:
  132247. AL = 0Ch
  132248. ESI = source address
  132249. ES:DI = target address
  132250. ECX = length
  132251. Return: AX = error code
  132252. SeeAlso: #03802
  132253. --------d-7801-------------------------------
  132254. INT 78 - TARGA.DEV - GET I/O PORT
  132255. AH = 01h
  132256. Return: DX = current interface board I/O port
  132257. SeeAlso: AH=00h,AH=03h"TARGA"
  132258. --------d-7802-------------------------------
  132259. INT 78 - TARGA.DEV - SET DMA CHANNEL
  132260. AH = 02h
  132261. AL = interface board DMA channel
  132262. Return: CF set on error
  132263. AL = error code (see #03786)
  132264. Note: if this routine is not called, the DMA channel is the driver's default
  132265. (usually 3)
  132266. SeeAlso: AH=00h,AH=03h"TARGA"
  132267. --------d-7803-------------------------------
  132268. INT 78 - TARGA.DEV - GET DMA CHANNEL
  132269. AH = 03h
  132270. Return: AL = current interface board DMA channel
  132271. SeeAlso: AH=01h,AH=02h
  132272. --------d-7804-------------------------------
  132273. INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER
  132274. AH = 04h
  132275. AL = SCSI device number
  132276. Return: CF set on error
  132277. AL = error code (see #03786)
  132278. Note: if this routine is not called, the device number used is the driver's
  132279. default (usually 0)
  132280. SeeAlso: AH=02h,AH=05h
  132281. --------d-7805-------------------------------
  132282. INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER
  132283. AH = 05h
  132284. Return: AL = current SCSI device number
  132285. SeeAlso: AH=03h"TARGA",AH=04h
  132286. --------d-7806-------------------------------
  132287. INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE
  132288. AH = 06h
  132289. AL = new state
  132290. 00h clear early return mode
  132291. 01h set early return mode
  132292. Note: if early return mode is set then SCSI will return with no errors
  132293. when the last DMA transfer is started in a call with AH=13h or AH=14h
  132294. if this routine is not called, early return mode is cleared
  132295. SeeAlso: AH=13h,AH=14h,AH=15h
  132296. --------d-7808-------------------------------
  132297. INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST
  132298. AH = 08h
  132299. Return: CF set on error
  132300. AL = error code (see #03786)
  132301. Note: the SCSI bus is also reset
  132302. SeeAlso: AH=09h
  132303. --------d-7809-------------------------------
  132304. INT 78 - TARGA.DEV - RESET SCSI BUS
  132305. AH = 09h
  132306. Return: AL = error code if carry set (see #03786)
  132307. SeeAlso: AH=08h
  132308. --------d-7810-------------------------------
  132309. INT 78 - TARGA.DEV - SEND SCSI COMMAND
  132310. AH = 10h
  132311. DS:SI -> command bytes (see #03804)
  132312. Return: AH = SCSI status byte
  132313. CF clear if successful
  132314. AL = SCSI message byte
  132315. CF set on error
  132316. AL = error code (see #03786)
  132317. SeeAlso: AH=11h,INT 21/AX=4403h"ST-01"
  132318. Format of SCSI Command:
  132319. Offset Size Description (Table 03804)
  132320. 00h BYTE length of command
  132321. 01h ??? command bytes
  132322. --------d-7811-------------------------------
  132323. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O)
  132324. AH = 11h
  132325. DS:SI -> command bytes (see #03805)
  132326. ES:BX -> data storage area
  132327. CX = number of data bytes to transfer
  132328. Return: AH = SCSI status byte
  132329. CF clear if successful
  132330. AL = SCSI message byte
  132331. CF set on error
  132332. AL = error code (see #03786)
  132333. Note: this command receives data internally one byte at a time
  132334. SeeAlso: AH=10h,AH=13h
  132335. Format of TARGA.DEV SCSI Command:
  132336. Offset Size Description (Table 03805)
  132337. 00h BYTE length of command
  132338. 01h ??? command bytes
  132339. --------d-7812-------------------------------
  132340. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O)
  132341. AH = 12h
  132342. DS:SI -> command bytes (see #03806)
  132343. ES:BX -> data storage area
  132344. CX = number of data bytes to transfer
  132345. Return: AH = SCSI status byte
  132346. CF clear if successful
  132347. AL = SCSI message byte
  132348. CF set on error
  132349. AL = error code (see #03786)
  132350. Note: this command sends data internally one byte at a time
  132351. SeeAlso: AH=14h
  132352. Format of TARGA.DEV SCSI Command:
  132353. Offset Size Description (Table 03806)
  132354. 00h BYTE length of command
  132355. 01h ??? command bytes
  132356. --------d-7813-------------------------------
  132357. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA)
  132358. AH = 13h
  132359. DS:SI -> command bytes (see #03807)
  132360. ES:BX -> data storage area
  132361. DX:CX = number of data bytes to transfer
  132362. Return: AH = SCSI status byte (if early return mode is clear)
  132363. CF clear if successful
  132364. AL = SCSI message byte (if early return mode is clear)
  132365. CF set on error
  132366. AL = error code (see #03786)
  132367. Note: this command receives data using DMA
  132368. SeeAlso: AH=11h,AH=12h
  132369. Format of TARGA.DEV SCSI Command:
  132370. Offset Size Description (Table 03807)
  132371. 00h BYTE length of command
  132372. 01h ??? command bytes
  132373. --------d-7814-------------------------------
  132374. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA)
  132375. AH = 14h
  132376. DS:SI -> command bytes (see #03808)
  132377. ES:BX -> data storage area
  132378. DX:CX = number of data bytes to transfer
  132379. Return: AH = SCSI status byte (if early return mode is clear)
  132380. CF clear if successful
  132381. AL = SCSI message byte (if early return mode is clear)
  132382. CF set on error
  132383. AL = error code (see #03786)
  132384. Note: this command sends data using DMA
  132385. SeeAlso: AH=12h,AH=13h
  132386. Format of TARGA.DEV SCSI Command:
  132387. Offset Size Description (Table 03808)
  132388. 00h BYTE length of command
  132389. 01h ??? command bytes
  132390. --------d-7815-------------------------------
  132391. INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA)
  132392. AH = 15h
  132393. Return: AH = SCSI status byte
  132394. CF clear if successful
  132395. AL = SCSI message byte
  132396. CF set on error
  132397. AL = error code (see #03786)
  132398. Note: if AH=06h was previously called to set the early return mode, this
  132399. function finishes a command AH=13h or AH=14h which returned before
  132400. the last DMA transfer was finished
  132401. SeeAlso: AH=06h,AH=13h,AH=14h
  132402. --------V-79---------------------------------
  132403. INT 79 - AVATAR.SYS - FAST GET KEYSTROKE
  132404. Return: CF set if no keystroke available
  132405. AX = FFFFh
  132406. CF clear if key pressed
  132407. AX = keystroke
  132408. Program: AVATAR.SYS is a CON driver by George Adam Stanislav which interprets
  132409. AVATAR command codes just as ANSI.SYS interprets ANSI commands
  132410. Note: if a keystroke is available, it is removed from the keyboard buffer
  132411. before being returned
  132412. SeeAlso: INT 29,INT 2F/AX=1A00h/BX=4156h
  132413. --------E-79---------------------------------
  132414. INT 79 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ1
  132415. Notes: this vector is overwritten when GO32 starts but is not restored by
  132416. early versions of the extender
  132417. the newest versions of GO32 dynamically allocate the vectors used
  132418. for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  132419. SeeAlso: INT 09,INT 78"GO32",INT 7A"GO32"
  132420. --------d-79---------------------------------
  132421. INT 79 U - ADP-60 IDE adapter - ???
  132422. SeeAlso: INT 78"ADP-60"
  132423. --------E-79---------------------------------
  132424. INT 79 - DBOS DOS Extender
  132425. details not available
  132426. Desc: this interrupt is used by an MS Windows virtual device driver with
  132427. which the DBOS extender communicates when run inside a Windows
  132428. Enhanced Mode DOS box
  132429. SeeAlso: INT 78"DBOS"
  132430. --------A-790001-----------------------------
  132431. INT 79 R - AutoCAD Device Interface - DIGITIZER - INITIALIZE
  132432. AX = 0001h
  132433. BX = interface level (0001h)
  132434. Return: AX = status (0000h initialization failed, 0001h init successful)
  132435. BX = digitizer type
  132436. 0000h relative pointing device (mouse, etc.)
  132437. 0001h digitizing tablet
  132438. CX = digitizer dataflow type
  132439. 0000h continuous
  132440. 0001h pauses between packets
  132441. SeeAlso: AX=0002h,AX=0003h,INT 7A/AX=0001h"AutoCAD"
  132442. --------A-790002-----------------------------
  132443. INT 79 R - AutoCAD Device Interface - DIGITIZER - TERMINATE
  132444. AX = 0002h
  132445. SeeAlso: AX=0001h,AX=0003h
  132446. --------A-790003-----------------------------
  132447. INT 79 R - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS
  132448. AX = 0003h
  132449. Return: AX = status
  132450. 0000h nothing
  132451. 0002h tracking point (no button pressed)
  132452. BX = X coordinate
  132453. CX = Y coordinate
  132454. 0003h picked point (button 0,A,B,C,D pressed)
  132455. BX = X coordinate
  132456. CX = Y coordinate
  132457. 0004h button pick
  132458. BX = button number
  132459. 0005h button and coordinates
  132460. BX = button number
  132461. CX = X coordinate
  132462. DX = Y coordinate
  132463. SeeAlso: AX=0001h,AX=0002h
  132464. --------N-7A---------------------------------
  132465. INT 7A U - Topware Network Operating System - ???
  132466. AL = ???
  132467. ???
  132468. Return: ???
  132469. SeeAlso: INT 21/AX=FF00h"Topware",INT 2F/AX=FF00h
  132470. --------N-7A---------------------------------
  132471. INT 7A - X.PC Packet software interface
  132472. ES:BX -> parameter block
  132473. SeeAlso: INT 60/AX=01FFh
  132474. --------E-7A---------------------------------
  132475. INT 7A - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ2
  132476. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  132477. GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  132478. Notes: this vector is overwritten when GO32 starts but is not restored by
  132479. early versions of the extender
  132480. the newest versions of GO32 dynamically allocate the vectors used
  132481. for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  132482. SeeAlso: INT 0A"IRQ2",INT 79"GO32",INT 7B"GO32"
  132483. --------P-7A---------------------------------
  132484. INT 7A O - PRINDIR - API (moved to INT 7C, then INT 2F/AX=7F00h)
  132485. SeeAlso: INT 7C"PRINDIR",INT 2F/AX=7F00h"PRINDIR"
  132486. --------N-7A---------------------------------
  132487. INT 7A - Novell NetWare - LOW-LEVEL API - Notes
  132488. Note: this interrupt is used for IPX/SPX access in NetWare versions through
  132489. 2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  132490. entry point even though INT 7A still exists. For both INT 7A and
  132491. the FAR entry point, BX contains the function number; IPX is
  132492. sometimes called internally with BX bit 15 set, which causes the
  132493. handler to bypass some initial checks and an optional call to the
  132494. IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h
  132495. (see #02926)
  132496. SeeAlso: INT 2F/AX=7A00h,INT 64"Novell",INT 7A/BX=0000h
  132497. --------N-7A----BX0000-----------------------
  132498. INT 7A - Novell NetWare - IPX Driver - OPEN SOCKET
  132499. BX = 0000h
  132500. AL = socket longevity
  132501. 00h open until close or terminate
  132502. FFh open until close
  132503. DX = socket number (high byte in DL)
  132504. 0000h dynamic allocation
  132505. else socket to open (see #03809)
  132506. Return: AL = return code
  132507. 00h success
  132508. DX = socket number
  132509. FEh socket table full
  132510. FFh socket already open
  132511. Notes: TSRs which need to use sockets should set AL to FFh, non-resident
  132512. programs should normally use AL=00h
  132513. IPX can be configured to support up to 150 open sockets on a
  132514. workstation, and defaults to 20
  132515. this function is supported by Advanced NetWare 1.02+
  132516. SeeAlso: INT 7A/BX=0001h,INT 7A/BX=0004h,INT 7A/BX=0023h
  132517. (Table 03809)
  132518. Values for IPX socket number:
  132519. 0451h File Service (NetWare Core Protocol)
  132520. 0452h Service Advertising Protocol (see #03817)
  132521. 0453h Routing Information Packet (see #03820)
  132522. 0455h NetBIOS Packet
  132523. 0456h diagnostics
  132524. 0457h server serial numbers (labeled "Copy Protection" by Lanalyzer)
  132525. 2222h NetWare Core Protocol
  132526. 4000h-7FFFh used for dynamic allocation
  132527. 4444h Brightwork Development's SiteLock server
  132528. 5555h Brightwork Development's SiteLock client (workstation)
  132529. 8000h-FFFFh assigned by Novell
  132530. 869Ch ID Software's DOOM
  132531. Note: SiteLock is an application metering product using IPX to communicate
  132532. between the application and the license server
  132533. --------N-7A----BX0001-----------------------
  132534. INT 7A - Novell NetWare - IPX Driver - CLOSE SOCKET
  132535. BX = 0001h
  132536. DX = socket number (high byte in DL) (see #03809)
  132537. Notes: also cancels events set by any Event Control Blocks for the socket
  132538. the program must close all open sockets before terminating
  132539. this function is supported by Advanced NetWare 1.02+
  132540. SeeAlso: BX=0000h
  132541. --------N-7A----BX0002-----------------------
  132542. INT 7A - Novell NetWare - IPX Driver - GET LOCAL TARGET
  132543. BX = 0002h
  132544. ES:SI -> target internetwork address (see #03824 at INT 7A/BX=000Bh)
  132545. ES:DI -> 6-byte buffer for local target
  132546. Return: AL = return code
  132547. 00h success
  132548. CX = expected one-way transfer time (clock ticks) for a 576-byte
  132549. packet
  132550. ES:DI -> local target
  132551. FAh unsuccessful (no path to destination)
  132552. Notes: the internetwork address consists of a 4-byte network address followed
  132553. by a 6-byte node address. The local target is only a 6-byte node
  132554. address. If the target is in the same network, the local target is
  132555. just the node address of target; otherwise, the local target is the
  132556. node address of the bridge that leads to the target.
  132557. this function may be called from inside IPX and AES Event Service
  132558. Routines, but not from other interrupt handlers
  132559. this function is supported by Advanced NetWare 1.02+
  132560. SeeAlso: BX=0009h
  132561. --------N-7A----BX0003-----------------------
  132562. INT 7A - Novell NetWare - IPX Driver - SEND PACKET
  132563. BX = 0003h
  132564. ES:SI -> Event Control Block (see #03810,#03811)
  132565. Notes: returns immediately; IPX attempts to send the packet in the background
  132566. this function is supported by Advanced NetWare 1.02+
  132567. this function is nearly identical to BX=000Fh, except that it always
  132568. copies the source address into the IPX header assumed to be at the
  132569. beginning of the first fragment
  132570. SeeAlso: BX=0004h,BX=000Fh,INT 21/AH=EEh"Novell"
  132571. Format of IPX Event Control Block:
  132572. Offset Size Description (Table 03810)
  132573. 00h DWORD Link
  132574. 04h DWORD -> Event Service Routine (00000000h if none) (see #03814)
  132575. 08h BYTE in use flag (see #03812)
  132576. 09h BYTE completion code (see #03813)
  132577. 0Ah WORD (big-endian) socket number (see #03809)
  132578. 0Ch 4 BYTEs IPX workspace
  132579. 10h 12 BYTEs driver workspace
  132580. 1Ch 6 BYTEs immediate local node address
  132581. 22h WORD fragment count
  132582. 24h var fragment descriptors
  132583. Offset Size Description
  132584. 00h DWORD -> fragment data
  132585. 04h WORD size of fragment in bytes.
  132586. Notes: ESR is a far procedure that is called when the ECB has been handled.
  132587. On call, the in use flag is zero if the ECB has been handled,
  132588. non-zero otherwise. If the flag is zero, the completion code holds
  132589. the result of the event.
  132590. the first fragment should start with an IPX header (see #03815)
  132591. all fragments are concatenated and sent in one piece
  132592. node address FFh FFh FFh FFh FFh FFh broadcasts to all nodes
  132593. SeeAlso: #03811
  132594. Format of AES-ECB:
  132595. Offset Size Description (Table 03811)
  132596. 00h DWORD Link
  132597. 04h DWORD ESR (Event Service Routine) address (see #03814)
  132598. 08h BYTE in use flag (see #03812)
  132599. 09h 5 BYTEs AES workspace
  132600. SeeAlso: #03810
  132601. (Table 03812)
  132602. Values for ECB in use flag:
  132603. 00h available
  132604. E0h AES temporary
  132605. F6h \ special IPX/SPX processing for v3.02+
  132606. F7h /
  132607. F8h IPX in critical section
  132608. F9h SPX listening
  132609. FAh processing
  132610. FBh holding
  132611. FCh AES waiting
  132612. FDh AES couting down delay time
  132613. FEh awaiting packet reception
  132614. FFh sending packet
  132615. SeeAlso: #03810,#03811,#03813
  132616. (Table 03813)
  132617. Values for ECB completion code:
  132618. 00h success
  132619. ECh remote terminated connection without acknowledging packet
  132620. EDh abnormal connection termination
  132621. EEh invalid connection ID
  132622. EFh SPX connection table full
  132623. F9h event should not be cancelled
  132624. FAh cannot establish connection with specified destination
  132625. FCh cancelled
  132626. FDh malformed packet
  132627. FEh packet undeliverable
  132628. FFh physical error
  132629. SeeAlso: #03810,#03812
  132630. (Table 03814)
  132631. Values Event Service Routine is called with:
  132632. AL = caller's identity (00h = AES, FFh = IPX)
  132633. ES:SI -> event control block
  132634. interrupts disabled
  132635. Return: all registers preserved
  132636. SeeAlso: #03810,#03815
  132637. Format of IPX header:
  132638. Offset Size Description (Table 03815)
  132639. 00h WORD (big-endian) checksum
  132640. 02h WORD (big-endian) length in bytes of total packet
  132641. 04h BYTE transport control
  132642. 05h BYTE packet type (see #03816)
  132643. 06h 10 BYTEs destination internetwork address
  132644. 10h WORD (big-endian) destination socket
  132645. 12h 10 BYTEs source internetwork address
  132646. 1Ch WORD (big-endian) source socket
  132647. Notes: an IPX packet has the identical format as a Xerox Network Standard
  132648. (XNS) packet
  132649. the application must set packet type, destination address, and
  132650. destination socket; IPX/SPX set the remaining fields
  132651. SeeAlso: #03810,#03826
  132652. (Table 03816)
  132653. Values for IPX packet type:
  132654. 00h unknown packet type
  132655. 01h routing information packet
  132656. 02h echo packet
  132657. 03h error packet
  132658. 04h packet exchange packet (always use this one for data)
  132659. 05h SPX packet (see #03826)
  132660. 11h NetWare Core Protocol (also used by Service Advertising Protocol)
  132661. 14h Propagated Packet (for NetWare), NetBIOS name packet
  132662. 15h-1Eh experimental protocols
  132663. Note: undocumented packet type 14h will cross up to 16 networks deep in
  132664. all directions; as Aaron Martin of Origin Systems discovered, the
  132665. first 64 bytes of the IPX data in such packets should be considered
  132666. reserved, as IPX places the traversed server nodes there.
  132667. Format of Service Advertising Protocol Service Query Packet:
  132668. Offset Size Description (Table 03817)
  132669. 00h 30 BYTEs IPX header
  132670. 1Eh WORD (big-endian) query type
  132671. 0001h general find service
  132672. 0003h find nearest server
  132673. 20h WORD (big-endian) server type
  132674. (see #01890 at INT 21/AH=E3h"CONNECTION CONTROL")
  132675. SeeAlso: #03818
  132676. Format of Service Advertising Protocol Server Identification Packet:
  132677. Offset Size Description (Table 03818)
  132678. 00h 30 BYTEs IPX header
  132679. 1Eh WORD (big-endian) response type
  132680. 0002h general service
  132681. 0004h nearest service
  132682. 20h 64N BYTEs server entries (1-7) (see #03819)
  132683. SeeAlso: #03817,#03820
  132684. Format of SAP server entry:
  132685. Offset Size Description (Table 03819)
  132686. 00h WORD (big-endian) server type
  132687. (see #01890 at INT 21/AH=E3h"CONNECTION CONTROL")
  132688. 02h 48 BYTEs ASCIZ server name
  132689. 32h 2 WORDs (big-endian) network number
  132690. 34h 3 WORDs (big-endian) node number
  132691. 3Ch WORD (big-endian) socket number
  132692. 3Eh WORD (big-endian) number of hops between caller and server
  132693. 10h = Server Shutdown Advertising Packet
  132694. SeeAlso: #03818
  132695. Format of IPX Routing Information packet:
  132696. Offset Size Description (Table 03820)
  132697. 00h 30 BYTEs IPX header
  132698. 1Eh WORD operation (0001h request, 0002h response)
  132699. 20h 8N BYTEs network entries (1-50) (see #03821)
  132700. SeeAlso: #03818
  132701. Format of RIP network entry:
  132702. Offset Size Description (Table 03821)
  132703. 00h DWORD network number (FFFFFFFFh = general request)
  132704. 04h WORD (response) number of hops
  132705. 06h WORD (response) number of clock ticks to reach destination
  132706. --------N-7A----BX0004-----------------------
  132707. INT 7A - Novell NetWare - IPX Driver - LISTEN FOR PACKET
  132708. BX = 0004h
  132709. ES:SI -> Event Control Block (see BX=0003h)
  132710. Return: AL = status
  132711. 00h successful
  132712. FFh no listening socket for packet
  132713. Desc: this function provides IPX with an ECB for receiving an IPX packet, but
  132714. does not wait for a packet to arrive
  132715. Notes: the application must open a socket and initialize the ECB's ESR
  132716. address, socket number, fragment count, and fragment descriptor
  132717. fields before invoking this function
  132718. there is no limit on the number of ECBs which may simultaneously be
  132719. listening on a socket
  132720. this function is supported by Advanced NetWare 1.02+
  132721. SeeAlso: BX=0000h,BX=0003h
  132722. --------N-7A----BX0005-----------------------
  132723. INT 7A - Novell NetWare - IPX Driver - SCHEDULE IPX EVENT
  132724. BX = 0005h
  132725. AX = delay time in clock ticks
  132726. ES:SI -> Event Control Block (see BX=0003h)
  132727. Note: this function is supported by Advanced NetWare 1.02+
  132728. SeeAlso: BX=0006h,BX=0007h,BX=0008h
  132729. --------N-7A----BX0006-----------------------
  132730. INT 7A - Novell NetWare - IPX Driver - CANCEL EVENT
  132731. BX = 0006h
  132732. ES:SI -> Event Control Block (see BX=0003h)
  132733. Return: AL = return code (see #03822)
  132734. Notes: cannot cancel packets which the node's driver has already sent
  132735. this function is supported by Advanced NetWare 1.02+
  132736. SeeAlso: BX=0005h
  132737. (Table 03822)
  132738. Values for IPX return code:
  132739. 00h success
  132740. F9h event in use
  132741. FCh event cancelled
  132742. FFh unsuccessful, event not in use, or unrecognized ECB flag
  132743. --------N-7A----BX0007-----------------------
  132744. INT 7A - Novell NetWare - IPX Driver - SCHEDULE SPECIAL EVENT
  132745. BX = 0007h
  132746. AX = delay time
  132747. ES:SI -> Event Control Block (see BX=0003h)
  132748. Note: this function is supported by Advanced NetWare 1.02+
  132749. SeeAlso: BX=0006h
  132750. --------N-7A----BX0008-----------------------
  132751. INT 7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER
  132752. BX = 0008h
  132753. Return: AX = interval marker in clock ticks (big-endian???)
  132754. Notes: may be used to measure the time elapsed between two events, up to one
  132755. hour
  132756. this function is supported by Advanced NetWare 1.02+
  132757. SeeAlso: BX=0005h
  132758. --------N-7A----BX0009-----------------------
  132759. INT 7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS
  132760. BX = 0009h
  132761. ES:SI -> buffer for own internetwork address (see #03823)
  132762. Return: ES:SI buffer filled
  132763. SI destroyed
  132764. Note: this function is supported by Advanced NetWare 1.02+
  132765. SeeAlso: BX=0002h,BX=000Bh
  132766. Format of IPX internetwork address:
  132767. Offset Size Description (Table 03823)
  132768. 00h 4 BYTEs (big-endian) network number
  132769. 04h 6 BYTEs (big-endian) node number within network
  132770. --------N-7A----BX000A-----------------------
  132771. INT 7A - Novell NetWare - IPX Driver - RELINQUISH CONTROL
  132772. BX = 000Ah
  132773. Desc: this call indicates that the application is idle and permits the IPX
  132774. driver to do some work
  132775. Note: this function is supported by Advanced NetWare 1.02+
  132776. SeeAlso: INT 15/AX=1000h,INT 21/AH=89h,INT 2F/AX=1680h
  132777. --------N-7A----BX000B-----------------------
  132778. INT 7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET
  132779. BX = 000Bh
  132780. ES:SI -> internetwork address (see #03824)
  132781. Return: nothing
  132782. Notes: this function permits the network software on the remote machine to
  132783. remove any virtual connection with the calling machine
  132784. only use in point-to-point networks
  132785. should never be called from within an Event Service Routine
  132786. this function is supported by Advanced NetWare 1.02+
  132787. SeeAlso: BX=0002h,BX=0009h
  132788. Format of IPX internetwork address:
  132789. Offset Size Description (Table 03824)
  132790. 00h 4 BYTEs (big-endian) destination network
  132791. 04h 6 BYTEs (big-endian) destination node
  132792. 0Ah 2 BYTEs (big-endian) destination socket
  132793. --------N-7A----BX000C-----------------------
  132794. INT 7A U - Novell NetWare - IPX Driver - internal - INITIALIZE NETWORK ADDRESS
  132795. BX = 000Ch
  132796. CX:DX = global network address (see INT 7A/BX=0002h)
  132797. ES:DI -> "OSINCRITICALSECTION" flag
  132798. DS:SI -> current mode for socket
  132799. Note: the address cannot be changed once it has been initialized
  132800. SeeAlso: INT 7A/BX=0024h
  132801. --------N-7A----BX000D-----------------------
  132802. INT 7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE
  132803. BX = 000Dh
  132804. Return: AX = maximum packet size
  132805. CX = retry count
  132806. SeeAlso: BX=001Ah
  132807. --------N-7A----BX000E-----------------------
  132808. INT 7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS
  132809. BX = 000Eh
  132810. Return: nothing
  132811. Notes: this function terminates all sockets opened with the current mode; this
  132812. may be intended for future enhancements as the socket mode never
  132813. changes in v2.15
  132814. called by the NetWare shell if a program terminates
  132815. --------N-7A----BX000F-----------------------
  132816. INT 7A - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET
  132817. BX = 000Fh
  132818. ES:SI -> Event Control Block (see #03810 at BX=0003h)
  132819. IPX header's checksum field must be set to FFFFh (see #03815)
  132820. IPX header's total-length field must be set
  132821. Note: nearly identical to function 0003h, but does not copy address into
  132822. the first fragment, and bypasses normal error checking
  132823. SeeAlso: BX=0003h
  132824. --------N-7A----BX0010-----------------------
  132825. INT 7A - Novell NetWare - SPX Driver - INSTALLATION CHECK
  132826. BX = 0010h
  132827. AL = 00h
  132828. Return: AL = status
  132829. 00h if SPX not installed
  132830. F0h if IPX not installed
  132831. FFh if SPX loaded
  132832. BH = SPX major version
  132833. BL = SPX minor version
  132834. CX = maximum SPX connections
  132835. DX = SPX connections available
  132836. Notes: this function is supported by Advanced NetWare 2.1+
  132837. this interrupt is used for IPX/SPX access in NetWare versions through
  132838. 2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  132839. entry point even though INT 7A still exists. For both INT 7A and
  132840. the FAR entry point, BX contains the function number
  132841. IPX is sometimes called internally with BX bit 15 set, which causes the
  132842. entry point handler to bypass some checks and an optional call to
  132843. the IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h
  132844. (see #02926)
  132845. SeeAlso: BX=0015h
  132846. --------N-7A----BX0011-----------------------
  132847. INT 7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION
  132848. BX = 0011h
  132849. AL = retry count
  132850. AH = watchdog flag
  132851. ES:SI -> Event Control Block (see #03810 at BX=0003h)
  132852. Return: AL = status (00h,EFh,FDh,FFh) (see #03825)
  132853. DX = assigned connection ID number
  132854. Desc: attempt to establish a connection with a listening socket
  132855. Notes: there should always be at least two SPX ECB's listening to a socket, so
  132856. that NetWare can perform its internal packet exchanges
  132857. the first fragment should start with a SPX header (see #03826). Fill
  132858. in all destination addresses.
  132859. this function is supported by Advanced NetWare 2.1+
  132860. SeeAlso: BX=0000h,BX=0012h,BX=0013h,BX=0014h,BX=0015h
  132861. (Table 03825)
  132862. Values for SPX function status:
  132863. 00h attempting to contact destination socket
  132864. EEh no such connection
  132865. EFh local connection table full
  132866. FDh buffer size not 42 or fragment count not 1
  132867. FFh sending socket not open
  132868. Format of SPX header:
  132869. Offset Size Description (Table 03826)
  132870. 00h WORD (big-endian) checksum
  132871. 02h WORD (big-endian) length in bytes of total packet
  132872. 04h BYTE transport control
  132873. 05h BYTE packet type (see #03816 at INT 7A/BX=0003h)
  132874. 06h 10 BYTEs destination internet address
  132875. 10h WORD (big-endian) destination socket
  132876. 12h 10 BYTEs source internet address
  132877. 1Ch WORD (big-endian) source socket
  132878. 1Eh BYTE connection control (see #03827)
  132879. 1Fh BYTE datastream type
  132880. FEh terminate connection request packet
  132881. FFh terminate connection acknowledgement packet
  132882. other user-defined, ignored by SPX
  132883. 20h WORD (big-endian) source connection ID
  132884. 22h WORD (big-endian) destination connection ID
  132885. 24h WORD (big-endian) sequence number
  132886. 26h WORD (big-endian) acknowledge number
  132887. 28h WORD (big-endian) allocation number
  132888. SeeAlso: #03815
  132889. Bitfields for SPX connection control:
  132890. Bit(s) Description (Table 03827)
  132891. 3-0 unused???
  132892. 4 end of message
  132893. 5 reserved
  132894. 6 acknowledgement required
  132895. 7 system packet
  132896. --------N-7A----BX0012-----------------------
  132897. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX CONNECTION
  132898. BX = 0012h
  132899. AH = watchdog flag (00h disabled, 01h enabled)
  132900. AL = retry count (00h = default)
  132901. ES:SI -> Event Control Block (see #03810 at BX=0003h)
  132902. Return: nothing
  132903. Notes: there should always be at least two SPX ECB's listening to a socket, so
  132904. that NetWare can perform its internal packet exchanges
  132905. this function is supported by Advanced NetWare 2.1+
  132906. SeeAlso: BX=0011h,BX=0013h,BX=0014h
  132907. --------N-7A----BX0013-----------------------
  132908. INT 7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION
  132909. BX = 0013h
  132910. DX = connection ID to terminate
  132911. ES:SI -> Event Control Block (see #03810 at BX=0003h)
  132912. Note: this function is supported by Advanced NetWare 2.1+
  132913. SeeAlso: BX=0011h,BX=0012h,BX=0014h
  132914. --------N-7A----BX0014-----------------------
  132915. INT 7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION
  132916. BX = 0014h
  132917. DX = connection ID to terminate
  132918. Return: nothing
  132919. Notes: this function is supported by Advanced NetWare 2.1+
  132920. this function does not tell the other side that the connection has been
  132921. terminated
  132922. also aborts any outstanding Establish Connection, Terminate Connection,
  132923. and Send Sequenced Packet commands
  132924. SeeAlso: BX=0011h,BX=0013h
  132925. --------N-7A----BX0015-----------------------
  132926. INT 7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS
  132927. BX = 0015h
  132928. DX = connection ID
  132929. ES:SI -> status buffer (see #03828)
  132930. Return: AL = return code (00h,EEh) (see also #03825)
  132931. 00h connection still valid
  132932. ES:SI -> status buffer filled
  132933. Note: this function is supported by Advanced NetWare 2.1+
  132934. SeeAlso: BX=0010h,BX=0011h
  132935. Format of SPX status buffer:
  132936. Offset Size Description (Table 03828)
  132937. 00h BYTE connection state
  132938. 01h waiting to establish connection
  132939. 02h starting (attempting to create connection)
  132940. 03h connection established
  132941. 04h terminating
  132942. 01h BYTE watchdog flag
  132943. bit 0: used internally by SPX
  132944. bit 1: SPX watchdog is monitoring connection
  132945. bits 2-7 used internally by SPX
  132946. 02h WORD (big-endian) source connection ID
  132947. 04h WORD (big-endian) destination connection ID
  132948. 06h WORD (big-endian) sequence number of next packet sent
  132949. 08h WORD (big-endian) acknowledge number, expected sequence number of
  132950. next received packet
  132951. 0Ah WORD (big-endian) maximum sequence number remote SPX may send
  132952. without ACK from local SPX
  132953. 0Ch WORD (big-endian) remote acknowledge number, next sequence number
  132954. remote SPX expects to receive
  132955. 0Eh WORD (big-endian) remote allocation number, maximum sequence number
  132956. local SPX may send
  132957. 10h WORD (big-endian) connection socket
  132958. 12h 6 BYTEs immediate node address--bridge on local network to destination
  132959. 18h 10 BYTEs destination internetwork address (see #03824 at INT 7A/BX=000Bh)
  132960. 22h WORD (big-endian) retransmit count
  132961. 24h WORD (big-endian) estimated roundtrip delay
  132962. 26h WORD (big-endian) retransmitted packets
  132963. 28h WORD (big-endian) suppressed packets
  132964. 2Ah 12 BYTEs ??? (v2.15)
  132965. --------N-7A----BX0016-----------------------
  132966. INT 7A - Novell NetWare - SPX Driver - SEND SPX PACKET
  132967. BX = 0016h
  132968. DX = connection ID
  132969. ES:SI -> Event Control Block (see BX=0003h)
  132970. Notes: this function is supported by Advanced NetWare 2.1+
  132971. CX may need to be 0001h ???
  132972. SeeAlso: BX=0011h,BX=0017h
  132973. --------N-7A----BX0017-----------------------
  132974. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX PACKET
  132975. BX = 0017h
  132976. DX = connection ID (unused in v2.15)
  132977. ES:SI -> Event Control Block (see BX=0003h)
  132978. Notes: this function is supported by Advanced NetWare 2.1+
  132979. CX may need to be 0001h ???
  132980. SeeAlso: BX=0011h,BX=0016h
  132981. --------N-7A----BX0018-----------------------
  132982. INT 7A U - Novell NetWare - IPX Driver - internal - ADD DIAGNOSTIC ELEMENT
  132983. BX = 0018h
  132984. ES:SI -> diagnostic element (see #03829) to be added to Diagnostic Queue
  132985. Note: this function is supported on file servers only under v2.15; v3.02 also
  132986. supports it on workstations
  132987. SeeAlso: BX=0019h
  132988. Format of IPX diagnostic element:
  132989. Offset Size Description (Table 03829)
  132990. 00h DWORD pointer to next diagnostic element
  132991. 04h DWORD pointer to function for ???
  132992. 08h DWORD pointer to function for ???
  132993. --------N-7A----BX0019-----------------------
  132994. INT 7A U - Novell NetWare - IPX Driver - internal - CANCEL DIAGNOSTIC ELEMENT
  132995. BX = 0019h
  132996. ES:SI -> diagnostic element (see BX=0018h) to be removed
  132997. Note: this function is supported on file servers only under v2.15; v3.02 also
  132998. supports it on workstations
  132999. SeeAlso: BX=0018h
  133000. --------N-7A----BX001A-----------------------
  133001. INT 7A - Novell NetWare - IPX Driver - GET DRIVER MAXIMUM PACKET SIZE
  133002. BX = 001Ah
  133003. Return: AX = maximum packet size with preamble (at least 576 bytes)
  133004. CX = IPX retry count
  133005. DS,FLAGS preserved
  133006. SeeAlso: BX=000Dh
  133007. --------N-7A----BX001B-----------------------
  133008. INT 7A U - Novell NetWare - IPX Driver - INTERNAL
  133009. BX = 001Bh
  133010. ???
  133011. Return: ???
  133012. Notes: this function is supported on file servers only under v2.15; v3.02 also
  133013. supports it on workstations
  133014. used by NetWare Access Server, which may call INT 15/AX=1117h with
  133015. BX=0000h in some cases (it uses a modified DESQview)
  133016. --------N-7A----BX001C-----------------------
  133017. INT 7A U - Novell NetWare - NetWare Access Server - GET ???
  133018. BX = 001Ch
  133019. Return: AX = length of ???
  133020. ES:BX -> ???
  133021. Notes: these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  133022. SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Dh,INT 7A/BX=001Eh
  133023. --------N-7A----BX001D-----------------------
  133024. INT 7A U - Novell NetWare - NetWare Access Server - GET ??? ECB AND SOCKET
  133025. BX = 001Dh
  133026. Return: DX = socket number chosen by IPX
  133027. ES:SI -> ECB in IPX's code segment (will be listening)
  133028. BX corrupted
  133029. Notes: these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  133030. SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Ch,INT 7A/BX=001Eh
  133031. --------N-7A----BX001E-----------------------
  133032. INT 7A U - Novell NetWare - NetWare Access Server - GET ??? ECB
  133033. BX = 001Eh
  133034. Return: ES:SI -> ECB
  133035. BX corrupted
  133036. Notes: these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  133037. SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Ch,INT 7A/BX=001Dh
  133038. --------N-7A----BX001F-----------------------
  133039. INT 7A - Novell NetWare - IPXODI v2.12+ - GET IPX INFORMATION
  133040. BX = 001Fh
  133041. DX = 0000h
  133042. Return: AX = ???
  133043. BX:CX -> ??? entry point (see #03830) (undocumented)
  133044. DX = feature flags
  133045. bit 0: IPXODI rather than dedicated IPX
  133046. bit 1: checksumming functions 0020h-0022h supported
  133047. ES:SI -> array of words containing used socket number (undocumented);
  133048. 0000h ends array
  133049. all other registers except DS and FLAGS may be destroyed
  133050. Note: IPXODI v2.12 is distributed as part of the Personal NetWare system
  133051. bundled with Novell DOS 7
  133052. SeeAlso: BX=0020h,INT 2F/AX=7A2Fh
  133053. (Table 03830)
  133054. Call IPXODI entry point with:
  133055. ES:SI -> ECB??? (offset 24h is far pointer to ??? data)
  133056. --------N-7A----BX0020-----------------------
  133057. INT 7A - Novell NetWare - IPXODI v2.12+ - SEND WITH CHECKSUM
  133058. BX = 0020h
  133059. ES:SI -> ECB (see #03810 at INT 7A/BX=0003h)
  133060. Return: DS,FLAGS preserved
  133061. BX,BP corrupted (documented as potentially destroying all other regs)
  133062. Desc: generate a checksum for the packet data and store it in the IPX
  133063. checksum field before transmitting the packet
  133064. SeeAlso: BX=001Fh,BX=0021h,BX=0022h,INT 2F/AX=7A2Fh
  133065. --------N-7A----BX0021-----------------------
  133066. INT 7A - Novell NetWare - IPXODI v2.12+ - IPX GENERATE CHECKSUM
  133067. BX = 0021h
  133068. ES:SI -> ECB data (see #03810 at INT 7A/BX=0003h)
  133069. Return: ES,DS,SI preserved
  133070. BX,BP corrupted, all other registers potentially destroyed
  133071. Notes: the checksum and TransportControl fields of the IPX packet are updated
  133072. this function enables interrupts and is fully reentrant
  133073. SeeAlso: BX=001Fh,BX=0020h,BX=0022h,INT 2F/AX=7A2Fh
  133074. --------N-7A----BX0022-----------------------
  133075. INT 7A - Novell NetWare - IPXODI v2.12+ - IPX VERIFY CHECKSUM
  133076. BX = 0022h
  133077. ES:SI -> ECB data (see #03810 at INT 7A/BX=0003h)
  133078. Return: AX = status (0000h checksum matches)
  133079. DS,ES,SI preserved
  133080. BX,BP corrupted, all other registers potentially destroyed
  133081. Note: this function enables interrupts and is fully reentrant
  133082. SeeAlso: BX=001Fh,BX=0020h,BX=0021h,INT 2F/AX=7A2Fh
  133083. --------N-7A----BX0023-----------------------
  133084. INT 7A - Novell NetWare - IPXODI v2.12+ - OPEN LOOK-AHEAD SOCKET
  133085. BX = 0023h
  133086. DX = socket number (0000h for dynamic allocation)
  133087. ES:SI -> Look Ahead handler (see #03831)
  133088. BP = desired lookahead size (0000h-0080h)
  133089. Return: AL = status
  133090. 00h successful
  133091. DX = assigned socket number (big-endian)
  133092. FEh maximum number of sockets already open
  133093. FFh specific socket already opened by another application
  133094. DS,FLAGS preserved
  133095. all other registers may be destroyed
  133096. Notes: the socket will always be long-lived, and must thus be explicitly
  133097. closed with INT 7A/BX=0001h before the Look Ahead handler code is
  133098. removed from memory (i.e. the program terminates)
  133099. this function is only supported if INT 2F/AX=7A00h returns ES:BX
  133100. pointing at an IPX version greater than 3.30
  133101. the desired lookahead size is the smallest-size packet (including IPX
  133102. header) that should be passed to the lookahead handler when it
  133103. arrives
  133104. SeeAlso: INT 7A/BX=0000h,INT 7A/BX=0001h
  133105. (Table 03831)
  133106. Call IPX Look-Ahead handler with:
  133107. AX = packet's destination socket
  133108. DS:SI -> look-ahead structure (see #03010 at INT 2F/AX=C000h"LSL")
  133109. DF clear
  133110. interrupt disabled (must remain disabled)
  133111. Return: AX = packet use
  133112. 0000h application want packet
  133113. ES:SI -> ODI ECB (see #03011 at INT 2F/AX=C000h"LSL")
  133114. 8001h application does not want packet
  133115. ZF set if AX=0000h
  133116. DS,DI,BP,SS,SP preserved
  133117. interrupts disabled
  133118. --------N-7A----BX0024-----------------------
  133119. INT 7A U - Novell NetWare - IPXODI v2.20+ - SET INTERNETWORK ADDRESS
  133120. BX = 0024h
  133121. ES:SI -> buffer containing internetwork address (see #03824)
  133122. Return: BX,CX,SI,DI,ES destroyed
  133123. Note: this function differs from INT 7A/BX=000Ch in that it unconditionally
  133124. sets the address
  133125. SeeAlso: INT 7A/BX=000Ch
  133126. --------A-7A0001-----------------------------
  133127. INT 7A R - AutoCAD Device Interface - DISPLAY - INITIALIZE (INIT1)
  133128. AX = 0001h
  133129. BX = configuration
  133130. CX = interface level (0001h)
  133131. Return: AX = status
  133132. 0000h initialization failed
  133133. 0001h pre-v4.0 driver initialized successfully
  133134. 0003h post-v3.1 driver initialized successfully (driver truncates
  133135. excessivly long packets)
  133136. BX = width of graphics area in pixels, or 0000h if using packet
  133137. communication
  133138. DX:CX -> packet-mode entry point (see #03832)
  133139. SeeAlso: AX=0001h,AX=0200h,AX=07D0h,INT 61/AX=0007h"OPTIMA",INT 78"AutoCAD"
  133140. SeeAlso: INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD",INT 7C"AutoShade"
  133141. (Table 03832)
  133142. Call packet-mode entry point with:
  133143. STACK: DWORD pointer to request packet (see #03833)
  133144. WORD length of packet
  133145. Format of request packet:
  133146. Offset Size Description (Table 03833)
  133147. 00h WORD function number (00h-45h for Compaq VGADI41.EXE)
  133148. --------A-7A0200BX0000-----------------------
  133149. INT 7A R - AutoCAD Device Interface - RENDERING DEVICE - INITIALIZE (RDLINKUP)
  133150. AX = 0200h
  133151. BX = 0000h
  133152. CX = interface level (0001h)
  133153. Return: BX = 0000h (driver uses packet communication)
  133154. DX:CX -> packet-mode entry point (see #03832)
  133155. SeeAlso: AX=0001h"AutoCAD",INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD"
  133156. --------I-7A04-------------------------------
  133157. INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE
  133158. AH = 04h
  133159. ???
  133160. Return: ???
  133161. SeeAlso: AH=06h
  133162. --------I-7A06-------------------------------
  133163. INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE
  133164. AH = 06h
  133165. ???
  133166. Return: ???
  133167. SeeAlso: AH=04h
  133168. ----------7A07D0-----------------------------
  133169. INT 7A R - AutoCAD Device Interface - Compaq VGADI41.EXE - GET ENTRY POINT
  133170. AX = 07D0h
  133171. Return: AX = ??? (0003h)
  133172. BX = 0000h
  133173. DX:CX -> ADI entry point (see AX=0001h)
  133174. SeeAlso: AX=0001h
  133175. --------I-7A09--BX8020-----------------------
  133176. INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES
  133177. AH = 09h
  133178. BX = 8020h (synchronous request)
  133179. CX = 0000h
  133180. DX = ID of session manager (SESSMGR)
  133181. AL = service (see #03834)
  133182. ES:DI -> control block
  133183. Return: ???
  133184. (Table 03834)
  133185. Values for service:
  133186. 01h get session ID
  133187. 02h get session info
  133188. 04h dettach from session
  133189. 05h attach to session
  133190. 06h get list of windows available
  133191. 07h get environment of window
  133192. 08h get 'PIF' (program information file) info
  133193. 0Ah get base window ID
  133194. 0Bh get cursor info
  133195. --------I-7A09--BX8020-----------------------
  133196. INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES
  133197. AH = 09h
  133198. BX = 8020h (synchronous request)
  133199. CX = 0000h
  133200. DX = ID of keyboard manager
  133201. AL = service number (see #03835)
  133202. ES:DI -> control block
  133203. Return: ???
  133204. (Table 03835)
  133205. Values for 3270 Workstation Program keyboard service:
  133206. 01h connect to keyboard
  133207. 02h disconnect from keyboard
  133208. 03h read from keyboard
  133209. 04h send keystroke to session
  133210. 05h disable input
  133211. 06h enable input
  133212. 07h update status code
  133213. --------I-7A09--BX8020-----------------------
  133214. INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES
  133215. AH = 09h
  133216. BX = 8020h (synchronous request)
  133217. CX = 00FFh
  133218. DX = ID of window service controller (WSCTRL)
  133219. AL = service number (see #03836)
  133220. ES:DI -> control block
  133221. Return: ???
  133222. (Table 03836)
  133223. Values for 3270 Workstation Program window service:
  133224. 01h connect to WS control
  133225. 02h disconnect from WS control
  133226. 03h add a window
  133227. 04h change window's position on screen
  133228. 05h change window's size
  133229. 06h change window's color
  133230. 07h change window's position in the presentation space
  133231. 08h hide/unhide toggle
  133232. 09h enlarge/reduce toggle
  133233. 0Ah change screen background color
  133234. 0Bh get window's position on screen
  133235. 0Ch get window's size
  133236. 0Dh get window's color
  133237. 0Eh get window's position in the presentation space
  133238. 0Fh determine whether hidden
  133239. 10h determine whether enlarged
  133240. 11h get background color
  133241. 12h get window names
  133242. 13h delete all windows from profile
  133243. 14h pick active window
  133244. 15h redraw screen
  133245. 16h redraw window
  133246. 17h delete a window from profile
  133247. 18h get active window
  133248. 19h get active screen
  133249. 1Ah get window data
  133250. 1Bh change window data
  133251. 1Ch select active screen
  133252. --------I-7A09--BX8020-----------------------
  133253. INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES
  133254. AH = 09h
  133255. BX = 8020h
  133256. CX = 00FFh
  133257. DX = ID of PCPSM
  133258. AL = service
  133259. 01h define presentation space
  133260. 02h delete presentation space
  133261. 03h display presentation space
  133262. 04h position cursor in presentation space
  133263. 05h change default presentation space
  133264. ES:DI -> control block
  133265. Return: ???
  133266. --------I-7A09--BX8020-----------------------
  133267. INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION
  133268. AH = 09h
  133269. BX = 8020h
  133270. CX = 00FFh
  133271. DX = ID of 3270EML
  133272. AL = service
  133273. 01h connect
  133274. 02h disconnect
  133275. ES:DI -> control block
  133276. Return: ???
  133277. --------I-7A09--BX8020-----------------------
  133278. INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA
  133279. AH = 09h
  133280. BX = 8020h
  133281. CX = 00FFh
  133282. DX = ID of OIAM
  133283. AL = service
  133284. 01h read Operator Information Area
  133285. 02h read OIA subset
  133286. ES:DI -> control block
  133287. Return: ???
  133288. Note: the OIA is the 25th line on the Host session
  133289. --------I-7A09--BX8020-----------------------
  133290. INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA
  133291. AH = 09h
  133292. BX = 8020h
  133293. CX = 00FFh
  133294. DX = ID of XLATE
  133295. AL = service
  133296. 01h translate from host characters to ASCII and vice versa
  133297. (determined by control block byte 11)
  133298. ES:DI -> control block
  133299. Return: ???
  133300. --------I-7A09--BX8020-----------------------
  133301. INT 7A - IBM 3270 Workstation Program API - COPY SERVICE
  133302. AH = 09h
  133303. BX = 8020h
  133304. CX = 00FFh
  133305. DX = ID of copy service
  133306. AL = service
  133307. 01h copy string from one presentation space to another
  133308. 02h copy block from one presentation space to another
  133309. 03h connect to PC session for copy
  133310. 04h disconnect PC session from copy
  133311. ES:DI -> control block
  133312. Return: ???
  133313. --------I-7A09--BX8020-----------------------
  133314. INT 7A - IBM 3270 Workstation Program API - Multi-DOS
  133315. AH = 09h
  133316. BX = 8020h
  133317. CX = 00FFh
  133318. ES:DI -> control block
  133319. DX = ID of INDJQRY
  133320. get environment size
  133321. = ID of INDJASY
  133322. request DOS functions from workstation
  133323. = ID of MEMORY
  133324. AL = function
  133325. 01h allocate memory
  133326. 02h deallocate memory
  133327. 03h modify allocated size
  133328. Return: ???
  133329. --------I-7A09-------------------------------
  133330. INT 7A - IBM 3270 Workstation Program API - HOST SERVICES
  133331. AH = 09h
  133332. BX = request type (4000h async, 8028h synchronous)
  133333. CX = 0000h
  133334. DX = ID of MFIC
  133335. AL = service (see #03837)
  133336. ES:DI -> control block
  133337. (Table 03837)
  133338. Values for 3270 Workstation Program host service:
  133339. 01h connect to host
  133340. 02h disconnect from host
  133341. 03h read DFT structured data from host
  133342. 04h write DFT structured data to host
  133343. 05h create a host buffer
  133344. --------I-7A13-------------------------------
  133345. INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE
  133346. AH = 13h
  133347. ???
  133348. Return: ???
  133349. ----------7A7A-------------------------------
  133350. INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE
  133351. AH = 7Ah
  133352. ???
  133353. Return: AX = status
  133354. 0000h success
  133355. 000Eh undefined function code
  133356. Range: unknown, selected by device driver commandline arguments
  133357. --------I-7A81-------------------------------
  133358. INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME
  133359. AH = 81h
  133360. ES:DI -> 8-char blank-padded gate name (see #03838)
  133361. Return: DX = gate ID
  133362. (Table 03838)
  133363. Values for 3270 Workstation Program gate name:
  133364. "SESSMGR "
  133365. "KEYBOARD"
  133366. "WSCTRL "
  133367. "MFIC "
  133368. "PCPSM "
  133369. "3270EML "
  133370. "COPY "
  133371. "XLATE "
  133372. "OIAM "
  133373. "MEMORY "
  133374. "INDJQRY "
  133375. "INDJASY "
  133376. --------I-7A83-------------------------------
  133377. INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS
  133378. AH = 83h
  133379. ???
  133380. Return: ???
  133381. --------I-7AFDCB-----------------------------
  133382. INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK
  133383. AX = FDCBh
  133384. Return: DX:AX -> PCS/3270 signature block if loaded (see #03839)
  133385. Format of Personal Communications/3270 signature block:
  133386. Offset Size Description (Table 03839)
  133387. 04h WORD PCS/3270 signature (5741h)
  133388. 06h WORD version (0501h = PCS/3270 v1.0)
  133389. --------I-7AFE01-----------------------------
  133390. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  133391. AX = FE01h
  133392. ???
  133393. Return: ???
  133394. SeeAlso: AX=FE02h
  133395. --------I-7AFE02-----------------------------
  133396. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  133397. AX = FE02h
  133398. ???
  133399. Return: ???
  133400. SeeAlso: AX=FE01h
  133401. --------I-7AFF01-----------------------------
  133402. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  133403. AX = FF01h
  133404. ES:DI -> API function handler routine
  133405. Return: CX = 1200h
  133406. SeeAlso: AX=FF02h,AX=FF03h
  133407. --------I-7AFF02-----------------------------
  133408. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION
  133409. AX = FF02h
  133410. Return: CX = 1200h
  133411. SeeAlso: AX=FF01h
  133412. --------I-7AFF03-----------------------------
  133413. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  133414. AX = FF03h
  133415. ES:DI -> send/receive function handler routine
  133416. Return: CX = 1200h
  133417. SeeAlso: AX=FF01h
  133418. --------I-7AFF04-----------------------------
  133419. INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ???
  133420. AX = FF04h
  133421. ES:DI -> ???
  133422. Return: CX = 1200h
  133423. --------f-7B---------------------------------
  133424. INT 7B - Btrieve API (single user)
  133425. DS:DX -> 38-byte parameter record (see #03840)
  133426. Return: return code field set
  133427. Note: Btrieve sets low byte of vector to 33h; this serves as the installation
  133428. check
  133429. SeeAlso: INT 2F/AX=AB01h,INT 7F/AX=0200h
  133430. Format of Btrieve parameter record:
  133431. Offset Size Description (Table 03840)
  133432. 00h DWORD pointer to data buffer
  133433. 04h WORD data buffer length
  133434. 06h DWORD pointer to 90-byte record containing positioning info
  133435. (should be same for all calls for same file)
  133436. 0Ah DWORD pointer to 38-byte FCB info buffer
  133437. (should be same for all calls for same file)
  133438. 0Eh WORD function code (see #03841)
  133439. 10h DWORD pointer to file name/key buffer
  133440. 14h BYTE key length
  133441. 15h BYTE key number
  133442. 16h DWORD pointer to status code (see #03842)
  133443. 1Ah WORD interface code (version specific)
  133444. 6176h version 5.10
  133445. (Table 03841)
  133446. Values for function code:
  133447. 00h open
  133448. 01h close
  133449. 02h insert
  133450. 03h update
  133451. 04h delete
  133452. 05h get_equal
  133453. 06h get_next
  133454. 07h get_prev
  133455. 08h get_greater
  133456. 09h get_gr_eql
  133457. 0Ah get_less
  133458. 0Bh get_less_eq
  133459. 0Ch get_first
  133460. 0Dh get_last
  133461. 0Eh create
  133462. 0Fh stat
  133463. 10h extend
  133464. 11h set_dir: set directory information
  133465. 12h get_dir: get directory information
  133466. 13h begin_trans
  133467. 14h end_trans
  133468. 15h abort_trans
  133469. 16h get_pos: get record position number
  133470. 17h get_direct: get data by sending record position
  133471. 18h step_next
  133472. 19h stop
  133473. 1Ah version
  133474. 1Bh unlock
  133475. 1Ch reset
  133476. 1Dh set owner
  133477. 1Eh clear owner
  133478. 1Fh create supplemental index
  133479. 20h drop supplemental index
  133480. 21h step first
  133481. 22h step last
  133482. 23h step previous
  133483. 24h get next extended: get multiple records using a filter
  133484. 25h get previous extended: get multiple records using a filter
  133485. 26h step next extended: get multiple records using a filter
  133486. 27h step previous extended: get multiple records using a filter
  133487. 28h insert extended: insert one or more records
  133488. 31h ???
  133489. Notes: add 50 (32h) to any "get" operation to just return the key data
  133490. add 100 (64h) for a single-record wait lock (automatically released
  133491. on next get)
  133492. add 200 (C8h) for a single-record nowait lock (nowait lock returns
  133493. error 54h or 55h if record already locked)
  133494. add 300 (12Ch) for a multiple-record wait lock (not released until
  133495. unlock called)
  133496. add 400 (190h) for a multiple-record nowait lock (nowait lock returns
  133497. error 54h or 55h if record already locked)
  133498. (Table 03842)
  133499. Values for Btrieve status code:
  133500. 00h successful
  133501. 01h invalid operation
  133502. 02h I/O error
  133503. 03h file not open
  133504. 04h key value not found
  133505. 05h duplicate key value
  133506. 06h invalid key number
  133507. 07h different key number
  133508. 08h invalid positioning
  133509. 09h end of file
  133510. 0Ah modifiable key value error
  133511. 0Bh invalid file name
  133512. 0Ch file not found
  133513. 0Dh extended file error
  133514. 0Eh pre-image open error
  133515. 0Fh pre-image I/O error
  133516. 10h expansion error
  133517. 11h close error
  133518. 12h disk full
  133519. 13h unrecoverable error
  133520. 14h record manager inactive
  133521. 15h key buffer too short
  133522. 16h data buffer length overrun
  133523. 17h position block length
  133524. 18h page size error
  133525. 19h create I/O error
  133526. 1Ah number of keys
  133527. 1Bh invalid key position
  133528. 1Ch invalid record length
  133529. 1Dh invalid key length
  133530. 1Eh not a Btrieve file
  133531. 1Fh file already extended
  133532. 20h extended I/O error
  133533. 22h invalid extension name
  133534. 23h directory error
  133535. 24h transaction error
  133536. 25h transaction is active
  133537. 26h transaction control file I/O error
  133538. 27h end/abort transaction error
  133539. 28h transaction max files
  133540. 29h operation not allowed
  133541. 2Ah incomplete accelerated access
  133542. 2Bh invalid record address
  133543. 2Ch null key path
  133544. 2Dh inconsistent key flags
  133545. 2Eh access to file denied
  133546. 2Fh maximum open files
  133547. 30h invalid alternate sequence definition
  133548. 31h key type error
  133549. 32h owner already set
  133550. 33h invalid owner
  133551. 34h error writing cache
  133552. 35h invalid interface
  133553. 36h variable page error
  133554. 37h autoincrement error
  133555. 38h incomplete index
  133556. 39h expanded memory error
  133557. 3Ah compression buffer too short
  133558. 3Bh file already exists
  133559. 3Ch reject count reached
  133560. 3Dh work space too small
  133561. 3Eh incorrect descriptor
  133562. 3Fh invalid extended insert
  133563. 40h filter limit reached
  133564. 41h incorrect field offset
  133565. 4Ah automatic transaction abort
  133566. 4Dh Btrieve engine busy or resource locked by another user
  133567. 4Eh deadlock detected
  133568. 50h conflict
  133569. 51h lock error
  133570. 52h lost position
  133571. 53h read outside transaction
  133572. 54h record in use
  133573. 55h file in use
  133574. 56h file table full
  133575. 57h handle table full
  133576. 58h incompatible open mode
  133577. 5Ah redirected device table full
  133578. 5Bh server error
  133579. 5Ch transaction table full
  133580. 5Dh incompatible lock type
  133581. 5Eh permission error
  133582. 5Fh session no longer valid
  133583. 60h communications environment error
  133584. 61h data message too small
  133585. 62h internal transaction error
  133586. --------I-7B---------------------------------
  133587. INT 7B - Eicon Access API (3270/5250 gateways)
  133588. SeeAlso: INT 5C"NetBIOS"
  133589. --------E-7B---------------------------------
  133590. INT 7B - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ3
  133591. Notes: this vector is overwritten when GO32 starts but is not restored by
  133592. early versions of the extender
  133593. the newest versions of GO32 dynamically allocate the vectors used
  133594. for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  133595. SeeAlso: INT 0B,INT 10/AH=FFh"GO32",INT 7A"GO32",INT 7C"GO32"
  133596. --------A-7B---------------------------------
  133597. INT 7B CR - AutoCAD Device Interface - PRINTER/PLOTTER - SEND PLOTTING DATA
  133598. AX = data length (0000h-7FFFh)
  133599. CX:BX -> data to be plotted
  133600. DX = vertical position of line on page
  133601. Return: nothing
  133602. Notes: This interrupt is called by AutoCAD to perform its output
  133603. A data length of 0000h indicates that a blank line is to be output
  133604. SeeAlso: AX=8001h,AX=8002h,INT 78"AutoCAD",INT 7A/AX=0001h"AutoCAD"
  133605. --------e-7B---------------------------------
  133606. INT 7B U - MCI Express v2.11+ - DRIVER.EXE - ???
  133607. Program: MCI Express is a front end to MCI Mail; DRIVER.EXE is its
  133608. communication driver
  133609. ----------7B---------------------------------
  133610. INT 7B - Novell XQL - XQL PRIMITIVES MANAGER API
  133611. DS:DX -> parameter block (see #03844)
  133612. Return: parameter block updated
  133613. (Table 03843)
  133614. Values for Novell XQL function number:
  133615. 00h log in
  133616. 01h log out
  133617. 02h "tNewFcn"
  133618. 03h "tFreeFcn"
  133619. 04h "tMoveFldFcn"
  133620. 05h "tFieldFcn"
  133621. 06h "tDescribeFcn"
  133622. 07h "tFetchFcn"
  133623. 08h "tComputeFcn"
  133624. 09h "tOrderFcn"
  133625. 0Ah "tRestrictFcn"
  133626. 0Bh "tJoinFcn"
  133627. 0Ch "tInsertFcn"
  133628. 0Dh "tUpdateFcn"
  133629. 0Eh "tUpdallFcn"
  133630. 0Fh "tRemoveFcn"
  133631. 10h "tRemallFcn"
  133632. 11h "tResetFcn"
  133633. 12h "tTransFcn"
  133634. 13h "tStatFcn"
  133635. 14h "tDDCreFcn"
  133636. 15h "tStoreFcn"
  133637. 16h "tRecallFcn"
  133638. 17h "tStopFcn"
  133639. 18h "tDDFileFcn"
  133640. 19h "tDDFieldFcn"
  133641. 1Ah "tDDIndexFcn"
  133642. 1Bh "tDDModFcn"
  133643. 1Ch "tDDViewFcn"
  133644. 1Dh "tDDDrpFcn"
  133645. 1Eh "tDDPathFcn"
  133646. 1Fh "tDDAttrFcn"
  133647. 20h "tDDFcn"
  133648. 21h "tSecurFcn"
  133649. 22h "tUserFcn"
  133650. 23h "tAccessFcn"
  133651. 24h "tPswdFcn"
  133652. 25h "tCharFcn"
  133653. 26h "tVersionFcn"
  133654. 27h "tCnvFcn"
  133655. 28h "tValFcn"
  133656. 29h "tMaskFcn"
  133657. SeeAlso: #03844
  133658. Format of XQL parameter block:
  133659. Offset Size Description (Table 03844)
  133660. 00h 4 BYTEs signature "XQLP"
  133661. 04h WORD function number (see #03843)
  133662. 06h WORD handle
  133663. 08h WORD status
  133664. 0Ah WORD session ID
  133665. 0Ch var data record (varies by function)
  133666. ---function 00h---
  133667. 0Ch DWORD -> user name
  133668. 10h DWORD -> password
  133669. 14h DWORD -> dictionary
  133670. 18h DWORD -> filepath
  133671. 1Ch DWORD -> machine name
  133672. 20h WORD process ID
  133673. ---function 01h---
  133674. no additional fields???
  133675. ---function 02h---
  133676. 0Ch DWORD -> filename
  133677. 10h DWORD -> owner name
  133678. 14h WORD open mode
  133679. ---function 03h---
  133680. no additional fields???
  133681. ---function 04h---
  133682. 0Ch WORD "frompos"
  133683. 0Eh WORD "topos"
  133684. ---function 05h---
  133685. 0Ch WORD subfunction
  133686. 0Eh WORD position
  133687. 10h WORD count
  133688. 12h DWORD -> field list
  133689. ---function 06h---
  133690. 0Ch WORD subfunction
  133691. 0Eh WORD length of description
  133692. 10h WORD position
  133693. 12h WORD count
  133694. 14h DWORD pointer to description list
  133695. ---function 07h---
  133696. 0Ch WORD data length
  133697. 0Eh WORD "op"
  133698. 10h DWORD "select"
  133699. 14h DWORD "reject"
  133700. 18h DWORD pointer to data buffer
  133701. ---function 08h---
  133702. 0Ch DWORD -> field name
  133703. 10h WORD field type
  133704. 12h WORD field size
  133705. 14h WORD "flddec"
  133706. 16h WORD "explen"
  133707. 18h DWORD pointer to "expbuf"
  133708. ---function 09h---
  133709. 0Ch WORD count
  133710. 0Eh DWORD -> field list
  133711. ---function 0Ah---
  133712. 0Ch WORD "newexp"
  133713. 0Eh WORD "explen"
  133714. 10h DWORD -> "expbuf"
  133715. ---function 0Bh---
  133716. 0Ch DWORD -> filename
  133717. 10h DWORD -> owner name
  133718. 14h WORD type of join
  133719. 16h WORD "pCount"
  133720. 18h DWORD -> "pNames"
  133721. 1Ch WORD "sCount"
  133722. 1Eh DWORD -> "sNames"
  133723. ---functions 0Ch, 0Dh, 0Fh---
  133724. 0Ch WORD file count
  133725. 0Eh DWORD -> file list
  133726. 12h DWORD count
  133727. 16h DWORD -> buffer
  133728. ---function 0Eh---
  133729. 0Ch WORD file count
  133730. 0Eh DWORD -> file list
  133731. 12h WORD "op"
  133732. 14h DWORD "select"
  133733. 18h DWORD "reject"
  133734. 1Ch WORD count
  133735. 1Eh DWORD -> "res"
  133736. 22h DWORD -> "comp"
  133737. ---function 10h---
  133738. 0Ch WORD file count
  133739. 0Eh DWORD -> file list
  133740. 12h WORD "op"
  133741. 14h DWORD "select"
  133742. 18h DWORD "reject"
  133743. ---function 11h---
  133744. 0Ch DWORD machine name
  133745. ---function 12h---
  133746. 0Ch WORD option
  133747. ---function 13h---
  133748. 0Ch WORD subfunction
  133749. 0Eh WORD length of buffer
  133750. 10h DWORD -> buffer
  133751. ---function 14h---
  133752. 0Ch WORD subfunction
  133753. 0Eh DWORD -> filename
  133754. 12h WORD "create"
  133755. 14h DWORD -> pathname
  133756. 18h DWORD -> owner name
  133757. 1Ch WORD owner access restrictions
  133758. 1Eh WORD number of fields
  133759. 20h DWORD -> field list
  133760. 24h WORD number of keys
  133761. 28h DWORD -> key list
  133762. 2Ch WORD "buflen"
  133763. 2Eh DWORD -> create parameters
  133764. ---function 15h---
  133765. 0Ch DWORD -> "StoreName"
  133766. 10h WORD length of buffer
  133767. 12h DWORD -> buffer
  133768. ---function 16h---
  133769. 0Ch DWORD -> "RecallName"
  133770. 10h WORD owner number
  133771. 12h DWORD -> owner list
  133772. 16h WORD open mode
  133773. 18h WORD length of buffer
  133774. 1Ah DWORD -> buffer
  133775. ---function 17h---
  133776. no additional fields???
  133777. ---function 18h---
  133778. 0Ch WORD "rtype"
  133779. 0Eh WORD count
  133780. 10h DWORD -> "filebuf"
  133781. 14h WORD length of following buffer
  133782. 16h DWORD -> output buffer
  133783. ---functions 19h, 1Ah---
  133784. 0Ch WORD "rtype"
  133785. 0Eh WORD count
  133786. 10h DWORD -> field buffer
  133787. 14h WORD length of following buffer
  133788. 16h DWORD -> output buffer
  133789. ---function 1Bh---
  133790. 0Ch WORD subfunction
  133791. 0Eh DWORD -> filename
  133792. 12h WORD "create"
  133793. 14h DWORD -> pathname
  133794. 18h DWORD -> owner name
  133795. 1Ch WORD owner access restrictions
  133796. 1Eh WORD field count
  133797. 20h DWORD -> field list
  133798. 24h WORD number of keys
  133799. 26h DWORD -> list of keys
  133800. ---function 1Ch---
  133801. 0Ch WORD count
  133802. 0Eh DWORD -> view name
  133803. 12h WORD length of following buffer
  133804. 14h DWORD -> output buffer
  133805. ---function 1Dh---
  133806. 0Ch DWORD -> filename
  133807. 10h WORD file type
  133808. 12h WORD "deletepath"
  133809. ---function 1Eh---
  133810. 0Ch WORD "dirtype"
  133811. 0Eh DWORD -> pathname
  133812. ---function 1Fh---
  133813. 0Ch WORD function
  133814. 0Eh DWORD -> field name
  133815. 12h WORD attribute
  133816. 14h WORD size of buffer
  133817. 16h DWORD -> buffer for attributes
  133818. ---function 20h---
  133819. 0Ch DWORD -> directory path
  133820. 10h WORD function
  133821. ---function 21h---
  133822. 0Ch DWORD -> master password
  133823. 10h WORD "securityflag"
  133824. ---function 22h---
  133825. 0Ch DWORD -> master password
  133826. 10h WORD function (add/modify/remove)
  133827. 12h DWORD -> user name
  133828. 16h DWORD -> password
  133829. 1Ah WORD global rights
  133830. 1Ch WORD count
  133831. 1Eh WORD length of following buffer
  133832. 20h DWORD -> "userbuf"
  133833. ---function 23h---
  133834. 0Ch DWORD -> master password
  133835. 10h DWORD -> user name
  133836. 14h WORD function (allow/deny/getrights)
  133837. 16h WORD rights
  133838. 18h DWORD -> filename
  133839. 1Ch WORD number of field names in following buffer
  133840. 1Eh DWORD -> field names
  133841. 22h WORD maximum buffer length
  133842. 24h DWORD -> output buffer
  133843. ---function 24h---
  133844. 0Ch DWORD -> user name
  133845. 10h DWORD -> password
  133846. ---function 25h---
  133847. 0Ch WORD "charFcn"
  133848. 0Eh WORD "charType"
  133849. 10h WORD "charValue"
  133850. ---function 26h---
  133851. 0Ch DWORD -> buffer
  133852. ---function 27h---
  133853. 0Ch WORD option
  133854. 0Eh WORD type
  133855. 10h WORD size
  133856. 12h WORD "dec"
  133857. 14h WORD "dsize"
  133858. 16h DWORD -> value
  133859. 1Ah DWORD -> "retval"
  133860. 1Eh DWORD -> mask
  133861. 22h WORD "justify"
  133862. ---function 28h---
  133863. 0Ch DWORD -> field name
  133864. 10h WORD length of buffer
  133865. 12h DWORD -> buffer for data
  133866. ---function 29h---
  133867. 0Ch WORD option
  133868. 0Eh WORD type
  133869. 10h WORD size
  133870. 12h WORD "dec"
  133871. 14h WORD length of mask
  133872. 16h DWORD -> mask
  133873. --------A-7B8001-----------------------------
  133874. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - BEGIN PLOT
  133875. AX = 8001h
  133876. BX = file level
  133877. 0000h binary file
  133878. 0001h CAD/camera image file
  133879. 0002h installed ADI driver
  133880. CX = horizontal size in pixels
  133881. DX = vertical size in pixels
  133882. Return: AX = status (0000h initialization failed, 0001h init successful)
  133883. BX = allowed output format
  133884. 0000h monochrome
  133885. 0001h color (4 bits per pixel)
  133886. SeeAlso: AX=8002h,AX=8003h,INT 7B"AutoCAD",INT 7C"AutoShade"
  133887. --------A-7B8002-----------------------------
  133888. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - END PLOT
  133889. AX = 8002h
  133890. SeeAlso: AX=8001h,AX=8003h
  133891. --------A-7B8003-----------------------------
  133892. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - ABORT PLOT
  133893. AX = 8003h
  133894. SeeAlso: AX=8001h,AX=8002h
  133895. --------r-7C---------------------------------
  133896. INT 7C U - IBM REXX88PC command language
  133897. ???
  133898. --------E-7C---------------------------------
  133899. INT 7C - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ4
  133900. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  133901. GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  133902. Notes: this vector is overwritten when GO32 starts but is not restored by
  133903. early versions of the extender
  133904. the newest versions of GO32 dynamically allocate the vectors used
  133905. for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  133906. SeeAlso: INT 0C,INT 7B"GO32",INT 7D"GO32"
  133907. --------P-7C---------------------------------
  133908. INT 7C - PRINDIR v8.02-8.xx - API
  133909. AH = function
  133910. 00h set output to Invisible mode
  133911. 01h set output to LPT1
  133912. 02h set output to LPT2
  133913. 03h set output to LPT3
  133914. 04h set output to COM1
  133915. 05h set output to COM2
  133916. 06h set output to COM3
  133917. 07h set output to COM4
  133918. 08h set output to screen
  133919. 09h set output to file
  133920. 0Ah change file path
  133921. ES:DI -> new path
  133922. CX = length of path (max 41, but not range-checked)
  133923. 0Bh change file name
  133924. ES:DI -> new filename
  133925. CX = length of new name (max 41, but not range-checked)
  133926. 0Ch set redirected device
  133927. (01h = LPT1 ... 03h = LPT3, 04h = COM1 ... 07h = COM4)
  133928. 0Dh force buffer dump
  133929. 0Eh set display color
  133930. AL = new color attribute (see #00014 at INT 10/AH=08h)
  133931. 0Fh set popup hotkey
  133932. AL = hotkey scancode
  133933. 10h toggle byte display
  133934. AL = new state (00h off, 01h on)
  133935. 11h change buffer flush delay
  133936. AL = timer ticks before flush
  133937. Return: AX = status
  133938. 0000h successful
  133939. 0001h invalid function or nothing in buffer to be dumped
  133940. (documented as "nonzero = error")
  133941. Program: PRINDIR is a shareware printer-redirection program by J.M. Allen
  133942. Creations
  133943. InstallCheck: test for the ASCIZ signature "PRINDIR N.NN" (where N.NN is the
  133944. version number) two bytes beyond the start of the interrupt handler
  133945. Note: prior versions of PRINDIR used INT 7A instead of INT 7C
  133946. SeeAlso: INT 7A"PRINDIR",INT 2F/AX=7F00h"PRINDIR"
  133947. Index: hotkeys;PRINDIR
  133948. --------A-7C---------------------------------
  133949. INT 7C - AutoShade v2 - RENDERING HARDCOPY DRIVER
  133950. Note: this is the default interrupt vector for rendering hardcopy drivers
  133951. instead of INT 7A used by AutoCAD drivers
  133952. SeeAlso: INT 7A/AX=0001h"AutoCAD"
  133953. --------N-7C---------------------------------
  133954. INT 7C - SK-UPPS/SK-PASSPORT Data Link Interface (DLI) API
  133955. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  133956. which provides an API on top of it Data Link Interface, allowing the
  133957. use of any of several network transport layers; this product is
  133958. called SK-PASSPORT in the USA.
  133959. InstallCheck: test for the ASCII signature string "UPPS_DLI" immediately
  133960. preceding the interrupt handler
  133961. Notes: To find the service interrupt being used by the driver, an application
  133962. should scan through the interrupt table until it finds an interrupt
  133963. vector with the "UPPS_DLI" string.
  133964. There may be more than one DLI loaded, each having its own service
  133965. interrupt.
  133966. SeeAlso: AX=0000h,AX=0002h,AX=000Fh
  133967. Index: installation check;SK-UPPS
  133968. --------N-7C0000-----------------------------
  133969. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER VERSION
  133970. AX = 0000h
  133971. Return: AH = major DLI version
  133972. AL = minor DLI version
  133973. DX = OEM signature (see #03845)
  133974. CL = DLI 2.8+ topology: 1=Ethernet, 2=FDDI, 3=Token-Ring
  133975. SeeAlso: AX=0002h,AX=000Bh,AX=000Dh,AX=000Eh
  133976. (Table 03845)
  133977. Values for SK-UPPS Data Link Interface OEM signature (defined by SK):
  133978. 0001h experimental
  133979. 3343h ('3C') 3COM
  133980. 4942h ('IB') IBM
  133981. 4943h ('IC') Intellicom
  133982. 494Eh ('IN') Intel
  133983. 4B4Fh ('KO') Kodiak
  133984. 4D41h ('MA') Madge
  133985. 4E45h ('NE') Novell
  133986. 4F43h ('OC') Olicom
  133987. 5349h ('SI') Siemens
  133988. 534Bh ('SK') Schneider & Koch (SysKonnect)
  133989. 5744h ('WD') Western Digital
  133990. --------N-7C0001-----------------------------
  133991. INT 7C - SK-UPPS Data Link Interface API - DOWN DRIVER
  133992. AX = 0001h
  133993. Return: AX = completion code (see #03846)
  133994. Note: the DLI will refuse to unload if there are any protocols
  133995. (see AX=0007h) or clients (see AX=0010h) active.
  133996. Index: uninstall;SK-UPPS Data Link Interface
  133997. (Table 03846)
  133998. Values for SK-UPPS completion code:
  133999. 0000h SUCCESS
  134000. 0005h INVALID_MULTICAST
  134001. 0006h BUFFER_TOO_SMALL
  134002. 0007h NO_BUFFERS_LEFT
  134003. 0008h NO_RESOURCES_LEFT
  134004. 000Bh ILLEGAL_PROTOCOL_ID
  134005. 000Ch PROTOCOL_IN_USE
  134006. 000Dh NO_MULTICAST_ADDRESS
  134007. 000Fh PROTOCOLS_ACTIVE
  134008. 0010h CLIENTS_ACTIVE
  134009. 001Bh INVALID_MODE
  134010. 001Ch MODE_NOT_SUPPORTED
  134011. FFFFh UNKNOWN_SERVICE
  134012. --------N-7C0002-----------------------------
  134013. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATUS
  134014. AX = 0002h
  134015. ES:DI -> Status Information Block (SIB) (see #03858)
  134016. Return: AX = completion code (see #03846)
  134017. Note: GET DRIVER INFO (AX=000Eh) should be used instead.
  134018. SeeAlso: AX=0000h,AX=000Bh,AX=000Dh,AX=000Eh
  134019. --------N-7C0003-----------------------------
  134020. INT 7C - SK-UPPS Data Link Interface API - CHANGE DRIVER ADDRESS
  134021. AX = 0003h
  134022. ES:DI -> new node address (6 bytes)
  134023. Return: AX = completion code (see #03846)
  134024. Note: the DLI will refuse to change the address if any protocols
  134025. (see AX=0007h) are active
  134026. SeeAlso: AX=0001h,AX=000Eh
  134027. --------N-7C0004-----------------------------
  134028. INT 7C - SK-UPPS Data Link Interface API - REQUEST BUFFER
  134029. AX = 0004h
  134030. DX = protocol ID (see AX=0007h,#03849)
  134031. Return: AX = completion code (see also #03846)
  134032. 0000h successful
  134033. ES:BX -> Memory Buffer (Mbuf) (see #03847)
  134034. Note: if the DLI has no free Mbufs, it will set an internal flag for the
  134035. protocol and later call the protocol's Event Upcall with
  134036. EV_BUFFER_AVAILABLE (see #03853,#03854) as soon as an Mbuf becomes
  134037. available. There will only be one "buffer available" Upcall, even
  134038. if this function has been called several times before.
  134039. SeeAlso: AX=0005h,AX=0006h,AX=0012h,AX=0013h
  134040. Format of SK-UPPS Memory Buffer (Mbuf):
  134041. Offset Size Description (Table 03847)
  134042. 00h DWORD -> NEXT Mbuf (linked list)
  134043. 04h WORD OFFSET of actual data within DATA area
  134044. 06h 2 BYTEs reserved (currently unused)
  134045. 08h WORD LENGTH of actual data found in DATA area starting at OFFSET
  134046. 0Ah 2 BYTEs reserved (currently unused)
  134047. 0Ch DWORD -> DATA area (size can be obtained via AX=000Eh call)
  134048. 10h WORD PROTOCOL ID of protocol currently "owning" the Mbuf
  134049. 12h BYTE IN USE flag; nonzero if Mbuf still in use by DLI (see AX=0006h)
  134050. 13h BYTE RECEIVE STATUS (bit 0-7 only; see AX=0007h - Receive Upcall)
  134051. --------N-7C0005-----------------------------
  134052. INT 7C - SK-UPPS Data Link Interface API - RELEASE BUFFER
  134053. AX = 0005h
  134054. ES:BX -> Mbuf (see #03847)
  134055. Return: nothing
  134056. SeeAlso: AX=0004h
  134057. --------N-7C0006-----------------------------
  134058. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME
  134059. AX = 0006h
  134060. ES:BX -> Mbuf (see #03847)
  134061. Return: nothing
  134062. Notes: The DLI will send LENGTH bytes found in the Mbuf's DATA area starting
  134063. at OFFSET. A complete and valid frame must be stored there. The DLI
  134064. will only copy the current node address (see AX=0003h) to the
  134065. source node field of the frame's MAC header.
  134066. On Ethernet, the DLI will always send a minimum of 60 bytes, regardless
  134067. of the value found in the LENGTH field.
  134068. This function returns immediately; the DLI will call the protocol's
  134069. Transmit Upcall (see #03848) when the frame has been sent.
  134070. The Mbuf's IN USE field will be non-zero until the DLI calls the
  134071. Transmit Upcall.
  134072. SeeAlso: AX=0002h,AX=0004h,AX=0013h
  134073. (Table 03848)
  134074. Values SK-UPPS Transmit Upcall is called with:
  134075. ES:BX -> Mbuf (NEXT field destroyed)
  134076. interrupts disabled
  134077. Note: On FDDI the bytes of the source and destination node fields in the MAC
  134078. header have been bit-swapped to physical address format.
  134079. --------N-7C0007-----------------------------
  134080. INT 7C - SK-UPPS Data Link Interface API - REGISTER PROTOCOL
  134081. AX = 0007h
  134082. ES:BX -> Protocol Control Block (see #03849)
  134083. Return: AX = completion code (see #03846)
  134084. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  134085. which provides an API on top of its Data Link Interface, allowing the
  134086. use of any of several network transport layers
  134087. SeeAlso: AX=0008h,AX=000Bh
  134088. Format of SK-UPPS Protocol Control Block (PCB):
  134089. Offset Size Description (Table 03849)
  134090. 00h WORD (big-endian) protocol type
  134091. 02h WORD protocol mode (see #03850)
  134092. 04h DWORD -> Receive Upcall routine (see #03851)
  134093. 08h DWORD -> Transmit Upcall routine
  134094. 0Ch DWORD -> Event Upcall routine (see #03853)
  134095. 10h DWORD -> ASCIZ protocol name (zero if none)
  134096. 14h WORD protocol ID will be returned here (always non-zero)
  134097. Bitfields for SK-UPPS protocol mode:
  134098. Bit(s) Description (Table 03850)
  134099. 0 promiscuous mode; protocol receives all frames regardless of their
  134100. destination (PROTOCOL TYPE must be FFFFh)
  134101. 1 if set, protocol's Event Upcall will be called on entry and exit of the
  134102. DLI's Interrupt Service Routine (see #03854)
  134103. 2 DLI 2.2+ hook mode; protocol receives all directed frames destined for
  134104. this station (PROTOCOL TYPE must be FFFFh)
  134105. 3 DLI 2.3+ receive error frames (only valid in promiscuous mode (0))
  134106. 4-5 DLI 2.5+ frame type:
  134107. 00 Ethernet II; specify type code in PROTOCOL TYPE field (high-low)
  134108. 01 IEEE 802.2; specify Service Access Point (SAP) in MSB
  134109. (offset 0) of PROCOTOL TYPE field; LSB must be zero
  134110. 10 IEEE 802.2 with SNAP header; specify type code in PROTOCOL TYPE
  134111. field (high-low)
  134112. 11 reserved (currently unused)
  134113. 6 DLI 2.5+ if set, protocol's Event Upcall will be called with event code
  134114. EV_BUFFER_WANTED, when DLI runs out of Mbufs
  134115. 7 DLI 2.7+ chain mode; if set, client allows the specified frame type to
  134116. be shared with other clients
  134117. 8 DLI 2.8+ receive non-LLC frames rather than LLC frames
  134118. 9 DLI 2.8+ receive all multicast frames (see also AX=0009h)
  134119. 10-15 reserved (currently unused; must be zero)
  134120. Notes: If PROTOCOL TYPE is FFFFh and neither the "promiscuous" nor the "hook"
  134121. mode is set, the protocol receives all frames that did not match
  134122. any registered frame type (demultiplexor mode).
  134123. Protocols using "promiscuous", "hook" or "chain" mode should always
  134124. return from the Receive Upcall with the received Mbuf in ES:BX and
  134125. the Carry Flag set. The DLI will then pass the Mbuf to the FEED BACK
  134126. BUFFER function (see AX=000Fh).
  134127. Some DLIs do not support all or even any of the "promiscuous",
  134128. "receive non-LLC" and "receive all multicasts" mode bits.
  134129. SeeAlso: #03849
  134130. (Table 03851)
  134131. Values SK-UPPS Receive Upcall is called with:
  134132. ES:BX -> Mbuf
  134133. AX = receive status (see #03852) (also stored in Mbuf's RECEIVE STATUS field)
  134134. interrupts disabled
  134135. Return: nothing
  134136. SeeAlso: #03853
  134137. Bitfields for SK-UPPS receive status:
  134138. Bit(s) Description (Table 03852)
  134139. 0-2 reserved (0), currently unused
  134140. 3 frame check sequence (FCS) error
  134141. 4 overflow (frame too long)
  134142. 5 framing error
  134143. 6 reserved (0), currently unused
  134144. 7 non-LLC frame (see #03850 [bit 8])
  134145. 8-15 reserved (0), currently unused
  134146. Notes: The protocol's Receive Upcall routine will be called whenever a frame
  134147. matching the specified frame type is received. A received frame is
  134148. passed to the protocol in the Mbuf's DATA area at OFFSET and its size
  134149. is LENGTH bytes.
  134150. The receive status passed to the Receive Upcall in register AL is
  134151. always zero, except for protocols using "non-LLC" mode (8 of PCB's
  134152. protocol mode field) or "promiscuous" mode together with "receive
  134153. error frames" (0 & 3).
  134154. Upcalls are FAR routines and must return with a RET FAR. If the Carry
  134155. Flag is set on return from a Receive or Transmit Upcall, then ES:BX
  134156. must point to an Mbuf, which the DLI will then pass to the RELEASE
  134157. BUFFER function (see AX=0005h). See also notes for PROTOCOL MODE.
  134158. (Table 03853)
  134159. Values SK-UPPS Event Upcall is called with:
  134160. AX = event code (see #03854)
  134161. Return: nothing
  134162. Note: All Event Upcalls may be ignored by the protocol.
  134163. SeeAlso: #03851
  134164. (Table 03854)
  134165. Values for SK-UPPS Event Upcall event code:
  134166. 00h EV_BUFFER_AVAILABLE client may now call REQUEST BUFFER (AX=0004h)
  134167. 01h EV_ISR_START start of Interrupt Service Routine
  134168. 02h EV_ISR_END end of ISR (see #03850 [bit 1])
  134169. 03h EV_BUFFER_WANTED DLI temporarily out of Mbufs
  134170. 04h EV_NETWORK_STATUS DLI 2.8+ network status -- DX=status (see #03855)
  134171. 05h EV_IO_CONTROL DLI 2.8+ I/O control -- DX=subfunc (see AX=0016h)
  134172. SeeAlso: #03853
  134173. Bitfields for EV_NETWORK_STATUS in register DX:
  134174. Bit(s) Description (Table 03855)
  134175. Token-Ring FDDI
  134176. 15 SIGNAL_LOSS SIGNAL_LOSS
  134177. 14 HARD_ERROR HARD_ERROR
  134178. 13 SOFT_ERROR SOFT_ERROR
  134179. 12 TRANSMIT_BEACON TRANSMIT_BEACON
  134180. 11 LOBE_WIRE_FAULT PATH_TEST_FAILED
  134181. 10 AUTO_REMOVAL SELF_TEST_REQUIRED
  134182. 9 reserved reserved
  134183. 8 REMOVE_RECEIVED REMOTE_DISCONNECT
  134184. 7 COUNTER_OVERFLOW reserved
  134185. 6 SINGLE_STATION DUPLICATE_ADDRESS
  134186. 5 RING_RECOVERY NO_RING_OP_STATUS
  134187. 4 reserved VERSION_MISMATCH
  134188. 3 reserved STUCK_BYPASS
  134189. 2 reserved FDDI_EVENT
  134190. 1 reserved RING_OP_CHANGE
  134191. 0 reserved reserved
  134192. Note: EV_NETWORK_STATUS is not supported on Ethernet
  134193. --------N-7C0008-----------------------------
  134194. INT 7C - SK-UPPS Data Link Interface API - DISABLE PROTOCOL
  134195. AX = 0008h
  134196. BX = protocol ID (see #03849)
  134197. Return: AX = completion code (see #03846)
  134198. Note: the DLI will handle any Mbufs given to TRANSMIT FRAME (AX=0006h) as if
  134199. they had been given to TRANSMIT FRAME RELEASE (AX=0013h).
  134200. all multicast addresses registered for this protocol will be disabled.
  134201. after this function returns, the protocol's Upcall routines will no
  134202. longer be called.
  134203. SeeAlso: AX=0007h,AX=000Bh
  134204. --------N-7C0009-----------------------------
  134205. INT 7C - SK-UPPS Data Link Interface API - REGISTER MULTICAST
  134206. AX = 0009h
  134207. BX = protocol ID (see #03849)
  134208. ES:DI -> multicast address (6 bytes)
  134209. Return: AX = completion code (see #03846)
  134210. Notes: The broadcast address is always enabled.
  134211. Set bit 9 of PCB's protocol mode field in REGISTER PROTOCOL call
  134212. (AX=0007h) to receive all multicast frames.
  134213. SeeAlso: AX=000Ah,AX=0014h
  134214. --------N-7C000A-----------------------------
  134215. INT 7C - SK-UPPS Data Link Interface API - DISABLE MULTICAST
  134216. AX = 000Ah
  134217. BX = protocol ID (see #03849)
  134218. ES:DI -> multicast address (6 bytes)
  134219. Return: AX = completion code (see #03846)
  134220. SeeAlso: AX=0009h,AX=0014h
  134221. --------N-7C000B-----------------------------
  134222. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL LIST
  134223. AX = 000Bh
  134224. ES:DI -> protocol ID buffer
  134225. CX = number of 2-byte protocol IDs that may be stored in buffer
  134226. Return: AX = completion code (see #03846)
  134227. CX = number of active protocols (regardless of value returned in AX)
  134228. protocol ID buffer filled with active protocol IDs
  134229. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  134230. which provides an API on top of its Data Link Interface, allowing the
  134231. use of any of several network transport layers
  134232. Note: If the buffer supplied is too small, CX still contains the total number
  134233. of active protocols and the buffer has been filled until full.
  134234. SeeAlso: AX=000Ch,AX=0014h
  134235. --------N-7C000C-----------------------------
  134236. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL STATUS
  134237. AX = 000Ch
  134238. BX = protocol ID (see #03849,AX=000Bh)
  134239. ES:DI -> Protocol Status Block (see #03856)
  134240. Return: AX = completion code (see #03846)
  134241. SeeAlso: AX=000Bh,AX=0014h
  134242. Format of SK-UPPS Protocol Status Block (PSB):
  134243. Offset Size Description (Table 03856)
  134244. 00h DWORD -> ASCIZ protocol name
  134245. 04h WORD protocol mode (see #03850)
  134246. 06h WORD protocol type (see AX=0007h)
  134247. 08h WORD number of registered multicasts (see AX=0009h,AX=0014h)
  134248. --------N-7C000D-----------------------------
  134249. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATISTICS
  134250. AX = 000Dh
  134251. BX = flag: 0=don't clear statistics, 1=clear statistics
  134252. ES:DI -> Statistics Data Block (see #03857)
  134253. Return: AX = completion code (see #03846)
  134254. SeeAlso: AX=0002h,AX=0015h
  134255. Format of SK-UPPS Statistics Data Block (SDB):
  134256. Offset Size Description (Table 03857)
  134257. 00h DWORD node uptime in ticks (1/18.21 sec.)
  134258. 04h DWORD bytes received
  134259. 08h DWORD bytes transmitted
  134260. 0Ch DWORD frames received
  134261. 10h DWORD frames transmitted
  134262. 14h DWORD multicast bytes received
  134263. 18h DWORD multicast frames received
  134264. 1Ch DWORD unrecognized frames
  134265. 20h WORD missed frames
  134266. 22h WORD frame check sequence (FCS) errors
  134267. 24h WORD framing errors
  134268. 26h WORD babbling errors
  134269. 28h WORD late collision errors
  134270. 2Ah WORD loss of carrier errors
  134271. 2Ch WORD 16 retries failed errors
  134272. 2Eh WORD overflow errors
  134273. Note: fields 26h through 2Ch are always zero, except in some very old
  134274. versions of the DLI. Use GET MEDIA STATISTICS (AX=0015h) to get
  134275. more detailed information.
  134276. --------N-7C000E-----------------------------
  134277. INT 7C - SK-UPPS Data Link Interface API - DLI 2.5+ - GET DRIVER INFO
  134278. AX = 000Eh
  134279. ES:DI -> Driver Information Block (see #03858)
  134280. BX = offset of 1st field within DIB to be returned
  134281. CX = number of bytes to be returned
  134282. Return: AX = completion code (see #03846)
  134283. CX = number of bytes copied (regardless of value returned in AX)
  134284. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  134285. which provides an API on top of its Data Link Interface, allowing the
  134286. use of any of several network transport layers
  134287. SeeAlso: AX=0000h,AX=0002h,AX=000Bh,AX=000Dh,AX=0015h
  134288. Format of SK-UPPS Driver Information Block (DIB):
  134289. Offset Size Description (Table 03858)
  134290. 00h 6 BYTEs physical node address (from adapter's ROM)
  134291. 06h 6 BYTEs current node address (see AX=0003h)
  134292. 0Ch BYTE adapter id (defined by OEM)
  134293. 0Dh BYTE IRQ line (FFh if none)
  134294. 0Eh DWORD -> shared memory (zero if none)
  134295. 12h DWORD size of shared memory (zero if none)
  134296. 16h WORD base I/O port (zero if none)
  134297. 18h BYTE DMA line (FFh if none)
  134298. 19h BYTE DLI 2.4+ topology (see AX=0000h)
  134299. 1Ah WORD size of an Mbuf's DATA area (see #03847)
  134300. 1Ch 2 BYTEs reserved (currently unused)
  134301. 1Eh WORD total number of Mbufs the DLI has
  134302. 20h WORD maximum number of Mbufs that can be allocated via REQUEST
  134303. BUFFER (AX=0004h) and SYNC REQUEST BUFFER (AX=0012h)
  134304. ---- end of Status Information Block returned by GET DRIVER STATUS (AX=0002h)
  134305. 22h DWORD -> ASCIZ adapter name
  134306. 26h WORD number of I/O ports used (zero if none)
  134307. 28h DWORD line speed in bits/sec.
  134308. --------N-7C000F-----------------------------
  134309. INT 7C - SK-UPPS Data Link Interface API - FEED BACK BUFFER
  134310. AX = 000Fh
  134311. ES:BX -> Mbuf (see #03847)
  134312. Return: nothing
  134313. Notes: A protocol may call this function instead of returning the Mbuf
  134314. directly from the Receive Upcall if it is running in "promiscuous",
  134315. "hook" or "chain" mode.
  134316. SeeAlso: AX=0007h
  134317. --------N-7C0010-----------------------------
  134318. INT 7C - SK-UPPS Data Link Interface API - CLIENT HOOK
  134319. AX = 0010h
  134320. Return: nothing
  134321. Notes: An application having no active protocols may call this function to
  134322. prevent the DLI from unloading.
  134323. SeeAlso: AX=0001h,AX=0011h
  134324. --------N-7C0011-----------------------------
  134325. INT 7C - SK-UPPS Data Link Interface API - CLIENT UNHOOK
  134326. AX = 0011h
  134327. Return: nothing
  134328. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  134329. which provides an API on top of its Data Link Interface, allowing the
  134330. use of any of several network transport layers
  134331. SeeAlso: AX=0010h
  134332. --------N-7C0012-----------------------------
  134333. INT 7C - SK-UPPS Data Link Interface API - SYNC REQUEST BUFFER
  134334. AX = 0012h
  134335. DX = protocol ID (see #03849)
  134336. Return: AX = completion code (see #03846)
  134337. if AX=0000h: ES:BX -> Mbuf (see #03847)
  134338. Note: If the protocol wants to be informed when an Mbuf becomes available,
  134339. REQUEST BUFFER (AX=0004h) should be used instead.
  134340. SeeAlso: AX=0004h,AX=0005h,AX=0006h,AX=0013h
  134341. --------N-7C0013-----------------------------
  134342. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME RELEASE
  134343. AX = 0013h
  134344. ES:BX -> Mbuf (see #03847)
  134345. Return: nothing
  134346. Notes: Returns immediately; The protocol's Transmit Upcall will NOT be called.
  134347. The Mbuf may no more be used by the protocol in any way (i.e. the
  134348. Mbuf's IN USE field may not be polled).
  134349. SeeAlso: AX=0004h,AX=0013h
  134350. --------N-7C0014-----------------------------
  134351. INT 7C - SK-UPPS Data Link Interface API - GET MULTICAST LIST
  134352. AX = 0014h
  134353. BX = protocol ID (see #03849,AX=000Bh)
  134354. ES:DI -> multicast address buffer
  134355. CX = number of 6-byte multicast addresses that may be stored in buffer
  134356. Return: AX = completion code (see #03846)
  134357. CX = number of registered multicast addresses for this protocol
  134358. (regardless of value returned in AX)
  134359. multicast address buffer filled with multicast addresses registered for
  134360. this protocol
  134361. Note: If the buffer supplied is too small, CX still contains the total number
  134362. of registered multicast addresses for this protocol and the buffer
  134363. has been completely filled
  134364. SeeAlso: AX=000Bh,AX=0009h,AX=000Ch
  134365. --------N-7C0015-----------------------------
  134366. INT 7C - SK-UPPS Data Link Interface API - DLI 2.6+ - GET MEDIA STATISTICS
  134367. AX = 0015h
  134368. ES:DI -> media-specific statistics buffer (see #03859,#03860,#03861)
  134369. BX = offset of 1st field within MSS to be returned
  134370. CX = number of bytes to be returned
  134371. Return: AX = completion code (see #03846)
  134372. CX = number of bytes copied (regardless of value returned in AX)
  134373. Note: not supported by all DLIs (will return AX=FFFFh if not supported).
  134374. SeeAlso: AX=0000h,AX=000Dh
  134375. Format of SK-UPPS media-specific statistics for Ethernet:
  134376. Offset Size Description (Table 03859)
  134377. 00h DWORD alignment errors
  134378. 04h DWORD frame check sequence (FCS) errors
  134379. 08h DWORD single collision frames
  134380. 0Ch DWORD multiple collision frames
  134381. 10h DWORD signal quality error (SQE) test errors
  134382. 14h DWORD deferred transmissions
  134383. 18h DWORD late collisions
  134384. 1Ch DWORD excessive collisions
  134385. 20h DWORD internal MAC transmit errors
  134386. 24h DWORD carrier sense errors
  134387. 28h DWORD excessive deferrals
  134388. 2Ch DWORD frame too longs
  134389. 30h DWORD in range length errors
  134390. 34h DWORD out of range length fields
  134391. 38h DWORD internal MAC receive errors
  134392. Format of SK-UPPS media-specific statistics for FDDI:
  134393. Offset Size Description (Table 03860)
  134394. 00h DWORD SMT operating version id (refer to ANSI 7.1.2.2)
  134395. 04h DWORD SMT CF state: 1=Isolated, 2= Wrap_S, 3=Wrap_A, 4=Wrap_B,
  134396. 5=Wrap_AB, 6=Thru (refer to ANSI SMT 9.7.4.3)
  134397. 08h DWORD SMT frames sent
  134398. 0Ch DWORD SMT frames received
  134399. 10h DWORD SMT ring up count
  134400. 14h 6 BYTEs MAC upstream neighbour
  134401. 1Ah 6 BYTEs MAC downstream neighbour
  134402. 20h DWORD MAC frame counter (refer to ANSI MAC 2.2.1)
  134403. 24h DWORD MAC error counter ( " )
  134404. 28h DWORD MAC lost counter ( " )
  134405. 2Ch BYTE port 1 link error estimate (ranges from 10**-4 to 10**-15 and
  134406. is reported as the absolute value of the exponent)
  134407. 2Dh BYTE port 2 link error estimate ( " )
  134408. 2Eh 2 BYTEs reserved (currently unused)
  134409. 30h DWORD attachment class: 1=single-attachment (S PORT),
  134410. 2=dual-attachment (A/B PORT pairs), 3=concentrator (M PORTs)
  134411. 34h DWORD attachment optical bypass present: 1=true, 2=false
  134412. Format of SK-UPPS media-specific statistics for Token-Ring:
  134413. Offset Size Description (Table 03861)
  134414. 00h 6 BYTEs upstream neighbour
  134415. 06h WORD local ring number
  134416. 08h DWORD ring up count
  134417. 0Ch DWORD signal loss errors
  134418. 10h DWORD lobe wire faults
  134419. 14h DWORD ring recovery count
  134420. 18h DWORD line errors
  134421. 1Ch DWORD burst errors
  134422. 20h DWORD ARI/FCI errors
  134423. 24h DWORD lost frame errors
  134424. 28h DWORD receive congestion errors
  134425. 2Ch DWORD frame copied errors
  134426. 30h DWORD token errors
  134427. 34h DWORD DMA bus errors
  134428. 38h DWORD DMA parity errors
  134429. 3Ch DWORD receive overflow errors
  134430. --------N-7C0016-----------------------------
  134431. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - DRIVER I/O CONTROL
  134432. AX = 0016h
  134433. DX = subfunction; bits 14-15 specify direction of I/O:
  134434. 00 no data at all (ES:BX undefined)
  134435. 01 driver -> application (GET)
  134436. 10 application -> driver (SET)
  134437. 11 both directions (GET/SET)
  134438. ES:BX -> I/O buffer (optional)
  134439. CX = size of buffer (if ES:BX valid)
  134440. Return: AX = completion code; defined by OEM
  134441. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  134442. which provides an API on top of its Data Link Interface, allowing the
  134443. use of any of several network transport layers
  134444. Notes: not supported by all DLIs (will return AX=FFFFh if not supported)
  134445. subfunction codes are defined by OEMs
  134446. SeeAlso: AX=0001h
  134447. --------N-7C0017-----------------------------
  134448. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - INTERRUPT REQUEST
  134449. AX = 0017h
  134450. Return: AX = completion code (see #03846)
  134451. Notes: not supported by all DLIs (will return AX=FFFFh, if not supported).
  134452. must be called with interrupts disabled; when the client re-enables
  134453. interrupts, an interrupt will be generated and reported to the client
  134454. through an Event Upcall (see #03853 [EV_ISR_START/EV_ISR_END])
  134455. SeeAlso: AX=0007h
  134456. --------t-7D---------------------------------
  134457. INT 7D O - [obsoleted proposal] - ALTERNATE MULTIPLEX INTERRUPT
  134458. Note: this interface has been moved to INT 2D; there are no known
  134459. implementations on INT 7D
  134460. SeeAlso: INT 2D"AMIS",INT 2F"NOTES"
  134461. --------S-7D---------------------------------
  134462. INT 7D U - YTERM 1.4 - CLOCK SUPPORT
  134463. SeeAlso: INT 7E"YTERM"
  134464. --------E-7D---------------------------------
  134465. INT 7D - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ5
  134466. Notes: this vector is overwritten when GO32 starts but is not restored by
  134467. early versions of the extender
  134468. the newest versions of GO32 dynamically allocate the vectors used
  134469. for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  134470. SeeAlso: INT 0D"IRQ5",INT 7C"GO32",INT 7E"GO32"
  134471. --------U-7D---------------------------------
  134472. INT 7D - HyperPAD v2.2 - API ACCESS
  134473. Note: this vector is hooked but immediately passed on (without checking
  134474. whether the previous handler was 0000h:0000h). The sole purpose of
  134475. this vector is to provide the address of the data area described
  134476. below (see #03862).
  134477. Format of HyperPAD data area:
  134478. Offset Size Description (Table 03862)
  134479. -16h DWORD pointer to ??? FAR function
  134480. -12h DWORD pointer to callback setting function
  134481. [C calling conventions, (*callback)(int (_loadds far *)()) ]
  134482. -0Eh 6 BYTEs signature "BRC001"
  134483. -08h DWORD pointer to previous INT 7D handler
  134484. -04h DWORD pointer to ??? data
  134485. 00h HyperPAD INT 7D handler
  134486. ----------7D---------------------------------
  134487. INT 7D - IBM DOS 6.1 E.EXE - ???
  134488. Note: E.EXE checks whether this interrupt is in use (not 0000h:0000h),
  134489. and if it is used, attempts to load E55VGA.EX instead of the
  134490. default E.EX overlay. However, E55VGA.EX is not included in
  134491. IBM DOS 6.1.
  134492. --------G-7D00-------------------------------
  134493. INT 7D - SCSILink - RESET SCSI BUS
  134494. AH = 00h
  134495. Program: SCSILink is a TSR by Cross Products Ltd which allows its PC-hosted
  134496. cross assemblers and similar products to communicate with Cross
  134497. Products hardware debuggers
  134498. Desc: reset all devices on the SCSI bus
  134499. InstallCheck: test for the signature "SCSILINK" immediately prior to the
  134500. interrupt handler
  134501. Index: installation check;SCSILink
  134502. --------G-7D01-------------------------------
  134503. INT 7D - SCSILink - CONNECT TO TARGET
  134504. AH = 01h
  134505. AL = target ID
  134506. Return: CF clear if successful
  134507. CF set on error
  134508. AL = initiator error
  134509. AH = target error
  134510. Desc: arbitrate the use of the bus and select the specified target device
  134511. --------G-7D02-------------------------------
  134512. INT 7D - SCSILink - SEND COMMAND
  134513. AH = 02h
  134514. ES:BX -> parameter block (see #03863)
  134515. Return: CF clear if successful
  134516. CF set on error
  134517. AL = initiator error
  134518. AH = target error
  134519. Desc: send the specified command block to the target device and perform any
  134520. related I/O
  134521. Format of SCSILink parameter block:
  134522. Offset Size Description (Table 03863)
  134523. 00h DWORD size of command block
  134524. 04h DWORD address of command block (see #03864)
  134525. 08h DWORD size of buffer
  134526. 0Ch DWORD address of buffer
  134527. Format of SCSILink command block:
  134528. Offset Size Description (Table 03864)
  134529. 00h info not yet available
  134530. --------G-7D03-------------------------------
  134531. INT 7D - SCSILink - SET TIMEOUT
  134532. AH = 03h
  134533. AL = timeout selector (see #03865)
  134534. BX = new value in 55ms ticks
  134535. Desc: change an internal timeout value to allow communication with very
  134536. slow targets
  134537. (Table 03865)
  134538. Values for SCSILink timeout selector:
  134539. 00h time to wait for bus (default 18)
  134540. 01h time to wait for new phase (default 5)
  134541. 02h maximum time to send/receive block (default 18)
  134542. 03h time to wait for reselect (default 180)
  134543. --------G-7D04-------------------------------
  134544. INT 7D - SCSILink - GET ERROR STRING
  134545. AH = 04h
  134546. AL = error number
  134547. Return: ES:BX -> ASCIZ error string for error number
  134548. --------G-7D05-------------------------------
  134549. INT 7D - SCSILink - GET ADDRESS
  134550. AH = 05h
  134551. Return: AL = DMA channel
  134552. AH = initiator ID
  134553. BX = card address
  134554. Desc: determine the current hardware configuration
  134555. --------G-7D06-------------------------------
  134556. INT 7D - SCSILink - PUT DATA
  134557. AH = 06h
  134558. CX = number of bytes to store (0001h-0100h)
  134559. ES:BX -> data to be saved
  134560. Return: CF clear if successful
  134561. CF set on error
  134562. AL = error code (01h = too much data)
  134563. Note: the specified data is stored in SCSILink's PSP
  134564. SeeAlso: AH=07h
  134565. --------G-7D07-------------------------------
  134566. INT 7D - SCSILink - GET DATA
  134567. AH = 07h
  134568. CX = number of bytes to retrieve (0001h-0100h)
  134569. ES:BX -> buffer for data
  134570. Return: CF clear if successful
  134571. CF set on error
  134572. AL = error code (01h = too much data)
  134573. Note: retrieve data previously stored with AH=06h
  134574. SeeAlso: AH=06h
  134575. --------G-7D08-------------------------------
  134576. INT 7D - SCSILink - TERMINATE SESSION
  134577. AH = 08h
  134578. Desc: indicate to any other programs that intercept INT 7D that the program
  134579. has finished with the link
  134580. Note: the program should call this function even if a SCSI error caused its
  134581. termination
  134582. --------G-7D09-------------------------------
  134583. INT 7D - SCSILink - POLL REQUEST
  134584. AH = 09h
  134585. AL = target ID
  134586. Return: AL = status
  134587. FEh resident driver experienced SCSI error
  134588. FFh resident driver handleded event
  134589. Desc: give any drivers chained onto INT 7D a chance to handle an exception
  134590. not specifically handled by the calling program
  134591. Notes: this service exists so that resident disk servers, etc. can continue
  134592. running even while debuggers and profilers are active
  134593. the resident driver assumes that a connection has been established and
  134594. attempts to leave the target connected
  134595. --------*-7E---------------------------------
  134596. INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY
  134597. --------S-7E---------------------------------
  134598. INT 7E U - YTERM 1.4 - ???
  134599. SeeAlso: INT 7D"YTERM",INT 7F"YTERM"
  134600. --------E-7E---------------------------------
  134601. INT 7E - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ6
  134602. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  134603. GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  134604. Notes: this vector is overwritten when GO32 starts but is not restored by
  134605. early versions of the extender
  134606. the newest versions of GO32 dynamically allocate the vectors used
  134607. for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  134608. SeeAlso: INT 0E"IRQ6",INT 7D"GO32",INT 7F"GO32"
  134609. --------s-7E00-------------------------------
  134610. INT 7E - MaxSBOS v0.21 - GET ???
  134611. AH = 00h
  134612. Return: DX:AX -> ???
  134613. SeeAlso: AH=01h,AH=02h,AH=03h
  134614. --------s-7E0001-----------------------------
  134615. INT 7E - IWSBSDRV v1.41 - SEND MIDI BYTE
  134616. AX = 0001h
  134617. DX = game device handle
  134618. BL = MIDI byte to send???
  134619. ???
  134620. Return: EAX = status
  134621. 00000000h if successful
  134622. FFFFFFFFh on error (function disabled)
  134623. Program: IWSBSDRV is the resident portion of the InterWave SBOS sound card
  134624. emulator for the Gravis UltraSound Plug-and-Play
  134625. Note: this function is only supported if the MIDISIMPLE device has been
  134626. opened via the InterWave Game API (see INT 2F/AX=CD21h)
  134627. SeeAlso: AX=0002h,INT 2F/AX=CD21h,#03074
  134628. --------s-7E0002-----------------------------
  134629. INT 7E - IWSBSDRV v1.41 - SEND MIDI STRING
  134630. AX = 0002h
  134631. DX = game device handle
  134632. ES:EDI -> buffer containing MIDI string to be sent
  134633. ECX = length of buffer in bytes
  134634. Return: EAX = status
  134635. 00000000h if successful
  134636. FFFFFFFFh on error (function disabled)
  134637. Note: this function is only supported if the MIDISIMPLE device has been
  134638. opened via the InterWave Game API (see INT 2F/AX=CD21h)
  134639. SeeAlso: AX=0001h,INT 2F/AX=CD21h,#03074
  134640. --------s-7E00F6-----------------------------
  134641. INT 7E - SBOS v3.82 - SET ???
  134642. AX = 00F6h
  134643. BL = ??? (max. 20h, value will be set to 20h if BL greater)
  134644. Return: AX=00F9h,AX=00FEh
  134645. --------s-7E00F7-----------------------------
  134646. INT 7E - SBOS v3.82 - GET ???
  134647. AX = 00F7h
  134648. Return: AX = status
  134649. 0000h failed
  134650. 0001h successful
  134651. BX = ??? (if nonzero, ??? is hooked) (see AX=00FFh)
  134652. CH = ???
  134653. CL = ???
  134654. SeeAlso: AX=00F6h,AX=00FDh,AX=00FFh
  134655. --------s-7E00F9-----------------------------
  134656. INT 7E - SBOS v3.82 - SET ???
  134657. AX = 00F9h
  134658. BX = ???
  134659. SeeAlso: AX=00F6h,AX=00FBh,AX=00FDh
  134660. --------s-7E00FB-----------------------------
  134661. INT 7E - SBOS v3.82 - SET ???
  134662. AX = 00FBh
  134663. BL = ???
  134664. SeeAlso: AX=00F6h,AX=00FDh,AX=00FFh
  134665. --------s-7E00FD-----------------------------
  134666. INT 7E - SBOS v3.82 - SET ???
  134667. AX = 00FDh
  134668. BL = ??? (max. 20h, value will be set to 20h if BL greater)
  134669. SeeAlso: AX=00F9h,AX=00FEh
  134670. --------s-7E00FE-----------------------------
  134671. INT 7E - SBOS v3.82 - UNINSTALL
  134672. AX = 00FEh
  134673. Return: AX = status
  134674. 0000h successful
  134675. 00FCh unable to unhook INT 21
  134676. 00FDh unable to unhook INT 09
  134677. 00FEh unable to release memory
  134678. Program: SBOS is a SoundBlaster emulator for the Gravis UltraSound
  134679. InstallCheck: test for the ASCII signature "SBOS" at offset 0Ah in the
  134680. interrupt handler's segment (similar to one of the possible EMS
  134681. installation checks)
  134682. Range: SBOS may use INT 78-INT 7F
  134683. Note: this function may not be called if any SBOS vectors have been hooked
  134684. SeeAlso: INT 21/AX=FD12h,INT 78"UltraMID"
  134685. --------s-7E00FF-----------------------------
  134686. INT 7E - SBOS v3.82 - SET INTERRUPT FOR ???
  134687. AX = 00FFh
  134688. BL = new interrupt vector to hook
  134689. Return: BX = 03CDh if supported
  134690. Desc: unhooks the current interrupt handler for ???, and reconnects it to the
  134691. specified new interrupt number
  134692. SeeAlso: AX=00F7h,AX=00F9h,AX=00FEh
  134693. --------s-7E01-------------------------------
  134694. INT 7E - MaxSBOS v0.21 - ???
  134695. AH = 01h
  134696. ???
  134697. Return: ???
  134698. Program: MaxSBOS is a SoundBlaster FM synthesis emulator for the Gravis
  134699. UltraSound MAX
  134700. Range: INT 78-INT 7F, selected by commandline parameter
  134701. Note: the installation check is the same as for 'regular' SBOS (see AX=00FEh)
  134702. although the API in v0.21 does not provide the functions present in
  134703. the older SBOS
  134704. SeeAlso: AX=00FEh,AH=02h,AH=03h
  134705. --------s-7E02-------------------------------
  134706. INT 7E - MaxSBOS v0.21 - ???
  134707. AH = 02h
  134708. Return: AX = FFFFh
  134709. SeeAlso: AX=00FEh,AH=01h,AH=03h
  134710. --------s-7E03-------------------------------
  134711. INT 7E - MaxSBOS v0.21 - NOP
  134712. AH = 03h
  134713. Return: nothing
  134714. SeeAlso: AX=00FEh,AH=01h,AH=02h
  134715. --------m-7E5857BL57-------------------------
  134716. INT 7E - XLOAD - INSTALLATION CHECK
  134717. AX = 5857h
  134718. BL = 57h
  134719. Return: AX = 0000h if installed
  134720. Program: XLOAD is the LOADHIGH-equivalent from Helix Software's Netroom
  134721. SeeAlso: AX=5857h/BL=5Ah,AX=5857h/BL=5Bh
  134722. --------m-7E5857BL5A-------------------------
  134723. INT 7E - XLOAD - GET ???
  134724. AX = 5857h
  134725. BL = 5Ah
  134726. Return: AX = 0000h
  134727. CX = ???
  134728. DS:SI -> ???
  134729. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Bh
  134730. --------m-7E5857BL5B-------------------------
  134731. INT 7E - XLOAD - GET XLOAD MEMORY SIZE
  134732. AX = 5857h
  134733. BL = 5Bh
  134734. Return: AX = 0000h
  134735. CX = segment of XLOAD TSR
  134736. DX = size of memory block in which XLOAD TSR is located
  134737. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Ah
  134738. --------s-7E--80-----------------------------
  134739. INT 7E - IWSBSDRV v1.41 - GET ???
  134740. AL = 80h
  134741. Return: DX:AX -> ???
  134742. SeeAlso: AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87h
  134743. --------s-7E--81-----------------------------
  134744. INT 7E - IWSBSDRV v1.41 - ???
  134745. AL = 81h
  134746. ???
  134747. Return: ???
  134748. SeeAlso: AL=80h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87h
  134749. --------s-7E--82-----------------------------
  134750. INT 7E - IWSBSDRV v1.41 - GET ???
  134751. AL = 82h
  134752. Return: AX = ??? (FFFFh)
  134753. SeeAlso: AL=80h,AL=81h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87h
  134754. --------s-7E--83-----------------------------
  134755. INT 7E - IWSBSDRV v1.41 - ??? (CALLS VIWD.VXD)
  134756. AL = 83h
  134757. ???
  134758. Return: ???
  134759. SeeAlso: AL=80h,AL=81h,AL=82h,AL=84h,AL=85h,AL=86h,AL=87h
  134760. SeeAlso: INT 2F/AX=1684h/BX=38DAh"VIWD"
  134761. --------s-7E--84-----------------------------
  134762. INT 7E - IWSBSDRV v1.41 - WAKE PROGRAM???
  134763. AL = 84h
  134764. Return: AL = status
  134765. 00h successful
  134766. else failed
  134767. SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=85h,AL=86h,AL=87h
  134768. SeeAlso: INT 2F/AX=CD04h"InterWave"
  134769. --------s-7E--85-----------------------------
  134770. INT 7E - IWSBSDRV v1.41 - SET ??? FLAG
  134771. AL = 85h
  134772. Return: nothing
  134773. SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=86h,AL=87h
  134774. --------s-7E--86-----------------------------
  134775. INT 7E - IWSBSDRV v1.41 - HOOK INT 21
  134776. AL = 86h
  134777. Return: AX,BX,DX,ES destroyed
  134778. SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=87h
  134779. --------s-7E--87-----------------------------
  134780. INT 7E - IWSBSDRV v1.41 - RESTORE INT 21
  134781. AL = 87h
  134782. Return: AX,DX destroyed
  134783. SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h
  134784. --------V-7F---------------------------------
  134785. INT 7F - Halo88 - API
  134786. BX = function number (see #03866)
  134787. additional parameters on stack
  134788. Return: ???
  134789. Program: Halo88 is a suite of graphics routines
  134790. Note: according to Stuart Kemp, the code appears to make no provisions for
  134791. chaining
  134792. (Table 03866)
  134793. Values for Halo88 API function:
  134794. 64h arc
  134795. 65h bar
  134796. 66h box
  134797. 67h circle
  134798. 68h clr
  134799. 69h default hatch style
  134800. 6Ah default line style
  134801. 6Bh delhcur
  134802. 6Ch delln / deltcur
  134803. 6Dh ellipse
  134804. 6Eh fill
  134805. 6Fh flood
  134806. 70h flood2
  134807. 71h init graphics
  134808. 72h init hcur
  134809. 73h init marker
  134810. 74h init tcur
  134811. 75h inqarc
  134812. 76h inqbknd
  134813. 77h inqclr
  134814. 78h inqerr
  134815. 79h inqgcur
  134816. 7Ah inqhcur
  134817. 7Bh inqmarker
  134818. 7Dh inqtcur
  134819. 7Eh inqtext
  134820. 7Fh lnabs
  134821. 80h lnrel
  134822. 81h markerabs
  134823. 82h markerrel
  134824. 83h moveabs
  134825. 84h movehcurabs
  134826. 85h movehcurrel
  134827. 86h moverel
  134828. 87h movetcurabs
  134829. 88h movetcurrel
  134830. 89h movefrom
  134831. 8Ah moveto
  134832. 8Bh pie
  134833. 8Ch polylnabs
  134834. 8Dh polylnrel
  134835. 8Eh ptabs
  134836. 8Fh ptrel
  134837. 91h setasp
  134838. 92h set color
  134839. 93h set font
  134840. 94h set hatch style
  134841. 95h set line style
  134842. 97h settext
  134843. 98h set text color
  134844. 99h btext
  134845. 9Ah setseg
  134846. 9Bh display
  134847. 9Ch setscreen
  134848. 9Eh close graphics
  134849. 9Fh ftinit
  134850. A0h ftlocate
  134851. A1h ftext
  134852. A5h set viewport
  134853. A6h set window
  134854. A7h set world
  134855. AAh ftcolor
  134856. ACh initlp
  134857. ADh inqasp
  134858. AEh inqdev
  134859. AFh inqdisplay
  134860. B0h inqft
  134861. B1h inqftcolor
  134862. B2h inqinterlace
  134863. B3h inqlpa
  134864. B4h inqlpg
  134865. B5h inqmode
  134866. B6h inqscreen
  134867. B7h inqversion
  134868. B8h roam
  134869. B9h scroll
  134870. BAh setieee
  134871. BBh set interlace
  134872. BCh shift
  134873. BDh start graphics
  134874. BEh vpan
  134875. CBh gwrite
  134876. CCh gread
  134877. CDh setxor
  134878. CEh rbox
  134879. CFh rcir
  134880. D0h rlnabs
  134881. D1h rlnrel
  134882. D2h delbox
  134883. D3h delcir
  134884. D5h setseg2
  134885. DCh worldoff
  134886. DDh mapwtod
  134887. DEh mapdtow
  134888. DFh mapwton
  134889. E0h mapntow
  134890. E1h mapdton
  134891. E2h mapntod
  134892. E3h inqworld
  134893. E4h inqviewport
  134894. E5h set line width
  134895. E6h lnjoint
  134896. E7h set locator
  134897. E8h read locator
  134898. E9h setdev
  134899. EBh setstext
  134900. ECh setstclr
  134901. EDh setstang
  134902. EEh stext
  134903. EFh inqstext
  134904. F0h setdegree
  134905. F1h inqstsize
  134906. F2h polyfabs
  134907. F3h polyfrel
  134908. F4h inqdrange
  134909. F5h inqstang
  134910. F6h orglocator
  134911. F7h inqlocator
  134912. F8h inqarea
  134913. F9h setipal
  134914. FAh setborder
  134915. FBh inqcrange
  134916. FEh setclip
  134917. FFh fcir
  134918. 100h setcrange
  134919. 101h setdrange
  134920. 102h setlattr
  134921. 103h polycabs
  134922. 104h polycrel
  134923. 108h memcom
  134924. 109h memexp
  134925. 10Ah memmov
  134926. 10Eh movefx
  134927. 10Fh movetx
  134928. 110h inqrgb
  134929. 111h save image
  134930. 112h restore image
  134931. 113h setapal
  134932. 114h setxpal
  134933. 118h inqtsize
  134934. 12Eh gprint
  134935. 130h setprn
  134936. 131h setpattr
  134937. 133h setbattr
  134938. 135h pexpand
  134939. 136h ptnorm
  134940. 137h pfnorm
  134941. 13Bh inqprn
  134942. 13Ch lopen
  134943. 13Dh lclose
  134944. 13Eh lappend
  134945. 13Fh lrecord
  134946. 140h lswitch
  134947. 142h inqfun
  134948. 15Dh lsetup
  134949. 15Eh lrest
  134950. 15Fh lsave
  134951. --------N-7F---------------------------------
  134952. INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
  134953. AL = request ID
  134954. 01h "Request"/"RequestDirect"
  134955. ES:BX -> pRq
  134956. DX ignored
  134957. 04h "Wait"
  134958. ES:BX -> ppMsgRet
  134959. DX = exchange
  134960. 05h "AllocExch"
  134961. ES:BX -> pExchRet
  134962. 06h "DeAllocExch"
  134963. DX = exchange
  134964. 07h "Check"
  134965. ES:BX -> ppMsgRet
  134966. DX = exchange
  134967. CX = 4354h ('CT')
  134968. Return: AX = status
  134969. 0000h successful
  134970. --------S-7F---------------------------------
  134971. INT 7F - Telebit ACS SERIAL I/O
  134972. ES:SI-> parameter block (see #03867)
  134973. Return: CF set on error
  134974. CF clear on success
  134975. InstallCheck: test for the signature "PDGATEWRKSTNIF" just prior to the
  134976. interrupt handler
  134977. Index: installation check;Telebit ACS Serial I/O
  134978. Format of Telebit ACS parameter block:
  134979. Offset Size Description (Table 03867)
  134980. 00h BYTE command (see #03868)
  134981. 01h BYTE gateway number
  134982. 02h BYTE reserved
  134983. 03h BYTE port
  134984. 04h 17 BYTEs auxiliary buffer
  134985. 15h BYTE session
  134986. 16h WORD count of bytes passed to API
  134987. 18h DWORD buffer pointer passed to/from API
  134988. 1Ch WORD count of bytes passed from API
  134989. 1Eh BYTE return code (see #03869)
  134990. (Table 03868)
  134991. Values for Telebit ACS command:
  134992. 3Ch status
  134993. 3Dh connect
  134994. 3Eh disconnect
  134995. 3Fh read
  134996. 40h data/command write
  134997. 41h clear receive buffer
  134998. 42h get configuration
  134999. 43h get receiver status
  135000. 44h raw write
  135001. 45h search servers
  135002. 46h set transmit buffer size
  135003. (Table 03869)
  135004. Values for Telebit ACS return code:
  135005. 00h success
  135006. 01h invalid session
  135007. 05h servername invalid
  135008. 06h NetWare fileserver bindery is locked
  135009. 07h communication server not active
  135010. 08h general failure in NetWare fileserver
  135011. 09h not logged into a fileserver
  135012. 10h connection table full
  135013. 11h no response from communication server
  135014. 12h connection attempt terminated abnormally
  135015. 13h connection refused - no sessions available
  135016. 14h gateway number/port already in use
  135017. 15h invalid connection response
  135018. 16h port invalid
  135019. 17h incorrect version in server response
  135020. 18h gateway number/port combination not configured
  135021. 19h initialization has not been completed
  135022. 20h no more sockets are available
  135023. 21h no active poolname
  135024. 23h FATAL internal interface error
  135025. 24h registration of host workstation failed - name is already in use
  135026. 25h registration of host workstation failed - workstation name table full
  135027. 26h registration of host workstation failed - only one session may be
  135028. registered for dial-in
  135029. FFh Telebit ACS API is busy - retry later
  135030. --------N-7F---------------------------------
  135031. INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE
  135032. InstallCheck: test for the signature "Lynn" in the four bytes preceding the
  135033. interrupt handler; if present, the current program is running as a
  135034. DOS task on a non-dedicated NetWare 2.x file server.
  135035. Note: Before placing the server into "console" mode, it is recommended that
  135036. NetWare broadcast messages be disabled with INT 21/AH=DEh/DL=00h.
  135037. SeeAlso: INT 21/AH=DEh/DL=04h
  135038. Index: installation check;non-dedicated NetWare server
  135039. --------S-7F---------------------------------
  135040. INT 7F U - YTERM - ???
  135041. SeeAlso: INT 7E"YTERM"
  135042. --------E-7F---------------------------------
  135043. INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7
  135044. Notes: this vector is overwritten when GO32 starts but is not restored by
  135045. early versions of the DOS extender
  135046. the newest versions of GO32 dynamically allocate the vectors used
  135047. for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  135048. SeeAlso: INT 0F"IRQ7",INT 7E"GO32"
  135049. ----------7F---------------------------------
  135050. INT 7F - Canon IXHND2 Scanner Interface
  135051. --------U-7F---------------------------------
  135052. INT 7F - SBS WinRun 1.00 - TRANSMITTER ENTRY POINT
  135053. DS:SI -> WinRun control block (WCB) (see #03870)
  135054. Return: WinRun receiver status returned in WCB
  135055. Program: WinRun is a DOS/Windows utility written by Sven B. Schreiber to start
  135056. Windows applications from a virtual DOS machine under Windows
  135057. Note: The WinRun transmitter (WINRUN-T.COM) and receiver (WINRUN-R.EXE) need
  135058. to be up and running
  135059. Format of the WinRun control block (WCB):
  135060. Offset Size Description (Table 03870)
  135061. 00h DWORD pointer to ASCIZ command string
  135062. 04h WORD (ret) WinRun receiver status
  135063. 0000h-001Fh WinExec() error
  135064. 0020h-FFFEh WinExec() instance handle
  135065. FFFFh Windows not running or WinRun receiver not
  135066. installed
  135067. --------N-7F---------------------------------
  135068. INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)
  135069. Notes: the words at C800h:0000h and C800h:0002h will both be 584Eh if the
  135070. MW386 multitasking system is present (i.e. signature "NXNX")
  135071. NTNX allows its API to be placed on a different interrupt than 7Fh at
  135072. load time. To determine the actual vector used, open the device
  135073. "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with
  135074. INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will
  135075. be the actual interrupt number being used; the other interrupts may
  135076. be found with INT 7F/AH=09h/CL=03h
  135077. --------N-7F---------------------------------
  135078. INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK
  135079. Note: a program may determine that it is running on an ANSK Slave by checking
  135080. the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this
  135081. address is RAM, and should not be written. However, the above check
  135082. will not work on Slaves with <1MB RAM or those using the SLIM.SYS
  135083. device driver
  135084. --------N-7F00-------------------------------
  135085. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
  135086. AH = 00h
  135087. DS:DX -> ASCIZ semaphore name (max 64 bytes)
  135088. Return: AL = status (see #03871)
  135089. AH = semaphore owner if status=02h
  135090. SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h
  135091. (Table 03871)
  135092. Values for Alloy function status:
  135093. 00h successful
  135094. 01h invalid function
  135095. 02h semaphore already locked
  135096. 03h unable to lock/unlock semaphore
  135097. 04h semaphore space exhausted
  135098. 05h host/target PC did not respond (NTNX)
  135099. --------T-7F00-------------------------------
  135100. INT 7F - MultiLink Advanced v1.0+ - ENQUEUE SYSTEM RESOURCE
  135101. AH = 00h
  135102. BX = resource identifier
  135103. AL = wait flag
  135104. Return: AL = status
  135105. 00h successful
  135106. 01h resource not available
  135107. 02h user error
  135108. InstallCheck: ensure that the interrupt vector is not pointing at segment
  135109. 0000h, then test whether the byte at offset 0000h in the interrupt
  135110. handler's segment is E9h
  135111. Notes: function will not return until the resource is available if AL is
  135112. nonzero on entry
  135113. a maximum of 100 resources may be enqueued at once
  135114. SeeAlso: AH=01h"MultiLink"
  135115. --------N-7F00-------------------------------
  135116. INT 7F - G8BPQ v4.07+ - GET NODE/SWITCH VERSION AND DESCRIPTION
  135117. AH = 00h
  135118. ES:SI -> buffer for "USERS" text string
  135119. Return: AX = 4250h ('BP') if installed
  135120. BX = 5120h ('Q ') if installed
  135121. DX = version number (DH = major, DL = minor)
  135122. CX = length of returned string
  135123. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  135124. John Wiseman which allows a PC to act as a node in an AX.25 network
  135125. SeeAlso: AH=01h"G8BPQ",AH=09h"G8BPQ"
  135126. --------N-7F01-------------------------------
  135127. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
  135128. AH = 01h
  135129. DS:DX -> ASCIZ semaphore name (max 64 bytes)
  135130. Return: AL = status (see #03871)
  135131. AH = semaphore owner if status=02h
  135132. SeeAlso: AH=00h,AH=02h,AH=41h
  135133. --------T-7F01-------------------------------
  135134. INT 7F - MultiLink Advanced v1.0+ - DEQUEUE SYSTEM RESOURCE
  135135. AH = 01h
  135136. BX = resource identifier
  135137. Return: AL = status
  135138. 00h successful
  135139. 02h user error
  135140. Note: the indicated resource may be dequeued even if it was enqueued by
  135141. another task
  135142. SeeAlso: AH=00h"MultiLink",AH=02h"MultiLink"
  135143. --------V-7F01-------------------------------
  135144. INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS
  135145. AH = 01h
  135146. Return: BX = 1234h if installed
  135147. DX:AX -> array of FAR entry points
  135148. CH = driver major version
  135149. CL = driver minor version
  135150. Note: TIGACD 2.05 returns CF set on unrecognized functions in AX
  135151. SeeAlso: AX=1234h,AX=4321h
  135152. --------N-7F01-------------------------------
  135153. INT 7F - G8BPQ v4.00+ - HOST MODE - SET APPLICATION FLAGS AND MASK
  135154. AH = 01h
  135155. AL = stream number (01h-40h)
  135156. CL = new application flags
  135157. bit 7: monitored frames available via AH=0Bh"G8BPQ"
  135158. DL = new application mask
  135159. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  135160. John Wiseman which allows a PC to act as a node in an AX.25 network
  135161. Range: INT 00h to INT FFh, set in configuration file BPQCFG.TXT for v4.03+
  135162. (earlier versions were hard-wired for INT 7F)
  135163. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=0Bh"G8BPQ"
  135164. --------I-7F0104BX0000-----------------------
  135165. INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)
  135166. AX = 0104h (HLLAPI gate ID)
  135167. BX = 0000h
  135168. DS:SI -> parameter control block (see #03872)
  135169. Return: parameter control block updated
  135170. InstallCheck: for the Novell HLLAPI TSR, test for the signature "CXI" (for
  135171. the company Novell bought) immediately prior to the interrupt handler
  135172. SeeAlso: AX=0105h,AX=ABCDh
  135173. Format of HLLAPI parameter control block:
  135174. Offset Size Description (Table 03872)
  135175. 00h 3 BYTEs signature = 'PCB'
  135176. 03h BYTE function number (see #03873,#03874)
  135177. 04h WORD segment of control string
  135178. 06h WORD offset of control string
  135179. 08h WORD length of control string, unless explicit end-of-str char set
  135180. 0Ah BYTE unused (IBM)
  135181. ControlString[0] (Rabbit)
  135182. 0Bh WORD return code (see #03876)
  135183. 0Dh WORD maximum length of control string (IBM)
  135184. unused (Rabbit)
  135185. (Table 03873)
  135186. Values for HLLAPI function number:
  135187. 00h OEM function (Query system for Attachmate implementation)
  135188. 01h Connect presentation space
  135189. 02h Disconnect presentation space
  135190. 03h Send string of keystrokes as if typed from keyboard
  135191. 04h Wait ~60s, returns status of presentation space
  135192. 05h Copy current presentation space into a user-defined buffer
  135193. 06h Search presentation space for first occurrence of a specified string
  135194. 07h Query cursor location in current presentation space
  135195. 08h Copy part or all of current presentation space into user buffer
  135196. 09h Set session parameters; parameters vary by vendor (see #03875)
  135197. 0Ah Get info on sessions currently connected
  135198. 0Bh Lock current presentation space
  135199. 0Ch Unlock previously locked presentation space
  135200. 0Dh Return copy of operator info area (OIA) of current presentation space
  135201. 0Eh get attribute byte for given position in the current presentation space
  135202. 0Fh copy string of characters to the current presentation space
  135203. 10h workstation control functions
  135204. 11h storage manager functions, intended primarily for BASIC applications
  135205. (not implemented by Rabbit)
  135206. 12h set delay period in half-second intervals
  135207. 14h get info on level of workstation support used
  135208. 15h reset session parameters to default values
  135209. 16h get detailed info on the current session
  135210. 17h start host notification to application on presentation sp or OIA update
  135211. 18h check host update when host notification enabled
  135212. 19h stop host notification
  135213. 1Eh search field within current presentation space for string
  135214. 1Fh get first positionof a selected field in the current presentation space
  135215. 20h get length of specified field
  135216. 21h copy string into a specified field
  135217. 22h copy specified field into a user-defined buffer
  135218. 23h create alternate presentation space (IBM only), don't use with BASIC
  135219. 24h switch to alternate presentation space (IBM only), not with BASIC
  135220. 25h display cursor in specified area (IBM only), don't use with BASIC
  135221. 26h display alternate presentation space (IBM only), don't use with BASIC
  135222. 27h delete alternate presentation space (IBM only), don't use with BASIC
  135223. 28h set cursor
  135224. 29h start Close Intercept
  135225. 2Ah query Close Intercept
  135226. 2Bh stop Close Intercept
  135227. 32h start intercepting keystrokes to allow filtering
  135228. 33h get keystrokes after turning on interception
  135229. 34h notify operator when keystroke rejected by filter subroutine
  135230. 35h stop intercepting keystrokes
  135231. 5Ah send file
  135232. 5Bh receive file
  135233. 5Ch run a program (not implemented by Rabbit)
  135234. 5Dh execute DOS command (not implemented by Rabbit)
  135235. 63h change presentation space position to PC display row/col or vice versa
  135236. 65h connect to Window Services
  135237. 66h disconnect from Window Services
  135238. 67h set/query window coordinates
  135239. 68h set/query window status
  135240. 69h change presentation space name
  135241. 78h connect Structured Fields
  135242. 79h disconnect Structured Fields
  135243. 7Ah query size of communications buffer
  135244. 7Bh allocate communications buffer
  135245. 7Ch free communications buffer
  135246. 7Dh get request completion state
  135247. 7Eh read Structured Fields
  135248. 7Fh write Structured Fields
  135249. FFh Get info on DCA implementation
  135250. (Table 03874)
  135251. Values for LLAPI function number:
  135252. 80h initialize LLAPI (internal call)
  135253. 83h set Session ID (one-character ID)
  135254. 84h read Session ID (one-character ID)
  135255. 85h lock 327x keyboard
  135256. 86h unlock 327x keyboard
  135257. 87h wait for Clear to Send
  135258. 88h type ASCII character
  135259. 89h type 327x key
  135260. 8Ah read keyboard lock state
  135261. 8Fh force screen update
  135262. 90h view session
  135263. 91h relinquish (suspend foreground until background becomes idle)
  135264. 92h poke screen character
  135265. 93h poke translated character
  135266. 94h peek screen character
  135267. 95h peek translated character
  135268. 96h set cursor position
  135269. 97h send scan code (Rabbit only)
  135270. 98h synchronize (returns after keystroke queue empty)
  135271. 99h type PC key (Rabbit only)
  135272. (Table 03875)
  135273. Values for HLLAPI Function 09h Session Parameters:
  135274. ASCII ??? (Rabbit only)
  135275. ATTRIB return attributes in hex
  135276. NOATTRIB return attributes as blanks
  135277. CONPHYS make physical connection
  135278. CONLOG only make logical connection
  135279. EAB copy extended attribute bytes along with data
  135280. NOEAB copy data only
  135281. ESC=n set escape character to "n" (default '@')
  135282. EOT=n set end of string character (default 00h)
  135283. FPAUSE full-duration pause
  135284. FTNOWAIT return immediately from functions 5Ah and 5Bh (Rabbit only)
  135285. FTWAIT wait for file transfer to complete (Rabbit only)
  135286. IPAUSE interruptable pause
  135287. RABESC ??? (Rabbit only)
  135288. NORABESC ??? (Rabbit only)
  135289. SCANCODE ??? (Rabbit only)
  135290. STRLEN use explicit string lengths
  135291. STREOT use terminated strings
  135292. SRCHALL search entire presentation space
  135293. SRCHFROM search from specified offset
  135294. SRCHFRWD search forward from position 1
  135295. SRCHBKWD search backward from last position in presentation space
  135296. TIMEOUT=n ??? (Rabbit only)
  135297. TWAIT wait specified time for keyboard ready
  135298. LWAIT wait until keyboard ready
  135299. NWAIT no wait
  135300. TRON enable tracing
  135301. TROFF disable tracing
  135302. AUTORESET send reset before sending keys with function 03h
  135303. NORESET don't send reset
  135304. QUIET don't display messages sent with INT 21/AH=09h
  135305. NOQUIET allow messages to be displayed
  135306. TIMEOUT=n set timeout in 30-second intervals, 0 = wait until ^Break
  135307. XLATE translate extended attribute bytes
  135308. NOXLATE don't translate
  135309. NEWRET use HLLAPI v3.0 return code conventions
  135310. OLDRET use HLLAPI v2.0 return code conventions
  135311. (Table 03876)
  135312. Values for Windows HLLAPI return code:
  135313. 00h successful
  135314. 01h Presentation Space not connected/requested size unavailable
  135315. 02h invalid function or parameter error/invalid block ID
  135316. 03h file transfer complete
  135317. 04h file transfer complete (segmented)/Presentation Space busy
  135318. 05h inhibited or keyboard locked
  135319. 06h data truncated
  135320. 07h invalid Presentation Space position
  135321. 08h operation not available
  135322. 09h system error
  135323. 0Ah blocking error
  135324. 0Bh resource not available
  135325. 0Ch session stopped
  135326. 14h undefined key combination
  135327. 15h OIA updated
  135328. 16h Presentation Space updated
  135329. 17h both Presentation Space and OIA updated
  135330. 18h no such field
  135331. 19h no keystrokes available
  135332. 1Ah Presentation Space or Operator Information Area changed
  135333. 1Bh file transfer aborted
  135334. 1Ch zero-length field
  135335. 1Eh cursor type invalid
  135336. 1Fh keystroke overflow
  135337. 20h another application is already connected
  135338. 22h message sent to host cancelled
  135339. 23h transmission from host cancelled
  135340. 24h lost contact with host
  135341. 25h function successful
  135342. 26h function incomplete
  135343. 27h a DDM session is already connected
  135344. 28h disconnected, but asynchronous requests still pending
  135345. 29h buffer already in use
  135346. 2Ah no matching request found
  135347. 12Dh invalid function number
  135348. 12Eh file not found
  135349. 131h access denied
  135350. 134h out of memory
  135351. 136h environment invalid
  135352. 137h format invalid
  135353. 270Eh (9998) invalid Presentation Space ID
  135354. 270Fh (9999) invalid row or column code
  135355. ---Windows HLLAPI extensions---
  135356. F000h asynchronous call already in progress
  135357. F001h invalid asynchronous task ID
  135358. F002h blocking call cancelled
  135359. F003h underlying subsystem not started
  135360. F004h unsupported application version
  135361. --------V-7F0105-----------------------------
  135362. INT 7F - IBM 8514/A Adapter Interface (HDILOAD.EXE)
  135363. AX = 0105h
  135364. Return: CF set on error
  135365. CF clear if successful
  135366. CX:DX -> array of FAR pointers to entry points (see #03877)
  135367. Note: most functions are invoked by pushing the DWORD parameter block pointer
  135368. and then performing a FAR call via the appropriate vector of the
  135369. entry point array, placing the FAR address of the function's
  135370. parameter block on the top of the stack
  135371. SeeAlso: AX=0104h,AX=0106h,AX=ABCDh
  135372. (Table 03877)
  135373. Values for HDILOAD function number: (do FAR call via entry_points+4*function)
  135374. 08h HOPEN Open Adapter (see #03909)
  135375. 09h HSMX Set Mix (see #03938)
  135376. 10h HINT Interrupt (see #03905)
  135377. 13h HLDPAL Load Palette (see #03906)
  135378. 15h HBBW BitBLT Write Image Data (see #03892)
  135379. 17h HBBR BitBLT Read Image Data (see #03893)
  135380. 18h HBBCHN Chained Data Go (see #03891)
  135381. 19h HBBC BitBLT Copy Data (see #03890)
  135382. 1Dh HQMODE Get Current Mode (see #03915)
  135383. 20h HRECT Fill Rectangle (see #03917)
  135384. 22h HCLOSE Close Adapter and place in quiescent state (see #03898)
  135385. 30h HINIT Initialize State (see #03904)
  135386. 31h HSYNC Synchronize Adapter (see #03943)
  135387. 39h HSPAL Save Palette (see #03940)
  135388. 3Ah HRPAL Restore Palette (see #03920)
  135389. ??? HSGQ Set Graphics Quality (see #03929)
  135390. ??? HSCOORD Set Coordinate Type (see #03926)
  135391. ??? HESC Escape, Terminate Processing (see #03903)
  135392. ??? HSBCOL Set Background Color (see #03921)
  135393. ??? HSBP Set Bit Plane Controls (see #03922)
  135394. ??? HSCMP Set Color Comparison Register (see #03924)
  135395. ??? HSCOL Set Color (see #03925)
  135396. ??? HSHS Set Scissors (clipping rectangle) (see #03930)
  135397. ??? HXLATE Assign Text Color (see #03944)
  135398. ??? HQMODES Get Adapter Modes (see #03916)
  135399. ??? HQDPS Get Drawing Process State Size (see #03914)
  135400. ??? HQDFPAL Get Default Palette (see #03913)
  135401. ??? HQCOORD Get Coordinate Type (see #03911)
  135402. ??? HQCP Get Current Position (see #03912)
  135403. ??? HSMODE Change Mode (see #03936)
  135404. ??? HLINE Draw Line at Given Position (see #03907)
  135405. ??? HCLINE Draw Line at Current Position (see #03897)
  135406. ??? HRLINE Draw Line Relative from Given Position (see #03918)
  135407. ??? HCRLINE Draw Line Relative at Current Position (see #03900)
  135408. ??? HSLT Set Line Type (see #03933)
  135409. ??? HSLW Set Line Width (see #03935)
  135410. ??? HSLPC Save Line Pattern Count (see #03932)
  135411. ??? HRLPC Restore Line Pattern Count (see #03919)
  135412. ??? HCBBW BitBLT Write Image Data at Current Position (see #03894)
  135413. ??? HBAR Begin Area (see #03889)
  135414. ??? HEAR End Area (see #03901)
  135415. ??? HSPATT Set Pattern (see #03941)
  135416. ??? HSPATTO Set Pattern Reference Point (see #03942)
  135417. ??? HEGS Erase Graphics Screen (see #03902)
  135418. ??? HSCP Set Current Position (see #03927)
  135419. ??? HMRK Set Marker (see #03908)
  135420. ??? HCMRK Set Marker at Current Position (see #03899)
  135421. ??? HSMARK Set Marker Shape (see #03937)
  135422. ??? HSCS Set Character Set (see #03928)
  135423. ??? HCHST Write Character String at Given Position (see #03896)
  135424. ??? HCCHST Write Character String at Current Position (see #03895)
  135425. ??? HSCELL Set Cell Size for Alphanumeric Text (see #03923)
  135426. ??? ABLOCKMFI Write Character/Attribute Block MFI (see #03880)
  135427. ??? ABLOCKCGA Write Character Block CGA (see #03878)
  135428. ??? AERASE Erase Rectangle (see #03883)
  135429. ??? ASCROLL Scroll Rectangle (see #03884)
  135430. ??? ACURSOR Set Alphanumerics Cursor Position (see #03882)
  135431. ??? ASCUR Set Alphanumeric Cursor Shape (see #03885)
  135432. ??? ASFONT Set Font (see #03886)
  135433. ??? AXLATE Assign Alphanumeric Color (see #03888)
  135434. Format of ABLOCKCGA parameter block:
  135435. Offset Size Description (Table 03878)
  135436. 00h WORD 000Ah (length of following data)
  135437. 02h WORD top-left coordinate of character block
  135438. 04h WORD width of block
  135439. 06h DWORD -> block of WORDs describing characters (see #03879)
  135440. 0Ah BYTE length of block in characters
  135441. 0Bh BYTE highlight attribute
  135442. bit 4: transparent background
  135443. bit 5: overstrike
  135444. bit 6: reverse video
  135445. bit 7: underscore
  135446. SeeAlso: #03880
  135447. Bitfields for one character in ABLOCKCGA character block:
  135448. Bit(s) Description (Table 03879)
  135449. 3-0 foreground attribute
  135450. 7-4 background attribute
  135451. 15-8 character code
  135452. Format of ABLOCKMFI parameter block:
  135453. Offset Size Description (Table 03880)
  135454. 00h WORD 0009h (length of following data)
  135455. 02h WORD top-left coordinate of character block
  135456. 04h WORD width of block
  135457. 06h DWORD -> block of DWORDs describing characters (see #03881)
  135458. 0Ah BYTE length of block in characters
  135459. SeeAlso: #03878
  135460. Bitfields for one character in ABLOCKMFI character block:
  135461. Bit(s) Description (Table 03881)
  135462. 7-0 reserved
  135463. 9-8 low two bits of font number
  135464. 12 transparent background
  135465. 13 overstrike
  135466. 14 reverse video
  135467. 15 underscore
  135468. 19-16 foreground color attribute
  135469. 23-20 background color attribute
  135470. 31-24 character code
  135471. Format of ACURSOR parameter block:
  135472. Offset Size Description (Table 03882)
  135473. 00h WORD 0002h (length of following data)
  135474. 02h BYTE column (0-based)
  135475. 03h BYTE row (0-based)
  135476. SeeAlso: #03885
  135477. Format of AERASE parameter block:
  135478. Offset Size Description (Table 03883)
  135479. 00h WORD 0005h (length of following data)
  135480. 02h BYTE left-most column (0-based)
  135481. 03h BYTE top-most row (0-based)
  135482. 04h BYTE rectangle's width in character cells
  135483. 05h BYTE rectangle's height in character cells
  135484. 06h BYTE background color (bits 7-4)
  135485. SeeAlso: #03884
  135486. Format of ASCROLL parameter block:
  135487. Offset Size Description (Table 03884)
  135488. 00h WORD 0006h (length of following data)
  135489. 02h BYTE left-most column (0-based) of source
  135490. 03h BYTE top-most row (0-based) of source
  135491. 04h BYTE rectangle's width in character cells
  135492. 05h BYTE rectangle's height in character cells
  135493. 06h BYTE left-most column (0-based) of destination
  135494. 07h BYTE top-most row (0-based) of destination
  135495. SeeAlso: #03883
  135496. Format of ASCUR parameter block:
  135497. Offset Size Description (Table 03885)
  135498. 00h WORD 0003h (length of following data)
  135499. 02h BYTE cursor start line (00h = top of cell, FFh = keep current shape)
  135500. 03h BYTE cursor stop line
  135501. 04h BYTE cursor attribute
  135502. 00h normal
  135503. 01h hidden
  135504. 02h left-arrow (requires start = 2 and stop = bottom of cell)
  135505. 03h right-arrow (requires start = 2 and stop = bottom of cell)
  135506. Notes: no cursor is shown if the start line is greater than the stop line
  135507. the alphanumeric cursor is hidden after each mode change
  135508. SeeAlso: #03882,INT 10/AH=01h
  135509. Format of ASFONT parameter block:
  135510. Offset Size Description (Table 03886)
  135511. 00h WORD 0005h (length of following data)
  135512. 02h BYTE font number (0-3)
  135513. 03h DWORD -> character set definition block (see #03887)
  135514. Format of 8514/A character set definition block:
  135515. Offset Size Description (Table 03887)
  135516. 00h BYTE reserved
  135517. 01h BYTE type of character set
  135518. 00h bitmapped, 01h&02h reserved, 03h short-stroke font
  135519. 02h BYTE reserved
  135520. 03h DWORD reserved
  135521. 07h BYTE cell width in pixels
  135522. 08h BYTE cell height in pixels
  135523. 09h BYTE reserved
  135524. 0Ah WORD cell size in bytes
  135525. 0Ch WORD flags
  135526. bit 15: reserved (0)
  135527. bit 14: color bitmap
  135528. bit 13: proportional spacing
  135529. 0Eh DWORD -> index table
  135530. 12h DWORD -> character width table
  135531. 16h BYTE initial code point
  135532. 17h BYTE final code point
  135533. 18h DWORD -> character definition table
  135534. 1Ch WORD reserved
  135535. 1Eh DWORD -> second character definition table
  135536. 22h WORD reserved
  135537. 24h DWORD -> third character definition table
  135538. Format of AXLATE parameter block:
  135539. Offset Size Description (Table 03888)
  135540. 00h WORD 0080h (length of following data)
  135541. 02h 64 BYTEs character foreground translation table
  135542. 42h 64 BYTEs character background translation table
  135543. Format of HBAR parameter block:
  135544. Offset Size Description (Table 03889)
  135545. 00h WORD 0000h (no data following)
  135546. SeeAlso: #03901
  135547. Format of HBBC parameter block:
  135548. Offset Size Description (Table 03890)
  135549. 00h WORD 0010h (length of following data)
  135550. 02h WORD data format
  135551. 0000h across-the-plane copy (color expansion)
  135552. 0008h through-the-plane copy
  135553. 04h WORD data rectangle's width
  135554. 06h WORD data rectangle's height
  135555. 08h BYTE source bit plane number (across-the-plane copies only)
  135556. 09h BYTE reserved
  135557. 0Ah 2 WORDs X,Y coordinates of source's upper-left corner in display memory
  135558. 0Eh 2 WORDs X,Y coordinates of destination's upper-left corner in
  135559. display memory
  135560. Note: copies data from one location in video memory to another
  135561. SeeAlso: #03891
  135562. Format of HBBCHN parameter block:
  135563. Offset Size Description (Table 03891)
  135564. 00h WORD 0006h (length of following data)
  135565. 02h DWORD -> data buffer in system memory
  135566. 06h WORD number of bytes to transfer
  135567. Note: this function performs the actual data transfer for a bitBLT set up
  135568. with HBBR, HBBW, or HCBBW
  135569. SeeAlso: #03890,#03892,#03893,#03894
  135570. Format of HBBR parameter block:
  135571. Offset Size Description (Table 03892)
  135572. 00h WORD 000Ch or 0014h (length of following data)
  135573. 02h WORD data format
  135574. 0000h across-the-plane copy (color expansion)
  135575. 0008h through-the-plane copy
  135576. 04h WORD data rectangle's width
  135577. 06h WORD data rectangle's height
  135578. 08h BYTE source bit plane number
  135579. 09h BYTE reserved
  135580. 0Ah 2 WORDs X,Y coordinates of destination's upper-left corner in
  135581. display memory
  135582. ---optional---
  135583. 0Eh WORD sub-rectangle left margin in pixels
  135584. 10h WORD sub-rectangle top margin in pixels
  135585. 12h WORD sub-rectangle width
  135586. 14h WORD sub-rectangle height
  135587. SeeAlso: #03891,#03892,#03894
  135588. Format of HBBW parameter block:
  135589. Offset Size Description (Table 03893)
  135590. 00h WORD 000Ah or 0012h (length of following data)
  135591. 02h WORD data format
  135592. 0000h across-the-plane copy (color expansion)
  135593. 0008h through-the-plane copy
  135594. 04h WORD data rectangle's width
  135595. 06h WORD data rectangle's height
  135596. 08h 2 WORDs X,Y coordinates of destination in display memory
  135597. ---optional---
  135598. 0Ch WORD sub-rectangle left margin in pixels
  135599. 0Eh WORD sub-rectangle top margin in pixels
  135600. 10h WORD sub-rectangle width
  135601. 12h WORD sub-rectangle height
  135602. SeeAlso: #03891,#03893,#03894
  135603. Format of HCBBW parameter block:
  135604. Offset Size Description (Table 03894)
  135605. 00h WORD 0006h or 000Eh (length of following data)
  135606. 02h WORD data format
  135607. 0000h across-the-plane copy (color expansion)
  135608. 0008h through-the-plane copy
  135609. 04h WORD data rectangle's width
  135610. 06h WORD data rectangle's height
  135611. ---optional---
  135612. 08h WORD sub-rectangle left margin in pixels
  135613. 0Ah WORD sub-rectangle top margin in pixels
  135614. 0Ch WORD sub-rectangle width
  135615. 0Eh WORD sub-rectangle height
  135616. SeeAlso: #03891,#03892,#03893
  135617. Format of HCCHST parameter block:
  135618. Offset Size Description (Table 03895)
  135619. 00h WORD length of following data
  135620. 02h N BYTEs ASCII string to display (length given by 'length' field above)
  135621. SeeAlso: #03896
  135622. Format of HCHST parameter block:
  135623. Offset Size Description (Table 03896)
  135624. 00h WORD length of following data
  135625. 02h 2 WORDs X,Y of left-bottom corner of string on screen
  135626. 06h N BYTEs ASCII string to display (length given by 'length' field above)
  135627. SeeAlso: #03895
  135628. Format of HCLINE parameter block:
  135629. Offset Size Description (Table 03897)
  135630. 00h WORD length of following data (multiple of 4)
  135631. 02h 2N WORDs X,Y coordinates for each of N points in polyline
  135632. Notes: the first line segment is drawn beginning at the current position
  135633. on completion, the current position is set to the last point drawn
  135634. SeeAlso: #03907,#03918,#03900
  135635. Format of HCLOSE parameter block:
  135636. Offset Size Description (Table 03898)
  135637. 00h WORD 0001h (length of following data)
  135638. 01h BYTE (ret) return code
  135639. SeeAlso: #03909
  135640. Format of HCMRK parameter block:
  135641. Offset Size Description (Table 03899)
  135642. 00h WORD length of following data
  135643. 02h 2N WORDs X,Y of N points
  135644. Note: draws N+1 marker symbols, the first one at the current position
  135645. SeeAlso: #03908
  135646. Format of HCRLINE parameter block:
  135647. Offset Size Description (Table 03900)
  135648. 00h WORD length of following data (multiple of 4)
  135649. 02h 2N WORDs X,Y coordinates relative to the position of the previous point
  135650. (current position for first point) for each of N points in
  135651. polyline
  135652. Notes: the first line segment is drawn beginning at the current position
  135653. on completion, the current position is set to the last point drawn
  135654. SeeAlso: #03907,#03897,#03918
  135655. Format of HEAR parameter block:
  135656. Offset Size Description (Table 03901)
  135657. 00h WORD 0001h (length of following data)
  135658. 02h BYTE area definition flags
  135659. bits 7-6: End Area type
  135660. 00 complete, perform fill
  135661. 01 suspend definition
  135662. 10 complete, but don't fill
  135663. SeeAlso: #03889
  135664. Format of HEGS parameter block:
  135665. Offset Size Description (Table 03902)
  135666. 00h WORD 0000h (no data following)
  135667. Format of HESC parameter block:
  135668. Offset Size Description (Table 03903)
  135669. 00h WORD 0000h (no data following)
  135670. Format of HINIT parameter block:
  135671. Offset Size Description (Table 03904)
  135672. 00h WORD 0002h (length of following data)
  135673. 02h WORD segment of task buffer
  135674. SeeAlso: #03943
  135675. Format of HINT parameter block:
  135676. Offset Size Description (Table 03905)
  135677. 00h WORD 0004h (length of following data)
  135678. 02h DWORD interrupt/event identifier
  135679. bit 31: vertical blanking
  135680. Format of HLDPAL parameter block:
  135681. Offset Size Description (Table 03906)
  135682. 00h WORD 000Ah (length of following data)
  135683. 02h BYTE palette ID (00h = user, 01h = default)
  135684. 03h BYTE reserved
  135685. 04h WORD number of first palette entry
  135686. 06h WORD number of entries
  135687. 08h DWORD -> palette entries
  135688. SeeAlso: #03940
  135689. Format of HLINE parameter block:
  135690. Offset Size Description (Table 03907)
  135691. 00h WORD length of following data (multiple of 4)
  135692. 02h 2N WORDs X,Y coordinates for each of N points in polyline
  135693. Note: on completion, the current position is set to the last point drawn
  135694. SeeAlso: #03897,#03918,#03900
  135695. Format of HMRK parameter block:
  135696. Offset Size Description (Table 03908)
  135697. 00h WORD length of following data (multiple of 4)
  135698. 02h 2N WORDs X,Y for N points
  135699. SeeAlso: #03899
  135700. Format of HOPEN parameter block:
  135701. Offset Size Description (Table 03909)
  135702. 00h WORD 0003h (length of following data)
  135703. 01h BYTE initialization flags
  135704. bit 6: don't load default palette
  135705. bit 7: clear bitplanes
  135706. 02h BYTE mode type (see #03910)
  135707. 03h BYTE (ret) return code
  135708. bit 7: no adapter (hardware mismatch)
  135709. SeeAlso: #03898
  135710. (Table 03910)
  135711. Values for 8514/A display mode:
  135712. 0000h 12x20 characters, 1024x768
  135713. 0001h 8x14 characters, 640x480
  135714. 0002h 8x14 characters, 1024x768
  135715. 0003h 7x15 characters, 1024x768
  135716. Format of HQCOORD parameter block:
  135717. Offset Size Description (Table 03911)
  135718. 00h WORD 0004h (length of following data)
  135719. 02h BYTE (ret) coordinate format
  135720. bits 7-4: bytes per coordinate
  135721. bits 3-0: fraction bytes in coordinate
  135722. 03h BYTE (ret) relative coordinate format
  135723. bits 7-4: bytes per coordinate
  135724. bits 3-0: fraction bytes in coordinate
  135725. 04h BYTE (ret) number of dimensions (2-4)
  135726. 05h BYTE (ret) test results
  135727. bit 7: coordinate format not supported
  135728. bit 6: relative coordinate format not supported
  135729. bit 5: specified dimension not supported
  135730. Format of HQCP parameter block:
  135731. Offset Size Description (Table 03912)
  135732. 00h WORD 0004h (length of following data)
  135733. 02h WORD (ret) current X position
  135734. 04h WORD (ret) current Y position
  135735. Format of HQDFPAL parameter block:
  135736. Offset Size Description (Table 03913)
  135737. 00h WORD 0040h (length of following data)
  135738. 02h 16 DWORDs (ret) color index values
  135739. Note: the default palette is set to match the default EGA/VGA 16-color
  135740. palettes
  135741. Format of HQDPS parameter block:
  135742. Offset Size Description (Table 03914)
  135743. 00h WORD 0006h (length of following data)
  135744. 02h WORD (ret) size of data buffer in bytes
  135745. 04h WORD (ret) stack size in bytes
  135746. 06h WORD (ret) size of palette save buffer in bytes
  135747. Format of HQMODE parameter block:
  135748. Offset Size Description (Table 03915)
  135749. 00h WORD 0012h (length of following data)
  135750. 02h BYTE current video mode (see #03910)
  135751. 03h WORD driver version
  135752. bit 6: 80286/8086 CPU
  135753. bit 5: 8 bit planes instead of 4 planes
  135754. bits 4-0: hardware release number
  135755. 05h BYTE adapter type
  135756. 03h 8514/A
  135757. 04h XGA
  135758. 06h BYTE reserved (display type)
  135759. 07h BYTE character cell width
  135760. 08h BYTE character cell height
  135761. 09h BYTE number of bit planes
  135762. 0Ah WORD screen width (pixels)
  135763. 0Ch WORD screen height (pixels)
  135764. 0Eh WORD horizontal resolution (pixels/inch)
  135765. 10h WORD vertical resolution (pixels/inch)
  135766. 12h BYTE flag: 00h = monochrome, FFh = color
  135767. 13h BYTE intensity levels
  135768. SeeAlso: #03916
  135769. Format of HQMODES parameter block:
  135770. Offset Size Description (Table 03916)
  135771. 00h WORD 0021h (length of following data)
  135772. 02h BYTE (ret) adapter type
  135773. 03h 32 BYTEs (ret) available display modes (FFh byte marks end of data)
  135774. SeeAlso: #03915
  135775. Format of HRECT parameter block:
  135776. Offset Size Description (Table 03917)
  135777. 00h WORD 0008h (legth of following data)
  135778. 02h 2 WORDs X,Y coordinates of top left corner or rectangle
  135779. 06h WORD rectangle's width
  135780. 08h WORD rectangle's height
  135781. Note: the rectangle is filled using the current pattern, color, and mix
  135782. Format of HRLINE parameter block:
  135783. Offset Size Description (Table 03918)
  135784. 00h WORD length of following data (multiple of 4)
  135785. 02h 2 WORDs X,Y coordinates of starting point
  135786. 06h 2N WORDs X,Y coordinates relative to the position of the previous point
  135787. for each of N points in polyline
  135788. Note: on completion, the current position is set to the last point drawn
  135789. SeeAlso: #03907,#03897,#03900
  135790. Format of HRLPC parameter block:
  135791. Offset Size Description (Table 03919)
  135792. 00h WORD 0000h (no data following)
  135793. Note: used for continuity of lines crossing scissors boundaries
  135794. SeeAlso: #03932
  135795. Format of HRPAL parameter block:
  135796. Offset Size Description (Table 03920)
  135797. 00h WORD 0300h (length of following data)
  135798. 02h 768 BYTEs buffer containing previously-saved palette table
  135799. SeeAlso: #03940
  135800. Format of HSBCOL parameter block:
  135801. Offset Size Description (Table 03921)
  135802. 00h WORD 0004h (length of following data)
  135803. 02h DWORD color index for new background color
  135804. SeeAlso: #03925
  135805. Format of HSBP parameter block:
  135806. Offset Size Description (Table 03922)
  135807. 00h WORD 000Ch (length of following data)
  135808. 02h DWORD bitmask for graphics updates
  135809. 06h DWORD bitmask for alphanumeric updates
  135810. 0Ah DWORD display bitmask
  135811. Format of HSCELL parameter block:
  135812. Offset Size Description (Table 03923)
  135813. 00h
  135814. Format of HSCMP parameter block:
  135815. Offset Size Description (Table 03924)
  135816. 00h WORD 0005h (length of following data)
  135817. 02h DWORD comparison color
  135818. 06h BYTE logical operation
  135819. 00h True
  135820. 01h pel > testcolor
  135821. 02h pel == testcolor
  135822. 03h pel < testcolor
  135823. 04h False
  135824. 05h pel >= testcolor
  135825. 06h pel <> testcolor
  135826. 07h pel <= testcolor
  135827. Format of HSCOL parameter block:
  135828. Offset Size Description (Table 03925)
  135829. 00h WORD 0004h (length of following data)
  135830. 02h DWORD color index for new foreground color
  135831. SeeAlso: #03921
  135832. Format of HSCOORD parameter block:
  135833. Offset Size Description (Table 03926)
  135834. 00h WORD 0003h (length of following data)
  135835. 02h BYTE coordinate format
  135836. bits 7-4: bytes per coordinate
  135837. bits 3-0: fraction bytes in coordinate
  135838. 03h BYTE relative coordinates format
  135839. bits 7-4: bytes per coordinate
  135840. bits 3-0: fraction bytes in coordinate
  135841. 04h BYTE number of dimensions (2-4)
  135842. Format of HSCP parameter block:
  135843. Offset Size Description (Table 03927)
  135844. 00h WORD 0004h (length of following data)
  135845. 02h 2 WORDs X,Y or coordinate for new current position
  135846. Format of HSCS parameter block:
  135847. Offset Size Description (Table 03928)
  135848. 00h WORD 0004h (length of following data)
  135849. 02h DWORD -> character set definition
  135850. Format of HSGQ parameter block:
  135851. Offset Size Description (Table 03929)
  135852. 00h WORD 0002h (length of following data)
  135853. 02h WORD quality settings (see #03931)
  135854. Format of HSHS parameter block:
  135855. Offset Size Description (Table 03930)
  135856. 00h WORD 0008h (length of following data)
  135857. 02h WORD left edge of clipping rectangle (-2048 to +6143)
  135858. 04h WORD right edge
  135859. 06h WORD top edge
  135860. 08h WORD bottom edget
  135861. Bitfields for 8514/A quality settings:
  135862. Bit(s) Description (Table 03931)
  135863. 15 reserved
  135864. 14 high precision
  135865. 13 reserved
  135866. 12-11 pel code
  135867. 00 not drawn
  135868. 01 drawn
  135869. 02 conditional on overpainting/mixes
  135870. 10 don't close areas to be filed
  135871. 9-0 reserved
  135872. Format of HSLPC parameter block:
  135873. Offset Size Description (Table 03932)
  135874. 00h WORD 0000h (no data following)
  135875. Note: used for continuity of lines crossing scissors boundaries
  135876. SeeAlso: #03919
  135877. Format of HSLT parameter block:
  135878. Offset Size Description (Table 03933)
  135879. 00h WORD 0006h (length of following data)
  135880. 02h BYTE line type (see #03934)
  135881. 03h BYTE reserved
  135882. 04h DWORD -> user line-type definition (if user type)
  135883. SeeAlso: #03935
  135884. (Table 03934)
  135885. Values for 8514/A line type:
  135886. 00h user line type
  135887. 01h dotted
  135888. 02h short dashes
  135889. 03h dash-dot
  135890. 04h double dotted
  135891. 05h dashed
  135892. 06h dash double dot
  135893. 07h solid
  135894. 08h invisible
  135895. SeeAlso: #03933
  135896. Format of HSLW parameter block:
  135897. Offset Size Description (Table 03935)
  135898. 00h WORD 0001h (length of following data)
  135899. 02h BYTE width of line in pixels
  135900. SeeAlso: #03933
  135901. Format of HSMODE parameter block:
  135902. Offset Size Description (Table 03936)
  135903. 00h WORD 0001h (length of following data)
  135904. 02h BYTE new display mode number (see #03910)
  135905. Format of HSMRK paramter block:
  135906. Offset Size Description (Table 03937)
  135907. 00h WORD 000Eh (length of following data)
  135908. 02h BYTE cell width
  135909. 03h BYTE cell height
  135910. 04h BYTE flags
  135911. 05h BYTE reserved
  135912. 06h WORD length of marker symbol
  135913. 08h DWORD -> image definition data
  135914. 0Ch DWORD -> color definition data
  135915. SeeAlso: #03941
  135916. Format of HSMX parameter block:
  135917. Offset Size Description (Table 03938)
  135918. 00h WORD 0002h (length of following data)
  135919. 02h BYTE foreground mix (see #03939)
  135920. 03h BYTE background mix (see #03939)
  135921. (Table 03939)
  135922. Values for 8514/A mix:
  135923. 00h retain previous mix
  135924. 01h source OR destination
  135925. 02h source
  135926. 04h source XOR destination
  135927. 05h leave as-is
  135928. 06h max(source,destination)
  135929. 07h min(source,destination)
  135930. 08h source+destination (clipped)
  135931. 09h destination-source (clipped to zero)
  135932. 0Ah source-destination (clipped to zero)
  135933. 0Bh average source and destination
  135934. 10h zero destination
  135935. 11h source AND destination
  135936. 12h source AND NOT destination
  135937. 13h source
  135938. 14h NOT source AND destination
  135939. 15h leave as-is
  135940. 16h source XOR destination
  135941. 17h source OR destination
  135942. 18h NOT source AND NOT destination
  135943. 19h NOT (source XOR destination)
  135944. 1Ah NOT destination
  135945. 1Bh source OR NOT destination
  135946. 1Ch NOT source
  135947. 1Dh NOT source OR destination
  135948. 1Eh NOT source OR NOT destination
  135949. 1Fh set all bits of destination
  135950. Format of HSPAL parameter block:
  135951. Offset Size Description (Table 03940)
  135952. 00h WORD 0300h (length of following data)
  135953. 02h 768 BYTEs buffer for palette table
  135954. SeeAlso: #03906,#03920
  135955. Format of HSPATT parameter block:
  135956. Offset Size Description (Table 03941)
  135957. 00h WORD 000Eh (length of following data)
  135958. 02h BYTE cell width
  135959. 03h BYTE cell height
  135960. 04h BYTE flags
  135961. 05h BYTE reserved
  135962. 06h WORD length of marker symbol
  135963. 08h DWORD -> image definition data
  135964. 0Ch DWORD -> color definition data
  135965. SeeAlso: #03937,#03942
  135966. Format of HSPATTO parameter block:
  135967. Offset Size Description (Table 03942)
  135968. 00h WORD 0004h (length of following data)
  135969. 02h 2 WORDs X,Y of pattern reference point (origin)
  135970. SeeAlso: #03941
  135971. Format of HSYNC parameter block:
  135972. Offset Size Description (Table 03943)
  135973. 00h WORD 0002h (length of following data)
  135974. 02h WORD segment of task state buffer
  135975. SeeAlso: #03904
  135976. Format of HXLATE parameter block:
  135977. Offset Size Description (Table 03944)
  135978. 00h WORD 0020h (length of following data)
  135979. 02h 32 BYTEs color index table
  135980. --------V-7F0105-----------------------------
  135981. INT 7F - IBM XGA Adapter Interface (XGAAIDOS.SYS)
  135982. AX = 0105h
  135983. Return: CF set on error
  135984. CF clear if successful
  135985. CX:DX -> array of FAR pointers to entry points (see #03877)
  135986. Note: this API is a superset of the 8514/A Adapter Interface
  135987. (see AX=0105h"HDILOAD")
  135988. --------V-7F0106-----------------------------
  135989. INT 7F - HDILOAD Mach32 Adapter Interface - UNINSTALL
  135990. AX = 0106h
  135991. Return: AX = 0105h if successfully unloaded
  135992. SeeAlso: AX=0105h
  135993. --------N-7F02-------------------------------
  135994. INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
  135995. AH = 02h
  135996. DS:DX -> ASCIZ semaphore name (max 64 bytes)
  135997. Return: AL = status (see #03871)
  135998. AH = semaphore owner if status=02h
  135999. SeeAlso: AH=00h,AH=01h,AH=42h
  136000. --------T-7F02-------------------------------
  136001. INT 7F - MultiLink Advanced v1.0+ - RELEASE CPU
  136002. AH = 02h
  136003. Return: ???
  136004. Desc: yields CPU to other tasks
  136005. SeeAlso: AH=00h"MultiLink",AH=09h"MultiLink",INT 15/AX=1000h
  136006. --------N-7F02-------------------------------
  136007. INT 7F - G8BPQ v4.00+ - HOST MODE - SEND FRAME
  136008. AH = 02h
  136009. AL = stream number (01h-40h)
  136010. CX = length of frame
  136011. ES:SI -> frame to be sent
  136012. SeeAlso: AH=00h"G8BPQ",AH=03h"G8BPQ",AH=07h"G8BPQ",AH=0Ah"G8BPQ"
  136013. --------f-7F0200-----------------------------
  136014. INT 7F - Btrieve Multi-User - GIVE UP TIME???
  136015. AX = 0200h
  136016. SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve"
  136017. --------N-7F03-------------------------------
  136018. INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER
  136019. AH = 03h
  136020. Return: AL = user number
  136021. AH = machine number (MW386)
  136022. Note: this function call is the recommended method for a CPU-bound process to
  136023. prevent its priority from being lowered
  136024. SeeAlso: AH=04h,AH=05h,AH=A1h
  136025. --------N-7F03-------------------------------
  136026. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE FRAME
  136027. AH = 03h
  136028. AL = stream number (01h-40h)
  136029. ES:DI -> buffer for frame (must be large enough for a full frame; 350
  136030. bytes is usually sufficient)
  136031. Return: BX = number of pending frames (0000h if returned frame was last avail)
  136032. CX = length of received frame
  136033. SeeAlso: AH=02h"G8BPQ",AH=07h"G8BPQ",AH=0Bh"G8BPQ"
  136034. --------N-7F04-------------------------------
  136035. INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS
  136036. AH = 04h
  136037. Return: AL = total number of users on currrent machine (MW386)
  136038. AL = number of slaves on system (NTNX)
  136039. SeeAlso: AH=03h
  136040. --------N-7F04-------------------------------
  136041. INT 7F - G8BPQ v4.00+ - HOST MODE - GET STREAM STATUS
  136042. AH = 04h
  136043. AL = stream number (01h-40h)
  136044. Return: CX = state (0000h disconnected, 0001h connected)
  136045. DX = delta state (0000h no change, 0001h changed since last check)
  136046. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=05h"G8BPQ"
  136047. --------N-7F05-------------------------------
  136048. INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL
  136049. AH = 05h
  136050. AL = function
  136051. 00h lock system (disable slave services)
  136052. 01h unlock system
  136053. 02h enable spooler
  136054. 03h disable spooler
  136055. 04h enable slave timer update
  136056. 05h disable slave timer update
  136057. 06h enable form feeds
  136058. 07h disable form feeds
  136059. SeeAlso: INT 17/AH=A4h
  136060. --------N-7F05-------------------------------
  136061. INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
  136062. AH = 05h
  136063. DX:DI -> buffer for user information record (see #03945)
  136064. Notes: MW386 provides this function for backward compatibility only, and sets
  136065. many of the fields to zero because they are meaningless under MW386
  136066. this function has no effect when called by the host (user 0)
  136067. SeeAlso: AH=03h
  136068. Format of Alloy user information record:
  136069. Offset Size Description (Table 03945)
  136070. 00h WORD segment of video RAM
  136071. 02h WORD segment of secondary copy of video RAM
  136072. 04h WORD offset of screen update flag (see INT 10/AH=8Bh)
  136073. flag nonzero if update needed
  136074. 06h WORD video NMI enable port
  136075. (not used by MW386, set to 0000h)
  136076. 08h WORD video NMI disable port
  136077. (not used by MW386, set to 0000h)
  136078. 0Ah BYTE processor type
  136079. 00h 8088
  136080. 01h V20
  136081. 02h 8086
  136082. 03h V30
  136083. 06h 80386
  136084. 0Bh WORD multitasking flag (00h = single tasking, 01h = multitasking)
  136085. (not used by MW386, set to 0000h)
  136086. 0Dh WORD offset of terminal driver
  136087. (not used by MW386, set to 0000h)
  136088. 0Fh BYTE port for console I/O
  136089. (not used by MW386, set to 0000h)
  136090. 10h WORD offset of processor communication busy flag
  136091. bit 7 set when slave communicating with host
  136092. 12h WORD pointer to FAR NX system call
  136093. (not used by MW386, set to 0000h)
  136094. 14h WORD offset of 16-byte user configuration record (see AH=38h)
  136095. 16h WORD offset of command/status word
  136096. 18h WORD offset of screen valid flag (see INT 10/AH=93h)
  136097. nonzero if screen must be repainted
  136098. 1Ah WORD offset of screen repaint flag
  136099. 1Ch WORD pointer to NEAR NX system call
  136100. (not used by MW386, set to 0000h)
  136101. 1Eh WORD offset for intercept flags
  136102. (not used by MW386, set to 0000h)
  136103. intercept flag = FFh if MS-DOS intercepts should be disabled
  136104. 20h WORD offset of terminal lock flag (see INT 10/AH=92h)
  136105. lock flag = FFh if backgrnd screen updates should be suspended
  136106. 22h 26 BYTEs reserved
  136107. --------N-7F05-------------------------------
  136108. INT 7F - G8BPQ v4.00+ - HOST MODE - ACKNOWLEDGE STREAM STATUS CHANGE
  136109. AH = 05h
  136110. AL = stream number (01h-40h)
  136111. Note: this function must be called in order to receive a report of another
  136112. status change
  136113. SeeAlso: AH=00h"G8BPQ",AH=04h"G8BPQ"
  136114. --------N-7F06-------------------------------
  136115. INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO
  136116. AH = 06h
  136117. AL = drive number (1=A:, 2=B:, etc)
  136118. ES:DI -> drive info record (see #03946)
  136119. Return: AX = status
  136120. 0000h successful
  136121. ES:DI buffer filled
  136122. 0001h not shared drive
  136123. Format of Alloy drive info record:
  136124. Offset Size Description (Table 03946)
  136125. 00h WORD segment of drive IO-REQUEST structure (MS-DOS DPB)
  136126. 02h WORD segment of allocation map (owner table)
  136127. one byte per FAT entry, containing user ID owning that entry
  136128. 04h WORD segment of master FAT for drive (copy of FAT on disk)
  136129. 06h WORD pointer to configuration file
  136130. 08h WORD total number of clusters
  136131. 0Ah WORD bytes per sector
  136132. 0Ch WORD sectors per cluster
  136133. 0Eh BYTE FAT type (0Ch = 12-bit, 10h = 16-bit)
  136134. --------N-7F06-------------------------------
  136135. INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE
  136136. AH = 06h
  136137. DL = drive number (1=A:,2=B:,etc)
  136138. CX = number of clusters to allocate
  136139. Return: AH = status
  136140. 00h successful
  136141. CX = number of clusters still free
  136142. 10h invalid shared drive request
  136143. CL = first and second shared drives
  136144. 11h invalid cluster count (must be 01h-FFh)
  136145. --------N-7F06-------------------------------
  136146. INT 7F - G8BPQ v4.00+ - HOST MODE - SESSION CONTROL
  136147. AH = 06h
  136148. AL = stream number (01h-40h)
  136149. CX = subfunction
  136150. 0000h connect to node
  136151. DL bit 0: use BBS callsign instead of Node Call
  136152. 0001h connect to node
  136153. use BBS Call if APPLMASK=1
  136154. 0002h disconnect
  136155. 0003h return user to node
  136156. SeeAlso: AH=01h"G8BPQ",AH=04h"G8BPQ"
  136157. --------N-7F07-------------------------------
  136158. INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
  136159. AH = 07h
  136160. Return: ES:DI -> shared drive list (see #03947)
  136161. Note: MW386 considers all fixed disks to be shared drives; only C and D will
  136162. be returned as shared
  136163. Format of Alloy shared drive list:
  136164. Offset Size Description (Table 03947)
  136165. 00h BYTE string length
  136166. 01h BYTE number of shared drives
  136167. 02h N BYTEs one byte per shared drive
  136168. --------N-7F07-------------------------------
  136169. INT 7F - G8BPQ v4.00+ - HOST MODE - GET BUFFER COUNTS FOR STREAM
  136170. AH = 07h
  136171. AL = stream number (01h-40h)
  136172. Return: BX = number of pending receive frames
  136173. CX = number of unacknowledged sent frames
  136174. DX = number of buffers available
  136175. SeeAlso: AH=02h"G8BPQ",AH=03h"G8BPQ"
  136176. --------N-7F08-------------------------------
  136177. INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS
  136178. AH = 08h
  136179. CL = function
  136180. 00h get original interrupt vector
  136181. 01h get Network Executive interrrupt
  136182. AL = interrupt number
  136183. DX:SI -> DWORD to hold interrupt vector
  136184. Return: AL = status
  136185. 00h successful
  136186. 01h interrupt vector not used by network executive
  136187. 02h invalid subfunction
  136188. Note: the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h,
  136189. 1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh
  136190. SeeAlso: AH=09h/CL=03h,INT 21/AH=35h
  136191. --------N-7F08--CL02-------------------------
  136192. INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT
  136193. AH = 08h
  136194. CL = 02h
  136195. DX = timeout in seconds
  136196. Return: AL = status
  136197. 00h successful
  136198. 02h invalid subfunction
  136199. --------N-7F08-------------------------------
  136200. INT 7F - G8BPQ v4.00+ - HOST MODE - PORT CONTROL/INFORMATION
  136201. AH = 08h
  136202. AL = stream number (01h-40h)
  136203. Return: ES:DI -> 10-byte buffer containing blank-padded callsign
  136204. ---v4.05+ ---
  136205. AL = radio port to which channel is connected (level 2)
  136206. AH = session type (see #03948)
  136207. BX = L2 paclen for session
  136208. CX = maximum frame size
  136209. DX = L4 window size or 0000h if not L4 circuit
  136210. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  136211. John Wiseman which allows a PC to act as a node in an AX.25 network
  136212. SeeAlso: AH=01h"G8BPQ",AH=02h"G8BPQ",AH=03h"G8BPQ",AH=0Ah"G8BPQ"
  136213. Bitfields for G8BPQ session type:
  136214. Bit(s) Description (Table 03948)
  136215. 0 L2LINK
  136216. 1 SESSION
  136217. 2 UPLINK
  136218. 3 DOWNLIND
  136219. 5 BPQHOST
  136220. --------T-7F09-------------------------------
  136221. INT 7F - MultiLink Advanced v1.0+ - SET TASK PRIORITY
  136222. AH = 09h
  136223. AL = priority (0-7)
  136224. Return: nothing
  136225. InstallCheck: ensure that the interrupt vector is not pointing at segment
  136226. 0000h, then test whether the byte at offset 0000h in the interrupt
  136227. handler's segment is E9h
  136228. Index: installation check;MultiLink Advanced
  136229. SeeAlso: AH=00h"MultiLink",AH=0Ah"MultiLink"
  136230. --------N-7F09-------------------------------
  136231. INT 7F - G8BPQ - proposed addition - GET NODE/APPLICATION CALLSIGN AND ALIAS
  136232. AH = 09h
  136233. AL = application
  136234. 00h node
  136235. 01h BBS
  136236. 02h HOST
  136237. 03h SYSOP
  136238. BL = what to get (00h callsign, 01h application name)
  136239. ES:SI -> buffer for callsign/name string
  136240. Return: CX = length of returned string
  136241. SeeAlso: AH=00h"G8BPQ",AH=01h"G8BPQ",AH=0Ch"G8BPQ"
  136242. --------N-7F09-------------------------------
  136243. INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING
  136244. AH = 09h
  136245. CL = function
  136246. 00h enable checking of RTNX.MUD file
  136247. 01h disable RTNX.MUD checking
  136248. --------N-7F09--CL02-------------------------
  136249. INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE
  136250. AH = 09h
  136251. CL = 02h
  136252. Note: in dedicated mode, the host will only poll for I/O requests from the
  136253. slave processors, and not provide workstation services
  136254. --------N-7F09--CL03-------------------------
  136255. INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT
  136256. AH = 09h
  136257. CL = 03h
  136258. AL = default interrupt number (67h,7Fh,etc)
  136259. Return: CL = actual interrupt which handles specified interrupt's calls
  136260. SeeAlso: AH=08h
  136261. --------N-7F0A--CL00-------------------------
  136262. INT 7F - Alloy NTNX - GET SYSTEM FLAGS
  136263. AH = 0Ah
  136264. CL = 00h
  136265. ES:DI -> buffer for system flags (see #03949)
  136266. Return: ES:DI buffer filled
  136267. Notes: on a slave, only the NX_Busy flag is returned
  136268. all three flags are at fixed positions, so this function only needs to
  136269. be called once
  136270. an interrupt handler should only perform DOS or device accesses when
  136271. all three flags are 00h
  136272. Format of Alloy system flags:
  136273. Offset Size Description (Table 03949)
  136274. 00h DWORD pointer to NX_Busy flag (nonzero when communicating with users)
  136275. 04h DWORD pointer to device driver busy flag
  136276. 08h DWORD pointer to InTimer flag
  136277. --------N-7F0A-------------------------------
  136278. INT 7F - G8BPQ v4.00+ - HOST MODE - TRANSMIT RAW (KISS) FRAME
  136279. AH = 0Ah
  136280. AL = radio port
  136281. ES:SI -> buffer containing data to be sent
  136282. CX = number of bytes to send
  136283. SeeAlso: AH=02h"G8BPQ",AH=08h"G8BPQ",AH=0Bh"G8BPQ"
  136284. --------T-7F0A-------------------------------
  136285. INT 7F - MultiLink Advanced v1.0+ - SET KEYBOARD TEST STATUS
  136286. AH = 0Ah
  136287. AL = task-switch status
  136288. 00h normal (disable task when it repeatedly polls keyboard)
  136289. 01h disable task until keyboard input available
  136290. FFh never disable task
  136291. Return: ???
  136292. SeeAlso: AH=09h"MultiLink"
  136293. --------N-7F0B--CL02-------------------------
  136294. INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE
  136295. AH = 0Bh
  136296. CL = 02h
  136297. AL = slave ID number
  136298. CH = DOS to activate
  136299. 00h graphics DOS
  136300. 01h character DOS
  136301. Return: AL = status
  136302. 00h successful
  136303. 01h nothing done, proper DOS type already loaded
  136304. --------N-7F0B-------------------------------
  136305. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE TRACE (RAW DATA) FRAME
  136306. AH = 0Bh
  136307. ES:DI -> buffer for received data (see #03950)
  136308. Return: CX = number of bytes received
  136309. Note: the specified buffer must be large enough to receive a full frame
  136310. SeeAlso: AH=03h"G8BPQ",AH=08h"G8BPQ",AH=0Ah"G8BPQ"
  136311. Format of G8BPQ received data:
  136312. Offset Size Description (Table 03950)
  136313. 00h WORD internal control information
  136314. 02h BYTE port number (bit 7 set if transmitted frame)
  136315. 03h WORD frame length including this header
  136316. 05h var user data
  136317. --------N-7F0C-------------------------------
  136318. INT 7F - G8BPQ v4.00+ - HOST MODE - UPDATE SWITCH INFORMATION
  136319. AH = 0Ch
  136320. DX = function
  136321. 0001h update beacon text
  136322. CX = length of data
  136323. ES:SI -> data to be sent in beacons
  136324. 0002h (v4.07+) initiate NODES broadcast
  136325. SeeAlso: AH=09h"G8BPQ"
  136326. --------N-7F0D00-----------------------------
  136327. INT 7F - G8BPQ v4.07+ - HOST MODE - GET AVAILABLE STREAM
  136328. AX = 0D00h
  136329. Return: AL = first available stream number, or FFh if none free
  136330. SeeAlso: AH=00h"G8BPQ",AH=0Dh
  136331. --------N-7F0D-------------------------------
  136332. INT 7F - G8BPQ v4.07+ - HOST MODE - ALLOCATE/DEALLOCATE STREAM
  136333. AH = 0Dh
  136334. AL = stream number (01h-FFh)
  136335. CL = function
  136336. 01h allocate stream
  136337. Return: CX = status (0000h successful, else already in use)
  136338. 02h deallocate stream
  136339. SeeAlso: AX=0D00h
  136340. --------N-7F0F-------------------------------
  136341. INT 7F - G8BPQ v4.00+ - HOST MODE - GET TIME MARKER
  136342. AH = 0Fh
  136343. Return: AX = time marker (clock ticks modulo 64K)
  136344. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  136345. John Wiseman which allows a PC to act as a node in an AX.25 network
  136346. SeeAlso: AH=01h"G8BPQ",AX=0D00h,INT 1A/AH=00h
  136347. --------N-7F10--CL00-------------------------
  136348. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL
  136349. AH = 10h
  136350. CL = 00h
  136351. AL = channel number
  136352. DX:DI -> channel buffer
  136353. Return: AL = status (00h-03h,0Dh) (see #03951)
  136354. Note: may not be invoked from within a hardware interrupt handler
  136355. SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h
  136356. (Table 03951)
  136357. Values for Alloy function status:
  136358. 00h successful
  136359. 01h busy
  136360. 02h channel range error (not 00h-3Fh)
  136361. 03h invalid subfunction
  136362. 0Ah channel not open
  136363. 0Ch channel already locked
  136364. 0Dh unable to open
  136365. --------N-7F10--CL01-------------------------
  136366. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
  136367. AH = 10h
  136368. CL = 01h
  136369. AL = channel number
  136370. Return: AL = status (00h-03h,0Ah) (see #03951)
  136371. Note: may not be invoked from within a hardware interrupt handler
  136372. SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h
  136373. --------N-7F10--CL02-------------------------
  136374. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
  136375. AH = 10h
  136376. CL = 02h
  136377. AL = channel number
  136378. Return: AL = status (00h-03h,0Ah,0Ch) (see #03951)
  136379. Note: may not be invoked from within a hardware interrupt handler
  136380. SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h
  136381. --------N-7F10--CL03-------------------------
  136382. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
  136383. AH = 10h
  136384. CL = 03h
  136385. AL = channel number
  136386. Return: AL = status (00h-03h,0Ah) (see #03951)
  136387. Notes: should only be used on channels locked with AH=10h/CL=02h, not on those
  136388. locked by receipt of a datagram
  136389. may not be invoked from within a hardware interrupt handler
  136390. SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h
  136391. --------N-7F10--CL04-------------------------
  136392. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
  136393. AH = 10h
  136394. CL = 04h
  136395. AL = channel number
  136396. Return: AL = status (00h-03h) (see #03951)
  136397. Notes: unlocks buffer after received datagram has been processed
  136398. may not be invoked from within a hardware interrupt handler
  136399. SeeAlso: AH=10h/CL=00h
  136400. --------N-7F10--CL05-------------------------
  136401. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
  136402. AH = 10h
  136403. CL = 05h
  136404. Return: AL = status (00h-03h) (see #03951)
  136405. Notes: clears all pending datagrams and clears buffer pointers before closing
  136406. the channels
  136407. may not be invoked from within a hardware interrupt handler
  136408. SeeAlso: AH=10h/CL=01h
  136409. --------N-7F10--CL06-------------------------
  136410. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
  136411. AH = 10h
  136412. CL = 06h
  136413. Return: AL = status (00h-03h) (see #03951)
  136414. Note: may not be invoked from within a hardware interrupt handler
  136415. SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h
  136416. --------N-7F10--CL07-------------------------
  136417. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
  136418. AH = 10h
  136419. CL = 07h
  136420. Return: AL = status (00h-03h) (see #03951)
  136421. Notes: unlocks all locked channels which have no pending datagrams
  136422. may not be invoked from within a hardware interrupt handler
  136423. SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h
  136424. --------N-7F10--CL08-------------------------
  136425. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS
  136426. AH = 10h
  136427. CL = 08h
  136428. DX = maximum channel number to lock
  136429. Return: AL = status (00h-03h) (see #03951)
  136430. Notes: locks channels numbered 00h through the value in DX
  136431. may not be invoked from within a hardware interrupt handler
  136432. SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h
  136433. --------N-7F10--CL09-------------------------
  136434. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS
  136435. AH = 10h
  136436. CL = 09h
  136437. DX = maximum channel number to unlock
  136438. Return: AL = status (00h-03h) (see #03951)
  136439. Notes: unlocks channels numbered 00h through the value in DX
  136440. may not be invoked from within a hardware interrupt handler
  136441. SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h
  136442. --------N-7F11-------------------------------
  136443. INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
  136444. AH = 11h
  136445. DX:SI -> request block (see #03953)
  136446. Return: AL = status (see #03952)
  136447. Note: if wildcard channel FFh used, actual channel number will be filled in
  136448. SeeAlso: AH=12h
  136449. (Table 03952)
  136450. Values for Alloy function status:
  136451. 00h successful
  136452. 01h busy
  136453. 02h channel range error (not 00h-3Fh)
  136454. 03h invalid subfunction
  136455. 0Ah packet too large (or <2 bytes if NTNX)
  136456. 0Bh can't send packet to itself
  136457. 0Ch invalid number of destinations
  136458. 0Dh destination channel number out of range
  136459. 0Eh destination user is busy
  136460. 0Fh destination user has locked channel
  136461. 10h channel not open
  136462. 11h no datagram server on destination (NTNX)
  136463. Format of Alloy request block:
  136464. Offset Size Description (Table 03953)
  136465. 00h DWORD pointer to packet to send
  136466. 04h WORD packet size in bytes (1-4096)
  136467. 06h BYTE number of destinations for packet (max 1Fh)
  136468. 07h 31 BYTEs destination user IDs (FFh = broadcast to all except sender)
  136469. 26h 31 BYTEs destination channels (FFh = first available channel)
  136470. 45h 31 BYTEs return destination statuses
  136471. --------N-7F12-------------------------------
  136472. INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM
  136473. AH = 12h
  136474. AL = channel number being acknowledged
  136475. DI:DX = 32-bit status to return to sender
  136476. Return: AL = status (see #03954)
  136477. Note: also unlocks the channel, allowing the next datagram to be received
  136478. SeeAlso: AH=11h,AH=15h/CL=04h
  136479. (Table 03954)
  136480. Values for Alloy function status:
  136481. 00h successful
  136482. 01h busy
  136483. 02h channel range error (not 00h-3Fh)
  136484. 03h invalid subfunction
  136485. 0Ah channel not open
  136486. 0Bh no message in channel
  136487. 0Ch destination slave busy--retry (NTNX)
  136488. 0Dh destination user not active
  136489. 0Eh destination slave not active (NTNX)
  136490. 0Fh destination disabled datagram service
  136491. --------V-7F1234-----------------------------
  136492. INT 7F - TIGA Communications Driver v2.05 - UNINSTALL
  136493. AX = 1234h
  136494. SeeAlso: AX=4321h
  136495. --------N-7F13--CL00-------------------------
  136496. INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS
  136497. AH = 13h
  136498. CL = 00h
  136499. Note: clears all pending datagrams and removes all channels opened in NTNX
  136500. compatibility mode
  136501. --------N-7F14--CL00-------------------------
  136502. INT 7F - Alloy NTNX, MW386 - SET RECEIVE ISR
  136503. AH = 14h
  136504. CL = 00h
  136505. DX:DI -> application FAR receive service routine (see #03955)
  136506. Return: AL = status (00h-03h) (see #03954)
  136507. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  136508. (Table 03955)
  136509. Values Alloy receive service routine is called with:
  136510. DH = sender ID
  136511. DL = channel with datagram
  136512. interrupts disabled
  136513. Return: AL = response code
  136514. 00h leave buffer locked, set channel status, and repeat call later
  136515. 01h release channel buffer
  136516. 02h change buffer pointer to DX:DI
  136517. AH,CX,DX,DI,SI may be destroyed
  136518. --------N-7F14--CL01-------------------------
  136519. INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
  136520. AH = 14h
  136521. CL = 01h
  136522. DX:DI -> application FAR acknowledge service routine (see #03956)
  136523. Return: AL = status (00h-03h) (see #03954)
  136524. Note: the service routine will be called as soon as an acknowledgment arrives
  136525. SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h
  136526. (Table 03956)
  136527. Values Alloy acknowledge service routine is called with:
  136528. DS:SI -> acknowledge structure (see #03960)
  136529. Return: AL = response code
  136530. 00h application busy, network executive should call again later
  136531. 01h acknowledge accepted
  136532. AH,DX,SI may be destroyed
  136533. --------N-7F14--CL02-------------------------
  136534. INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER
  136535. AH = 14h
  136536. CL = 02h
  136537. AL = channel number
  136538. DX:DI -> receive buffer
  136539. Return: AL = status (00h-03h) (see #03954)
  136540. Note: may be called from within a receive ISR or when a datagram is pending
  136541. SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h
  136542. --------N-7F14--CL03-------------------------
  136543. INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR
  136544. AH = 14h
  136545. CL = 03h
  136546. Return: DX:DI -> current receive ISR
  136547. SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h
  136548. --------N-7F14--CL04-------------------------
  136549. INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR
  136550. AH = 14h
  136551. CL = 04h
  136552. Return: DX:DI -> current acknowledge ISR
  136553. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  136554. --------N-7F14--CL05-------------------------
  136555. INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
  136556. AH = 14h
  136557. CL = 05h
  136558. DX:DI -> buffer for busy structure (see #03957)
  136559. Return: DX:DI buffer filled
  136560. Format of Alloy busy structure:
  136561. Offset Size Description (Table 03957)
  136562. 00h DWORD pointer to busy flag byte
  136563. 04h WORD fixed port address (FF00h)
  136564. --------N-7F15--CL00-------------------------
  136565. INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
  136566. AH = 15h
  136567. CL = 00h
  136568. AL = channel number
  136569. DX:DI -> status structure (see #03958)
  136570. Return: AL = status (00h-03h) (see #03954)
  136571. SeeAlso: AH=15h/CL=01h
  136572. Format of Alloy channel status structure:
  136573. Offset Size Description (Table 03958)
  136574. 00h BYTE channel status
  136575. bit 0: channel open
  136576. bit 1: channel buffer contains received data
  136577. bit 7: channel locked
  136578. 01h BYTE sender ID
  136579. --------N-7F15--CL01-------------------------
  136580. INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
  136581. AH = 15h
  136582. CL = 01h
  136583. DX:DI -> full-channel structure (see #03959)
  136584. Return: AL = status
  136585. 00h successful
  136586. 01h busy
  136587. 0Ah no datagrams available
  136588. Note: MW386 v1.0 returns the lowest channel with a datagram; newer versions
  136589. and NTNX return the oldest datagram
  136590. SeeAlso: AH=15h/CL=00h
  136591. Format of Alloy full-channel structure:
  136592. Offset Size Description (Table 03959)
  136593. 00h BYTE number of channel with oldest datagram
  136594. 01h BYTE sender ID
  136595. --------N-7F15--CL02-------------------------
  136596. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS
  136597. AH = 15h
  136598. CL = 02h
  136599. Return: AH = number of channels available (40h for MW386)
  136600. Note: the application may always assume at least 32 channels available
  136601. SeeAlso: AH=15h/CL=03h
  136602. --------N-7F15--CL03-------------------------
  136603. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE
  136604. AH = 15h
  136605. CL = 03h
  136606. DX:DI -> WORD for return value
  136607. Return: buffer WORD filled with maximum packet size (4096 for MW386)
  136608. SeeAlso: AH=15h/CL=02h
  136609. --------N-7F15--CL04-------------------------
  136610. INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
  136611. AH = 15h
  136612. CL = 04h
  136613. DX:DI -> status structure (see #03960)
  136614. Return: AL = status
  136615. 00h successful
  136616. DX:DI structure filled
  136617. 01h busy
  136618. 0Ah no acknowledgement has arrived
  136619. SeeAlso: AH=12h,AH=14h/CL=01h
  136620. Format of Alloy status structure:
  136621. Offset Size Description (Table 03960)
  136622. 00h BYTE sender ID
  136623. 01h BYTE channel number
  136624. 02h 4 BYTEs receiver status (see #03954)
  136625. --------N-7F16-------------------------------
  136626. INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
  136627. AH = 16h
  136628. DX:SI -> transfer structure (see #03961)
  136629. Return: AL = status
  136630. 00h successful
  136631. 0Ah source or destination out of range
  136632. 0Bh transfer kernel busy--try again
  136633. Notes: this call transfers memory contents directly between users; both source
  136634. and destination user IDs may differ from the caller's ID
  136635. no segment wrap is allowed
  136636. Format of Alloy transfer structure:
  136637. Offset Size Description (Table 03961)
  136638. 00h WORD bytes to transfer
  136639. 02h BYTE source ID
  136640. FEh = caller
  136641. 03h DWORD source address
  136642. 07h BYTE destination ID
  136643. FFh = all slaves except caller
  136644. FEh = caller
  136645. 08h DWORD destination address
  136646. --------N-7F21-------------------------------
  136647. INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)
  136648. AH = 21h
  136649. AL = sender's user ID
  136650. DS:DX -> control packet (see #03962)
  136651. Note: messages or commands are ignored if disabled by the destination user
  136652. SeeAlso: AH=22h
  136653. Format of Alloy control packet:
  136654. Offset Size Description (Table 03962)
  136655. 00h BYTE packet type
  136656. 00h message
  136657. 01h NTNX command
  136658. 02h MW386 command
  136659. 01h BYTE destination user ID or 'A' for all users
  136660. 02h 62 BYTEs ASCIZ message (packet type 00h)
  136661. BIOS keycodes terminated by NUL byte (type 01h) or word (02h)
  136662. Note: a maximum of 16 keycodes will be processed for NTNX and MW386 commands
  136663. --------N-7F22-------------------------------
  136664. INT 7F - Alloy NTNX - GET MESSAGE
  136665. AH = 22h
  136666. Return: pending messages displayed on user's screen
  136667. SeeAlso: AH=21h
  136668. --------N-7F24-------------------------------
  136669. INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS
  136670. AH = 24h
  136671. CL = function
  136672. 00h attach
  136673. 01h release
  136674. CH = drive (0=A:,1=B:,etc)
  136675. Return: AX = status (see #03963)
  136676. Note: only drives on the current machine may be attached
  136677. (Table 03963)
  136678. Values for Alloy function status:
  136679. 00h successful
  136680. 01h invalid request
  136681. 02h already attached
  136682. 03h not attached
  136683. 04h lock table full
  136684. --------N-7F24-------------------------------
  136685. INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
  136686. AH = 24h
  136687. CL = function
  136688. 02h attach host
  136689. 03h release host
  136690. Return: AX = status (see #03963)
  136691. Note: the host processor may be attached in order to perform I/O via the host
  136692. --------N-7F25--CL00-------------------------
  136693. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION
  136694. AH = 25h
  136695. CL = 00h
  136696. Return: AH = version suffix letter
  136697. CH = major version number
  136698. CL = minor version number
  136699. SeeAlso: AH=25h/CL=01h
  136700. --------N-7F25--CL01-------------------------
  136701. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
  136702. AH = 25h
  136703. CL = 01h
  136704. Return: CL = executive type (see #03964)
  136705. SeeAlso: AH=25h/CL=00h
  136706. (Table 03964)
  136707. Values for Alloy network executive type:
  136708. 00h RTNX
  136709. 01h ATNX
  136710. 02h NTNX
  136711. 03h BTNX
  136712. 04h MW386
  136713. 05h ANSK
  136714. --------V-7F2525-----------------------------
  136715. INT 7F - TIGA Communications Driver v2.05 - ???
  136716. AX = 2525h
  136717. BX = ???
  136718. Return: ???
  136719. SeeAlso: AX=4321h,AX=5555h
  136720. --------N-7F26--CL00-------------------------
  136721. INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
  136722. AH = 26h
  136723. CL = 00h
  136724. Return: AX = file mode bits (see #03965)
  136725. Note: MW386 does not support file modes, and always returns AX=001Fh
  136726. SeeAlso: AH=26h,AH=26h/CL=06h
  136727. Bitfields for Alloy file mode bits:
  136728. Bit(s) Description (Table 03965)
  136729. 0 directory protection enabled
  136730. 1 extended open enabled
  136731. 2 flush on every disk write
  136732. 3 flush on every disk write in locked interval
  136733. 4 flush on reads from simultaneously opened file
  136734. --------N-7F26-------------------------------
  136735. INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL
  136736. AH = 26h
  136737. CL = check type to set/reset
  136738. 01h directory protection
  136739. 02h extended open
  136740. 03h flush on every disk write
  136741. 04h flush on disk write if any lock set during write
  136742. 05h flush on all reads if file written
  136743. AL = new state (00h off, 01h on)
  136744. SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h
  136745. --------N-7F26--CL06-------------------------
  136746. INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE
  136747. AH = 26h
  136748. CL = 06h
  136749. Note: cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h
  136750. SeeAlso: AH=26h/CL=00h
  136751. --------N-7F30-------------------------------
  136752. INT 7F - Alloy MW386 - GET PORT INFORMATION
  136753. AH = 30h
  136754. CX = MW386 port number
  136755. Return: AL = result
  136756. FFh if port not found
  136757. else driver unit number
  136758. BL = port mode
  136759. BH = port type
  136760. 02h remote
  136761. DH = owner's machine ID
  136762. DL = owner's user ID
  136763. SeeAlso: INT 17/AH=8Bh
  136764. --------N-7F31-------------------------------
  136765. INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
  136766. AH = 31h
  136767. ???
  136768. Return: ???
  136769. --------N-7F37-------------------------------
  136770. INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
  136771. AH = 37h
  136772. Return: ES:AX -> semaphore table
  136773. --------N-7F37-------------------------------
  136774. INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL
  136775. AH = 37h
  136776. DS:DX -> ASCIZ string to display
  136777. Note: if the string is empty, a terminal update will be forced
  136778. --------N-7F38-------------------------------
  136779. INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER
  136780. AH = 38h
  136781. AL = new terminal driver number
  136782. FFh dummy driver
  136783. FEh current driver
  136784. FDh load new driver
  136785. DS:SI -> new driver
  136786. SeeAlso: AH=39h
  136787. --------N-7F39-------------------------------
  136788. INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
  136789. AH = 39h
  136790. AL = new terminal driver number
  136791. FFh dummy driver
  136792. FEh current driver
  136793. FDh load new driver
  136794. DS:SI -> new driver
  136795. DL = user number (FFh = caller)
  136796. DH = machine number if DL <> FFh
  136797. Return: CF set if invalid user number
  136798. CF clear if successful
  136799. Notes: only available to supervisors
  136800. the new driver number will not take effect until the user is rebooted
  136801. SeeAlso: AH=38h
  136802. --------N-7F3A-------------------------------
  136803. INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS
  136804. AH = 3Ah
  136805. DL = user number (FFh = caller)
  136806. DH = machine number
  136807. Return: CF clear if successful
  136808. AH = terminal driver number
  136809. AL = baud rate (00h = 38400, 01h = 19200, etc)
  136810. CL = parity (00h none, 01h even, 02h odd)
  136811. CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  136812. CF set if invalid user number
  136813. SeeAlso: AH=3Bh
  136814. --------N-7F3B-------------------------------
  136815. INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS
  136816. AH = 3Bh
  136817. AL = baud rate (00h = 38400, 01h = 19200, etc)
  136818. CL = parity (00h none, 01h even, 02h odd)
  136819. CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  136820. DL = user number (FFh = caller)
  136821. DH = machine number for user
  136822. Return: CF set if invalid user number
  136823. Notes: only available to supervisors
  136824. the new parameters will take effect immediately if the user's terminal
  136825. has not been started, else AH=3Dh must be called to post the changes
  136826. SeeAlso: AH=3Ah,AH=3Dh
  136827. --------N-7F3C-------------------------------
  136828. INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT
  136829. AH = 3Ch
  136830. AL = new state (00h disabled, 01h enabled)
  136831. DL = user number (FFh = caller)
  136832. DH = machine number for user
  136833. Return: CF set if invalid user number
  136834. Note: only available to supervisors
  136835. SeeAlso: AH=3Dh
  136836. --------N-7F3D-------------------------------
  136837. INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES
  136838. AH = 3Dh
  136839. Note: should be called whenever a program changes the terminal type or its
  136840. parameters
  136841. SeeAlso: AH=3Bh
  136842. --------N-7F41-------------------------------
  136843. INT 7F - Alloy NTNX - LOCK FILE FOR USER
  136844. AH = 41h
  136845. AL = user ID
  136846. DS:DX -> ASCIZ filename
  136847. Return: AL = status (see #03966)
  136848. Note: requests exclusive read/write access to file
  136849. SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX"
  136850. (Table 03966)
  136851. Values for Alloy function status:
  136852. 00h successful
  136853. 01h invalid function
  136854. 02h already locked
  136855. 03h unable to lock
  136856. 04h lock table full or semaphore space exhausted
  136857. --------N-7F41-------------------------------
  136858. INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
  136859. AH = 41h
  136860. AL = user ID
  136861. DS:DX -> ASCIZ semaphore name
  136862. Return: AL = status (see #03966)
  136863. SeeAlso: AH=00h,AH=42h"MW386"
  136864. --------s-7F4150BHC1-------------------------
  136865. INT 7F U - Voyetra - AAPISG - API
  136866. AX = 4150h ('AP')
  136867. BH = C1h
  136868. BL = function (00h-13h)
  136869. 00h initialize (fails except first time called)
  136870. ???
  136871. Return: AX = status???
  136872. 0000h successful
  136873. 0001h failed
  136874. Program: AAPISG is a driver by Voyetra for the Aztech Sound Galaxy sound board
  136875. BUG: the function range check uses JL instead of JB, so it will cause a
  136876. crash if BL >= 80h on entry
  136877. SeeAlso: AX=4331h,AX=564Dh,AX=5658h
  136878. --------N-7F42-------------------------------
  136879. INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
  136880. AH = 42h
  136881. AL = user ID
  136882. DS:DX -> ASCIZ filename
  136883. Return: AL = status (see #03966)
  136884. SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386"
  136885. --------N-7F42-------------------------------
  136886. INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER
  136887. AH = 42h
  136888. AL = user ID
  136889. DS:DX -> ASCIZ semaphore name
  136890. Return: AL = status
  136891. 00h successful
  136892. 01h invalid function
  136893. 03h unable to unlock semaphore
  136894. SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX"
  136895. --------V-7F4321-----------------------------
  136896. INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK
  136897. AX = 4321h
  136898. Return: AX = 0000h if installed
  136899. Note: INT 7F is the default, but may be overridden
  136900. SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555h
  136901. --------s-7F4331BHC1-------------------------
  136902. INT 7F U - Voyetra - VAPISG - API
  136903. AX = 4331h ('C1')
  136904. BH = C1h
  136905. BL = function (00h-7Ah)
  136906. ???
  136907. Return: ???
  136908. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  136909. sound board
  136910. SeeAlso: AX=4150h,AX=564Dh,AX=5658h
  136911. --------N-7F4E-------------------------------
  136912. INT 7F - Alloy MW386 v2+ - SET ERROR MODE
  136913. AH = 4Eh
  136914. AL = error mode flags
  136915. bit 0: display critical disk errors
  136916. bit 1: display sharing errors
  136917. DX = 4E58h ("NX")
  136918. Return: AL = status
  136919. 00h successful
  136920. SeeAlso: AH=4Fh
  136921. --------N-7F4F-------------------------------
  136922. INT 7F - Alloy MW386 v2+ - SET FCB MODE
  136923. AH = 4Fh
  136924. AL = FCB mode
  136925. 02h read/write compatibility
  136926. 42h read/write shared
  136927. DX = 4E58h ("NX")
  136928. Return: AL = status
  136929. 00h successful
  136930. --------V-7F5555-----------------------------
  136931. INT 7F - TIGA Communications Driver v2.05 - ???
  136932. AX = 5555h
  136933. BX = ???
  136934. Return: ???
  136935. SeeAlso: AX=4321h
  136936. --------s-7F564DBHC1-------------------------
  136937. INT 7F U - Voyetra Multimedia Player - VMP.EXE API
  136938. AX = 564Dh ('VM')
  136939. BH = C1h
  136940. BL = function (00h-1Bh)
  136941. 00h ???
  136942. Return: CF clear
  136943. AX = 0000h
  136944. ???
  136945. Return: AX = FFFFh if invalid function
  136946. ???
  136947. SeeAlso: AX=4331h,AX=5658h
  136948. --------s-7F5658BHC1-------------------------
  136949. INT 7F U - Voyetra - VAPISG - API
  136950. AX = 5658h ('VX')
  136951. BH = C1h
  136952. BL = function (00h-1Bh)
  136953. ???
  136954. Return: ???
  136955. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  136956. sound board
  136957. SeeAlso: AX=4331h,AX=564Dh
  136958. --------N-7F81-------------------------------
  136959. INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
  136960. AH = 81h
  136961. AL = user ID
  136962. DS:DX -> ASCIZ device name
  136963. SeeAlso: AH=82h
  136964. --------N-7F82-------------------------------
  136965. INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
  136966. AH = 82h
  136967. AL = user ID
  136968. DS:DX -> ASCIZ device name
  136969. SeeAlso: AH=81h
  136970. --------N-7FA0-------------------------------
  136971. INT 7F - Alloy MW386 - GET USER NAME
  136972. AH = A0h
  136973. DL = user number (FFh = caller)
  136974. DH = machine number for user
  136975. ES:DI -> 17-byte buffer for ASCIZ user name
  136976. Return: CF set if invalid user number
  136977. SeeAlso: AH=03h,AH=A1h
  136978. --------N-7FA1-------------------------------
  136979. INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER
  136980. AH = A1h
  136981. Return: AL = process number
  136982. DL = user number
  136983. DH = machine number
  136984. SeeAlso: AH=03h,AH=A0h,AH=A2h
  136985. --------N-7FA2-------------------------------
  136986. INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL
  136987. AH = A2h
  136988. DL = user number (FFh = caller)
  136989. DH = machine number for user
  136990. Return: CF clear if successful
  136991. AL = privilege level
  136992. 00h supervisor
  136993. 01h high
  136994. 02h medium
  136995. 03h low
  136996. CF set if invalid user number
  136997. SeeAlso: AH=A1h,AH=A3h
  136998. --------N-7FA3-------------------------------
  136999. INT 7F - Alloy MW386 - GET USER LOGIN STATE
  137000. AH = A3h
  137001. DL = user number
  137002. DH = machine number for user
  137003. Return: CF clear if successful
  137004. AL = login state
  137005. 00h never logged in
  137006. 01h currently logged out
  137007. 03h currently logged in
  137008. CF set if invalid user number or user not active
  137009. SeeAlso: AH=A2h
  137010. --------N-7FA4-------------------------------
  137011. INT 7F - Alloy MW386 - VERIFY USER PASSWORD
  137012. AH = A4h
  137013. DS:DX -> ASCIZ password (null-padded to 16 bytes)
  137014. Return: AL = status
  137015. 00h accepted
  137016. else invalid password
  137017. --------N-7FA500-----------------------------
  137018. INT 7F - Alloy MW386 - GET USER STATUS
  137019. AX = A500h
  137020. DI = machine number and user number
  137021. Return: CF clear if successful
  137022. BX = user flags
  137023. bit 5: allow messages
  137024. CL = scan code for task manager hotkey
  137025. CH = scan code for spooler hotkey
  137026. DL = scan code for task swapper hotkey
  137027. DH = modifier key status
  137028. CF set if invalid user number
  137029. SeeAlso: AX=A501h
  137030. Index: hotkeys;Alloy MW386
  137031. --------N-7FA501-----------------------------
  137032. INT 7F - Alloy MW386 - SET USER STATUS
  137033. AX = A501h
  137034. BX = user flags (see AX=A500h)
  137035. CL = scan code for task manager hotkey
  137036. CH = scan code for spooler hotkey
  137037. DL = scan code for task swapper hotkey
  137038. DH = modifier key status
  137039. DI = machine number and user number
  137040. Return: CF set if invalid user number
  137041. Note: must have supervisor privilege to set another user's status
  137042. SeeAlso: AX=A500h
  137043. Index: hotkeys;Alloy MW386
  137044. --------V-7FABCDBX0000-----------------------
  137045. INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY
  137046. AX = ABCDh
  137047. BX = 0000h
  137048. Return: AX = total number of functions available
  137049. ES:BX -> entry point array (see #03967)
  137050. SeeAlso: AX=0104h,AX=0105h
  137051. (Table 03967)
  137052. Values for 8516 Touch Screen function number:
  137053. 00h check initialization and reset (see #03968)
  137054. 14h set user-defined subroutine (see #03969)
  137055. Notes: each driver function takes two stack parameters using Pascal calling
  137056. conventions: address of parameter block and address of results buffer
  137057. all pointers are FAR pointers
  137058. on return, AX contains the status of the call:
  137059. AX = 0000h successful
  137060. 0001h invalid input
  137061. 0002h interface error
  137062. 0003h unable to perform function
  137063. Format of 8516 Touch Screen Function 00h parameter block:
  137064. Offset Size Description (Table 03968)
  137065. 00h WORD 0000h (function number)
  137066. Note: this function should be called before any other device driver functions
  137067. Format of 8516 Touch Screen Function 00h results buffer:
  137068. Offset Size Description (Table 03969)
  137069. 00h WORD touch screen status
  137070. 0000h unavailable
  137071. 0001h uncalibrated
  137072. FFFFh available
  137073. 02h WORD aux mouse status (0000h not present, FFFFh present)
  137074. Notes: the following driver parameters will have been reset to zero:
  137075. touchdown counter, liftoff counter, position at last touch, position
  137076. at last lift, int call mask, select on count, select off count,
  137077. pos select on count, pos select off count.
  137078. the following driver parameters will have been reset as listed:
  137079. mouse emulation mode: left on
  137080. thresholds: 46 on screen, 96 push harder, 80 push release
  137081. x, y hysteresis: 400
  137082. data repeat rate: 40/sec
  137083. select mechanism: push-harder - first-touch
  137084. coordinate origin: upper left corner
  137085. filter frequency: medium
  137086. data block mask: all enabled
  137087. click lock: on
  137088. --------N-7FB0-------------------------------
  137089. INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER
  137090. AH = B0h
  137091. AL = user number
  137092. DS = code segment
  137093. Note: MW386 ignores AL and DS; it releases all semaphores locked using INT 67
  137094. or INT 7F locking functions
  137095. SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h
  137096. --------N-7FB1--SF00-------------------------
  137097. INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
  137098. AH = B1h subfn 00h
  137099. AL = (bits 7-5) 000
  137100. (bits 4-0) user ID
  137101. Note: MW386 ignores AL; it releases all semaphores locked using INT 67 or
  137102. INT 7F locking functions
  137103. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  137104. --------N-7FB2--SF01-------------------------
  137105. INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
  137106. AH = B2h subfn 01h
  137107. AL = (bits 7-5) 001
  137108. (bits 4-0) user ID
  137109. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h
  137110. --------N-7FB3--SF02-------------------------
  137111. INT 7F - Alloy NTNX - RELEASE FILES FOR USER
  137112. AH = B3h subfn 02h
  137113. AL = (bits 7-5) 010
  137114. (bits 4-0) user ID
  137115. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h
  137116. --------N-7FB4-------------------------------
  137117. INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
  137118. AH = B4h
  137119. AL = user ID
  137120. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h
  137121. --------N-7FC3-------------------------------
  137122. INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT
  137123. AH = C3h
  137124. AL = byte to write
  137125. Return: CF clear if successful
  137126. CF set on error
  137127. SeeAlso: AH=C6h
  137128. --------N-7FC5-------------------------------
  137129. INT 7F - Alloy MW386 - CHANGE CONSOLE MODE
  137130. AH = C5h
  137131. AL = new console mode
  137132. 00h keyboard indirect
  137133. 01h keyboard direct
  137134. 02h data handshake enforced
  137135. 03h no data handshake
  137136. Return: CF clear if successful
  137137. AL = prior console mode
  137138. CF set on error (caller is not remote user)
  137139. Note: modes 2 and 3 may be used for input through the console port; no video
  137140. output should be performed in these modes
  137141. --------N-7FC6-------------------------------
  137142. INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT
  137143. AH = C6h
  137144. AL = byte to write
  137145. Return: CF clear if successful
  137146. CF set on error (caller is not remote user)
  137147. Note: any terminal driver data translation will be bypassed
  137148. SeeAlso: AH=C3h,AH=C7h
  137149. --------N-7FC7-------------------------------
  137150. INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE
  137151. AH = C7h
  137152. Return: CF clear if successful
  137153. AL = byte read
  137154. CF set on error (no data available or caller is not remote user)
  137155. Note: used to read data after placing console in mode 2 or 3 (see AH=C5h)
  137156. SeeAlso: AH=C5h,AH=C6h,AH=C8h
  137157. --------N-7FC8-------------------------------
  137158. INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER
  137159. AH = C8h
  137160. AL = maximum bytes to read
  137161. ES:DI -> buffer for console data
  137162. Return: CF clear if successful
  137163. CX = number of bytes read
  137164. CF set on error (caller is not remote user)
  137165. SeeAlso: AH=C7h
  137166. --------N-7FCF-------------------------------
  137167. INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
  137168. AH = CFh
  137169. DS:DX -> ASCIZ string containing user number to be reset
  137170. SeeAlso: AH=D6h
  137171. --------N-7FD6-------------------------------
  137172. INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
  137173. AH = D6h
  137174. DS:DX -> reset packet (see #03970)
  137175. Return: never if successful
  137176. Note: all users will be shut down immediately if successful
  137177. SeeAlso: AH=CFh
  137178. Format of Alloy MW386 reset packet:
  137179. Offset Size Description (Table 03970)
  137180. 00h DWORD reset code (60606060h)
  137181. 04h 16 BYTEs ASCIZ supervisor password padded with nulls
  137182. --------N-7FD7-------------------------------
  137183. INT 7F - Alloy MW386 - POST EVENT
  137184. AH = D7h
  137185. AL = user number (if local event)
  137186. DX = event number
  137187. --------N-7FD8-------------------------------
  137188. INT 7F - Alloy MW386 - FLUSH DISK BUFFERS
  137189. AH = D8h
  137190. Return: CF set on error
  137191. Note: forces all disk buffers to be written out immediately
  137192. SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h
  137193. --------N-7FDB-------------------------------
  137194. INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE
  137195. AH = DBh
  137196. Return: AL = drive from which MW386 was started (2=C:,3=D:,etc)
  137197. --------N-7FE0-------------------------------
  137198. INT 7F - Alloy MW386 - CREATE DOS TASK
  137199. AH = E0h
  137200. AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  137201. DS:DX -> ASCIZ task name (max 16 bytes)
  137202. Return: CF clear if successful
  137203. AL = task create ID
  137204. CF set on error
  137205. Note: only foreground DOS tasks can use this function
  137206. SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h
  137207. --------N-7FE1-------------------------------
  137208. INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID
  137209. AH = E1h
  137210. AL = create ID (from AH=E0h)
  137211. Return: AL = DOS process number
  137212. CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  137213. Note: this function should not be called immediately after creating a new
  137214. DOS task, since the new task is being initialized by a concurrent
  137215. process
  137216. SeeAlso: AH=E0h,AH=E2h
  137217. --------N-7FE2-------------------------------
  137218. INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK
  137219. AH = E2h
  137220. AL = DOS process number (from AH=E1h)
  137221. Return: CF set on error (invalid process number or caller not foreground task)
  137222. Notes: specified task becomes the foreground task and current task is placed
  137223. in the background
  137224. may only be called by a foreground task
  137225. SeeAlso: AH=E0h,AH=E1h
  137226. --------N-7FE3-------------------------------
  137227. INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
  137228. AH = E3h
  137229. DS:DX -> ASCIZ task name
  137230. ---v1.x---
  137231. AL = user number
  137232. ---v2+---
  137233. BH = user number
  137234. BL = task number
  137235. Return: CF clear if successful
  137236. CF set on error (invalid process number)
  137237. SeeAlso: AH=E0h,AH=E4h,AH=E5h
  137238. --------N-7FE4-------------------------------
  137239. INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
  137240. AH = E4h
  137241. ES:DI -> buffer for task name
  137242. ---v1.x---
  137243. AL = user number
  137244. ---v2+---
  137245. BH = user number
  137246. BL = task number
  137247. Return: CF clear if successful
  137248. CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  137249. DX = task flags
  137250. bit 7: MS-DOS process
  137251. ES:DI buffer filled
  137252. CF set on error (invalid process number)
  137253. SeeAlso: AH=E3h,AH=E5h
  137254. --------N-7FE5-------------------------------
  137255. INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME
  137256. AH = E5h
  137257. DS:DX -> ASCIZ task name
  137258. BH = user number
  137259. Return: CF clear if successful
  137260. AL = DOS process number
  137261. CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  137262. CF set on error (no match for name)
  137263. SeeAlso: AH=E3h,AH=E4h
  137264. --------N-7FE6-------------------------------
  137265. INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS
  137266. AH = E6h
  137267. Return: AX = number of processes available to current user
  137268. SeeAlso: AH=E0h
  137269. --------N-7FE7-------------------------------
  137270. INT 7F - Alloy MW386 - REMOVE DOS TASK
  137271. AH = E7h
  137272. AL = DOS process number
  137273. Return: CF clear if successful
  137274. CF set on error (invalid process number or first process)
  137275. Note: can only be called by a foreground task
  137276. SeeAlso: AH=E0h
  137277. --------N-7FE8-------------------------------
  137278. INT 7F - Alloy MW386 - DOS TASK DELAY
  137279. AH = E8h
  137280. CX = delay time in milliseconds
  137281. Note: a delay of 0 may be used to surrender the current time slice
  137282. SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS"
  137283. SeeAlso: INT 2F/AX=1680h
  137284. --------N-7FF0-------------------------------
  137285. INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP
  137286. AH = F0h
  137287. AL = group number
  137288. DS:DX -> ASCIZ directory name
  137289. Return: CF clear if successful
  137290. AX = status
  137291. 0002h directory not found
  137292. 0003h directory not found
  137293. 0005h directory in use, cannot be restricted
  137294. 02xxh restricted to group xxh
  137295. CF set on error
  137296. Note: the restriction on the directory may be removed by calling this
  137297. function with group 0, then using AH=F1h to assign the directory to
  137298. group 0
  137299. SeeAlso: AH=F1h,AH=F2h,AH=F3h
  137300. --------N-7FF1-------------------------------
  137301. INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP
  137302. AH = F1h
  137303. AL = group number
  137304. DS:DX -> ASCIZ directory name
  137305. Notes: performs permanent assignment to a group; no immediate action is taken
  137306. unless the directory has been restricted with AH=F0h
  137307. may be used to restrict a nonexistent directory
  137308. SeeAlso: AH=F0h
  137309. --------N-7FF2-------------------------------
  137310. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY
  137311. AH = F2h
  137312. CX = entry number
  137313. ES:DI -> 64-byte buffer
  137314. Return: CF clear if successful
  137315. buffer filled with 63-byte directory info and 1-byte group number
  137316. CF set on error (invalid entry)
  137317. SeeAlso: AH=F0h,AH=F3h
  137318. --------N-7FF3-------------------------------
  137319. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP
  137320. AH = F3h
  137321. AL = group number
  137322. CX = entry number
  137323. ES:DI -> 64-byte buffer
  137324. Return: CF clear if successful
  137325. CX = next entry number
  137326. buffer filled with 63-byte directory info and 1-byte group number
  137327. CF set on error (no more matching entries)
  137328. Note: like AH=F2h, but only returns directories belonging to the specified
  137329. group
  137330. SeeAlso: AH=F2h
  137331. --------N-7FF8-------------------------------
  137332. INT 7F - Alloy MW386 - ASSIGN USER TO GROUP
  137333. AH = F8h
  137334. AL = group number
  137335. DL = user number
  137336. DH = machine number (currently 00h)
  137337. Return: CF clear if successful
  137338. CF set on error (user already in maximum number of groups)
  137339. Note: each user is allowed eight group assignments
  137340. SeeAlso: AH=F9h,AH=FAh
  137341. --------N-7FF9-------------------------------
  137342. INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
  137343. AH = F9h
  137344. AL = group number
  137345. DL = user number
  137346. DH = machine number (currently 00h)
  137347. Return: CF clear if successful
  137348. CF set if failed
  137349. SeeAlso: AH=F8h,AH=FAh
  137350. --------N-7FFA-------------------------------
  137351. INT 7F - Alloy MW386 - GET USER GROUP LIST
  137352. AH = FAh
  137353. DL = user number
  137354. DH = machine number (currently 00h)
  137355. ES:DI -> 16-byte buffer for group list
  137356. Return: CX = number of groups
  137357. ES:DI buffer filled with group numbers
  137358. SeeAlso: AH=F8h,AH=F9h
  137359. --------N-7FFB-------------------------------
  137360. INT 7F - Alloy MW386 - ASSIGN GROUP NAME
  137361. AH = FBh
  137362. CL = group number
  137363. ES:DI -> ASCIZ group name (max 17 bytes)
  137364. SeeAlso: AH=FCh
  137365. --------N-7FFC-------------------------------
  137366. INT 7F - Alloy MW386 - GET GROUP NAME
  137367. AH = FCh
  137368. CL = group number
  137369. ES:DI -> 17-byte buffer for ASCIZ name
  137370. Return: ES:DI buffer filled
  137371. Note: if the group has not been named, "(unnamed)" is returned
  137372. SeeAlso: AH=FBh
  137373. ----------80---------------------------------
  137374. INT 80 - Q-PRO4 - ???
  137375. --------r-80---------------------------------
  137376. INT 80 - reserved for BASIC
  137377. Note: this vector and INT 81 through INT ED are modified but not restored by
  137378. Direct Access v4.0, and may be left dangling by other programs
  137379. written with the same version of compiled BASIC
  137380. SeeAlso: INT 81"BASIC",INT 86"BASIC",INT EF"BASIC"
  137381. --------E-80---------------------------------
  137382. INT 80 - Phar Lap 386|DOS-Extender - RELOCATED PRINT-SCREEN
  137383. Note: the extender relocates INT 05 to here by default, but can be told to
  137384. leave INT 05 alone with the commandline (or DOSX= environment
  137385. variable) flag -PRIVEC 5
  137386. SeeAlso: INT 05"PRINT SCREEN"
  137387. --------d-80---------------------------------
  137388. INT 80 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!)
  137389. Note: the factory-default location for the eight bytes of scratchpad RAM
  137390. needed by the SCSI adapter is 0000h:0200h, which is interrupt
  137391. vectors 80h and 81h
  137392. SeeAlso: INT 81"BusLogic"
  137393. --------b-80---------------------------------
  137394. INT 80 U - AMI BIOS v1.00.12.AX1T - internal - BIOS SUBSYSTEM SELECTION
  137395. AH = function
  137396. 00h install and initialize BIOS subsystem
  137397. AL = ??? (00h,01h,03h)
  137398. CX:BX = subsystem ID (see #03971)
  137399. ESI = address from which to load, or 00000000h for default for
  137400. subsystem
  137401. EDI = physical address at which to install, or 0 for default
  137402. Note: if CX=0000h on entry, this call is applied to all
  137403. subsystems whose ID has low word BX
  137404. 01h get BIOS subsystem information
  137405. CX:BX = subsystem ID (see #03971)
  137406. Return: AL = ???
  137407. AH = ???
  137408. EDX = uncompressed size of subsystem in bytes
  137409. SI = offset within subsystem of initialization
  137410. routine, or FFFFh if none
  137411. EDI = physical address of default location or 0
  137412. 02h get matching subsystem identifier
  137413. AL = index into subsystem list (return ALth occurrence
  137414. matching BX)
  137415. BX = low word of subsystem identifier
  137416. (0001h,0002h,0004h,0005h,000Bh,FFFFh)
  137417. Return: CF clear if successful
  137418. CX = high word of ALth matching subsystem
  137419. CF set on error
  137420. Note: the system is halted if AL=00h on entry
  137421. 03h set up "big real" mode (4G segment limits)
  137422. 04h turn off "big real" mode (restore 64K segment limits)
  137423. 05h remove BIOS subsystem
  137424. CX:BX = subsystem ID to leave out
  137425. Note: the system is halted if an invalid (not installed)
  137426. subsystem ID is specified
  137427. 06h get installed subsystem info
  137428. CX:BX = subsystem ID (see #03971)
  137429. Return: CF clear
  137430. EDX = length of ???
  137431. EDI = linear address of start of ???
  137432. Note: the system is halted if an invalid (not installed)
  137433. subsystem ID is specified
  137434. Return: CF clear if successful
  137435. CF set on non-fatal error
  137436. Note: this interrupt vector is cleared to 0000h:0000h near the end of the
  137437. BIOS startup sequence
  137438. (Table 03971)
  137439. Values for AMI BIOS subsystem ID:
  137440. 00010001h ROM BIOS @F000-FFFF
  137441. 00010002h setup??? (loaded @6000-68FF)
  137442. 00010005h APM code
  137443. 0001000Bh language-specific error message set (English)
  137444. 00020002h PnP/PCI ACFG code (loaded @F000-F1FF)
  137445. 0001FFFFh
  137446. 0002FFFFh recovery code
  137447. 00030004h
  137448. 0003FFFFh BIOS decompression code
  137449. 0004000Bh
  137450. 00060004h
  137451. 0100FFFFh ACFG data
  137452. 10000000h ROM @C000 (64K)
  137453. 10000001h HMA (48K)
  137454. 10000002h RAM @7A00 (24K)
  137455. 10000003h RAM @8000-BFFF
  137456. 10000004h
  137457. 10000005h real-mode address space (0-1M)
  137458. 1000000Bh installed language-specific message set???
  137459. --------s-80----BL00-------------------------
  137460. INT 80 - SBSIM - "STARTSND" - START SOUND ON SPECIFIED DRIVER
  137461. BL = 00h
  137462. BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  137463. Return: AX = initialization result (see #03972)
  137464. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  137465. which provides access to multiple drivers for the SoundBlaster
  137466. board through a single interface
  137467. Range: INT 80h to INT BFh, selected automatically
  137468. Note: the SBSIM installation check consists of testing for the signature
  137469. "SBSIM" at offset 103h in the interrupt handler's segment.
  137470. SeeAlso: INT 80/BL=01h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=03h"SBSIM"
  137471. SeeAlso: INT 80/BX=0000h"SBSIM"
  137472. (Table 03972)
  137473. Values for SBSIM error code:
  137474. 01h busy--currently in use
  137475. 02h bad driver specified
  137476. 03h invalid function
  137477. 04h voice process already active
  137478. 05h couldn't start CT-VOICE
  137479. 06h couldn't start CTVDSK
  137480. 07h invalid SBSIM handle
  137481. 08h buffer not initialized yet
  137482. 09h bad filename
  137483. 0Ah bad file handle
  137484. 0Bh driver not started yet
  137485. 0Ch XMS driver not installed
  137486. 0Dh no free SBSIM handles
  137487. 0Eh bad file type
  137488. 0Fh couldn't free XMS block
  137489. 10h invalid source selected
  137490. 11h get pan position failed
  137491. 12h set pan position failed
  137492. 13h set volume failed
  137493. 14h couldn't start fade/pan
  137494. 15h couldn't stop fade/pan
  137495. 16h couldn't pause fade/pan
  137496. 17h not a fade/pan operation
  137497. 18h bad mode for fade/pan
  137498. 19h couldn't start fade/pan
  137499. 1Ah source not fading/panning
  137500. 1Bh FM or MIDI already playing
  137501. 1Ch bad MIDI mapper format
  137502. --------s-80----BL01-------------------------
  137503. INT 80 - SBSIM - "PLAYSND" - PLAY MUSIC/VOICE ON SELECTED DRIVER
  137504. BL = 01h
  137505. BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  137506. Return: AX = result (see #03972)
  137507. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  137508. --------s-80----BL02-------------------------
  137509. INT 80 - SBSIM - "STOPSND" - STOP MUSIC/VOICE ON SELECTED DRIVER
  137510. BL = 02h
  137511. BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  137512. Return: nothing
  137513. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  137514. --------s-80----BL03-------------------------
  137515. INT 80 - SBSIM - "PAUSESND" - TEMPORARILY PAUSE PLAYBACK ON SELECTED DRIVER
  137516. BL = 03h
  137517. BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  137518. Return: nothing
  137519. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  137520. SeeAlso: INT 80/BL=05h
  137521. --------s-80----BL04-------------------------
  137522. INT 80 - SBSIM - "RESUMESND" - RESTART PLAYBACK ON SELECTED DRIVER
  137523. BL = 04h
  137524. BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  137525. Return: nothing
  137526. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=03h"SBSIM",INT 80/BL=05h"SBSIM"
  137527. --------s-80----BL05-------------------------
  137528. INT 80 - SBSIM - "GETSNDSTAT" - GET DRIVER'S STATUS
  137529. BL = 05h
  137530. BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  137531. Return: AX = status
  137532. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  137533. --------s-80----BX0000-----------------------
  137534. INT 80 - SoundBlaster SBFM driver - GET VERSION
  137535. BX = 0000h
  137536. Return: ???
  137537. Note: SBFM installs at a free interrupt in the range 80h through BFh
  137538. SeeAlso: BX=0008h"SBFM",INT 2F/AX=FBFBh/ES=0000h
  137539. --------s-80----BX0000-----------------------
  137540. INT 80 - SBSIM - "QUERYVERSION" - GET VERSION
  137541. BX = 0000h
  137542. Return: AX = version (AH = major, AL = minor)
  137543. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  137544. which provides access to multiple drivers for the SoundBlaster
  137545. board through a single interface
  137546. Range: INT 80h to INT BFh, selected automatically
  137547. Note: the SBSIM installation check consists of testing for the signature
  137548. "SBSIM" at offset 103h in the interrupt handler's segment.
  137549. SeeAlso: BX=0001h"SBSIM",BX=0005h"SBSIM",INT 21/AX=4402h"CTMMSYS"
  137550. SeeAlso: INT 80/BL=00h"SBSIM"
  137551. Index: installation check;SBSIM|installation check;SoundBlaster
  137552. --------s-80----BX0001-----------------------
  137553. INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
  137554. BX = 0001h
  137555. DX:AX -> music status byte
  137556. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0003h"SBFM"
  137557. --------s-80----BX0001-----------------------
  137558. INT 80 - SBSIM - "QUERYDRIVERS" - CHECK DRIVERS INSTALLED
  137559. BX = 0001h
  137560. Return: AX = bit flags for loaded drivers (see #03973)
  137561. SeeAlso: BX=0000h"SBSIM",BX=0002h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  137562. Bitfields for SBSIM loaded drivers:
  137563. Bit(s) Description (Table 03973)
  137564. 0 FM
  137565. 1 double disk-buffered voice driver (DDBV)
  137566. 2 memory voice driver
  137567. 3 auxiliary driver (mixer)
  137568. 4 MIDI
  137569. --------s-80----BX0002-----------------------
  137570. INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
  137571. BX = 0002h
  137572. CX = number of instruments
  137573. DX:AX -> instrument table
  137574. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0005h"SBFM"
  137575. --------s-80----BX0002-----------------------
  137576. INT 80 - SBSIM - GETADDRESS" - GET SELECTED DRIVER'S ENTRY POINT
  137577. BX = 0002h
  137578. AX = driver (00h = FM,01h = DDBV,02h = memvoice,03h = mixer,04h = MIDI)
  137579. Return: CF clear if successful
  137580. DX:AX -> entry point
  137581. CF set on error
  137582. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  137583. --------s-80----BX0003-----------------------
  137584. INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE
  137585. BX = 0003h
  137586. AX = clock rate divisor (1193180 / desired frequency in Hertz)
  137587. FFFFh to restore to 18.2 Hz
  137588. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0004h"SBFM"
  137589. --------s-80----BX0004-----------------------
  137590. INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE
  137591. BX = 0004h
  137592. AX = driver clock rate divisor (1193180 / frequency in Hertz)
  137593. Note: default frequency is 96 Hz
  137594. SeeAlso: BX=0000h"SBFM",BX=0003h"SBFM"
  137595. --------s-80----BX0005-----------------------
  137596. INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
  137597. BX = 0005h
  137598. AX = semi-tone offset
  137599. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0006h"SBFM"
  137600. --------s-80----BX0005-----------------------
  137601. INT 80 - SBSIM - "GETBUFFERINFO" - GET DRIVER'S BUFFER ADDRESS
  137602. BX = 0005h
  137603. AX = driver (00h = FM, 01h = DDB Voice, 04h = MIDI)
  137604. Return: CF clear if successful
  137605. DX:AX -> buffer
  137606. CX = buffer size in K
  137607. CF set on error
  137608. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  137609. which provides access to multiple drivers for the SoundBlaster
  137610. board through a single interface
  137611. Range: INT 80h to INT BFh, selected automatically
  137612. Note: the SBSIM installation check consists of testing for the signature
  137613. "SBSIM" at offset 103h in the interrupt handler's segment.
  137614. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0002h"SBSIM",INT 80/BL=00h"SBSIM"
  137615. --------s-80----BX0006-----------------------
  137616. INT 80 - SoundBlaster SBFM driver - PLAY MUSIC
  137617. BX = 0006h
  137618. DX:AX -> music block
  137619. Return: AX = status
  137620. 0000h successful
  137621. 0001h music already active
  137622. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF04h
  137623. --------s-80----BX0007-----------------------
  137624. INT 80 - SoundBlaster SBFM driver - STOP MUSIC
  137625. BX = 0007h
  137626. Return: AX = status
  137627. 0000h successful
  137628. 0001h music not active
  137629. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM",INT 1A/AX=FF05h
  137630. --------s-80----BX0008-----------------------
  137631. INT 80 - SoundBlaster SBFM driver - RESET DRIVER
  137632. BX = 0008h
  137633. Return: AX = status
  137634. 0000h successful
  137635. 0001h music is active
  137636. SeeAlso: BX=0000h"SBFM"
  137637. --------s-80----BX0009-----------------------
  137638. INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
  137639. BX = 0009h
  137640. Return: AX = status
  137641. 0000h successful
  137642. 0001h no music active
  137643. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF01h
  137644. --------s-80----BX000A-----------------------
  137645. INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
  137646. BX = 000Ah
  137647. Return: AX = status
  137648. 0000h successful
  137649. 0001h no music paused
  137650. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM"
  137651. --------s-80----BX000B-----------------------
  137652. INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
  137653. BX = 000Bh
  137654. DX:AX -> trap routine
  137655. SeeAlso: BX=0000h"SBFM"
  137656. --------s-80----BX0400-----------------------
  137657. INT 80 - SBSIM - "GETVOLUME" - GET SOURCE'S VOLUME
  137658. BX = 0400h
  137659. AX = sound source (see #03974)
  137660. Return: CF clear if successful
  137661. AX = volume
  137662. CF set on error
  137663. AX = error code (see #03972 at INT 80/BL=00h)
  137664. SeeAlso: BX=0401h"SBSIM"
  137665. (Table 03974)
  137666. Values for SBSIM sound source:
  137667. 00h master volume
  137668. 01h voice
  137669. 02h FM
  137670. 03h CD
  137671. 04h line in
  137672. 05h microphone
  137673. --------s-80----BX0401-----------------------
  137674. INT 80 - SBSIM - "SETVOLUME" - SET SOURCE'S VOLUME
  137675. BX = 0401h
  137676. AX = sound source (see #03974)
  137677. DX = new volume
  137678. Return: AX = result (0000h = success) (see also INT 80/BL=00h)
  137679. SeeAlso: BX=0400h"SBSIM"
  137680. --------N-8001-------------------------------
  137681. INT 80 - QPC Software PKTINT.COM - INITIALIZE
  137682. AH = 01h
  137683. Return: AX = 0000h
  137684. CX = FFFFh
  137685. DX = FFFFh
  137686. Notes: this interrupt is the WinQVTNet protected mode interface to Windows 3.0
  137687. all buffer pointers are reset back to 0
  137688. --------N-8002-------------------------------
  137689. INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES
  137690. AH = 02h
  137691. BX = extra bytes to allocate per packet
  137692. Return: AX = segment address of 10K buffer (for receives???)
  137693. BX = segment address of 2K buffer (for sends???)
  137694. SeeAlso: AH=05h
  137695. --------N-8003-------------------------------
  137696. INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT
  137697. AH = 03h
  137698. Return: CX:DX -> receive call address
  137699. Note: the returned address can be used in the packet driver calls since it
  137700. will be a valid address in all DOS boxes
  137701. SeeAlso: AH=06h
  137702. --------N-8004-------------------------------
  137703. INT 80 - QPC Software PKTINT.COM - ENABLE???
  137704. AH = 04h
  137705. BX = ???
  137706. Return: ???
  137707. SeeAlso: AH=01h
  137708. --------N-8005-------------------------------
  137709. INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS
  137710. AH = 05h
  137711. Return: AX = amount of buffer currently in use
  137712. BX = current offset in buffer
  137713. CX = number of times receive has been called
  137714. SeeAlso: AH=02h
  137715. --------N-8006-------------------------------
  137716. INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET
  137717. AH = 06h
  137718. Return: BX = next packet offset
  137719. CX = number of bytes still buffered
  137720. DX = size of packet released back into buffer pool
  137721. SeeAlso: AH=03h
  137722. --------r-81---------------------------------
  137723. INT 81 - reserved for BASIC
  137724. Note: this vector is modified but not restored by Direct Access v4.0, and
  137725. may be left dangling by other programs written with the same version
  137726. of compiled BASIC
  137727. SeeAlso: INT 80"BASIC",INT 82"BASIC"
  137728. --------N-81---------------------------------
  137729. INT 81 - IBM TOKEN RING ADAPTER - ???
  137730. SeeAlso: INT 82"TOKEN RING",INT 91"TOKEN RING"
  137731. --------d-81---------------------------------
  137732. INT 81 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!)
  137733. Note: the factory-default location for the eight bytes of scratchpad RAM
  137734. needed by the SCSI adapter is 0000h:0200h, which is interrupt
  137735. vectors 80h and 81h
  137736. SeeAlso: INT 80"BusLogic"
  137737. --------b-81---------------------------------
  137738. INT 81 - AMI WinBIOS - SECOND HARD DRIVE AUTODETECTION
  137739. Notes: used by WinBIOS with core version of July 1994 or later
  137740. QEMM 7.5 began using this interrupt internally after the QPAT3
  137741. maintenance release when searching for "ROM holes", causing a
  137742. lengthy delay during bootup. Adding the QEMM parameter RH:N will
  137743. avoid the QEMM call to INT 81 and speed up the boot process
  137744. --------O-81---------------------------------
  137745. INT 81 - Paragon Technology PTS/DOS 6.5x, S/DOS 1.0 - API
  137746. --------s-810200---------------------------
  137747. INT 81 - Gravis UltraSound - MegaEm - PROCESS COMMAND LINE
  137748. AX = 0200h
  137749. BX = PSP segment
  137750. SI = ??? (data area)
  137751. Return: AX = status (see #03975)
  137752. BL = emulation state
  137753. bit 1 Emulation is on
  137754. bit 2 Emulation is off
  137755. Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32
  137756. emulator for the Gravis UltraSound
  137757. Range: INT 81 to INT FF (see INT 21/AX=FD12h), selected by scanning for an
  137758. interrupt with vector 0000h:0000h
  137759. SeeAlso: AX=0202h,AX=0300h,AX=0400h,INT 21/AX=FD12h/BX=3457h
  137760. (Table 03975)
  137761. Values for MegaEm status:
  137762. 0000h successful
  137763. 0001h invalid command line optie
  137764. 0002h display options
  137765. 0003h ???
  137766. 0004h invalid number of voices specified
  137767. 0005h could not load enough patches to provide acceptable emulation
  137768. 0006h to many warnings on patch loading
  137769. 0007h ??? (not used anymore)
  137770. 0008h /CO and SCSI don't work together
  137771. 0009h invalid music volume
  137772. 000Ah invalid master volume
  137773. 000Bh /SC switch is no longer valid
  137774. 0100h ??? (some error on patch loading)
  137775. --------s-810202---------------------------
  137776. INT 81 - Gravis UltraSound - MegaEm - ???
  137777. AX = 0202h
  137778. Return: AX = ???
  137779. SeeAlso: AX=0200h,AX=0300h,AX=0400h,INT 21/AX=FD12h/BX=3457h
  137780. --------s-810300---------------------------
  137781. INT 81 - Gravis UltraSound - MegaEm - LOAD SAMPLE ???
  137782. AX = 0300h
  137783. Return: AX = ???
  137784. SeeAlso: AX=0200h,AX=0202h,AX=0400h,INT 21/AX=FD12h/BX=3457h
  137785. --------s-810400---------------------------
  137786. INT 81 - Gravis UltraSound - MegaEm - ???
  137787. AX = 0400h
  137788. BX = ??? (segment)
  137789. Return: AX = ???
  137790. BX = ???
  137791. Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32
  137792. emulator for the Gravis UltraSound
  137793. SeeAlso: AX=0200h,AX=0202h,AX=0300h,INT 21/AX=FD12h/BX=3457h
  137794. --------s-812010------------------------
  137795. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - INT 78 REDIRECT
  137796. AX = 2010h
  137797. ???
  137798. Return: ???
  137799. Note: MegaEm calls this function from its INT 78 handler, and then
  137800. immediately returns (via RETF in v3.10, thus leaving the flags on
  137801. the stack); this permits it to operate while hooking only one
  137802. interrupt through the memory manager in protected mode
  137803. SeeAlso: AX=2011h,AX=2012h
  137804. --------s-812011------------------------
  137805. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - NMI REDIRECT
  137806. AX = 2011h
  137807. ???
  137808. Return: ???
  137809. Note: MegaEm calls this function from its NMI (INT 02) handler, and then
  137810. immediately returns; this permits it to operate while hooking only
  137811. one interrupt through the memory manager in protected mode
  137812. SeeAlso: AX=2010h,AX=2012h
  137813. --------s-812012------------------------
  137814. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - SOUNDCARD IRQ REDIRECT
  137815. AX = 2012h
  137816. ???
  137817. Return: ???
  137818. Note: MegaEm calls this function from its GUS IRQ handler, and then
  137819. immediately returns; this permits it to operate while hooking only
  137820. one interrupt through the memory manager in protected mode
  137821. SeeAlso: AX=2010h,AX=2011h
  137822. --------s-812015------------------------
  137823. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - ???
  137824. AX = 2015h
  137825. ???
  137826. Return: ???
  137827. --------r-82---------------------------------
  137828. INT 82 - reserved for BASIC
  137829. SeeAlso: INT 81"BASIC",INT 83"BASIC"
  137830. --------N-82---------------------------------
  137831. INT 82 - IBM TOKEN RING ADAPTER - ???
  137832. AH = function
  137833. 00h display message???
  137834. DS:BX -> string
  137835. ???
  137836. Return: ???
  137837. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  137838. --------r-83---------------------------------
  137839. INT 83 - reserved for BASIC
  137840. SeeAlso: INT 82"BASIC",INT 84"BASIC"
  137841. --------s-8300-------------------------------
  137842. INT 83 - JM Pro Tracker v5.0 - ???
  137843. AH = 00h
  137844. ???
  137845. Return: CF clear (successful)
  137846. AX = ??? (0302h)
  137847. Program: JM Pro Tracker is a public-domain resident .MOD (digital music)
  137848. player by Josha Munnik
  137849. (Table 03976)
  137850. Values for JM Pro Tracker error code:
  137851. 000Ah ???
  137852. 000Bh ???
  137853. 0014h ???
  137854. 001Eh some required parameters have not yet been set
  137855. 001Fh already playing???
  137856. FExxh busy (API call already in progress)
  137857. FFxxh invalid function number
  137858. --------s-8301-------------------------------
  137859. INT 83 - JM Pro Tracker v5.0 - ???
  137860. AH = 01h
  137861. DX = ??? or FFFFh
  137862. ???
  137863. Return: CF clear if successful
  137864. CF set on error
  137865. AX = error code (see #03976)
  137866. --------s-8302-------------------------------
  137867. INT 83 - JM Pro Tracker v5.0 - ???
  137868. AH = 02h
  137869. BX = ???
  137870. ???
  137871. Return: CF clear if successful
  137872. AX = ???
  137873. BX = ???
  137874. CX = ???
  137875. DX = ???
  137876. SI = ???
  137877. CF set on error
  137878. AX = error code (000Ah,000Bh,other) (see #03976)
  137879. --------s-8303-------------------------------
  137880. INT 83 - JM Pro Tracker v5.0 - ???
  137881. AH = 03h
  137882. BX = ??? (only low four bits, must be nonzero)
  137883. CX = ???
  137884. ???
  137885. Return: CF clear if successful
  137886. CF set on error
  137887. AX = error code (0014h) (see #03976)
  137888. --------s-8304-------------------------------
  137889. INT 83 - JM Pro Tracker v5.0 - SET DMA BUFFER???
  137890. AH = 04h
  137891. CX = number of bytes in suggested buffer
  137892. ES:DI -> suggested buffer for DMA transfers???
  137893. Return: CF clear if successful
  137894. ES:AX -> actual buffer (filled with bytes of 80h)
  137895. CX = actual length (multiple of 4)
  137896. CF set on error
  137897. AX = error code (see #03976)
  137898. Note: the buffer must not cross a 64K DMA page boundary
  137899. --------s-8305-------------------------------
  137900. INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
  137901. AH = 05h
  137902. CX = length of buffer
  137903. ES:DI -> buffer for/containing ???
  137904. Return: CF clear (successful)
  137905. SeeAlso: AH=06h,AH=07h,AH=18h
  137906. --------s-8306-------------------------------
  137907. INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
  137908. AH = 06h
  137909. CX = length of buffer
  137910. ES:DI -> buffer for/containing ???
  137911. Return: CF clear (successful)
  137912. SeeAlso: AH=05h,AH=07h,AH=18h
  137913. --------s-8307-------------------------------
  137914. INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
  137915. AH = 07h
  137916. BX = ???
  137917. CX = length of buffer
  137918. ES:DI -> buffer for/containing ???
  137919. Return: CF clear (successful)
  137920. SeeAlso: AH=05h,AH=06h,AH=18h
  137921. --------s-8308-------------------------------
  137922. INT 83 - JM Pro Tracker v5.0 - START PLAYING???
  137923. AH = 08h
  137924. ???
  137925. Return: CF clear if successful
  137926. ???
  137927. CF set on error
  137928. AX = error code (001Eh,001Fh) (see #03976)
  137929. SeeAlso: AH=09h,AH=0Ah
  137930. --------s-8309-------------------------------
  137931. INT 83 - JM Pro Tracker v5.0 - PAUSE???
  137932. AH = 09h
  137933. ???
  137934. Return: CF clear if successful
  137935. CF set on error
  137936. AX = error code (see #03976)
  137937. SeeAlso: AH=08h,AH=0Ah
  137938. --------s-830A-------------------------------
  137939. INT 83 - JM Pro Tracker v5.0 - RESUME???
  137940. AH = 0Ah
  137941. ???
  137942. Return: CF clear if successful
  137943. CF set on error
  137944. AX = error code (001Fh) (see #03976)
  137945. SeeAlso: AH=08h,AH=09h
  137946. --------s-830B-------------------------------
  137947. INT 83 - JM Pro Tracker v5.0 - ???
  137948. AH = 0Bh
  137949. BX = ???
  137950. ???
  137951. Return: CF clear if successful
  137952. CF set on error
  137953. --------s-830C-------------------------------
  137954. INT 83 - JM Pro Tracker v5.0 - ???
  137955. AH = 0Ch
  137956. DX bit 5 = ???
  137957. ???
  137958. Return: CF clear if successful
  137959. BX = ??? (FFFFh)
  137960. CX = ??? (0000h)
  137961. DX = ???
  137962. CF set on error
  137963. AX = error code (see #03976)
  137964. --------s-830D-------------------------------
  137965. INT 83 - JM Pro Tracker v5.0 - ???
  137966. AH = 0Dh
  137967. BX = ???
  137968. ???
  137969. Return: CF clear (successful)
  137970. --------s-830E-------------------------------
  137971. INT 83 - JM Pro Tracker v5.0 - ???
  137972. AH = 0Eh
  137973. BX = ??? (ignored if ES:DI = 0000h:0000h)
  137974. ES:DI -> ??? or 0000h:0000h
  137975. Return: CF clear (successful)
  137976. --------s-830F-------------------------------
  137977. INT 83 - JM Pro Tracker v5.0 - ???
  137978. AH = 0Fh
  137979. ???
  137980. Return: CF clear if successful
  137981. AX = ???
  137982. CF set on error
  137983. AX = error code (see #03976)
  137984. --------s-8310-------------------------------
  137985. INT 83 - JM Pro Tracker v5.0 - ???
  137986. AH = 10h
  137987. BL = subfunction???
  137988. CX = ???
  137989. DX = ???
  137990. ???
  137991. Return: CF clear if successful
  137992. CX = DX = ???
  137993. CF set on error
  137994. AX = error code (see #03976)
  137995. SeeAlso: AH=18h
  137996. --------s-8311-------------------------------
  137997. INT 83 - JM Pro Tracker v5.0 - ???
  137998. AH = 11h
  137999. BL = ???
  138000. CX = ???
  138001. Return: CF clear (successful)
  138002. --------s-8312-------------------------------
  138003. INT 83 - JM Pro Tracker v5.0 - CLEAR ???
  138004. AH = 12h
  138005. Return: nothing
  138006. --------s-8313-------------------------------
  138007. INT 83 - JM Pro Tracker v5.0 - ???
  138008. AH = 13h
  138009. BX = ???
  138010. Return: CF clear (successful)
  138011. --------s-8314-------------------------------
  138012. INT 83 - JM Pro Tracker v5.0 - ???
  138013. AH = 14h
  138014. ???
  138015. Return: CF clear (successful)
  138016. BX = ???
  138017. --------s-8315-------------------------------
  138018. INT 83 - JM Pro Tracker v5.0 - GET ???
  138019. AH = 15h
  138020. BX = what to get (zero/nonzero)
  138021. Return: CF clear if successful
  138022. BX = ???
  138023. DX = ???
  138024. CF set on error
  138025. AX = error code (see #03976)
  138026. --------s-8316-------------------------------
  138027. INT 83 - JM Pro Tracker v5.0 - ???
  138028. AH = 16h
  138029. AL = subfunction
  138030. 00h ???
  138031. Return: BX = ???
  138032. CX = ???
  138033. DX = ???
  138034. ES:DI -> ???
  138035. CF indicates ???
  138036. 01h ???
  138037. Return: BX = ???
  138038. CX = ???
  138039. DX = ???
  138040. Return: CF clear if successful
  138041. CF set on error
  138042. AX = error code (FFxxh) (see #03976)
  138043. --------s-8317-------------------------------
  138044. INT 83 - JM Pro Tracker v5.0 - UNHOOK API INTERRUPT
  138045. AH = 17h
  138046. Return: CF clear if successful
  138047. CF set on error (hooked by another program)
  138048. --------s-8318-------------------------------
  138049. INT 83 - JM Pro Tracker v5.0 - SET BUFFERS
  138050. AH = 18h
  138051. ES:DI -> buffer-pointer structure (see #03977)
  138052. Return: nothing
  138053. SeeAlso: AH=05h,AH=06h,AH=07h,AH=10h
  138054. Format of JM Pro Tracker buffer-pointer structure:
  138055. Offset Size Description (Table 03977)
  138056. 00h WORD length of ??? buffer (see AH=05h)
  138057. 02h DWORD -> ??? buffer (see AH=05h)
  138058. 06h WORD length of ??? buffer (see AH=06h)
  138059. 08h DWORD -> ??? buffer (see AH=06h)
  138060. 0Ch WORD length of ??? buffer (see AH=07h)
  138061. 0Eh DWORD -> ??? buffer (see AH=07h)
  138062. 12h WORD ??? (see AH=07h)
  138063. 14h WORD ??? (see AH=10h) (subfunction 01h)
  138064. 16h WORD ??? (see AH=10h) (subfunction 01h)
  138065. 18h WORD ??? (see AH=10h) (subfunction 00h)
  138066. 1Ah WORD ??? (see AH=10h) (subfunction 01h)
  138067. --------r-84---------------------------------
  138068. INT 84 - reserved for BASIC
  138069. SeeAlso: INT 83"BASIC",INT 85"BASIC"
  138070. --------r-85---------------------------------
  138071. INT 85 - reserved for BASIC
  138072. Note: INT 80 through INT ED are modified but not restored by Direct Access
  138073. v4.0, and may be left dangling by other programs written with the
  138074. same version of compiled BASIC
  138075. SeeAlso: INT 84"BASIC",INT 86"BASIC"
  138076. --------N-86---------------------------------
  138077. INT 86 - NetBIOS - ORIGINAL INT 18
  138078. Note: some implementations of NetBIOS reportedly relocate INT 18 here
  138079. SeeAlso: INT 18"BOOT HOOK"
  138080. --------r-86---------------------------------
  138081. INT 86 - IBM ROM BASIC - used while in interpreter
  138082. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138083. BASIC.COM/BASICA.COM do not restore vector on termination
  138084. SeeAlso: INT 85"BASIC",INT 87"BASIC"
  138085. --------r-86---------------------------------
  138086. INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS
  138087. SeeAlso: INT 21/AH=4Ch,INT 87"APL"
  138088. --------r-87---------------------------------
  138089. INT 87 - IBM ROM BASIC - used while in interpreter
  138090. Notes: called by ROM BASIC
  138091. BASIC.COM/BASICA.COM do not restore vector on termination
  138092. SeeAlso: INT 86"BASIC",INT 88"BASIC"
  138093. --------r-87---------------------------------
  138094. INT 87 - APL*PLUS/PC - ???
  138095. SeeAlso: INT 86"APL",INT 88/AL=00h
  138096. --------v-87---------------------------------
  138097. INT 87 - VIRUS - "ZeroHunt" - VIRAL CODE (NOT A VECTOR!)
  138098. Note: the ZeroHunt virus copies its resident code down to 0000h:021Ch and
  138099. following
  138100. SeeAlso: INT 8B"VIRUS"
  138101. --------r-88---------------------------------
  138102. INT 88 - IBM ROM BASIC - used while in interpreter
  138103. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138104. BASIC.COM/BASICA.COM do not restore vector on termination
  138105. SeeAlso: INT 87"BASIC",INT 89"BASIC"
  138106. --------r-88--00-----------------------------
  138107. INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE
  138108. AL = 00h
  138109. BX = STPTR of the variable to be assigned
  138110. ES:SI -> model of type, rank, and shape (see #03978)
  138111. Return: ES:DI -> first data byte of object
  138112. DX:CX = number of elements in the object
  138113. SeeAlso: INT 88/AL=01h,INT 88/AL=08h,INT C8"APL"
  138114. Format of APL*PLUS/PC shape model:
  138115. Offset Size Description (Table 03978)
  138116. 00h BYTE type
  138117. 01h character (2-byte dimension sizes)
  138118. 02h integer (2-byte dimension sizes)
  138119. 08h floating point (2-byte dimension sizes)
  138120. 11h character (4-byte dimension sizes)
  138121. 12h integer (4-byte dimension sizes)
  138122. 18h floating point (4-byte dimension sizes)
  138123. 01h BYTE rank
  138124. 02h (D)WORD first dimension of shape
  138125. N (D)WORD second dimension of shape
  138126. ...
  138127. --------r-88--01-----------------------------
  138128. INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE
  138129. AL = 01h
  138130. AH = rank
  138131. BX = STPTR of the variable to be assigned
  138132. CX = first dimension (if any)
  138133. DX = second dimension (if any)
  138134. Return: ES:DI -> object
  138135. CX = number of elements in the object
  138136. Note: each dimension must be 32767 or smaller
  138137. SeeAlso: AL=00h,AL=02h,AL=08h,INT C8"APL"
  138138. --------r-88--02-----------------------------
  138139. INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE
  138140. AL = 02h
  138141. AH = rank
  138142. BX = STPTR of the variable to be assigned
  138143. CX = first dimension (if any)
  138144. DX = second dimension (if any)
  138145. Return: ES:DI -> object
  138146. CX = number of elements in the object
  138147. Note: each dimension must be 32767 or smaller
  138148. SeeAlso: AL=01h,AL=08h,INT C8"APL"
  138149. --------r-88--08-----------------------------
  138150. INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE
  138151. AL = 08h
  138152. AH = rank
  138153. BX = STPTR of the variable to be assigned
  138154. CX = first dimension (if any)
  138155. DX = second dimension (if any)
  138156. Return: ES:DI -> object
  138157. CX = number of elements in the object
  138158. Note: each dimension must be 32767 or smaller
  138159. SeeAlso: AL=01h,AL=02h,INT C8"APL"
  138160. --------r-88--F5-----------------------------
  138161. INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL
  138162. AL = F5h
  138163. BX = STPTR of object
  138164. SeeAlso: INT C8"APL"
  138165. --------r-88--F6-----------------------------
  138166. INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING
  138167. AL = F6h
  138168. BX = STPTR of object
  138169. SeeAlso: AL=F7h,AL=F8h,INT C8"APL"
  138170. --------r-88--F7-----------------------------
  138171. INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING
  138172. AL = F7h
  138173. BX = STPTR of object
  138174. SeeAlso: AL=F6h,AL=F8h,INT C8"APL"
  138175. --------r-88--F8-----------------------------
  138176. INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING
  138177. AL = F8h
  138178. BX = STPTR of object
  138179. Return: BX = name's outswapping status
  138180. 0000h eligible
  138181. 0001h not eligible
  138182. SeeAlso: AL=F6h,AL=F7h,INT C8"APL"
  138183. --------r-88--F9-----------------------------
  138184. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  138185. AL = F9h
  138186. ES:SI -> name
  138187. CX = length of name
  138188. Return: CF set if name ill-formed or already in use
  138189. BX = STPTR if already in symbol table
  138190. CF clear if name is available for use
  138191. BX = 0000h
  138192. Note: does not force the name into the workspace
  138193. SeeAlso: AL=FEh,AL=FFh,INT C8"APL"
  138194. --------r-88--FC-----------------------------
  138195. INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION
  138196. AL = FCh
  138197. BX = amount of memory needed (paragraphs)
  138198. Return: CF clear if memory available
  138199. CF set if a workspace compaction is required
  138200. SeeAlso: AL=FDh,INT C8"APL"
  138201. --------r-88--FD-----------------------------
  138202. INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY
  138203. AL = FDh
  138204. Return: BX = number of paragraphs available in workspace
  138205. SeeAlso: AL=FCh,INT C8"APL"
  138206. --------r-88--FE-----------------------------
  138207. INT 88 - APL*PLUS/PC - CREATE NAME
  138208. AL = FEh
  138209. ES:SI -> name
  138210. CX = length of name
  138211. Return: BX = STPTR of name
  138212. DX = interpreter's data segment
  138213. SeeAlso: AL=F9h,AL=FFh,INT C8"APL"
  138214. --------r-88--FF-----------------------------
  138215. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  138216. AL = FFh
  138217. ES:SI -> name
  138218. CX = length of name
  138219. Return: CF set if name ill-formed or already in use
  138220. BX = STPTR if already in symbol table
  138221. CF clear if name is available for use
  138222. BX = 0000h
  138223. Note: forces the name into the workspace and makes it immune from outswapping
  138224. SeeAlso: AL=F9h,AL=FEh,INT C8"APL"
  138225. --------r-89---------------------------------
  138226. INT 89 - IBM ROM BASIC - used while in interpreter
  138227. Notes: called by ROM BASIC
  138228. BASIC.COM/BASICA.COM do not restore vector on termination
  138229. SeeAlso: INT 88"BASIC",INT 8A"BASIC"
  138230. --------r-89---------------------------------
  138231. INT 89 - APL*PLUS/PC - ???
  138232. Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  138233. the older interrupts
  138234. SeeAlso: INT C9"APL"
  138235. --------r-8A---------------------------------
  138236. INT 8A - IBM ROM BASIC - used while in interpreter
  138237. Notes: called by ROM BASIC
  138238. BASIC.COM/BASICA.COM do not restore vector on termination
  138239. SeeAlso: INT 89"BASIC",INT 8B"BASIC"
  138240. --------r-8A---------------------------------
  138241. INT 8A - APL*PLUS/PC - PRINT SCREEN
  138242. Note: same as INT 05
  138243. SeeAlso: INT 05"PRINT SCREEN",INT 8C"APL",INT CA"APL"
  138244. --------r-8B---------------------------------
  138245. INT 8B - IBM ROM BASIC - used while in interpreter
  138246. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138247. BASIC.COM/BASICA.COM do not restore vector on termination
  138248. SeeAlso: INT 8A"BASIC",INT 8C"BASIC"
  138249. --------r-8B---------------------------------
  138250. INT 8B - APL*PLUS/PC - BEEP
  138251. Note: same as printing a ^G via INT 21/AH=02h
  138252. SeeAlso: INT 21/AH=02h,INT CB"APL"
  138253. --------v-8B---------------------------------
  138254. INT 8B - VIRUS - "ZeroHunt" - INSTALLATION CHECK (NOT A VECTOR!)
  138255. Note: if the ZeroHunt virus is resident, this vector will contain either
  138256. EE83h:019Bh (ZH-411) or EE83h:019Fh (ZH-415)
  138257. SeeAlso: INT 70"VIRUS",INT 87"VIRUS",INT 9C"VIRUS"
  138258. --------r-8C---------------------------------
  138259. INT 8C - IBM ROM BASIC - used while in interpreter
  138260. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138261. BASIC.COM/BASICA.COM do not restore vector on termination
  138262. --------r-8C---------------------------------
  138263. INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY
  138264. AX = flag
  138265. 0000h do not save display attributes
  138266. 0001h save attributes
  138267. SeeAlso: INT CC"APL"
  138268. --------r-8D---------------------------------
  138269. INT 8D - IBM ROM BASIC - used while in interpreter
  138270. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138271. BASIC.COM/BASICA.COM do not restore vector on termination
  138272. --------r-8E---------------------------------
  138273. INT 8E - IBM ROM BASIC - used while in interpreter
  138274. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138275. BASIC.COM/BASICA.COM do not restore vector on termination
  138276. --------r-8F---------------------------------
  138277. INT 8F - IBM ROM BASIC - used while in interpreter
  138278. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138279. BASIC.COM/BASICA.COM do not restore vector on termination
  138280. --------r-90---------------------------------
  138281. INT 90 - IBM ROM BASIC - used while in interpreter
  138282. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138283. BASIC.COM/BASICA.COM do not restore vector on termination
  138284. --------r-90---------------------------------
  138285. INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER
  138286. --------r-91---------------------------------
  138287. INT 91 - IBM ROM BASIC - used while in interpreter
  138288. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138289. BASIC.COM/BASICA.COM do not restore vector on termination
  138290. --------N-91---------------------------------
  138291. INT 91 - IBM TOKEN RING ADAPTER - ???
  138292. SeeAlso: INT 81"TOKEN RING",INT 82"TOKEN RING",INT 93"TOKEN RING"
  138293. --------!---Section--------------------------
  138294. Interrupt List, part 18 of 18
  138295. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  138296. --------r-92---------------------------------
  138297. INT 92 - IBM ROM BASIC - used while in interpreter
  138298. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138299. BASIC.COM/BASICA.COM do not restore vector on termination
  138300. --------N-92---------------------------------
  138301. INT 92 - Sangoma X.25 INTERFACE PROGRAM
  138302. BX:DX -> control block
  138303. SeeAlso: INT 68"Sangoma"
  138304. --------e-92E1-------------------------------
  138305. INT 92 - Da Vinci eMail Dispatcher INTERFACE
  138306. AH = E1h
  138307. AL = function
  138308. BX = stack count (number of words to push)
  138309. CX:DX -> stack data (in word-reversed order ready to push)
  138310. Return: AX = status (see #03979)
  138311. Note: preserves BP, DS, SI, DI; other registers may be destroyed
  138312. (Table 03979)
  138313. Values for Da Vinci eMail function status:
  138314. 0001h success
  138315. FF97h "ERS_NOT_AVAILABLE"
  138316. FF99h "ERS_TOO_MANY_NAMES"
  138317. FF9Ah "ERS_BAD_NAME_PASSWORD"
  138318. FFE3h "ERS_NAME_NOT_FOUND"
  138319. FFF8h "ERS_USE_STRING" (call NetGetError to get error string)
  138320. FFFFh "ERS_NO_SUCH_FILE"
  138321. --------e-92E100-----------------------------
  138322. INT 92 - Da Vinci eMail Dispatcher - "NetInitStart"
  138323. AX = E100h
  138324. BX = size of parameter block in words (000Ah)
  138325. CX:DX -> parameter block (see #03980)
  138326. Return: AX = 0001h success
  138327. Desc: this function is used to initialize the dispatcher
  138328. SeeAlso: AX=E101h,AX=E103h
  138329. Format of Da Vinci eMail "NetInitStart" parameter block:
  138330. Offset Size Description (Table 03980)
  138331. 00h WORD segment of ???
  138332. 02h WORD offset of ???
  138333. 04h WORD high part of long ???
  138334. 06h WORD low part of long ???
  138335. 08h WORD high part of long ???
  138336. 0Ah WORD low part of long ???
  138337. 0Ch WORD high part of long ???
  138338. 0Eh WORD low part of long ???
  138339. 10h WORD high part of long ???
  138340. 12h WORD low part of long ???
  138341. --------e-92E101BX0000-----------------------
  138342. INT 92 - Da Vinci eMail Dispatcher - "NetInitCheck"
  138343. AX = E101h
  138344. BX = 0000h
  138345. CX:DX ignored
  138346. Return: AX = 0001h success
  138347. SeeAlso: AX=E100h,AX=E180h
  138348. --------e-92E102BX0000-----------------------
  138349. INT 92 - Da Vinci eMail Dispatcher - "NetCheckDriver"
  138350. AX = E102h
  138351. BX = 0000h
  138352. CX:DX ignored
  138353. Return: AX = 0001h success
  138354. Desc: this function is used to determine if the dispatcher is loaded
  138355. SeeAlso: AX=E10Bh,AX=E180h
  138356. --------e-92E103BX0000-----------------------
  138357. INT 92 - Da Vinci eMail Dispatcher - "NetTerminate"
  138358. AX = E103h
  138359. BX = 0000h
  138360. CX:DX ignored
  138361. Return: AX = status (see #03979)
  138362. SeeAlso: AX=E100h
  138363. --------e-92E104-----------------------------
  138364. INT 92 - Da Vinci eMail Dispatcher - "NetWhereIs"
  138365. AX = E104h
  138366. BX = size of parameter block in words (0006h)
  138367. CX:DX -> parameter block (see #03981)
  138368. Return: AX = status (see #03979)
  138369. Desc: this function is used to verify node address for usernames
  138370. SeeAlso: AX=E180h
  138371. Format of Da Vinci eMail "NetWhereIs" parameter block:
  138372. Offset Size Description (Table 03981)
  138373. 00h WORD segment of node address buffer
  138374. 02h WORD offset of node address buffer
  138375. 04h WORD segment of uppercase username
  138376. 06h WORD offset of uppercase username
  138377. 08h WORD segment of "DVSEMAIL"
  138378. 0Ah WORD offset of "DVSEMAIL"
  138379. --------e-92E105-----------------------------
  138380. INT 92 - Da Vinci eMail Dispatcher - "NetOpen"
  138381. AX = E105h
  138382. BX = size of parameter block in words (0007h)
  138383. CX:DX -> parameter block (see #03982)
  138384. Return: AX = 0000h Error
  138385. AX = handle
  138386. Desc: this function is used to open a submission channel
  138387. SeeAlso: AX=E10Ah,AX=E106h,AX=E108h
  138388. Format of Da Vinci eMail "NetOpen" parameter block:
  138389. Offset Size Description (Table 03982)
  138390. 00h WORD operation (1 = read, 2 = write)
  138391. 02h WORD segment of uppercase To: username
  138392. 04h WORD offset of uppercase To: username
  138393. 06h WORD segment of "DVSEMAIL"
  138394. 08h WORD offset of "DVSEMAIL"
  138395. 0Ah WORD segment of node address
  138396. 0Ch WORD offset of node address
  138397. --------e-92E106BX0004-----------------------
  138398. INT 92 - Da Vinci eMail Dispatcher - "NetRead"
  138399. AX = E106h
  138400. BX = 0004h
  138401. CX:DX -> parameter block
  138402. Return: AX = 0001h
  138403. SeeAlso: AX=E108h
  138404. --------e-92E107BX0002-----------------------
  138405. INT 92 - Da Vinci eMail Dispatcher - "NetGetError"
  138406. AX = E107h
  138407. BX = 0002h
  138408. CX:DX -> parameter block
  138409. Return: AX = 0001h
  138410. SeeAlso: AX=E109h,AX=E180h
  138411. --------e-92E108-----------------------------
  138412. INT 92 - Da Vinci eMail Dispatcher - "NetWrite"
  138413. AX = E108h
  138414. BX = size of parameter block in words (0004h)
  138415. CX:DX -> parameter block (see #03983)
  138416. Return: AX = amount written
  138417. Desc: This function is used to write transactions to the dispatcher.
  138418. The command block is written first and then another call is used
  138419. to write the associated data.
  138420. SeeAlso: AX=E106h
  138421. Format of Da Vinci eMail "NetWrite" parameter block:
  138422. Offset Size Description (Table 03983)
  138423. 00h WORD buffer count (see #03985)
  138424. 02h WORD segment of command buffer (see #03984)
  138425. 04h WORD offset of command buffer
  138426. 06h WORD handle from NetOpen
  138427. Format of Da Vinci eMail command buffer:
  138428. Offset Size Description (Table 03984)
  138429. 00h BYTE command
  138430. 21h '!' Protocol commands for remote control
  138431. 41h 'A' Authorization protocol element
  138432. 42h 'B' Return(back) routing information
  138433. Associated data is the From: username
  138434. 43h 'C' Carbon Copy list
  138435. Associated data is a comma delimitted list of usernames
  138436. 44h 'D' Distribution list
  138437. Associated data is a comma delimitted list of usernames
  138438. 45h 'E' Mail end marker
  138439. No associated data
  138440. 48h 'H' Mail message header
  138441. Associated data is a message header buffer
  138442. 4Dh 'M' Mail message
  138443. Associated data is the body of the message
  138444. 4Fh 'O' Object
  138445. 50h 'P' Paperclip attachment
  138446. 52h 'R' Routing information
  138447. Associated data is the To: username
  138448. 53h 'S' Subject
  138449. Associated data is the subject of the message
  138450. 54h 'T' Trail of Reply/Forwards
  138451. 01h BYTE subcommand
  138452. 02h DWORD length of associated data
  138453. Format of Da Vinci eMail message header buffer:
  138454. Offset Size Description (Table 03985)
  138455. 00h 30 BYTEs subject line
  138456. 1Eh 24 BYTEs To
  138457. 36h 24 BYTEs From
  138458. 4Eh DWORD Time
  138459. BYTE 00h
  138460. BYTE hour
  138461. BYTE minute
  138462. BYTE second
  138463. 52h DWORD Date
  138464. BYTE 00h
  138465. BYTE year
  138466. BYTE month
  138467. BYTE day
  138468. 56h DWORD serial number (00000000h)
  138469. 5Ah WORD mail types (see #03986)
  138470. 5Ch WORD special types (0)
  138471. Bitfields for Da Vinci eMail mail types:
  138472. Bit(s) Description (Table 03986)
  138473. 7 blind carbon copy
  138474. 6 carbon copy
  138475. 5 priority
  138476. 4 confidential
  138477. 3 certified
  138478. 2 bulk
  138479. 1-0 class (first, second, third, bulk)
  138480. --------e-92E109-----------------------------
  138481. INT 92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED)
  138482. AX = E109h
  138483. BX = size of parameter block in words (0001h)
  138484. CX:DX -> parameter block (see #03987)
  138485. Return: AX = FF97h (ERS_NOT_AVAILABLE)
  138486. SeeAlso: AX=E107h,AX=E180h
  138487. Format of Da Vinci eMail "NetErrorFix" parameter block:
  138488. Offset Size Description (Table 03987)
  138489. 00h WORD ???
  138490. --------e-92E10A-----------------------------
  138491. INT 92 - Da Vinci eMail Dispatcher - "NetClose"
  138492. AX = E10Ah
  138493. BX = size of parameter block in words (0001h)
  138494. CX:DX -> parameter block (see #03988)
  138495. Return: AX = 0001h
  138496. Desc: this function is used to close a dispatcher handle
  138497. SeeAlso: AX=E105h
  138498. Format of Da Vinci eMail "NetClose" parameter block:
  138499. Offset Size Description (Table 03988)
  138500. 00h WORD handle from NetOpen
  138501. --------e-92E10B-----------------------------
  138502. INT 92 - Da Vinci eMail Dispatcher - "NetCheckQueue"
  138503. AX = E10Bh
  138504. BX = size of parameter block in words (0004h)
  138505. CX:DX -> parameter block (see #03989)
  138506. Return: AX = 0001h
  138507. SeeAlso: AX=E102h,AX=E10Ch
  138508. Format of Da Vinci eMail "NetCheckQueue" parameter block:
  138509. Offset Size Description (Table 03989)
  138510. 00h WORD segment of 24-byte username buffer
  138511. 02h WORD offset of 24-byte username buffer
  138512. 04h WORD segment of 24-byte protocol buffer
  138513. 06h WORD offset of 24-byte protocol buffer
  138514. --------e-92E10C-----------------------------
  138515. INT 92 - Da Vinci eMail Dispatcher - "NetReadQueue"
  138516. AX = E10Ch
  138517. BX = size of parameter block in words (0002h)
  138518. CX:DX -> parameter block (see #03990)
  138519. Return: AX = 0001h
  138520. SeeAlso: AX=E10Bh
  138521. Format of Da Vinci eMail "NetReadQueue" parameter block:
  138522. Offset Size Description (Table 03990)
  138523. 00h WORD Segment of 128 byte node address buffer
  138524. 02h WORD Offset of 128 byte node address buffer
  138525. --------e-92E10D-----------------------------
  138526. INT 92 - Da Vinci eMail Dispatcher - "NetSubmitName"
  138527. AX = E10Dh
  138528. BX = size of parameter block in words (0006h)
  138529. CX:DX -> parameter block (see #03991)
  138530. Return: AX = status (see #03979)
  138531. Desc: this function is used to verify username/password
  138532. SeeAlso: AX=E10Eh
  138533. Format of Da Vinci eMail "NetSubmitName" parameter block:
  138534. Offset Size Description (Table 03991)
  138535. 00h WORD segment of uppercase password string
  138536. 02h WORD offset of uppercase password string
  138537. 04h WORD segment of uppercase username string
  138538. 06h WORD offset of uppercase username string
  138539. 08h WORD segment of "DVSEMAIL"
  138540. 0Ah WORD offset of "DVSEMAIL"
  138541. --------e-92E10E-----------------------------
  138542. INT 92 - Da Vinci eMail Dispatcher - "NetRemoveName"
  138543. AX = E10Eh
  138544. BX = size of parameter block in words (0004h)
  138545. CX:DX -> parameter block (see #03992)
  138546. Return: AX = 0001h
  138547. Desc: this function is used to remove a username
  138548. SeeAlso: AX=E10Dh
  138549. Format of Da Vinci eMail "NetRemoveName" parameter block:
  138550. Offset Type Description (Table 03992)
  138551. 00h WORD segment of uppercase username
  138552. 02h WORD offset of uppercase username
  138553. 04h WORD segment of "DVSEMAIL"
  138554. 06h WORD offset of "DVSEMAIL"
  138555. --------e-92E10FBX0000-----------------------
  138556. INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY
  138557. AX = E10Fh
  138558. BX = 0000h
  138559. CX:DX ignored
  138560. Return: AX = 0001h
  138561. SeeAlso: AX=E180h
  138562. --------e-92E110-----------------------------
  138563. INT 92 - Da Vinci eMail Dispatcher - "NetGetAltRoute"
  138564. AX = E110h
  138565. BX = size of parameter block in words (0006h)
  138566. CX:DX -> parameter block (see #03993)
  138567. Return: AX = 0001h
  138568. SeeAlso: AX=E111h,AX=E113h
  138569. Format of Da Vinci eMail "NetGetAltRoute" parameter block:
  138570. Offset Size Description (Table 03993)
  138571. 00h 6 WORDs ???
  138572. --------e-92E111-----------------------------
  138573. INT 92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes"
  138574. AX = E111h
  138575. BX = size of parameter block in words (0004h)
  138576. CX:DX -> parameter block (see #03994)
  138577. Return: AX = 0001h
  138578. SeeAlso: AX=E110h,AX=E113h
  138579. Format of Da Vinci eMail "NetDeleteAltRoutes" parameter block:
  138580. Offset Size Description (Table 03994)
  138581. 00h 4 WORDs ???
  138582. --------e-92E112-----------------------------
  138583. INT 92 - Da Vinci eMail Dispatcher - "NetChangePassword"
  138584. AX = E112h
  138585. BX = size of parameter block in words (0008h)
  138586. CX:DX -> parameter block (see #03995)
  138587. Return: AX = 0001h
  138588. SeeAlso: AX=E180h
  138589. Format of Da Vinci eMail "NetChangePassword" parameter block:
  138590. Offset Size Description (Table 03995)
  138591. 00h 8 WORDs ???
  138592. --------e-92E113-----------------------------
  138593. INT 92 - Da Vinci eMail Dispatcher - "NetSetAltRoute"
  138594. AX = E113h
  138595. BX = size of parameter block in words (0008h)
  138596. CX:DX -> parameter block (see #03996)
  138597. Return: AX = 0001h
  138598. SeeAlso: AX=E110h,AX=E111h
  138599. Format of Da Vinci eMail "NetSetAltRoute" parameter block:
  138600. Offset Size Description (Table 03996)
  138601. 00h 8 WORDs ???
  138602. --------e-92E175-----------------------------
  138603. INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR
  138604. AX = E175h
  138605. Return: AX = 0012h
  138606. BX = PSP
  138607. SeeAlso: AX=E180h
  138608. --------e-92E180-----------------------------
  138609. INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK
  138610. AX = E180h
  138611. Return: AX = 0012h if installed
  138612. ES:DX -> '$'-terminated driver information string
  138613. SeeAlso: AX=E102h,AX=E105h,AX=E10Fh,AX=E175h
  138614. --------r-93---------------------------------
  138615. INT 93 - IBM ROM BASIC - used while in interpreter
  138616. Notes: called by ROM BASIC
  138617. BASIC.COM/BASICA.COM do not restore vector on termination
  138618. --------N-93---------------------------------
  138619. INT 93 - IBM TOKEN RING ADAPTER - ???
  138620. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  138621. --------r-94---------------------------------
  138622. INT 94 - IBM ROM BASIC - used while in interpreter
  138623. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138624. BASIC.COM/BASICA.COM do not restore vector on termination
  138625. --------s-94----SI0000-----------------------
  138626. INT 94 u - PCM driver - INITIALIZE SOUND
  138627. SI = 0000h
  138628. ES:BX -> parameters
  138629. Return: ???
  138630. Program: PCM.COM is a sound driver for Media Vision's Pro Audio Spectrum
  138631. sound boards
  138632. InstallCheck: test for the signature string "PCMDRIVER" immediately preceding
  138633. the interrupt handler; the word preceding the signature gives the PCM
  138634. driver's version
  138635. SeeAlso: SI=0001h,SI=0002h,SI=0003h,SI=0004h,SI=0005h,SI=000Ah
  138636. Index: installation check;PCM driver|PCM.COM;installation check
  138637. Index: PCM driver;installation check
  138638. --------s-94----SI0001-----------------------
  138639. INT 94 u - PCM driver - INITIALIZE PCM
  138640. SI = 0001h
  138641. ES:BX -> parameters
  138642. Return: ???
  138643. SeeAlso: SI=0000h,SI=0002h,SI=0003h,SI=000Ah
  138644. --------s-94----SI0002-----------------------
  138645. INT 94 u - PCM driver - INITIALIZE PCM INFO
  138646. SI = 0002h
  138647. ES:BX -> parameters (see #03997)
  138648. Return: ???
  138649. SeeAlso: SI=0000h,SI=0001h,SI=0003h,SI=000Ah
  138650. Format of PCM driver function 0002h parameters:
  138651. Offset Size Description (Table 03997)
  138652. 00h DWORD rate
  138653. 04h WORD channel number
  138654. 06h WORD "comp"
  138655. 08h WORD "dsize"
  138656. --------s-94----SI0003-----------------------
  138657. INT 94 u - PCM driver - INITIALIZE DMA BUFFER
  138658. SI = 0003h
  138659. ES:BX -> parameters (see #03998)
  138660. Return: ???
  138661. SeeAlso: SI=0000h,SI=000Ah,SI=000Bh
  138662. Format of PCM driver function 0003h parameters:
  138663. Offset Size Description (Table 03998)
  138664. 00h DWORD -> DMA buffer
  138665. 04h WORD size of DMA buffer
  138666. 06h WORD number of divisions
  138667. --------s-94----SI0004-----------------------
  138668. INT 94 u - PCM driver - INITIALIZE USER FUNCTION
  138669. SI = 0004h
  138670. ES:BX -> parameters (see #03999)
  138671. Return: ???
  138672. SeeAlso: SI=0000h,SI=0001h
  138673. Format of PCM driver function 0004h parameters:
  138674. Offset Size Description (Table 03999)
  138675. 00h DWORD -> user function
  138676. --------s-94----SI0005-----------------------
  138677. INT 94 u - PCM driver - BEGIN AUDIO PLAY
  138678. SI = 0005h
  138679. Return: ???
  138680. SeeAlso: SI=0000h,SI=0006h,SI=0007h,SI=0009h
  138681. --------s-94----SI0006-----------------------
  138682. INT 94 u - PCM driver - BEGIN AUDIO RECORD
  138683. SI = 0006h
  138684. Return: ???
  138685. SeeAlso: SI=0005h,SI=0007h,SI=0009h
  138686. --------s-94----SI0007-----------------------
  138687. INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD
  138688. SI = 0007h
  138689. Return: ???
  138690. SeeAlso: SI=0005h,SI=0006h,SI=0008h
  138691. --------s-94----SI0008-----------------------
  138692. INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD
  138693. SI = 0008h
  138694. Return: ???
  138695. SeeAlso: SI=0007h
  138696. --------s-94----SI0009-----------------------
  138697. INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD
  138698. SI = 0009h
  138699. Return: ???
  138700. SeeAlso: SI=0005h,SI=0006h,SI=0007h
  138701. --------s-94----SI000A-----------------------
  138702. INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA
  138703. SI = 000Ah
  138704. Return: ???
  138705. SeeAlso: SI=0000h,SI=0001h,SI=0003h
  138706. Index: uninstall;PCM driver
  138707. --------s-94----SI000B-----------------------
  138708. INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK
  138709. SI = 000Bh
  138710. ES:BX -> parameters (see #04000)
  138711. Return: ???
  138712. SeeAlso: SI=0003h
  138713. Format of PCM driver functio 000Bh parameters:
  138714. Offset Size Description (Table 04000)
  138715. 00h DWORD -> memory block to contain DMA buffer
  138716. 04h WORD desired size of DMA buffer
  138717. --------s-94----SI000D-----------------------
  138718. INT 94 u - Media Vision PCM.COM - GET STATUS
  138719. SI = 000Dh
  138720. Return: AX = status (0000h = waiting) (see #04001)
  138721. Bitfields for PCM.COM status:
  138722. Bit(s) Description (Table 04001)
  138723. 0 playing
  138724. 1 recording
  138725. 2 SBplaying
  138726. 3 SBrecording
  138727. 14 SBpaused
  138728. 15 paused
  138729. --------s-94----SI8000-----------------------
  138730. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS
  138731. SI = 8000h
  138732. Return: DX:AX -> DMA buffer
  138733. Program: PCM.COM is a superset of the standard PCM driver which provides
  138734. additional functions for fine control of the driver
  138735. InstallCheck: for the Media Vision PCM.COM "shark" functions, test for the
  138736. signature "PCM-SHARK" at offset 107h in the INT 94 handler's segment
  138737. SeeAlso: SI=8001h,SI=8004h
  138738. Index: installation check;Media Vision PCM.COM|PCM.COM;installation check
  138739. Index: Media Vision PCM.COM;"shark" functions
  138740. --------s-94----SI8001-----------------------
  138741. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER SIZE AND DIVISIONS
  138742. SI = 8001h
  138743. Return: AX = DMA buffer size
  138744. DX = divisions
  138745. SeeAlso: SI=8000h
  138746. --------s-94----SI8002-----------------------
  138747. INT 94 u - Media Vision PCM.COM - CHECK BOARD ADDRESS
  138748. SI = 8002h
  138749. Return: AX = status
  138750. 0000h if board not at specified I/O address
  138751. other if board found
  138752. Note: the I/O address is specified by ORing the base I/O port shifted left
  138753. four bits into SI before calling INT 94
  138754. SeeAlso: SI=8000h
  138755. --------s-94----SI8004-----------------------
  138756. INT 94 u - Media Vision PCM.COM - GET INTERNAL NOTE BUFFER
  138757. SI = 8004h
  138758. Return: AX = offset of note buffer (segment = segment of internal DMA buffer)
  138759. DX = size of buffer in note structures
  138760. SeeAlso: SI=8000h
  138761. --------s-94----SI8005-----------------------
  138762. INT 94 u - Media Vision PCM.COM - SINGLE-STEP QUEUE
  138763. SI = 8005h
  138764. Return: ???
  138765. --------s-94----SI8011-----------------------
  138766. INT 94 u - Media Vision PCM.COM - INITIALIZE
  138767. SI = 8011h
  138768. ES:BX -> "iobf91" structure
  138769. Return: ???
  138770. --------s-94----SI8012-----------------------
  138771. INT 94 u - Media Vision PCM.COM - LOAD SOUND FOR LATER PLAY THROUGH KEYBOARD
  138772. SI = 8012h
  138773. ES:BX -> "i94f92buf" structure
  138774. Return: ???
  138775. SeeAlso: SI=8013h,SI=8014h
  138776. --------s-94----SI8013-----------------------
  138777. INT 94 u - Media Vision PCM.COM - GET INTERNAL SOUND USAGE
  138778. SI = 8013h
  138779. Return: AX = number of sounds used
  138780. DX = maximum handles
  138781. --------s-94----SI8014-----------------------
  138782. INT 94 u - Media Vision PCM.COM - GET DATA FOR SPECIFIED SOUND
  138783. SI = 8014h
  138784. ES:BX -> "i94f92buf" structure to be filled in
  138785. sound number field set to desired sound
  138786. Return: AX = status
  138787. 0000h successful
  138788. FFFFh sound number out of range
  138789. SeeAlso: SI=8012h,SI=8013h
  138790. --------s-94----SI8015-----------------------
  138791. INT 94 u - Media Vision PCM.COM - GET/SET INTERNAL DMA BUFFER
  138792. SI = 8015h
  138793. ES:BX -> DMA info structure (see #04002)
  138794. Return: ???
  138795. Format of PCM.COM DMA info structure:
  138796. Offset Size Description (Table 04002)
  138797. 00h DWORD -> DMA buffer (offset FFFFh = return current buffer info)
  138798. 04h WORD DMA buffer size
  138799. 06h WORD divisions
  138800. --------s-94----SI8016-----------------------
  138801. INT 94 u - Media Vision PCM.COM - SIMULATE DOUBLE-SHIFT HOTKEY
  138802. SI = 8016h
  138803. AX = hotkey number (01h-08h)
  138804. Return: ???
  138805. SeeAlso: AL=02h/SI=8017h
  138806. --------s-94--01SI8017-----------------------
  138807. INT 94 u - Media Vision PCM.COM - CTRL-G INTERCEPT
  138808. AL = 01h
  138809. SI = 8017h
  138810. AH = new state (00h off, 01h on)
  138811. Return: ???
  138812. SeeAlso: AL=02h/SI=8017h
  138813. --------s-94--02SI8017-----------------------
  138814. INT 94 u - Media Vision PCM.COM - DOUBLE-SHIFT-HOTKEY SOUND FEATURE
  138815. AL = 02h
  138816. SI = 8017h
  138817. AH = new state (00h off, 01h on)
  138818. Return: ???
  138819. --------s-94--04SI8017-----------------------
  138820. INT 94 u - Media Vision PCM.COM - RANDOM SOUND FEATURE
  138821. AL = 04h
  138822. SI = 8017h
  138823. AH = new state
  138824. 00h off
  138825. 01h on
  138826. CX = minimum delay
  138827. DX = maximum delay
  138828. Return: ???
  138829. --------s-94--08SI8017-----------------------
  138830. INT 94 u - Media Vision PCM.COM - NO ACTIVITY FEATURE
  138831. AL = 08h
  138832. SI = 8017h
  138833. AH = new state
  138834. 00h off
  138835. 01h on
  138836. DX:CX = delay
  138837. Return: ???
  138838. SeeAlso: AL=10h/SI=8017h
  138839. --------s-94--10SI8017-----------------------
  138840. INT 94 u - Media Vision PCM.COM - TIMER CONTROL
  138841. AL = 10h
  138842. SI = 8017h
  138843. AH = timer options (see #04003)
  138844. DX:CX = delay if AH bit 7 set (one-shot if DX bit 15 set)
  138845. Return: ???
  138846. SeeAlso: AL=08h/SI=8017h
  138847. Bitfields for PCM.COM timer options:
  138848. Bit(s) Description (Table 04003)
  138849. 7 set timer
  138850. 6 timer active (timer turned off if clear)
  138851. 5-0 timer number
  138852. --------s-94----SI8018-----------------------
  138853. INT 94 u - Media Vision PCM.COM - GET INFO
  138854. SI = 8018h
  138855. AL = what to get
  138856. 00h "F92state"
  138857. 01h "F92bkgd"
  138858. 02h "I10timer"
  138859. 03h "I08state"
  138860. Return: DX:AX -> desired information
  138861. --------r-95---------------------------------
  138862. INT 95 - IBM ROM BASIC - used while in interpreter
  138863. Notes: called by ROM BASIC
  138864. BASIC.COM/BASICA.COM do not restore vector on termination
  138865. --------r-95---------------------------------
  138866. INT 95 - APL*PLUS/PC - DETERMINE R= SPACE
  138867. Note: use only when the R= option is invoked on entering APL
  138868. --------r-96---------------------------------
  138869. INT 96 - IBM ROM BASIC - used while in interpreter
  138870. Notes: called by ROM BASIC
  138871. BASIC.COM/BASICA.COM do not restore vector on termination
  138872. --------U-96---------------------------------
  138873. INT 96 U - KILL.COM, QKILL.COM - POP UP
  138874. Program: KILL.COM is a TSR utility that allows you to terminate programs
  138875. by calling INT 21/AH=4Ch or reboot the computer (author unknown);
  138876. QKILL.COM is a modification of KILL.COM by Solar Designer that
  138877. supports QEMM's Quick Boot feature
  138878. Notes: This interrupt is intercepted but not chained by KILL.COM; it is never
  138879. called by KILL.COM itself. It points into the middle of KILL.COM's
  138880. INT 09 handler and assumes specific values have been placed on the
  138881. stack (thus it can't be called as an interrupt).
  138882. To invoke KILL, use the following code:
  138883. pushf
  138884. push cs
  138885. push offset $+0Dh
  138886. push ax
  138887. push es
  138888. push 0
  138889. pop es
  138890. jmp dword ptr es:[96h*4]
  138891. --------r-97---------------------------------
  138892. INT 97 - IBM ROM BASIC - used while in interpreter
  138893. Notes: called by ROM BASIC
  138894. BASIC.COM/BASICA.COM do not restore vector on termination
  138895. --------r-98---------------------------------
  138896. INT 98 - IBM ROM BASIC - used while in interpreter
  138897. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138898. BASIC.COM/BASICA.COM do not restore vector on termination
  138899. --------r-99---------------------------------
  138900. INT 99 - IBM ROM BASIC - used while in interpreter
  138901. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138902. BASIC.COM/BASICA.COM do not restore vector on termination
  138903. --------r-9A---------------------------------
  138904. INT 9A - IBM ROM BASIC - used while in interpreter
  138905. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138906. BASIC.COM/BASICA.COM do not restore vector on termination
  138907. SeeAlso: INT 80"BASIC",INT 99,INT 9B
  138908. --------r-9B---------------------------------
  138909. INT 9B - IBM ROM BASIC - used while in interpreter
  138910. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138911. BASIC.COM/BASICA.COM do not restore vector on termination
  138912. SeeAlso: INT 80"BASIC",INT 9A,INT 9C"BASIC"
  138913. --------r-9C---------------------------------
  138914. INT 9C - IBM ROM BASIC - used while in interpreter
  138915. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138916. BASIC.COM/BASICA.COM do not restore vector on termination
  138917. SeeAlso: INT 80"BASIC",INT 9B,INT 9D"BASIC"
  138918. --------v-9C---------------------------------
  138919. INT 9C - VIRUS - "INT13" - ORIGINAL INT 13h VECTOR
  138920. SeeAlso: INT 8B"VIRUS",INT 9D"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  138921. --------r-9D---------------------------------
  138922. INT 9D - IBM ROM BASIC - used while in interpreter
  138923. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138924. BASIC.COM/BASICA.COM do not restore vector on termination
  138925. SeeAlso: INT 80"BASIC",INT 9C"BASIC",INT 9E"BASIC"
  138926. --------v-9D---------------------------------
  138927. INT 9D - VIRUS - "INT13" - ROM INT 13h ENTRY POINT
  138928. Note: this vector is used by the virus to store the result of a call to
  138929. INT 2F/AH=13h
  138930. SeeAlso: INT 2F/AH=13h,INT 9C"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  138931. --------r-9E---------------------------------
  138932. INT 9E - IBM ROM BASIC - used while in interpreter
  138933. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138934. BASIC.COM/BASICA.COM do not restore vector on termination
  138935. SeeAlso: INT 80"BASIC",INT 9D"BASIC",INT 9F"BASIC"
  138936. --------v-9E---------------------------------
  138937. INT 9E - VIRUS - "INT13" - ORIGINAL INT 21h VECTOR
  138938. SeeAlso: INT 70"VIRUS",INT 9C"VIRUS",INT 9D"VIRUS",INT E0"VIRUS"
  138939. --------r-9F---------------------------------
  138940. INT 9F - IBM ROM BASIC - used while in interpreter
  138941. Notes: called by ROM BASIC
  138942. BASIC.COM/BASICA.COM do not restore vector on termination
  138943. SeeAlso: INT 80"BASIC",INT 9D"BASIC",INT A0"BASIC"
  138944. --------v-9F---------------------------------
  138945. INT 9F - VIRUS - "INT13" - STORAGE FOR USER INT 13h VECTOR
  138946. Note: while it is infecting a file, the INT13 virus grabs INT 13 and uses
  138947. this interrupt to store the existing INT 13 vector for later
  138948. restoration
  138949. SeeAlso: INT 9C"VIRUS",INT 9D"VIRUS",INT D3"VIRUS"
  138950. --------r-A0---------------------------------
  138951. INT A0 - IBM ROM BASIC - used while in interpreter
  138952. Notes: called by ROM BASIC
  138953. BASIC.COM/BASICA.COM do not restore vector on termination
  138954. SeeAlso: INT 80"BASIC",INT 9F"BASIC",INT A1"BASIC"
  138955. --------r-A0---------------------------------
  138956. INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE
  138957. SeeAlso: INT 59"GSS"
  138958. --------r-A1---------------------------------
  138959. INT A1 - IBM ROM BASIC - used while in interpreter
  138960. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138961. BASIC.COM/BASICA.COM do not restore vector on termination
  138962. SeeAlso: INT 80"BASIC",INT A0"BASIC",INT A2"BASIC"
  138963. --------r-A2---------------------------------
  138964. INT A2 - IBM ROM BASIC - used while in interpreter
  138965. Notes: called by ROM BASIC
  138966. BASIC.COM/BASICA.COM do not restore vector on termination
  138967. SeeAlso: INT 80"BASIC",INT A1"BASIC",INT A3"BASIC"
  138968. --------r-A3---------------------------------
  138969. INT A3 - IBM ROM BASIC - used while in interpreter
  138970. Notes: called by ROM BASIC
  138971. BASIC.COM/BASICA.COM do not restore vector on termination
  138972. SeeAlso: INT 80"BASIC",INT A2"BASIC",INT A4"BASIC"
  138973. --------r-A4---------------------------------
  138974. INT A4 - IBM ROM BASIC - used while in interpreter
  138975. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138976. BASIC.COM/BASICA.COM do not restore vector on termination
  138977. SeeAlso: INT 80"BASIC",INT A3"BASIC",INT A5"BASIC"
  138978. --------U-A4---------------------------------
  138979. INT A4 U - Right Hand Man - API
  138980. AH = function number (v3.3 supports functions 00h-52h)
  138981. Return: CF set on error
  138982. CF clear if successful
  138983. Program: Right Hand Man is a TSR desk-top utility originally by Red E Products
  138984. which has evolved into Futurus Team
  138985. Note: this interrupt is only hooked while popped up
  138986. SeeAlso: INT 2F/AX=A4E0h
  138987. --------r-A5---------------------------------
  138988. INT A5 - IBM ROM BASIC - used while in interpreter
  138989. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  138990. BASIC.COM/BASICA.COM do not restore vector on termination
  138991. SeeAlso: INT 80"BASIC",INT A4"BASIC",INT A6"BASIC"
  138992. --------r-A6---------------------------------
  138993. INT A6 - IBM ROM BASIC - used while in interpreter
  138994. Notes: called by ROM BASIC
  138995. BASIC.COM/BASICA.COM do not restore vector on termination
  138996. SeeAlso: INT 80"BASIC",INT A5"BASIC",INT A7"BASIC"
  138997. --------r-A7---------------------------------
  138998. INT A7 - IBM ROM BASIC - used while in interpreter
  138999. Notes: called by ROM BASIC
  139000. BASIC.COM/BASICA.COM do not restore vector on termination
  139001. --------r-A8---------------------------------
  139002. INT A8 - IBM ROM BASIC - used while in interpreter
  139003. Notes: called by ROM BASIC
  139004. BASIC.COM/BASICA.COM do not restore vector on termination
  139005. --------r-A9---------------------------------
  139006. INT A9 - IBM ROM BASIC - used while in interpreter
  139007. Notes: called by ROM BASIC
  139008. BASIC.COM/BASICA.COM do not restore vector on termination
  139009. --------r-AA---------------------------------
  139010. INT AA - IBM ROM BASIC - used while in interpreter
  139011. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139012. BASIC.COM/BASICA.COM do not restore vector on termination
  139013. --------r-AB---------------------------------
  139014. INT AB - IBM ROM BASIC - used while in interpreter
  139015. Notes: called by ROM BASIC
  139016. BASIC.COM/BASICA.COM do not restore vector on termination
  139017. --------r-AC---------------------------------
  139018. INT AC - IBM ROM BASIC - used while in interpreter
  139019. Notes: called by ROM BASIC
  139020. BASIC.COM/BASICA.COM do not restore vector on termination
  139021. --------r-AD---------------------------------
  139022. INT AD - IBM ROM BASIC - used while in interpreter
  139023. Notes: called by ROM BASIC
  139024. BASIC.COM/BASICA.COM do not restore vector on termination
  139025. --------r-AE---------------------------------
  139026. INT AE - IBM ROM BASIC - used while in interpreter
  139027. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139028. BASIC.COM/BASICA.COM do not restore vector on termination
  139029. --------r-AF---------------------------------
  139030. INT AF - IBM ROM BASIC - used while in interpreter
  139031. Notes: called by ROM BASIC
  139032. BASIC.COM/BASICA.COM do not restore vector on termination
  139033. --------r-B0---------------------------------
  139034. INT B0 - IBM ROM BASIC - used while in interpreter
  139035. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139036. BASIC.COM/BASICA.COM do not restore vector on termination
  139037. --------r-B1---------------------------------
  139038. INT B1 - IBM ROM BASIC - used while in interpreter
  139039. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139040. BASIC.COM/BASICA.COM do not restore vector on termination
  139041. --------r-B2---------------------------------
  139042. INT B2 - IBM ROM BASIC - used while in interpreter
  139043. Notes: called by ROM BASIC
  139044. BASIC.COM/BASICA.COM do not restore vector on termination
  139045. --------r-B3---------------------------------
  139046. INT B3 - IBM ROM BASIC - used while in interpreter
  139047. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139048. BASIC.COM/BASICA.COM do not restore vector on termination
  139049. --------U-B370-------------------------------
  139050. INT B3 - ZIPKEY - GET VERSION
  139051. AH = 70h
  139052. Return: AH = major version
  139053. AL = minor version
  139054. CL = number of states and territories in current database
  139055. DH = year of current database - 1900
  139056. DL = month of current database's file date
  139057. Program: ZIPKEY is a resident ZIPCODE database by Eric Isaacson
  139058. Note: if installed, the string "ZIPKEY" is present at offset 75h in the
  139059. interrupt handler's segment, and the byte at 7Bh contains the API
  139060. version number (00h for v1.x, 01h for v2.0)
  139061. --------U-B371-------------------------------
  139062. INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE
  139063. AH = 71h
  139064. BX = abbreviation, in either case (first letter in BL)
  139065. Return: CF set on error
  139066. AL = FFh
  139067. CF clear if successful
  139068. AL = ZIPKEY state code
  139069. SeeAlso: AH=72h
  139070. --------U-B372-------------------------------
  139071. INT B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION
  139072. AH = 72h
  139073. BL = ZIPKEY state code
  139074. Return: CF set on error
  139075. AX destroyed
  139076. CF clear if successful
  139077. AX = abbreviation, in upper case
  139078. SeeAlso: AH=71h,AH=73h
  139079. --------U-B373-------------------------------
  139080. INT B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME
  139081. AH = 73h
  139082. BL = ZIPKEY state code
  139083. ES:DI -> buffer for name
  139084. Return: CF set on error
  139085. AX destroyed
  139086. CF clear if successful
  139087. ES:DI points one byte beyond end of name
  139088. SeeAlso: AH=72h
  139089. --------U-B374-------------------------------
  139090. INT B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS
  139091. AH = 74h
  139092. DX = zipcode region (0-999)
  139093. CH = last two digits of zipcode (0-99)
  139094. ES:DI -> buffer
  139095. Return: CF set on error
  139096. AX destroyed
  139097. CF clear if successful
  139098. ES:DI points one byte beyond end of digit string
  139099. --------U-B375-------------------------------
  139100. INT B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE
  139101. AH = 75h
  139102. DX = zipcode region (0-999)
  139103. CH = last two digits of zipcode (0-99)
  139104. Return: CF set on error (zipcode not found)
  139105. AL = suggested state code, FFh if none
  139106. CF clear if successful
  139107. AL = ZIPKEY state code
  139108. BX = area code (v2.0+)
  139109. SeeAlso: AH=76h,AH=79h
  139110. --------U-B376-------------------------------
  139111. INT B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE
  139112. AH = 76h
  139113. DX = zipcode region (0-999)
  139114. CH = last two digits of zipcode (0-99)
  139115. ES:DI -> buffer for name
  139116. Return: CF set on error
  139117. AL = suggested state code, FFh if none
  139118. ES:DI buffer filled with suggested city name
  139119. CF clear if successful
  139120. AL = ZIPKEY state code
  139121. BX = area code (v2.0+)
  139122. ES:DI points one byte beyond end of name
  139123. SeeAlso: AH=75h,AH=78h,AH=7Eh
  139124. --------U-B377-------------------------------
  139125. INT B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE
  139126. AH = 77h
  139127. DX = zipcode region (0-999)
  139128. CH = last two digits of zipcode (0-99)
  139129. BX = 16-bit BIOS keycode for a defined ZIPKEY alternate exit key
  139130. Return: CF set on error
  139131. AX destroyed
  139132. CF clear if successful
  139133. zipcode specification as defined by the BX keystroke is placed in
  139134. keyboard buffer, as if the user had popped up ZIPKEY and exited
  139135. by pressing the key specified by BX
  139136. --------U-B378-------------------------------
  139137. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY
  139138. AH = 78h
  139139. BL = ZIPKEY state code
  139140. DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  139141. Return: BH = number of matching entries (set to 51 if more than 50)
  139142. DX = zipcode region of first match (0-999)
  139143. CL = last two digits of first zipcode in the range (0-99)
  139144. CH = last two digits of last zipcode in the range (0-99)
  139145. AX destroyed
  139146. SeeAlso: AH=79h,AH=7Ah
  139147. --------U-B379-------------------------------
  139148. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY
  139149. AH = 79h
  139150. BL = ZIPKEY state code of first state to search
  139151. DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  139152. Return: AL = ZIPKEY state code of first matching state
  139153. BH = number of matching entries (set to 51 if more than 50)
  139154. DX = zipcode region of first match (0-999)
  139155. CL = last two digits of first zipcode in first range (0-99)
  139156. CH = last two digits of last zipcode in first range (0-99)
  139157. Note: to find all matching cities, repeat search with BL set to one more than
  139158. the returned AL
  139159. SeeAlso: AH=78h,AH=7Ah
  139160. --------U-B37A-------------------------------
  139161. INT B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP
  139162. AH = 7Ah
  139163. BL = case number (0 to one less than value returned in BH by lookup)
  139164. Return: AL = ZIPKEY state code
  139165. DX = zipcode region (0-999)
  139166. CL = last two digits of first zipcode in the range (0-99)
  139167. CH = last two digits of last zipcode in the range (0-99)
  139168. SeeAlso: AH=78h,AH=79h
  139169. --------U-B37B-------------------------------
  139170. INT B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT
  139171. AH = 7Bh
  139172. Return: BL = maximum number of characters for a city name
  139173. BH = ZIPKEY state code for last city-name search, or FFh if none
  139174. CX:DX = internal code identifying last city search
  139175. AX destroyed
  139176. SeeAlso: AH=7Ch
  139177. --------U-B37C-------------------------------
  139178. INT B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT
  139179. AH = 7Ch
  139180. BL = maximum number of characters for a city name
  139181. BH = ZIPKEY state code for last city-name search, or FFh if none
  139182. CX:DX = internal code returned by AH=7Bh
  139183. Return: CF set on error
  139184. CF clear if successful
  139185. AX destroyed
  139186. SeeAlso: AH=7Bh
  139187. --------U-B37D-------------------------------
  139188. INT B3 - ZIPKEY - REQUEST POP UP
  139189. AH = 7Dh
  139190. BL = index number to simulate pressing a hotkey
  139191. FFh for immediate popup with no playback on return
  139192. Return: CF set on error
  139193. AL = error code
  139194. FDh already busy with another request
  139195. FEh illegal function
  139196. CF clear if successful
  139197. AX destroyed
  139198. window popped up and was closed by the user
  139199. SeeAlso: AH=70h
  139200. --------U-B37E-------------------------------
  139201. INT B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION
  139202. AH = 7Eh
  139203. DX = zipcode region (0-999)
  139204. ES:DI -> buffer for name
  139205. Return: CF set on error
  139206. AL = FFh region does not exist
  139207. CF clear if successful
  139208. AL = ZIPKEY state code
  139209. ES:DI points one byte beyond end of name
  139210. SeeAlso: AH=76h
  139211. --------U-B37F-------------------------------
  139212. INT B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS
  139213. AH = 7Fh
  139214. BL = function
  139215. 00h turn off hotkeys
  139216. 01h turn on hotkeys
  139217. 02h return hotkey status
  139218. 03h toggle hotkey status
  139219. Return: AL = hotkey status
  139220. 00h off
  139221. 01h on
  139222. --------U-B380-------------------------------
  139223. INT B3 - ZIPKEY v2.0+ - DETERMINE STATE FOR AREA CODE
  139224. AH = 80h
  139225. BX = telephone area code (decimal)
  139226. Return: CF clear if successful
  139227. AL = ZIPKEY state code
  139228. DX = first ZIP region for state (03E8h if Canada)
  139229. CX = number of ZIP regions in state
  139230. CF set on error
  139231. AL = FFh
  139232. DX = 03E9h
  139233. --------r-B4---------------------------------
  139234. INT B4 - IBM ROM BASIC - used while in interpreter
  139235. Notes: called by ROM BASIC
  139236. BASIC.COM/BASICA.COM do not restore vector on termination
  139237. --------r-B4---------------------------------
  139238. INT B4 - StackMan - REQUEST NEW STACK
  139239. Return: SS:SP -> new stack
  139240. Program: StackMan is a freeware stack manager by Franz Veldman of ESaSS B.V.
  139241. which functions as a replacement for the DOS STACK= command as well
  139242. as permitting multiple TSRs to share a pool of stack space
  139243. InstallCheck: test for the string "STACKXXX" at offset 0Ah from the
  139244. interrupt handler
  139245. SeeAlso: INT 2F/AX=C9FFh,INT B5"STACKMAN"
  139246. Index: installation check;STACKMAN
  139247. --------r-B5---------------------------------
  139248. INT B5 - IBM ROM BASIC - used while in interpreter
  139249. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139250. BASIC.COM/BASICA.COM do not restore vector on termination
  139251. SeeAlso: INT 80"BASIC",INT B4"BASIC",INT B6"BASIC"
  139252. --------r-B5---------------------------------
  139253. INT B5 - StackMan - RESTORE ORIGINAL STACK
  139254. SS:SP -> stack returned by INT B4
  139255. Return: SS:SP restored to value before INT B4
  139256. SeeAlso: INT 2F/AX=C9FFh,INT B4"StackMan"
  139257. --------m-B5---------------------------------
  139258. INT B5 U - Netroom NETSWAP4 - ???
  139259. ???
  139260. Return: ???
  139261. SeeAlso: INT 31/AH=57h
  139262. --------r-B6---------------------------------
  139263. INT B6 - IBM ROM BASIC - used while in interpreter
  139264. Notes: called by ROM BASIC
  139265. BASIC.COM/BASICA.COM do not restore vector on termination
  139266. SeeAlso: INT 80"BASIC",INT B5"BASIC",INT B7"BASIC"
  139267. --------y-B6---------------------------------
  139268. INT B6 - (NOT A VECTOR!) - USED BY TBFENCE
  139269. Program: TBFence is a security program by ESaSS B.V. which transparently
  139270. encrypts floppies and optionally allows only encrypted diskettes to
  139271. be accessed
  139272. Note: the low word of this vector (0000h:02D8h) contains the segment of the
  139273. TBFence INT 13h code, which starts with the signature word E487h;
  139274. this forms the installation check
  139275. the highest byte of this vector contains the start of a FAR JMP
  139276. instruction to ???
  139277. SeeAlso: INT B7"TBFENCE"
  139278. Index: installation check;TBFence
  139279. --------r-B7---------------------------------
  139280. INT B7 - IBM ROM BASIC - used while in interpreter
  139281. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139282. BASIC.COM/BASICA.COM do not restore vector on termination
  139283. SeeAlso: INT 80"BASIC",INT B6"BASIC",INT B8"BASIC"
  139284. --------y-B7---------------------------------
  139285. INT B7 - TBFENCE - ???
  139286. SeeAlso: INT B6"TBFENCE"
  139287. --------r-B8---------------------------------
  139288. INT B8 - IBM ROM BASIC - used while in interpreter
  139289. Notes: called by ROM BASIC
  139290. BASIC.COM/BASICA.COM do not restore vector on termination
  139291. SeeAlso: INT 80"BASIC",INT B7"BASIC",INT B9"BASIC"
  139292. --------r-B9---------------------------------
  139293. INT B9 - IBM ROM BASIC - used while in interpreter
  139294. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139295. BASIC.COM/BASICA.COM do not restore vector on termination
  139296. --------r-BA---------------------------------
  139297. INT BA - IBM ROM BASIC - used while in interpreter
  139298. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139299. BASIC.COM/BASICA.COM do not restore vector on termination
  139300. --------r-BB---------------------------------
  139301. INT BB - IBM ROM BASIC - used while in interpreter
  139302. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139303. BASIC.COM/BASICA.COM do not restore vector on termination
  139304. --------r-BC---------------------------------
  139305. INT BC - IBM ROM BASIC - used while in interpreter
  139306. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139307. BASIC.COM/BASICA.COM do not restore vector on termination
  139308. --------r-BD---------------------------------
  139309. INT BD - IBM ROM BASIC - used while in interpreter
  139310. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139311. BASIC.COM/BASICA.COM do not restore vector on termination
  139312. --------r-BE---------------------------------
  139313. INT BE - IBM ROM BASIC - used while in interpreter
  139314. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139315. BASIC.COM/BASICA.COM do not restore vector on termination
  139316. SeeAlso: INT 80"BASIC",INT BD"BASIC",INT BF"BASIC"
  139317. --------Q-BE---------------------------------
  139318. INT BE - DESQview/X - ???
  139319. Note: points at an IRET
  139320. SeeAlso: INT 15/AX=BFDEh/BX=0006h,INT 63"DESQview"
  139321. --------r-BF---------------------------------
  139322. INT BF - IBM ROM BASIC - used while in interpreter
  139323. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139324. BASIC.COM/BASICA.COM do not restore vector on termination
  139325. SeeAlso: INT 80"BASIC",INT BE"BASIC",INT C0"BASIC"
  139326. --------r-C0---------------------------------
  139327. INT C0 - IBM ROM BASIC - used while in interpreter
  139328. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139329. BASIC.COM/BASICA.COM do not restore vector on termination
  139330. SeeAlso: INT 80"BASIC",INT BF"BASIC",INT C1"BASIC"
  139331. --------d-C0---------------------------------
  139332. INT C0 - AMI BIOS - DRIVE 0 DATA
  139333. Note: this vector is used by some AMI BIOSes to store the first four bytes
  139334. of the hard disk parameter table
  139335. SeeAlso: INT 41"HARD DISK 0",INT 60"Adaptec",INT C1"AMI",INT C2"AMI"
  139336. SeeAlso: INT C3"AMI",INT C4"AMI"
  139337. --------r-C1---------------------------------
  139338. INT C1 - IBM ROM BASIC - used while in interpreter
  139339. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139340. BASIC.COM/BASICA.COM do not restore vector on termination
  139341. SeeAlso: INT 80"BASIC",INT C0"BASIC",INT C2"BASIC"
  139342. --------d-C1---------------------------------
  139343. INT C1 - AMI BIOS - DRIVE 0 DATA
  139344. Note: this vector is used by some AMI BIOSes to store the second four bytes
  139345. of the hard disk parameter table
  139346. SeeAlso: INT 41"HARD DISK 0",INT 60"Adaptec",INT C0"AMI",INT C2"AMI"
  139347. SeeAlso: INT C3"AMI"
  139348. --------r-C2---------------------------------
  139349. INT C2 - IBM ROM BASIC - used while in interpreter
  139350. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139351. BASIC.COM/BASICA.COM do not restore vector on termination
  139352. SeeAlso: INT 80"BASIC",INT C1"BASIC",INT C3"BASIC"
  139353. --------d-C2---------------------------------
  139354. INT C2 - AMI BIOS - DRIVE 0 DATA
  139355. Note: this vector is used by some AMI BIOSes to store the third four bytes
  139356. of the hard disk parameter table
  139357. SeeAlso: INT 41"DISK 0",INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C3"AMI"
  139358. --------r-C3---------------------------------
  139359. INT C3 - IBM ROM BASIC - used while in interpreter
  139360. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139361. BASIC.COM/BASICA.COM do not restore vector on termination
  139362. SeeAlso: INT 80"BASIC",INT C2"BASIC",INT C4"BASIC"
  139363. --------d-C3---------------------------------
  139364. INT C3 - AMI BIOS - DRIVE 0 DATA
  139365. Note: this vector is used by some AMI BIOSes to store the final four bytes
  139366. of the hard disk parameter table
  139367. SeeAlso: INT 41"DISK 0",INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C2"AMI"
  139368. --------r-C4---------------------------------
  139369. INT C4 - IBM ROM BASIC - used while in interpreter
  139370. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139371. BASIC.COM/BASICA.COM do not restore vector on termination
  139372. SeeAlso: INT 80"BASIC",INT C3"BASIC",INT C5"BASIC"
  139373. --------d-C4---------------------------------
  139374. INT C4 - AMI BIOS - DRIVE 1 DATA
  139375. Note: this vector is used by some AMI BIOSes to store the first four bytes
  139376. of the second hard disk's parameter table
  139377. SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C5"AMI"
  139378. SeeAlso: INT C6"AMI",INT C7"AMI"
  139379. --------r-C5---------------------------------
  139380. INT C5 - IBM ROM BASIC - used while in interpreter
  139381. Notes: called by ROM BASIC
  139382. BASIC.COM/BASICA.COM do not restore vector on termination
  139383. SeeAlso: INT 80"BASIC",INT C4"BASIC",INT C6"BASIC"
  139384. --------d-C5---------------------------------
  139385. INT C5 - AMI BIOS - DRIVE 1 DATA
  139386. Note: this vector is used by some AMI BIOSes to store the second four bytes
  139387. of the second hard disk's parameter table
  139388. SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C4"AMI"
  139389. SeeAlso: INT C6"AMI",INT C7"AMI"
  139390. --------r-C6---------------------------------
  139391. INT C6 - IBM ROM BASIC - used while in interpreter
  139392. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139393. BASIC.COM/BASICA.COM do not restore vector on termination
  139394. SeeAlso: INT 80"BASIC",INT C5"BASIC",INT C7"BASIC"
  139395. --------r-C6---------------------------------
  139396. INT C6 - APL*PLUS/PC - IDENTICAL TO INT 86
  139397. Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  139398. the older interrupts
  139399. SeeAlso: INT 86"APL"
  139400. --------d-C6---------------------------------
  139401. INT C6 - AMI BIOS - DRIVE 1 DATA
  139402. Note: this vector is used by some AMI BIOSes to store the third four bytes
  139403. of the second hard disk's parameter table
  139404. SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C4"AMI"
  139405. SeeAlso: INT C5"AMI",INT C7"AMI"
  139406. --------r-C7---------------------------------
  139407. INT C7 - IBM ROM BASIC - used while in interpreter
  139408. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139409. BASIC.COM/BASICA.COM do not restore vector on termination
  139410. SeeAlso: INT 80"BASIC",INT C6"BASIC",INT C8"BASIC"
  139411. --------r-C7---------------------------------
  139412. INT C7 - APL*PLUS/PC - ???
  139413. Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  139414. the older interrupts
  139415. SeeAlso: INT 87"APL"
  139416. --------d-C7---------------------------------
  139417. INT C7 - AMI BIOS - DRIVE 1 DATA
  139418. Note: this vector is used by some AMI BIOSes to store the final four bytes
  139419. of the second hard disk's parameter table
  139420. SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C4"AMI"
  139421. SeeAlso: INT C5"AMI",INT C6"AMI"
  139422. --------r-C8---------------------------------
  139423. INT C8 - IBM ROM BASIC - used while in interpreter
  139424. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139425. BASIC.COM/BASICA.COM do not restore vector on termination
  139426. SeeAlso: INT 80"BASIC",INT C7"BASIC",INT C9"BASIC"
  139427. --------r-C8---------------------------------
  139428. INT C8 - APL*PLUS/PC - IDENTICAL TO INT 88
  139429. Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  139430. the older interrupts
  139431. SeeAlso: INT 88/AL=00h"APL",INT 88/AL=08h"APL"
  139432. --------r-C9---------------------------------
  139433. INT C9 - IBM ROM BASIC - used while in interpreter
  139434. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139435. BASIC.COM/BASICA.COM do not restore vector on termination
  139436. SeeAlso: INT 80"BASIC",INT C8"BASIC",INT CA"BASIC"
  139437. --------r-C9---------------------------------
  139438. INT C9 - APL*PLUS/PC - ???
  139439. Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  139440. the older interrupts
  139441. SeeAlso: INT 89"APL"
  139442. --------r-CA---------------------------------
  139443. INT CA - IBM ROM BASIC - used while in interpreter
  139444. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139445. BASIC.COM/BASICA.COM do not restore vector on termination
  139446. SeeAlso: INT 80"BASIC",INT C9"BASIC",INT CB"BASIC"
  139447. --------r-CA---------------------------------
  139448. INT CA - APL*PLUS/PC - PRINT SCREEN
  139449. Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  139450. the older interrupts
  139451. SeeAlso: INT 8A"APL"
  139452. --------r-CB---------------------------------
  139453. INT CB - IBM ROM BASIC - used while in interpreter
  139454. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139455. BASIC.COM/BASICA.COM do not restore vector on termination
  139456. SeeAlso: INT 80"BASIC",INT CA"BASIC",INT CC"BASIC"
  139457. --------r-CB---------------------------------
  139458. INT CB - APL*PLUS/PC - BEEP
  139459. Notes: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  139460. the older interrupts
  139461. same as printing a ^G via INT 21/AH=02h
  139462. SeeAlso: INT 8B"APL"
  139463. --------r-CC---------------------------------
  139464. INT CC - IBM ROM BASIC - used while in interpreter
  139465. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139466. BASIC.COM/BASICA.COM do not restore vector on termination
  139467. SeeAlso: INT 80"BASIC",INT CB"BASIC",INT CD"BASIC"
  139468. --------r-CC---------------------------------
  139469. INT CC - APL*PLUS/PC - CLEAR SCREEN MEMORY
  139470. AX = flag
  139471. 0000h do not save display attributes
  139472. 0001h save attributes
  139473. Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  139474. the older interrupts
  139475. SeeAlso: INT 8C"APL"
  139476. --------r-CD---------------------------------
  139477. INT CD - IBM ROM BASIC - used while in interpreter
  139478. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139479. BASIC.COM/BASICA.COM do not restore vector on termination
  139480. SeeAlso: INT 80"BASIC",INT CC"BASIC",INT CE"BASIC"
  139481. --------r-CD---------------------------------
  139482. INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  139483. --------r-CE---------------------------------
  139484. INT CE - IBM ROM BASIC - used while in interpreter
  139485. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139486. BASIC.COM/BASICA.COM do not restore vector on termination
  139487. SeeAlso: INT 80"BASIC",INT CD"BASIC",INT CF"BASIC"
  139488. --------r-CE---------------------------------
  139489. INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  139490. --------r-CF---------------------------------
  139491. INT CF - IBM ROM BASIC - used while in interpreter
  139492. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139493. BASIC.COM/BASICA.COM do not restore vector on termination
  139494. SeeAlso: INT 80"BASIC",INT CE"BASIC",INT D0"BASIC"
  139495. --------r-CF---------------------------------
  139496. INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION
  139497. SeeAlso: INT E0"APL"
  139498. --------r-D0---------------------------------
  139499. INT D0 - IBM ROM BASIC - used while in interpreter
  139500. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139501. BASIC.COM/BASICA.COM do not restore vector on termination
  139502. SeeAlso: INT 80"BASIC",INT CF"BASIC",INT D1"BASIC"
  139503. --------r-D0---------------------------------
  139504. INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  139505. --------U-D0---------------------------------
  139506. INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR
  139507. Program: NJFRERAM is a resident free-memory display utility by Mike "Nifty
  139508. James" Blaszczak
  139509. Note: if NJFRERAM is installed, this vector points at the signature "NJ"
  139510. Index: installation check;NJFRERAM
  139511. --------r-D1---------------------------------
  139512. INT D1 - IBM ROM BASIC - used while in interpreter
  139513. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139514. BASIC.COM/BASICA.COM do not restore vector on termination
  139515. SeeAlso: INT 80"BASIC",INT D0"BASIC",INT D2"BASIC"
  139516. --------r-D1---------------------------------
  139517. INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  139518. --------r-D2---------------------------------
  139519. INT D2 - IBM ROM BASIC - used while in interpreter
  139520. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139521. BASIC.COM/BASICA.COM do not restore vector on termination
  139522. SeeAlso: INT 80"BASIC",INT D1"BASIC",INT D3"BASIC"
  139523. --------r-D2---------------------------------
  139524. INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  139525. --------r-D3---------------------------------
  139526. INT D3 - IBM ROM BASIC - used while in interpreter
  139527. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  139528. BASIC.COM/BASICA.COM do not restore vector on termination
  139529. SeeAlso: INT 80"BASIC",INT D2"BASIC",INT D4"BASIC"
  139530. --------r-D3---------------------------------
  139531. INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  139532. --------v-D3---------------------------------
  139533. INT D3 - VIRUS - "Antiexe" - RELOCATED INT 13
  139534. SeeAlso: INT 9F"VIRUS"
  139535. --------r-D4---------------------------------
  139536. INT D4 - IBM ROM BASIC - used while in interpreter
  139537. Notes: called by ROM BASIC
  139538. BASIC.COM/BASICA.COM do not restore vector on termination
  139539. SeeAlso: INT 80"BASIC",INT D3"BASIC",INT D5"BASIC"
  139540. --------r-D4---------------------------------
  139541. INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  139542. --------O-D400-------------------------------
  139543. INT D4 O - PC-MOS/386 v5.01 - OBSOLETE FUNCTIONS
  139544. AH = 00h and 01h
  139545. Return: nothing
  139546. Desc: PC-MOS/386 v5.01 reports that these functions are no longer supported
  139547. and enters an endless loop
  139548. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  139549. system by The Software Link, Inc.
  139550. --------O-D402-------------------------------
  139551. INT D4 - PC-MOS/386 v3.0+ - GET SYSTEM CONTROL BLOCK POINTER
  139552. AH = 02h
  139553. Return: AX = 0000h
  139554. ES:BX -> System Control Block in V86 mode (see #04004)
  139555. ES:EBX -> System Control Block in native mode (see #04004)
  139556. Note: superseded by AH=26h
  139557. SeeAlso: AH=04h,AH=10h,AH=26h,AH=28h,AH=29h,AH=2Ah,INT 21/AX=3000h,INT 38
  139558. Format of PC-MOS/386 System Control Block:
  139559. Offset Size Description (Table 04004)
  139560. 00h WORD pointer to first TCB in chain
  139561. 02h 17 BYTEs reserved
  139562. 13h WORD pointer to current task's TCB
  139563. 15h WORD pointer to TCB of visible (console) task
  139564. --------O-D403-------------------------------
  139565. INT D4 - PC-MOS/386 v5.01 - GET/SET EXTENDED DIRECTORY INFORMATION
  139566. AH = 03h
  139567. AL = subfunction (00h get, 01h set)
  139568. DS:(E)DX -> pathname
  139569. ES:(E)BX -> 10-byte buffer for directory information (see #04005)
  139570. Return: CF clear if successful
  139571. AL = permitted access level for file (00h-03h)
  139572. ES:(E)BX -> modified buffer (AL=01h on entry)
  139573. CF set on error
  139574. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  139575. Notes: BX/DX are used in V86 mode, EBX/EDX in native mode
  139576. the file class cannot be changed for files because it affects the
  139577. encryption method, but directories can have their classes changed
  139578. Format of PC-MOS/386 directory information:
  139579. Offset Size Description (Table 04005)
  139580. 00h BYTE reserved (0)
  139581. 01h BYTE file class ('A'-'Z' or 00h)
  139582. 02h DWORD user ID of file creator
  139583. 06h WORD file creation time (see #01665 at INT 21/AX=5700h)
  139584. 08h WORD file creation date (see #01666 at INT 21/AX=5700h)
  139585. --------O-D404-------------------------------
  139586. INT D4 - PC-MOS/386 v3.0+ - GET TASK CONTROL BLOCK
  139587. AH = 04h
  139588. BX = task ID or FFFFh for calling task
  139589. Return: CF clear if successful
  139590. ES = segment of Task Control Block (TCB) (see #04006)
  139591. CF set on error
  139592. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  139593. Note: superseded by AH=27h
  139594. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah,INT 38
  139595. Format of PC-MOS/386 Task Control Block:
  139596. Offset Size Description (Table 04006)
  139597. 00h BYTE signature byte "H" if allocated from system memory pool
  139598. 01h BYTE header block ID, "T" = TCB
  139599. 02h WORD length of block in paragraphs
  139600. 04h WORD segment address of next header block (0000h if last)
  139601. 06h WORD segment address of previous header block (0000h if first)
  139602. 08h WORD pointer to next TCB
  139603. 0Ah WORD pointer to previous TCB
  139604. 0Ch WORD pointer to associated TCB (if applicable)
  139605. 0Eh WORD reserved
  139606. ---TCB---
  139607. 10h WORD TCB task ID
  139608. 12h WORD native context save area
  139609. 14h WORD start address of task
  139610. 16h WORD end address of task
  139611. 18h BYTE task priority
  139612. 19h BYTE task time slice
  139613. 1Ah BYTE "TCBWAIT" run status of task
  139614. 1Bh BYTE "TCBSTAT" what the task is waiting for
  139615. 1Ch DWORD address of polling routine
  139616. 20h BYTE error code from last function call
  139617. 21h 11 BYTEs name of currently executing task
  139618. 2Ch 4 BYTEs ???
  139619. 30h BYTE keyboard disabled if bit 1 set
  139620. 31h BYTE current shift state and toggles
  139621. 32h 2 BYTEs ???
  139622. 34h BYTE current video mode
  139623. 35h BYTE current video page
  139624. 36h BYTE number of text columns per screen
  139625. 37h BYTE number of text rows per screen
  139626. 38h WORD length of video buffer
  139627. 3Ah WORD video page length
  139628. 3Ch WORD apge start address in video RAM
  139629. 3Eh 4 WORDs current cursor positions for four screen pages
  139630. 46h 8 BYTEs ???
  139631. 4Eh WORD current cursor type
  139632. 50h BYTE current palette setting
  139633. 51h BYTE original video mode
  139634. 52h BYTE start CRT row (00h or 01h)
  139635. 53h BYTE video RAM in task active
  139636. 54h WORD handle of video save area
  139637. 56h WORD page count of video save area
  139638. 58h WORD segment address of video save area
  139639. 5Ah WORD poitner to first Task File Block (see #04009)
  139640. 5Ch WORD pointer to first Current Directory Block (see #04012)
  139641. 5Eh WORD pointer to active Current Directory Block (see #04012)
  139642. 60h BYTE number of drives
  139643. 61h BYTE current drive (0=A:, etc.)
  139644. 62h DWORD disk transfer address
  139645. 66h 4 BYTEs ???
  139646. 6Ah BYTE verify flag (nonzero = on)
  139647. 6Bh BYTE break flag (nonzero = on)
  139648. 6Ch WORD share/lock retry count
  139649. 6Eh WORD ticks between share/lock retries
  139650. 70h BYTE remote printer flags (see #04007)
  139651. 71h BYTE ETX/ACK delay count
  139652. 72h WORD spooler segment address
  139653. 74h 2 BYTEs ???
  139654. 76h 3 BYTEs remote printer redirection for LPT1 through LPT3 (see #04008)
  139655. 79h 2 BYTEs ???
  139656. 7Bh DWORD offset of username in TCB
  139657. 7Fh BYTE current output class
  139658. 80h 7 BYTEs protection access rights, 2 bits per class (writeable!)
  139659. 87h 122 BYTEs ???
  139660. 101h BYTE TCB sleep downcounter value
  139661. 102h 20 BYTEs ???
  139662. 116h BYTE last scan code
  139663. ...
  139664. 5D0h DWORD far pointer to Device Driver Terminal's entry point
  139665. 5D4h WORD offset of logical screen
  139666. 5D6h WORD segment of logical screen
  139667. 5D8h WORD cursor offset within page
  139668. 5DAh BYTE screen columns
  139669. 5DBh WORD async port number (0000h = none)
  139670. 5DDh DWORD physical baudrate
  139671. 5E1h 19 BYTEs reserved for Device Driver Terminal (DDT)
  139672. ...
  139673. 7A6h DWORD far pointer to unregister calling chain
  139674. Bitfields for PC-MOS/386 remote printer flags:
  139675. Bit(s) Description (Table 04007)
  139676. 0 LPT1 to terminal
  139677. 1 LPT2 to terminal
  139678. 2 LPT3 to terminal
  139679. 3 escape to printer pending
  139680. 4 use XON/XOFF
  139681. 5 use ETX/ACK
  139682. 6 waiting for ACK or XON
  139683. 7 transparent printing on
  139684. (Table 04008)
  139685. Values for PC-MOS/386 remote printer redirection:
  139686. 00h not redirected
  139687. 01h redirected to COM1
  139688. ...
  139689. 18h redirected to COM24
  139690. 51h redirected to LPT1
  139691. 52h redirected to LPT2
  139692. 53h redirected to LPT3
  139693. Format of PC-MOS/386 Task File Block:
  139694. Offset Size Description (Table 04009)
  139695. 00h BYTE signature byte "H" if allocated from system memory pool
  139696. 01h BYTE header block ID, "F" = task file block
  139697. 02h WORD length of block in paragraphs
  139698. 04h WORD segment address of next header block (0000h if last)
  139699. 06h WORD segment address of previous header block (0000h if first)
  139700. 08h WORD pointer to next TCB
  139701. 0Ah WORD pointer to previous TCB
  139702. 0Ch WORD pointer to associated TCB (if applicable)
  139703. 0Eh WORD reserved
  139704. ---TFB---
  139705. 10h WORD segment address of next TFB
  139706. 12h WORD segment address of previous TFB
  139707. 14h WORD segment address of TFB's Global File Block (see #04011)
  139708. 16h WORD segment address of owner's PSP
  139709. 18h WORD file handle
  139710. 1Ah 3 BYTEs ???
  139711. 1Dh DWORD file position
  139712. 21h 4 BYTEs ???
  139713. 25h BYTE IOCTL flags (see #04010)
  139714. 26h 2 BYTEs ???
  139715. Bitfields for PC-MOS/386 IOCTL flags:
  139716. Bit(s) Description (Table 04010)
  139717. 0 stdin
  139718. 1 stdout
  139719. 2 null device
  139720. 3 clock device
  139721. 4 reserved
  139722. 5 ASCII mode instead of binary
  139723. 6 EOF encountered on input
  139724. 7 device rather than file
  139725. Format of PC-MOS/386 Global File Block:
  139726. Offset Size Description (Table 04011)
  139727. 00h BYTE signature byte "H" if allocated from system memory pool
  139728. 01h BYTE header block ID, "G" = global file block
  139729. 02h WORD length of block in paragraphs
  139730. 04h WORD segment address of next header block (0000h if last)
  139731. 06h WORD segment address of previous header block (0000h if first)
  139732. 08h WORD pointer to next TCB
  139733. 0Ah WORD pointer to previous TCB
  139734. 0Ch WORD pointer to associated TCB (if applicable)
  139735. 0Eh WORD reserved
  139736. ---GFB---
  139737. 10h 10 BYTEs ???
  139738. 1Ah WORD file attribute
  139739. 1Ch BYTE ???
  139740. 1Dh DWORD address of device driver
  139741. 21h WORD first cluster
  139742. 23h WORD time of last modification
  139743. 25h WORD date of last modification
  139744. 27h DWORD size of file in bytes
  139745. 2Bh 11 BYTEs ???
  139746. 36h 11 BYTEs device name or FCB-format filename
  139747. 41h WORD segment address of TFB list
  139748. 43h WORD segment address of first RLB (see #04014) (0000h = none)
  139749. 45h BYTE flag: nonzero if GFB refers to character device
  139750. 46h WORD address of Block Device Block (see #04013)
  139751. 48h WORD sector of file's directory entry (see #01352)
  139752. 4Ah WORD high word of file's directory entry
  139753. 4Ch WORD ofsset of directory entry within sector
  139754. Format of PC-MOS/386 Current Directory Block:
  139755. Offset Size Description (Table 04012)
  139756. 00h BYTE signature byte "H" if allocated from system memory pool
  139757. 01h BYTE header block ID, "C" = current directory block
  139758. 02h WORD length of block in paragraphs
  139759. 04h WORD segment address of next header block (0000h if last)
  139760. 06h WORD segment address of previous header block (0000h if first)
  139761. 08h WORD pointer to next TCB
  139762. 0Ah WORD pointer to previous TCB
  139763. 0Ch WORD pointer to associated TCB (if applicable)
  139764. 0Eh WORD reserved
  139765. ---CDB---
  139766. 10h BYTE drive number
  139767. 11h BYTE ???
  139768. 12h 64 BYTEs directory name
  139769. 52h WORD first directory cluster (0000h = root)
  139770. Format of PC-MOS/386 Block Device Block:
  139771. Offset Size Description (Table 04013)
  139772. 00h BYTE signature byte "H" if allocated from system memory pool
  139773. 01h BYTE header block ID, "B" = block device block
  139774. 02h WORD length of block in paragraphs
  139775. 04h WORD segment address of next header block (0000h if last)
  139776. 06h WORD segment address of previous header block (0000h if first)
  139777. 08h WORD pointer to next TCB
  139778. 0Ah WORD pointer to previous TCB
  139779. 0Ch WORD pointer to associated TCB (if applicable)
  139780. 0Eh WORD reserved
  139781. ---BDB---
  139782. 10h BYTE logical drive
  139783. 11h BYTE unit passed to driver
  139784. 12h WORD sector size
  139785. 14h BYTE cluster mask
  139786. 15h BYTE cluster shift count
  139787. 16h WORD starting sector of first FAT
  139788. 18h BYTE number of FATs
  139789. 19h WORD number of root directories
  139790. 1Bh WORD sector number of first data sector (cluster 0002h)
  139791. 1Dh WORD number of clusters + 1 (number of highest data cluster)
  139792. 1Fh BYTE number of sectors in FAT
  139793. 20h WORD beginning root directory sector number
  139794. 22h DWORD device driver address
  139795. 26h BYTE media descriptor byte
  139796. 27h 5 BYTEs ???
  139797. 2Ch BYTE flag: volume > 32MB
  139798. 2Dh BYTE ???
  139799. 2Eh BYTE number of sectors per cluster
  139800. 2Fh WORD number of clusters on device
  139801. 31h WORD number of free clusters (FFFFh = unknown)
  139802. 33h WORD root directory cluster number
  139803. 35h WORD pointer to alias/subst string
  139804. 37h WORD TCB segment address of owner (0000h = none)
  139805. Format of PC-MOS/386 Record Lock Block:
  139806. Offset Size Description (Table 04014)
  139807. 00h BYTE signature byte "H" if allocated from system memory pool
  139808. 01h BYTE header block ID, "R" = record lock block
  139809. 02h WORD length of block in paragraphs
  139810. 04h WORD segment address of next header block (0000h if last)
  139811. 06h WORD segment address of previous header block (0000h if first)
  139812. 08h WORD pointer to next TCB
  139813. 0Ah WORD pointer to previous TCB
  139814. 0Ch WORD pointer to associated TCB (if applicable)
  139815. 0Eh WORD reserved
  139816. ---RLB---
  139817. 10h WORD segment address of owner's PSP
  139818. 12h WORD segment address of Global File Block (see #04011)
  139819. 14h WORD segment address of owner's Task File Block (see #04009)
  139820. 16h DWORD file offset of locked region start
  139821. 1Ah DWORD length of locked region
  139822. 1Eh WORD owner's handle for file
  139823. --------O-D407-------------------------------
  139824. INT D4 - PC-MOS/386 v3.0+ - WAIT FOR EVENT
  139825. AH = 07h
  139826. AL = events to monitor (see #04015)
  139827. BX = number of timer ticks until timeout if AL bit 1 set
  139828. CX = bitmap of IRQs to monitor if AL bit 2 set
  139829. (bit 0 = IRQ0 .. bit 15 = IRQ15)
  139830. DX = port to monitor if AL bit 3 set
  139831. Return: CF clear if successful
  139832. AL = type of event which woke up task (see #04015)
  139833. CX = IRQ (if any) which awakened task
  139834. DX = port (if any) which awakened task
  139835. CF set on error
  139836. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  139837. Note: a device driver may make this call with AL=00h, which indicates that
  139838. the driver is responsible for setting and clearing the TCBWAIT field
  139839. in the TCB. To put task to sleep, set TCBWAIT bits 2-0 to 001; to
  139840. reawaken it, set bit 1 (leaving other bits unchanged)
  139841. SeeAlso: AH=04h,INT 16/AH=00h,INT 38
  139842. Bitfields for PC-MOS/386 events to monitor:
  139843. Bit(s) Description (Table 04015)
  139844. 0 keystroke
  139845. 1 timeout
  139846. 2 IRQ
  139847. 3 port access
  139848. 7 return status of user poll routine (other ignored if set)
  139849. --------O-D410-------------------------------
  139850. INT D4 - PC-MOS/386 v3.0+ - ENTER/LEAVE NATIVE 386 EXECUTION MODE
  139851. AH = 10h
  139852. AL = direction (00h return to V86 mode, 01h enter native mode)
  139853. CX = length in bytes of Native Context Area ( >=1024 )
  139854. DX = segment of Native Context Area
  139855. Return: CF clear if successful
  139856. running in desired mode at instruction following INT D4 call
  139857. all segment registers converted to appropriate selectors/segments
  139858. CF set on error
  139859. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  139860. Note: MS-DOS calls are available in protected mode
  139861. SeeAlso: AH=11h,AH=12h,AH=13h,INT 2F/AX=1687h,INT 67/AX=DE0Ch,INT 38
  139862. --------O-D411-------------------------------
  139863. INT D4 - PC-MOS/386 v3.0+ - ALLOCATE NATIVE MODE MEMORY BLOCK
  139864. AH = 11h
  139865. EBX = block length in bytes
  139866. Return: CF clear if successful
  139867. EBX = number of bytes actually allocated
  139868. ES = selector for allocated block
  139869. CF set on error
  139870. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  139871. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  139872. system by The Software Link, Inc.
  139873. Note: the memory must be released before the program terminates
  139874. SeeAlso: AH=10h,AH=12h,INT 38
  139875. --------O-D412-------------------------------
  139876. INT D4 - PC-MOS/386 v3.0+ - FREE NATIVE MODE MEMORY BLOCK
  139877. AH = 12h
  139878. ES = selector for block to free
  139879. Return: CF clear if successful
  139880. CF set on error
  139881. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  139882. SeeAlso: AH=10h,AH=11h,AH=13h,INT 38
  139883. --------O-D413-------------------------------
  139884. INT D4 - PC-MOS/386 v5.01 - GET ALIAS FOR SELECTOR (NATIVE MODE ONLY)
  139885. AH = 13h
  139886. AL = type of alias selector (00h data, 01h stack, 02h code)
  139887. BX = selector
  139888. Return: CF clear if successful
  139889. AX = new selector or 0000h if BX selector not found
  139890. CF set on error
  139891. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  139892. SeeAlso: AH=11h,AH=12h
  139893. --------O-D416-------------------------------
  139894. INT D4 - PC-MOS/386 v5.01 - SET/CLEAR IRQ RESERVATION
  139895. AH = 16h
  139896. AL = function (00h clear, 01h set reservation)
  139897. CX = IRQ number
  139898. Return: AX = status
  139899. (0000h successful, 0001h currently reserved by another task)
  139900. SeeAlso: AH=07h,INT 14/AH=11h"PC-MOS"
  139901. --------O-D419-------------------------------
  139902. INT D4 - PC-MOS/386 v5.01 - GET TASK ID
  139903. AH = 19h
  139904. Return: BX = caller's task ID
  139905. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  139906. system by The Software Link, Inc.
  139907. SeeAlso: AH=1Dh,AH=1Eh
  139908. --------O-D41A-------------------------------
  139909. INT D4 - PC-MOS/386 v5.01 - GET/SET TASK PRIORITY
  139910. AH = 1Ah
  139911. AL = subfunction (00h read, 01h set, 02h get and set)
  139912. BX = task ID (FFFFh for current task)
  139913. CL = new priority value
  139914. Return: CF clear if successful
  139915. CL = current priority value
  139916. CF set on error
  139917. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  139918. SeeAlso: AH=1Bh,AH=1Ch
  139919. --------O-D41B-------------------------------
  139920. INT D4 - PC-MOS/386 v5.01 - GET/SET TIME SLICE
  139921. AH = 1Bh
  139922. AL = subfunction (00h read, 01h set, 02h get and set)
  139923. BX = task ID (FFFFh for current task) (see AH=19h)
  139924. CL = new time slice value
  139925. Return: CF clear if successful
  139926. CL = current time slice value
  139927. CF set on error
  139928. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  139929. SeeAlso: AH=1Ah,AH=1Ch
  139930. --------O-D41C-------------------------------
  139931. INT D4 - PC-MOS/386 v5.01 - GET/SET KEYBOARD MODE
  139932. AH = 1Ch
  139933. AL = subfunction (00h enable, 01h disable, 02h get mode)
  139934. BX = task ID (FFFFh for current task)
  139935. Return: CF clear if successful
  139936. CL = current keyboard state
  139937. CF set on error
  139938. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  139939. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  139940. system by The Software Link, Inc.
  139941. SeeAlso: AH=1Ah,AH=1Bh
  139942. --------O-D41D-------------------------------
  139943. INT D4 - PC-MOS/386 v5.01 - GET CURRENT PROGRAM NAME
  139944. AH = 1Dh
  139945. BX = task ID (FFFFh for current task) (see AH=19h)
  139946. ES:DI -> buffer for program name (see #04016)
  139947. Return: CF clear if successful
  139948. ES:DI buffer filled
  139949. CF set on error
  139950. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  139951. SeeAlso: AH=19h,AH=1Eh
  139952. Format of PC-MOS/386 program name buffer:
  139953. Offset Size Description (Table 04016)
  139954. 00h 8 BYTEs filename
  139955. 08h 3 BYTEs extension
  139956. --------O-D41E-------------------------------
  139957. INT D4 - PC-MOS/386 v5.01 - GET CURRENT USERNAME AND SECURITY CLASS
  139958. AH = 1Eh
  139959. BX = task ID (FFFFh for current task)
  139960. ES:DI -> 4-byte buffer for username
  139961. Return: CF clear if successful
  139962. CL = security class
  139963. 20h (' ') none
  139964. 41h-5Ah ('A'-'Z') security level
  139965. ES:DI buffer filled
  139966. CF set on error
  139967. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  139968. SeeAlso: AH=19h,AH=1Dh
  139969. --------O-D41F-------------------------------
  139970. INT D4 - PC-MOS/386 v5.01 - GET TASK PARTITION INFORMATION
  139971. AH = 1Fh
  139972. BX = task ID (FFFFh for current task) (see AH=19h)
  139973. Return: CF clear if successful
  139974. CX = start segment of task
  139975. DX = ending segment of task
  139976. CF set on error
  139977. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  139978. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  139979. system by The Software Link, Inc.
  139980. SeeAlso: AH=2Dh
  139981. --------O-D420-------------------------------
  139982. INT D4 - PC-MOS/386 v5.01 - GET PORT AND BAUDRATE INFORMATION
  139983. AH = 20h
  139984. BX = task ID (FFFFh for current task) (see AH=19h)
  139985. Return: CF clear if successful
  139986. CX = port number (0000h if none)
  139987. DI:SI = baudrate (if CX nonzero)
  139988. CF set on error
  139989. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  139990. SeeAlso: INT 14/AH=0Ch"FOSSIL"
  139991. --------O-D421-------------------------------
  139992. INT D4 - PC-MOS/386 v5.01 - REMOVE A TASK
  139993. AH = 21h
  139994. BX = task ID (FFFFh for current task) (see AH=19h)
  139995. Return: CF clear if successful
  139996. AX = ASCII percentage of System Memory Pool used
  139997. (AH = tens digit, AL = ones digit)
  139998. DS,SI destroyed
  139999. CF set on error
  140000. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  140001. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  140002. system by The Software Link, Inc.
  140003. SeeAlso: AH=22h
  140004. --------O-D422-------------------------------
  140005. INT D4 - PC-MOS/386 v5.01 - ADD A TASK TO THE SYSTEM
  140006. AH = 22h
  140007. DS:SI -> addtask data structure (see #04018)
  140008. Return: CF clear if successful
  140009. ES = segment address of the new task's TCB data structure
  140010. CF set on error
  140011. AX = error code (see #04017)
  140012. SeeAlso: AH=21h
  140013. (Table 04017)
  140014. Values for PC-MOS/386 error code:
  140015. 08h insufficient memory
  140016. 0Bh invalid addtask structure format
  140017. 12h insufficient available space in system memory pool
  140018. 1Fh general failure
  140019. 55h already allocated
  140020. 57h if task already in use or invalid parameter
  140021. Format of PC-MOS/386 addtask data structure:
  140022. Offset Size Description (Table 04018)
  140023. 00h WORD task size in KB (min 16KB)
  140024. 02h WORD task ID (0000h for automatic selection)
  140025. 04h BYTE task class (' ' or 'A'-'Z')
  140026. 05h DWORD -> ASCIZ name of task startup batchfile
  140027. 09h DWORD -> task's terminal driver (0000000h = background task)
  140028. 0Dh WORD task port
  140029. 0Fh DWORD task baud rate
  140030. 13h DWORD (ret) total extended memory
  140031. 17h DWORD (ret) number of 4K extended memory pages allocated
  140032. 1Bh WORD (ret) paragraphs of system memory pool allocated
  140033. 1Dh WORD (ret) system memory pool size in paragraphs
  140034. 1Fh WORD (ret) ASCII task percentage of system memory pool
  140035. 21h 3 BYTEs reserved
  140036. --------O-D423-------------------------------
  140037. INT D4 - PC-MOS/386 v5.01 - CHANGE TERMINAL DRIVER
  140038. AH = 23h
  140039. BX = task ID (FFFFh for current task)
  140040. DS:SI -> entry point of the new Device Driver Terminal
  140041. Return: CF clear if successful
  140042. CF set on error
  140043. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  140044. --------O-D424-------------------------------
  140045. INT D4 U - PC-MOS/386 v5.01 - GET OPERATING SYSTEM SERIAL NUMBER
  140046. AH = 24h
  140047. Return: DS:DX -> '$'-terminated string containing the serial number
  140048. --------O-D425-------------------------------
  140049. INT D4 - PC-MOS/386 v5.01 - IDENTIFY LOAD ADDRESS OF DEVICE DRIVER LOCATION
  140050. AH = 25h
  140051. DX = driver's CS value
  140052. Return: AX = segment address of driver in system memory pool
  140053. (0000h if the driver is not within the system memory pool)
  140054. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  140055. system by The Software Link, Inc.
  140056. --------O-D426-------------------------------
  140057. INT D4 - PC-MOS/386 v5.01 - GET SYSTEM CONTROL BLOCK SEGMENT/SELECTOR
  140058. AH = 26h
  140059. Return: DX = segment/selector of the System Control Block (see #04004)
  140060. Note: this function supersedes AH=02h
  140061. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah
  140062. --------O-D427-------------------------------
  140063. INT D4 - PC-MOS/386 v5.01 - GET TASK CONTROL BLOCK SEGMENT/SELECTOR
  140064. AH = 27h
  140065. BX = task ID (FFFFh if current task) (see AH=19h)
  140066. Return: CF clear if successful
  140067. DX = segment/selector for the Task Control Block (see #04006)
  140068. CF set on error
  140069. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  140070. Note: this function supersedes AH=04h
  140071. SeeAlso: AH=26h,AH=28h,AH=29h,AH=2Ah
  140072. --------O-D428-------------------------------
  140073. INT D4 - PC-MOS/386 v5.01 - GET CONTROL BLOCK DATA FROM SCB OR TCB
  140074. AH = 28h
  140075. BX = offset into control block at which to start reading
  140076. CX = number of bytes to read
  140077. DX = segment/selector of control block obtained via AH=26h or AH=27h
  140078. ES:DI -> buffer for data
  140079. Return: CF clear if successful
  140080. CF set on error
  140081. AX = error code (see also #01680 at INT 21/AH=59h/BX=0000h)
  140082. 05h access denied due to an invalid segment/selector
  140083. SeeAlso: AH=26h,AH=27h,AH=29h,AH=2Ah
  140084. --------O-D429-------------------------------
  140085. INT D4 - PC-MOS/386 v5.01 - WRITE CONTROL BLOCK DATA INTO SCB OR TCB
  140086. AH = 29h
  140087. BX = offset into control block at which to start writing
  140088. CX = number of bytes to write
  140089. DX = segment/selector of control block obtained via AH=26h or AH=27h
  140090. DS:SI -> buffer containing data to be written
  140091. Return: CF clear if successful
  140092. CF set on errro
  140093. AX = error code (see also #01680 at INT 21/AH=59h/BX=0000h)
  140094. 05h access denied due to an invalid segment/selector
  140095. Note: this function performs no bounds checking
  140096. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  140097. system by The Software Link, Inc.
  140098. SeeAlso: AH=26h,AH=27h,AH=28h,AH=2Ah
  140099. --------O-D42A-------------------------------
  140100. INT D4 - PC-MOS/386 v5.01 - SWAP CONTROL BLOCK DATA OF SCB OR TCB
  140101. AH = 2Ah
  140102. BX = offset into control block at which to start swap
  140103. CX = number of bytes to swap
  140104. DX = segment/selector of control block obtained via AH=26h or AH=27h
  140105. DS:SI -> buffer containing new data and to receive current data
  140106. Return: CF clear if successful
  140107. CF set on error
  140108. AX = error code (see also #01680 at INT 21/AH=59h/BX=0000h)
  140109. 05h access denied due to an invalid segment/selector
  140110. Note: the interrupts are disabled during the swap to prevent corruption
  140111. SeeAlso: AH=26h,AH=27h,AH=28h,AH=29h
  140112. --------O-D42C-------------------------------
  140113. INT D4 - PC-MOS/386 v5.01 - GET/SET SPOOLER PARAMETERS
  140114. AH = 2Ch
  140115. AL = function
  140116. 00h set spooler timeout
  140117. CX = timout value in seconds
  140118. 01h get spooler timeout
  140119. Return: CX = current timeout in seconds
  140120. 02h get spooler parameters
  140121. Return: CH = priority (00h-09h)
  140122. CL = disposition (d, h, i, n, s)
  140123. SI = class (a - z)
  140124. 03h set spooler parameters
  140125. CH = priority (00h-09h)
  140126. CL = disposition (d, h, i, n, s)
  140127. SI = class (a - z)
  140128. BX = task ID (FFFFh for current task)
  140129. DX = LPT number
  140130. Return: CF clear if successful
  140131. CF set on error
  140132. AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
  140133. SeeAlso: AH=00h,AH=02h,AH=03h
  140134. --------O-D42D-------------------------------
  140135. INT D4 - PC-MOS/386 v5.01 - GET MAXIMUM TASK SIZE
  140136. AH = 2Dh
  140137. Return: DX = maximum task size in paragraphs
  140138. BX = start address of task space
  140139. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  140140. system by The Software Link, Inc.
  140141. SeeAlso: AH=1Fh,AH=22h
  140142. --------r-D5---------------------------------
  140143. INT D5 - IBM ROM BASIC - used while in interpreter
  140144. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  140145. BASIC.COM/BASICA.COM do not restore vector on termination
  140146. SeeAlso: INT 80"BASIC",INT D4"BASIC",INT D6"BASIC"
  140147. --------r-D5---------------------------------
  140148. INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  140149. --------r-D6---------------------------------
  140150. INT D6 - IBM ROM BASIC - used while in interpreter
  140151. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  140152. BASIC.COM/BASICA.COM do not restore vector on termination
  140153. SeeAlso: INT 80"BASIC",INT D5"BASIC",INT D7"BASIC"
  140154. --------r-D6---------------------------------
  140155. INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  140156. --------r-D7---------------------------------
  140157. INT D7 - IBM ROM BASIC - used while in interpreter
  140158. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  140159. BASIC.COM/BASICA.COM do not restore vector on termination
  140160. SeeAlso: INT 80"BASIC",INT D6"BASIC",INT D8"BASIC"
  140161. --------r-D7---------------------------------
  140162. INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  140163. --------r-D8---------------------------------
  140164. INT D8 - IBM ROM BASIC - used while in interpreter
  140165. Notes: called by ROM BASIC
  140166. BASIC.COM/BASICA.COM do not restore vector on termination
  140167. SeeAlso: INT 80"BASIC",INT D7"BASIC",INT D9"BASIC"
  140168. --------r-D8---------------------------------
  140169. INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  140170. --------H-D8---------------------------------
  140171. INT D8 - Screen Thief v1.00 - RELOCATED IRQ0
  140172. Range: INT 78h to INT E0h, selected by commandline switch
  140173. Note: Screen Thief relocates IRQs 0 through 7 to INT D8 to INT DF by default,
  140174. but may be directed via a commandline switch to use any range
  140175. starting at a multiple of 8 between 78h and E0h
  140176. SeeAlso: INT 08"IRQ0",INT 2D/AL=10h"Screen Thief",INT 50"DESQview"
  140177. SeeAlso: INT D9"Screen Thief"
  140178. --------r-D9---------------------------------
  140179. INT D9 - IBM ROM BASIC - used while in interpreter
  140180. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  140181. BASIC.COM/BASICA.COM do not restore vector on termination
  140182. SeeAlso: INT 80"BASIC",INT D8"BASIC",INT DA"BASIC"
  140183. --------r-D9---------------------------------
  140184. INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  140185. --------H-D9---------------------------------
  140186. INT D9 - Screen Thief v1.00 - RELOCATED IRQ1
  140187. Range: INT 79h to INT E1h, selected by commandline switch
  140188. Note: (see INT D8"Screen Thief")
  140189. SeeAlso: INT 09"IRQ1",INT D8"Screen Thief",INT DA"Screen Thief"
  140190. --------r-DA---------------------------------
  140191. INT DA - IBM ROM BASIC - used while in interpreter
  140192. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  140193. BASIC.COM/BASICA.COM do not restore vector on termination
  140194. SeeAlso: INT 80"BASIC",INT D9"BASIC",INT DB"BASIC"
  140195. --------r-DA---------------------------------
  140196. INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  140197. --------H-DA---------------------------------
  140198. INT DA - Screen Thief v1.00 - RELOCATED IRQ2
  140199. Range: INT 7Ah to INT E2h, selected by commandline switch
  140200. Note: (see INT D8"Screen Thief")
  140201. SeeAlso: INT 0A"IRQ2",INT D9"Screen Thief",INT DB"Screen Thief"
  140202. --------r-DB---------------------------------
  140203. INT DB - IBM ROM BASIC - used while in interpreter
  140204. Notes: called by ROM BASIC
  140205. BASIC.COM/BASICA.COM do not restore vector on termination
  140206. SeeAlso: INT 80"BASIC",INT DA"BASIC",INT DC"BASIC"
  140207. --------r-DB---------------------------------
  140208. INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  140209. --------H-DB---------------------------------
  140210. INT DB - Screen Thief v1.00 - RELOCATED IRQ3
  140211. Range: INT 7Bh to INT E3h, selected by commandline switch
  140212. Note: (see INT D8"Screen Thief")
  140213. SeeAlso: INT 0B"IRQ3",INT DA"Screen Thief",INT DC"Screen Thief"
  140214. --------u-DC---------------------------------
  140215. INT DC - PC/370 v4.1- - API
  140216. SeeAlso: INT 60"PC/370"
  140217. --------r-DC---------------------------------
  140218. INT DC - IBM ROM BASIC - used while in interpreter
  140219. Notes: called by ROM BASIC
  140220. BASIC.COM/BASICA.COM do not restore vector on termination
  140221. SeeAlso: INT 80"BASIC",INT DB"BASIC",INT DD"BASIC"
  140222. --------r-DC---------------------------------
  140223. INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  140224. --------H-DC---------------------------------
  140225. INT DC - Screen Thief v1.00 - RELOCATED IRQ4
  140226. Range: INT 7Ch to INT E4h, selected by commandline switch
  140227. Note: (see INT D8"Screen Thief")
  140228. SeeAlso: INT 0C"IRQ4",INT DB"Screen Thief",INT DD"Screen Thief"
  140229. --------r-DD---------------------------------
  140230. INT DD - IBM ROM BASIC - used while in interpreter
  140231. Notes: called by ROM BASIC
  140232. BASIC.COM/BASICA.COM do not restore vector on termination
  140233. SeeAlso: INT 80"BASIC",INT DC"BASIC",INT DE"BASIC"
  140234. --------r-DD---------------------------------
  140235. INT DD - STSC APL*PLUS/PC v9.0 - PLACE KEYSTROKE EVENTS IN INPUT BUFFER
  140236. BX = where to place keystrokes
  140237. FFFFh insert before current buffer contents
  140238. 0000h replace current contents
  140239. 0001h insert after current contents
  140240. CX = number of keystroke events to insert
  140241. ES:SI -> data to be placed into buffer (list of WORD key codes)
  140242. 4000h + N = normal ASCII keystroke N (N = 00h to FFh)
  140243. 4100h + N = extended ASCII keystroke N (N = 03h to 84h)
  140244. Return: nothing
  140245. SeeAlso: INT 16/AH=05h
  140246. --------H-DD---------------------------------
  140247. INT DD - Screen Thief v1.00 - RELOCATED IRQ5
  140248. Range: INT 7Dh to INT E5h, selected by commandline switch
  140249. Note: (see INT D8"Screen Thief")
  140250. SeeAlso: INT 0D"IRQ5",INT DC"Screen Thief",INT DE"Screen Thief"
  140251. --------r-DE---------------------------------
  140252. INT DE - IBM ROM BASIC - used while in interpreter
  140253. Notes: called by ROM BASIC
  140254. BASIC.COM/BASICA.COM do not restore vector on termination
  140255. SeeAlso: INT 80"BASIC",INT DD"BASIC",INT DF"BASIC"
  140256. --------r-DE---------------------------------
  140257. INT DE - APL*PLUS/PC - ???
  140258. Note: appears to be the same as INT 16
  140259. --------H-DE---------------------------------
  140260. INT DE - Screen Thief v1.00 - RELOCATED IRQ6
  140261. Range: INT 7Eh to INT E6h, selected by commandline switch
  140262. Note: (see INT D8"Screen Thief")
  140263. SeeAlso: INT 0E"IRQ6",INT DD"Screen Thief",INT DF"Screen Thief"
  140264. --------b-DF---------------------------------
  140265. INT DF - Victor 9000/Sirius 1 - SuperBIOS
  140266. SeeAlso: INT 21/AH=EAh"NetWare"
  140267. --------r-DF---------------------------------
  140268. INT DF - IBM ROM BASIC - used while in interpreter
  140269. Notes: called by ROM BASIC
  140270. BASIC.COM/BASICA.COM do not restore vector on termination
  140271. SeeAlso: INT 80"BASIC",INT DE"BASIC",INT E0"BASIC"
  140272. --------r-DF---------------------------------
  140273. INT DF - APL*PLUS/PC - SAME AS INT 10
  140274. SeeAlso: INT 10/AH=00h,INT 10/AH=0Eh
  140275. --------H-DF---------------------------------
  140276. INT DF - Screen Thief v1.00 - RELOCATED IRQ7
  140277. Range: INT 7Fh to INT E7h, selected by commandline switch
  140278. Note: (see INT D8"Screen Thief")
  140279. SeeAlso: INT 0F"IRQ7",INT DE"Screen Thief"
  140280. --------r-E0---------------------------------
  140281. INT E0 - IBM ROM BASIC - used while in interpreter
  140282. Notes: called by ROM BASIC
  140283. BASIC.COM/BASICA.COM do not restore vector on termination
  140284. SeeAlso: INT 80"BASIC",INT DF"BASIC",INT E1"BASIC"
  140285. --------r-E0---------------------------------
  140286. INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION
  140287. SeeAlso: INT CF"APL"
  140288. --------v-E0---------------------------------
  140289. INT E0 - VIRUS - "Micro-128" - ???
  140290. Note: Micro-128 also overwrites the upper half of the interrupt table
  140291. SeeAlso: INT 9E"VIRUS",INT F1"VIRUS"
  140292. ----------E0---------------------------------
  140293. INT E0 - DeskMate (Tandy) - DESK EXECUTIVE API
  140294. AX = function code (numerous)
  140295. parameters passed in BX, DX, ES, DI, and/or BP
  140296. Return: AX = return from function
  140297. Program: DeskMate is a proprietary GUI from Tandy distributed with several
  140298. models of the Tandy 1000's, 2500's, 3000's, and laptops. Retail
  140299. and runtime versions also exist. Some Tandy's are designed to
  140300. boot directly into DeskMate.
  140301. SeeAlso: INT 15/AX=7002h,INT E1"DeskMate"
  140302. --------O-E0---------------------------------
  140303. INT E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS
  140304. CL = function number (see #04019,#04020)
  140305. DS,DX contain parameter(s):
  140306. DL = byte parameter
  140307. DX = word parameter
  140308. DS:DX -> structure
  140309. Return: as appropriate for function:
  140310. AL = byte result
  140311. AX = word
  140312. ES:AX -> structure (and BX=ES)
  140313. CX is often the error code (see #04021)
  140314. Notes: several functions are covered in more detail in following entries
  140315. most of these calls are also supported by Digital Research's DOS Plus
  140316. v2.1; the unsupported functions are 26h,29h-2Bh,3Ah,3Dh-62h,71h-8Ch,
  140317. 90h-92h,94h-97h,9Bh-ABh, and AEh-FFh
  140318. SeeAlso: INT 21/AX=4459h,INT 21/AH=E0h"DOS Plus",INT E6"CP/M-86"
  140319. (Table 04019)
  140320. Values for CP/M-86,DR Multiuser DOS function number:
  140321. 00h terminate calling process (see INT E0/CL=00h)
  140322. 01h read a character (see INT E0/CL=01h)
  140323. 02h write character to default console (see INT E0/CL=02h)
  140324. 03h read character from default AUX (see INT E0/CL=03h)
  140325. 04h write character to default AUX (see INT E0/CL=04h)
  140326. 05h write character to default list device (see INT E0/CL=05h)
  140327. 06h perform raw I/O on default console (see INT E0/CL=06h)
  140328. 07h return default AUX input status (see INT E0/CL=07h)
  140329. 08h return default AUX output status (see INT E0/CL=08h)
  140330. 09h write string to default console (see INT E0/CL=09h)
  140331. 0Ah read string from default console (see INT E0/CL=0Ah)
  140332. 0Bh return default console input status (see INT E0/CL=0Bh)
  140333. 0Ch get BDOS release ID (see INT E0/CL=0Ch)
  140334. 0Dh reset all disk drives (see also INT 21/AH=0Dh)
  140335. 0Eh set default drive (see also INT 21/AH=0Eh"DOS 1+")
  140336. 0Fh open file via FCB (see also INT 21/AH=0Fh,#01345)
  140337. 10h close file via FCB (see also INT 21/AH=10h)
  140338. 11h search for first matching file with FCB (see also INT 21/AH=11h)
  140339. 12h search for next matching file with FCB (see also INT 21/AH=12h)
  140340. 13h delete file via FCB (see also INT 21/AH=13h)
  140341. 14h sequential read via FCB (see also INT 21/AH=14h)
  140342. 15h sequential write via FCB (see also INT 21/AH=15h)
  140343. 16h create file via FCB (see also INT 21/AH=16h)
  140344. 17h rename file via FCB (see also INT 21/AH=17h)
  140345. 18h get bit map of logged drives
  140346. 19h get default drive (see also INT 21/AH=19h)
  140347. 1Ah set DMA address offset
  140348. 1Bh get default disk allocation vector (see also INT 21/AH=1Bh)
  140349. 1Ch set default drive to read-only
  140350. 1Dh get bit map of read-only drives
  140351. 1Eh set file attributes via FCB (see also INT 21/AX=4301h)
  140352. 1Fh get address of disk parameter block (see also INT 21/AH=1Fh)
  140353. 20h get/set default user number
  140354. 21h read random record via FCB (see also INT 21/AH=21h)
  140355. 22h write random record via FCB (see also INT 21/AH=22h)
  140356. 23h compute file size with FCB (see also INT 21/AH=23h)
  140357. 24h get FCB random record number (see also INT 21/AH=24h)
  140358. 25h reset specified drives
  140359. 26h access specified drives (not in DR DOS Plus v2.1)
  140360. 27h free specified drives
  140361. 28h write random with FCB, zero fill (see also INT 21/AH=28h)
  140362. 2Ah lock records in FCB file (see also INT 21/AH=5Ch)
  140363. 2Bh unlock records in FCB file (see also INT 21/AH=5Ch)
  140364. 2Ch set BDOS multisector count
  140365. 2Dh set BDOS error mode
  140366. 2Eh get free space on disk
  140367. 2Fh load, initialize, and jump to process ("chain process")
  140368. (see INT E0/CL=2Fh,INT 21/AH=4Bh)
  140369. 30h flush write-deferred buffers
  140370. 31h get/set system variable (DOS Plus v2.1)
  140371. 32h call BIOS (XIOS) character routine (see #04020)
  140372. 33h set DMA address segment
  140373. 34h get DMA buffer address
  140374. 35h CP/M-86 allocate maximum memory (see INT E0/CL=35h)
  140375. 36h allocate maximum memory at specified segment (see INT E0/CL=36h)
  140376. 37h CP/M-86 allocate memory segment (see INT E0/CL=37h,INT 21/AH=48h)
  140377. 38h allocate memory at specified segment (see INT E0/CL=38h)
  140378. 39h CP/M-86 free specified memory segment (see INT E0/CL=39h,INT 21/AH=49h)
  140379. 3Ah CP/M-86 free all memory (not in DOS Plus v2.1) (see INT E0/CL=3Ah)
  140380. 3Bh load .CMD file into memory (see INT E0/CL=3Bh)
  140381. 3Ch (DOS Plus v2.1) call RSX program
  140382. 40h (DR-NET, REAL/32) log on a server (see INT E0/CL=40h)
  140383. 41h (DR-NET, REAL/32) log off a server (see INT E0/CL=41h)
  140384. 42h (DR-NET) send a message
  140385. 43h (DR-NET) receive a message
  140386. 44h (DR-NET, REAL/32) get network status (see INT E0/CL=44h)
  140387. 45h (DR-NET, REAL/32) get requestor config table (see INT E0/CL=45h)
  140388. 46h (DR-NET) set compatibility attributes
  140389. 47h (DR-NET, REAL/32) get server configuration table (see INT E0/CL=47h)
  140390. 48h (DR-NET, REAL/32) set network error mode (see INT E0/CL=48h)
  140391. 49h (DR-NET, REAL/32) attach network
  140392. 4Ah (DR-NET, REAL/32) detach network
  140393. 4Bh (DR-NET, REAL/32) set default password
  140394. 4Ch (DR-NET, REAL/32) get-set long timeout
  140395. 4Dh (DR-NET, REAL/32) get parameter table
  140396. 4Fh (REAL/32) get extended network error
  140397. 50h (DR-NET, REAL/32) get network information
  140398. 53h get current time (see also INT 21/AH=2Ch)
  140399. 54h set current time (see also INT 21/AH=2Dh)
  140400. 55h get binary system date (see also INT 21/AH=2Ah)
  140401. 56h set system date (see also INT 21/AH=2Bh"DATE")
  140402. 57h allocate system flag
  140403. 58h deallocate system flag
  140404. 59h reserve memory in global area (see INT E0/CL=59h)
  140405. 5Ah lock physical drive
  140406. 5Bh unlock physical drive
  140407. 5Ch search path for executable file (see INT E0/CL=5Ch)
  140408. 5Dh load and execute command (see INT E0/CL=5Dh)
  140409. 5Eh get/set process exit code (see INT E0/CL=5Eh)
  140410. 5Fh set country information
  140411. 60h get country information
  140412. 63h truncate FCB file (see also INT 21/AH=28h)
  140413. 64h create/update directory label
  140414. 65h get directory label
  140415. 66h get FCB date stamp and password mode
  140416. 67h write extended FCB
  140417. 68h set system date and time
  140418. 69h get system date and time in binary
  140419. 6Ah establish password for file access
  140420. 6Bh get OS serial number (see INT E0/CL=6Bh)
  140421. 6Ch (DOS Plus v2.1) get/set program return code
  140422. 6Dh get/set console mode (see INT E0/CL=6Dh)
  140423. 6Eh get/set string delimiter (see INT E0/CL=6Eh)
  140424. 6Fh write block to default console (see INT E0/CL=6Fh)
  140425. 70h write block to default list device (see INT E0/CL=70h)
  140426. 71h execute DOS-compatible function (see INT E0/CL=71h)
  140427. 74h set FCB time and date stamps
  140428. 80h allocate memory (see INT E0/CL=80h)
  140429. 82h deallocate memory (see INT E0/CL=81h)
  140430. 83h poll I/O device
  140431. 84h wait on system flag (see INT E0/CL=84h)
  140432. 85h set system flag (see INT E0/CL=85h)
  140433. 86h create message queue (see INT E0/CL=86h)
  140434. 87h open message queue (see INT E0/CL=87h)
  140435. 88h delete message queue (see INT E0/CL=88h)
  140436. 89h read from message queue (see INT E0/CL=89h)
  140437. 8Ah conditionally read from message queue (see INT E0/CL=8Ah)
  140438. 8Bh write to message queue (see INT E0/CL=8Bh)
  140439. 8Ch conditionally write to message queue (see INT E0/CL=8Ch)
  140440. 8Dh delay calling process (see INT E0/CL=8Dh)
  140441. 8Eh call process dispatcher (yield CPU) (see INT E0/CL=8Eh)
  140442. 8Fh terminate calling process (same as func 00h) (see INT E0/CL=8Fh)
  140443. 90h create a process (see INT E0/CL=90h)
  140444. 91h set calling process' priority (see INT E0/CL=91h)
  140445. 92h attach to default console (see INT E0/CL=92h)
  140446. 93h detach from default console (see INT E0/CL=93h)
  140447. 94h (REAL/32) set the process' default console (see INT E0/CL=94h)
  140448. 95h assign default console to process (see INT E0/CL=95h)
  140449. 96h interpret and execute commandline (see INT E0/CL=96h)
  140450. 97h resident procedure library
  140451. 98h parse ASCII string into FCB (see also INT 21/AH=29h)
  140452. 99h return default console (see INT E0/CL=99h)
  140453. 9Ah get address of system data (SYSDAT) (see INT E0/CL=9Ah)
  140454. 9Bh get system time and date
  140455. 9Ch return calling process' descriptor (see INT E0/CL=9Ch)
  140456. 9Dh terminate process by name or PD address (see INT E0/CL=9Dh)
  140457. 9Eh attach to default list device (see INT E0/CL=9Eh)
  140458. 9Fh detach from default list device (see INT E0/CL=9Fh)
  140459. A0h select default list device (see INT E0/CL=A0h)
  140460. A1h conditionally attach to default list device (see INT E0/CL=A1h)
  140461. A2h conditionally attach to default console (see INT E0/CL=A2h)
  140462. A3h get OS version number (see INT E0/CL=A3h)
  140463. A4h get default list device (see INT E0/CL=A4h)
  140464. A5h attach to default AUX (see INT E0/CL=A5h)
  140465. A6h detach from default AUX (see INT E0/CL=A6h)
  140466. A7h conditionally attach to default AUX (see INT E0/CL=A7h)
  140467. A8h set default AUX (see INT E0/CL=A8h)
  140468. A9h return default AUX (see INT E0/CL=A9h)
  140469. ACh read block from default AUX (see INT E0/CL=ACh)
  140470. ADh (DOS Plus v2.1) write block to default AUX (see INT E0/CL=ADh)
  140471. B0h configure default AUX (see INT E0/CL=B0h)
  140472. B1h get/set device control parameters (see INT E0/CL=B1h)
  140473. B2h send Break through default AUX (see INT E0/CL=B2h)
  140474. B3h allocate physical memory (see INT E0/CL=B3h)
  140475. B4h free physical memory (see INT E0/CL=B4h)
  140476. B5h map physical memory (see INT E0/CL=B5h)
  140477. B6h nondestructive conditional message queue read (see INT E0/CL=B6h)
  140478. B7h timed wait on system flag (see INT E0/CL=B7h)
  140479. B8h get/set I/O port mapping (see INT E0/CL=B8h)
  140480. B9h set list device timeout (see INT E0/CL=B9h)
  140481. BAh set AUX timeout value (see INT E0/CL=BAh)
  140482. BBh execute XIOS service
  140483. BDh (DR Multiuser DOS) delay (see INT E0/CL=BDh)
  140484. FFh return 80386 to native mode
  140485. SeeAlso: #04020,#04021
  140486. (Table 04020)
  140487. Values for DOS Plus v2.1 XIOS functions:
  140488. 00h terminate program
  140489. 01h ???
  140490. 02h check for console input status
  140491. 03h read character from console
  140492. 04h write character to console
  140493. 05h write character to list device
  140494. 06h write character to auxiliary device
  140495. 07h read character from auxiliary device
  140496. 0Fh get list device status
  140497. 10h-14h reserved
  140498. 15h device initialization
  140499. 16h check console output status
  140500. 17h-7Fh reserved
  140501. ---BBC Acorn---
  140502. 80h get XIOS version
  140503. 81h get Tube semaphore
  140504. 82h release Tube semaphore
  140505. 83h select text/graphics
  140506. 84h update B&W graphics rectangle
  140507. 85h update color graphics rectangle
  140508. 86h get/release/update mouse
  140509. 87h get system error info
  140510. 88h entry in CLOCK called by WatchDog RSP
  140511. 89h BBC OSBYTE function
  140512. 8Ah BBC OSWORD function
  140513. SeeAlso: #04019
  140514. (Table 04021)
  140515. Values for DR Multiuser DOS Error Return Code:
  140516. 00h no error
  140517. 01h system call not implemented
  140518. 02h illegal system call number
  140519. 03h cannot find memory
  140520. 04h illegal flag number
  140521. 05h flag overrun
  140522. 06h flag underrun
  140523. 07h no unused Queue Descriptors
  140524. 08h no free queue buffer
  140525. 09h cannot find queue
  140526. 0Ah queue in use
  140527. 0Ch no free Process Descriptors
  140528. 0Dh no queue access
  140529. 0Eh empty queue
  140530. 0Fh full queue
  140531. 10h CLI queue missing
  140532. 11h no 8087 in system
  140533. 12h no unused Memory Descriptors
  140534. 13h illegal console number
  140535. 14h no Process Descriptor match
  140536. 15h no console match
  140537. 16h no CLI process
  140538. 17h illegal disk number
  140539. 18h illegal filename
  140540. 19h illegal filetype
  140541. 1Ah character not ready
  140542. 1Bh illegal Memory Descriptor
  140543. 1Ch bad return from BDOS load
  140544. 1Dh bad return from BDOS read
  140545. 1Eh bad return from BDOS open
  140546. 1Fh null command
  140547. 20h not owner of resource
  140548. 21h no CSEG in load file
  140549. 22h process Descriptor exists on Thread Root
  140550. 23h could not terminate process
  140551. 24h cannot attach to process
  140552. 25h illegal list device number
  140553. 26h illegal password
  140554. 28h external termination occurred
  140555. 29h fixup error upon load
  140556. 2Ah flag set ignored
  140557. 2Bh illegal auxilliary device number
  140558. SeeAlso: #04019
  140559. --------O-E0----CL00-------------------------
  140560. INT E0 - REAL/32 - "P_TERMCPM" - TERMINATE CALLING PROCESS
  140561. CL = 00h
  140562. Return: AX = error code
  140563. FFFFh on failure
  140564. may destroy SI,DI???
  140565. Program: REAL/32 is the descendant of IMS Multiuser DOS, which in turn is
  140566. derived from DR Multiuser DOS and its predecessors (Concurrent DOS,
  140567. etc.)
  140568. Note: sets the exit code (ERRORLEVEL) to 00h
  140569. SeeAlso: INT 21/AH=00h
  140570. --------O-E0----CL01-------------------------
  140571. INT E0 - REAL/32 - "C_READ" - FETCH CHARACTER FROM THE DEFAULT CONSOLE
  140572. CL = 01h
  140573. Return: AX = character
  140574. may destroy SI,DI???
  140575. Notes: this function echos the character to the screen, expanding Tab
  140576. characters to the next multiple of eight columns; Ctrl-C is
  140577. ignored if the calling process can not terminate
  140578. the calling process is suspended until a character is available; if
  140579. the caller does not own the console, it is suspended until it
  140580. can attach to the console
  140581. SeeAlso: INT E0/CL=02h,INT E0/CL=06h,INT 21/AH=01h
  140582. --------O-E0----CL02-------------------------
  140583. INT E0 - REAL/32 - "C_WRITE" - WRITE CHARACTER TO DEFAULT CONSOLE
  140584. CL = 02h
  140585. DX = character
  140586. Return: nothing
  140587. may destroy SI,DI???
  140588. Note: Tab characters are expanded to blanks up to the next multiple of
  140589. eight columns
  140590. SeeAlso: INT E0/CL=01h,INT E0/CL=06h,INT 21/AH=02h
  140591. --------O-E0----CL03-------------------------
  140592. INT E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM DEFAULT AUX DEVICE
  140593. CL = 03h
  140594. Return: AL = ASCII character
  140595. may destroy SI,DI???
  140596. Notes: A_READ reads the next 8-bit character from the logical auxilliary
  140597. input device (AUXn:); control is not returned to the calling
  140598. process until a character has been read.
  140599. if another process owns AUX, this call blocks until the device becomes
  140600. available
  140601. this function is also supported by REAL/32
  140602. SeeAlso: INT 21/AH=03h,INT E0/CL=04h,INT E0/CL=07h,INT E0/CL=A5h,INT E0/CL=ACh
  140603. --------O-E0----CL04-------------------------
  140604. INT E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO DEFAULT AUX DEVICE
  140605. CL = 04h
  140606. DL = BYTE to write
  140607. Return: nothing
  140608. may destroy SI,DI,DH???
  140609. Note: if another process owns AUX, this call blocks until the device becomes
  140610. available
  140611. SeeAlso: INT 21/AH=04h,INT E0/CL=03h,INT E0/CL=08h,INT E0/CL=A5h,INT E0/CL=ADh
  140612. --------O-E0----CL05-------------------------
  140613. INT E0 - REAL/32 - "L_WRITE" - WRITE CHARACTER TO DEFAULT LIST DEVICE
  140614. CL = 05h
  140615. DL = char to write
  140616. Return: nothing
  140617. may destroy SI,DI???
  140618. Note: if another process owns the list device, this call blocks until the
  140619. device becomes available
  140620. SeeAlso: INT 21/AH=05h
  140621. --------O-E0----CL06-------------------------
  140622. INT E0 - REAL/32 - "C_RAWIO" - PERFORM RAW I/O WITH DEFAULT CONSOLE
  140623. CL = 06h
  140624. DL = mode describing the operation to be performed
  140625. FFh get console input/status
  140626. FEh get console status
  140627. FDh get console input (blocking)
  140628. else output DL to the console as a character
  140629. Return: AX = returned value
  140630. for DL = FFh, the character or 00h if none available
  140631. for DL = FEh, 00h if no characters available, FFh if any available
  140632. for DL = FDh, the character read from the console
  140633. else AX = 0000h
  140634. may destroy SI,DI???
  140635. Notes: during raw I/O, the special characters ^C, ^O, ^P, and ^S are not
  140636. interpreted, but are passed through
  140637. if the virtual console is in ^S mode and the owning process calls
  140638. this function, the ^S state is cleared
  140639. SeeAlso: INT E0/CL=01h,INT E0/CL=02h,INT 21/AH=06h
  140640. --------O-E0----CL07-------------------------
  140641. INT E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE
  140642. CL = 07h
  140643. Return: AL = status
  140644. 00h not ready
  140645. FFh character available
  140646. Desc: determine whether the current AUX device has input available
  140647. SeeAlso: INT E0/CL=03h,INT E0/CL=08h
  140648. --------O-E0----CL08-------------------------
  140649. INT E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE
  140650. CL = 08h
  140651. Return: AL = status
  140652. 00h not ready
  140653. FFh ready for output
  140654. Desc: determine whether the current AUX device is able to accept more output
  140655. SeeAlso: INT E0/CL=04h,INT E0/CL=07h
  140656. --------O-E0----CL09-------------------------
  140657. INT E0 - REAL/32 - "C_WRITESTR" - WRITE STRING TO DEFAULT CONSOLE
  140658. CL = 09h
  140659. DS:DX -> string
  140660. Return: nothing
  140661. may destroy SI,DI,DS???
  140662. Note: the string terminated with a '$' character (24h) by default; the
  140663. terminator may be changed with C_DELIMIT
  140664. tabs are expanded to the next multiple of eight columns
  140665. SeeAlso: INT E0/CL=6Eh
  140666. --------O-E0----CL0A-------------------------
  140667. INT E0 - REAL/32 - "C_READSTR" - READ STRING FROM DEFAULT CONSOLE
  140668. CL = 0Ah
  140669. DS:DX -> buffer for string (see #04022)
  140670. Return: nothing
  140671. Format of REAL/32 "C_READSTR" buffer:
  140672. Offset Size Description (Table 04022)
  140673. 00h BYTE maximum number of characters buffer can hold
  140674. 01h BYTE actual number of buffers read
  140675. 02h N BYTEs input line
  140676. --------O-E0----CL0B-------------------------
  140677. INT E0 - REAL/32 - "C_STAT" - RETURN DEFAULT CONSOLE INPUT STATUS
  140678. CL = 0Bh
  140679. Return: AX = status
  140680. 0000h no characters ready
  140681. 0001h character available
  140682. may destroy SI,DI???
  140683. Note: after setting bit 0 of the console mode word with C_MODE, this function
  140684. will only return AX=0001h when the user presses Ctrl-C.
  140685. --------O-E0----CL0C-------------------------
  140686. INT E0 - REAL/32 - "S_BDOSVER" - GET BDOS VERSION
  140687. CL = 0Ch
  140688. Return: AX = version (see #04023)
  140689. may destroy SI,DI???
  140690. SeeAlso: INT E0/CL=A3h,INT 21/AX=4451h
  140691. (Table 04023)
  140692. Values for REAL/32 BDOS version:
  140693. 1432h - DR Concurrent PC DOS Version 3.2
  140694. 1441h - DR Concurrent DOS Version 4.1
  140695. 1450h - DR Concurrent DOS/XM Version 5.0
  140696. 1463h - DR Multiuser DOS Release 5.0
  140697. 1465h - DR Multiuser DOS Release 5.01
  140698. 1466h - DR Multiuser DOS Release 5.1, IMS Multiuser DOS Enhanced Release 5.1
  140699. 1467h - IMS Multiuser DOS Version 7.0, 7.1
  140700. 1468h - IMS REAL/32 Version 7.50, 7.51
  140701. 1469h - IMS REAL/32 Version 7.52, 7.53
  140702. 14??h - IMS REAL/32 Version 7.6
  140703. SeeAlso: #01579,#01580,#01581
  140704. --------O-E0----CL2F-------------------------
  140705. INT E0 - REAL/32 - "P_CHAIN" - CHAIN PROCESS
  140706. CL = 2Fh
  140707. [DTA] = ASCIZ command line for process to start
  140708. Return: AX = return code
  140709. 0000h successful
  140710. FFFFh failed
  140711. may destroy SI,DI???
  140712. --------O-E0----CL35-------------------------
  140713. INT E0 R - REAL/32 - "MC_MAX" - CP-M/86 ALLOCATE MAXIMUM MEMORY
  140714. CL = 35h
  140715. DS:DX -> MCB (see #04024)
  140716. Return: AX = status
  140717. may destroy SI,DI,DS???
  140718. SeeAlso: INT E0/CL=39h
  140719. Format of REAL/32 MCB (Memory Control Block):
  140720. Offset Size Description (Table 04024)
  140721. 00h WORD segment address of memory block
  140722. 02h WORD length of block in paragraphs
  140723. 04h BYTE reserved (0)
  140724. --------O-E0----CL36-------------------------
  140725. INT E0 R - REAL/32 - "MC_ABSMAX" - ALLOCATE MAXIMUM MEMORY SEGMENT ABSOLUTE
  140726. CL = 36h
  140727. DS:DX -> MCB (see #04024)
  140728. Return: AX = status
  140729. may destroy SI,DI,DS???
  140730. SeeAlso: INT E0/CL=39h
  140731. --------O-E0----CL37-------------------------
  140732. INT E0 R - REAL/32 - "MC_ALLOC" - CP-M/86 ALLOCATE MEMORY SEGMENT
  140733. CL = 37h
  140734. DS:DX -> MCB (see #04024)
  140735. Return: AX = status
  140736. may destroy SI,DI,DS???
  140737. SeeAlso: INT E0/CL=39h
  140738. --------O-E0----CL38-------------------------
  140739. INT E0 R - REAL/32 - "MC_ABSALLOC" - ALLOCATE MEMORY SEGMENT ABSOLUTE
  140740. CL = 38h
  140741. DS:DX -> MCB (see #04024)
  140742. Return: AX = status
  140743. may destroy SI,DI,DS???
  140744. SeeAlso: INT E0/CL=39h
  140745. --------O-E0----CL39-------------------------
  140746. INT E0 R - REAL/32 - "MC_FREE" - CP-M/86 FREE SPECIFIED MEMORY SEGMENT
  140747. CL = 39h
  140748. DS:DX -> MCB (see #04024)
  140749. Return: AX = status
  140750. may destroy SI,DI,DS???
  140751. SeeAlso: INT E0/CL=3Ah
  140752. --------O-E0----CL3A-------------------------
  140753. INT E0 R - REAL/32 - "MC_ALLFREE" - CP-M/86 FREE ALL MEMORY
  140754. CL = 3Ah
  140755. Return: nothing???
  140756. Desc: release all of the calling process's memory except the User Data Area
  140757. SeeAlso: INT E0/CL=39h
  140758. --------O-E0----CL3B-------------------------
  140759. INT E0 u - REAL/32 - "P_LOAD" - LOAD .CMD FILE INTO MEMORY
  140760. CL = 3Bh
  140761. ???
  140762. Return: ???
  140763. Note: IMS does not document the details of this call because .CMD files are
  140764. supported for backward compatibility only
  140765. --------O-E0----CL40-------------------------
  140766. INT E0 - REAL/32 - "N_LOGON" - LOG ONTO A SERVER
  140767. CL = 40h
  140768. DS:DX -> LPB (see #04025)
  140769. Return: AX = status (0000h,00FFh,07FFh,0DFFh,0EFFh,FFFFh) (see #04030)
  140770. may destroy SI,DI,DS???
  140771. SeeAlso: INT E0/CL=41h
  140772. Format of REAL/32 Logon/Logoff Parameter Block:
  140773. Offset Size Description (Table 04025)
  140774. 00h BYTE node ID
  140775. 01h 8 BYTEs password for server access
  140776. 09h DWORD -> process descriptor of process to be logged on (see #04026)
  140777. Format of REAL/32 Process Descriptor:
  140778. Offset Size Description (Table 04026)
  140779. 00h WORD offset of next entry in current descriptor list
  140780. 02h WORD offset of thread list
  140781. 04h BYTE current processor status (see #04027)
  140782. 05h BYTE priority
  140783. 06h WORD runtime flags (see #04028)
  140784. 08h 8 BYTEs process name
  140785. 10h WORD segment of User Data Area (256 or 352 bytes)
  140786. 12h BYTE current default disk drive
  140787. 13h BYTE drive from which process was loaded
  140788. 14h WORD reserved (0)
  140789. 16h WORD offset of memory descriptor list for memory owned by process
  140790. 18h 6 BYTEs reserved
  140791. 1Eh WORD offset of process descriptor for parent process
  140792. 0000h if parent has already terminated
  140793. 20h BYTE number of default console
  140794. 21h BYTE number of default AUX device
  140795. 22h 2 BYTEs reserved
  140796. 24h BYTE number of default list device
  140797. 25h BYTE reserved
  140798. 26h WORD flags (see #04029)
  140799. 28h 12 BYTEs reserved
  140800. 34h WORD offset of memory page allocation root
  140801. 36h 22 BYTEs reserved
  140802. SeeAlso: #04025
  140803. (Table 04027)
  140804. Values for REAL/32 processor status:
  140805. 00h process is ready to run
  140806. 01h process is polling a device
  140807. 02h delaying for a number of ticks
  140808. 03h in swap list
  140809. 04h terminating
  140810. 05h asleep
  140811. 06h waiting to read a message from a queue
  140812. 07h waiting to write a message
  140813. 08h waiting on system flag or semaphore
  140814. 09h waiting to attach to an I/O device
  140815. 0Ah waiting on sync block
  140816. 0Bh waiting for system flag or semaphore with timeout
  140817. 0Ch forced dispatch
  140818. SeeAlso: #04026
  140819. Bitfields for REAL/32 process flags:
  140820. Bit(s) Description (Table 04028)
  140821. 0 system process
  140822. 1 do not terminate
  140823. 2 special rsp process
  140824. 3 from process descriptor table
  140825. 14-4 unused???
  140826. 15 uses math coprocessor
  140827. SeeAlso: #04026,#04029
  140828. Bitfields for REAL/32 secondary flags:
  140829. Bit(s) Description (Table 04029)
  140830. 0 suspend when in background
  140831. 1 ???
  140832. 2 in foreground
  140833. 3 enable APPEND processing on file opens
  140834. 4 Ctrl-C was typed
  140835. 5 Ctrl-C will reset disk system
  140836. 6 OK to read locked record
  140837. 7 ???
  140838. 8 do not perform banking
  140839. SeeAlso: #04026,#04028
  140840. (Table 04030)
  140841. Values for REAL/32 "N_LOGON" status:
  140842. 0000h successful
  140843. 00FFh server could not create shadow process
  140844. 07FFh incorrect password
  140845. 0CFFh not logged into specified server
  140846. 0DFFh process already logged onto 16 servers,
  140847. LPB process not attached to network
  140848. 0EFFh physical transmission prevented message or response from getting thru
  140849. network error during logoff
  140850. FFFFh calling process not attached to network
  140851. --------O-E0----CL41-------------------------
  140852. INT E0 - REAL/32 - "N_LOGON" - LOG OFF A SERVER
  140853. CL = 41h
  140854. DS:DX -> LPB (see #04025)
  140855. Return: AX = status (0000h,0CFFh,0DFFh,0EFFh,FFFFh) (see #04030)
  140856. may destroy SI,DI,DS???
  140857. SeeAlso: INT E0/CL=40h
  140858. --------O-E0----CL44-------------------------
  140859. INT E0 - REAL/32 - "N_STAT" - GET NETWORK STATUS
  140860. CL = 44h
  140861. Return: AX = network status or 0FFFh on error
  140862. bit 8: calling process is attached to network
  140863. may destroy SI,DI???
  140864. --------O-E0----CL45-------------------------
  140865. INT E0 - REAL/32 - "N_RCT" - GET REQUESTOR CONFIGURATION TABLE
  140866. CL = 45h
  140867. DS:DX -> RCT Control Block (see #04031,#04032)
  140868. Return: AX = status or error code (see #04033,#04030)
  140869. may destroy SI,DI,DS???
  140870. SeeAlso: INT E0/CL=47h
  140871. Format of REAL/32 RCT Control Block for Drives:
  140872. Offset Size Description (Table 04031)
  140873. 00h BYTE command byte
  140874. 00h map disk drive
  140875. 02h map list device
  140876. 01h BYTE local resource ID
  140877. 02h BYTE remote resource ID
  140878. 03h BYTE server node ID number
  140879. Note: the RCT Control Block is a union of two possible structures; this
  140880. variant is used when mapping disk drives and list devices
  140881. SeeAlso: #04032
  140882. Format of REAL/32 RCT Control Block for Queues:
  140883. Offset Size Description (Table 04032)
  140884. 00h BYTE command byte
  140885. 03h map local queue to server
  140886. 04h unmap queue
  140887. 01h 8 BYTEs local queue name (case-sensitive)
  140888. 09h 8 BYTEs remote queue name (case-sensitive)
  140889. 11h BYTE server node ID number
  140890. Note: the RCT Control Block is a union of two possible structures; this
  140891. variant is used when mapping queues
  140892. SeeAlso: #04031
  140893. (Table 04033)
  140894. Values for REAL/32 "N_RCT" status:
  140895. 0000h successful
  140896. 0001h invalid local device
  140897. 0002h invalid remote device
  140898. 0003h no queue entry space
  140899. --------O-E0----CL47-------------------------
  140900. INT E0 - REAL/32 - "N_SCT" - GET SERVER CONFIGURATION TABLE
  140901. CL = 47h
  140902. DS:DX -> 112-byte buffer for Server Configuration Table (see #04034)
  140903. Return: AX = status (0000h successful, else error code)
  140904. may destroy SI,DI,DS???
  140905. Note: the first byte of the SCT buffer is set to the desired server number
  140906. prior to calling this function
  140907. SeeAlso: INT E0/CL=45h
  140908. Format of REAL/32 Server Configuration Table:
  140909. Offset Size Description (Table 04034)
  140910. 00h BYTE server's default physical drive ID
  140911. 01h BYTE network status
  140912. 02h BYTE server node ID number
  140913. 03h BYTE maximum number of requesters supported by server
  140914. 04h BYTE current number of shadow processes
  140915. 05h 108 BYTEs six logon structures, each:
  140916. Offset Size Description
  140917. 00h WORD bit vector of logged-in nodes
  140918. 02h 16 BYTEs list of requester node IDs
  140919. --------O-E0----CL48-------------------------
  140920. INT E0 - REAL/32 - "N_ERRMODE" - SET NETWORK ERROR MODE
  140921. CL = 48h
  140922. DL = new error mode
  140923. FFh return error in registers AX,BX,CX
  140924. FEh display message and return error
  140925. FDh display message and abort (default)
  140926. Return: CX = error code (0000h successful, FFFFh failed)
  140927. may destroy SI,DI???
  140928. Desc: specify how the REAL/32 Net Server responds to error numbers 0CFFh,
  140929. 0DFFh, and 0EFFh (see #04030)
  140930. --------O-E0----CL59-------------------------
  140931. INT E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA
  140932. CL = 59h
  140933. DX = size in bytes
  140934. Return: AX = status
  140935. FFFFh failed
  140936. other successful
  140937. ES:BX -> reserved memory
  140938. --------O-E0----CL5C-------------------------
  140939. INT E0 - REAL/32 - "P_PATH" - SCAN PATH FOR EXECUTABLE FILE
  140940. CL = 5Ch
  140941. DS:DX -> Exec Parameter Block (EPB) (see #04035)
  140942. Return: AX = status
  140943. FFFEh file not found
  140944. FFFDh path not found
  140945. FFFCh too many handles open
  140946. FFFBh access denied
  140947. FFF6h invalid environment
  140948. FFDCh sharing conflict
  140949. FFAAh invalid password
  140950. EPB updated (if successful)
  140951. may destroy SI,DI,DS
  140952. SeeAlso: INT E0/CL=5Dh,INT E0/CL=5Eh,INT 21/AH=4Bh
  140953. Format of REAL/32 Exec Parameter Block (EPB):
  140954. Offset Size Description (Table 04035)
  140955. 00h DWORD -> ASCIZ command to be executed
  140956. 04h BYTE type of exec
  140957. 00h .CMD
  140958. 01h .COM
  140959. 02h .EXE
  140960. 03h .BAT
  140961. 04h RSP-type queue
  140962. 05h BYTE flags
  140963. bit 0: overlay existing program
  140964. bit 1: don't assign console to child
  140965. bit 2: allocate memory for .CMD within parent's memory space
  140966. bit 3: make full banked window available while loading child
  140967. 06h DWORD 32-bit offset to ASCIZ command line
  140968. 0Ah WORD selector for ASCIZ command line
  140969. --------O-E0----CL5D-------------------------
  140970. INT E0 - REAL/32 - "P_EXEC" - EXECUTE CHILD PROCESS
  140971. CL = 5Dh
  140972. DS:DX -> Exec Parameter Block (EPB) (see #04035)
  140973. Return: AX = status
  140974. FFFEh file not found
  140975. FFFDh path not found
  140976. FFFCh too many handles open
  140977. FFFBh access denied
  140978. FFF6h invalid environment
  140979. FFDCh sharing conflict
  140980. FFAAh invalid password
  140981. EPB updated (if successful)
  140982. may destroy SI,DI,DS
  140983. SeeAlso: INT E0/CL=5Ch,INT E0/CL=5Eh,INT 21/AH=4Bh
  140984. --------O-E0----CL5E-------------------------
  140985. INT E0 - REAL/32 - "P_EXITCODE" - GET/SET PROCESS EXIT CODE
  140986. CL = 5Eh
  140987. DX = exit code or FFFFh to get
  140988. DH ignored when setting code
  140989. DL = process exit code
  140990. Return: AX = status (FFFFh on error)
  140991. if getting:
  140992. AH = termination reason
  140993. 00h normal
  140994. 01h external termination via Ctrl-C or P_ABORT
  140995. 02h hardware (critical) error abort
  140996. 03h child did not terminate
  140997. FFh illegal request (no child, or exit code already retrieved)
  140998. AL = process exit code
  140999. SeeAlso: INT E0/CL=5Dh,INT 21/AH=4Ch
  141000. --------O-E0----CL6B-------------------------
  141001. INT E0 - REAL/32 - "S_SERIAL" - GET OS SERIAL NUMBER
  141002. CL = 6Bh
  141003. DS:DX -> 6-byte buffer for ASCII serial number
  141004. Return: nothing???
  141005. --------O-E0----CL6D-------------------------
  141006. INT E0 - REAL/32 - "C_MODE" - GET/SET CONSOLE MODE
  141007. CL = 6Dh
  141008. DX = new console mode (see #04036), or FFFFh to get current mode
  141009. Return: AX = status if setting (0000h = success)
  141010. AX = current console mode if DX=FFFFh on entry
  141011. Bitfields for REAL/32 console mode:
  141012. Bit(s) Description (Table 04036)
  141013. 0 C_STAT function will return 01h only when Ctrl-C is pressed
  141014. 1 disable support for stop/start scroll (Ctrl-S/Ctrl-Q)
  141015. 2 raw console output (no tab expansion, no printer echo)
  141016. 3 disable program termination on Ctrl-C
  141017. 7 disable Ctrl-O console bit-bucket
  141018. 10 enable Esc as end-of-line character
  141019. --------O-E0----CL6E-------------------------
  141020. INT E0 - REAL/32 - "C_DELIMIT" - GET/SET STRING DELIMITER
  141021. CL = 6Eh
  141022. DX = new delimiter, or FFFFh to get current string delimiter
  141023. Return: AX = status (0000h success) if setting
  141024. AX = current string delimiter (default is 24h '$' at process start)
  141025. SeeAlso: INT E0/CL=09h
  141026. --------O-E0----CL6F-------------------------
  141027. INT E0 - REAL/32 - "C_WRITEBLK" - WRITE BLOCK TO DEFAULT CONSOLE
  141028. CL = 6Fh
  141029. DS:DX -> Character Control Block (see #04051,#04052)
  141030. Return: nothing???
  141031. SeeAlso: INT E0/CL=70h
  141032. --------O-E0----CL70-------------------------
  141033. INT E0 - REAL/32 - "L_WRITEBLK" - WRITE BLOCK TO DEFAULT LIST (PRINTER) DEVICE
  141034. CL = 70h
  141035. DS:DX -> Character Control Block (see #04051,#04052)
  141036. Return: nothing???
  141037. SeeAlso: INT E0/CL=6Fh
  141038. --------O-E0----CL71-------------------------
  141039. INT E0 R - ConcCP/M,DR Multiuser DOS - EXECUTE DOS-COMPATIBLE FUNCTIONS
  141040. CL = 71h
  141041. DS:DX -> parameter block (see #04038)
  141042. Return: AX = status (0000h successful, else error code)
  141043. may destroy SI,DI,DS
  141044. (Table 04037)
  141045. Values for DR "execute DOS-compatible function" function number:
  141046. 00h "fd_getdpb" get disk information (see also INT 21/AH=32h)
  141047. 01h "fd_mkdir" create directory (see also INT 21/AH=39h)
  141048. 02h "fd_rmdir" remove directory (see also INT 21/AH=3Ah)
  141049. 03h "fd_chdir" change directory (see also INT 21/AH=3Bh)
  141050. 04h "fd_creat" create file (see also INT 21/AH=3Ch)
  141051. 05h "fd_open" open existing file (see also INT 21/AH=3Dh)
  141052. 06h "fd_close" close file (see also INT 21/AH=3Eh)
  141053. 07h "fd_read" read from file (see also INT 21/AH=3Fh)
  141054. 08h "fd_write" write to file (see also INT 21/AH=40h)
  141055. 09h "fd_delete" delete file (see also INT 21/AH=41h)
  141056. 0Ah "fd_lseek" get/set file position (see also INT 21/AH=42h)
  141057. 0Bh "fd_chmod" get/set file attributes (see also INT 21/AH=43h)
  141058. 0Ch "fd_curdir" get current directory (see also INT 21/AH=47h)
  141059. 0Dh "fd_sfirst" find first matching file (see also INT 21/AH=4Eh)
  141060. 0Eh "fd_snext" find next matching file (see also INT 21/AH=4Fh)
  141061. 0Fh "fd_rename" rename file (see also INT 21/AH=56h)
  141062. 10h "fd_gsfdate" get/set file date (see also INT 21/AX=5700h)
  141063. 11h "fd_mktemp" make temporary file (see also INT 21/AH=5Ah)
  141064. 12h "fd_mknew" create new file (see also INT 21/AH=5Bh)
  141065. 13h "fd_lock" lock/unlock file data (see also INT 21/AH=5Ch)
  141066. 14h "fd_dup" duplicate file handle (see also INT 21/AH=45h)
  141067. 15h "fd_dup2" force duplicate file handle (see also INT 21/AH=46h)
  141068. 16h-19h ???
  141069. 1Ah "fd_ioctl" I/O control emulation
  141070. 1Bh "fd_commit" commit file to disk (see also INT 21/AH=68h)
  141071. 1Ch "fd_expand" expand file name (see also INT 21/AH=60h)
  141072. 1Dh ???
  141073. 1Eh ???
  141074. 1Fh "fd_sethandles" set number of handles for calling process
  141075. SeeAlso: #04038
  141076. Format of DR "execute DOS-compatible function" parameter block:
  141077. Offset Size Description (Table 04038)
  141078. 00h WORD function number (see #04037)
  141079. ---function 00h---
  141080. 02h WORD drive
  141081. 04h DWORD -> DPB (see #04039)
  141082. ---function 01h,02h,03h---
  141083. 02h DWORD -> ASCIZ directory name
  141084. ---function 04h---
  141085. 02h DWORD -> ASCIZ filename
  141086. 06h WORD file attributes
  141087. ---function 05h---
  141088. 02h DWORD -> ASCIZ filename
  141089. 06h WORD open mode (see INT 21/AH=3Dh)
  141090. ---function 06h---
  141091. 02h WORD file handle
  141092. ---function 07h,08h---
  141093. 02h WORD file handle
  141094. 04h DWORD -> buffer
  141095. 08h WORD number of bytes to read or write
  141096. ---function 09h---
  141097. 02h DWORD -> ASCIZ filename
  141098. ---function 0Ah---
  141099. 02h WORD file handle
  141100. 04h DWORD (call) desired offset
  141101. (ret) new file position if function is successful
  141102. 08h WORD seek origin (offset is calculated from specified position)
  141103. 00h start of file
  141104. 01h current position
  141105. 02h end of file
  141106. ---function 0Bh---
  141107. 02h DWORD -> ASCIZ filename
  141108. 06h WORD (call) new file attributes or new file owner
  141109. (ret) current/new file attributes, depending on function
  141110. 08h WORD subfunction
  141111. 00h get attribute
  141112. 01h set attribute
  141113. 02h get extended attributes
  141114. 03h set extended attributes (and password)
  141115. 04h get encrypted password
  141116. 05h set extended attributes (and encrypted password)
  141117. 06h get file owner
  141118. 07h set file owner
  141119. Note: the password is taken from the first 8 bytes of the DTA
  141120. ---function 0Ch---
  141121. 02h WORD drive
  141122. 04h DWORD -> 64-byte buffer for ASCIZ current directory path
  141123. ---function 0Dh---
  141124. 02h DWORD -> ASCIZ filespec
  141125. 06h WORD file attributes
  141126. 08h WORD (call) size of buffer pointed at by current DTA
  141127. (ret) number of matching files returned???
  141128. Note: if the volume label attribute is specified, the root
  141129. directory will be searched
  141130. if the buffer is at least 47 bytes, multiple matching
  141131. entries will be stored in the DTA (at 21 bytes per
  141132. entry)
  141133. ---function 0Eh---
  141134. 02h WORD number of additional matches to store in DTA
  141135. (normally set to 0, but if DTA is at least 47 bytes, can be
  141136. set to (DTAsize-21)/26 to return multiple matches)
  141137. ---function 0Fh---
  141138. 02h DWORD -> ASCIZ filename
  141139. 06h DWORD -> ASCIZ new name
  141140. ---function 10h---
  141141. 02h WORD file handle
  141142. 04h WORD subfunction
  141143. 00h get date and time
  141144. 01h set date and time
  141145. 06h WORD file date
  141146. 08h WORD file time
  141147. ---function 11h---
  141148. 02h DWORD -> ASCIZ pathname + 13 extra bytes for generated filename
  141149. (if pathname does not end in backslash, one will be appended)
  141150. 06h WORD file attributes
  141151. ---function 12h---
  141152. 02h DWORD -> ASCIZ filename
  141153. 06h WORD file attributes
  141154. ---function 13h---
  141155. 02h WORD file handle
  141156. 04h DWORD offset of start of region
  141157. 08h DWORD length of region to lock/unlock
  141158. 0Ch WORD subfunction (00h = lock, 01h = unlock)
  141159. ---function 14h---
  141160. 02h WORD file handle to be duplicated
  141161. (new file handle is returned as function return value)
  141162. ---function 15h---
  141163. 02h WORD file handle to be duplicated
  141164. 04h WORD file handle which is to become the duplicate
  141165. ---function 1Ah, form 1---
  141166. 02h WORD file handle
  141167. 04h WORD IOCTL function number (00h,01h,06h,07h,0Ah)
  141168. 06h WORD (ret) status
  141169. ---function 1Ah, form 2---
  141170. 02h WORD drive number
  141171. 04h WORD IOCTL function number (08h,09h,0Eh,0Fh)
  141172. 06h WORD (ret) status
  141173. ---function 1Ah, form 3---
  141174. 02h WORD file handle
  141175. 04h WORD IOCTL function number (02h,03h,54h)
  141176. 06h DWORD -> buffer
  141177. 0Ah WORD (call) size of buffer in bytes
  141178. (ret) size of returned data
  141179. ---function 1Ah, form 4---
  141180. 02h WORD drive number
  141181. 04h WORD IOCTL function number (04h,05h)
  141182. 06h DWORD -> buffer
  141183. 0Ah WORD (call) size of buffer in bytes
  141184. (ret) size of returned data
  141185. ---function 1Bh---
  141186. 02h WORD file handle of file to be committed to disk
  141187. ---function 1Ch---
  141188. 02h DWORD -> ASCIZ relative filename
  141189. 06h DWORD -> buffer for absolute filename
  141190. ---function 1Fh---
  141191. 02h WORD desired number of file handles for process
  141192. Format of DR Multiuser DOS Disk Parameter Block (DPB):
  141193. Offset Size Description (Table 04039)
  141194. 00h BYTE drive number (00h = A:)
  141195. 01h BYTE relative unit number
  141196. 02h WORD sector size in bytes
  141197. 04h BYTE sectors per cluster - 1
  141198. 05h BYTE shift count to convert clusters into sectors
  141199. 06h WORD number of reserved sectors at beginning of drive
  141200. 08h BYTE number of FATs
  141201. 09h WORD number of root directory entries
  141202. 0Bh WORD number of first sector containing user data
  141203. 0Dh WORD number of clusterse on disk
  141204. 0Fh BYTE number of sectors per FAT
  141205. 10h WORD sector number of first directory sector
  141206. 12h 4 BYTEs reserved
  141207. 16h BYTE media ID byte (see #01356)
  141208. 17h BYTE 00h if disk accessed, FFh if not
  141209. 18h 6 BYTEs reserved
  141210. 1Eh WORD number of free clusters on drive
  141211. Note: this structure is a subset of the MS-DOS 3.x Drive Parameter Block
  141212. SeeAlso: #04038,#01357 at INT 21/AH=1Fh,#01395 at INT 21/AH=32h
  141213. --------O-E0----CL73-------------------------
  141214. INT E0 - GSX-86, GEM/1, GEM/2 - API
  141215. CL = 73h
  141216. CH = 04h
  141217. DS:DX -> parameter block
  141218. --------O-E0----CL80-------------------------
  141219. INT E0 - REAL/32 - "M_ALLOC" - ALLOCATE MEMORY
  141220. CL = 80h
  141221. DS:DX -> Memory Parameter Block (MPB) (see #04040)
  141222. Return: AX = status (0000h success, else error code)
  141223. SeeAlso: INT E0/CL=81h
  141224. Format of REAL/32 Memory Parameter Block (MPB):
  141225. Offset Size Description (Table 04040)
  141226. 00h WORD (call) desired starting paragraph of block, or
  141227. 0000h for anywhere
  141228. (ret) starting paragraph of allocated block
  141229. 02h WORD (call) minimum number of paragraphs required
  141230. (ret) actual number of paragraphs allocated
  141231. 04h WORD (call) maximum number of paragraphs to allocate
  141232. (ret) actual number of paragraphs allocated
  141233. 06h WORD process descriptor (see #04026) of memory's owner or 0000h
  141234. 08h WORD flags (normally set to 0000h on call)
  141235. SeeAlso: #04041
  141236. --------O-E0----CL81-------------------------
  141237. INT E0 - REAL/32 - "M_FREE" - DEALLOCATE MEMORY
  141238. CL = 81h
  141239. DS:DX -> Memory Free Parameter Block (MFPB) (see #04041)
  141240. Return: AX = status (0000h success, else error code)
  141241. SeeAlso: INT E0/CL=81h
  141242. Format of REAL/32 Memory Free Parameter Block (MFPB) :
  141243. Offset Size Description (Table 04041)
  141244. 00h WORD starting segment of block to be freed
  141245. 02h WORD reserved (0)
  141246. SeeAlso: #04040
  141247. --------O-E0----CL84-------------------------
  141248. INT E0 - REAL/32 - "DEV_WAITFLAG" - WAIT ON SYSTEM FLAG
  141249. CL = 84h
  141250. DX = system flag ID
  141251. Return: AX = status (0000h success, else error code)
  141252. if successful, this function does not return until the system flag has
  141253. been set by an interrupt handler (see INT E0/CL=85h); if the flag was
  141254. already set, this call returns immediately
  141255. SeeAlso: INT E0/CL=85h,INT E0/CL=B7h
  141256. --------O-E0----CL85-------------------------
  141257. INT E0 - REAL/32 - "DEV_SETFLAG" - SET SYSTEM FLAG
  141258. CL = 85h
  141259. DX = system flag ID
  141260. Return: AX = status (0000h success, else error code)
  141261. Note: REAL/32 returns an error if the flag was already set, which indicates
  141262. that a previous logical interrupt has not yet been serviced
  141263. SeeAlso: INT E0/CL=84h
  141264. --------O-E0----CL86-------------------------
  141265. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE
  141266. CL = 86h
  141267. DS:DX -> queue descriptor (see #04042)
  141268. Return: AX = status (0000h success, FFFFh failure)
  141269. CX = error code (see #04021)
  141270. Note: also supported by REAL/32
  141271. SeeAlso: INT E0/CL=87h
  141272. Format of DR Multiuser DOS queue descriptor:
  141273. Offset Size Description (Table 04042)
  141274. 00h 2 WORDs internal use, initialize to zeros
  141275. 04h WORD queue flags (see #04043)
  141276. 06h 8 BYTEs queue name
  141277. 0Eh WORD length of message
  141278. 10h WORD number of messages
  141279. 12h 4 WORDs internal use, initialize to zeros
  141280. 1Ah WORD offset in system area of buffer for messages
  141281. Bitfields for REAL/32 queue flags:
  141282. Bit(s) Description (Table 04043)
  141283. 0 mutual exclusion queue
  141284. 1 can not be deleted
  141285. 2 restricted to system processes
  141286. 3 RSP message queue
  141287. 4 reserved for internal use
  141288. 5 RPL address queue
  141289. 7-6 reserved for internal use
  141290. 15-8 reserved for future use
  141291. SeeAlso: #04042
  141292. --------O-E0----CL87-------------------------
  141293. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE
  141294. CL = 87h
  141295. DS:DX -> queue parameter block (QPB) (see #04044,#04045)
  141296. Return: AX = status (0000h success, FFFFh failure)
  141297. CX = error code (see #04021)
  141298. Note: also supported by REAL/32
  141299. SeeAlso: INT E0/CL=86h,INT E0/CL=88h,INT E0/CL=89h
  141300. Format of DR Multiuser DOS queue parameter block:
  141301. Offset Size Description (Table 04044)
  141302. 00h WORD internal use, initialize to zero
  141303. 02h WORD queue ID (set by INT E0/CL=87h)
  141304. 04h WORD internal use, initialize to zero
  141305. 06h WORD offset of queue message buffer
  141306. (REAL/32) if FFFFh, then full address of buffer is stored at
  141307. offest 10h
  141308. 08h 8 BYTEs queue name
  141309. ---REAL/32 only----
  141310. 10h DWORD segment:offset of queue message buffer
  141311. SeeAlso: #04045
  141312. Format of protected-mode REAL/32 Queue Parameter Block (QPB):
  141313. Offset Size Description (Table 04045)
  141314. 00h WORD internal use
  141315. 02h WORD queue ID
  141316. 04h WORD internal use
  141317. 06h DWORD 32-bit offset to buffer
  141318. 0Ah WORD selector for buffer
  141319. 0Ch 8 BYTEs queue name
  141320. SeeAlso: #04044
  141321. --------O-E0----CL88-------------------------
  141322. INT E0 - REAL/32 - "Q_DELETE" - DELETE SYSTEM QUEUE
  141323. CL = 88h
  141324. DS:DX -> queue parameter block (QPB) (see #04044,#04045)
  141325. Return: AX = status (0000h success, FFFFh failure)
  141326. SeeAlso: INT E0/CL=87h
  141327. --------O-E0----CL89-------------------------
  141328. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE
  141329. CL = 89h
  141330. DS:DX -> queue parameter block (QPB) (see #04044,#04045)
  141331. Return: AX = status (0000h success, FFFFh failure)
  141332. CX = error code (see #04021)
  141333. Note: also supported by REAL/32
  141334. SeeAlso: INT E0/CL=87h,INT E0/CL=8Ah,INT E0/CL=8Bh,INT E0/CL=B6h
  141335. --------O-E0----CL8A-------------------------
  141336. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE
  141337. CL = 8Ah
  141338. DS:DX -> queue parameter block (QPB) (see #04044,#04045)
  141339. Return: AX = status (0000h success, FFFFh failure)
  141340. CX = error code (see #04021)
  141341. Note: also supported by REAL/32
  141342. SeeAlso: INT E0/CL=87h,INT E0/CL=89h,INT E0/CL=8Ch,INT E0/CL=B6h
  141343. --------O-E0----CL8B-------------------------
  141344. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE
  141345. CL = 8Bh
  141346. DS:DX -> queue parameter block (QPB) (see #04044,#04045)
  141347. Return: AX = status (0000h success, FFFFh failure)
  141348. CX = error code (see #04021)
  141349. Note: also supported by REAL/32
  141350. SeeAlso: INT E0/CL=89h,INT E0/CL=8Ch
  141351. --------O-E0----CL8C-------------------------
  141352. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CWRITE" - CONDITIONALLY WRITE MSG QUEUE
  141353. CL = 8Ch
  141354. DS:DX -> queue parameter block (QPB) (see #04044,#04045)
  141355. Return: AX = status (0000h success, FFFFh failure)
  141356. CX = error code (see #04021)
  141357. Note: also supported by REAL/32
  141358. SeeAlso: INT E0/CL=8Ah,INT E0/CL=8Bh
  141359. --------O-E0----CL8E-------------------------
  141360. INT E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER
  141361. CL = 8Eh
  141362. DX = FFFFh (optional) to force dispatch
  141363. Return: nothing
  141364. Desc: allow other processes of the same or higher priority to run if they
  141365. are ready
  141366. Notes: if DX=FFFFh, a dispatch is forced even if no other process is ready
  141367. also supported by REAL/32
  141368. SeeAlso: INT E0/CL=91h,INT 15/AX=1000h,INT 2F/AX=1680h
  141369. --------O-E0----CL8F-------------------------
  141370. INT E0 - REAL/32 - "P_TERM" - TERMINATE CALLING PROCESS
  141371. CL = 8Fh
  141372. DX = termination code
  141373. Return: never if successful
  141374. AX = FFFFh on failure
  141375. Note: this function can not terminate processes whose KEEP flag is set
  141376. if the termination code is FFh, this function can terminate the process
  141377. even if its SYSTEM flag is on; otherwise, only user processes can
  141378. terminate themselves
  141379. SeeAlso: INT E0/CL=90h,INT 21/AH=4Ch
  141380. --------O-E0----CL90-------------------------
  141381. INT E0 - REAL/32 - "P_CREATE" - CREATE A PROCESS
  141382. CL = 90h
  141383. DS:DX -> process descriptor in calling process' system memory area
  141384. (see #04026)
  141385. Return: AX = status
  141386. Notes: this call can create more than one process if the specied process
  141387. descriptor's link (next-process) field is nonzero
  141388. all reserved and unused fields in the process descriptor should be
  141389. filled with zeros; passing an invalid descriptor or pointer may
  141390. crash the system because the descriptor is not checked by the OS
  141391. the newly-created process(es) is always a native process, which can not
  141392. make DOS calls
  141393. SeeAlso: INT E0/CL=8Fh
  141394. --------O-E0----CL91-------------------------
  141395. INT E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY
  141396. CL = 91h
  141397. DL = new priority (00h highest to FFh lowest)
  141398. Return: nothing
  141399. Notes: sets priority of calling process; transient processes are initialized
  141400. to priority C8h
  141401. also supported by REAL/32
  141402. SeeAlso: INT E0/CL=8Eh
  141403. --------O-E0----CL92-------------------------
  141404. INT E0 - ConcCP/M,DR Multiuser DOS - "C_ATTACH" - ATTACH TO DEFAULT CONSOLE
  141405. CL = 92h
  141406. Return: AX = status
  141407. Notes: also supported by REAL/32
  141408. if the console is currently owned by another process, this function
  141409. waits until the console is available
  141410. SeeAlso: INT E0/CL=93h,INT E0/CL=94h,INT E0/CL=99h,INT E0/CL=9Eh,INT E0/CL=A2h
  141411. --------O-E0----CL93-------------------------
  141412. INT E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE
  141413. CL = 93h
  141414. Return: AX = status
  141415. 0000h successfully detached
  141416. FFFFh detach failed
  141417. Note: also supported by REAL/32
  141418. SeeAlso: INT E0/CL=92h,INT E0/CL=A6h
  141419. --------O-E0----CL94-------------------------
  141420. INT E0 - REAL/32 - "C_SET" - SET PROCESS'S DEFAULT CONSOLE
  141421. CL = 94h
  141422. DX = console ID
  141423. Return: AX = status (0000h success, else error code)
  141424. SeeAlso: INT E0/CL=92h,INT E0/CL=95h,INT E0/CL=99h
  141425. --------O-E0----CL95-------------------------
  141426. INT E0 - REAL/32 - "C_ASSIGN" - ASSIGN DEFAULT CONSOLE TO ANOTHER PROCESS
  141427. CL = 95h
  141428. DS:DX -> Assign Control Parameter Block (ACPB) (see #04046)
  141429. Return: AX = status
  141430. SeeAlso: INT E0/CL=94h,INT E0/CL=99h
  141431. Format of REAL/32 Assign Control Parameter Block (ACPB):
  141432. Offset Size Description (Table 04046)
  141433. 00h BYTE ID of console to assign
  141434. 01h BYTE flag: if FFh, new process must have CNS as console for this
  141435. call to succeed
  141436. 02h DWORD -> process descriptor (see #04026) or 00000000h
  141437. 06h 8 BYTEs name of process to search for if descriptor field above is zero
  141438. --------O-E0----CL96-------------------------
  141439. INT E0 - REAL/32 - "P_CLI" - RUN COMMAND LINE INTERFACE
  141440. CL = 96h
  141441. DS:DX -> Command Line Buffer (CLBUF) (see #04047)
  141442. Return: AX = status
  141443. Desc: execute the indicated command concurrently with the calling process;
  141444. system queue commands, .BAT, .CMD, .COM, and .EXE files can be
  141445. executed
  141446. Note: the calling process will lose its virtual console and must reattach it
  141447. before attempting any I/O
  141448. SeeAlso: INT E0/CL=92h
  141449. Format of REAL/32 Command Line Buffer (CLBUF):
  141450. Offset Size Description (Table 04047)
  141451. 00h BYTE reserved (0)
  141452. 01h 128 BYTEs ASCIZ command line
  141453. 81h BYTE (0)
  141454. --------O-E0----CL99-------------------------
  141455. INT E0 - REAL/32 - "C_GET" - GET DEFAULT CONSOLE
  141456. CL = 99h
  141457. Return: AX = default console ID
  141458. SeeAlso: INT E0/CL=94h
  141459. --------O-E0----CL9A-------------------------
  141460. INT E0 - REAL/32 - "S_SYSDAT" - GET SYSTEM DATA AREA
  141461. CL = 9Ah
  141462. Return: ES:AX -> system data area (see #04048)
  141463. may destroy SI,DI
  141464. Format of REAL/32 system data area:
  141465. Offset Size Description (Table 04048)
  141466. 00h DWORD address of supervisor entry point
  141467. 04h 36 BYTEs reserved
  141468. 28h DWORD address of XIOS entry point
  141469. 2Ch DWORD address of XIOS initialization point
  141470. 30h 8 BYTEs reserved
  141471. 38h DWORD address of IRET dispatcher entry point
  141472. 3Ch DWORD address of RETF dispatcher entry point
  141473. 40h WORD segment of operating system code
  141474. 42h WORD paragraph address of first Resident System Process (RSP)
  141475. 44h WORD paragraph after OS system area
  141476. 46h BYTE reserved
  141477. 47h BYTE number of system console devices
  141478. 48h BYTE number of system list (printer) devices
  141479. 49h BYTE number of Character Control blocks
  141480. 4Ah BYTE number of system flags
  141481. 4Bh BYTE current search disk
  141482. 4Ch WORD maximum memory per process
  141483. 4Eh BYTE reserved
  141484. 4Fh BYTE "dayfile" (flag, true if FFh)
  141485. 50h BYTE default disk for temporary files
  141486. 51h BYTE system ticks per second (typically 60)
  141487. 52h WORD offset of Locked Unused list
  141488. 54h WORD offset of CCB table
  141489. 56h WORD offset of system flag table
  141490. 58h WORD offset of root of Memory Descriptor Unused list
  141491. 5Ah WORD offset of Memory Free list
  141492. 5Ch WORD offset of Process Unused list
  141493. 5Eh WORD offset of Queue Unused list
  141494. 60h 4 WORDs (no longer used) QMAU
  141495. 68h WORD offset of root of Ready List
  141496. 6Ah WORD offset of root of Delay List
  141497. 6Ch WORD offset of Dispatcher Ready list
  141498. 6Eh WORD offset of root of Poll List
  141499. 70h WORD reserved
  141500. 72h WORD offset of root of Thread List
  141501. 74h WORD offset of root of Queue List
  141502. 76h WORD offset of Memory Allocation list
  141503. 78h WORD segment of version string
  141504. 7Ah WORD BDOS version number
  141505. 7Ch WORD OS version number
  141506. 7Eh WORD number of days since 01jan1978
  141507. 80h BYTE current time: hour
  141508. 81h BYTE current time: minute
  141509. 82h BYTE current time: second
  141510. 83h BYTE number of XIOS consoles
  141511. 84h BYTE number of XIOS list (printer) devices
  141512. 85h BYTE total number of character devices
  141513. 86h WORD offset of LCB table
  141514. 88h WORD bitmap of open files
  141515. 8Ah BYTE maximum locked records per process
  141516. 8Bh BYTE maximum open files per process
  141517. 8Ch WORD offset of process descriptor for math coprocessor's owner
  141518. 8Eh WORD offset of Auxiliary Control Block
  141519. 90h 8 BYTEs reserved
  141520. 98h WORD offset of root Memory Window Descriptor
  141521. 9Ah WORD reserved
  141522. 9Ch BYTE number of Auxiliary Control Blocks
  141523. 9Dh BYTE default search disk
  141524. 9Eh BYTE reserved
  141525. 9Fh BYTE number of physical consoles
  141526. A0h DWORD address of 8087 interrupt handler
  141527. A4h DWORD address of default 8087 exception handler
  141528. ... reserved
  141529. C00h 82 BYTEs XIOS header structure (see #04049)
  141530. Format of REAL/32 XIOS header structure:
  141531. Offset Size Description (Table 04049)
  141532. 00h 3 BYTEs XIOS initialization entry point
  141533. 03h 3 BYTEs XIOS service entry point
  141534. 06h WORD segment address of system data
  141535. 08h DWORD address of supervisor entry point
  141536. 0Ch BYTE set tick flag
  141537. 0Dh BYTE ticks per second
  141538. 0Eh BYTE global Door Open interrupt flag
  141539. 0Fh BYTE number of Auxiliary Control Blocks
  141540. 10h BYTE number of physical consoles
  141541. 11h BYTE number of virtual consoles
  141542. 12h BYTE number of logical consoles
  141543. 13h BYTE number of list control blocks
  141544. 14h WORD offset of CCB table
  141545. 16h WORD offset of LCB table
  141546. 18h 16 WORDs offsets into DPH for drives A-P
  141547. 38h WORD buffer size in paragraphs
  141548. 3Ah WORD offset of ACB table
  141549. 3Ch WORD used by OEM
  141550. 3Eh WORD offset of CCB pointer array
  141551. 40h WORD offset of LCB pointer array
  141552. 42h WORD offset of ACB pointer array
  141553. 44h BYTE 'first' flag
  141554. 45h BYTE unused
  141555. 46h WORD offset of print device support table
  141556. 48h WORD offset of aux device support table
  141557. 4Ah WORD XIOS extra segment
  141558. 4Ch WORD segment of save end address for debug
  141559. 4Eh WORD segment of save start address for debug
  141560. 50h BYTE number of main virtual console
  141561. 51h WORD segment of XIOS code
  141562. SeeAlso: #04048
  141563. --------O-E0----CL9C-------------------------
  141564. INT E0 - REAL/32 - "P_PDADR" - GET ADDRESS OF PROCESS DESCRIPTOR
  141565. CL = 9Ch
  141566. Return: ES:AX -> caller's process descriptor (see #04026)
  141567. may destroy SI,DI
  141568. SeeAlso: INT E0/CL=8Fh,INT E0/CL=90h
  141569. --------O-E0----CL9D-------------------------
  141570. INT E0 - REAL/32 - "P_ABORT" - ABORT PROCESS BY NAME OR DESCRIPTOR
  141571. CL = 9Dh
  141572. DS:DX -> Abort Parameter Block (see #04050)
  141573. Return: AX = status
  141574. may destroy SI,DI,DS
  141575. SeeAlso: INT E0/CL=8Fh,INT E0/CL=9Ch
  141576. Format of REAL/32 Abort Parameter Block:
  141577. Offset Size Description (Table 04050)
  141578. 00h WORD process descriptor of process to abort, or 0000h
  141579. 02h WORD termination code
  141580. 04h BYTE default console number
  141581. 05h BYTE reserved (0)
  141582. 06h 8 BYTEs name of process to abort, if descriptor at offset 00h is 0000h
  141583. --------O-E0----CL9E-------------------------
  141584. INT E0 - REAL/32 - "L_ATTACH" - ATTACH TO DEFAULT LIST DEVICE
  141585. CL = 9Eh
  141586. Return: AX = status
  141587. may destroy SI,DI
  141588. SeeAlso: INT E0/CL=92h,INT E0/CL=9Fh,INT E0/CL=A0h,INT E0/CL=A1h
  141589. --------O-E0----CL9F-------------------------
  141590. INT E0 - REAL/32 - "L_DETACH" - DETACH FROM DEFAULT LIST DEVICE
  141591. CL = 9Fh
  141592. Return: AX = status
  141593. may destroy SI,DI
  141594. SeeAlso: INT E0/CL=92h,INT E0/CL=9Eh
  141595. --------O-E0----CLA0-------------------------
  141596. INT E0 - REAL/32 - "L_SET" - SET DEFAULT LIST DEVICE
  141597. CL = A0h
  141598. DX = ID of list (printer) device
  141599. Return: AX = status (0000h success, FFFFh if invalid printer number)
  141600. may destroy SI,DI
  141601. SeeAlso: INT E0/CL=92h,INT E0/CL=9Eh,INT E0/CL=A4h
  141602. --------O-E0----CLA1-------------------------
  141603. INT E0 - REAL/32 - "L_CATTACH" - CONDITIONALLY ATTACH TO DEFAULT LIST DEVICE
  141604. CL = A1h
  141605. Return: AX = status (00h = successful, FFh = unable to attach)
  141606. may destroy SI,DI
  141607. Desc: attach the default list device to the calling process only if it is
  141608. currently available
  141609. SeeAlso: INT E0/CL=92h,INT E0/CL=9Eh,INT E0/CL=A0h
  141610. --------O-E0----CLA2-------------------------
  141611. INT E0 - REAL/32 - "C_CATTACH" - CONDITIONALLY ATTACH TO DEFAULT CONSOLE
  141612. CL = A2h
  141613. Return: AL = status (FFh = console attached to another process)
  141614. Note: if the console is currently owned by another process, this function
  141615. will return an error code instead of attaching or waiting
  141616. SeeAlso: INT E0/CL=93h,INT E0/CL=94h,INT E0/CL=99h,INT E0/CL=92h
  141617. --------O-E0----CLA3-------------------------
  141618. INT E0 - ConcCP/M,DR Multiuser DOS,REAL/32 - "S_OSVER" - GET OS VERSION
  141619. CL = A3h
  141620. Return: AX = operating system version (see #04023) (see also INT 21/AX=4451h)
  141621. SeeAlso: INT E0/CL=0Ch,INT 21/AX=4451h
  141622. --------O-E0----CLA4-------------------------
  141623. INT E0 - REAL/32 - "L_GET" - GET DEFAULT LIST (PRINTER) DEVICE
  141624. CL = A4h
  141625. Return: AL = number of default list device
  141626. SeeAlso: INT E0/CL=A0h
  141627. --------O-E0----CLA5-------------------------
  141628. INT E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE
  141629. CL = A5h
  141630. Return: nothing (DR)
  141631. AX = status (REAL/32)
  141632. Desc: attaches the default auxiliary device to the calling process unless
  141633. it is already attached to another process, in which case the call
  141634. blocks until the device becomes available
  141635. Notes: this call should be used before attempting to read or write from
  141636. the AUX device; however, the I/O calls internally call this function
  141637. to ensure device ownership
  141638. also supported by REAL/32
  141639. SeeAlso: INT E0/CL=03h,INT E0/CL=04h,INT E0/CL=A6h,INT E0/CL=A7h,INT E0/CL=A8h
  141640. SeeAlso: INT E0/CL=ACh,INT E0/CL=ADh,INT E0/CL=B0h
  141641. --------O-E0----CLA6-------------------------
  141642. INT E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE
  141643. CL = A6h
  141644. Return: AX = status
  141645. 0000h successfully detached
  141646. FFFFh detach failed
  141647. CX = error code
  141648. Note: also supported by REAL/32
  141649. SeeAlso: INT E0/CL=93h,INT E0/CL=A5h,INT E0/CL=A7h
  141650. --------O-E0----CLA7-------------------------
  141651. INT E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE
  141652. CL = A7h
  141653. Return: AX = status
  141654. 0000h attached
  141655. FFFFh unable to attach
  141656. Desc: attaches the default auxiliary device to the calling process if it is
  141657. available
  141658. Notes: does not block if the device is already in use
  141659. also supported by REAL/32
  141660. SeeAlso: INT E0/CL=A5h,INT E0/CL=A6h,INT E0/CL=A8h,INT E0/CL=B0h
  141661. --------O-E0----CLA8-------------------------
  141662. INT E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER
  141663. CL = A8h
  141664. DL = auxiliary device number
  141665. Return: AX = status
  141666. 0000h successful
  141667. FFFFh failed
  141668. CX = error code
  141669. Desc: specify which physical device will become AUX
  141670. SeeAlso: INT E0/CL=A5h,INT E0/CL=A9h
  141671. --------O-E0----CLA9-------------------------
  141672. INT E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER
  141673. CL = A9h
  141674. Return: AL = current default auxiliary device number
  141675. Desc: determine which physical device is currently AUX
  141676. SeeAlso: INT E0/CL=A8h
  141677. --------O-E0----CLAC-------------------------
  141678. INT E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE
  141679. CL = ACh
  141680. DS:DX -> character control block (CHCB) (see #04051,#04052)
  141681. Return: AX = number of characters read
  141682. Desc: read characters from the default auxiliary (AUXn:) device into a buffer
  141683. until the buffer is full or the device is no longer ready
  141684. Notes: if the device is initially not ready, blocks until at least one
  141685. character has been read
  141686. if another process owns AUX, this call blocks until the device becomes
  141687. available
  141688. also supported by REAL/32
  141689. SeeAlso: INT E0/CL=03h,INT E0/CL=A5h,INT E0/CL=ADh
  141690. Format of DR Multiuser DOS character control block (CHCB):
  141691. Offset Size Description (Table 04051)
  141692. 00h DWORD pointer to character buffer
  141693. 04h WORD length of character buffer
  141694. Note: this version of the structure is used by REAL/32 in real mode
  141695. SeeAlso: #04059
  141696. Format of REAL/32 protected-mode Character Control Block (CHCB):
  141697. Offset Size Description (Table 04052)
  141698. 00h DWORD 32-bit offset of character buffer
  141699. 04h WORD selector for character buffer
  141700. 06h WORD length of character buffer
  141701. SeeAlso: #04051
  141702. --------O-E0----CLAD-------------------------
  141703. INT E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE
  141704. CL = ADh
  141705. DS:DX -> character control block (see #04051,#04052)
  141706. Return: AX = number of characters written
  141707. Notes: does not return until at least one character has been written
  141708. also supported by REAL/32
  141709. SeeAlso: INT E0/CL=04h,INT E0/CL=A5h,INT E0/CL=ACh
  141710. --------O-E0----CLB0-------------------------
  141711. INT E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS
  141712. CL = B0h
  141713. DX:DX -> AUX device parameter block (see #04053)
  141714. Return: AX = status
  141715. 0000h successful
  141716. parameter block updated
  141717. FFFFh failed
  141718. CX = error code
  141719. Note: also supported by REAL/32
  141720. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  141721. Format of DR Multiuser DOS AUX device parameter block:
  141722. Offset Size Description (Table 04053)
  141723. 00h BYTE function (00h get, 01h set)
  141724. 01h BYTE baud rate (see #04055) FFh = don't change/unknown
  141725. 02h BYTE parity (see #04054)
  141726. 03h BYTE stop bits (00h one, 01h 1.5, 02h two, FFh unknown/don't change)
  141727. 04h BYTE data bits (05h-08h or FFh unknown/don't change)
  141728. 05h BYTE handshake (00h none, 01h DTS/DSR, 02h RTS/CTS, 04h XON/XOFF,
  141729. FFh unknown/don't change)
  141730. 06h BYTE XON character, FFh unknown/don't change
  141731. 07h BYTE XOFF character, FFh unknown/don't change
  141732. (Table 04054)
  141733. Values for DR Multiuser DOS AUX parity:
  141734. 00h none
  141735. 01h odd
  141736. 02h none
  141737. 03h even
  141738. 04h stick parity bit
  141739. FFh don't change/unknown
  141740. SeeAlso: #04053,#04055
  141741. (Table 04055)
  141742. Values for DR Multiuser DOS AUX baud rate:
  141743. 00h 50 baud
  141744. 01h 62.5 baud
  141745. 02h 75 baud
  141746. 03h 110 baud
  141747. 04h 134.5 baud
  141748. 05h 150 baud
  141749. 06h 200 baud
  141750. 07h 300 baud
  141751. 08h 600 baud
  141752. 09h 1200 baud
  141753. 0Ah 1800 baud
  141754. 0Bh 2000 baud
  141755. 0Ch 2400 baud
  141756. 0Dh 3600 baud
  141757. 0Eh 4800 baud
  141758. 0Fh 7200 baud
  141759. 10h 9600 baud
  141760. 11h 19200 baud
  141761. 12h 38400 baud
  141762. 13h 56000 baud
  141763. 14h 76800 baud
  141764. 15h 115200 baud
  141765. SeeAlso: #04053,#04054
  141766. --------O-E0----CLB1-------------------------
  141767. INT E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS
  141768. CL = B1h
  141769. DS:DX -> AUX device control block (see #04056)
  141770. Return: AX = status
  141771. 0000h successful
  141772. control block updated
  141773. FFFFh failed
  141774. CX = error code
  141775. Note: also supported by REAL/32
  141776. SeeAlso: INT E0/CL=B0h,INT E0/CL=B2h
  141777. Format of DR Multiuser DOS AUX device control block:
  141778. Offset Size Description (Table 04056)
  141779. 00h BYTE function (00h get, 01h set)
  141780. 01h BYTE DTR state (00h low, 01h high, FFh unknown/don't change)
  141781. 02h BYTE RTS state (00h low, 01h high, FFh unknown/don't change)
  141782. 03h BYTE DSR state (00h low, 01h high, FFh unknown/don't change)
  141783. 04h BYTE CTS state (00h low, 01h high, FFh unknown/don't change)
  141784. 05h BYTE DCD state (00h low, 01h high, FFh unknown/don't change)
  141785. 06h BYTE RI state (00h inactive, 01h active, FFh unknown/don't change)
  141786. --------O-E0----CLB2-------------------------
  141787. INT E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE
  141788. CL = B2h
  141789. DX = duration of break in system ticks (0001h-FFFFh)
  141790. Return: AX = status
  141791. 0000h successful
  141792. break signal completed
  141793. FFFFh failed
  141794. CX = error code
  141795. Notes: if the AUX device is currently owned by another process, this call will
  141796. block until the device becomes available
  141797. also supported by REAL/32
  141798. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  141799. --------O-E0----CLB3-------------------------
  141800. INT E0 R - REAL/32 - "MP_ALLOC" - ALLOCATE PHYSICAL MEMORY
  141801. CL = B3h
  141802. DX = number of 4K pages to allocate
  141803. Return: AX = number of first 4K page allocated, or FFFFh on error
  141804. Note: memory allocated with this function is not automatically freed when
  141805. the process terminates
  141806. SeeAlso: INT E0/CL=B4h,INT E0/CL=B5h
  141807. --------O-E0----CLB4-------------------------
  141808. INT E0 R - REAL/32 - "MP_FREE" - DEALLOCATE PHYSICAL MEMORY
  141809. CL = B4h
  141810. DX = number of the physical page to free
  141811. Return: AX = status (0000h successful, FFFFh error)
  141812. SeeAlso: INT E0/CL=B3h
  141813. --------O-E0----CLB5-------------------------
  141814. INT E0 R - REAL/32 - "MP_MAP" - MAP PHYSICAL MEMORY
  141815. CL = B5h
  141816. DS:DX -> Memory Physical Parameter Block (see #04057)
  141817. Return: AX = status (0000h successful, FFFFh error)
  141818. may destroy SI,DI,DS
  141819. SeeAlso: INT E0/CL=B3h
  141820. Format of REAL/32 Memory Physical Parameter Block:
  141821. Offset Size Description (Table 04057)
  141822. 00h WORD 4K page number in first megabyte to be mapped
  141823. 02h WORD number of page to map into above page, or 0000h to unmap
  141824. 04h WORD window number (0000h, as only one window currently supported)
  141825. 06h WORD reserved
  141826. Note: all users of the system share the window, so applications should not
  141827. use it for arguments to system calls, attempt to read/write to/from
  141828. files via the window, etc.
  141829. --------O-E0----CLB6-------------------------
  141830. INT E0 - REAL/32 - "Q_NCREAD" - CONDITIONALLY NONDESTRUCTIVELY READ QUEUE
  141831. CL = B6h
  141832. DS:DX -> Queue Parameter Block (QPB) (see #04045,#04044)
  141833. Return: AX = status
  141834. SeeAlso: INT E0/CL=89h,INT E0/CL=8Ah
  141835. --------O-E0----CLB7-------------------------
  141836. INT E0 - REAL/32 - "DEV_TWAITFLAG" - TIMED WAIT ON SYSTEM FLAG
  141837. CL = B7h
  141838. DS:DX -> Flag Parameter Block (FPB) (see #04058)
  141839. Return: AX = status
  141840. may destroy SI,DI,DS
  141841. Note: if the flag was already set, this function returns immediately
  141842. SeeAlso: INT E0/CL=84h,INT E0/CL=85h
  141843. Format of REAL/32 Flag Parameter Block (FPB):
  141844. Offset Size Description (Table 04058)
  141845. 00h WORD number of system flag on which to wait
  141846. 02h WORD maximum number of system ticks (see INT E0/CL=9Ah) to wait
  141847. --------O-E0----CLB8-------------------------
  141848. INT E0 - REAL/32 - "DEV_MAP" - GET/SET SERIAL/PARALLEL PORT MAPPINGS
  141849. CL = B8h
  141850. DS:DX -> Device Map Parameter Block (DEVPB) (see #04059)
  141851. Return: nothing???
  141852. may destroy SI,DI,DS
  141853. Format of REAL/32 Device Map Parameter Block (DEVPB):
  141854. Offset Size Description (Table 04059)
  141855. 00h WORD direction (00h = get current mapping, 01h = set new mapping)
  141856. 02h 4 BYTEs physical device IDs which map into LPT1 - LPT4
  141857. 06h 4 BYTEs physical device IDs which map into COM1 - COM4
  141858. Note: LPT4 and COM3/COM4 are reserved on early versions of Multiuser DOS,
  141859. but are supported from at least CCI Multiuser DOS v7.22 onward
  141860. --------O-E0----CLB9-------------------------
  141861. INT E0 - REAL/32 - "L_TIMEOUT" - SET LIST DEVICE TIMEOUT
  141862. CL = B9h
  141863. DX = timeout value in system ticks (see #04048)
  141864. 0000h-FFEFh = new number of system ticks
  141865. FFFDh = get current value without changing
  141866. FFFEh = start timeout count
  141867. FFFFh = never timeout
  141868. Return: AX = status, or current timeout value if DX=FFFDh on entry
  141869. may destroy SI,DI
  141870. SeeAlso: INT E0/CL=BAh
  141871. --------O-E0----CLBA-------------------------
  141872. INT E0 - REAL/32 - "A_TIMEOUT" - SET AUX DEVICE TIMEOUT
  141873. CL = BAh
  141874. DX = timeout value in system ticks (see #04048)
  141875. 0000h-FFEFh = new number of system ticks
  141876. FFFDh = get current value without changing
  141877. FFFEh = start timeout count
  141878. FFFFh = never timeout
  141879. Return: AX = status, or current timeout value if DX=FFFDh on entry
  141880. may destroy SI,DI
  141881. SeeAlso: INT E0/CL=B9h
  141882. --------O-E0----CLBD-------------------------
  141883. INT E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION
  141884. CL = BDh
  141885. DX = delay in system ticks (typically 16.6 ms/tick)
  141886. Return: after the delay elapses
  141887. no results
  141888. Notes: the length of a system tick is installation-dependent (typically
  141889. 1/50 or 1/60 second); the length may be determined by reading the
  141890. TICKSPERSEC value from the system data segment
  141891. the actual delay before the process is rescheduled to run may be up to
  141892. one tick longer than requested; the delay between rescheduling and
  141893. actual execution cannot be predicted if higher-priority processes
  141894. are awaiting a turn at the CPU
  141895. SeeAlso: INT 15/AH=86h,INT 1A/AX=FF01h,INT 2F/AX=1224h,INT 62/AX=0096h
  141896. --------g-E00000-----------------------------
  141897. INT E0 - PCROBOTS v1.41 - "SWAPTASK" - END CURRENT ROBOT'S TURN
  141898. AX = 0000h
  141899. Return: nothing
  141900. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  141901. which specially-written .COM or .EXE programs form robots battling
  141902. each other in a user-defined arena
  141903. --------g-E00001-----------------------------
  141904. INT E0 - PCROBOTS v1.41 - "MOVEMENT" - START MOVING
  141905. AX = 0001h
  141906. BX = speed (0-maximum for robot)
  141907. CX = direction (0-359 degrees)
  141908. Return: nothing
  141909. Notes: the speed will change to the specified value at the maximum
  141910. acceleration the robot is capable of; if the robot is already moving
  141911. faster than its maximum maneuverability speed, it will not be able
  141912. to change direction
  141913. this call also terminates the current robot's turn
  141914. SeeAlso: AX=0000h,AX=0002h,AX=0003h
  141915. --------g-E00002-----------------------------
  141916. INT E0 - PCROBOTS v1.41 - "SCAN" - SCAN FOR OTHER ROBOTS IN THE GIVEN DIRECTION
  141917. AX = 0002h
  141918. BX = direction (0-359 degrees)
  141919. CX = resolution (0-45 degrees)
  141920. Return: AX = status
  141921. FFFFh if nothing detected
  141922. else robot ID (0-19)
  141923. BX = range to detected robot
  141924. Notes: the scan searches within CX degrees to either side of the specified
  141925. direction
  141926. the scanner will see right through walls, but shells will not pass
  141927. through walls
  141928. this call also terminates the current robot's turn
  141929. SeeAlso: AX=0000h,AX=0001h,AX=0003h
  141930. --------g-E00003-----------------------------
  141931. INT E0 - PCROBOTS v1.41 - "SHOOT" - FIRE A SHELL AT ANOTHER ROBOT
  141932. AX = 0003h
  141933. BX = direction (0-359 degrees)
  141934. CX = range (0-700)
  141935. Return: AX = status (0000h not fired, else ID of shell fired)
  141936. Notes: up to seven shells may be in flight for a robot at one time; the cannon
  141937. takes 50 ticks to reload
  141938. this call also terminates the current robot's turn
  141939. SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=002Ch
  141940. --------g-E00010-----------------------------
  141941. INT E0 - PCROBOTS v1.41 - "GETXY" - GET ROBOT'S CURRENT POSITION
  141942. AX = 0010h
  141943. Return: BX = current X coordinate (0-999)
  141944. CX = current Y coordinate (0-999)
  141945. --------g-E00011-----------------------------
  141946. INT E0 - PCROBOTS v1.41 - "TRANSMIT" - SEND DATA TO ANOTHER ROBOT
  141947. AX = 0011h
  141948. BX = target robot ID
  141949. CX = data to be sent
  141950. Return: AX = status (0000h data could not be sent, 0001h data sent)
  141951. Note: this call costs one unit of battery power
  141952. --------g-E00012-----------------------------
  141953. INT E0 - PCROBOTS v1.41 - "RECEIVE" - GET DATA FROM OTHER ROBOTS
  141954. AX = 0012h
  141955. Return: AX = status
  141956. 0000h no data available
  141957. 0001h data retrieved
  141958. BX = sender's ID
  141959. CX = data
  141960. Note: each robot has a 20-word receive FIFO; if the FIFO is full, other
  141961. robots will be unable to send more data until some is read
  141962. --------g-E00013-----------------------------
  141963. INT E0 - PCROBOTS v1.41 - "DAMAGE" - DETERMINE HOW MUCH DAMAGE SUSTAINED
  141964. AX = 0013h
  141965. Return: BX = damage status
  141966. Note: the initial value depends on configuration, but is typically 100; as
  141967. the robot is damaged, it decreases
  141968. --------g-E00014-----------------------------
  141969. INT E0 - PCROBOTS v1.41 - "SPEED" - DETERMINE HOW FAST ROBOT IS MOVING
  141970. AX = 0014h
  141971. Return: BX = current speed
  141972. --------g-E00015-----------------------------
  141973. INT E0 - PCROBOTS v1.41 - "BATTERY" - DETERMINE HOW MUCH BATTERY POWER LEFT
  141974. AX = 0015h
  141975. Return: BX = current battery charge
  141976. Note: the battery starts off with 1000 units of charge, and is constantly
  141977. being charged by solar panels and constantly discharged by motion;
  141978. the battery is charged at 4 units per turn and discharged at
  141979. 0.1*speed units per turn.
  141980. --------g-E00016-----------------------------
  141981. INT E0 - PCROBOTS v1.41 - "TICKS" - DETERMINE HOW LONG SINCE GAME STARTED
  141982. AX = 0016h
  141983. Return: BX:CX = number of game ticks elapsed (not related to real time)
  141984. --------g-E00017-----------------------------
  141985. INT E0 - PCROBOTS v1.41 - "L_SIN" - GET SCALED SINE OF AN ANGLE
  141986. AX = 0017h
  141987. BX = angle (0-359 degrees)
  141988. Return: BX:CX = 100000*sine of angle
  141989. SeeAlso: AX=0018h,AX=0019h,AX=001Ah,AX=001Bh
  141990. --------g-E00018-----------------------------
  141991. INT E0 - PCROBOTS v1.41 - "L_COS" - GET SCALED COSINE OF AN ANGLE
  141992. AX = 0018h
  141993. BX = angle (0-359 degrees)
  141994. Return: BX:CX = 100000*cosine of angle
  141995. SeeAlso: AX=0017h,AX=0019h,AX=001Ah
  141996. --------g-E00019-----------------------------
  141997. INT E0 - PCROBOTS v1.41 - "L_TAN" - GET SCALED TANGENT OF AN ANGLE
  141998. AX = 0019h
  141999. BX = angle (0-359 degrees)
  142000. Return: BX:CX = 100000*tangent of angle
  142001. SeeAlso: AX=0017h,AX=0018h,AX=001Ah
  142002. --------g-E0001A-----------------------------
  142003. INT E0 - PCROBOTS v1.41 - "L_ATAN" - GET ANGLE GIVEN SCALED TANGENT
  142004. AX = 001Ah
  142005. BX:CX = 100000*tangent of an angle
  142006. Return: AX = angle (-90 to +90 degrees)
  142007. SeeAlso: AX=0017h,AX=0018h,AX=0019h
  142008. --------g-E0001B-----------------------------
  142009. INT E0 - PCROBOTS v1.41 - "SQRT" - DETERMINE SQUARE ROOT OF A NUMBER
  142010. AX = 001Bh
  142011. BX:CX = value
  142012. Return: BX:CX = square root
  142013. SeeAlso: AX=0017h
  142014. --------g-E0001C-----------------------------
  142015. INT E0 - PCROBOTS v1.41 - "SET_PATTERN" - SPECIFY ROBOT'S DISPLAY IMAGE
  142016. AX = 001Ch
  142017. BX:CX -> pattern array
  142018. Return: nothing
  142019. Note: the pattern array consists of five bytes, the low five bits of each
  142020. specifying the bit pattern for one line of the robot's screen display
  142021. --------g-E0001D-----------------------------
  142022. INT E0 - PCROBOTS v1.41 - "DEBUG_FLAG" - SET/CLEAR MARKERS NEXT TO ROBOT'S NAME
  142023. AX = 001Dh
  142024. BX = flag number (0 or 1)
  142025. CX = new value (0 reset, 1 set)
  142026. Return: nothing
  142027. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  142028. which specially-written .COM or .EXE programs form robots battling
  142029. each other in a user-defined arena
  142030. Note: the two flag markers may be used for any purpose, typically for
  142031. debugging to provide a visual display of progress
  142032. --------g-E0001E-----------------------------
  142033. INT E0 - PCROBOTS v1.41 - "BUY_ARMOUR" - BUY OR SELL ARMOR FOR ROBOT
  142034. AX = 001Eh
  142035. BX = number of armor units to buy (negative to sell)
  142036. Return: nothing
  142037. Note: each armor unit is worth 50 battery units; the robot's armor rating
  142038. will not go above its initial rating, so attempts to purchase more
  142039. will waste battery units
  142040. SeeAlso: AX=001Fh
  142041. --------g-E0001F-----------------------------
  142042. INT E0 - PCROBOTS v1.41 - "BUY_SHELLS" - BUY ADDITIONAL CANNON SHELLS
  142043. AX = 001Fh
  142044. BX = number of shells to buy
  142045. Return: nothing
  142046. Note: each shell costs ten battery units
  142047. SeeAlso: AX=001Eh,AX=0020h
  142048. --------g-E00020-----------------------------
  142049. INT E0 - PCROBOTS v1.41 - "SHELLS LEFT" - DETERMINE HOW MANY SHELLS ROBOT HAS
  142050. AX = 0020h
  142051. Return: BX = number of shells remaining
  142052. SeeAlso: AX=001Fh
  142053. --------g-E00021-----------------------------
  142054. INT E0 - PCROBOTS v1.41 - "GET LOCAL MAP"
  142055. AX = 0021h
  142056. BX:CX -> 81-byte buffer for map (see #04060)
  142057. Return: buffer filled with 9x9 area of map centered on robot's position
  142058. (Table 04060)
  142059. Values for PCROBOTS map squares:
  142060. 2Eh '.' empty square
  142061. 44h 'D' damaging trap
  142062. 52h 'R' refueling point
  142063. 58h 'X' wall
  142064. --------g-E00022-----------------------------
  142065. INT E0 - PCROBOTS v1.41 - "INVISIBILITY" - CONTROL ROBOT'S INVISIBILITY DEVICE
  142066. AX = 0022h
  142067. BX = new state (0000h become visible, 0001h become invisible)
  142068. Return: nothing
  142069. Notes: this function has no effect if the robot is not capable of invisibility
  142070. the robot can only stay invisible for 100 turns, after which it will
  142071. automatically become visible; it must also be remain visible for
  142072. as many turns as it was invisible before it can turn invisible
  142073. again
  142074. SeeAlso: AX=0024h,AX=0080h
  142075. --------g-E00023-----------------------------
  142076. INT E0 - PCROBOTS v1.41 - "GET_SHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
  142077. AX = 0023h
  142078. Return: BX = status of last shell to land
  142079. 0000h missed completely
  142080. 0001h hit a wall
  142081. 0002h hit a robot within 50-square radius
  142082. 0003h hit a robot within 25-square radius
  142083. 0004h hit a robot within 5-square radius
  142084. --------g-E00024-----------------------------
  142085. INT E0 - PCROBOTS v1.41 - "IS_INVISIBLE" - DETERMINE WHETHER ROBOT IS INVISIBLE
  142086. AX = 0024h
  142087. Return: BX = visibility (0000h visible, 0001h invisible)
  142088. SeeAlso: AX=0022h,AX=0080h
  142089. --------g-E00025-----------------------------
  142090. INT E0 - PCROBOTS v1.41 - "L_ATAN2" - GET ARCTANGENT
  142091. AX = 0025h
  142092. BX = Y
  142093. CX = X
  142094. Return: AX = angle (arctangent of Y/X)
  142095. --------g-E00026-----------------------------
  142096. INT E0 - PCROBOTS v1.41 - "GET_ROBOT_ID" - DETERMINE CURRENT ROBOT'S IDENTIFIER
  142097. AX = 0026h
  142098. Return: AX = robot ID
  142099. --------g-E00027-----------------------------
  142100. INT E0 - PCROBOTS v1.41 - "REGISTER_IFF" - REGISTER FRIEND/FOE IDENT STRING
  142101. AX = 0027h
  142102. BX:CX = ASCIZ IFF string
  142103. Return: nothing
  142104. Note: the IFF string may only be set once
  142105. SeeAlso: AX=0028h,AX=0029h
  142106. --------g-E00028-----------------------------
  142107. INT E0 - PCROBOTS v1.41 - "CHECK_IFF" - QUERY FRIEND/FOE IDENTIFICATION STRING
  142108. AX = 0028h
  142109. BX = robot ID to test
  142110. Return: AX = status
  142111. 0000h IFF strings match
  142112. 0001h IFF strings differ or invalid robot ID
  142113. SeeAlso: AX=0027h
  142114. --------g-E00029-----------------------------
  142115. INT E0 - PCROBOTS v1.41 - "REGISTER_NAME" - SPECIFY ROBOT'S NAME
  142116. AX = 0029h
  142117. BX:CX -> ASCIZ name string
  142118. Return: nothing
  142119. Note: the name may only be set once
  142120. SeeAlso: AX=0027h,AX=002Ah
  142121. --------g-E0002A-----------------------------
  142122. INT E0 - PCROBOTS v1.41 - "FIND_NAME" - SEARCH FOR ROBOT WITH GIVEN NAME
  142123. AX = 002Ah
  142124. BX:CX -> ASCIZ name string
  142125. DX = first ID to check
  142126. Return: AX = robot ID or FFFFh if no robot with specified name
  142127. SeeAlso: AX=0028h,AX=0029h,AX=002Bh
  142128. --------g-E0002B-----------------------------
  142129. INT E0 - PCROBOTS v1.41 - "GET_TEAM_ID" - DETERMINE TEAM MEMBERSHIP OF ROBOT
  142130. AX = 002Bh
  142131. Return: AX = team ID (0-2) or FFFFh if 'loner'
  142132. SeeAlso: AX=0029h
  142133. --------g-E0002C-----------------------------
  142134. INT E0 - PCROBOTS v1.41 - "GET_ASHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
  142135. AX = 002Ch
  142136. BX = shell ID
  142137. Return: AX = status
  142138. 0000h missed completely
  142139. 0001h hit a wall
  142140. 0002h hit a robot within a 50-square radius
  142141. 0003h hit a robot within a 25-square radius
  142142. 0004h hit a robot within a 5-square radius
  142143. 0005h shell not known (too old or not yet fired)
  142144. 0006h shell still in flight
  142145. SeeAlso: AX=0003h
  142146. --------g-E0002D-----------------------------
  142147. INT E0 - PCROBOTS v1.41 - "REGISTER_X" - SELECT AUTOMATIC X POSITION UPDATES
  142148. AX = 002Dh
  142149. BX:CX -> X word variable
  142150. Return: AX = status (0001h OK, 0000h problem with address)
  142151. Note: after this call, PCROBOTS will automatically update the specified
  142152. word whenever the robot moves
  142153. SeeAlso: AX=002Eh
  142154. --------g-E0002E-----------------------------
  142155. INT E0 - PCROBOTS v1.41 - "REGISTER_Y" - SELECT AUTOMATIC Y POSITION UPDATES
  142156. AX = 002Eh
  142157. BX:CX -> Y word variable
  142158. Return: AX = status (0001h OK, 0000h problem with address)
  142159. Note: after this call, PCROBOTS will automatically update the specified
  142160. word whenever the robot moves
  142161. SeeAlso: AX=002Dh
  142162. --------g-E00080-----------------------------
  142163. INT E0 - PCROBOTS v1.41 - "CONFIGURE" - CUSTOMIZE ROBOT
  142164. AX = 0080h
  142165. BX = basic configuration (see #04061)
  142166. CX = advanced configuration (see #04062)
  142167. Return: AX = status (0001h OK, 0000h not first call in program)
  142168. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  142169. which specially-written .COM or .EXE programs form robots battling
  142170. each other in a user-defined arena
  142171. Notes: a maximum of ten points may be allocated to the robot; if you attempt
  142172. to allocate more, some items will be given a value of zero. If this
  142173. function is not called, each attribute is set to the default value
  142174. of 2.
  142175. if the invisibility option is chosen, the robot will start with only
  142176. 900 cannon shells instead of the default 1000
  142177. Bitfields for PCROBOTS basic configuration:
  142178. Bit(s) Description (Table 04061)
  142179. 0-3 maximum speed (0-4 = 50,75,100,150,200)
  142180. 4-7 maneuverability (0-4 = 20%,35%,50%,75%,100%)
  142181. 8-11 cannon range (0-4 = 300,500,700,1000,1500)
  142182. 12-15 robot armor (0-4 = 50,75,100,150,200)
  142183. Bitfields for PCROBOTS advanced configuration:
  142184. Bit(s) Description (Table 04062)
  142185. 0-2 robot acceleration (0-4 = 5,7,10,15,20)
  142186. 3 capable of invisibility
  142187. --------r-E1---------------------------------
  142188. INT E1 - IBM ROM BASIC - used while in interpreter
  142189. Notes: called by ROM BASIC
  142190. BASIC.COM/BASICA.COM do not restore vector on termination
  142191. --------N-E1---------------------------------
  142192. INT E1 - PC Cluster Disk Server Information (NOT A VECTOR!)
  142193. Desc: points at a data table
  142194. SeeAlso: INT E2
  142195. --------O-E1---------------------------------
  142196. INT E1 - MP/M-86, - ALTERNATE CP/M-86 FUNCTION CALLS
  142197. CL = function number (see #04019,#04020)
  142198. DS,DX = parameters
  142199. Return: as appropriate for function
  142200. CX is often the error code (see #04021)
  142201. Desc: used by some applications which alter CP/M functions while running a
  142202. child program, to store the original INT E0 vector before
  142203. intercepting INT E0
  142204. SeeAlso: #04019 at INT E0"CP/M"
  142205. ----------E1---------------------------------
  142206. INT E1 - DeskMate (Tandy) - TASK DATA SEGMENTS (NOT A VECTOR!)
  142207. Desc: used to store data; the low word of the vector is the data segment for
  142208. the first task; the high word is the data segment of the second task
  142209. (DeskMate supports 2-way task switching between small- or
  142210. medium-model applications)
  142211. Program: DeskMate is a proprietary GUI from Tandy distributed with several
  142212. models of the Tandy 1000's, 2500's, 3000's, and laptops. Retail
  142213. and runtime versions also exist. Some Tandy's are designed to
  142214. boot directly into DeskMate.
  142215. SeeAlso: INT E0"DeskMate"
  142216. --------r-E2---------------------------------
  142217. INT E2 - IBM ROM BASIC - used while in interpreter
  142218. Notes: called by ROM BASIC
  142219. BASIC.COM/BASICA.COM do not restore vector on termination
  142220. --------N-E2---------------------------------
  142221. INT E2 - PC Cluster Program - RELOCATED INT 1C
  142222. SeeAlso: INT 1C
  142223. --------r-E3---------------------------------
  142224. INT E3 - IBM ROM BASIC - used while in interpreter
  142225. Notes: called by ROM BASIC
  142226. BASIC.COM/BASICA.COM do not restore vector on termination
  142227. --------r-E40005-----------------------------
  142228. INT E4 - Logitech Modula v2.0 - MonitorEntry
  142229. AX = 0005h
  142230. BX = priority
  142231. Return: nothing
  142232. SeeAlso: AX=0006h
  142233. --------r-E40006-----------------------------
  142234. INT E4 - Logitech Modula v2.0 - MonitorExit
  142235. AX = 0006h
  142236. Return: nothing
  142237. SeeAlso: AX=0005h
  142238. --------r-E4---------------------------------
  142239. INT E4 - IBM ROM BASIC - used while in interpreter
  142240. Notes: called by ROM BASIC
  142241. BASIC.COM/BASICA.COM do not restore vector on termination
  142242. --------r-E5---------------------------------
  142243. INT E5 - IBM ROM BASIC - used while in interpreter
  142244. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  142245. BASIC.COM/BASICA.COM do not restore vector on termination
  142246. --------r-E6---------------------------------
  142247. INT E6 - IBM ROM BASIC - used while in interpreter
  142248. Notes: called by ROM BASIC
  142249. BASIC.COM/BASICA.COM do not restore vector on termination
  142250. --------O-E6---------------------------------
  142251. INT E6 C - CP/M-86 v1.1 - UNKNOWN DISK DRIVE
  142252. AX = function which accessed drive
  142253. 0000h SELDSK
  142254. 0001h READ
  142255. 0002h WRITE
  142256. 0003h HOME
  142257. DX:BX -> parameter block (see #04063)
  142258. Return: AX = return value
  142259. Desc: called by CP/M-86 kernel when an unknown disk drive is used, which
  142260. permits an application to provide access services
  142261. Format of CP/M-86 unknown-drive paramter block:
  142262. Offset Size Description (Table 04063)
  142263. 00h BYTE drive number (00h = first unknown drive, etc.)
  142264. 01h BYTE deblocking flag (00h = normal write, 01h = directory write)
  142265. 02h WORD track number
  142266. 04h WORD sector number
  142267. 06h DWORD data transfer address
  142268. 0Ah BYTE verify flag (nonzero to verify writes)
  142269. Note: in CP/M-86 v1.1, this is actually a portion of a BIOS disk data
  142270. table which starts one byte before the address given to the INT E6
  142271. handler; that extra byte is the current logical drive number
  142272. --------O-E600-------------------------------
  142273. INT E6 - Linux DOSEMU - INSTALLATION CHECK
  142274. AH = 00h
  142275. Return: AX = AA55h if installed
  142276. BH = major version number
  142277. BL = minor version number
  142278. CX = patchlevel
  142279. Notes: check for the BIOS date string "02/25/93" at F000:FFF5 before
  142280. calling this function. In addition, the segment address of this
  142281. vector should be F000h (for existing versions of DOSemu, the
  142282. vector is F000h:0E60h)
  142283. SeeAlso: AH=FFh
  142284. --------O-E601-------------------------------
  142285. INT E6 - Linux DOSEMU - REGISTER DUMP
  142286. AH = 01h
  142287. Return: nothing
  142288. SeeAlso: AH=00h
  142289. --------O-E602-------------------------------
  142290. INT E6 - Linux DOSEMU - SET I/O PORT PERMISSIONS
  142291. AH = 02h
  142292. BX = base I/O port address
  142293. CX = number of consecutive I/O ports
  142294. CF set to allow DOS to use ports
  142295. CF clear if DOS should not be allowed to use ports
  142296. Return: nothing
  142297. SeeAlso: AH=00h
  142298. --------O-E605-------------------------------
  142299. INT E6 - Linux DOSEMU - STARTUP BANNER
  142300. AH = 05h
  142301. Return: nothing
  142302. SeeAlso: AH=00h
  142303. --------O-E612-------------------------------
  142304. INT E6 - Linux DOSEMU - SET "HOGTHRESHOLD"
  142305. AH = 12h
  142306. BX = new "hogthreshold" (00h-99h)
  142307. Return: nothing
  142308. Desc: specify how much CPU time DOSEMU may use
  142309. SeeAlso: AH=00h
  142310. --------O-E622-------------------------------
  142311. INT E6 - Linux DOSEMU - GET EMS STATUS
  142312. AH = 22h
  142313. Return: ???
  142314. SeeAlso: AH=00h
  142315. --------O-E630-------------------------------
  142316. INT E6 - Linux DOSEMU - SET BOOTDISK FLAG
  142317. AH = 30h
  142318. BX = new flag state (0 = false, 1 = true)
  142319. Return: nothing
  142320. SeeAlso: AH=00h
  142321. --------O-E650-------------------------------
  142322. INT E6 - Linux DOSEMU - EXECUTE UNIX COMMAND
  142323. AH = 50h
  142324. ES:DX -> ASCIZ Unix command
  142325. SeeAlso: AH=00h,AH=51h
  142326. --------O-E651-------------------------------
  142327. INT E6 - Linux DOSEMU - EXECUTE DOS COMMAND FROM UNIX
  142328. AH = 51h
  142329. ES:DX -> ASCIZ DOS command
  142330. SeeAlso: AH=00h,AH=50h
  142331. --------O-E680-------------------------------
  142332. INT E6 - Linux DOSEMU - GET CURRENT UNIX DIRECTORY
  142333. AH = 80h
  142334. Return: ES:DX -> current Unix directory
  142335. AX = length of current directory name
  142336. SeeAlso: AH=00h,AH=81h
  142337. --------O-E681-------------------------------
  142338. INT E6 - Linux DOSEMU - CHANGE CURRENT UNIX DIRECTORY
  142339. AH = 81h
  142340. ES:DX -> ASCIZ directory name
  142341. Return: nothing
  142342. SeeAlso: AH=00h,AH=80h
  142343. --------O-E6FF-------------------------------
  142344. INT E6 - Linux DOSEMU - TERMINATE
  142345. AH = FFh
  142346. SeeAlso: AH=00h
  142347. --------r-E7---------------------------------
  142348. INT E7 - IBM ROM BASIC - used while in interpreter
  142349. Notes: called by ROM BASIC
  142350. BASIC.COM/BASICA.COM do not restore vector on termination
  142351. --------r-E8---------------------------------
  142352. INT E8 - IBM ROM BASIC - used while in interpreter
  142353. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  142354. BASIC.COM/BASICA.COM do not restore vector on termination
  142355. --------r-E9---------------------------------
  142356. INT E9 - IBM ROM BASIC - used while in interpreter
  142357. Notes: called by ROM BASIC
  142358. BASIC.COM/BASICA.COM do not restore vector on termination
  142359. --------r-EA---------------------------------
  142360. INT EA - IBM ROM BASIC - used while in interpreter
  142361. Notes: called by ROM BASIC
  142362. BASIC.COM/BASICA.COM do not restore vector on termination
  142363. --------r-EB---------------------------------
  142364. INT EB - IBM ROM BASIC - used while in interpreter
  142365. Notes: called by ROM BASIC
  142366. BASIC.COM/BASICA.COM do not restore vector on termination
  142367. --------r-EC---------------------------------
  142368. INT EC - IBM ROM BASIC - used while in interpreter
  142369. Notes: called by ROM BASIC
  142370. BASIC.COM/BASICA.COM do not restore vector on termination
  142371. --------N-EC---------------------------------
  142372. INT EC - used by Alloy NTNX
  142373. --------r-EC---------------------------------
  142374. INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR
  142375. AX = function number (0000h to 0140h)
  142376. STACK: DWORD address to return to
  142377. any arguments required by function
  142378. Return: STACK: return address popped, but otherwise unchanged
  142379. Desc: this is the interface from applications to the runtime system by Exact
  142380. Automatisering B.V. of the Netherlands. By using this interrupt,
  142381. it can provide DLL-style capabilities under MS-DOS.
  142382. Note: the interrupt handler removes the return address and flags placed on
  142383. the stack by the INT EC, then jumps to the appropriate function
  142384. --------r-ED---------------------------------
  142385. INT ED - IBM ROM BASIC - used while in interpreter
  142386. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  142387. BASIC.COM/BASICA.COM do not restore vector on termination
  142388. INT 80 through INT ED are modified but not restored by Direct Access
  142389. v4.0, and may be left dangling by other programs written with the
  142390. same version of compiled BASIC
  142391. SeeAlso: INT EC"BASIC",INT EE"BASIC"
  142392. --------r-EE---------------------------------
  142393. INT EE - IBM ROM BASIC - used while in interpreter
  142394. Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  142395. BASIC.COM/BASICA.COM do not restore vector on termination
  142396. SeeAlso: INT ED"BASIC",INT EE"BASIC"
  142397. --------r-EF---------------------------------
  142398. INT EF - BASIC - ORIGINAL INT 09 VECTOR
  142399. Note: BASIC.COM/BASICA.COM do not restore vector on termination
  142400. SeeAlso: INT EE"BASIC",INT F0"BASIC"
  142401. --------O-EF----CX00C8-----------------------
  142402. INT EF - GEM - AES INTERFACE
  142403. CX = 00C8h
  142404. DX = 0000h
  142405. ES:BX -> AES parameter block (see #04064)
  142406. SeeAlso: INT EF/CX=00C9h,INT EF/CX=0473h
  142407. Format of AES parameter block:
  142408. Offset Size Description (Table 04064)
  142409. 00h DWORD -> control array (see #04065)
  142410. 04h DWORD -> global variables (15 WORDs)
  142411. 08h DWORD -> integer input parameters
  142412. 0Ch DWORS -> buffer for integer results
  142413. 10h DWORD -> address (DWORD) input parameters
  142414. 14h DWORD -> buffer for address (DWORD) results
  142415. SeeAlso: #04066
  142416. Format of AES control array:
  142417. Offset Size Description (Table 04065)
  142418. 00h WORD function number (000Ah-0084h)
  142419. 02h WORD number of words of integer input parameters
  142420. 04h WORD number of words available for integer results
  142421. 06h WORD number of words of address input parameters
  142422. 08h WORD number of words available for address results
  142423. SeeAlso: #04064
  142424. --------O-EF----CX00C9-----------------------
  142425. INT EF - GEM - AES INTERFACE
  142426. CX = 00C9h
  142427. DX = 0000h
  142428. ES:BX -> AES parameter block (see #04064)
  142429. SeeAlso: INT EF/CX=00C8h,INT EF/CX=0473h
  142430. --------O-EF----CX0473-----------------------
  142431. INT EF - GEM - VDI INTERFACE
  142432. CX = 0473h
  142433. DS:DX -> GEM VDI parameter block (see #04066)
  142434. Note: if installed, one of the following ASCII signatures will appear two
  142435. bytes after the INT EF entry point:
  142436. "GEMVDI" GEM VDI (but not AES) is present
  142437. "GEMAES" GEM/ViewMAX VDI and AES are both present
  142438. "ViewMAX" ViewMAX VDI (only) is present
  142439. each of the above is followed by an ASCIZ number indicating the
  142440. version ("10" for GEM/1 AES and VDI; "20" for GEM/2,GEM/3,ViewMAX
  142441. AES and GEM/2 VDI; "23" for GEM/3 VDI; and "1" for ViewMAX VDIs)
  142442. SeeAlso: INT EF/CX=00C8h,INT EF/CX=00C9h
  142443. Index: installation check;GEM
  142444. Format of VDI parameter block:
  142445. Offset Size Description (Table 04066)
  142446. 00h DWORD -> control array (see #04067)
  142447. 08h DWORD -> integer parameters
  142448. 0Ch DWORD -> (x,y) pair parameters
  142449. 10h DWORD -> integer results
  142450. 14h DWORD -> (x,y) pair results
  142451. SeeAlso: #04064
  142452. Format of VDI control array:
  142453. Offset Size Description (Table 04067)
  142454. 00h WORD (call) function number (0001h-0084h)
  142455. 02h WORD (call) number of words of pair parameters
  142456. 04h WORD (ret) number of words of pair results
  142457. 06h WORD (call) number of words of integer parameters
  142458. 08h WORD (ret) number of words of integer results
  142459. 0Ah WORD subfunction number
  142460. 0Ch WORD graphics handle
  142461. 0Eh DWORD (call) -> pointer parameter
  142462. 12h DWORD (ret) -> pointer result
  142463. SeeAlso: #04066
  142464. --------r-F0---------------------------------
  142465. INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR
  142466. Note: BASICA.COM does not restore vector on termination
  142467. SeeAlso: INT EF"BASIC"
  142468. --------*-F1---------------------------------
  142469. INT F1 - reserved for user interrupt
  142470. --------s-F1---------------------------------
  142471. INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
  142472. DS:BX -> '$'-terminated text string
  142473. Return: nothing
  142474. Program: SPEECH.COM is a resident text-to-speech converter by Douglas Sisco
  142475. --------s-F1---------------------------------
  142476. INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM
  142477. SeeAlso: INT F2"SPEECH"
  142478. --------U-F1---------------------------------
  142479. INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS
  142480. Return: AX:BX -> data area
  142481. Program: AQUEDUCT and PIPELINE are TSRs by James W. Birdsall to connect COM1
  142482. and COM2 in software
  142483. Note: The installation check consists of testing for the following signature
  142484. immediately preceding the interrupt handler: "JWBtvv" where 't' is
  142485. either "A" for AQUEDUCT or "P" for PIPELINE and "vv" is a two-digit
  142486. version number
  142487. Index: installation check;AQUEDUCT|installation check;PIPELINE
  142488. --------N-F1---------------------------------
  142489. INT F1 - NetWare Remote Boot - INSTALLATION CHECK (NOT A VECTOR!)
  142490. Note: if this vector contains the value 5774654Eh ("NetW"), the remote boot
  142491. BIOS extension is active, and access to the floppy disk is redirected
  142492. to an image file in the server's SYS:LOGIN directory
  142493. SeeAlso: INT F2"NetWare",INT F3"NetWare",INT F4"NetWare"
  142494. --------v-F1---------------------------------
  142495. INT F1 - VIRUS - "Violetta" - ???
  142496. Note: used but not chained by virus
  142497. SeeAlso: INT E0"VIRUS",INT FF"VIRUS"
  142498. ----------F101-------------------------------
  142499. INT F1 - Common ISDN API (CAPI) v1.1 - "API-REGISTER" - INITIALIZE CAPI
  142500. AH = 01h
  142501. ES:BX -> buffer for CAPI's use (refer to note below)
  142502. CX = minimum number of pending messages
  142503. DX = maximum simultaneous Level 3 connections
  142504. SI = maximum concurrent received B3 data blocks
  142505. DI = maximum B3 data block size
  142506. Return: AX = CAPI-assigned application ID
  142507. 0000h on error
  142508. BX = error number
  142509. 1001h registration error
  142510. Range: INT 00 to INT FF, selectable by program parameter
  142511. Notes: the caller is required to provide at least 512 bytes of stack space
  142512. the CAPI interrupt handler begins with a header which is nearly
  142513. identical to the IBM Interrupt Sharing Protocol header
  142514. (see #02568 at INT 2D"AMIS"), except that the short jump instruction
  142515. to a hardware reset handler at offset 09h is replaced by the
  142516. signature bytes "IA"
  142517. the maximum length of a message is fixed at 180 bytes; the standard
  142518. document suggests using CX=10, DI=1, SI=7, and DI=130 for
  142519. applications which use only a single connection and standard
  142520. protocols
  142521. the total size of the application-provided buffer must be at least
  142522. 180*CX + DX*SI*DI bytes
  142523. SeeAlso: AH=02h,INT F1/AL=01h
  142524. Index: installation check;Common ISDN API
  142525. ----------F1--01-----------------------------
  142526. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_REGISTER" - INITIALIZE CAPI
  142527. AL = 01h
  142528. AH = CAPI version number * 10 (14h for v2.0)
  142529. ES:BX -> buffer for CAPI's use (refer to note below)
  142530. CX = number of bytes for message buffer
  142531. DX = maximum simultaneous logical (Level 3) connections
  142532. SI = maximum concurrent received B3 data blocks (min. 2)
  142533. DI = maximum B3 data block size (up to 2048 bytes)
  142534. Return: AX = CAPI-assigned application ID
  142535. 0000h on error
  142536. BX = error number
  142537. 1001h registration error
  142538. Range: INT 00 to INT FF, selectable by program parameter
  142539. Notes: the caller is required to provide at least 512 bytes of stack space
  142540. the CAPI interrupt handler begins with a header (see #04068) which is
  142541. nearly identical to the IBM Interrupt Sharing Protocol header
  142542. (see #02568 at INT 2D"AMIS"), except that the short jump instruction
  142543. to a hardware reset handler at offset 09h is zeroed out and the
  142544. entire header is inexplicably shortened by one byte
  142545. the standard document suggests using 1024 + (1024*DX) bytes for the
  142546. message buffer for typical applications
  142547. the total size of the application-provided buffer must be at least
  142548. CX + DX*SI*DI bytes
  142549. SeeAlso: AH=01h,INT F1/AL=02h
  142550. Index: installation check;Common ISDN API
  142551. Format of CAPI v2.0 interrupt handler entry point:
  142552. Offset Size Description (Table 04068)
  142553. 00h 2 BYTEs short jump to actual start of interrupt handler, immediately
  142554. following this data block (EBh 0Fh)
  142555. 02h DWORD address of next handler in chain
  142556. 06h WORD signature 424Bh
  142557. 08h BYTE EOI flag (80h)
  142558. 80h primary hardware interrupt handler (will issue EOI)
  142559. 09h 2 BYTEs reserved (0)
  142560. (is short jump to hardware reset routine in ISP header)
  142561. 0Bh 4 BYTEs signature "CAPI"
  142562. 0Fh 2 BYTEs two-digit CAPI version number in ASCII ('20')
  142563. SeeAlso: #02568 at INT 2D
  142564. ----------F102-------------------------------
  142565. INT F1 - Common ISDN API (CAPI) v1.1 - "API-RELEASE" - UNREGISTER FROM CAPI
  142566. AH = 02h
  142567. DX = application ID (see AH=01h)
  142568. Return: AX = status (0000h,1002h) (see #04069)
  142569. Notes: the caller is required to provide at least 512 bytes of stack space
  142570. SeeAlso: AH=01h,INT F1/AL=02h
  142571. (Table 04069)
  142572. Values for CAPI v1.1 error code:
  142573. 0000h successful
  142574. 1001h registration error
  142575. 1002h invalid application ID
  142576. 1003h message too small or incorrectly coded message number
  142577. 1004h invalid command or subcommand
  142578. 1005h message queue full
  142579. 1006h message queue empty
  142580. 1007h message(s) lost due to queue overflow
  142581. 1008h error uninstalling
  142582. SeeAlso: #04070
  142583. ----------F1--02-----------------------------
  142584. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_RELEASE" - UNREGISTER FROM CAPI
  142585. AL = 02h
  142586. AH = CAPI version number * 10 (14h for v2.0)
  142587. DX = application ID (see INT F1/AL=01h)
  142588. Return: AX = status (0000h,11xxh) (see #04070)
  142589. Notes: the caller is required to provide at least 512 bytes of stack space
  142590. SeeAlso: AH=02h,INT F1/AL=01h,INT F1/AL=03h
  142591. (Table 04070)
  142592. Values for CAPI v2.0 error code:
  142593. 0000h successful
  142594. 1001h too many applications
  142595. 1002h logical block size too small (must be at least 128 bytes)
  142596. 1003h buffer > 64K
  142597. 1004h message buffer too small (minimum 1024 bytes)
  142598. 1005h too many logical connections requested
  142599. 1006h reserved
  142600. 1007h could not register because CAPI busy, try again
  142601. 1008h OS resource unavailable (out of memory, etc.)
  142602. 1009h COMMON-ISDN-API not installed
  142603. 100Ah controller does not support external equipment
  142604. 100Bh controller supports only external equipment
  142605. 1101h invalid application ID
  142606. 1102h illegal command or subcommand, or message too short
  142607. 1103h message queue full
  142608. 1104h queue empty
  142609. 1105h queue overflowed (message lost)
  142610. 1106h unknown notification parameter
  142611. 1107h could not accept message because CAPI busy, try again
  142612. 1108h OS resource unavailable (out of memory, etc.)
  142613. 1109h COMMON-ISDN-API not installed
  142614. 110Ah controller does not support external equipment
  142615. 110Bh controller supports only external equipment
  142616. 2001h message not supported in current state
  142617. 2002h illegal controller/PLCI/NCCI
  142618. 2003h out of PLCI
  142619. 2004h out of NCCI
  142620. 2005h out of LISTEN
  142621. 2006h out of FAX resources (T.30 protocol)
  142622. 2007h illegal message parameter coding
  142623. 3001h unsupported B1 protocol
  142624. 3002h unsupported B2 protocol
  142625. 3003h unsupported B3 protocol
  142626. 3004h unsupported B1 protocol parameter
  142627. 3005h unsupported B2 protocol parameter
  142628. 3006h unsupported B3 protocol parameter
  142629. 3007h unsupported B protocol combination
  142630. 3008h NCPI not supported
  142631. 3009h unknown CIP value
  142632. 300Ah unsupported flags (reserved bits set)
  142633. 300Bh unsupported facility
  142634. 300Ch data length not supported by current protocol
  142635. 300Dh reset procedure not supported by current protocol
  142636. SeeAlso: #04069
  142637. ----------F103-------------------------------
  142638. INT F1 - Common ISDN API (CAPI) v1.1 - "API-PUT-MESSAGE"
  142639. AH = 03h
  142640. DX = application ID (see AH=01h)
  142641. ES:BX -> message to be sent (see #04071)
  142642. Return: AX = status (0000h,1002h,1003h,1004h,1005h) (see #04069)
  142643. Notes: the caller is required to provide at least 512 bytes of stack space
  142644. the message buffer may be reused as soon as this call returns
  142645. SeeAlso: AH=01h,AH=04h,INT F1/AL=03h
  142646. Format of CAPI message:
  142647. Offset Size Description (Table 04071)
  142648. 00h WORD total message length, including header
  142649. 02h WORD application ID (see AH=01h)
  142650. 04h BYTE command (see #04072,#04073)
  142651. 05h BYTE subcommand (see #04072,#04073)
  142652. 06h WORD message sequence number
  142653. 0000h-7FFFh messages from application to CAPI (and replies)
  142654. 8000h-FFFFh messages from CAPI to application (and replies)
  142655. 08h var message data (max 172 bytes for v1.1 only)
  142656. (Table 04072)
  142657. Values for CAPI v1.1 message command/subcommand:
  142658. Cmd/SubCmd Name Description
  142659. 01h/00h RESET-B3-REQ request resetting of a Level 3 connection
  142660. 01h/01h RESET-B3-CONF confirm Level 3 connection reset
  142661. 01h/02h RESET-B3-IND indication from CAPI that Level 3 conn. reset
  142662. 01h/03h RESET-B3-RESP confirm receipt of RESET-B3-IND
  142663. 02h/00h CONNECT-REQ establish B-channel connection
  142664. 02h/01h CONNECT-CONF confirm start of connection establishment
  142665. 02h/02h CONNECT-IND indication from CAPI of incoming connection
  142666. 02h/03h CONNECT-RESP accept incoming connection
  142667. 03h/02h CONNECT-ACTIVE-IND indication that B-channel connection complete
  142668. 03h/03h CONNECT-ACTIVE-RESP confirm connection-complete indication
  142669. 04h/00h DISCONNECT-REQ request shutdown of B-channel connection
  142670. 04h/01h DISCONNECT-CONF confirm shutdown of B-channel connection
  142671. 04h/02h DISCONNECT-IND indication that B-channel is shutting down
  142672. 04h/03h DISCONNECT-RESP confirm that application knows of shutdown
  142673. 05h/00h LISTEN-REQ enable indication of incoming connections
  142674. 05h/01h LISTEN-CONF confirm enabling of incoming conn. indication
  142675. 06h/00h GET-PARAMS-REQ request B-channel parameters
  142676. 06h/01h GET-PARAMS-CONF return B-channel parameters
  142677. 07h/00h INFO-REQ set B-channel info to be signalled to app
  142678. 07h/01h INFO-CONF confirm B-channel info signalling
  142679. 07h/02h INFO-IND signal B-channel events to application
  142680. 07h/03h INFO-CONF confirm receipt of INFO-IND
  142681. 08h/00h DATA-REQ send D-channel data
  142682. 08h/01h DATA-CONF confirm receipt of DATA-REQ
  142683. 08h/02h DATA-IND receive D-channel data
  142684. 08h/03h DATA-RESP confirm receipt fo DATA-IND
  142685. 09h/00h CONNECT-INFO-REQ request connection information
  142686. 09h/01h CONNECT-INFO-CONF return connection information
  142687. 40h/00h SELECT-B2-PROTOCOL-REQ select Level 2 protocol
  142688. 40h/01h SELECT-B2-PROTOCOL-CONF confirm receipt of SELECT-B2-PROTOCOL-REQ
  142689. 80h/00h SELECT-B3-PROTOCOL-REQ select Level 3 protocol
  142690. 80h/01h SELECT-B3-PROTOCOL-CONF confirm receipt of SELECT-B3-PROTOCOL-REQ
  142691. 81h/00h LISTEN-B3-REQ enable notification of incoming Level 3 calls
  142692. 81h/01h LISTEN-B3-CONF confirm receipt of LISTEN-B3-REQ
  142693. 82h/00h CONNECT-B3-REQ establish Level 3 connection
  142694. 82h/01h CONNECT-B3-CONF confirm start of connection establishment
  142695. 82h/02h CONNECT-B3-IND indication of incoming Level 3 connection
  142696. 82h/03h CONNECT-B3-RESP accept incoming connection
  142697. 83h/02h CONNECT-B3-ACTIVE-IND indication that Level 3 connection complete
  142698. 83h/03h CONNECT-B3-ACTIVE-RESP confirm connection-complete indication
  142699. 84h/00h DISCONNECT-B3-REQ request shutdown of Level 3 connection
  142700. 84h/01h DISCONNECT-B3-CONF confirm shutdown of Level 3 connection
  142701. 84h/02h DISCONNECT-B3-IND indication that Level 3 is shutting down
  142702. 84h/03h DISCONNECT-B3-RESP confirm that application knows of shutdown
  142703. 85h/00h GET-B3-PARAMS-REQ request Level 3 parameters
  142704. 85h/01h GET-B3-PARAMS-CONF return Level 3 parameters
  142705. 86h/00h DATA-B3-REQ send data on Level 3
  142706. 86h/01h DATA-B3-CONF confirm sending of Level 3 data
  142707. 86h/02h DATA-B3-IND indication of incoming Level 3 data
  142708. 86h/03h DATA-B3-RESP confirm receipt of Level 3 data
  142709. 87h/02h HANDSET-IND indication of Handset events
  142710. 87h/03h HANDSET-RESP confirm receipt of Handset event
  142711. FFh/00h MANUFACTURER-REQ vendor-specific request
  142712. FFh/01h MANUFACTURER-CONF vendor-specific request confirmation
  142713. FFh/02h MANUFACTURER-IND vendor-specific notification
  142714. FFh/03h MANUFACTURER-RESP vendor-specific notification confirmation
  142715. SeeAlso: #04071,#04073
  142716. ----------F1--03-----------------------------
  142717. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_PUT_MESSAGE"
  142718. AL = 03h
  142719. AH = CAPI version number * 10 (14h for v2.0)
  142720. DX = application ID (see INT F1/AL=01h)
  142721. ES:BX -> message to be sent (see #04071)
  142722. Return: AX = status (0000h,11xxh) (see #04070)
  142723. Notes: the caller is required to provide at least 512 bytes of stack space
  142724. the message buffer may be reused as soon as this call returns
  142725. SeeAlso: AH=03h,INT F1/AL=01h,INT F1/AL=04h
  142726. (Table 04073)
  142727. Values for CAPI v2.0 message command/subcommand:
  142728. Cmd/SubCmd Name Description
  142729. 01h/80h ALERT_REQ indicate compatibility with incoming calls
  142730. 01h/81h ALERT_CONF confirm receipt of ALERT_REQ
  142731. 02h/80h CONNECT_REQ establish B-channel connection
  142732. 02h/81h CONNECT_CONF confirm start of connection establishment
  142733. 02h/82h CONNECT_IND indication from CAPI of incoming connection
  142734. 02h/83h CONNECT_RESP accept incoming connection
  142735. 03h/82h CONNECT_ACTIVE_IND indication that B-channel connection complete
  142736. 03h/83h CONNECT_ACTIVE_RESP confirm connection-complete indication
  142737. 04h/80h DISCONNECT_REQ request shutdown of B-channel connection
  142738. 04h/81h DISCONNECT_CONF confirm shutdown of B-channel connection
  142739. 04h/82h DISCONNECT_IND indication that B-channel is shutting down
  142740. 04h/83h DISCONNECT_RESP confirm that application knows of shutdown
  142741. 05h/80h LISTEN_REQ enable signalling on incoming events
  142742. 05h/81h LISTEN_CONF confirm enabling of incoming event signalling
  142743. 08h/80h INFO_REQ send protocol information for physical connect
  142744. 08h/81h INFO_CONF confirm INFO_REQ
  142745. 08h/82h INFO_IND indicate event for physical connection
  142746. 08h/83h INFO_CONF confirm receipt of INFO_IND
  142747. 41h/80h SELECT_B_PROTOCOL_REQ change protocol on already-active connect
  142748. 41h/81h SELECT_B_PROTOCOL_CONF confirm receipt of SELECT_B_PROTOCOL_REQ
  142749. 80h/80h FACILITY_REQ control optional facilities
  142750. 80h/81h FACILITY_CONF confirm acceptance of FACILITY_REQ
  142751. 80h/82h FACILITY_IND indicate facility-dependent event
  142752. 80h/83h FACILITY_RESP confirm receipt of FACILITY_IND
  142753. 82h/80h CONNECT_B3_REQ establish Level 3 connection
  142754. 82h/81h CONNECT_B3_CONF confirm start of connection establishment
  142755. 82h/82h CONNECT_B3_IND indication of incoming Level 3 connection
  142756. 82h/83h CONNECT_B3_RESP accept incoming connection
  142757. 83h/82h CONNECT_B3_ACTIVE_IND indication that Level 3 connection complete
  142758. 83h/83h CONNECT_B3_ACTIVE_RESP confirm connection-complete indication
  142759. 84h/80h DISCONNECT_B3_REQ request shutdown of Level 3 connection
  142760. 84h/81h DISCONNECT_B3_CONF confirm shutdown of Level 3 connection
  142761. 84h/82h DISCONNECT_B3_IND indication that Level 3 is shutting down
  142762. 84h/83h DISCONNECT_B3_RESP confirm that application knows of shutdown
  142763. 85h/80h GET_B3_PARAMS_REQ request Level 3 parameters
  142764. 85h/81h GET_B3_PARAMS_CONF return Level 3 parameters
  142765. 86h/80h DATA_B3_REQ send data on Level 3
  142766. 86h/81h DATA_B3_CONF confirm sending of Level 3 data
  142767. 86h/82h DATA_B3_IND indication of incoming Level 3 data
  142768. 86h/83h DATA_B3_RESP confirm receipt of Level 3 data
  142769. 87h/80h RESET_B3_REQ request resetting of a logical connection
  142770. 87h/81h RESET_B3_CONF confirm logical connection reset
  142771. 87h/82h RESET_B3_IND indication from CAPI that logical conn. reset
  142772. 87h/83h RESET_B3_RESP confirm receipt of RESET_B3_IND
  142773. 88h/82h CONNECT_B3_T90_ACTIVE_IND indicate switch from T.70 to T.90
  142774. 88h/83h CONNECT_B3_T90_ACTIVE_RESP confirm receipt of T90_ACTIVE_IND
  142775. FFh/80h MANUFACTURER_REQ vendor-specific request
  142776. FFh/81h MANUFACTURER_CONF vendor-specific request confirmation
  142777. FFh/82h MANUFACTURER_IND vendor-specific notification
  142778. FFh/83h MANUFACTURER_RESP vendor-specific notification confirmation
  142779. SeeAlso: #04071,#04072
  142780. ----------F104-------------------------------
  142781. INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-MESSAGE"
  142782. AH = 04h
  142783. DX = application ID (see AH=01h)
  142784. Return: AX = status (0000h,1002h,1006h,1007h) (see #04069)
  142785. ES:BX -> message if successful (see #04071)
  142786. Range: INT 00 to INT FF, selectable by program parameter
  142787. Notes: the caller is required to provide at least 512 bytes of stack space
  142788. the returned message may be overwritten by the next call to this
  142789. function
  142790. SeeAlso: AH=03h
  142791. ----------F1--04-----------------------------
  142792. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_MESSAGE"
  142793. AL = 04h
  142794. AH = CAPI version number * 10 (14h for v2.0)
  142795. DX = application ID (see AH=01h)
  142796. Return: AX = status (0000h,11xxh) (see #04070)
  142797. ES:BX -> message if successful (see #04071)
  142798. Range: INT 00 to INT FF, selectable by program parameter
  142799. Notes: the caller is required to provide at least 512 bytes of stack space
  142800. the returned message may be overwritten by the next call to this
  142801. function
  142802. SeeAlso: AH=04h,INT F1/AL=03h
  142803. ----------F105-------------------------------
  142804. INT F1 - Common ISDN API (CAPI) v1.1 - "API-SET-SIGNAL" - SIGNAL HANDLING
  142805. AH = 05h
  142806. DX = application ID (see AH=01h)
  142807. ES:BX -> signal handler or 0000h:0000h to disable
  142808. Return: AX = status (0000h,1002h) (see #04069)
  142809. Notes: the caller is required to provide at least 512 bytes of stack space
  142810. the signal handler is called as though it were an interrupt, with
  142811. interrupts disabled; the handler must preserve all registers and
  142812. return with an IRET
  142813. SeeAlso: AH=01h
  142814. ----------F1--05-----------------------------
  142815. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_SET_SIGNAL" - SIGNAL HANDLING
  142816. AL = 05h
  142817. AH = CAPI version number * 10 (14h for v2.0)
  142818. DX = application ID (see AH=01h)
  142819. ES:BX -> signal handler or 0000h:0000h to disable
  142820. SI:DI = parameter to pass to signal handler
  142821. Return: AX = status (0000h,11xxh) (see #04070)
  142822. Notes: the caller is required to provide at least 512 bytes of stack space
  142823. the signal handler is called as though it were an interrupt, with
  142824. interrupts disabled and DX,SI,DI set as they were when this function
  142825. was called; the handler must preserve all registers and return with
  142826. an IRET
  142827. the signal handler may call CAPI_PUT_MESSAGE, CAPI_GET_MESSAGE, and
  142828. CAPI_SET_SIGNAL
  142829. SeeAlso: INT F1/AL=01h
  142830. ----------F106-------------------------------
  142831. INT F1 - Common ISDN API (CAPI) v1.1 - "API-DEINSTALL" - UNINSTALL
  142832. AH = 06h
  142833. BX = force flag
  142834. 0000h normal uninstall
  142835. 0001h forced uninstall
  142836. Return: AX = status (0000h,1008h) (see #04069)
  142837. Desc: reset ISDN controller, close all ISDN Level 1 connections except for
  142838. telephone connections
  142839. Notes: the caller is required to provide at least 512 bytes of stack space
  142840. SeeAlso: INT F1/AL=01h,INT F1/AH=01h
  142841. ----------F1F0-------------------------------
  142842. INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-MANUFACTURER"
  142843. AH = F0h
  142844. ES:BX -> 64-byte buffer for manufacturer identification information
  142845. Return: ES:BX buffer filled with ASCIZ idnetification string
  142846. Range: INT 00 to INT FF, selectable by program parameter
  142847. Notes: the caller is required to provide at least 512 bytes of stack space
  142848. SeeAlso: AH=01h,AH=F1h,AH=F2h,AH=FFh,INT F1/AL=F0h
  142849. ----------F1--F0-----------------------------
  142850. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_MANUFACTURER"
  142851. AL = F0h
  142852. AH = CAPI version number * 10 (14h for v2.0)
  142853. ES:BX -> 64-byte buffer for manufacturer identification information
  142854. Return: ES:BX buffer filled with ASCIZ idnetification string
  142855. Range: INT 00 to INT FF, selectable by program parameter
  142856. Notes: the caller is required to provide at least 512 bytes of stack space
  142857. SeeAlso: AH=F0h,INT F1/AL=01h,INT F1/AL=F1h,INT F1/AL=F2h,INT F1/AL=FFh
  142858. ----------F1F1-------------------------------
  142859. INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-VERSION"
  142860. AH = F1h
  142861. ES:BX -> 64-byte buffer for CAPI version number
  142862. Return: ES:BX buffer filled with ASCIZ version string
  142863. Notes: the caller is required to provide at least 512 bytes of stack space
  142864. SeeAlso: AH=01h,AH=F0h,AH=F2h,AH=FFh
  142865. ----------F1--F1-----------------------------
  142866. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_VERSION"
  142867. AL = F1h
  142868. AH = CAPI version number * 10 (14h for v2.0)
  142869. Return: AH = CAPI major version number
  142870. AL = CAPI minor version number
  142871. DH = vendor-specific major version
  142872. DL = vendor-specific minor version
  142873. Notes: the caller is required to provide at least 512 bytes of stack space
  142874. SeeAlso: AH=F1h,INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F2h,INT F1/AL=FFh
  142875. ----------F1F2-------------------------------
  142876. INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-SERIAL-NUMBER"
  142877. AH = F2h
  142878. ES:BX -> 64-byte buffer for CAPI serial number
  142879. Return: ES:BX buffer filled with ASCIZ serial number (seven digits), empty
  142880. string if no serial number
  142881. Notes: the caller is required to provide at least 512 bytes of stack space
  142882. SeeAlso: AH=01h,AH=F0h,AH=F1h,AH=FFh
  142883. ----------F1--F2-----------------------------
  142884. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_SERIAL_NUMBER"
  142885. AL = F2h
  142886. AH = CAPI version number * 10 (14h for v2.0)
  142887. ES:BX -> 64-byte buffer for CAPI serial number
  142888. Return: ES:BX buffer filled with ASCIZ serial number (seven digits), empty
  142889. string if no serial number
  142890. Notes: the caller is required to provide at least 512 bytes of stack space
  142891. SeeAlso: AH=F2h,INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F1h,INT F1/AL=F3h
  142892. ----------F1--F3-----------------------------
  142893. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_PROFILE" - GET CAPABILITIES
  142894. AL = F3h
  142895. AH = CAPI version number * 10 (14h for v2.0)
  142896. ES:BX -> 64-byte buffer for CAPI capabilities (see #04074)
  142897. CX = controller number (01h-06h) or 0000h to get number of controllers
  142898. Return: AX = status (0000h,11xxh) (see #04070)
  142899. ES:BX buffer filled if successful
  142900. Notes: the caller is required to provide at least 512 bytes of stack space
  142901. SeeAlso: INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F2h,INT F1/AH=FFh
  142902. Format of CAPI v2.0 capabilities:
  142903. Offset Size Description (Table 04074)
  142904. 00h WORD number of installed controllers
  142905. 02h WORD number of supported B channels
  142906. 04h DWORD global options (see #04075)
  142907. 08h DWORD B1 protocol support flags (see #04076)
  142908. 0Ch DWORD B2 protocol support flags (see #04077)
  142909. 10h DWORD B3 protocol support flags (see #04078)
  142910. 14h 24 BYTEs reserved for CAPI use
  142911. 2Ch 20 BYTEs vendor-specific information
  142912. Bitfields for CAPI v2.0 global options:
  142913. Bit(s) Description (Table 04075)
  142914. 0 internal controller supported
  142915. 1 external controller supported
  142916. 2 handset supported (only if bit 1 also set)
  142917. 3 DTMF supported
  142918. 4-31 reserved (0)
  142919. SeeAlso: #04074
  142920. Bitfields for CAPI v2.0 B1 protocol support:
  142921. Bit(s) Description (Table 04076)
  142922. 0 64k bps with HDLC framing (required, always set)
  142923. 1 64k bps bit-transparent operation with network byte framing
  142924. 2 V.110 asynchronous with start/stop byte framing
  142925. 3 V.110 synchronous with HDLC framing
  142926. 4 T.30 modem for group 3 FAX
  142927. 5 64k bps inverted with HDLC framing
  142928. 6 56k bps bit-transparent operation with network byte framing
  142929. 7-31 reserved (0)
  142930. SeeAlso: #04074
  142931. Bitfields for CAPI v2.0 B2 protocol support:
  142932. Bit(s) Description (Table 04077)
  142933. 0 ISO 7776 (X.75 SLP) (required, always set)
  142934. 1 transparent
  142935. 2 SDLC
  142936. 3 Q.921 LAPD (D-channel X.25)
  142937. 4 T.30 for group 3 FAX
  142938. 5 point-to-point protocol (PPP)
  142939. 6 transparent (ignoring B1 framing errors)
  142940. 7-31 reserved (0)
  142941. SeeAlso: #04074
  142942. Bitfields for CAPI v2.0 B3 protocol support:
  142943. Bit(s) Description (Table 04078)
  142944. 0 transparent (required, always set)
  142945. 1 T.90NL with T.70NL compatibility
  142946. 2 ISO 8208 (X.25 DTE-DTE)
  142947. 3 X.25 DCE
  142948. 4 T.30 for group 3 FAX
  142949. 5-31 reserved (0)
  142950. SeeAlso: #04074
  142951. ----------F1FF-------------------------------
  142952. INT F1 - Common ISDN API (CAPI) v1.1 - "API-MANUFACTURER" - VENDOR-SPECIFIC
  142953. AH = FFh
  142954. other registers vendor-specific
  142955. Return: registers vendor-specific
  142956. Range: INT 00 to INT FF, selectable by program parameter
  142957. Notes: the caller is required to provide at least 512 bytes of stack space
  142958. SeeAlso: AH=01h,AH=F0h,AH=F1h,AH=F2h,INT F1/AH=FFh
  142959. ----------F1--FF-----------------------------
  142960. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_MANUFACTURER" - VENDOR-SPECIFIC
  142961. AL = FFh
  142962. AH = CAPI version number * 10 (14h for v2.0)
  142963. other registers vendor-specific
  142964. Return: registers vendor-specific
  142965. Range: INT 00 to INT FF, selectable by program parameter
  142966. Notes: the caller is required to provide at least 512 bytes of stack space
  142967. SeeAlso: AH=FFh,INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F1h,INT F1/AL=F2h
  142968. --------*-F2---------------------------------
  142969. INT F2 - reserved for user interrupt
  142970. --------s-F2---------------------------------
  142971. INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM
  142972. SeeAlso: INT F1"SPEECH"
  142973. --------N-F2---------------------------------
  142974. INT F2 - NetWare Remote Boot - ORIGINAL INT 13
  142975. SeeAlso: INT F1"NetWare",INT F3"NetWare",INT F4"NetWare"
  142976. ----------F2---------------------------------
  142977. INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API
  142978. AH = function number (see #04079)
  142979. ???
  142980. Return: ???
  142981. Program: ImageCapture is a product of International Computers
  142982. SeeAlso: INT F3"ICCTSR"
  142983. (Table 04079)
  142984. Values for ImageCapture function:
  142985. 01h power up
  142986. 02h power down
  142987. 03h set controls
  142988. 04h capture image
  142989. 05h display image
  142990. 06h read file
  142991. 07h write file
  142992. 08h write array
  142993. 09h read pixel
  142994. 0Ah write pixel
  142995. 0Bh check if VGA present
  142996. 0Ch set video mode
  142997. 0Dh check for keystroke
  142998. 0Eh delay
  142999. --------*-F3---------------------------------
  143000. INT F3 - reserved for user interrupt
  143001. SeeAlso: INT F2"user",INT F4"user"
  143002. --------s-F3---------------------------------
  143003. INT F3 - SoundBlaster - POINTER TO ECHO VALUE
  143004. Note: this is not a vector, but a pointer to a DWORD containing the echo
  143005. value selected with SET-ECHO.EXE
  143006. SeeAlso: INT 2F/AX=FBFBh/ES=0000h
  143007. ----------F3---------------------------------
  143008. INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR
  143009. Program: ImageCapture is a product of International Computers
  143010. SeeAlso: INT F2"ICCTSR"
  143011. --------N-F3---------------------------------
  143012. INT F3 - NetWare Remote Boot - BOOT ROM'S INT 13 HANDLER
  143013. SeeAlso: INT F1"NetWare",INT F2"NetWare",INT F4"NetWare"
  143014. --------*-F4---------------------------------
  143015. INT F4 - reserved for user interrupt
  143016. SeeAlso: INT F3"user",INT F5"user"
  143017. --------T-F4---------------------------------
  143018. INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK
  143019. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F5"DoubleDOS",INT FE"DoubleDOS"
  143020. --------N-F4---------------------------------
  143021. INT F4 - NetWare Remote Boot - ???
  143022. SeeAlso: INT F1"NetWare",INT F2"NetWare",INT F3"NetWare"
  143023. --------*-F5---------------------------------
  143024. INT F5 - reserved for user interrupt
  143025. SeeAlso: INT F4"user",INT F6"user"
  143026. --------T-F5---------------------------------
  143027. INT F5 - DoubleDOS - ???
  143028. SeeAlso: INT F4"DoubleDOS",INT F6"DoubleDOS"
  143029. --------*-F6---------------------------------
  143030. INT F6 - reserved for user interrupt
  143031. SeeAlso: INT F5"user",INT F7"user"
  143032. --------T-F6---------------------------------
  143033. INT F6 - DoubleDOS - ???
  143034. SeeAlso: INT F5"DoubleDOS",INT F7"DoubleDOS"
  143035. --------*-F7---------------------------------
  143036. INT F7 - reserved for user interrupt
  143037. SeeAlso: INT F6"user"
  143038. --------T-F7---------------------------------
  143039. INT F7 - DoubleDOS - ???
  143040. SeeAlso: INT F6"DoubleDOS"
  143041. ----------F700-------------------------------
  143042. INT F7 - FSBBS 2.0 - CONFIGURATION RECORD
  143043. AH = 00h
  143044. AL = function
  143045. 00h get configuration record
  143046. Return: DS:DX -> configuration record
  143047. 01h set configuration record
  143048. Return: nothing
  143049. 02h get path for option
  143050. DS:DX -> option name
  143051. Return: DS:DX -> path
  143052. 03h determine whether configuration record set
  143053. Return: AX = status
  143054. 0000h set
  143055. 0001h not yet set
  143056. 04h get link state
  143057. Return: AX = state
  143058. 0000h unlinked
  143059. 0001h linked
  143060. Notes: this information is preliminary and still subject to change
  143061. all of the INT F7 calls for FSBBS are used for interprogram
  143062. communication between the BBS kernel and the programs it spawns
  143063. SeeAlso: AH=01h
  143064. ----------F701-------------------------------
  143065. INT F7 - FSBBS 2.0 - USER RECORD
  143066. AH = 01h
  143067. AL = function
  143068. 00h get user record for user currently online
  143069. Return: DS:DX -> user record
  143070. 01h set user record
  143071. DS:DX -> user record
  143072. Return: nothing
  143073. SeeAlso: AH=00h,AH=02h
  143074. ----------F702-------------------------------
  143075. INT F7 - FSBBS 2.0 - GET ACCOUNT NAME
  143076. AH = 02h
  143077. Return: DS:DX -> 8-character blank-padded account name
  143078. SeeAlso: AH=01h
  143079. ----------F703-------------------------------
  143080. INT F7 - FSBBS 2.0 - TERMINAL NUMBER
  143081. AH = 03h
  143082. AL = function
  143083. 00h get terminal index number
  143084. Return: DX = index number
  143085. 01h set terminal index number
  143086. DX = terminal index
  143087. Return: nothing
  143088. ----------F704-------------------------------
  143089. INT F7 - FSBBS 2.0 - PASSDATA BUFFER
  143090. AH = 04h
  143091. AL = function
  143092. 00h get PassData buffer contents
  143093. DS:DX -> buffer for PassData contents
  143094. Return: DS:DX buffer filled
  143095. 01h set PassData contents
  143096. DS:DX -> buffer containing new PassData
  143097. CH = length of data in buffer
  143098. Return: nothing
  143099. ----------F705-------------------------------
  143100. INT F7 - FSBBS 2.0 - TIMER FUNCTIONS
  143101. AH = 05h
  143102. AL = function
  143103. 00h get time remaining
  143104. Return: DX = number of minutes remaining
  143105. 01h get current time
  143106. Return: DS:DX -> 8-character time string
  143107. 02h increment time
  143108. DX = number of additional minutes
  143109. 03h decrement time
  143110. DX = number of minutes
  143111. SeeAlso: AH=06h
  143112. ----------F706-------------------------------
  143113. INT F7 - FSBBS 2.0 - FUNCTION AVAILABILITY
  143114. AH = 06h
  143115. AL = function
  143116. 00h determine whether function is available
  143117. DX = index of function
  143118. 01h set function availability
  143119. DX = index of function
  143120. ???
  143121. Return: nothing
  143122. SeeAlso: AH=05h,AH=07h
  143123. ----------F707-------------------------------
  143124. INT F7 - FSBBS 2.0 - DUMP FUNCTIONS
  143125. AH = 07h
  143126. AL = function
  143127. 00h get current dump mode
  143128. Return: DL = mode
  143129. 01h set dump mode
  143130. DL = mode
  143131. SeeAlso: AH=06h
  143132. --------*-F8---------------------------------
  143133. INT F8 - reserved for user interrupt
  143134. --------h-F8---------------------------------
  143135. INT F8 - Sanyo MBC-550/555 - IRQ0 - 100 HZ INTERRUPT
  143136. Note: normally masked off at 8259 interrupt controller
  143137. SeeAlso: INT 08"IRQ0",INT F9"Sanyo",INT FA"Sanyo"
  143138. --------T-F8---------------------------------
  143139. INT F8 - DoubleDOS - ???
  143140. --------*-F9---------------------------------
  143141. INT F9 - reserved for user interrupt
  143142. --------T-F9---------------------------------
  143143. INT F9 - DoubleDOS - ???
  143144. --------h-F9---------------------------------
  143145. INT F9 - Sanyo MBC-550/555 - IRQ1 - ???
  143146. Note: documented as "for system use only"; normally enabled at the 8259
  143147. SeeAlso: INT 09"IRQ1",INT F8"Sanyo",INT FA"Sanyo"
  143148. --------*-FA---------------------------------
  143149. INT FA - reserved for user interrupt
  143150. --------h-FA---------------------------------
  143151. INT FA - Sanyo MBC-550/555 - IRQ2 - SERIAL PORT USART INTERRUPT
  143152. Note: this vector is not used on the Tandy 1000TL
  143153. SeeAlso: INT 0A"IRQ2",INT F9"Sanyo",INT FB"Sanyo"
  143154. --------T-FA---------------------------------
  143155. INT FA - DoubleDOS - TURN OFF TIMESHARING
  143156. SeeAlso: INT 21/AH=EAh"DoubleDOS",INT FB"DoubleDOS"
  143157. ----------FA---------------------------------
  143158. INT FA P - ASM Edit - INSTALLATION CHECK
  143159. Program: ASM Edit is a shareware programmer's editor
  143160. Note: ASM Edit hooks this vector in protected mode to allow DPMI programs
  143161. to detect whether they were run while shelled to DOS from ASM Edit
  143162. Format of ASM Edit signature block:
  143163. Offset Size Description (Table 04080)
  143164. 00h BYTE CFh (IRET)
  143165. 01h 8 BYTEs signature "ASM Edit" (no trailing NUL)
  143166. --------*-FB---------------------------------
  143167. INT FB - reserved for user interrupt
  143168. --------h-FB---------------------------------
  143169. INT FB - Sanyo MBC-550/555 - IRQ3 - KEYBOARD USART RECEIVE INTERRUPT
  143170. SeeAlso: INT 0B"IRQ3",INT FA"Sanyo",INT FC"Sanyo"
  143171. --------T-FB---------------------------------
  143172. INT FB - DoubleDOS - TURN ON TIMESHARING
  143173. SeeAlso: INT 21/AH=EBh"DoubleDOS",INT FA"DoubleDOS"
  143174. --------*-FC---------------------------------
  143175. INT FC - reserved for user interrupt
  143176. --------T-FC---------------------------------
  143177. INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS
  143178. Return: ES = segment of display buffer
  143179. Desc: determine the address of the virtual screen to which the program
  143180. should write instead of the actual video memory, so that the
  143181. multitasked programs do not interfere with each other's output
  143182. Note: the display buffer may be moved if multitasking is enabled
  143183. SeeAlso: INT 21/AH=ECh"DoubleDOS",INT FB"DoubleDOS"
  143184. --------h-FC---------------------------------
  143185. INT FC - Sanyo MBC-550/555 - IRQ4 - PRINTER READY INTERRUPT
  143186. Note: normally masked off at the 8259 interrupt controller
  143187. SeeAlso: INT 0C"IRQ4",INT FB"Sanyo",INT FD"Sanyo"
  143188. --------*-FD---------------------------------
  143189. INT FD - reserved for user interrupt
  143190. --------T-FD---------------------------------
  143191. INT FD - DoubleDOS - ???
  143192. --------h-FD---------------------------------
  143193. INT FD - Sanyo MBC-550/555 - IRQ5 - FLOPPY DISK CONTROLLER
  143194. SeeAlso: INT 0D"IRQ5",INT FC"Sanyo",INT FE"Sanyo"
  143195. --------S-FD---------------------------------
  143196. INT FD - TFPCX - INSTALLATION CHECK
  143197. AH = function (also see separate entries below)
  143198. Program: TFPCX is an interface between modem and terminal program for packet-
  143199. radio communications
  143200. InstallCheck: test for the string "N5NX" three bytes beyond the interrupt
  143201. handler
  143202. Range: INT FD is the default, but may be changed, so the full installation
  143203. check consists of scanning for the signature
  143204. Note: TFPCX returns AX=FFFFh on any unsupported function call
  143205. SeeAlso: AH=01h,AH=03h,AH=FEh
  143206. --------S-FD01-------------------------------
  143207. INT FD - TFPCX - TEST FOR CHARACTER WAITING
  143208. AH = 01h
  143209. Return: AX = status
  143210. 0000h no characters waiting
  143211. 0001h character available for input
  143212. Program: TFPCX is an interface between modem and terminal program for packet-
  143213. radio communications
  143214. SeeAlso: AH=02h
  143215. --------S-FD02-------------------------------
  143216. INT FD - TFPCX - GET CHARACTER
  143217. AH = 02h
  143218. Return: AL = character
  143219. Notes: this call is only allowed if AH=01h indicated that a character is
  143220. available
  143221. all available characters should be read before sending any additional
  143222. characters
  143223. SeeAlso: AH=01h,AH=03h
  143224. --------S-FD03-------------------------------
  143225. INT FD - TFPCX - OUTPUT CHARACTER
  143226. AH = 03h
  143227. AL = character to send
  143228. Return: nothing
  143229. SeeAlso: AH=02h
  143230. --------S-FDFE-------------------------------
  143231. INT FD - TFPCX - GET VERSION
  143232. AH = FEh
  143233. Return: AH = major version
  143234. AL = minor version
  143235. Program: TFPCX is an interface between modem and terminal program for packet-
  143236. radio communications
  143237. SeeAlso: AH=01h,AH=03h
  143238. --------B-FE---------------------------------
  143239. INT FE - AT/XT286/PS50+ - destroyed by return from protected mode
  143240. Note: the ROM BIOS uses 0030h:0100h as the initial stack on startup, which
  143241. is the last fourth of the interrupt vector table. If the processor
  143242. is returned to real mode via a hardware reset (the only possibility
  143243. on an 80286, though there are a number of ways of generating one),
  143244. then the BIOS startup code stacks three words on its scratch stack
  143245. before determining that a return to real mode has been requested.
  143246. As a result, INT FE and INT FF are corrupted.
  143247. SeeAlso: INT FF"XT286"
  143248. --------T-FE---------------------------------
  143249. INT FE - DoubleDOS - GIVE UP TIME
  143250. AL = number of 55ms time slices to give away
  143251. Return: after other program (if active) has run
  143252. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F4"DoubleDOS"
  143253. --------G-FE---------------------------------
  143254. INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER
  143255. SeeAlso: INT 3F
  143256. --------h-FE---------------------------------
  143257. INT FE - Sanyo MBC-550/555 - IRQ6 - 8087 COPROCESSOR INTERRUPT
  143258. Note: normally masked off at the 8259 interrupt controller
  143259. SeeAlso: INT 0E"IRQ6",INT FD"Sanyo",INT FF"Sanyo"
  143260. --------B-FF---------------------------------
  143261. INT FF - AT/XT286/PS50+ - destroyed by return from protected mode
  143262. Note: (see INT FE"XT286")
  143263. SeeAlso: INT FE"XT286"
  143264. --------b-FF---------------------------------
  143265. INT FF - Z100 - WARM BOOT
  143266. SeeAlso: INT 40"Z100"
  143267. --------h-FF---------------------------------
  143268. INT FF - Sanyo MBC-550/555 - IRQ7 - USER INTERRUPT FOR EXTERNAL INTERRUPT
  143269. Note: normally masked off at the 8259 interrupt controller
  143270. SeeAlso: INT 0F"IRQ7",INT FE"Sanyo"
  143271. --------Q-FF---------------------------------
  143272. INT FF U - QEMM-386.SYS v6.0+ - internal
  143273. Notes: requires that a byte in the conventional-memory stub be set to the
  143274. desired function number (00h through 0Ch)
  143275. SeeAlso: #04081
  143276. (Table 04081)
  143277. Values for QEMM internal functions:
  143278. 00h reflect back to Virtual86-mode interrupt handler (default)
  143279. 01h ???
  143280. 02h access DR7???
  143281. 03h QPI upcall (see INT 67/AH=3Fh)
  143282. 04h ???
  143283. 05h ???
  143284. 06h INT 15/AH=87h
  143285. 07h EMS services (see INT 67/AH=40h,INT 67/AH=5Dh)
  143286. 08h ???
  143287. 09h QEMM exception handler
  143288. 0Ah XMS services (see INT 2F/AX=4310h"XMS")
  143289. 0Bh Virtual DMA Services (see INT 4B/AX=8102h)
  143290. 0Ch ???
  143291. --------v-FF---------------------------------
  143292. INT FF - VIRUS - "Violetta" - ???
  143293. Note: used but not chained by virus
  143294. SeeAlso: INT E0"VIRUS",INT F1"VIRUS"
  143295. --------V-FF----BX0000-----------------------
  143296. INT FF - PC/FORTH - GRAPHICS API - VIDEO STATUS CHANGE
  143297. BX = 0000h
  143298. DS:SI -> FORTH program counter
  143299. SS:BP -> FORTH parameter stack
  143300. SS:SP -> FORTH return stack
  143301. DS:DX -> FORTH video parameter area
  143302. Desc: called to inform graphics driver of any status changes such as video
  143303. mode changes, character color changes, graphics XOR mode turned on
  143304. or off, etc.; also used as an installation check
  143305. Index: installation check;PC/FORTH
  143306. --------V-FF---------------------------------
  143307. INT FF - PC/FORTH - GRAPHICS API
  143308. BX = function number
  143309. 0001h function REDRAW
  143310. 0002h function !PEL
  143311. 0003h function @PEL
  143312. 0004h function LINE
  143313. 0005h function ARC
  143314. 0006h function @BLOCK
  143315. 0007h function !BLOCK
  143316. 0008h function FLOOD
  143317. DS:SI -> FORTH program counter
  143318. SS:BP -> FORTH parameter stack
  143319. SS:SP -> FORTH return stack
  143320. details of parameters not available
  143321. Return: AX,BX,CX,DX,ES,DI may be destroyed
  143322. Note: these functions all display an error message if the graphics routines
  143323. are not resident
  143324. --------!---Admin----------------------------
  143325. Highest Table Number = 04081
  143326. --------!---FILELIST-------------------------
  143327. Please redistribute all of the files comprising the interrupt list (listed at
  143328. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  143329. quartet of archives named INTER60A through INTER60D (preferably the original
  143330. authenticated PKZIP archives), the utility programs in a fifth archive
  143331. called INTER60E.ZIP, the WinHelp-related programs in a sixth archive
  143332. named INTER60F.ZIP, and the non-WinHelp hypertext programs in a seventh archive
  143333. names INTER60G.ZIP.
  143334. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  143335. --------!---CONTACT_INFO---------------------
  143336. Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
  143337. FIDO: Ralf Brown 1:129/26.1